Changes for page Embedding WOFrameworks

Last modified by Gavin Eadie on 2011/07/29 18:09

From version 26.1
edited by Kieran Kelleher
on 2007/03/30 15:59
Change comment: There is no comment for this version
To version 27.1
edited by Kieran Kelleher
on 2007/08/15 12:32
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,3 +1,68 @@
1 +== Simple Approach ==
2 +
3 +This simple approach can be used to embed frameworks already **installed** on your development machine right into the app.woa bundle.
4 +
5 +Open your build.xml project file and change embed="false" to embed="true" for the appropriate directory paths in this section of the build.xml file inside the woapplication task
6 +
7 +{{code title="Default build.xml snippet"}}
8 +
9 + <frameworks root="${wo.wolocalroot}" embed="false">
10 + <patternset>
11 + <includesfile name="woproject/ant.frameworks.wo.wolocalroot"/>
12 + </patternset>
13 + </frameworks>
14 + <frameworks root="${user.home}" embed="false">
15 + <patternset>
16 + <includesfile name="woproject/ant.frameworks.user.home"/>
17 + </patternset>
18 + </frameworks>
19 + <frameworks root="${wo.wosystemroot}" embed="false">
20 + <patternset>
21 + <includesfile name="woproject/ant.frameworks.wo.wosystemroot"/>
22 + </patternset>
23 + </frameworks>
24 +
25 +{{/code}}
26 +
27 +The most common choice is to embed locally installed WOnder and 3rd party frameworks that your app references by setting embed="true" on the wolocalroot frameworks dir as shown below:
28 +
29 +{{code title="Changes to build.xml to embed frameworks installed in /Library/Frameworks dir"}}
30 +
31 + <frameworks root="${wo.wolocalroot}" embed="true">
32 + <patternset>
33 + <includesfile name="woproject/ant.frameworks.wo.wolocalroot"/>
34 + </patternset>
35 + </frameworks>
36 + <frameworks root="${user.home}" embed="false">
37 + <patternset>
38 + <includesfile name="woproject/ant.frameworks.user.home"/>
39 + </patternset>
40 + </frameworks>
41 + <frameworks root="${wo.wosystemroot}" embed="false">
42 + <patternset>
43 + <includesfile name="woproject/ant.frameworks.wo.wosystemroot"/>
44 + </patternset>
45 + </frameworks>
46 +
47 +{{/code}}
48 +
49 +The various dirs referenced in the build.xml from which you can select the embed option are:
50 +
51 +|=dir name|=Description
52 +|wo.wolocalroot|/Library/Frameworks/
53 +\\Embedding these is most useful especially if you the codebase for these, like WOnder frameworks or your own, is frequently updated
54 +|user.home|,,/,,
55 +|wo.systemroot|/System/Library/Frameworks/
56 +\\This is where Apple's WebObjects frameworks are installed and if your WebObjects version is consistent between your deployment and development platforms, then embedding these is not of much benefit.
57 +
58 +{{panel title="Note" bgColor="#FFFFCE"}}
59 +
60 +If you are working with framework source in your Eclipse workspace (which you should be!), then it is critical that you build and install all frameworks before building the deployment bundles to ensure that the embedded frameworks are the same as the source you have been developing and testing with.
61 +
62 +{{/panel}}
63 +
64 +== Advanced Approach ==
65 +
1 1  **Caveat:** This example assumes that each framework you want to embed has an ant "build.xml" file with a "compileAndBuild" target. For frameworks you create yourself using WOLips, you will have this, but for a case where you are checking out individual Wonder framework projects from CVS, then you probably will not have such a build.xml file, so this approach is not quick to implement in that case unless you want to spend a lot of time working on ant build files to resolve the missing build.xml having a compileAndBuild target for those external projects. (KK 3/30/2007)
2 2  
3 3  ----