felipeal 2004/12/08 18:05:40 Modified: ear plugin.jelly ear/src/plugin-test/test02 maven.xml project.xml ear/xdocs changes.xml Added: ear/src/plugin-test/test02 project.properties Log: Fix for MPEAR-31: created a tag that defines the path of a dependency and then used that tag on both teh ear creation as appxml generation Revision Changes Path 1.31 +45 -20 maven-plugins/ear/plugin.jelly Index: plugin.jelly =================================================================== RCS file: /home/cvs/maven-plugins/ear/plugin.jelly,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- plugin.jelly 8 Dec 2004 12:00:21 -0000 1.30 +++ plugin.jelly 9 Dec 2004 02:05:40 -0000 1.31 @@ -26,6 +26,8 @@ xmlns:maven="jelly:maven" xmlns:util="jelly:util" xmlns:x="jelly:xml" + xmlns:define="jelly:define" + xmlns:ear="ear" > <!--==================================================================--> @@ -122,22 +124,11 @@ </ant:echo> </j:if> - <ant:echo>Bundling: ${dep.type} - ${dep.id} - ${dep.version}</ant:echo> - <!-- define the directory where the dependency will be included --> - <!-- (if the property is not set, dir is the root) --> - <j:set var="bundleDir" value="${dep.getProperty('ear.bundle.dir')}"/> - <!-- define the name of the dependency --> - <j:set var="bundleName" value="${dep.getProperty('ear.bundle.name')}"/> - <j:if test="${empty(bundleName)}"> - <j:set var="bundleName" value="${lib.name}"/> - </j:if> - - <j:set var="bundlePath" value="${bundleDir}/${bundleName}"/> - - <echo>Dependency ${lib.file.name} will be bundled as ${bundlePath}</echo> + <ear:setPath lib="${lib}" var="bundledPath"/> + <echo>Dependency ${lib.file.name} will be bundled as ${bundledPath}</echo> <!-- after the definitions, copy the dependency --> - <ant:copy file="${lib.file.parent}/${lib.file.name}" tofile="${tmpDependenciesDir}/${bundlePath}"/> + <ant:copy file="${lib.file.parent}/${lib.file.name}" tofile="${tmpDependenciesDir}/${bundledPath}"/> </j:if> </j:forEach> @@ -219,36 +210,37 @@ <x:element name="display-name">${maven.ear.displayname}</x:element> <j:forEach var="lib" items="${pom.artifacts}"> <j:set var="dep" value="${lib.dependency}"/> + <ear:setPath lib="${lib}" var="bundledPath"/> <j:if test="${dep.getProperty('ear.bundle')=='true' || dep.getProperty('ear.module')=='true'}"> <j:choose> <j:when test="${dep.type=='war'}"> <x:element name="module"> <x:element name="web"> - <x:element name="web-uri">${dep.getArtifact()}</x:element> + <x:element name="web-uri">${bundledPath}</x:element> <x:element name="context-root">${dep.getProperty('ear.appxml.war.context-root')}</x:element> </x:element> </x:element> </j:when> <j:when test="${dep.type=='ejb'}"> <x:element name="module"> - <x:element name="ejb">${dep.getArtifact()}</x:element> + <x:element name="ejb">${bundledPath}</x:element> </x:element> </j:when> <j:when test="${dep.type=='jar'}"> <j:if test="${dep.getProperty('ear.module')=='true'}"> <x:element name="module"> - <x:element name="java">${dep.getArtifact()}</x:element> + <x:element name="java">${bundledPath}</x:element> </x:element> </j:if> </j:when> <j:when test="${dep.type=='rar'}"> <x:element name="module"> - <x:element name="connector">${dep.getArtifact()}</x:element> + <x:element name="connector">${bundledPath}</x:element> </x:element> </j:when> <j:when test="${dep.type=='sar'}"> <x:element name="module"> - <x:element name="connector">${dep.getArtifact()}</x:element> + <x:element name="connector">${bundledPath}</x:element> </x:element> </j:when> </j:choose> @@ -325,7 +317,40 @@ <goal name="ear:load"> <echo>DEPRECATED: do not use ear:load, there is no need</echo> </goal> - + + + + <define:taglib uri="ear"> + + <!-- + Sets the relative path of a dependency in the EAR file + parameters: + lib: dependency to be bundled + var: name of the variable that will get the result + + --> + <define:tag name="setPath"> + <j:set var="dep" value="${lib.dependency}"/> + <!-- define the directory where the dependency will be included --> + <!-- (if the property is not set, dir is the root) --> + <j:set var="bundleDir" value="${dep.getProperty('ear.bundle.dir')}"/> + <!-- define the name of the dependency --> + <j:set var="bundleName" value="${dep.getProperty('ear.bundle.name')}"/> + <j:if test="${empty(bundleName)}"> + <j:set var="bundleName" value="${lib.name}"/> + </j:if> + <j:choose> + <j:when test="${empty(bundleDir)}"> + <j:set var="thePath" value="${bundleName}"/> + </j:when> + <j:otherwise> + <j:set var="thePath" value="${bundleDir}/${bundleName}"/> + </j:otherwise> + </j:choose> + ${context.setVariable(var,'parent',thePath)} + </define:tag> + + </define:taglib> </project> 1.4 +15 -3 maven-plugins/ear/src/plugin-test/test02/maven.xml Index: maven.xml =================================================================== RCS file: /home/cvs/maven-plugins/ear/src/plugin-test/test02/maven.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- maven.xml 16 Nov 2004 03:22:59 -0000 1.3 +++ maven.xml 9 Dec 2004 02:05:40 -0000 1.4 @@ -17,14 +17,15 @@ --> <project xmlns:j="jelly:core" xmlns:assert="assert" + xmlns:util="jelly:util" + xmlns:x="jelly:xml" default="testPlugin"> - <goal name="testPlugin" prereqs="test-ear"> + <goal name="testPlugin" prereqs="ear,test-ear"> <attainGoal name="clean"/> </goal> <goal name="test-ear"> - <attainGoal name="ear"/> <!-- tests that the ear is generated --> <assert:assertFileExists file="${maven.build.dir}/${maven.final.name}.ear"/> @@ -37,7 +38,8 @@ <unzip src="${earFile}" dest="${unzipDir}"/> <!-- check for commons-logging --> - <assert:assertFileExists file="${unzipDir}/APP-INF/lib/commons-logging-1.0.3.jar" + <j:set var="commonsExpectedPath" value="/APP-INF/lib/commons-logging-1.0.3.jar"/> + <assert:assertFileExists file="${unzipDir}${commonsExpectedPath}" msg="commons-logging was not bundled"/> <!-- check that commons-collections has been packaged in the right place--> @@ -52,6 +54,16 @@ <assert:assertFileExists file="${unzipDir}/APP-INF/lib/LOG4J.JAR" msg="log4j was bundled incorrectly"/> + <!-- check that the application.xml was generated --> + <j:set var="appXml" value="${unzipDir}/META-INF/application.xml"/> + <assert:assertFileExists file="${appXml}" + msg="application.xml was not generated"/> + + <!-- check that commons-loggin was set with the right path --> + <util:file var="appXmlFile" name="${appXml}"/> + <x:parse var="appXmlDoc" xml="${appXmlFile}"/> + <x:set var="commonsLogging" select="string($appXmlDoc/application/module/java)"/> + <assert:assertEquals expected="${commonsExpectedPath}" value="${commonsLogging}"/> </goal> </project> 1.5 +1 -1 maven-plugins/ear/src/plugin-test/test02/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/maven-plugins/ear/src/plugin-test/test02/project.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- project.xml 16 Nov 2004 03:22:59 -0000 1.4 +++ project.xml 9 Dec 2004 02:05:40 -0000 1.5 @@ -51,7 +51,7 @@ <artifactId>commons-logging</artifactId> <version>1.0.3</version> <properties> - <ear.bundle.dir>APP-INF/lib</ear.bundle.dir> + <ear.bundle.dir>/APP-INF/lib</ear.bundle.dir> <ear.module>true</ear.module> </properties> </dependency> 1.1 maven-plugins/ear/src/plugin-test/test02/project.properties Index: project.properties =================================================================== maven.ear.appxml.generate=true 1.33 +2 -0 maven-plugins/ear/xdocs/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/maven-plugins/ear/xdocs/changes.xml,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- changes.xml 8 Dec 2004 12:00:21 -0000 1.32 +++ changes.xml 9 Dec 2004 02:05:40 -0000 1.33 @@ -25,6 +25,8 @@ </properties> <body> <release version="1.7-SNAPSHOT" date="on CVS"> + <action dev="felipeal" type="fix" issue="MPEAR-31">Fixed path of bundled dependency on generated <code>application.xml</code>. + </action> <action dev="felipeal" type="update" issue="MAVEN-1526">Issues a warning (instead of failing the build) when a case-sensitiveness dependency issue is found</action> </release> <release version="1.6" date="2004-12-05">
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]