Wiki source code of Downloading, Building, Installing and Upgrading Wonder Source Code
Version 120.1 by David Avendasora on 2011/04/25 12:59
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
112.1 | 1 | == Introduction == |
![]() |
77.1 | 2 | |
![]() |
112.1 | 3 | Instead of downloading the Wonder binaries, working from the latest source code directly can have some advantages such as: |
![]() |
77.1 | 4 | |
![]() |
112.1 | 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 | ||
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 | |||
![]() |
118.1 | 12 | == Downloading == |
![]() |
112.1 | 13 | |
14 | {{tip title="Now with more Git"}} | ||
![]() |
114.1 | 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. |
![]() |
106.1 | 16 | {{/tip}} |
![]() |
77.1 | 17 | |
![]() |
118.1 | 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. |
![]() |
77.1 | 19 | |
![]() |
120.1 | 20 | 1. Clone the source repository from github into a new directory named "WonderSource". |
![]() |
77.1 | 21 | |
![]() |
114.1 | 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}} | ||
25 | |||
![]() |
118.1 | 26 | {{code value="none"}} |
![]() |
112.1 | 27 | git clone git://github.com/projectwonder/wonder.git WonderSource |
28 | {{/code}} | ||
![]() |
77.1 | 29 | |
![]() |
118.1 | 30 | You should see output something like this: |
![]() |
77.1 | 31 | |
![]() |
118.1 | 32 | {{noformat}} |
33 | |||
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. | ||
40 | |||
41 | {{/noformat}} | ||
42 | |||
![]() |
120.1 | 43 | 1. Navigate into the working copy root |
![]() |
118.1 | 44 | |
45 | {{code value="none"}} | ||
![]() |
112.1 | 46 | cd WonderSource |
47 | {{/code}} | ||
![]() |
77.1 | 48 | |
![]() |
112.1 | 49 | {{note title="WebObjects 5.3.3 Compatability"}} |
![]() |
120.1 | 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} |
![]() |
79.1 | 51 | |
![]() |
112.1 | 52 | {{/note}} |
53 | |||
![]() |
118.1 | 54 | == Building == |
![]() |
112.1 | 55 | |
![]() |
120.1 | 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: |
![]() |
118.1 | 57 | |
![]() |
120.1 | 58 | 1. Build the frameworks from the "cloned" source. |
![]() |
118.1 | 59 | |
60 | {{code value="none"}} | ||
![]() |
112.1 | 61 | ant frameworks |
![]() |
106.1 | 62 | {{/code}} |
![]() |
90.1 | 63 | |
![]() |
120.1 | 64 | 1. Install the frameworks (this just copies the built frameworks from /Roots to the runtime Frameworks directory, usually at /Library/Frameworks) |
![]() |
106.1 | 65 | |
![]() |
118.1 | 66 | {{code value="none"}} |
![]() |
112.1 | 67 | sudo ant frameworks.install |
68 | {{/code}} | ||
![]() |
106.1 | 69 | |
![]() |
120.1 | 70 | == Installing and Upgrading == |
![]() |
106.1 | 71 | |
![]() |
120.1 | 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. |
![]() |
106.1 | 73 | |
![]() |
120.1 | 74 | 1. Navigate to the Roots directory that was automatically created by the initial Source installation procedure above |
![]() |
77.1 | 75 | |
![]() |
118.1 | 76 | {{code value="none"}} |
![]() |
112.1 | 77 | cd ~/Roots/ |
![]() |
118.1 | 78 | {{/code}} |
![]() |
77.1 | 79 | |
![]() |
120.1 | 80 | 1. Delete all installed frameworks whose names match the built frameworks in this Roots build folder |
![]() |
118.1 | 81 | |
82 | {{code value="none"}} | ||
![]() |
112.1 | 83 | for FRAMEWORK in `echo *.framework`; do sudo rm -r /Library/Frameworks/${FRAMEWORK}; done |
![]() |
118.1 | 84 | {{/code}} |
![]() |
77.1 | 85 | |
![]() |
120.1 | 86 | 1. Navigate to the original Wonder source directory that you created above during initial source installation |
![]() |
118.1 | 87 | |
88 | {{code value="none"}} | ||
![]() |
112.1 | 89 | cd /path/to/WonderSource |
![]() |
118.1 | 90 | {{/code}} |
![]() |
86.1 | 91 | |
![]() |
120.1 | 92 | 1. Pull the changes you do not have and merge them with your local repository |
![]() |
118.1 | 93 | |
94 | {{code value="none"}} | ||
![]() |
112.1 | 95 | git pull |
96 | {{/code}} | ||
![]() |
106.1 | 97 | |
![]() |
120.1 | 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 | |||
![]() |
106.1 | 108 | {{info}} |
109 | |||
![]() |
112.1 | 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. |
![]() |
106.1 | 111 | |
112 | {{/info}} | ||
113 | |||
![]() |
112.1 | 114 | {{info value="Custom Development Enviroment File layout using Custom wolips.properties"}} |
![]() |
106.1 | 115 | |
![]() |
112.1 | 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. |
![]() |
106.1 | 117 | |
![]() |
112.1 | 118 | For example: |
![]() |
106.1 | 119 | |
![]() |
118.1 | 120 | {code:none} |
121 | cd my/special/purpose/clone/of/Wonder | ||
122 | ln -s ~/Library/Application\ Support/WOLips/wolips.custom.properties build.properties | ||
![]() |
112.1 | 123 | {code} |
![]() |
106.1 | 124 | |
![]() |
112.1 | 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. |
![]() |
106.1 | 126 | |
![]() |
112.1 | 127 | *Tip:* Specify a custom build directory for Wonder by adding the property 'wo.external.root' to the custom wolips properties file, for example |
![]() |
118.1 | 128 | {code:none} |
![]() |
112.1 | 129 | wo.external.root=/Users/mike/Developer/special/directory/Roots |
130 | {code} | ||
![]() |
106.1 | 131 | |
![]() |
112.1 | 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. |
![]() |
106.1 | 133 | |
![]() |
112.1 | 134 | {{/info}} |