Wiki source code of Download Wonder Source, Build, Install and Upgrade
Version 185.1 by Kieran Kelleher on 2011/03/25 19:15
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
136.1 | 1 | == Introduction == |
| |
128.1 | 2 | |
| |
136.1 | 3 | Instead of downloading the Wonder binaries, working from the latest source code directly can have some advantages such as: |
| |
77.1 | 4 | |
| |
170.1 | 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 | ||
| |
112.1 | 9 | * Add logging statements in Wonder source so you can better understand what is going when tracking down hard to find bugs |
| |
170.1 | 10 | * Discover the many Hidden Treasures of Wonder |
| |
112.1 | 11 | |
| |
170.1 | 12 | == Source Frameworks Initial Installation == |
| |
112.1 | 13 | |
| |
174.1 | 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. |
| |
77.1 | 15 | |
| |
174.1 | 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. |
| |
77.1 | 17 | |
| |
174.1 | 18 | {{code title="Cloning Project Wonder for the First Time"}} |
| |
128.1 | 19 | |
| |
174.1 | 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 | ||
| |
77.1 | 23 | |
| |
170.1 | 24 | # Navigate into the working copy root |
| 25 | cd WonderSource | ||
| |
128.1 | 26 | |
| |
184.1 | 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 | |||
| |
176.1 | 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) | ||
| |
170.1 | 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 | {{/code}} | ||
| 39 | |||
| 40 | == Source Frameworks Upgrade Installation == | ||
| 41 | |||
| |
174.1 | 42 | 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. |
| |
170.1 | 43 | |
| |
176.1 | 44 | {{code title="Updating your Source"}} |
| |
170.1 | 45 | |
| 46 | # Navigate to the Roots directory that was automatically created by the initial Source installation procedure above | ||
| 47 | cd ~/Roots/ | ||
| 48 | |||
| 49 | # Delete all installed frameworks whose names match the built frameworks in this Roots build folder | ||
| 50 | for FRAMEWORK in `echo *.framework`; do sudo rm -r /Library/Frameworks/${FRAMEWORK}; done | ||
| 51 | |||
| 52 | # Navigate to the original Wonder source directory that you created above during initial source installation | ||
| |
142.1 | 53 | cd /path/to/WonderSource |
| 54 | |||
| |
174.1 | 55 | # Pull the changes you do not have and merge them with your local repository |
| 56 | git pull | ||
| |
142.1 | 57 | |
| |
170.1 | 58 | # Clean, build and install the frameworks |
| 59 | ant clean; ant frameworks; sudo ant frameworks.install | ||
| |
142.1 | 60 | |
| |
170.1 | 61 | {{/code}} |
| |
156.1 | 62 | |
| |
170.1 | 63 | {{info}} |
| |
168.1 | 64 | |
| |
174.1 | 65 | 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. |
| |
142.1 | 66 | |
| |
170.1 | 67 | {{/info}} |
| |
142.1 | 68 | |
| |
170.1 | 69 | {{info value="Custom Development Enviroment File layout using Custom wolips.properties"}} |
| |
142.1 | 70 | |
| |
174.1 | 71 | 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. |
| |
170.1 | 72 | |
| 73 | For example: | ||
| 74 | |||
| 75 | {code} | ||
| |
174.1 | 76 | $ cd my/special/purpose/clone/of/Wonder |
| |
170.1 | 77 | $ ln -s ~/Library/Application\ Support/WOLips/wolips.custom.properties build.properties |
| 78 | {code} | ||
| 79 | |||
| 80 | 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. | ||
| 81 | |||
| 82 | *Tip:* Specify a custom build directory for Wonder by adding the property 'wo.external.root' to the custom wolips properties file, for example | ||
| 83 | {code} | ||
| 84 | wo.external.root=/Users/mike/Developer/special/directory/Roots | ||
| 85 | {code} | ||
| 86 | |||
| |
174.1 | 87 | *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. |
| |
170.1 | 88 | |
| 89 | {{/info}} | ||
| |
178.1 | 90 | |
| 91 | {{info value="Legacy WebObjects 5.3.3 Compatability"}} | ||
| 92 | |||
| 93 | 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: | ||
| |
184.1 | 94 | |
| |
178.1 | 95 | {code} |
| 96 | git checkout --track origin/Wonder_5_0_0_Legacy | ||
| |
180.1 | 97 | {code} |
| |
178.1 | 98 | |
| |
184.1 | 99 | |
| |
178.1 | 100 | {{/info}} |