Neue Version von ecdc, siehe tools-ng/ecdc/README. Sollte jetzt uneingeschraenkt funktionieren.

git-svn-id: https://svn.libreccm.org/ccm/trunk@141 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2009-04-19 18:30:14 +00:00
parent b23325ffd2
commit 1ef9fee384
5 changed files with 1085 additions and 132 deletions

View File

@ -71,7 +71,7 @@
</annotation> </annotation>
</attribute> </attribute>
<attribute name="release" type="integer"> <attribute name="release" type="string">
<annotation> <annotation>
<documentation xml:lang="en">The release number for the bundle packages</documentation> <documentation xml:lang="en">The release number for the bundle packages</documentation>
</annotation> </annotation>
@ -83,6 +83,13 @@
</annotation> </annotation>
</attribute> </attribute>
<attribute name="webapp" type="string" use="optional">
<annotation>
<documentation xml:lang="en">The name of the web application's context, i.e. the web application name. </documentation>
</annotation>
</attribute>
</complexType> </complexType>
<unique name="unique_prebuilt"> <unique name="unique_prebuilt">
@ -218,11 +225,11 @@
<simpleType name="version"> <simpleType name="version">
<annotation> <annotation>
<documentation xml:lang="en">A version number made up of three dot separated integers</documentation> <documentation xml:lang="en">A version number made up of three dot or hyphen separated integers</documentation>
</annotation> </annotation>
<restriction base="string"> <restriction base="string">
<pattern value="\d+\.\d+\.\d+"/> <pattern value="\d+[\-\.]\d+[\-\.]\d+"/>
</restriction> </restriction>
</simpleType> </simpleType>
</schema> </schema>

View File

@ -43,6 +43,8 @@
<xsl:with-param name="databases" select="$databases"/> <xsl:with-param name="databases" select="$databases"/>
</xsl:call-template> </xsl:call-template>
<xsl:call-template name="TargetDeploy"/> <xsl:call-template name="TargetDeploy"/>
<xsl:call-template name="TargetPackage"/>
<xsl:call-template name="TargetWar"/>
<xsl:call-template name="TargetJavadoc"/> <xsl:call-template name="TargetJavadoc"/>
<xsl:call-template name="TargetVerify"/> <xsl:call-template name="TargetVerify"/>
<xsl:call-template name="TargetTest"> <xsl:call-template name="TargetTest">
@ -52,31 +54,37 @@
</xsl:template> </xsl:template>
<xsl:template name="SharedProperties"> <xsl:template name="SharedProperties">
<!-- Setting the layout of the basic build environment -->
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="prettyName" select="@prettyName"/> <xsl:variable name="prettyName" select="@prettyName"/>
<!-- Setting the layout of the basic build environment -->
<!-- just in case: <!-- just in case:
check environment to set properties not already set by parent scripts --> check environment to set properties not already set by parent scripts -->
<property environment="env"/> <property environment="env"/>
<!-- Development libraries requirred by compile / build / deploy step --> <!-- Development libraries requirred by compile / build / deploy step -->
<property value="${{env.CCM_BUILD_LIBS}}" name="ccm.build.lib.dir"/> <property value="${{env.CCM_BUILD_LIBS}}" name="ccm.build.lib.dir"/>
<fail message="ccm.build.lib.dir or CCM_DEVEL_LIBS not set. Please check the invoking build.xml script." <fail message="ccm.build.lib.dir or CCM_DEVEL_LIBS not set.
Please check the invoking build.xml script."
unless="ccm.build.lib.dir" /> unless="ccm.build.lib.dir" />
<!-- Development libraries requirred by development tools (ant scripts) --> <!-- Development libraries requirred by development tools (ant scripts) -->
<property value="${{env.CCM_TOOLS_LIBS}}" name="ccm.tools.lib.dir"/> <property value="${{env.CCM_TOOLS_LIBS}}" name="ccm.tools.lib.dir"/>
<fail message="ccm.tools.lib.dir or CCM_TOOLS_LIBS not set. Please check the invoking build.xml script." <fail message="ccm.tools.lib.dir or CCM_TOOLS_LIBS not set.
Please check the invoking build.xml script."
unless="ccm.tools.lib.dir" /> unless="ccm.tools.lib.dir" />
<!-- Development libraries requirred by Red Hat JDO enhancer ANT task preliminary! --> <!-- Development libraries requirred by Red Hat JDO enhancer ANT task preliminary! -->
<property value="${{env.CCM_TOOLS_JDO}}" name="ccm.tools.rh-jdo.dir"/> <property value="${{env.CCM_TOOLS_JDO}}" name="ccm.tools.rh-jdo.dir"/>
<fail message="ccm.tools.rh-jdo.dir or CCM_TOOLS_JDO not set. Please check the invoking build.xml script." <fail message="ccm.tools.rh-jdo.dir or CCM_TOOLS_JDO not set.
Please check the invoking build.xml script."
unless="ccm.tools.rh-jdo.dir" /> unless="ccm.tools.rh-jdo.dir" />
<!-- Base directory of the application server to deploy to, i.e. CATALINA_HOME --> <!-- Base directory of the application server to deploy to, i.e. CATALINA_HOME -->
<property value="${{env.APP_SERVER_HOME}}" name="app.server.home.dir"/> <property value="${{env.APP_SERVER_HOME}}" name="app.server.home.dir"/>
<fail message="app.server.home.dir or APP_SERVER_HOME not set. Please check the invoking build.xml script." <fail message="app.server.home.dir or APP_SERVER_HOME not set.
Please check the invoking build.xml script."
unless="app.server.home.dir" /> unless="app.server.home.dir" />
<!-- Shared Lib directory for use by several web applications of the application server --> <!-- Shared Lib directory for use by several web applications of the application server -->
<property value="${{env.APP_SERVER_LIB}}" name="app.server.lib.dir"/> <property value="${{env.APP_SERVER_LIB}}" name="app.server.lib.dir"/>
<fail message="app.server.lib.dir or APP_SERVER_LIB not set. Please check the invoking build.xml script." <fail message="app.server.lib.dir or APP_SERVER_LIB not set.
Please check the invoking build.xml script."
unless="app.server.lib.dir" /> unless="app.server.lib.dir" />
<!-- XXX deprecated --> <!-- XXX deprecated -->
<!-- Used to be the same as CATALINA_HOME and a requirred base for PackageMastertool --> <!-- Used to be the same as CATALINA_HOME and a requirred base for PackageMastertool -->
@ -86,6 +94,9 @@
<!-- no longer valid! Still used by prebuild modules, has to be adjusted --> <!-- no longer valid! Still used by prebuild modules, has to be adjusted -->
<property value="${{env.CCM_SHARED_LIB_DIST_DIR}}" name="shared.lib.dist.dir"/> <property value="${{env.CCM_SHARED_LIB_DIST_DIR}}" name="shared.lib.dist.dir"/>
<!-- Base directory for the package step to create a binary repo -->
<property value="packages" name="package.dir"/>
<property value="ant.properties" name="property.file"/> <property value="ant.properties" name="property.file"/>
<property file="${{property.file}}"/> <property file="${{property.file}}"/>
@ -180,16 +191,25 @@
<xsl:template name="CheckDependencies"> <xsl:template name="CheckDependencies">
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="appname" select="@name"/> <xsl:variable name="appname" select="@name"/>
<xsl:variable name="appfullname" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application/@name"/> <xsl:variable
<xsl:for-each select="/ccm:project/ccm:application[@name=$appfullname]/ccm:dependencies/ccm:requires"> name="appfullname"
select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application/@name"/>
<xsl:for-each
select="/ccm:project/ccm:application[@name=$appfullname]/ccm:dependencies/ccm:requires">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="version" select="@version"/> <xsl:variable name="version" select="@version"/>
<xsl:variable name="relation" select="@relation"/> <xsl:variable name="relation" select="@relation"/>
<xsl:if test="count(/ccm:project/ccm:prebuilt/ccm:application[@name = $name]) + count(/ccm:project/ccm:application[@name = $name]) &lt; 1"> <xsl:if test="count(/ccm:project/ccm:prebuilt/ccm:application[@name = $name]) +
<xsl:message terminate="yes"><xsl:value-of select="concat($appname,' depends on ',$name,'-',$version)"/></xsl:message> count(/ccm:project/ccm:application[@name = $name]) &lt; 1">
<xsl:message terminate="yes">
<xsl:value-of select="concat($appname,' depends on ',$name,'-',$version)"/>
</xsl:message>
</xsl:if> </xsl:if>
<xsl:if test="count(/ccm:project/ccm:prebuilt/ccm:application[@name = $name]) + count(/ccm:project/ccm:application[@name = $name]) > 1"> <xsl:if test="count(/ccm:project/ccm:prebuilt/ccm:application[@name = $name]) +
<xsl:message terminate="yes"><xsl:value-of select="concat('multiple applications provide ',$name)"/></xsl:message> count(/ccm:project/ccm:application[@name = $name]) > 1">
<xsl:message terminate="yes">
<xsl:value-of select="concat('multiple applications provide ',$name)"/>
</xsl:message>
</xsl:if> </xsl:if>
</xsl:for-each> </xsl:for-each>
</xsl:for-each> </xsl:for-each>
@ -229,12 +249,14 @@
</xsl:for-each> </xsl:for-each>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="app" select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable name="app"
select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="appname" select="$app/@name"/> <xsl:variable name="appname" select="$app/@name"/>
<xsl:variable name="appprettyname" select="$app/@prettyName"/> <xsl:variable name="appprettyname" select="$app/@prettyName"/>
<xsl:variable name="appversion" select="$app/@version"/> <xsl:variable name="appversion" select="$app/@version"/>
<xsl:variable name="appwebapp" select="$app/@webapp"/> <xsl:variable name="appwebapp" select="$app/@webapp"/>
<xsl:variable name="requires" select="/ccm:project/ccm:application[@name=$appname]/ccm:dependencies/ccm:requires"/> <xsl:variable name="requires"
select="/ccm:project/ccm:application[@name=$appname]/ccm:dependencies/ccm:requires"/>
<path id="apps.{$name}.pdl.path"> <path id="apps.{$name}.pdl.path">
<pathelement location="{$name}/${{pdl.dir}}"/> <pathelement location="{$name}/${{pdl.dir}}"/>
<path refid="apps.{$name}.pdl.path.internal"/> <path refid="apps.{$name}.pdl.path.internal"/>
@ -242,8 +264,11 @@
<path id="apps.{$name}.pdl.path.internal"> <path id="apps.{$name}.pdl.path.internal">
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="fullname" select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/> <xsl:variable
<xsl:for-each select="/ccm:project/ccm:application[@name=$appname]/ccm:dependencies/ccm:requires"> name="fullname"
select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/>
<xsl:for-each
select="/ccm:project/ccm:application[@name=$appname]/ccm:dependencies/ccm:requires">
<xsl:variable name="requiredname" select="@name"/> <xsl:variable name="requiredname" select="@name"/>
<xsl:if test="$requiredname = $fullname"> <xsl:if test="$requiredname = $fullname">
<path refid="apps.{$name}.pdl.path"/> <path refid="apps.{$name}.pdl.path"/>
@ -298,13 +323,15 @@
<xsl:param name="type"/> <xsl:param name="type"/>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="fullname" select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/> <xsl:variable name="fullname"
select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/>
<xsl:for-each select="$requires"> <xsl:for-each select="$requires">
<xsl:variable name="requiredname" select="@name"/> <xsl:variable name="requiredname" select="@name"/>
<xsl:if test="$requiredname = $fullname"> <xsl:if test="$requiredname = $fullname">
<path refid="{$name}.{$type}.classpath.internal"/> <path refid="{$name}.{$type}.classpath.internal"/>
<xsl:call-template name="AppPropertyClassPath_Requires"> <xsl:call-template name="AppPropertyClassPath_Requires">
<xsl:with-param name="requires" select="/ccm:project/ccm:application[@name=$requiredname]/ccm:dependencies/ccm:requires"/> <xsl:with-param name="requires"
select="/ccm:project/ccm:application[@name=$requiredname]/ccm:dependencies/ccm:requires"/>
<xsl:with-param name="type" select="$type"/> <xsl:with-param name="type" select="$type"/>
</xsl:call-template> </xsl:call-template>
</xsl:if> </xsl:if>
@ -362,7 +389,9 @@
<include name="${{etclib.dir}}/*.jar"/> <include name="${{etclib.dir}}/*.jar"/>
<include name="${{etclib.dir}}/*.zip"/> <include name="${{etclib.dir}}/*.zip"/>
</fileset> </fileset>
<xsl:variable name="fullname" select="document(concat($target,'/application.xml'),/ccm:project)/ccm:application/@name"/> <xsl:variable name="fullname"
select="document(concat($target,'/application.xml'),
/ccm:project)/ccm:application/@name"/>
<xsl:variable name="buildRequires" <xsl:variable name="buildRequires"
select="/ccm:project/ccm:application[@name = $fullname]/ccm:dependencies/ccm:buildRequires"/> select="/ccm:project/ccm:application[@name = $fullname]/ccm:dependencies/ccm:buildRequires"/>
<xsl:if test="count($buildRequires) > 0"> <xsl:if test="count($buildRequires) > 0">
@ -393,10 +422,14 @@
<xsl:template name="TargetClean"> <xsl:template name="TargetClean">
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable name="application"
select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="buildhooks" select="$application/@buildHooks"/> <xsl:variable name="buildhooks" select="$application/@buildHooks"/>
<xsl:variable name="hastestdir" select="$application/ccm:directories/ccm:directory[@name='test'] or not($application/ccm:directories)"/> <xsl:variable name="hastestdir"
<target name="clean-{$name}" description="Cleans out the '{$name}' build environment and whole deployment directory"> select="$application/ccm:directories/ccm:directory[@name='test'] or
not($application/ccm:directories)"/>
<target name="clean-{$name}"
description="Cleans out the '{$name}' build environment and whole deployment directory">
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:value-of select="'init'"/> <xsl:value-of select="'init'"/>
<xsl:value-of select="',clean-deploy'"/> <xsl:value-of select="',clean-deploy'"/>
@ -435,7 +468,8 @@
</target> </target>
<xsl:call-template name="LocalGroupingTarget"> <xsl:call-template name="LocalGroupingTarget">
<xsl:with-param name="targetname" select="'clean'"/> <xsl:with-param name="targetname" select="'clean'"/>
<xsl:with-param name="description" select="'Cleans out the build environment and deployment directory'"/> <xsl:with-param name="description"
select="'Cleans out the build environment and deployment directory'"/>
</xsl:call-template> </xsl:call-template>
</xsl:template> </xsl:template>
@ -443,15 +477,25 @@
<xsl:param name="databases"/> <xsl:param name="databases"/>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable
name="application"
select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="fullname" select="$application/@name"/> <xsl:variable name="fullname" select="$application/@name"/>
<xsl:variable name="buildhooks" select="$application/@buildHooks"/> <xsl:variable name="buildhooks" select="$application/@buildHooks"/>
<xsl:variable name="hassqldir" select="$application/ccm:directories/ccm:directory[@name='sql'] or not($application/ccm:directories)"/> <xsl:variable name="hassqldir"
<xsl:variable name="hassrcdir" select="$application/ccm:directories/ccm:directory[@name='src'] or not($application/ccm:directories)"/> select="$application/ccm:directories/ccm:directory[@name='sql'] or
<xsl:variable name="haspdldir" select="$application/ccm:directories/ccm:directory[@name='pdl'] or not($application/ccm:directories)"/> not($application/ccm:directories)"/>
<xsl:variable name="hassrcdir"
select="$application/ccm:directories/ccm:directory[@name='src'] or
not($application/ccm:directories)"/>
<xsl:variable name="haspdldir"
select="$application/ccm:directories/ccm:directory[@name='pdl'] or
not($application/ccm:directories)"/>
<xsl:variable name="jdodirs" select="$application/ccm:jdo/ccm:directory"/> <xsl:variable name="jdodirs" select="$application/ccm:jdo/ccm:directory"/>
<xsl:variable name="requires" select="/ccm:project/ccm:application[@name=$fullname]/ccm:dependencies/ccm:requires"/> <xsl:variable name="requires"
<target name="compile-{$name}" description="Compiles the Java code for the '{$name}' application" depends="init"> select="/ccm:project/ccm:application[@name=$fullname]/ccm:dependencies/ccm:requires"/>
<target name="compile-{$name}"
description="Compiles the Java code for the '{$name}' application" depends="init">
<xsl:if test="$buildhooks"> <xsl:if test="$buildhooks">
<ant target="compile-hook" dir="{$name}" inheritRefs="true"> <ant target="compile-hook" dir="{$name}" inheritRefs="true">
<xsl:attribute name="antfile"> <xsl:attribute name="antfile">
@ -490,7 +534,9 @@
</xsl:if> </xsl:if>
</target> </target>
<xsl:if test="$jdodirs"> <xsl:if test="$jdodirs">
<target name="jdo-{$name}" description="JOD enhances the Java classes for the '{$name}' application" depends="init,compile-{$name}"> <target name="jdo-{$name}"
description="JOD enhances the Java classes for the '{$name}' application"
depends="init,compile-{$name}">
<jdoenhance destination="{$name}/${{build.classes.dir}}"> <jdoenhance destination="{$name}/${{build.classes.dir}}">
<classpath> <classpath>
<fileset dir="${{jdo.lib.dir}}"> <fileset dir="${{jdo.lib.dir}}">
@ -529,11 +575,14 @@
<xsl:choose> <xsl:choose>
<xsl:when test="$haspdldir"> <xsl:when test="$haspdldir">
<!-- DDL generate task --> <!-- DDL generate task -->
<target name="generate-ddl-{$name}" description="Generates DDL for the '{$name}' application"> <target name="generate-ddl-{$name}"
description="Generates DDL for the '{$name}' application">
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:value-of select="concat('init,compile-',$name)"/> <xsl:value-of select="concat('init,compile-',$name)"/>
<xsl:if test="$hassqldir"><xsl:value-of select="concat(',copy-sql-',$name)"/></xsl:if> <xsl:if test="$hassqldir">
<xsl:if test="$hassqldir"><xsl:value-of select="concat(',copy-src-',$name)"/></xsl:if> <xsl:value-of select="concat(',copy-sql-',$name)"/></xsl:if>
<xsl:if test="$hassqldir">
<xsl:value-of select="concat(',copy-src-',$name)"/></xsl:if>
</xsl:attribute> </xsl:attribute>
<xsl:variable name="sourcexml" select="/"/> <xsl:variable name="sourcexml" select="/"/>
<if> <if>
@ -590,17 +639,21 @@
</target> </target>
</xsl:if> </xsl:if>
<target name="jar-classes-{$name}" depends="init,build-{$name}"> <target name="jar-classes-{$name}" depends="init,build-{$name}">
<jar destfile="{$name}/${{build.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}.jar" update="true"> <jar destfile="{$name}/${{build.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}.jar"
update="true">
<fileset dir="{$name}/${{build.classes.dir}}"/> <fileset dir="{$name}/${{build.classes.dir}}"/>
<xsl:choose> <xsl:choose>
<xsl:when test="$haspdldir"> <xsl:when test="$haspdldir">
<manifest> <manifest>
<attribute name="Class-Path" value="${{apps.{$name}.name}}-${{apps.{$name}.version}}-pdl.jar ${{apps.{$name}.name}}-${{apps.{$name}.version}}-sql.jar"/> <attribute name="Class-Path"
value="${{apps.{$name}.name}}-${{apps.{$name}.version}}-pdl.jar
${{apps.{$name}.name}}-${{apps.{$name}.version}}-sql.jar"/>
</manifest> </manifest>
</xsl:when> </xsl:when>
<xsl:when test="$hassqldir"> <xsl:when test="$hassqldir">
<manifest> <manifest>
<attribute name="Class-Path" value="${{apps.{$name}.name}}-${{apps.{$name}.version}}-sql.jar"/> <attribute name="Class-Path"
value="${{apps.{$name}.name}}-${{apps.{$name}.version}}-sql.jar"/>
</manifest> </manifest>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
@ -609,14 +662,16 @@
<xsl:if test="$haspdldir"> <xsl:if test="$haspdldir">
<target name="jar-pdl-{$name}" depends="init,build-{$name}"> <target name="jar-pdl-{$name}" depends="init,build-{$name}">
<mkdir dir="{$name}/${{pdl.dir}}"/> <mkdir dir="{$name}/${{pdl.dir}}"/>
<jar destfile="{$name}/${{build.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}-pdl.jar" update="true"> <jar destfile="{$name}/${{build.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}-pdl.jar"
update="true">
<fileset dir="{$name}/${{pdl.dir}}"/> <fileset dir="{$name}/${{pdl.dir}}"/>
</jar> </jar>
</target> </target>
</xsl:if> </xsl:if>
<xsl:if test="$haspdldir or $hassqldir"> <xsl:if test="$haspdldir or $hassqldir">
<target name="jar-sql-{$name}" depends="init,build-{$name}"> <target name="jar-sql-{$name}" depends="init,build-{$name}">
<jar destfile="{$name}/${{build.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}-sql.jar" update="true"> <jar destfile="{$name}/${{build.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}-sql.jar"
update="true">
<fileset dir="{$name}/${{build.sql.dir}}"> <fileset dir="{$name}/${{build.sql.dir}}">
<exclude name=".ddl-timestamp"/> <exclude name=".ddl-timestamp"/>
</fileset> </fileset>
@ -638,18 +693,28 @@
<xsl:template name="TargetBuildApp"> <xsl:template name="TargetBuildApp">
<xsl:param name="target"/> <xsl:param name="target"/>
<xsl:param name="requires"/> <xsl:param name="requires"/>
<xsl:variable name="application" select="document(concat($target,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable name="application"
select="document(concat($target,
'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="buildhooks" select="$application/@buildHooks"/> <xsl:variable name="buildhooks" select="$application/@buildHooks"/>
<xsl:variable name="hassqldir" select="$application/ccm:directories/ccm:directory[@name='sql'] or not($application/ccm:directories)"/> <xsl:variable name="hassqldir"
<xsl:variable name="hassrcdir" select="$application/ccm:directories/ccm:directory[@name='src'] or not($application/ccm:directories)"/> select="$application/ccm:directories/ccm:directory[@name='sql'] or
<xsl:variable name="haspdldir" select="$application/ccm:directories/ccm:directory[@name='pdl'] or not($application/ccm:directories)"/> not($application/ccm:directories)"/>
<xsl:variable name="hassrcdir"
select="$application/ccm:directories/ccm:directory[@name='src'] or
not($application/ccm:directories)"/>
<xsl:variable name="haspdldir"
select="$application/ccm:directories/ccm:directory[@name='pdl'] or
not($application/ccm:directories)"/>
<xsl:variable name="jdodirs" select="$application/ccm:jdo/ccm:directory"/> <xsl:variable name="jdodirs" select="$application/ccm:jdo/ccm:directory"/>
<target name="build-{$target}" description="Builds the '{$target}' application (compile, generate DDL, jar, etc)"> <target name="build-{$target}"
description="Builds the '{$target}' application (compile, generate DDL, jar, etc)">
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:text>init</xsl:text> <xsl:text>init</xsl:text>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="fullname" select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/> <xsl:variable name="fullname"
select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/>
<xsl:for-each select="$requires"> <xsl:for-each select="$requires">
<xsl:variable name="requiredname" select="@name"/> <xsl:variable name="requiredname" select="@name"/>
<xsl:if test="$requiredname = $fullname"> <xsl:if test="$requiredname = $fullname">
@ -695,7 +760,8 @@
<xsl:param name="includeself" select="'no'"/> <xsl:param name="includeself" select="'no'"/>
<xsl:param name="pathType" select="'library-path'"/> <xsl:param name="pathType" select="'library-path'"/>
<xsl:param name="sourcexml" select="/"/> <xsl:param name="sourcexml" select="/"/>
<xsl:if test="($requires = 'all') or ($includeself = 'yes') or (count($requires) > 0) or (count($sourcexml//ccm:project/ccm:prebuilt/ccm:application) > 0)"> <xsl:if test="($requires = 'all') or ($includeself = 'yes') or (count($requires) > 0) or
(count($sourcexml//ccm:project/ccm:prebuilt/ccm:application) > 0)">
<xsl:element name="arg"> <xsl:element name="arg">
<xsl:attribute name="line"> <xsl:attribute name="line">
<xsl:value-of select="concat('-',$pathType,' ')"/> <xsl:value-of select="concat('-',$pathType,' ')"/>
@ -732,7 +798,8 @@
</xsl:template> </xsl:template>
<xsl:template name="TargetVerify"> <xsl:template name="TargetVerify">
<target name="verify-pdl" depends="init" unless="pdl.no.verify" description="Verifies that the PDL files compile"> <target name="verify-pdl" depends="init" unless="pdl.no.verify"
description="Verifies that the PDL files compile">
<java classname="${{ddl.generator.classname}}" failonerror="yes" fork="yes"> <java classname="${{ddl.generator.classname}}" failonerror="yes" fork="yes">
<sysproperty key="java.ext.dirs" value="${{ccm.java.ext.dirs}}"/> <sysproperty key="java.ext.dirs" value="${{ccm.java.ext.dirs}}"/>
<classpath refid="server.build.classpath"/> <classpath refid="server.build.classpath"/>
@ -776,9 +843,11 @@
</javac> </javac>
</target> </target>
<target name="no-build-jsp" unless="jsp.compiler.available"> <target name="no-build-jsp" unless="jsp.compiler.available">
<echo message="JSP verification skipped. The CATALINA_HOME environment variable must point to a Tomcat 4.1 installation."/> <echo message="JSP verification skipped.
The CATALINA_HOME environment variable must point to a Tomcat 4.1 installation."/>
</target> </target>
<target name="verify-jsp" depends="init,build-jsp,no-build-jsp" description="Verifies that JSP files compile (requires Tomcat 4.1)"/> <target name="verify-jsp" depends="init,build-jsp,no-build-jsp"
description="Verifies that JSP files compile (requires Tomcat 4.1)"/>
</xsl:template> </xsl:template>
<xsl:template name="TargetDeploySystemJar"> <xsl:template name="TargetDeploySystemJar">
@ -788,7 +857,9 @@
<available file="{$name}/${{build.classes.dir}}/{$package}" type="dir"/> <available file="{$name}/${{build.classes.dir}}/{$package}" type="dir"/>
<then> <then>
<mkdir dir="${{deploy.system.jars.dir}}"/> <mkdir dir="${{deploy.system.jars.dir}}"/>
<jar destfile="${{deploy.system.jars.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}-system.jar" update="true"> <jar
destfile="${{deploy.system.jars.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}-system.jar"
update="true">
<fileset dir="{$name}/${{build.classes.dir}}"> <fileset dir="{$name}/${{build.classes.dir}}">
<include name="{$package}**"/> <include name="{$package}**"/>
</fileset> </fileset>
@ -802,11 +873,19 @@
<!-- Deploy hooks --> <!-- Deploy hooks -->
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable
name="application"
select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="buildhooks" select="$application/@buildHooks"/> <xsl:variable name="buildhooks" select="$application/@buildHooks"/>
<xsl:variable name="haspdldir" select="$application/ccm:directories/ccm:directory[@name='pdl'] or not($application/ccm:directories)"/> <xsl:variable name="haspdldir"
<xsl:variable name="hassqldir" select="$application/ccm:directories/ccm:directory[@name='sql'] or not($application/ccm:directories)"/> select="$application/ccm:directories/ccm:directory[@name='pdl'] or
<xsl:variable name="hassrcdir" select="$application/ccm:directories/ccm:directory[@name='src'] or not($application/ccm:directories)"/> not($application/ccm:directories)"/>
<xsl:variable name="hassqldir"
select="$application/ccm:directories/ccm:directory[@name='sql'] or
not($application/ccm:directories)"/>
<xsl:variable name="hassrcdir"
select="$application/ccm:directories/ccm:directory[@name='src'] or
not($application/ccm:directories)"/>
<xsl:if test="$application/@buildHooks"> <xsl:if test="$application/@buildHooks">
<target name="deploy-{$name}-hook" depends="init"> <target name="deploy-{$name}-hook" depends="init">
<ant target="deploy-hook" dir="{$name}" inheritRefs="true"> <ant target="deploy-hook" dir="{$name}" inheritRefs="true">
@ -832,7 +911,8 @@
<!-- Deploy Jar --> <!-- Deploy Jar -->
<target name="deploy-jar-classes-{$name}" depends="init,jar-classes-{$name}"> <target name="deploy-jar-classes-{$name}" depends="init,jar-classes-{$name}">
<mkdir dir="${{deploy.lib.dir.{$name}}}"/> <mkdir dir="${{deploy.lib.dir.{$name}}}"/>
<copy todir="${{deploy.lib.dir.{$name}}}" file="{$name}/${{build.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}.jar"/> <copy todir="${{deploy.lib.dir.{$name}}}"
file="{$name}/${{build.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}.jar"/>
<xsl:for-each select="$application/ccm:systemPackages/ccm:package"> <xsl:for-each select="$application/ccm:systemPackages/ccm:package">
<xsl:call-template name="TargetDeploySystemJar"> <xsl:call-template name="TargetDeploySystemJar">
<xsl:with-param name="name" select="$name"/> <xsl:with-param name="name" select="$name"/>
@ -879,7 +959,8 @@
</xsl:if> </xsl:if>
<!-- Deploy sql --> <!-- Deploy sql -->
<xsl:if test="$hassqldir or $haspdldir"> <xsl:if test="$hassqldir or $haspdldir">
<target name="deploy-sql-{$name}" depends="init,generate-ddl-{$name},jar-sql-{$name}"> <target name="deploy-sql-{$name}"
depends="init,generate-ddl-{$name},jar-sql-{$name}">
<mkdir dir="${{deploy.lib.dir.{$name}}}"/> <mkdir dir="${{deploy.lib.dir.{$name}}}"/>
<copy todir="${{deploy.lib.dir.{$name}}}"> <copy todir="${{deploy.lib.dir.{$name}}}">
<fileset dir="{$name}/${{build.dir}}"> <fileset dir="{$name}/${{build.dir}}">
@ -914,33 +995,45 @@
</copy> </copy>
</target> </target>
</xsl:if> </xsl:if>
<!-- Deploy app --> <!-- Deploy app -->
<target name="deploy-{$name}" description="Builds and deploys the '{$name}' application"> <target name="deploy-{$name}"
description="Builds and deploys the '{$name}' application">
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:text>init</xsl:text> <xsl:text>init</xsl:text>
<xsl:text>,build-</xsl:text><xsl:value-of select="@name"/> <xsl:text>,build-</xsl:text><xsl:value-of select="@name"/>
<xsl:if test="$buildhooks"><xsl:value-of select="concat(',deploy-',$name,'-hook')"/></xsl:if> <xsl:if test="$buildhooks"><xsl:value-of
<xsl:if test="$hassrcdir or $haspdldir"><xsl:value-of select="concat(',deploy-classes-',$name)"/></xsl:if> select="concat(',deploy-',$name,'-hook')"/></xsl:if>
<xsl:if test="$hassrcdir or $haspdldir"><xsl:value-of
select="concat(',deploy-classes-',$name)"/></xsl:if>
<xsl:value-of select="concat(',deploy-lib-',$name)"/> <xsl:value-of select="concat(',deploy-lib-',$name)"/>
<xsl:if test="$haspdldir"><xsl:value-of select="concat(',deploy-pdl-',$name)"/></xsl:if> <xsl:if test="$haspdldir"><xsl:value-of
<xsl:if test="$hassqldir or $haspdldir"><xsl:text>,deploy-sql-</xsl:text><xsl:value-of select="@name"/></xsl:if> select="concat(',deploy-pdl-',$name)"/></xsl:if>
<xsl:if test="$hassqldir or $haspdldir"><xsl:text>,deploy-sql-</xsl:text>
<xsl:value-of select="@name"/>
</xsl:if>
<xsl:value-of select="concat(',deploy-web-',$name)"/> <xsl:value-of select="concat(',deploy-web-',$name)"/>
<xsl:value-of select="concat(',deploy-bin-',$name)"/> <xsl:value-of select="concat(',deploy-bin-',$name)"/>
</xsl:attribute> </xsl:attribute>
<echo message="deployed '{$name}' to ${{deploy.dir.{$name}}}"/> <echo message="deployed '{$name}' to ${{deploy.dir.{$name}}}"/>
</target> </target>
</xsl:for-each> </xsl:for-each>
<xsl:call-template name="LocalGroupingTarget"> <xsl:call-template name="LocalGroupingTarget">
<xsl:with-param name="targetname" select="'deploy-web'"/> <xsl:with-param name="targetname" select="'deploy-web'"/>
</xsl:call-template> </xsl:call-template>
<xsl:call-template name="LocalGroupingTarget"> <xsl:call-template name="LocalGroupingTarget">
<xsl:with-param name="targetname" select="'deploy-jar-classes'"/> <xsl:with-param name="targetname" select="'deploy-jar-classes'"/>
</xsl:call-template> </xsl:call-template>
<!-- Deploy prebuilt apps --> <!-- Deploy prebuilt apps -->
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application"> <xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="version" select="@version"/> <xsl:variable name="version" select="@version"/>
<target name="deploy-{$name}" depends="init" description="Deploys the '{$name}' prebuilt application"> <target name="deploy-{$name}" depends="init"
description="Deploys the '{$name}' prebuilt application">
<copy todir="${{deploy.shared.lib.dir}}" preservelastmodified="true"> <copy todir="${{deploy.shared.lib.dir}}" preservelastmodified="true">
<fileset dir="${{apps.{$name}.location}}"> <fileset dir="${{apps.{$name}.location}}">
<include name="{$name}-{$version}.jar"/> <include name="{$name}-{$version}.jar"/>
@ -968,6 +1061,8 @@
<echo message="deployed '{$name}' to ${{deploy.webapp.dir}}"/> <echo message="deployed '{$name}' to ${{deploy.webapp.dir}}"/>
</target> </target>
</xsl:for-each> </xsl:for-each>
<!-- deploy pre-built modules specified in project.xml -->
<target name="deploy-global"> <target name="deploy-global">
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:text>init</xsl:text> <xsl:text>init</xsl:text>
@ -976,6 +1071,8 @@
</xsl:for-each> </xsl:for-each>
</xsl:attribute> </xsl:attribute>
</target> </target>
<!-- deploy each actually built module specified in project.xml -->
<target name="deploy-local"> <target name="deploy-local">
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:text>init</xsl:text> <xsl:text>init</xsl:text>
@ -985,9 +1082,12 @@
</xsl:for-each> </xsl:for-each>
</xsl:attribute> </xsl:attribute>
</target> </target>
<target name="copy-webxml-init" depends="init"> <target name="copy-webxml-init" depends="init">
<available file="${{deploy.webapp.dir}}/ROOT/WEB-INF" type="dir" property="root.webapp.exists"/> <available file="${{deploy.webapp.dir}}/ROOT/WEB-INF" type="dir"
<condition property="resolved.webxml.source.file" value="${{deploy.webapp.dir}}/ROOT/WEB-INF/${{webxml.source.file}}"> property="root.webapp.exists"/>
<condition property="resolved.webxml.source.file"
value="${{deploy.webapp.dir}}/ROOT/WEB-INF/${{webxml.source.file}}">
<and> <and>
<isset property="root.webapp.exists"/> <isset property="root.webapp.exists"/>
<available file="${{deploy.webapp.dir}}/ROOT/WEB-INF/${{webxml.source.file}}"/> <available file="${{deploy.webapp.dir}}/ROOT/WEB-INF/${{webxml.source.file}}"/>
@ -1000,18 +1100,93 @@
<not><isset property="resolved.webxml.source.file"/></not> <not><isset property="resolved.webxml.source.file"/></not>
</condition> </condition>
</target> </target>
<target name="copy-webxml" depends="init,copy-webxml-init" if="root.webapp.exists">
<copy file="${{resolved.webxml.source.file}}" tofile="${{deploy.webapp.dir}}/ROOT/WEB-INF/web.xml"/> <target name="copy-webxml"
depends="init,copy-webxml-init" if="root.webapp.exists">
<copy file="${{resolved.webxml.source.file}}"
tofile="${{deploy.webapp.dir}}/ROOT/WEB-INF/web.xml"/>
</target> </target>
<!-- Master deploy --> <!-- Master deploy -->
<target name="deploy" depends="init,deploy-global,deploy-local,copy-webxml"> <target name="deploy" depends="init,deploy-global,deploy-local,copy-webxml">
<xsl:attribute name="description">Builds and deploys all applications, also deploys prebuilt applications and config files</xsl:attribute> <xsl:attribute name="description">
Builds and deploys all applications, also deploys prebuilt applications and config files
</xsl:attribute>
</target> </target>
</xsl:template> </xsl:template> <!-- TargetDeploy -->
<xsl:template name="TargetPackage">
<xsl:variable name="name" select="@name"/>
</xsl:template> <!-- TargetPackage -->
<!-- Create a war file out of the deployed set of packages including the
eventually created configuration of the deployed application -->
<xsl:template name="TargetWar">
<xsl:variable name="name" select="@name"/>
<!-- Master step create-war -->
<!-- depends="init,deploy-global,deploy-local,copy-webxml"
-->
<target name="create-war">
<xsl:attribute name="description">
Creates a WAR file of the deployed application.
</xsl:attribute>
<xsl:attribute name="depends">
<xsl:text>deploy</xsl:text>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:text>,jar-classes-</xsl:text><xsl:value-of select="@name"/>
</xsl:for-each>
</xsl:attribute>
<echo>
Creating a WAR file from directory ${{deploy.dir}}/webapps/ROOT
REMEMBER:
You have to perform the load-bundle step first if you would like
to have a valid web.xml file and a basic configuration!
</echo>
<xsl:variable name="name" select="@name"/>
<xsl:variable name="context" select="@webxml"/>
<!-- web.xml will be copied implicitly from deployed WEB-INF! -->
<war>
<xsl:attribute name="destfile">
<xsl:text>${ccm.project.dir}/</xsl:text><xsl:value-of select="@name"/>
<xsl:text>-</xsl:text><xsl:value-of select="@version"/>
<xsl:text>-</xsl:text><xsl:value-of select="@release"/>
<xsl:text>.war</xsl:text>
</xsl:attribute>
<fileset dir="${{deploy.dir}}/webapps/ROOT/">
<exclude name="**/classes/**"/>
</fileset>
<xsl:for-each select="/ccm:project/ccm:application">
<xsl:variable name="name" select="@name"/>
<xsl:variable name="version" select="@version"/>
<lib>
<xsl:attribute name="file">
<xsl:value-of select="@name"/><xsl:text>/build/</xsl:text>
<xsl:value-of select="@name"/><xsl:text>-</xsl:text>
<xsl:value-of select="@version"/>
<xsl:text>.jar</xsl:text>
</xsl:attribute>
</lib>
</xsl:for-each>
</war>
</target>
</xsl:template> <!-- TargetWar -->
<xsl:template name="TargetCopyTestPDL"> <xsl:template name="TargetCopyTestPDL">
<xsl:param name="target" select="'default-value'"/> <xsl:param name="target" select="'default-value'"/>
<xsl:param name="requires" select="'all'"/> <xsl:param name="requires" select="'all'"/>
<target depends="init" name="copy-test-pdl-{$target}"> <target depends="init" name="copy-test-pdl-{$target}">
<mkdir dir="{$target}/${{build.test.classes.dir}}"/> <mkdir dir="{$target}/${{build.test.classes.dir}}"/>
<copy todir="{$target}/${{build.test.classes.dir}}"> <copy todir="{$target}/${{build.test.classes.dir}}">
@ -1038,7 +1213,8 @@
</copy> </copy>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:variable name="fullname" select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/> <xsl:variable name="fullname"
select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/>
<xsl:for-each select="$requires"> <xsl:for-each select="$requires">
<xsl:variable name="requiredname" select="@name"/> <xsl:variable name="requiredname" select="@name"/>
<xsl:if test="$requiredname = $fullname"> <xsl:if test="$requiredname = $fullname">
@ -1081,14 +1257,19 @@
<xsl:template name="TargetBuildAppTest"> <xsl:template name="TargetBuildAppTest">
<xsl:param name="target"/> <xsl:param name="target"/>
<xsl:param name="requires"/> <xsl:param name="requires"/>
<target name="build-tests-{$target}" description="Build the tests for the '{$target}' application"> <target name="build-tests-{$target}"
description="Build the tests for the '{$target}' application">
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:text>init</xsl:text> <xsl:text>init</xsl:text>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="fullname" select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/> <xsl:variable name="fullname"
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/>
<xsl:variable name="hastestdir" select="$application/ccm:directories/ccm:directory[@name='test'] or not($application/ccm:directories)"/> <xsl:variable name="application"
select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="hastestdir"
select="$application/ccm:directories/ccm:directory[@name='test'] or
not($application/ccm:directories)"/>
<xsl:for-each select="$requires"> <xsl:for-each select="$requires">
<xsl:variable name="requiredname" select="@name"/> <xsl:variable name="requiredname" select="@name"/>
<xsl:if test="($requiredname = $fullname) and $hastestdir"> <xsl:if test="($requiredname = $fullname) and $hastestdir">
@ -1109,22 +1290,29 @@
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable name="application"
<xsl:variable name="hastestdir" select="$application/ccm:directories/ccm:directory[@name='test'] or not($application/ccm:directories)"/> select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="hastestdir"
select="$application/ccm:directories/ccm:directory[@name='test'] or
not($application/ccm:directories)"/>
<xsl:variable name="requires" select="$application/ccm:dependencies/ccm:requires"/> <xsl:variable name="requires" select="$application/ccm:dependencies/ccm:requires"/>
<xsl:if test="$hastestdir"> <xsl:if test="$hastestdir">
<xsl:call-template name="TargetBuildAppTest"> <xsl:call-template name="TargetBuildAppTest">
<xsl:with-param name="target" select="@name"/> <xsl:with-param name="target" select="@name"/>
<xsl:with-param name="requires" select="$requires"/> <xsl:with-param name="requires" select="$requires"/>
</xsl:call-template> </xsl:call-template>
<target name="compile-tests-{$name}" depends="init,build-{$name}" if="{$name}.test.src.dir.exists"> <target name="compile-tests-{$name}" depends="init,build-{$name}"
if="{$name}.test.src.dir.exists">
<path id="{$name}.tests.compile.srcpath"> <path id="{$name}.tests.compile.srcpath">
<pathelement location="{$name}/${{test.src.dir}}"/> <pathelement location="{$name}/${{test.src.dir}}"/>
</path> </path>
<xsl:call-template name="TargetJavaC"> <xsl:call-template name="TargetJavaC">
<xsl:with-param name="destdir" select="concat($name,'/${build.test.classes.dir}')"/> <xsl:with-param name="destdir"
<xsl:with-param name="srcpathref" select="concat($name,'.tests.compile.srcpath')"/> select="concat($name,'/${build.test.classes.dir}')"/>
<xsl:with-param name="classpathref" select="concat($name,'.tests.classpath')"/> <xsl:with-param name="srcpathref"
select="concat($name,'.tests.compile.srcpath')"/>
<xsl:with-param name="classpathref"
select="concat($name,'.tests.classpath')"/>
</xsl:call-template> </xsl:call-template>
</target> </target>
<target depends="init" name="copy-test-src-{$name}" if="{$name}.test.src.dir.exists"> <target depends="init" name="copy-test-src-{$name}" if="{$name}.test.src.dir.exists">
@ -1188,8 +1376,12 @@
<param name="deploy.web.dir" value="${{test.deploy.dir}}/WEB-INF"/> <param name="deploy.web.dir" value="${{test.deploy.dir}}/WEB-INF"/>
</antcall> </antcall>
</target> </target>
<target name="runtests-{$name}" depends="init,build-tests-{$name},copy-test-pdl-{$name},generate-test-ddl-{$name},deploy-test-webapp-{$name}"> <target name="runtests-{$name}"
<xsl:attribute name="description"><xsl:value-of select="concat('Runs the tests for the ',$name,' application')"/></xsl:attribute> depends="init,build-tests-{$name},copy-test-pdl-{$name},
generate-test-ddl-{$name},deploy-test-webapp-{$name}">
<xsl:attribute name="description">
<xsl:value-of select="concat('Runs the tests for the ',$name,' application')"/>
</xsl:attribute>
<mkdir dir="{$name}/${{test.tmp.dir}}"/> <mkdir dir="{$name}/${{test.tmp.dir}}"/>
<junit <junit
printsummary="yes" printsummary="yes"
@ -1201,7 +1393,8 @@
<jvmarg line="${{junit.jvmargs}}"/> <jvmarg line="${{junit.jvmargs}}"/>
<xsl:choose> <xsl:choose>
<xsl:when test="/ccm:project/ccm:options/ccm:option[@name='junitCustomFormatter']/@value = 1"> <xsl:when test="/ccm:project/ccm:options/ccm:option[@name='junitCustomFormatter']/@value = 1">
<formatter classname="${{junit.formatter.classname}}" extension="${{junit.formatter.extension}}"/> <formatter classname="${{junit.formatter.classname}}"
extension="${{junit.formatter.extension}}"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<formatter type="${{junit.formatter}}"/> <formatter type="${{junit.formatter}}"/>
@ -1225,20 +1418,29 @@
<sysproperty value="${{apps.{$name}.name}}.test.pdl.mf" key="waf.runtime.test.pdl"/> <sysproperty value="${{apps.{$name}.name}}.test.pdl.mf" key="waf.runtime.test.pdl"/>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="fullname" select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/> <xsl:variable name="fullname"
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> select=
<xsl:variable name="hastestdir" select="$application/ccm:directories/ccm:directory[@name='test'] or not($application/ccm:directories)"/> "document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"
/>
<xsl:variable name="application"
select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="hastestdir"
select=
"$application/ccm:directories/ccm:directory[@name='test'] or not($application/ccm:directories)"
/>
<xsl:for-each select="$requires"> <xsl:for-each select="$requires">
<xsl:variable name="requiredname" select="@name"/> <xsl:variable name="requiredname" select="@name"/>
<xsl:if test="$requiredname = $fullname"> <xsl:if test="$requiredname = $fullname">
<sysproperty value="${{apps.{$name}.name}}.test.pdl.mf" key="waf.runtime.test.pdl"/> <sysproperty value="${{apps.{$name}.name}}.test.pdl.mf"
key="waf.runtime.test.pdl"/>
</xsl:if> </xsl:if>
</xsl:for-each> </xsl:for-each>
</xsl:for-each> </xsl:for-each>
<xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application"> <xsl:for-each select="/ccm:project/ccm:prebuilt/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="version" select="@version"/> <xsl:variable name="version" select="@version"/>
<sysproperty value="${{apps.{$name}.name}}-{$version}.test.pdl.mf" key="waf.runtime.test.pdl"/> <sysproperty value="${{apps.{$name}.name}}-{$version}.test.pdl.mf"
key="waf.runtime.test.pdl"/>
</xsl:for-each> </xsl:for-each>
<batchtest todir="{$name}"> <batchtest todir="{$name}">
<fileset dir="{$name}/${{build.test.classes.dir}}"> <fileset dir="{$name}/${{build.test.classes.dir}}">
@ -1253,8 +1455,11 @@
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:text>init</xsl:text> <xsl:text>init</xsl:text>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable name="application"
<xsl:variable name="hastestdir" select="$application/ccm:directories/ccm:directory[@name='test'] or not($application/ccm:directories)"/> select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="hastestdir"
select="$application/ccm:directories/ccm:directory[@name='test'] or
not($application/ccm:directories)"/>
<xsl:if test="$hastestdir"> <xsl:if test="$hastestdir">
<xsl:value-of select="concat(',build-tests-',@name)"/> <xsl:value-of select="concat(',build-tests-',@name)"/>
</xsl:if> </xsl:if>
@ -1265,8 +1470,12 @@
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:text>init</xsl:text> <xsl:text>init</xsl:text>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable name="application"
<xsl:variable name="hastestdir" select="$application/ccm:directories/ccm:directory[@name='test'] or not($application/ccm:directories)"/> select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="hastestdir"
select=
"$application/ccm:directories/ccm:directory[@name='test'] or not($application/ccm:directories)"
/>
<xsl:if test="$hastestdir"> <xsl:if test="$hastestdir">
<xsl:value-of select="concat(',runtests-',@name)"/> <xsl:value-of select="concat(',runtests-',@name)"/>
</xsl:if> </xsl:if>
@ -1293,10 +1502,14 @@
<include name="{$sourcedirectory}/**"/> <include name="{$sourcedirectory}/**"/>
</fileset> </fileset>
</path> </path>
<map from="${{basedir}}${{file.separator}}{$target}${{file.separator}}{$sourcedirectory}${{file.separator}}" to=""/> <map from=
"${{basedir}}${{file.separator}}{$target}${{file.separator}}{$sourcedirectory}${{file.separator}}"
to=""
/>
</pathconvert> </pathconvert>
<mkdir dir="{$target}/${{build.classes.dir}}"/> <mkdir dir="{$target}/${{build.classes.dir}}"/>
<echo message="${{{$type}.files.{$target}}}" file="{$target}/${{build.classes.dir}}/${{apps.{$target}.name}}.{$type}.mf"/> <echo message="${{{$type}.files.{$target}}}"
file="{$target}/${{build.classes.dir}}/${{apps.{$target}.name}}.{$type}.mf"/>
</then> </then>
</if> </if>
</target> </target>
@ -1307,14 +1520,17 @@
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable name="application"
select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="requires" select="$application/ccm:dependencies/ccm:requires"/> <xsl:variable name="requires" select="$application/ccm:dependencies/ccm:requires"/>
<target name="javadoc-{$name}" description="Generates the API documentation for the '{$name}' application"> <target name="javadoc-{$name}"
description="Generates the API documentation for the '{$name}' application">
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:text>init</xsl:text> <xsl:text>init</xsl:text>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="fullname" select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/> <xsl:variable name="fullname"
select="document(concat($name,'/application.xml'),/ccm:project)/ccm:application/@name"/>
<xsl:for-each select="$requires"> <xsl:for-each select="$requires">
<xsl:variable name="requiredname" select="@name"/> <xsl:variable name="requiredname" select="@name"/>
<xsl:if test="$requiredname = $fullname"> <xsl:if test="$requiredname = $fullname">
@ -1354,7 +1570,8 @@
</xsl:for-each> </xsl:for-each>
</target> </target>
<target name="javadoc" depends="init,javadoc-combine-src" description="Generates the combined API documentation"> <target name="javadoc" depends="init,javadoc-combine-src"
description="Generates the combined API documentation">
<mkdir dir="${{javadoc.dir}}"/> <mkdir dir="${{javadoc.dir}}"/>
<javadoc <javadoc
maxmemory="384m" maxmemory="384m"
@ -1379,8 +1596,11 @@
<xsl:attribute name="depends"> <xsl:attribute name="depends">
<xsl:text>init</xsl:text> <xsl:text>init</xsl:text>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable name="application"
<xsl:variable name="hastestdir" select="$application/ccm:directories/ccm:directory[@name='test'] or not($application/ccm:directories)"/> select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="hastestdir"
select="$application/ccm:directories/ccm:directory[@name='test'] or
not($application/ccm:directories)"/>
<xsl:if test="$hastestdir"> <xsl:if test="$hastestdir">
<xsl:text>,build-tests-</xsl:text><xsl:value-of select="@name"/> <xsl:text>,build-tests-</xsl:text><xsl:value-of select="@name"/>
</xsl:if> </xsl:if>
@ -1446,13 +1666,16 @@
</target> </target>
<target name="pmd-check"> <target name="pmd-check">
<available property="pmd.available" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="ccm.base.classpath"/> <available property="pmd.available" classname="net.sourceforge.pmd.ant.PMDTask"
classpathref="ccm.base.classpath"/>
</target> </target>
<target name="pmd" depends="init,pmd-check" if="pmd.available" description="Runs the PMD utility over the code"> <target name="pmd" depends="init,pmd-check" if="pmd.available"
description="Runs the PMD utility over the code">
<mkdir dir="${{pmd.report.dir}}"/> <mkdir dir="${{pmd.report.dir}}"/>
<echo message="Generating ${{pmd.report.dir}}/${{pmd.report.file}} for *.java files"/> <echo message="Generating ${{pmd.report.dir}}/${{pmd.report.file}} for *.java files"/>
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="ccm.base.classpath"/> <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"
classpathref="ccm.base.classpath"/>
<pmd rulesetfiles="${{pmd.rulesets}}"> <pmd rulesetfiles="${{pmd.rulesets}}">
<formatter type="${{pmd.format}}" toFile="${{pmd.report.dir}}/${{pmd.report.file}}"/> <formatter type="${{pmd.format}}" toFile="${{pmd.report.dir}}/${{pmd.report.file}}"/>
<fileset dir="."> <fileset dir=".">
@ -1469,9 +1692,13 @@
<tstamp><format property="YEAR" pattern="yyyy"/></tstamp> <tstamp><format property="YEAR" pattern="yyyy"/></tstamp>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<available property="{$name}.test.src.dir.exists" file="{$name}/${{test.src.dir}}" type="dir"/> <available property="{$name}.test.src.dir.exists"
<pathconvert dirsep="/" pathsep=":" property="apps.{$name}.pdl.path" refid="apps.{$name}.pdl.path"/> file="{$name}/${{test.src.dir}}" type="dir"/>
<pathconvert dirsep="/" pathsep=":" property="apps.{$name}.pdl.path.internal" refid="apps.{$name}.pdl.path.internal"/> <pathconvert dirsep="/" pathsep=":"
property="apps.{$name}.pdl.path" refid="apps.{$name}.pdl.path"/>
<pathconvert dirsep="/" pathsep=":"
property="apps.{$name}.pdl.path.internal"
refid="apps.{$name}.pdl.path.internal"/>
</xsl:for-each> </xsl:for-each>
<path id="ccm.java.ext.dirs"> <path id="ccm.java.ext.dirs">
<!-- no longer present in APLAWS 1.0.4 <!-- no longer present in APLAWS 1.0.4
@ -1481,8 +1708,11 @@
--> -->
<pathelement path="${{java.ext.dirs}}"/> <pathelement path="${{java.ext.dirs}}"/>
</path> </path>
<pathconvert dirsep="/" pathsep=":" property="ccm.java.ext.dirs" refid="ccm.java.ext.dirs"/> <pathconvert dirsep="/" pathsep=":" property="ccm.java.ext.dirs"
<condition property="junit.jvmargs" value="-Xdebug -Xrunjdwp:transport=dt_socket,address=${{test.remote.port}},server=y,suspend=y -Xnoagent -Djava.compiler=NONE"> refid="ccm.java.ext.dirs"/>
<condition property="junit.jvmargs"
value="-Xdebug -Xrunjdwp:transport=dt_socket,address=${{test.remote.port}},
server=y,suspend=y -Xnoagent -Djava.compiler=NONE">
<and> <and>
<not><isset property="junit.jvmargs"/></not> <not><isset property="junit.jvmargs"/></not>
<isset property="debugtests"/> <isset property="debugtests"/>
@ -1528,7 +1758,8 @@
<xsl:for-each select="/ccm:project/ccm:build/ccm:application"> <xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/> <xsl:variable name="name" select="@name"/>
<xsl:variable name="application" select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/> <xsl:variable name="application"
select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<!-- property shared does not work / not documented how to use <!-- property shared does not work / not documented how to use
setting in modules application.xml as part of application has no effect --> setting in modules application.xml as part of application has no effect -->
<xsl:variable name="shared" select="$application/@shared"/> <xsl:variable name="shared" select="$application/@shared"/>
@ -1539,33 +1770,34 @@
<xsl:when test="$shared = 'false'"> <xsl:when test="$shared = 'false'">
--> -->
<!-- will copy modules classes/libs into module's WEB-INF directory. Works. --> <!-- will copy modules classes/libs into module's WEB-INF directory. Works. -->
<property value="${{deploy.dir.{$name}}}/WEB-INF/classes" name="deploy.classes.dir.{$name}"/> <property value="${{deploy.dir.{$name}}}/WEB-INF/classes" name="deploy.classes.dir.{$name}"/>
<property value="${{deploy.dir.{$name}}}/WEB-INF/lib" name="deploy.lib.dir.{$name}"/> <property value="${{deploy.dir.{$name}}}/WEB-INF/lib" name="deploy.lib.dir.{$name}"/>
<property value="${{deploy.dir.{$name}}}/WEB-INF/lib" name="deploy.external.lib.dir.{$name}"/> <property value="${{deploy.dir.{$name}}}/WEB-INF/lib" name="deploy.external.lib.dir.{$name}"/>
<!-- <!--
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
--> -->
<!-- will copy modules classes/libs into shared directory. 6.1 - 6.4: webapps/WEB-INF non-standard <!-- will copy modules classes/libs into shared directory. 6.1 - 6.4: webapps/WEB-INF non-standard
up to 6.4 the only metheod that works. up to 6.4 the only metheod that works.
<property value="${{deploy.shared.classes.dir}}" name="deploy.classes.dir.{$name}"/> <property value="${{deploy.shared.classes.dir}}" name="deploy.classes.dir.{$name}"/>
<property value="${{deploy.shared.lib.dir}}" name="deploy.lib.dir.{$name}"/> <property value="${{deploy.shared.lib.dir}}" name="deploy.lib.dir.{$name}"/>
<property value="${{deploy.shared.lib.dir}}" name="deploy.external.lib.dir.{$name}"/> --> <property value="${{deploy.shared.lib.dir}}" name="deploy.external.lib.dir.{$name}"/> -->
<!-- <!--
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
--> -->
<property value="${{deploy.dir.{$name}}}/WEB-INF/src" name="deploy.src.dir.{$name}"/> <property value="${{deploy.dir.{$name}}}/WEB-INF/src" name="deploy.src.dir.{$name}"/>
<property value="${{deploy.dir.{$name}}}/WEB-INF/doc" name="deploy.doc.dir.{$name}"/> <property value="${{deploy.dir.{$name}}}/WEB-INF/doc" name="deploy.doc.dir.{$name}"/>
<property value="${{deploy.dir.{$name}}}/WEB-INF/test" name="deploy.test.dir.{$name}"/> <property value="${{deploy.dir.{$name}}}/WEB-INF/test" name="deploy.test.dir.{$name}"/>
<property value="${{deploy.test.dir.{$name}}}/classes" name="deploy.test.classes.dir.{$name}"/> <property value="${{deploy.test.dir.{$name}}}/classes" name="deploy.test.classes.dir.{$name}"/>
<property value="${{deploy.dir.{$name}}}/WEB-INF/api" name="deploy.api.dir.{$name}"/> <property value="${{deploy.dir.{$name}}}/WEB-INF/api" name="deploy.api.dir.{$name}"/>
<property value="${{deploy.dir.{$name}}}/WEB-INF/bin" name="deploy.bin.dir.{$name}"/> <property value="${{deploy.dir.{$name}}}/WEB-INF/bin" name="deploy.bin.dir.{$name}"/>
</xsl:for-each> </xsl:for-each>
<!-- xml version of log4j configuration not supported <!-- xml version of log4j configuration not supported
<condition property="log4j.configuration.sysproperty" value="file://${{ccm.home}}/conf/log4j.xml"> <condition property="log4j.configuration.sysproperty"
value="file://${{ccm.home}}/conf/log4j.xml">
<and> <and>
<not><isset property="log4j.configuration.sysproperty"/></not> <not><isset property="log4j.configuration.sysproperty"/></not>
<available file="${{ccm.home}}/conf/log4j.xml"/> <available file="${{ccm.home}}/conf/log4j.xml"/>
@ -1573,7 +1805,8 @@
</condition> </condition>
--> -->
<!-- Non standard location of log4j configuration no longer supported as of GE 6.5 <!-- Non standard location of log4j configuration no longer supported as of GE 6.5
<condition property="log4j.configuration.sysproperty" value="file://${{ccm.home}}/conf/log4j.properties"> <condition property="log4j.configuration.sysproperty"
value="file://${{ccm.home}}/conf/log4j.properties">
<and> <and>
<not><isset property="log4j.configuration.sysproperty"/></not> <not><isset property="log4j.configuration.sysproperty"/></not>
<available file="${{ccm.home}}/conf/log4j.properties"/> <available file="${{ccm.home}}/conf/log4j.properties"/>
@ -1591,7 +1824,8 @@
</target> </target>
<target name="usage" description="Displays usage help"> <target name="usage" description="Displays usage help">
<echo message="Run 'ant -projecthelp' for a list of targets. See ant.apache.org for more information on Ant."/> <echo message="Run 'ant -projecthelp' for a list of targets.
See ant.apache.org for more information on Ant."/>
</target> </target>
</xsl:template> </xsl:template>

View File

@ -46,18 +46,24 @@ Oracle 10g RDBMS or PostgresQL up to version 8.2
(d) Edit the file local.ccm.properties and replace the specified bundle name (d) Edit the file local.ccm.properties and replace the specified bundle name
by your working bundle by your working bundle
(e) ant configure will create the compile and deploy tasks (e) ant install-tomcat will install a test environment (Tomcat 6) into
the runtime directory
(f) ant deploy will compile and deploy into your test environment (runtime) (f) ant configure will create the compile and deploy tasks
(g) ant load-bundle will load the database. May take several minutes! (g) ant deploy will compile and deploy into your test environment (runtime)
(h) ant start (h) ant load-bundle will load the database. May take several minutes!
(i) Open your browser: (i) ant start will start tomcat
(j) Open your browser:
http://localhost:8080/ http://localhost:8080/
http://localhost:8080/ccm/content-center/ http://localhost:8080/ccm/content-center/
(k) ant create-war will create a war file of the deployed project for
installation in any Tomcat 6 compliant servlet container.
4. NOTES 4. NOTES

View File

@ -0,0 +1,9 @@
Create a directory nbproject in the base dir of your APLAWS devel
environment (usually trunk). Copy the file project.xml into that
directory.
Open Netbeans, open a new project, select freeform web project
with existing ANT file, choose your devel directory. Netbeans
will find the project file and create a new project which contains
all APLAWS packages.

View File

@ -0,0 +1,697 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.ant.freeform</type>
<configuration>
<general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
<!-- Wenn Sie diese Datei manuell editieren, vermeiden Sie die Einstellung der Eigenschaften mittels Werkzeug. -->
<name>CCM (trunk)</name>
<properties/>
<folders>
<source-folder>
<label>webapps</label>
<type>doc_root</type>
<location>/var/ccm-devel/web/pb/trunk/webapps</location>
</source-folder>
<source-folder>
<label>WEB-INF</label>
<type>web_inf</type>
<location>/var/ccm-devel/web/pb/trunk/webapps/WEB-INF</location>
</source-folder>
<source-folder>
<label>ccm-core (Source)</label>
<type>java</type>
<location>ccm-core/src</location>
</source-folder>
<source-folder>
<label>ccm-cms (Source)</label>
<type>java</type>
<location>ccm-cms/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-assets-fileattachment (Source)</label>
<type>java</type>
<location>ccm-cms-assets-fileattachment/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-assets-notes (Source)</label>
<type>java</type>
<location>ccm-cms-assets-notes/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-assets-relatedlink (Source)</label>
<type>java</type>
<location>ccm-cms-assets-relatedlink/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-address (Source)</label>
<type>java</type>
<location>ccm-cms-types-address/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-agenda (Source)</label>
<type>java</type>
<location>ccm-cms-types-agenda/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-article (Source)</label>
<type>java</type>
<location>ccm-cms-types-article/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-bookmark (Source)</label>
<type>java</type>
<location>ccm-cms-types-bookmark/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-contact (Source)</label>
<type>java</type>
<location>ccm-cms-types-contact/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-esdservice (Source)</label>
<type>java</type>
<location>ccm-cms-types-esdservice/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-event (Source)</label>
<type>java</type>
<location>ccm-cms-types-event/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-faqitem (Source)</label>
<type>java</type>
<location>ccm-cms-types-faqitem/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-filestorageitem (Source)</label>
<type>java</type>
<location>ccm-cms-types-filestorageitem/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-formitem (Source)</label>
<type>java</type>
<location>ccm-cms-types-formitem/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-formsectionitem (Source)</label>
<type>java</type>
<location>ccm-cms-types-formsectionitem/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-glossaryitem (Source)</label>
<type>java</type>
<location>ccm-cms-types-glossaryitem/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-htmlform (Source)</label>
<type>java</type>
<location>ccm-cms-types-htmlform/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-inlinesite (Source)</label>
<type>java</type>
<location>ccm-cms-types-inlinesite/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-job (Source)</label>
<type>java</type>
<location>ccm-cms-types-job/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-legalnotice (Source)</label>
<type>java</type>
<location>ccm-cms-types-legalnotice/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-minutes (Source)</label>
<type>java</type>
<location>ccm-cms-types-minutes/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-motditem (Source)</label>
<type>java</type>
<location>ccm-cms-types-motditem/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-mparticle (Source)</label>
<type>java</type>
<location>ccm-cms-types-mparticle/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-newsitem (Source)</label>
<type>java</type>
<location>ccm-cms-types-newsitem/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-organization (Source)</label>
<type>java</type>
<location>ccm-cms-types-organization/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-pressrelease (Source)</label>
<type>java</type>
<location>ccm-cms-types-pressrelease/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-service (Source)</label>
<type>java</type>
<location>ccm-cms-types-service/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-siteproxy (Source)</label>
<type>java</type>
<location>ccm-cms-types-siteproxy/src</location>
</source-folder>
<source-folder>
<label>ccm-cms-types-xmlfeed (Source)</label>
<type>java</type>
<location>ccm-cms-types-xmlfeed/src</location>
</source-folder>
<source-folder>
<label>ccm-auth-http (Source)</label>
<type>java</type>
<location>ccm-auth-http/src</location>
</source-folder>
<source-folder>
<label>ccm-bookmarks (Source)</label>
<type>java</type>
<location>ccm-bookmarks/src</location>
</source-folder>
<source-folder>
<label>ccm-docmgr (Source)</label>
<type>java</type>
<location>ccm-docmgr/src</location>
</source-folder>
<source-folder>
<label>ccm-formbuilder-pdf (Source)</label>
<type>java</type>
<location>ccm-formbuilder-pdf/src</location>
</source-folder>
<source-folder>
<label>ccm-forum (Source)</label>
<type>java</type>
<location>ccm-forum/src</location>
</source-folder>
<source-folder>
<label>ccm-simplesurvey (Source)</label>
<type>java</type>
<location>ccm-simplesurvey/src</location>
</source-folder>
<source-folder>
<label>ccm-user-preferences (Source)</label>
<type>java</type>
<location>ccm-user-preferences/src</location>
</source-folder>
<source-folder>
<label>ccm-weblog (Source)</label>
<type>java</type>
<location>ccm-weblog/src</location>
</source-folder>
<source-folder>
<label>ccm-webpage (Source)</label>
<type>java</type>
<location>ccm-webpage/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-aplaws (Source)</label>
<type>java</type>
<location>ccm-ldn-aplaws/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-atoz (Source)</label>
<type>java</type>
<location>ccm-ldn-atoz/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-dublin (Source)</label>
<type>java</type>
<location>ccm-ldn-dublin/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-exporter (Source)</label>
<type>java</type>
<location>ccm-ldn-exporter/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-freeform (Source)</label>
<type>java</type>
<location>ccm-ldn-freeform/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-image-step (Source)</label>
<type>java</type>
<location>ccm-ldn-image-step/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-importer (Source)</label>
<type>java</type>
<location>ccm-ldn-importer/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-navigation (Source)</label>
<type>java</type>
<location>ccm-ldn-navigation/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-portal (Source)</label>
<type>java</type>
<location>ccm-ldn-portal/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-rss (Source)</label>
<type>java</type>
<location>ccm-ldn-rss/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-search (Source)</label>
<type>java</type>
<location>ccm-ldn-search/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-shortcuts (Source)</label>
<type>java</type>
<location>ccm-ldn-shortcuts/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-subsite (Source)</label>
<type>java</type>
<location>ccm-ldn-subsite/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-terms (Source)</label>
<type>java</type>
<location>ccm-ldn-terms/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-theme (Source)</label>
<type>java</type>
<location>ccm-ldn-theme/src</location>
</source-folder>
<source-folder>
<label>ccm-ldn-util (Source)</label>
<type>java</type>
<location>ccm-ldn-util/src</location>
</source-folder>
<source-folder>
<label>ccm-shp-aplaws (Source)</label>
<type>java</type>
<location>ccm-shp-aplaws/src</location>
</source-folder>
<source-folder>
<label>ccm-shp-aplaws (Web)</label>
<type>java</type>
<location>ccm-shp-aplaws/web</location>
</source-folder>
<source-folder>
<label>ccm-zes-aplaws (Source)</label>
<type>java</type>
<location>ccm-zes-aplaws/src</location>
</source-folder>
<source-folder>
<label>ccm-zes-aplaws (Web)</label>
<type>java</type>
<location>ccm-zes-aplaws/web</location>
</source-folder>
</folders>
<ide-actions>
<action name="build">
<target>build</target>
</action>
<action name="clean">
<target>clean</target>
</action>
<action name="javadoc">
<target>javadoc</target>
</action>
<action name="run">
<target>runtests</target>
</action>
<action name="test">
<target>build-tests</target>
</action>
<action name="redeploy">
<target>deploy</target>
</action>
<action name="rebuild">
<target>clean</target>
<target>build</target>
</action>
</ide-actions>
<view>
<items>
<source-folder style="tree">
<label>Web Pages</label>
<location>/var/ccm-devel/web/pb/trunk/webapps</location>
</source-folder>
<source-folder style="tree">
<label>WEB-INF Content</label>
<location>/var/ccm-devel/web/pb/trunk/webapps/WEB-INF</location>
</source-folder>
<source-folder style="tree">
<label>Webseiten</label>
<location>../../../web/pb/trunk/webapps</location>
</source-folder>
<source-folder style="packages">
<label>ccm-core (Source)</label>
<location>ccm-core/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms (Source)</label>
<location>ccm-cms/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-assets-fileattachment (Source)</label>
<location>ccm-cms-assets-fileattachment/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-assets-notes (Source)</label>
<location>ccm-cms-assets-notes/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-assets-relatedlink (Source)</label>
<location>ccm-cms-assets-relatedlink/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-address (Source)</label>
<location>ccm-cms-types-address/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-agenda (Source)</label>
<location>ccm-cms-types-agenda/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-article (Source)</label>
<location>ccm-cms-types-article/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-bookmark (Source)</label>
<location>ccm-cms-types-bookmark/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-contact (Source)</label>
<location>ccm-cms-types-contact/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-esdservice (Source)</label>
<location>ccm-cms-types-esdservice/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-event (Source)</label>
<location>ccm-cms-types-event/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-faqitem (Source)</label>
<location>ccm-cms-types-faqitem/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-filestorageitem (Source)</label>
<location>ccm-cms-types-filestorageitem/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-formitem (Source)</label>
<location>ccm-cms-types-formitem/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-formsectionitem (Source)</label>
<location>ccm-cms-types-formsectionitem/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-glossaryitem (Source)</label>
<location>ccm-cms-types-glossaryitem/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-htmlform (Source)</label>
<location>ccm-cms-types-htmlform/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-inlinesite (Source)</label>
<location>ccm-cms-types-inlinesite/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-job (Source)</label>
<location>ccm-cms-types-job/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-legalnotice (Source)</label>
<location>ccm-cms-types-legalnotice/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-minutes (Source)</label>
<location>ccm-cms-types-minutes/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-motditem (Source)</label>
<location>ccm-cms-types-motditem/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-mparticle (Source)</label>
<location>ccm-cms-types-mparticle/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-newsitem (Source)</label>
<location>ccm-cms-types-newsitem/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-organization (Source)</label>
<location>ccm-cms-types-organization/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-pressrelease (Source)</label>
<location>ccm-cms-types-pressrelease/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-service (Source)</label>
<location>ccm-cms-types-service/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-siteproxy (Source)</label>
<location>ccm-cms-types-siteproxy/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-cms-types-xmlfeed (Source)</label>
<location>ccm-cms-types-xmlfeed/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-auth-http (Source)</label>
<location>ccm-auth-http/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-bookmarks (Source)</label>
<location>ccm-bookmarks/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-docmgr (Source)</label>
<location>ccm-docmgr/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-formbuilder-pdf (Source)</label>
<location>ccm-formbuilder-pdf/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-forum (Source)</label>
<location>ccm-forum/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-simplesurvey (Source)</label>
<location>ccm-simplesurvey/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-user-preferences (Source)</label>
<location>ccm-user-preferences/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-weblog (Source)</label>
<location>ccm-weblog/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-webpage (Source)</label>
<location>ccm-webpage/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-aplaws (Source)</label>
<location>ccm-ldn-aplaws/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-atoz (Source)</label>
<location>ccm-ldn-atoz/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-dublin (Source)</label>
<location>ccm-ldn-dublin/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-exporter (Source)</label>
<location>ccm-ldn-exporter/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-freeform (Source)</label>
<location>ccm-ldn-freeform/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-image-step (Source)</label>
<location>ccm-ldn-image-step/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-importer (Source)</label>
<location>ccm-ldn-importer/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-navigation (Source)</label>
<location>ccm-ldn-navigation/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-portal (Source)</label>
<location>ccm-ldn-portal/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-rss (Source)</label>
<location>ccm-ldn-rss/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-search (Source)</label>
<location>ccm-ldn-search/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-shortcuts (Source)</label>
<location>ccm-ldn-shortcuts/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-subsite (Source)</label>
<location>ccm-ldn-subsite/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-terms (Source)</label>
<location>ccm-ldn-terms/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-theme (Source)</label>
<location>ccm-ldn-theme/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-ldn-util (Source)</label>
<location>ccm-ldn-util/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-shp-aplaws (Source)</label>
<location>ccm-shp-aplaws/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-shp-aplaws (Web)</label>
<location>ccm-shp-aplaws/web</location>
</source-folder>
<source-folder style="packages">
<label>ccm-zes-aplaws (Source)</label>
<location>ccm-zes-aplaws/src</location>
</source-folder>
<source-folder style="packages">
<label>ccm-zes-aplaws (Web)</label>
<location>ccm-zes-aplaws/web</location>
</source-folder>
<source-file>
<location>build.xml</location>
</source-file>
</items>
<context-menu>
<ide-action name="build"/>
<ide-action name="clean"/>
<ide-action name="javadoc"/>
<ide-action name="run"/>
<ide-action name="test"/>
<ide-action name="redeploy"/>
<ide-action name="rebuild"/>
</context-menu>
</view>
<subprojects/>
</general-data>
<java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1">
<compilation-unit>
<package-root>ccm-core/src</package-root>
<package-root>ccm-cms/src</package-root>
<package-root>ccm-cms-assets-fileattachment/src</package-root>
<package-root>ccm-cms-assets-notes/src</package-root>
<package-root>ccm-cms-assets-relatedlink/src</package-root>
<package-root>ccm-cms-types-address/src</package-root>
<package-root>ccm-cms-types-agenda/src</package-root>
<package-root>ccm-cms-types-article/src</package-root>
<package-root>ccm-cms-types-bookmark/src</package-root>
<package-root>ccm-cms-types-contact/src</package-root>
<package-root>ccm-cms-types-esdservice/src</package-root>
<package-root>ccm-cms-types-event/src</package-root>
<package-root>ccm-cms-types-faqitem/src</package-root>
<package-root>ccm-cms-types-filestorageitem/src</package-root>
<package-root>ccm-cms-types-formitem/src</package-root>
<package-root>ccm-cms-types-formsectionitem/src</package-root>
<package-root>ccm-cms-types-glossaryitem/src</package-root>
<package-root>ccm-cms-types-htmlform/src</package-root>
<package-root>ccm-cms-types-inlinesite/src</package-root>
<package-root>ccm-cms-types-job/src</package-root>
<package-root>ccm-cms-types-legalnotice/src</package-root>
<package-root>ccm-cms-types-minutes/src</package-root>
<package-root>ccm-cms-types-motditem/src</package-root>
<package-root>ccm-cms-types-mparticle/src</package-root>
<package-root>ccm-cms-types-newsitem/src</package-root>
<package-root>ccm-cms-types-organization/src</package-root>
<package-root>ccm-cms-types-pressrelease/src</package-root>
<package-root>ccm-cms-types-service/src</package-root>
<package-root>ccm-cms-types-siteproxy/src</package-root>
<package-root>ccm-cms-types-xmlfeed/src</package-root>
<package-root>ccm-auth-http/src</package-root>
<package-root>ccm-bookmarks/src</package-root>
<package-root>ccm-docmgr/src</package-root>
<package-root>ccm-formbuilder-pdf/src</package-root>
<package-root>ccm-forum/src</package-root>
<package-root>ccm-simplesurvey/src</package-root>
<package-root>ccm-user-preferences/src</package-root>
<package-root>ccm-weblog/src</package-root>
<package-root>ccm-webpage/src</package-root>
<package-root>ccm-ldn-aplaws/src</package-root>
<package-root>ccm-ldn-atoz/src</package-root>
<package-root>ccm-ldn-dublin/src</package-root>
<package-root>ccm-ldn-exporter/src</package-root>
<package-root>ccm-ldn-freeform/src</package-root>
<package-root>ccm-ldn-image-step/src</package-root>
<package-root>ccm-ldn-importer/src</package-root>
<package-root>ccm-ldn-navigation/src</package-root>
<package-root>ccm-ldn-portal/src</package-root>
<package-root>ccm-ldn-rss/src</package-root>
<package-root>ccm-ldn-search/src</package-root>
<package-root>ccm-ldn-shortcuts/src</package-root>
<package-root>ccm-ldn-subsite/src</package-root>
<package-root>ccm-ldn-terms/src</package-root>
<package-root>ccm-ldn-theme/src</package-root>
<package-root>ccm-ldn-util/src</package-root>
<package-root>ccm-shp-aplaws/src</package-root>
<package-root>ccm-shp-aplaws/web</package-root>
<package-root>ccm-zes-aplaws/src</package-root>
<package-root>ccm-zes-aplaws/web</package-root>
<classpath mode="compile">ccm-core/lib/log4j.jar:/usr/share/java/ccm-servlet-2.3.jar:ccm-core/lib/lucene-1.4.3.jar:ccm-core/lib/mail.jar:ccm-core/lib/commons-lang-2.1.jar:ccm-core/lib/commons-cli-1.0.jar:ccm-core/lib/xercesImpl.jar:ccm-core/lib/jakarta-oro-2.0.8.jar:/usr/share/java/bcel.jar:ccm-core/lib/Tidy.jar:ccm-core/lib/commons-fileupload-1.1.1.jar:ccm-core/lib/commons-codec-1.3.jar:ccm-core/lib/commons-beanutils.jar:ccm-core/lib/jdom.jar:ccm-core/lib/jdxslt.jar:ccm-core/lib/saxon.jar:/usr/share/java/jakarta-commons-digester.jar:ccm-core/lib/poi-2.5-final-20040302.jar:ccm-core/lib/PDFBox-0.7.2-log4j.jar:ccm-core/lib/tm-extractors-0.4.jar:ccm-cms/lib/jai_codec.jar::ccm-cms/lib/jai_core.jar::ccm-cms/lib/mlibwrapper_jai.jar:ccm-ldn-search/lib/axis.jar:ccm-ldn-search/lib/jaxrpc.jar:ccm-ldn-search/lib/jobo.jar:ccm-formbuilder-pdf/lib/fop.jar:/usr/share/java/ojdbc14.jar</classpath>
<source-level>1.5</source-level>
</compilation-unit>
</java-data>
<preferences xmlns="http://www.netbeans.org/ns/auxiliary-configuration-preferences/1">
<module name="org-netbeans-modules-editor-indent">
<node name="CodeStyle">
<property name="usedProfile" value="default"/>
<node name="project">
<property name="tab-size" value="8"/>
<property name="text-limit-width" value="80"/>
</node>
</node>
<node name="text">
<node name="x-java">
<node name="CodeStyle">
<node name="project"/>
</node>
</node>
</node>
</module>
</preferences>
<web-data xmlns="http://www.netbeans.org/ns/freeform-project-web/1">
<web-module>
<doc-root>/var/ccm-devel/web/pb/trunk/webapps</doc-root>
<classpath>ccm-core/lib/log4j.jar:/usr/share/java/ccm-servlet.jar</classpath>
<j2ee-spec-level>1.3</j2ee-spec-level>
</web-module>
</web-data>
</configuration>
</project>