Wiki source code of Download Wonder Source, Build, Install and Upgrade
Version 177.1 by Kieran Kelleher on 2011/03/25 18:54
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | == Introduction == | ||
2 | |||
3 | Instead of downloading the Wonder binaries, working from the latest source code directly can have some advantages such as: | ||
4 | |||
5 | * Learn very much about WebObjects and EOF (and java dev styles?) | ||
6 | * Easily browse and search the source | ||
7 | * Work with a specific svn version (teams, quality control, development cycles) | ||
8 | * Provide opportunities to submit patches for bug fixes or enhancements | ||
9 | * 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 | ||
11 | |||
12 | == Source Frameworks Initial Installation == | ||
13 | |||
14 | As of March 25th, 2011, Wonder is maintained on github. So git is what we use to get a local clone of the repository allowing us to directly use Wonder source. | ||
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. | ||
17 | |||
18 | {{code title="Cloning Project Wonder for the First Time"}} | ||
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 | ||
22 | git clone git://github.com/projectwonder/wonder.git WonderSource | ||
23 | |||
24 | # Navigate into the working copy root | ||
25 | cd WonderSource | ||
26 | |||
27 | # Build the frameworks from the source (Assumes you are using WebObjects 5.4.3, | ||
28 | # which is currently compatible with 'master' branch. See note below for WebObjects 5.3.3 compatible install) | ||
29 | ant frameworks | ||
30 | |||
31 | # Install the frameworks (this just copies the built frameworks from ~/Roots to | ||
32 | # the runtime Frameworks directory, usually at /Library/Frameworks) | ||
33 | sudo ant frameworks.install | ||
34 | |||
35 | {{/code}} | ||
36 | |||
37 | == Source Frameworks Upgrade Installation == | ||
38 | |||
39 | 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. | ||
40 | |||
41 | {{code title="Updating your Source"}} | ||
42 | |||
43 | # Navigate to the Roots directory that was automatically created by the initial Source installation procedure above | ||
44 | cd ~/Roots/ | ||
45 | |||
46 | # Delete all installed frameworks whose names match the built frameworks in this Roots build folder | ||
47 | for FRAMEWORK in `echo *.framework`; do sudo rm -r /Library/Frameworks/${FRAMEWORK}; done | ||
48 | |||
49 | # Navigate to the original Wonder source directory that you created above during initial source installation | ||
50 | cd /path/to/WonderSource | ||
51 | |||
52 | # Pull the changes you do not have and merge them with your local repository | ||
53 | git pull | ||
54 | |||
55 | # Clean, build and install the frameworks | ||
56 | ant clean; ant frameworks; sudo ant frameworks.install | ||
57 | |||
58 | {{/code}} | ||
59 | |||
60 | {{info}} | ||
61 | |||
62 | 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 | |||
64 | {{/info}} | ||
65 | |||
66 | {{info value="Custom Development Enviroment File layout using Custom wolips.properties"}} | ||
67 | |||
68 | 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. | ||
69 | |||
70 | For example: | ||
71 | |||
72 | {code} | ||
73 | $ cd my/special/purpose/clone/of/Wonder | ||
74 | $ ln -s ~/Library/Application\ Support/WOLips/wolips.custom.properties build.properties | ||
75 | {code} | ||
76 | |||
77 | 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. | ||
78 | |||
79 | *Tip:* Specify a custom build directory for Wonder by adding the property 'wo.external.root' to the custom wolips properties file, for example | ||
80 | {code} | ||
81 | wo.external.root=/Users/mike/Developer/special/directory/Roots | ||
82 | {code} | ||
83 | |||
84 | *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. | ||
85 | |||
86 | {{/info}} |