Last modified by Pascal Robert on 2012/07/21 20:39
From version 64.1
edited by Pascal Robert
on 2012/07/21 20:39
on 2012/07/21 20:39
Change comment:
Migrated to Confluence 4.0
To version 66.2
edited by Pascal Robert
on 2012/07/21 20:39
on 2012/07/21 20:39
Change comment:
Changed document parent to [xwiki:WOL.Home.Deprecated info.WebHome].
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 8 added, 0 removed)
Details
- Page properties
-
- Parent
-
... ... @@ -1,0 +1,1 @@ 1 +WOL.Home.Deprecated info.WebHome - Tags
-
... ... @@ -1,0 +1,1 @@ 1 +favourite
- ant_tasks.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.XWikiGuest - Size
-
... ... @@ -1,0 +1,1 @@ 1 +37.0 KB - Content
- app_bundle_layout.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.XWikiGuest - Size
-
... ... @@ -1,0 +1,1 @@ 1 +63.2 KB - Content
- build_artifacts.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.XWikiGuest - Size
-
... ... @@ -1,0 +1,1 @@ 1 +17.6 KB - Content
- custom_app_name.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.XWikiGuest - Size
-
... ... @@ -1,0 +1,1 @@ 1 +40.8 KB - Content
- modern_project_layout.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.XWikiGuest - Size
-
... ... @@ -1,0 +1,1 @@ 1 +25.3 KB - Content
- running_the_script.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.XWikiGuest - Size
-
... ... @@ -1,0 +1,1 @@ 1 +46.9 KB - Content
- split_embedded_build.xml
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.XWikiGuest - Size
-
... ... @@ -1,0 +1,1 @@ 1 +13.7 KB - Content
-
... ... @@ -1,0 +1,294 @@ 1 +<project name="Workbench" default="build" basedir="."> 2 + <!-- KK: WARNING: The embedded webserver bundle may not be generated correctly with WOLips versions 3 + earlier than 4118 --> 4 + <!-- KK: This build script is based on standard WOLips script that comes with WOApplication template 5 + Changes and additions are commented. Use diff tool to compare this to standard WOLips build.xml if u like --> 6 + 7 + <!-- main targets --> 8 + <!-- add optional targets to depends list if needed --> 9 + <!-- KK: additional depends targets added: record.build.info, ws.split.embed --> 10 + <target name="build" depends="setProps,init.build,build.woapp,ws.split.embed,ssdd,war"/> 11 + 12 + <target name="compileAndBuild" depends="setProps,init.build,compile,build.woapp,ws.split.embed,ssdd,war" /> 13 + 14 + <target name="install" depends="setProps,init.install,build.woapp,ws.split.embed,ssdd,war"/> 15 + 16 + <target name="clean" depends="setProps"> 17 + <delete dir="dist"/> 18 + </target> 19 + 20 + <!-- property determination --> 21 + <target name="setProps"> 22 + <property file="${user.home}${file.separator}build.properties"/> 23 + <property file="build.properties"/> 24 + <property file="${user.home}${file.separator}Library${file.separator}wobuild.properties"/> 25 + <condition property="wo.properties.check.failed"> 26 + <not> 27 + <and> 28 + <isset property="wo.wosystemroot"/> 29 + <isset property="wo.wolocalroot"/> 30 + </and> 31 + </not> 32 + </condition> 33 + <fail message="Could not find ${user.home}${file.separator}Library${file.separator}wobuild.properties." if="wo.properties.check.failed"/> 34 + <property name="install.dir" value="${wo.wolocalroot}/Library/WebObjects/Applications"/> 35 + 36 + <!-- KK: the next property supports webserver split install bundle installation location --> 37 + <property name="wsinstall.dir" value="${wo.wolocalroot}/Library/WebServer/Documents"/> 38 + 39 + <!-- KK: Defaults property 'build.app.name' to be 'project.name' if not already defined explicitly --> 40 + <condition property="build.app.name" value="${build.app.name}" else="${project.name}"> 41 + <and> 42 + <isset property="build.app.name"/> 43 + </and> 44 + </condition> 45 + 46 + <!-- KK: This next line logs all ant properties to console - useful for troubleshooting build failures --> 47 + <echoproperties /> 48 + </target> 49 + 50 + <!-- basic initializations --> 51 + <target name="init.install"> 52 + <tstamp/> 53 + <property name="dest.dir" value="${install.dir}"/> 54 + <!-- KK: Sets the webserver document root as destination --> 55 + <property name="wsdest.dir" value="${wsinstall.dir}"/> 56 + </target> 57 + 58 + <target name="init.build"> 59 + <tstamp/> 60 + <property name="dest.dir" value="dist"/> 61 + <!-- KK: Since the bundle names are the same for app and ws split bundle, put ws bundle in sub-dir --> 62 + <property name="wsdest.dir" value="dist/ws_root"/> 63 + </target> 64 + 65 + <!-- This copies webserver resources from app.woa's embedded frameworks into split install bundle --> 66 + <target name="ws.split.embed" 67 + depends="setProps,build.woapp" 68 + description="Adds embedded framework webserver resources to the split install bundle by copying from deployment build bundle"> 69 + <copy todir="${wsdest.dir}/WebObjects/${build.app.name}.woa" 70 + verbose="true"> 71 + <fileset dir="${dest.dir}/${build.app.name}.woa/Contents/Library"> 72 + <include name="Frameworks/*.framework/WebServerResources/**"/> 73 + </fileset> 74 + </copy> 75 + <!-- create a tar archive of the webserver bundle --> 76 + <tar destfile="${wsdest.dir}/WebObjects/${build.app.name}-webserver-bundle.tar.gz" 77 + compression="gzip" 78 + basedir="${wsdest.dir}/WebObjects" 79 + longfile="gnu" 80 + includes="${build.app.name}.woa/**"> 81 + </tar> 82 + </target> 83 + 84 + <!-- woproject tasks --> 85 + <target name="build.woapp" depends="setProps,init.build,compile"> 86 + 87 + <taskdef name="woapplication" classname="org.objectstyle.woproject.ant.WOApplication"> 88 + </taskdef> 89 + 90 + <!-- add webXML="true" in build.properties file to generate a web.xml file --> 91 + <!-- KK: added wsDestDir and frameworksBaseURL properties here --> 92 + <!-- using build.app.name instead of project name --> 93 + <!-- KK: About frameworksBaseURL: This is not documented, but basically it adds this info as a 94 + launch argument inside the application executable script resulting in ALL webserver 95 + resource URLs pointing to our embedded webserver resource frameworks. 96 + Consequently, we MUST embed ALL frameworks including Apple's frameworks, not 97 + just the 3rd party ones in wo.localroot if we are to use this feature --> 98 + <woapplication name="${build.app.name}" stdFrameworks="false" 99 + destDir="${dest.dir}" 100 + customInfoPListContent="${customInfoPListContent}" 101 + principalClass="${principalClass}" 102 + webXML="${webXML}" 103 + webXML_CustomContent="${webXML_CustomContent}" 104 + wsDestDir="${wsdest.dir}" 105 + frameworksBaseURL="/WebObjects/${build.app.name}.woa/Frameworks"> 106 + <classes dir="${classes.dir}"> 107 + <patternset> 108 + <includesfile name="woproject/classes.include.patternset"/> 109 + <excludesfile name="woproject/classes.exclude.patternset"/> 110 + </patternset> 111 + </classes> 112 + <wsresources dir="."> 113 + <patternset> 114 + <includesfile name="woproject/wsresources.include.patternset"/> 115 + <excludesfile name="woproject/wsresources.exclude.patternset"/> 116 + </patternset> 117 + </wsresources> 118 + <resources dir="."> 119 + <patternset> 120 + <includesfile name="woproject/resources.include.patternset"/> 121 + <excludesfile name="woproject/resources.exclude.patternset"/> 122 + </patternset> 123 + </resources> 124 + <!-- KK: Changed embed to true --> 125 + <frameworks root="${wo.wolocalroot}" embed="true"> 126 + <patternset> 127 + <includesfile name="woproject/ant.frameworks.wo.wolocalroot"/> 128 + </patternset> 129 + </frameworks> 130 + <!-- KK: Changed embed to true --> 131 + <frameworks root="${wo.wosystemroot}" embed="true"> 132 + <patternset> 133 + <includesfile name="woproject/ant.frameworks.wo.wosystemroot"/> 134 + </patternset> 135 + </frameworks> 136 + <!-- KK: Changed embed to true --> 137 + <frameworks root="${user.home}" embed="true"> 138 + <patternset> 139 + <includesfile name="woproject/ant.frameworks.user.home"/> 140 + </patternset> 141 + </frameworks> 142 + <otherclasspath root="${wo.wosystemroot}"> 143 + <patternset> 144 + <includesfile name="woproject/ant.classpaths.wo.wosystemroot"/> 145 + </patternset> 146 + </otherclasspath> 147 + <lib dir="Libraries"> 148 + <include name="*.jar"/> 149 + <exclude name="**/*.woa/**"/> 150 + </lib> 151 + </woapplication> 152 + 153 + <!-- create a tar archive of the application bundle --> 154 + <tar destfile="${dest.dir}/${build.app.name}-app-bundle.tar.gz" 155 + compression="gzip" 156 + basedir="${dest.dir}" 157 + longfile="gnu" 158 + includes="${build.app.name}.woa/**"> 159 + </tar> 160 + </target> 161 + 162 + <!-- optional targets --> 163 + 164 + <!-- war target--> 165 + <!-- To use this target remove the if="${never}" statement and create the LICENSE in your project 166 + and create the web.xml file with the woapplication task.--> 167 + <target name="war" if="${never}" depends="ssdd"> 168 + <war destfile="${dest.dir}/${project.name}.war" webxml="${dest.dir}/${project.name}/WEB-INF/web.xml" basedir="${dest.dir}/${project.name}"> 169 + <lib dir="${wo.wosystemroot}/Library/Frameworks/JavaWOJSPServlet.framework/WebServerResources/Java/"> 170 + <include name="JavaWOJSPServlet_client.jar"/> 171 + </lib> 172 + </war> 173 + <copy todir="/tmp/${project.name}.dst/Library/WebObjects/Applications/"> 174 + <fileset dir="${dest.dir}"> 175 + <include name="${project.name}.woa/**"/> 176 + </fileset> 177 + </copy> 178 + </target> 179 + 180 + <!-- ssdd target--> 181 + <!-- To use this target 182 + 1) remove the if="${never}" statement 183 + 2) change embed=true in the woapp target above 184 + 3) create the LICENSE in your project directory 185 + 4) add JavaWOJSPServlet in your WOFrameworks build path 186 + 5) Edit the build.properties file 187 + 6) set webXML = true 188 + --> 189 + <target name="ssdd" if="${never}" depends="build.woapp"> 190 + <mkdir dir="${dest.dir}/${project.name}/WEB-INF/classes"/> 191 + <mkdir dir="${dest.dir}/${project.name}/WEB-INF/tlds"/> 192 + <copy todir="${dest.dir}/${project.name}/WEB-INF/"> 193 + <fileset dir="${dest.dir}/${project.name}.woa/Contents/"> 194 + <include name="web.xml"/> 195 + </fileset> 196 + </copy> 197 + <copy todir="${dest.dir}/${project.name}/WEB-INF/"> 198 + <fileset dir="."> 199 + <include name="LICENSE"/> 200 + </fileset> 201 + </copy> 202 + <copy todir="${dest.dir}/${project.name}/WEB-INF/"> 203 + <fileset dir="${dest.dir}"> 204 + <include name="${project.name}.woa/**"/> 205 + </fileset> 206 + </copy> 207 + <!-- copy the frameworks to the WEBINFROOT/Library directory --> 208 + <copy todir="${dest.dir}/${project.name}/WEB-INF/"> 209 + <fileset dir="${dest.dir}/${project.name}.woa/Contents"> 210 + <include name="Library/**"/> 211 + </fileset> 212 + </copy> 213 + <copy todir="${dest.dir}/${project.name}/WEB-INF/"> 214 + <fileset dir="${dest.dir}/${project.name}.woa"> 215 + <include name="Resources/**"/> 216 + </fileset> 217 + </copy> 218 + <copy todir="${dest.dir}/${project.name}/WEB-INF/lib/"> 219 + <fileset dir="${dest.dir}/${project.name}/WEB-INF"> 220 + <include name="**/Resources/**/*.jar"/> 221 + </fileset> 222 + <mapper type="flatten"/> 223 + </copy> 224 + 225 + <!-- Get the necessary Frameworks from the webobjects system root instead of the project wrapper --> 226 + <copy todir="${dest.dir}/${project.name}/WEB-INF/lib" 227 + file="${wo.wosystemroot}/Library/Frameworks/JavaWOJSPServlet.framework/WebServerResources/Java/JavaWOJSPServlet_client.jar" /> 228 + 229 + <copy todir="${dest.dir}/${project.name}/WEB-INF/tlds"> 230 + <fileset dir="${wo.wosystemroot}/Library/Frameworks/JavaWOJSPServlet.framework/Resources/"> 231 + <include name="WOtaglib_1_0.tld"/> 232 + </fileset> 233 + </copy> 234 + <!-- the WebObject Extensions --> 235 + <copy todir="${dest.dir}/${project.name}/WEB-INF/lib"> 236 + <fileset dir="/Library/WebObjects/Extensions/"> 237 + <include name="*.jar"/> 238 + <exclude name="servlet.jar"/> 239 + </fileset> 240 + <mapper type="flatten"/> 241 + </copy> 242 + 243 + 244 + <!-- fix the Macos*ClassPath.txt files --> 245 + 246 + <replaceregexp file="${dest.dir}/${project.name}/WEB-INF/${project.name}.woa/Contents/MacOS/MacOSClassPath.txt" 247 + match="APPROOT/Resources/Java/${project.name.lowercase}.jar" 248 + replace="APPROOT/${project.name}.woa/Contents/Resources/Java/${project.name.lowercase}.jar" byline="true" /> 249 + 250 + <replaceregexp file="${dest.dir}/${project.name}/WEB-INF/${project.name}.woa/Contents/MacOS/MacOSXServerClassPath.txt" 251 + match="APPROOT/Resources/Java/${project.name.lowercase}.jar" 252 + replace="APPROOT/${project.name}.woa/Contents/Resources/Java/${project.name.lowercase}.jar" byline="true" /> 253 + 254 + <!-- fix the web.xml file: the app itself needs project.name/Contents --> 255 + 256 + <replaceregexp file="${dest.dir}/${project.name}/WEB-INF/web.xml" match="WEBINFROOT/Resources/Java/${project.name.lowercase}.jar" 257 + replace="WEBINFROOT/${project.name}.woa/Contents/Resources/Java/${project.name.lowercase}.jar" byline="true" /> 258 + 259 + <!-- fix the web.xml file to remove the extra Frameworks/ directory level for the frameworks --> 260 + 261 + <replaceregexp file="${dest.dir}/${project.name}/WEB-INF/web.xml" match="WEBINFROOT/Frameworks//" 262 + replace="WEBINFROOT/" byline="true" /> 263 + 264 + </target> 265 + 266 + <!-- copy strings files --> 267 + <target name="copy.strings"> 268 + <copy todir="${dest.dir}/${project.name}.woa/Contents/Resources"> 269 + <fileset dir="." casesensitive="yes"> 270 + <include name="*.strings"/> 271 + <include name="**/*.strings"/> 272 + </fileset> 273 + <mapper type="flatten"/> 274 + </copy> 275 + </target> 276 + 277 + <target name = "compile" depends = "setProps,init.build" > 278 + <mkdir dir = "bin"/> 279 + <javac srcdir = "Sources" destdir = "bin"> 280 + <classpath> 281 + <fileset dir="${wo.dir.user.home.library.frameworks}" includesfile = "woproject/ant.frameworks.user.home"> 282 + <include name = "**/*.jar"/> 283 + </fileset> 284 + <fileset dir="${wo.wolocalroot}" includesfile = "woproject/ant.frameworks.wo.wolocalroot"> 285 + <include name = "**/*.jar"/> 286 + </fileset> 287 + <fileset dir="${wo.wosystemroot}" includesfile = "woproject/ant.frameworks.wo.wosystemroot"> 288 + <include name = "**/*.jar"/> 289 + </fileset> 290 + </classpath> 291 + </javac> 292 + </target> 293 +</project> 294 +
- webserver_bundle_layout.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.XWikiGuest - Size
-
... ... @@ -1,0 +1,1 @@ 1 +37.2 KB - Content