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

From version 127.1
edited by Paul Hoadley
on 2011/03/27 03:10
Change comment: Added a couple of hyperlinks.
To version 131.1
edited by David Avendasora
on 2011/04/26 13:21
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -Download Wonder Source, Build, Install and Upgrade
1 +Getting the Wonder Source Code
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.paulh
1 +XWiki.avendasora
Content
... ... @@ -1,102 +1,65 @@
1 -== Introduction ==
1 +{{tip title="Now with more Git"}}
2 2  
3 -Instead of downloading the Wonder binaries, working from the latest source code directly can have some advantages such as:
3 +As of March 25th, 2011 the Wonder source code is now maintained on [GitHub|https://github.com/] at [https://github.com/projectwonder]. You'll need to be familiar with the [Git|http://git-scm.com/] Source Code Management system. [Here's|WO:Getting Started with Git] a good place to start. You will use Git to checkout a local copy of the repository (a "clone" in Git terms) allowing you to have direct access to the Wonder source.
4 4  
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
5 +{{/tip}}
6 +
7 +Instead of constantly re-downloading and installing the latest Wonder binaries you should work directly with the latest source code. It has several advantages including:
8 +
9 +* You'll learn a lot about WebObjects, EOF and Object-Oriented Patterns
10 +* Easily search, browse and even modify and improve Wonder
11 +* Work with a specific revision, which is key for teams, quality control and development cycles
9 9  * Add logging statements in Wonder source so you can better understand what is going when tracking down hard to find bugs
10 10  * Discover the many Hidden Treasures of Wonder.
11 11  
12 -== Source Frameworks Initial Installation ==
15 +== Downloading ==
13 13  
14 -As of March 25th, 2011, Wonder is maintained on [[GitHub>>https://github.com/]]. So [[Git>>http://git-scm.com/]] is what we use to get a local clone of the repository allowing us to directly use Wonder source.
17 +Open a terminal and navigate to a directory where you want to maintain a source "working copy" and just use the following commands to clone Wonder source to your computer.
15 15  
16 -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 own hard-drive.
19 +1. h5. Clone the source repository from GitHub into a new directory named "WonderSource" or whatever you'd like.
17 17  
18 -{{code title="Cloning Project Wonder for the First Time"}}
21 +{{note title="Read Only"}}
22 +Note the URL shown here is the public read-only URL. Committers should use the SSH form of the URL for read-write
23 +{{/note}}
19 19  
20 -# Clone the source repository from github into a new directory named "WonderSource".
21 -# Note the URL shown here is the public read-only URL. Committers should use the SSH form of the URL for read-write
25 +{{code value="none"}}
22 22  git clone git://github.com/projectwonder/wonder.git WonderSource
23 -
24 -# Navigate into the working copy root
25 -cd WonderSource
26 -
27 -# If you are still using old WebObjects 5.3.3, then you need to execute one git command at this point
28 -# before you build Wonder to switch to the branch that is source-compatible with WO 5.3.3. See the tip at the bottom of the page.
29 -
30 -# Build the frameworks from the source (Assumes you are using WebObjects 5.4.3,
31 -# which is currently compatible with 'master' branch. See note below for WebObjects 5.3.3 compatible install)
32 -ant frameworks
33 -
34 -# Install the frameworks (this just copies the built frameworks from ~/Roots to
35 -# the runtime Frameworks directory, usually at /Library/Frameworks)
36 -sudo ant frameworks.install
37 -
38 38  {{/code}}
39 39  
40 -{{info value="Legacy WebObjects 5.3.3 Compatability"}}
29 +You should see output something like this:
41 41  
42 -If you are still stuck on WebObjects 5.3.3, for whatever reason, then you need to checkout and switch to the Wonder_5_0_0_Legacy branch *before* you build (before you run 'ant frameworks'). And this is *much* easier with git than it used to be with subversion. Just one command:
43 -
44 -{code}
45 -git checkout --track origin/Wonder_5_0_0_Legacy
46 -{code}
47 -
31 +{{noformat}}
48 48  
49 -{{/info}}
33 +Cloning into WonderSource...
34 +remote: Counting objects: 174269, done.
35 +remote: Compressing objects: 100% (57304/57304), done.
36 +remote: Total 174269 (delta 107374), reused 173934 (delta 107067)
37 +Receiving objects: 100% (174269/174269), 137.94 MiB | 8.29 MiB/s, done.
38 +Resolving deltas: 100% (107374/107374), done.
50 50  
51 -== Source Frameworks Upgrade Installation ==
40 +{{/noformat}}
52 52  
53 -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.
42 +1. h5. Navigate into the working copy root
54 54  
55 -{{code title="Updating your Source"}}
44 +{{code value="none"}}
45 +cd WonderSource
46 +{{/code}}
56 56  
57 -# Navigate to the Roots directory that was automatically created by the initial Source installation procedure above
58 -cd ~/Roots/
48 +{{note title="WebObjects 5.3.3 Compatability"}}
49 +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}
50 +You should get output like this:
51 +{noformat}
52 +Branch Wonder_5_0_0_Legacy set up to track remote branch Wonder_5_0_0_Legacy from origin.
53 +Switched to a new branch 'Wonder_5_0_0_Legacy'
54 +{noformat}
59 59  
60 -# Delete all installed frameworks whose names match the built frameworks in this Roots build folder
61 -for FRAMEWORK in `echo *.framework`; do sudo rm -r /Library/Frameworks/${FRAMEWORK}; done
56 +{{/note}}
62 62  
63 -# Navigate to the original Wonder source directory that you created above during initial source installation
64 -cd /path/to/WonderSource
58 +1. h5. Build and Install
59 +For building and installing the Wonder Frameworks, please see the standard [[Building and Installing WO Frameworks with Ant>>WO:Building and Installing a WO Framework with Ant]] pages.
65 65  
66 -# Pull the changes you do not have and merge them with your local repository
67 -git pull
68 -
69 -# Clean, build and install the frameworks
70 -ant clean; ant frameworks; sudo ant frameworks.install
71 -
72 -{{/code}}
73 -
74 -
75 -
76 76  {{info}}
77 77  
78 -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.
63 +If you have any trouble or errors due to your local repository getting corrupted, simply delete the entire local repository (the {{\~/Roots}} directory) and start over using this source clone procedure.
79 79  
80 80  {{/info}}
81 -
82 -{{info value="Custom Development Enviroment File layout using Custom wolips.properties"}}
83 -
84 -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.
85 -
86 -For example:
87 -
88 -{code}
89 -$ cd my/special/purpose/clone/of/Wonder
90 -$ ln -s ~/Library/Application\ Support/WOLips/wolips.custom.properties build.properties
91 -{code}
92 -
93 -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.
94 -
95 -*Tip:* Specify a custom build directory for Wonder by adding the property 'wo.external.root' to the custom wolips properties file, for example
96 -{code}
97 -wo.external.root=/Users/mike/Developer/special/directory/Roots
98 -{code}
99 -
100 -*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.
101 -
102 -{{/info}}