Wiki source code of Java Client-WebStart Incremental Build
Version 24.1 by David Avendasora on 2009/01/22 08:33
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | There are many ways you can deploy WebObjects JavaClient applications. One of the ways to do it is through WebStart. You could manually create a WebStart app, but WebObjects can also do it for you, taking care of JNLP creation, jar organization, and many WebStart nasty bits. | ||
2 | |||
3 | There is a problem however. The WOLips incremental builder will not automatically create the required jar of your client-side classes and place it in the project.woa/Contents/WebServerResources/Java/ directory as is required by a WebObjects WebStart Java Client application. | ||
4 | |||
5 | Without the client classes placed in WebServerResources, Eclipse's built-in Run... command will not work properly as the client application will not have access to its classes and WebObjects will silently fall-back to EOGenericRecord. This causes the confusing condition of the application launching and likely not generating any errors, but not working correctly either. | ||
6 | |||
7 | Below are the steps for adding an additional "Ant Builder" to your project to generate and place the required jar in the right location. | ||
8 | |||
9 | 1. Create a "javaclientbuild.xml" file in the root of your project, with the following as its contents: | ||
10 | |||
11 | {{code value="xml"}} | ||
12 | |||
13 | <project name="javaclient" default="javaclient" basedir="."> | ||
14 | <target name="setProps"> | ||
15 | <property file="${user.home}${file.separator}build.properties"/> | ||
16 | <property file="build.properties"/> | ||
17 | <property file="${user.home}${file.separator}Library${file.separator}wobuild.properties"/> | ||
18 | <condition property="wo.properties.check.failed"> | ||
19 | <not> | ||
20 | <and> | ||
21 | <isset property="wo.wosystemroot"/> | ||
22 | <isset property="wo.wolocalroot"/> | ||
23 | </and> | ||
24 | </not> | ||
25 | </condition> | ||
26 | <fail message="Could not find ${user.home}${file.separator}Library${file.separator}wobuild.properties." if="wo.properties.check.failed"/> | ||
27 | </target> | ||
28 | <target name="javaclient" depends="setProps"> | ||
29 | <mkdir dir="build/${project.name}.woa/Contents/WebServerResources/Java"/> | ||
30 | |||
31 | <!-- project client-side classes --> | ||
32 | <copy todir="build/${project.name}.woa/Contents/WebServerResources/Java/"> | ||
33 | <fileset dir="${classes.dir}"> | ||
34 | <include name="**/client/**/*.class,**/common/**/*.class,**/BMGenericRecord.class"/> | ||
35 | <exclude name="**/server/**/*.class"/> | ||
36 | </fileset> | ||
37 | </copy> | ||
38 | |||
39 | <jar basedir="${classes.dir}" | ||
40 | includes="**/client/**/*.class,**/common/**/*.class" | ||
41 | excludes="**/server/**/*.class" | ||
42 | jarfile="build/${project.name}.woa/Contents/WebServerResources/Java/${project.name}.jar"> | ||
43 | </jar> | ||
44 | |||
45 | <!-- Launch Scripts and WOBootstrap.jar--> | ||
46 | <mkdir dir="build/${project.name}.woa/Contents/MacOS"/> | ||
47 | <mkdir dir="build/${project.name}.woa/Contents/UNIX"/> | ||
48 | <mkdir dir="build/${project.name}.woa/Contents/Windows"/> | ||
49 | |||
50 | <copy file="/Library/Application Support/Apple/Developer Tools/WebObjects Support/UnixLaunch.sh" | ||
51 | tofile="build/${project.name}.woa/Contents/${project.name}"/> | ||
52 | <chmod file="build/${project.name}.woa/Contents/${project.name}" perm="ugo+rx"/> | ||
53 | <copy file="/Library/Application Support/Apple/Developer Tools/WebObjects Support/WinLaunch.CMD" | ||
54 | tofile="build/${project.name}.woa/Contents/${project.name}.CMD"/> | ||
55 | <copy file="/Library/Application Support/Apple/Developer Tools/WebObjects Support/WOBootstrap.jar" | ||
56 | tofile="build/${project.name}.woa/Contents/WOBootstrap.jar"/> | ||
57 | |||
58 | <copy file="/Library/Application Support/Apple/Developer Tools/WebObjects Support/UnixLaunchClient.sh" | ||
59 | tofile="build/${project.name}.woa/Contents/MacOS/${project.name}_Client"/> | ||
60 | <chmod file="build/${project.name}.woa/Contents/MacOS/${project.name}_Client" perm="ugo+rx"/> | ||
61 | <copy file="ClasspathClient.txt" tofile="build/${project.name}.woa/Contents/MacOS/ClasspathClient.txt"/> | ||
62 | |||
63 | <copy file="/Library/Application Support/Apple/Developer Tools/WebObjects Support/WinLaunch.CMD" | ||
64 | tofile="build/${project.name}.woa/Contents/Windows/${project.name}.CMD"/> | ||
65 | |||
66 | </target> | ||
67 | </project> | ||
68 | {{/code}} | ||
69 | |||
70 | 1. Right-Click on your project, and select Properties. | ||
71 | 1. Click on "Builders" on the left side. | ||
72 | [[image:Picture 2.png]] | ||
73 | 1. Click the "New" button. | ||
74 | 1. Select "Ant Build" and click "Okay". | ||
75 | 1. Name it "Java Client Incremental Builder" | ||
76 | 1. Under the "Main" tab, click "Browse Workspace". | ||
77 | 1. Click on your Project, and select the javaclientbuild.xml file you created in step 1, click "Okay". | ||
78 | [[image:Picture 3.png]] | ||
79 | 1. Under the "Refresh" tab, check "Refresh resources upon completion." and select "The project containing the selected resource" | ||
80 | [[image:Picture 4.png]] | ||
81 | 1. Under the "Targets" tab, set "javaclient" for "After a 'Clean'", "Manual Build" and "Auto Build". | ||
82 | [[image:Picture 5.png]] | ||
83 | It will show up as "<Default Target Selected>" | ||
84 | [[image:Picture 7.png]] | ||
85 | 1. Click okay to close the Builder Properties window. | ||
86 | 1. Make sure your new Builder is checked and executes AFTER the WOLips Incremental Builder, otherwise it will error. | ||
87 | 1. Click "Okay" to exit Project Properties. | ||
88 | |||
89 | Done. You can now use the Eclipse "Run..." command just as you would for any other WOLips project. |