Wiki source code of Downloading, Building, Installing and Upgrading Wonder Source Code
Version 114.1 by David Avendasora on 2011/04/25 12:42
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 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 | |||
12 | == Download Project Wonder Source Code == | ||
13 | |||
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}} | ||
17 | |||
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. | ||
19 | |||
20 | 1. Clone the source repository from github into a new directory named "WonderSource". | ||
21 | |||
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 | |||
26 | {{code}} | ||
27 | git clone git://github.com/projectwonder/wonder.git WonderSource | ||
28 | {{/code}} | ||
29 | |||
30 | 1. Navigate into the working copy root | ||
31 | |||
32 | {{code}} | ||
33 | cd WonderSource | ||
34 | {{/code}} | ||
35 | |||
36 | {{note title="WebObjects 5.3.3 Compatability"}} | ||
37 | 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} | ||
38 | |||
39 | {{/note}} | ||
40 | |||
41 | == Build Frameworks == | ||
42 | |||
43 | 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: | ||
44 | |||
45 | 1. Build the frameworks from the "cloned" source. | ||
46 | |||
47 | {{code}} | ||
48 | ant frameworks | ||
49 | {{/code}} | ||
50 | |||
51 | 1. Install the frameworks (this just copies the built frameworks from /Roots to the runtime Frameworks directory, usually at /Library/Frameworks) | ||
52 | |||
53 | {{code}} | ||
54 | sudo ant frameworks.install | ||
55 | {{/code}} | ||
56 | |||
57 | == Built Frameworks Upgrade Installation == | ||
58 | |||
59 | 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. | ||
60 | |||
61 | 1. Navigate to the Roots directory that was automatically created by the initial Source installation procedure above | ||
62 | |||
63 | {{code}} | ||
64 | cd ~/Roots/ | ||
65 | {{/code}} | ||
66 | |||
67 | 1. Delete all installed frameworks whose names match the built frameworks in this Roots build folder | ||
68 | |||
69 | {{code}} | ||
70 | for FRAMEWORK in `echo *.framework`; do sudo rm -r /Library/Frameworks/${FRAMEWORK}; done | ||
71 | {{/code}} | ||
72 | |||
73 | 1. Navigate to the original Wonder source directory that you created above during initial source installation | ||
74 | |||
75 | {{code}} | ||
76 | cd /path/to/WonderSource | ||
77 | {{/code}} | ||
78 | |||
79 | 1. Pull the changes you do not have and merge them with your local repository | ||
80 | |||
81 | {{code}} | ||
82 | git pull | ||
83 | {{/code}} | ||
84 | |||
85 | 1. Clean, build and install the frameworks | ||
86 | |||
87 | {{code}} | ||
88 | |||
89 | ant clean | ||
90 | ant frameworks | ||
91 | sudo ant frameworks.install | ||
92 | |||
93 | {{/code}} | ||
94 | |||
95 | {{info}} | ||
96 | |||
97 | 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. | ||
98 | |||
99 | {{/info}} | ||
100 | |||
101 | {{info value="Custom Development Enviroment File layout using Custom wolips.properties"}} | ||
102 | |||
103 | 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. | ||
104 | |||
105 | For example: | ||
106 | |||
107 | {code} | ||
108 | $ cd my/special/purpose/clone/of/Wonder | ||
109 | $ ln -s ~/Library/Application\ Support/WOLips/wolips.custom.properties build.properties | ||
110 | {code} | ||
111 | |||
112 | 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. | ||
113 | |||
114 | *Tip:* Specify a custom build directory for Wonder by adding the property 'wo.external.root' to the custom wolips properties file, for example | ||
115 | {code} | ||
116 | wo.external.root=/Users/mike/Developer/special/directory/Roots | ||
117 | {code} | ||
118 | |||
119 | *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. | ||
120 | |||
121 | {{/info}} |