git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@113085 13f79535-47bb-0310-9956-ffa450edef68
251 lines
12 KiB
XML
251 lines
12 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<project
|
|
xmlns:j="jelly:core"
|
|
xmlns:u="jelly:util"
|
|
xmlns:define="jelly:define"
|
|
xmlns:jarfile="jarfile">
|
|
|
|
<define:taglib uri="jarfile">
|
|
<define:jellybean
|
|
name="updateManifest"
|
|
className="org.apache.maven.jnlp.UpdateManifest"
|
|
method="process"
|
|
/>
|
|
</define:taglib>
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- Generate JNLP files and signs jars if necessary -->
|
|
<!-- ================================================================== -->
|
|
<goal name="jnlp"
|
|
description="Generate JNLP file and sign all jars"
|
|
prereqs="jnlp:generate-jnlp"/>
|
|
|
|
<goal name="jnlp:generate-jnlp"
|
|
description="Generate the .jnlp file and sign all jars"
|
|
prereqs="java:jar">
|
|
|
|
<mkdir dir="${maven.jnlp.dir}"/>
|
|
<echo>Creating ${maven.jnlp.dir}/${pom.artifactId}.jnlp ...</echo>
|
|
|
|
<!-- ================== -->
|
|
<!-- Generate JNLP file -->
|
|
<!-- ================== -->
|
|
<j:file name="${maven.jnlp.dir}/${pom.artifactId}.jnlp" prettyPrint="true"
|
|
xmlns="dummy">
|
|
<jnlp spec="${maven.jnlp.spec}"
|
|
codebase="${maven.jnlp.http.codebase}"
|
|
href="${pom.artifactId}.jnlp">
|
|
|
|
<information>
|
|
<title>${maven.jnlp.title}</title>
|
|
<j:if test="${context.getVariable('maven.jnlp.vendor') != null}">
|
|
<vendor>${maven.jnlp.vendor}</vendor>
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.homepage') != null}">
|
|
<homepage href="${maven.jnlp.homepage}"/>
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.icon') != null}">
|
|
<icon href="${maven.jnlp.icon}"/>
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.icon.splash') != null}">
|
|
<icon kind="splash" href="${maven.jnlp.icon.splash}"/>
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.description') != null}">
|
|
<description>${maven.jnlp.description}</description>
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.description.one-line') != null}">
|
|
<description kind="one-line">${maven.jnlp.description.one-line}</description>
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.description.short') != null}">
|
|
<description kind="short">${maven.jnlp.description.short}</description>
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.description.tooltip') != null}">
|
|
<description kind="tooltip">${maven.jnlp.description.tooltip}</description>
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.offline.allowed') != null}">
|
|
<offline-allowed/>
|
|
</j:if>
|
|
</information>
|
|
<security>
|
|
<j:set var="permission" value="${maven.jnlp.permission}X"/>
|
|
<j:if test="${permission == 'allX'}">
|
|
<all-permissions/>
|
|
</j:if>
|
|
<j:if test="${permission == 'j2eeX'}">
|
|
<j2ee-application-client-permissions/>
|
|
</j:if>
|
|
</security>
|
|
|
|
<resources>
|
|
<j2se version="${maven.jnlp.j2se.version}"
|
|
initial-heap-size="${maven.jnlp.j2se.heapsize.initial}"
|
|
maximum-heap-size="${maven.jnlp.j2se.heapsize.max}"/>
|
|
<jar href="${maven.final.name}.jar" main="true"/>
|
|
|
|
<j:forEach var="lib" items="${pom.dependencies}">
|
|
<j:if test="${lib.getProperty('jnlp.jar')=='true'}">
|
|
<jar href="${lib.artifact}"/>
|
|
</j:if>
|
|
<j:if test="${lib.getProperty('jnlp.native.jar')=='true'}">
|
|
<nativelib href="${lib.artifact}"/>
|
|
</j:if>
|
|
</j:forEach>
|
|
<!-- This is close to what it WILL look like, but for now it is the ugly ass thing below it-->
|
|
|
|
<u:tokenize var="listOfProperties" delim=" ">${maven.jnlp.properties}</u:tokenize>
|
|
<j:forEach var="someProperty" items="${listOfProperties}">
|
|
<property name="${someProperty}" value="${context.findVariable(someProperty)}"/>
|
|
</j:forEach>
|
|
|
|
</resources>
|
|
<j:choose>
|
|
<j:when test="${maven.jnlp.isapplet}">
|
|
<applet-desc main-class="${maven.jnlp.mainclass}" name="${maven.jnlp.applet.name}">
|
|
<u:tokenize var="listOfArguments" delim=" ">${maven.jnlp.mainclass.arguments}</u:tokenize>
|
|
<j:forEach var="someArgument" items="${listOfArguments}">
|
|
<sysproperty key="${someArgument}" value="${context.findVariable(someArgument)}"/>
|
|
</j:forEach>
|
|
</applet-desc>
|
|
</j:when>
|
|
<j:when test="${maven.jnlp.isinstaller}">
|
|
<installer-desc main-class="${maven.jnlp.mainclass}"/>
|
|
</j:when>
|
|
<j:when test="${maven.jnlp.iscomponent}">
|
|
<component-desc/>
|
|
</j:when>
|
|
<j:otherwise>
|
|
<application-desc main-class="${maven.jnlp.mainclass}">
|
|
<u:tokenize var="listOfArguments" delim=" ">${maven.jnlp.mainclass.arguments}</u:tokenize>
|
|
<j:forEach var="someArgument" items="${listOfArguments}">
|
|
<sysproperty key="${someArgument}" value="${context.findVariable(someArgument)}"/>
|
|
</j:forEach>
|
|
</application-desc>
|
|
</j:otherwise>
|
|
</j:choose>
|
|
</jnlp>
|
|
</j:file>
|
|
|
|
<!-- =========================== -->
|
|
<!-- Copy jars in jnlp directory -->
|
|
<!-- =========================== -->
|
|
<available file="${maven.jnlp.signjar.store}" property="maven.jnlp.store.exists"/>
|
|
<j:choose>
|
|
<j:when test="${maven.jnlp.store.exists}">
|
|
|
|
<!-- ================ -->
|
|
<!-- Updates Manifest -->
|
|
<!-- ================ -->
|
|
<mkdir dir="${maven.jnlp.tmpdir}"/>
|
|
|
|
<jarfile:updateManifest
|
|
inputJar="${maven.build.dir}/${maven.final.name}.jar"
|
|
manifest="${plugin.resources}/jnlp.manifest"
|
|
outputDir="${maven.jnlp.tmpdir}"
|
|
/>
|
|
|
|
<j:forEach var="dep" items="${pom.dependencies}">
|
|
<j:if test="${dep.getProperty('jnlp.jar')=='true'}">
|
|
<jarfile:updateManifest
|
|
inputJar="${maven.repo.local}/${dep.artifactDirectory}/jars/${dep.artifact}"
|
|
manifest="${plugin.resources}/jnlp.manifest"
|
|
outputDir="${maven.jnlp.tmpdir}"
|
|
/>
|
|
</j:if>
|
|
<j:if test="${dep.getProperty('jnlp.native.jar')=='true'}">
|
|
<jarfile:updateManifest
|
|
inputJar="${maven.repo.local}/${dep.artifactDirectory}/jars/${dep.artifact}"
|
|
manifest="${plugin.resources}/jnlp.manifest"
|
|
outputDir="${maven.jnlp.tmpdir}"
|
|
/>
|
|
</j:if>
|
|
</j:forEach>
|
|
|
|
<!-- ========= -->
|
|
<!-- Sign jars -->
|
|
<!-- ========= -->
|
|
<echo>Found a store...signing jars</echo>
|
|
|
|
<echo>Signing jar files ...</echo>
|
|
<signjar
|
|
jar="${maven.jnlp.tmpdir}/${maven.final.name}.jar"
|
|
signedjar="${maven.jnlp.dir}/${maven.final.name}.jar"
|
|
alias="${maven.jnlp.signjar.alias}"
|
|
storepass="${maven.jnlp.signjar.storepass}"
|
|
keystore="${maven.jnlp.signjar.store}"/>
|
|
|
|
<j:forEach var="lib" items="${pom.dependencies}">
|
|
<j:if test="${lib.getProperty('jnlp.jar')=='true'}">
|
|
<signjar
|
|
jar="${maven.jnlp.tmpdir}/${lib.artifact}"
|
|
signedjar="${maven.jnlp.dir}/${lib.artifact}"
|
|
alias="${maven.jnlp.signjar.alias}"
|
|
storepass="${maven.jnlp.signjar.storepass}"
|
|
keystore="${maven.jnlp.signjar.store}"/>
|
|
</j:if>
|
|
<j:if test="${lib.getProperty('jnlp.native.jar')=='true'}">
|
|
<signjar
|
|
jar="${maven.jnlp.tmpdir}/${lib.artifact}"
|
|
signedjar="${maven.jnlp.dir}/${lib.artifact}"
|
|
alias="${maven.jnlp.signjar.alias}"
|
|
storepass="${maven.jnlp.signjar.storepass}"
|
|
keystore="${maven.jnlp.signjar.store}"/>
|
|
</j:if>
|
|
</j:forEach>
|
|
</j:when>
|
|
<j:otherwise>
|
|
<copy todir="${maven.jnlp.dir}" flatten="true">
|
|
<fileset dir="${maven.repo.local}">
|
|
<j:forEach var="dep" items="${pom.dependencies}">
|
|
<j:if test="${dep.getProperty('jnlp.jar')=='true'}">
|
|
<include name="${dep.artifactDirectory}/jars/${dep.artifact}"/>
|
|
</j:if>
|
|
<j:if test="${dep.getProperty('jnlp.native.jar')=='true'}">
|
|
<include name="${dep.artifactDirectory}/jars/${dep.artifact}"/>
|
|
</j:if>
|
|
</j:forEach>
|
|
</fileset>
|
|
<fileset dir="${maven.build.dir}">
|
|
<include name="${maven.final.name}.jar"/>
|
|
</fileset>
|
|
</copy>
|
|
</j:otherwise>
|
|
</j:choose>
|
|
</goal>
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- Generate keystore file for signing jar files -->
|
|
<!-- ================================================================== -->
|
|
<goal name="jnlp:generate-keystore"
|
|
description="Generate a keystore file">
|
|
|
|
<delete file="${maven.jnlp.signjar.store}"/>
|
|
<genkey alias="${maven.jnlp.signjar.alias}"
|
|
storepass="${maven.jnlp.signjar.storepass}"
|
|
keystore="${maven.jnlp.signjar.store}"
|
|
validity="${maven.jnlp.signjar.validity}" >
|
|
<dname>
|
|
<j:if test="${context.getVariable('maven.jnlp.signjar.dname.cn') != null}">
|
|
<param name="CN" value="${maven.jnlp.signjar.dname.cn}" />
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.signjar.dname.ou') != null}">
|
|
<param name="OU" value="${maven.jnlp.signjar.dname.ou}" />
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.signjar.dname.o') != null}">
|
|
<param name="O" value="${maven.jnlp.signjar.dname.o}" />
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.signjar.dname.l') != null}">
|
|
<param name="L" value="${maven.jnlp.signjar.dname.l}" />
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.signjar.dname.s') != null}">
|
|
<param name="S" value="${maven.jnlp.signjar.dname.s}" />
|
|
</j:if>
|
|
<j:if test="${context.getVariable('maven.jnlp.signjar.dname.c') != null}">
|
|
<param name="C" value="${maven.jnlp.signjar.dname.c}" />
|
|
</j:if>
|
|
</dname>
|
|
</genkey>
|
|
</goal>
|
|
|
|
</project>
|