You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by vm...@apache.org on 2004/06/12 16:15:14 UTC

cvs commit: maven-plugins/abbot plugin.jelly

vmassol     2004/06/12 07:15:14

  Modified:    abbot    plugin.jelly
  Log:
  Binary --> Ascii
  
  Revision  Changes    Path
  1.2       +365 -365  maven-plugins/abbot/plugin.jelly
  
  Index: plugin.jelly
  ===================================================================
  RCS file: /home/cvs/maven-plugins/abbot/plugin.jelly,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- plugin.jelly	12 Jun 2004 14:09:36 -0000	1.1
  +++ plugin.jelly	12 Jun 2004 14:15:14 -0000	1.2
  @@ -1,365 +1,365 @@
  -<?xml version="1.0"?>
  -
  -<!--
  -/* ====================================================================
  - *   Copyright 2004 The Apache Software Foundation.
  - *
  - *   Licensed under the Apache License, Version 2.0 (the "License");
  - *   you may not use this file except in compliance with the License.
  - *   You may obtain a copy of the License at
  - *
  - *       http://www.apache.org/licenses/LICENSE-2.0
  - *
  - *   Unless required by applicable law or agreed to in writing, software
  - *   distributed under the License is distributed on an "AS IS" BASIS,
  - *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  - *   See the License for the specific language governing permissions and
  - *   limitations under the License.
  - * ====================================================================
  - */
  --->
  - 
  -<!--
  -   ========================================================================
  -     Abbot plugin. Abbot is a GUI testing framework for AWT/Swing 
  -     applications.
  -   ========================================================================
  --->
  -
  -<project
  -  xmlns:j="jelly:core"
  -  xmlns:m="jelly:maven"
  -  xmlns:x="jelly:xml"
  -  xmlns:u="jelly:util"
  -  xmlns:ant="jelly:ant"
  -  xmlns:doc="doc"
  -  xmlns:define="jelly:define"
  -  xmlns:jsl="jelly:jsl">
  -
  -  <!--
  -     ========================================================================
  -       Default goal. Execute the Abbot tests.
  -     ========================================================================
  -  -->
  -  <goal name="abbot" prereqs="abbot:test" description="Run the abbot tests"/>
  -  
  -
  -  <!--
  -     ========================================================================
  -       Execute the Abbot tests by running the application locally.
  -     ========================================================================
  -  -->
  -  <goal name="abbot:test" 
  -    prereqs="abbot:check-env,abbot:prepare-filesystem,abbot:prepare-resources,java:compile,java:jar-resources"
  -    description="Run the abbot tests">
  -  
  -  	<!-- Needed to define junit task -->
  -    <taskdef name="junit"
  -        classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask">
  -      <classpath>
  -        <pathelement location="${plugin.getDependencyPath('junit:junit')}"/>
  -      </classpath>
  -    </taskdef>
  -    
  -    <!-- Just let JUnit execute the tests --> 
  -    <!-- IMPORTANT: We must fork the JUnit tests. Otherwise there are classpath
  -         problems (the version of xerces in the Maven root CL seems to be the 
  -         cause). -->
  -
  -    <junit printSummary="${maven.abbot.printSummary}"
  -        failureProperty="maven.test.failure" fork="true">
  -        
  -      <!-- Sys properties -->
  -      <setProperty name="dir" value="${maven.abbot.dir}" />
  -      <sysproperty key="maven.abbot.src.dir" value="${maven.abbot.src.dir}"/>
  -      <sysproperty key="basedir" value="${basedir}"/>
  -      <u:tokenize var="listOfProperties" delim=" ">${maven.abbot.sysproperties}</u:tokenize>
  -      <j:forEach var="someProperty" items="${listOfProperties}">
  -        <sysproperty key="${someProperty}" value="${context.getVariable(someProperty)}"/>
  -      </j:forEach>
  -        
  -      <!-- JVM args -->
  -      <u:tokenize var="listOfJvmArgs" delim=" ">${maven.abbot.jvmargs}</u:tokenize>
  -      <j:forEach var="somejvmarg" items="${listOfJvmArgs}">
  -        <jvmarg value="${somejvmarg}"/>
  -      </j:forEach>
  -        
  -      <!-- File format of test reports are defined here -->
  -      <formatter type="xml"/>
  -      <formatter type="${maven.abbot.format}" usefile="${maven.abbot.usefile}"/>
  -        					 
  -      <!-- Classpath -->
  -      <classpath>
  -        <pathelement location="${plugin.dir}"/>
  -        <pathelement location="${maven.build.dest}"/>
  -        <pathelement location="${maven.test.dest}"/>
  -        <j:forEach var="dep" items="${plugin.getDependencies()}">
  -          <j:if test="${dep.getProperty('abbot.webstart')}">
  -		       <pathelement path="${plugin.getDependencyPath(dep.Id)}"/>
  -		      </j:if>
  -		 	 	</j:forEach>
  -		 	 	<j:forEach var="lib" items="${pom.dependencies}">
  -		 	 	  <j:set var="libFullName" value="${lib.getId()}" />
  -          <j:set var="jarPath" value="${maven.repo.local}/${lib.artifactDirectory}/${lib.getType()}s/${lib.getArtifact()}" />
  -          <pathelement path="${jarPath}"/>
  -		 	 	</j:forEach>
  -      </classpath>
  -        
  -      <test name="${maven.abbot.include}" todir="${maven.abbot.reports.dir}"/>
  -        
  -   </junit>
  -   
  -   <!-- Junit exit status is stored in maven.test.failure. Whenever it is true
  -        (and ignore flag is not) we must stop the build process -->
  -   <j:if test="${maven.test.failure}">
  -     <j:if test="${context.getVariable('maven.test.failure.ignore') != null}">
  -       <fail message="There were test failures"/>
  -     </j:if>
  -   </j:if>
  - 
  -  </goal> 
  -  
  -  <!--
  -     ========================================================================
  -       Launch tests on a webstart application
  -     ========================================================================
  -  -->   
  -  <goal name="abbot:test-webstart" prereqs="abbot:check-webstart-env,abbot:prepare-filesystem"
  -      description="Launch tests on a webstart application">
  -           
  -  	<!-- First we get the remote jnlp -->
  -  	<get src="${maven.abbot.remotejnlp}"
  -        dest="${maven.abbot.dest.dir}/${maven.abbot.webstart.jnlp.original}"/>
  -  	
  -    <!-- We make a jar with compiled main class -->
  -    <!-- TODO: create this as part of the plugin creation and not as part of
  -         its execution -->
  -  	<jar destfile="${maven.abbot.dest.dir}/${maven.abbot.webstart.main.jar}" 
  -  	    basedir="${plugin.dir}" includes="**/*.class"/>
  -    
  -    <!-- Iterating through dependencies, and signing them if they're not up-to-date -->
  -    <j:if test="${context.getVariable('maven.abbot.sign')}">
  -      
  -      <j:forEach var="dep" items="${plugin.getDependencies()}">
  -        <j:if test="${dep.getProperty('abbot.webstart')}">	
  -          
  -          <j:set var="filename" value="${dep.GroupId}-${dep.ArtifactId}"/>
  -          <j:set var="varname" value="abbot.signing.notrequired.${dep.id}"/>    
  -          
  -          <!-- Checking whether or not the dependency has to be signed -->
  -          <uptodate property="${varname}"
  -                srcfile="${plugin.getDependencyPath(dep.Id)}"
  -                targetfile="${maven.abbot.dest.dir}/${filename}.jar"/>
  -          
  -          <!-- Keeping this debug trace a while to ensure that the up-to-date feature is working properly -->
  -          <echo level="debug">${dep.id} is uptodate ? ${context.getVariable(varname) == true}</echo>
  -          
  -          <!-- Signing the dependancy only if it is not up-to-date or forced-->
  -          <j:if test="${(context.getVariable(varname) != true)}">
  -            
  -            <!-- Unsigning -->
  -            <zip destfile="${maven.abbot.dest.dir}/${filename}.jar">
  -              <zipfileset src="${plugin.getDependencyPath(dep.id)}"
  -                  excludes="**/*.SF **/*.RSA **/*.DSA"/>
  -            </zip> 
  -            
  -            <!-- Signing -->
  -            <signjar jar="${maven.abbot.dest.dir}/${filename}.jar" 
  -               keystore="${maven.abbot.sign.keystore}"
  -               alias="${maven.abbot.sign.alias}" 
  -               storepass="${maven.abbot.sign.storepass}"/>
  -          </j:if>
  -          
  -        </j:if>
  -      </j:forEach>
  -      <!-- Jar containing abbot main class is signed -->
  -      <signjar jar="${maven.abbot.dest.dir}/${maven.abbot.webstart.main.jar}" 
  -        keystore="${maven.abbot.sign.keystore}"
  -        alias="${maven.abbot.sign.alias}" 
  -        storepass="${maven.abbot.sign.storepass}"/>
  -  	</j:if>
  - 		
  -  	
  -    <!-- Jnlp is modified so that local abbot libraries are referenced -->
  -    <doc:jsl
  -        input="${maven.abbot.dest.dir}/${maven.abbot.webstart.jnlp.original}"
  -        output="${maven.abbot.webstart.jnlp.modified}"
  -        outputDirectory="${maven.abbot.dest.dir}"
  -        stylesheet="${plugin.resources}/jnlp.jsl"
  -        outputMode="xml"
  -        prettyPrint="true"/>
  -  	
  -  	<!-- Java webstart is launched on local modified jnlp -->
  -  	<java classname="com.sun.javaws.Main" fork="true" failonerror="true">
  -      <classpath>
  -        <pathelement location="${env.JAVAWS_HOME}/javaws-l10n.jar"/>
  -        <pathelement location="${env.JAVAWS_HOME}/javaws.jar"/>
  -      </classpath>
  -      <jvmarg value="-Djnlpx.home=${env.JAVAWS_HOME}"/>
  -  	  <jvmarg value="-Djnlpx.heapsize=NULL,NULL"/>
  -  	  <jvmarg value="-Djnlpx.jvm=${env.JAVA_HOME}/bin/javaw.exe"/>
  -  	  <jvmarg value="-Djnlpx.deployment.system.home=${maven.abbot.javaws.systemhome}"/>
  -  	  <jvmarg value="-Djnlpx.deployment.user.home=${maven.abbot.javaws.userhome}"/>
  -  	  <jvmarg value="-Djava.security.policy=${env.JAVAWS_HOME}/javaws.policy"/>
  -  	  <jvmarg value="-DtrustProxy=true"/>
  -  	  <arg value="${maven.abbot.dest.dir}/${maven.abbot.webstart.jnlp.modified}"/>
  -  	</java>
  -
  -  </goal>
  -  
  -  
  -  <!--
  -     ========================================================================
  -       Launch Abbot costello editor
  -     ========================================================================
  -  --> 
  -  <goal name="abbot:editor"  prereqs="abbot:check-env,abbot:prepare-filesystem" 
  -  			description="Launch Abbot costello editor">
  -  	
  -  	<!-- Launching abbot editor with abbot and jnlp dependencies as classpath --> 
  -    <java classname="abbot.editor.ScriptEditor" fork="true">
  -      <classpath>
  -      	<!-- Abbot editor dependencies -->
  -        <j:forEach var="dep" items="${plugin.getDependencies()}">
  -		     	<j:if test="${dep.getProperty('abbot.editor')}">
  -		       <pathelement path="${plugin.getDependencyPath(dep.Id)}"/>
  -		      </j:if>
  -		 	 	</j:forEach>
  -        <path refid="maven.dependency.classpath"/>
  -      </classpath>
  -  	</java>
  -  
  -  </goal>
  - 
  -  
  -  <!--
  -     ========================================================================
  -       Launch Abbot costello editor on a webstart application
  -     ========================================================================
  -  --> 
  -  <goal name="abbot:editor-webstart"
  -      prereqs="abbot:check-webstart-env,abbot:prepare-filesystem" 
  -      description="Launch Abbot costello editor on a webstart application">
  -  			
  -    <!-- First we get the remote jnlp -->
  -  	<get src="${maven.abbot.remotejnlp}"
  -        dest="${maven.abbot.dest.dir}/${maven.abbot.webstart.jnlp.original}"/>		
  -  			
  -  	<!-- Parsing jnlp file in order to copy all dependencies into local directory -->
  -  	<u:file var="inputFile" name="${maven.abbot.dest.dir}/${maven.abbot.webstart.jnlp.original}"/>
  -  	<x:parse var="parsedfile" xml="${inputFile}"/>		
  -  	<x:set var="codebasename" select="string($parsedfile/jnlp/@codebase)"/>
  -  	<x:forEach var="jar" select="$parsedfile/jnlp/resources/jar">
  -      <x:set var="jarname" select="string($jar/@href)"/>
  -      <get src="${codebasename}/${jarname}" usetimestamp="true"
  -          dest="${maven.abbot.dest.dir}/${jarname}"/>
  -  	</x:forEach>
  -  	
  -  	<!-- Launching abbot editor with abbot and jnlp dependencies as classpath --> 
  -    <java classname="abbot.editor.ScriptEditor" fork="true">
  -      <classpath>
  -      	<!-- Abbot editor dependencies -->
  -        <j:forEach var="dep" items="${plugin.getDependencies()}">
  -		     	<j:if test="${dep.getProperty('abbot.editor')}">
  -		       <pathelement path="${plugin.getDependencyPath(dep.Id)}"/>
  -		      </j:if>
  -		 	 	</j:forEach>
  -		 	 	
  -				<!-- Remote application dependencies -->
  -		 	 	<x:forEach var="jar" select="$parsedfile/jnlp/resources/jar">
  -		 	 		<x:set var="jarname" select="string($jar/@href)"/>
  -		 	 		<pathelement path="${maven.abbot.dest.dir}/${jarname}"/>
  -		 	 	</x:forEach>
  -      </classpath>
  -  	</java>
  -  
  -  </goal>
  -  
  -  <!--
  -     ========================================================================
  -       Copy test resources to test directory (internal goal)
  -     ========================================================================
  -  -->
  -  <goal name="abbot:prepare-resources" prereqs="abbot:prepare-filesystem">
  -
  -    <j:if test="${pom.build.unitTest != null}">
  -      <j:if test="${!pom.build.unitTest.resources.isEmpty()}">
  -        <m:copy-resources
  -            resources="${pom.build.unitTest.resources}"
  -            todir="${maven.test.dest}"/>
  -      </j:if>
  -    </j:if>
  -    
  -  </goal>
  -  
  -  <!--
  -     ========================================================================
  -       Create needed directories (internal goal)
  -     ========================================================================
  -  -->  
  -  <goal name="abbot:prepare-filesystem">
  -
  -  	<mkdir dir="${maven.test.dest}"/>
  -    <mkdir dir="${maven.abbot.reports.dir}"/>
  -    <mkdir dir="${maven.abbot.dest.dir}"/>
  -
  -  </goal>  
  -
  -  <!--
  -     ========================================================================
  -       Checking environment (internal goal)
  -     ========================================================================
  -  -->    
  -  <goal name="abbot:check-env">
  -
  -    <j:if test="${context.getVariable('java.awt.headless') == true}">
  -      <fail message="Abbot plugin cannot be used in awt headless environment"/>
  -    </j:if>
  -
  -  </goal>
  -  
  -  <!--
  -     ========================================================================
  -       Checking webstart environment (internal goal)
  -     ========================================================================
  -  -->    
  -  <goal name="abbot:check-webstart-env" prereqs="abbot:check-env">
  -
  -    <property environment="env"/>    
  -
  -    <j:if test="${context.getVariable('env.JAVAWS_HOME') == null}">
  -      <fail>Mandatory environment variable JAVAWS_HOME must be set</fail>
  -    </j:if>
  -   
  -    <j:if test="${context.getVariable('maven.abbot.sign') == false}">
  -      <fail>In the current version the Abbot plugin only works when signing jars</fail>
  -    </j:if>
  -    
  -    <j:if test="${context.getVariable('maven.abbot.remotejnlp') == null}">
  -      <fail>Mandatory variable maven.abbot.remotejnlp is missing."</fail>
  -    </j:if>
  -    
  -    <j:if test="${context.getVariable('maven.abbot.javaws.systemhome') == null}">
  -      <fail>Mandatory variable maven.abbot.javaws.systemhome is missing"</fail>
  -    </j:if>
  -    
  -    <j:if test="${context.getVariable('maven.abbot.javaws.userhome') == null}">
  -      <fail>Mandatory variable maven.abbot.javaws.userhome is missing</fail>
  -    </j:if>
  -
  -  </goal>
  -
  -  <!--
  -     ========================================================================
  -       Dependency handle so that other plugins can load this plugin and its
  -       properties. This is especially useful if another plugin needs to 
  -       modify one property of the Abbot plugin.
  -     ========================================================================
  -  -->    
  -  <define:taglib uri="abbot">
  -    <define:tag name="dependency-handle">
  -      <!-- Use this tag to allow this plugin to be loaded into another -->
  -    </define:tag>
  -  </define:taglib>
  -  
  -</project>
  +<?xml version="1.0"?>
  +
  +<!--
  +/* ====================================================================
  + *   Copyright 2004 The Apache Software Foundation.
  + *
  + *   Licensed under the Apache License, Version 2.0 (the "License");
  + *   you may not use this file except in compliance with the License.
  + *   You may obtain a copy of the License at
  + *
  + *       http://www.apache.org/licenses/LICENSE-2.0
  + *
  + *   Unless required by applicable law or agreed to in writing, software
  + *   distributed under the License is distributed on an "AS IS" BASIS,
  + *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  + *   See the License for the specific language governing permissions and
  + *   limitations under the License.
  + * ====================================================================
  + */
  +-->
  + 
  +<!--
  +   ========================================================================
  +     Abbot plugin. Abbot is a GUI testing framework for AWT/Swing 
  +     applications.
  +   ========================================================================
  +-->
  +
  +<project
  +  xmlns:j="jelly:core"
  +  xmlns:m="jelly:maven"
  +  xmlns:x="jelly:xml"
  +  xmlns:u="jelly:util"
  +  xmlns:ant="jelly:ant"
  +  xmlns:doc="doc"
  +  xmlns:define="jelly:define"
  +  xmlns:jsl="jelly:jsl">
  +
  +  <!--
  +     ========================================================================
  +       Default goal. Execute the Abbot tests.
  +     ========================================================================
  +  -->
  +  <goal name="abbot" prereqs="abbot:test" description="Run the abbot tests"/>
  +  
  +
  +  <!--
  +     ========================================================================
  +       Execute the Abbot tests by running the application locally.
  +     ========================================================================
  +  -->
  +  <goal name="abbot:test" 
  +    prereqs="abbot:check-env,abbot:prepare-filesystem,abbot:prepare-resources,java:compile,java:jar-resources"
  +    description="Run the abbot tests">
  +  
  +  	<!-- Needed to define junit task -->
  +    <taskdef name="junit"
  +        classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask">
  +      <classpath>
  +        <pathelement location="${plugin.getDependencyPath('junit:junit')}"/>
  +      </classpath>
  +    </taskdef>
  +    
  +    <!-- Just let JUnit execute the tests --> 
  +    <!-- IMPORTANT: We must fork the JUnit tests. Otherwise there are classpath
  +         problems (the version of xerces in the Maven root CL seems to be the 
  +         cause). -->
  +
  +    <junit printSummary="${maven.abbot.printSummary}"
  +        failureProperty="maven.test.failure" fork="true">
  +        
  +      <!-- Sys properties -->
  +      <setProperty name="dir" value="${maven.abbot.dir}" />
  +      <sysproperty key="maven.abbot.src.dir" value="${maven.abbot.src.dir}"/>
  +      <sysproperty key="basedir" value="${basedir}"/>
  +      <u:tokenize var="listOfProperties" delim=" ">${maven.abbot.sysproperties}</u:tokenize>
  +      <j:forEach var="someProperty" items="${listOfProperties}">
  +        <sysproperty key="${someProperty}" value="${context.getVariable(someProperty)}"/>
  +      </j:forEach>
  +        
  +      <!-- JVM args -->
  +      <u:tokenize var="listOfJvmArgs" delim=" ">${maven.abbot.jvmargs}</u:tokenize>
  +      <j:forEach var="somejvmarg" items="${listOfJvmArgs}">
  +        <jvmarg value="${somejvmarg}"/>
  +      </j:forEach>
  +        
  +      <!-- File format of test reports are defined here -->
  +      <formatter type="xml"/>
  +      <formatter type="${maven.abbot.format}" usefile="${maven.abbot.usefile}"/>
  +        					 
  +      <!-- Classpath -->
  +      <classpath>
  +        <pathelement location="${plugin.dir}"/>
  +        <pathelement location="${maven.build.dest}"/>
  +        <pathelement location="${maven.test.dest}"/>
  +        <j:forEach var="dep" items="${plugin.getDependencies()}">
  +          <j:if test="${dep.getProperty('abbot.webstart')}">
  +		       <pathelement path="${plugin.getDependencyPath(dep.Id)}"/>
  +		      </j:if>
  +		 	 	</j:forEach>
  +		 	 	<j:forEach var="lib" items="${pom.dependencies}">
  +		 	 	  <j:set var="libFullName" value="${lib.getId()}" />
  +          <j:set var="jarPath" value="${maven.repo.local}/${lib.artifactDirectory}/${lib.getType()}s/${lib.getArtifact()}" />
  +          <pathelement path="${jarPath}"/>
  +		 	 	</j:forEach>
  +      </classpath>
  +        
  +      <test name="${maven.abbot.include}" todir="${maven.abbot.reports.dir}"/>
  +        
  +   </junit>
  +   
  +   <!-- Junit exit status is stored in maven.test.failure. Whenever it is true
  +        (and ignore flag is not) we must stop the build process -->
  +   <j:if test="${maven.test.failure}">
  +     <j:if test="${context.getVariable('maven.test.failure.ignore') != null}">
  +       <fail message="There were test failures"/>
  +     </j:if>
  +   </j:if>
  + 
  +  </goal> 
  +  
  +  <!--
  +     ========================================================================
  +       Launch tests on a webstart application
  +     ========================================================================
  +  -->   
  +  <goal name="abbot:test-webstart" prereqs="abbot:check-webstart-env,abbot:prepare-filesystem"
  +      description="Launch tests on a webstart application">
  +           
  +  	<!-- First we get the remote jnlp -->
  +  	<get src="${maven.abbot.remotejnlp}"
  +        dest="${maven.abbot.dest.dir}/${maven.abbot.webstart.jnlp.original}"/>
  +  	
  +    <!-- We make a jar with compiled main class -->
  +    <!-- TODO: create this as part of the plugin creation and not as part of
  +         its execution -->
  +  	<jar destfile="${maven.abbot.dest.dir}/${maven.abbot.webstart.main.jar}" 
  +  	    basedir="${plugin.dir}" includes="**/*.class"/>
  +    
  +    <!-- Iterating through dependencies, and signing them if they're not up-to-date -->
  +    <j:if test="${context.getVariable('maven.abbot.sign')}">
  +      
  +      <j:forEach var="dep" items="${plugin.getDependencies()}">
  +        <j:if test="${dep.getProperty('abbot.webstart')}">	
  +          
  +          <j:set var="filename" value="${dep.GroupId}-${dep.ArtifactId}"/>
  +          <j:set var="varname" value="abbot.signing.notrequired.${dep.id}"/>    
  +          
  +          <!-- Checking whether or not the dependency has to be signed -->
  +          <uptodate property="${varname}"
  +                srcfile="${plugin.getDependencyPath(dep.Id)}"
  +                targetfile="${maven.abbot.dest.dir}/${filename}.jar"/>
  +          
  +          <!-- Keeping this debug trace a while to ensure that the up-to-date feature is working properly -->
  +          <echo level="debug">${dep.id} is uptodate ? ${context.getVariable(varname) == true}</echo>
  +          
  +          <!-- Signing the dependancy only if it is not up-to-date or forced-->
  +          <j:if test="${(context.getVariable(varname) != true)}">
  +            
  +            <!-- Unsigning -->
  +            <zip destfile="${maven.abbot.dest.dir}/${filename}.jar">
  +              <zipfileset src="${plugin.getDependencyPath(dep.id)}"
  +                  excludes="**/*.SF **/*.RSA **/*.DSA"/>
  +            </zip> 
  +            
  +            <!-- Signing -->
  +            <signjar jar="${maven.abbot.dest.dir}/${filename}.jar" 
  +               keystore="${maven.abbot.sign.keystore}"
  +               alias="${maven.abbot.sign.alias}" 
  +               storepass="${maven.abbot.sign.storepass}"/>
  +          </j:if>
  +          
  +        </j:if>
  +      </j:forEach>
  +      <!-- Jar containing abbot main class is signed -->
  +      <signjar jar="${maven.abbot.dest.dir}/${maven.abbot.webstart.main.jar}" 
  +        keystore="${maven.abbot.sign.keystore}"
  +        alias="${maven.abbot.sign.alias}" 
  +        storepass="${maven.abbot.sign.storepass}"/>
  +  	</j:if>
  + 		
  +  	
  +    <!-- Jnlp is modified so that local abbot libraries are referenced -->
  +    <doc:jsl
  +        input="${maven.abbot.dest.dir}/${maven.abbot.webstart.jnlp.original}"
  +        output="${maven.abbot.webstart.jnlp.modified}"
  +        outputDirectory="${maven.abbot.dest.dir}"
  +        stylesheet="${plugin.resources}/jnlp.jsl"
  +        outputMode="xml"
  +        prettyPrint="true"/>
  +  	
  +  	<!-- Java webstart is launched on local modified jnlp -->
  +  	<java classname="com.sun.javaws.Main" fork="true" failonerror="true">
  +      <classpath>
  +        <pathelement location="${env.JAVAWS_HOME}/javaws-l10n.jar"/>
  +        <pathelement location="${env.JAVAWS_HOME}/javaws.jar"/>
  +      </classpath>
  +      <jvmarg value="-Djnlpx.home=${env.JAVAWS_HOME}"/>
  +  	  <jvmarg value="-Djnlpx.heapsize=NULL,NULL"/>
  +  	  <jvmarg value="-Djnlpx.jvm=${env.JAVA_HOME}/bin/javaw.exe"/>
  +  	  <jvmarg value="-Djnlpx.deployment.system.home=${maven.abbot.javaws.systemhome}"/>
  +  	  <jvmarg value="-Djnlpx.deployment.user.home=${maven.abbot.javaws.userhome}"/>
  +  	  <jvmarg value="-Djava.security.policy=${env.JAVAWS_HOME}/javaws.policy"/>
  +  	  <jvmarg value="-DtrustProxy=true"/>
  +  	  <arg value="${maven.abbot.dest.dir}/${maven.abbot.webstart.jnlp.modified}"/>
  +  	</java>
  +
  +  </goal>
  +  
  +  
  +  <!--
  +     ========================================================================
  +       Launch Abbot costello editor
  +     ========================================================================
  +  --> 
  +  <goal name="abbot:editor"  prereqs="abbot:check-env,abbot:prepare-filesystem" 
  +  			description="Launch Abbot costello editor">
  +  	
  +  	<!-- Launching abbot editor with abbot and jnlp dependencies as classpath --> 
  +    <java classname="abbot.editor.ScriptEditor" fork="true">
  +      <classpath>
  +      	<!-- Abbot editor dependencies -->
  +        <j:forEach var="dep" items="${plugin.getDependencies()}">
  +		     	<j:if test="${dep.getProperty('abbot.editor')}">
  +		       <pathelement path="${plugin.getDependencyPath(dep.Id)}"/>
  +		      </j:if>
  +		 	 	</j:forEach>
  +        <path refid="maven.dependency.classpath"/>
  +      </classpath>
  +  	</java>
  +  
  +  </goal>
  + 
  +  
  +  <!--
  +     ========================================================================
  +       Launch Abbot costello editor on a webstart application
  +     ========================================================================
  +  --> 
  +  <goal name="abbot:editor-webstart"
  +      prereqs="abbot:check-webstart-env,abbot:prepare-filesystem" 
  +      description="Launch Abbot costello editor on a webstart application">
  +  			
  +    <!-- First we get the remote jnlp -->
  +  	<get src="${maven.abbot.remotejnlp}"
  +        dest="${maven.abbot.dest.dir}/${maven.abbot.webstart.jnlp.original}"/>		
  +  			
  +  	<!-- Parsing jnlp file in order to copy all dependencies into local directory -->
  +  	<u:file var="inputFile" name="${maven.abbot.dest.dir}/${maven.abbot.webstart.jnlp.original}"/>
  +  	<x:parse var="parsedfile" xml="${inputFile}"/>		
  +  	<x:set var="codebasename" select="string($parsedfile/jnlp/@codebase)"/>
  +  	<x:forEach var="jar" select="$parsedfile/jnlp/resources/jar">
  +      <x:set var="jarname" select="string($jar/@href)"/>
  +      <get src="${codebasename}/${jarname}" usetimestamp="true"
  +          dest="${maven.abbot.dest.dir}/${jarname}"/>
  +  	</x:forEach>
  +  	
  +  	<!-- Launching abbot editor with abbot and jnlp dependencies as classpath --> 
  +    <java classname="abbot.editor.ScriptEditor" fork="true">
  +      <classpath>
  +      	<!-- Abbot editor dependencies -->
  +        <j:forEach var="dep" items="${plugin.getDependencies()}">
  +		     	<j:if test="${dep.getProperty('abbot.editor')}">
  +		       <pathelement path="${plugin.getDependencyPath(dep.Id)}"/>
  +		      </j:if>
  +		 	 	</j:forEach>
  +		 	 	
  +				<!-- Remote application dependencies -->
  +		 	 	<x:forEach var="jar" select="$parsedfile/jnlp/resources/jar">
  +		 	 		<x:set var="jarname" select="string($jar/@href)"/>
  +		 	 		<pathelement path="${maven.abbot.dest.dir}/${jarname}"/>
  +		 	 	</x:forEach>
  +      </classpath>
  +  	</java>
  +  
  +  </goal>
  +  
  +  <!--
  +     ========================================================================
  +       Copy test resources to test directory (internal goal)
  +     ========================================================================
  +  -->
  +  <goal name="abbot:prepare-resources" prereqs="abbot:prepare-filesystem">
  +
  +    <j:if test="${pom.build.unitTest != null}">
  +      <j:if test="${!pom.build.unitTest.resources.isEmpty()}">
  +        <m:copy-resources
  +            resources="${pom.build.unitTest.resources}"
  +            todir="${maven.test.dest}"/>
  +      </j:if>
  +    </j:if>
  +    
  +  </goal>
  +  
  +  <!--
  +     ========================================================================
  +       Create needed directories (internal goal)
  +     ========================================================================
  +  -->  
  +  <goal name="abbot:prepare-filesystem">
  +
  +  	<mkdir dir="${maven.test.dest}"/>
  +    <mkdir dir="${maven.abbot.reports.dir}"/>
  +    <mkdir dir="${maven.abbot.dest.dir}"/>
  +
  +  </goal>  
  +
  +  <!--
  +     ========================================================================
  +       Checking environment (internal goal)
  +     ========================================================================
  +  -->    
  +  <goal name="abbot:check-env">
  +
  +    <j:if test="${context.getVariable('java.awt.headless') == true}">
  +      <fail message="Abbot plugin cannot be used in awt headless environment"/>
  +    </j:if>
  +
  +  </goal>
  +  
  +  <!--
  +     ========================================================================
  +       Checking webstart environment (internal goal)
  +     ========================================================================
  +  -->    
  +  <goal name="abbot:check-webstart-env" prereqs="abbot:check-env">
  +
  +    <property environment="env"/>    
  +
  +    <j:if test="${context.getVariable('env.JAVAWS_HOME') == null}">
  +      <fail>Mandatory environment variable JAVAWS_HOME must be set</fail>
  +    </j:if>
  +   
  +    <j:if test="${context.getVariable('maven.abbot.sign') == false}">
  +      <fail>In the current version the Abbot plugin only works when signing jars</fail>
  +    </j:if>
  +    
  +    <j:if test="${context.getVariable('maven.abbot.remotejnlp') == null}">
  +      <fail>Mandatory variable maven.abbot.remotejnlp is missing."</fail>
  +    </j:if>
  +    
  +    <j:if test="${context.getVariable('maven.abbot.javaws.systemhome') == null}">
  +      <fail>Mandatory variable maven.abbot.javaws.systemhome is missing"</fail>
  +    </j:if>
  +    
  +    <j:if test="${context.getVariable('maven.abbot.javaws.userhome') == null}">
  +      <fail>Mandatory variable maven.abbot.javaws.userhome is missing</fail>
  +    </j:if>
  +
  +  </goal>
  +
  +  <!--
  +     ========================================================================
  +       Dependency handle so that other plugins can load this plugin and its
  +       properties. This is especially useful if another plugin needs to 
  +       modify one property of the Abbot plugin.
  +     ========================================================================
  +  -->    
  +  <define:taglib uri="abbot">
  +    <define:tag name="dependency-handle">
  +      <!-- Use this tag to allow this plugin to be loaded into another -->
  +    </define:tag>
  +  </define:taglib>
  +  
  +</project>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org