Last modified by Bastian Triller on 2013/10/05 10:40

From version 105.1
edited by Kieran Kelleher
on 2007/06/27 10:22
Change comment: There is no comment for this version
To version 121.1
edited by David Avendasora
on 2011/04/25 12:59
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -Download Wonder Source, Build and Install
1 +Downloading, Building, Installing and Upgrading Wonder Source Code
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.kieran
1 +XWiki.avendasora
Content
... ... @@ -2,32 +2,133 @@
2 2  
3 3  Instead of downloading the Wonder binaries, working from the latest source code directly can have some advantages such as:
4 4  
5 -* Ability to browse the source code and learn from the wisdom and experience of the WO committers
6 -* Put breakpoints in and step through Wonder source when debugging your projects
7 -* Provide opportunities to submit patches to bugs you might find in Wonder
5 +* Learn a lot about WebObjects and EOF (and Java development styles)
6 +* Easily browse and search the source
7 +* Work with a specific source control version (teams, quality control, development cycles)
8 +* Provide opportunities to submit patches for bug fixes or enhancements
8 8  * Add logging statements in Wonder source so you can better understand what is going when tracking down hard to find bugs
10 +* Discover the many Hidden Treasures of Wonder.
9 9  
10 -This documents my 'ideal' setup on my own system. I am sure there are variations. Wiki contributors may want to add other pages for what they consider other ideal Wonder setups
12 +== Downloading ==
11 11  
12 -== Downloading Wonder Source from CVS ==
14 +{{tip title="Now with more Git"}}
15 +As of March 25th, 2011 the Wonder source code is now maintained on [GitHub|https://github.com/] at [https://github.com/projectwonder]. So you'll need to be familiar with the [Git|http://git-scm.com/] Source Code Management system. You will use it to checkout a local copy of the repository (a "clone" in Git terms) allowing you to have direct access to the Wonder source.
16 +{{/tip}}
13 13  
14 -* Decide on a directory where you will maintain the latest Wonder source tree on your hard drive. I have a directory ',,/WonderLatest' in my home folder.,,
15 -* Open a terminal shell and navigate to the directory
18 +Open a terminal and navigate to a directory where you want to maintain a source "working copy" and just use the following easy-peasy commands to clone Wonder source to your computer.
16 16  
17 -{{noformat}}
20 +1. Clone the source repository from github into a new directory named "WonderSource".
18 18  
19 -cd ~/WonderLatest
22 +{{note title="Read Only"}}
23 +Note the URL shown here is the public read-only URL. Committers should use the SSH form of the URL for read-write
24 +{{/note}}
20 20  
21 -{{/noformat}}
26 +{{code value="none"}}
27 +git clone git://github.com/projectwonder/wonder.git WonderSource
28 +{{/code}}
22 22  
23 -* Next perform initial checkout of Wonder source tree from CVS head using the following command. This creates a folder named Wonder
30 +You should see output something like this:
24 24  
25 25  {{noformat}}
26 26  
27 -cvs -z3 -d:pserver:anonymous@wonder.cvs.sourceforge.net:/cvsroot/wonder co -P Wonder
34 +Cloning into WonderSource...
35 +remote: Counting objects: 174269, done.
36 +remote: Compressing objects: 100% (57304/57304), done.
37 +remote: Total 174269 (delta 107374), reused 173934 (delta 107067)
38 +Receiving objects: 100% (174269/174269), 137.94 MiB | 8.29 MiB/s, done.
39 +Resolving deltas: 100% (107374/107374), done.
28 28  
29 29  {{/noformat}}
30 30  
31 -== Build and Install Wonder ==
43 +1. Navigate into the working copy root
32 32  
33 -* Follow the instructions in the INSTALL.txt document in the Wonder directory
45 +{{code value="none"}}
46 +cd WonderSource
47 +{{/code}}
48 +
49 +{{note title="WebObjects 5.3.3 Compatability"}}
50 +If you are still using old WebObjects 5.3.3, then you need to execute this git command to switch to the branch for WebObjects 5.3.3:{code}git checkout --track origin/Wonder_5_0_0_Legacy{code}
51 +
52 +{{/note}}
53 +
54 +== Building ==
55 +
56 +Assuming you now have a "cloned" copy of the Wonder source code, you can build the frameworks to the default (##/Roots##) with the following command:
57 +
58 +1. Build the frameworks from the "cloned" source.
59 +
60 +{{code value="none"}}
61 +ant frameworks
62 +{{/code}}
63 +
64 +1. Install the frameworks (this just copies the built frameworks from /Roots to the runtime Frameworks directory, usually at /Library/Frameworks)
65 +
66 +{{code value="none"}}
67 +sudo ant frameworks.install
68 +{{/code}}
69 +
70 +== Installing and Upgrading ==
71 +
72 +Assuming you already cloned and installed Wonder from source using the method outlined above, you can use the following procedure pull the latest changes into your local repository.
73 +
74 +1. Navigate to the Roots directory that was automatically created by the initial Source installation procedure above
75 +
76 +{{code value="none"}}
77 +cd ~/Roots/
78 +{{/code}}
79 +
80 +1. Delete all installed frameworks whose names match the built frameworks in this Roots build folder
81 +
82 +{{code value="none"}}
83 +for FRAMEWORK in `echo *.framework`; do sudo rm -r /Library/Frameworks/${FRAMEWORK}; done
84 +{{/code}}
85 +
86 +1. Navigate to the original Wonder source directory that you created above during initial source installation
87 +
88 +{{code value="none"}}
89 +cd /path/to/WonderSource
90 +{{/code}}
91 +
92 +1. Pull the changes you do not have and merge them with your local repository
93 +
94 +{{code value="none"}}
95 +git pull
96 +{{/code}}
97 +
98 +1. Clean, build and install the frameworks
99 +
100 +{{code value="none"}}
101 +
102 +ant clean
103 +ant frameworks
104 +sudo ant frameworks.install
105 +
106 +{{/code}}
107 +
108 +{{info}}
109 +
110 +If you have any trouble or errors due to your local repository getting hosed, then simply delete the entire local repository directory, the \~/Roots directory and just start over using the initial source clone and installation procedure outlined above.
111 +
112 +{{/info}}
113 +
114 +{{info value="Custom Development Enviroment File layout using Custom wolips.properties"}}
115 +
116 +If you have a custom wolips properties file for a specific workspace and you want to have a specific Wonder clone for that workspace, you can simply link your custom wolips properties file to a soft link named build.properties in the working copy root directory. The Wonder build script will supersede all other filesystem layout poperties with the properties in that file.
117 +
118 +For example:
119 +
120 +{code:none}
121 +cd my/special/purpose/clone/of/Wonder
122 +ln -s ~/Library/Application\ Support/WOLips/wolips.custom.properties build.properties
123 +{code}
124 +
125 +An example of where this approach might be used would be when you have different projects (perhaps in a specially designated workspace) that use a specific version of WebObjects and a specific version or branch of Wonder.
126 +
127 +*Tip:* Specify a custom build directory for Wonder by adding the property 'wo.external.root' to the custom wolips properties file, for example
128 +{code:none}
129 +wo.external.root=/Users/mike/Developer/special/directory/Roots
130 +{code}
131 +
132 +*Tip:* A custom WebServer install directory can be specified to Wonder by adding the property 'wo.server.root' to the custom wolips properties file also.
133 +
134 +{{/info}}