PR: 10672 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273807 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -17,6 +17,10 @@ Changes that could break older environments: | |||||
| * The <script> task now requires Apache BSF instead of the older IBM | * The <script> task now requires Apache BSF instead of the older IBM | ||||
| version. See <http://jakarta.apache.org/bsf/> | version. See <http://jakarta.apache.org/bsf/> | ||||
| * The signjar keystore attribute has been reverted to a String allowing | |||||
| it to once again accept URLs. This should not affect current FIle based usage | |||||
| unless you are extending the Signjar task. | |||||
| * <xmlproperty> will no longer fail if the file to be loaded doesn't exist. | * <xmlproperty> will no longer fail if the file to be loaded doesn't exist. | ||||
| Fixed bugs: | Fixed bugs: | ||||
| @@ -289,6 +289,7 @@ | |||||
| </selector> | </selector> | ||||
| <patternset id="onlinetests"> | <patternset id="onlinetests"> | ||||
| <exclude name="**/GetTest.java" if="offline"/> | <exclude name="**/GetTest.java" if="offline"/> | ||||
| <exclude name="**/SignJarTest.java" if="offline"/> | |||||
| </patternset> | </patternset> | ||||
| <patternset id="teststhatfail"> | <patternset id="teststhatfail"> | ||||
| <exclude name="${optional.package}/BeanShellScriptTest.java"/> | <exclude name="${optional.package}/BeanShellScriptTest.java"/> | ||||
| @@ -577,14 +578,14 @@ | |||||
| <selector refid="needs.sun.tools" unless="sun.tools.present"/> | <selector refid="needs.sun.tools" unless="sun.tools.present"/> | ||||
| <selector refid="needs.sun.uue" unless="sunuue.present"/> | <selector refid="needs.sun.uue" unless="sunuue.present"/> | ||||
| <selector refid="needs.sun.b64" unless="base64.present"/> | <selector refid="needs.sun.b64" unless="base64.present"/> | ||||
| <selector refid="needs.trax" unless="trax.present"/> | <selector refid="needs.trax" unless="trax.present"/> | ||||
| <selector refid="needs.xalan1" unless="xalan.present"/> | <selector refid="needs.xalan1" unless="xalan.present"/> | ||||
| <selector refid="needs.xalan2" unless="xalan2.present"/> | <selector refid="needs.xalan2" unless="xalan2.present"/> | ||||
| <selector refid="needs.xslp" unless="xslp.present"/> | <selector refid="needs.xslp" unless="xslp.present"/> | ||||
| <selector refid="needs.apache.resolver" unless="apache.resolver.present"/> | <selector refid="needs.apache.resolver" unless="apache.resolver.present"/> | ||||
| <selector refid="needs.junit" unless="junit.present"/> | <selector refid="needs.junit" unless="junit.present"/> | ||||
| <selector refid="needs.jakarta.regexp" | |||||
| <selector refid="needs.jakarta.regexp" | |||||
| unless="jakarta.regexp.present"/> | unless="jakarta.regexp.present"/> | ||||
| <selector refid="needs.jakarta.oro" unless="jakarta.oro.present"/> | <selector refid="needs.jakarta.oro" unless="jakarta.oro.present"/> | ||||
| <selector refid="needs.jakarta.bcel" unless="bcel.present"/> | <selector refid="needs.jakarta.bcel" unless="bcel.present"/> | ||||
| @@ -597,7 +598,7 @@ | |||||
| <selector refid="needs.icontract" unless="icontract.present"/> | <selector refid="needs.icontract" unless="icontract.present"/> | ||||
| <selector refid="needs.netrexx" unless="netrexx.present"/> | <selector refid="needs.netrexx" unless="netrexx.present"/> | ||||
| <selector refid="needs.weblogic.ejbc" unless="ejb.ejbc.present"/> | <selector refid="needs.weblogic.ejbc" unless="ejb.ejbc.present"/> | ||||
| <selector refid="needs.weblogic.ddcreator" | |||||
| <selector refid="needs.weblogic.ddcreator" | |||||
| unless="ejb.DDCreator.present"/> | unless="ejb.DDCreator.present"/> | ||||
| <selector refid="needs.weblogic.server" unless="ejb.wls.present"/> | <selector refid="needs.weblogic.server" unless="ejb.wls.present"/> | ||||
| <selector refid="needs.netcomponents" unless="netcomp.present"/> | <selector refid="needs.netcomponents" unless="netcomp.present"/> | ||||
| @@ -782,7 +783,7 @@ | |||||
| <metainf dir="${build.dir}" includes="LICENSE.txt"/> | <metainf dir="${build.dir}" includes="LICENSE.txt"/> | ||||
| </jar> | </jar> | ||||
| <jar destfile="${build.lib}/${optional.jars.prefix}-trax.jar" | |||||
| <jar destfile="${build.lib}/${optional.jars.prefix}-trax.jar" | |||||
| basedir="${build.classes}" | basedir="${build.classes}" | ||||
| manifest="${manifest.tmp}"> | manifest="${manifest.tmp}"> | ||||
| <selector refid="needs.trax"/> | <selector refid="needs.trax"/> | ||||
| @@ -818,7 +819,7 @@ | |||||
| <selector refid="needs.junit"/> | <selector refid="needs.junit"/> | ||||
| </jar> | </jar> | ||||
| <jar destfile="${build.lib}/${optional.jars.prefix}-jakarta-regexp.jar" | |||||
| <jar destfile="${build.lib}/${optional.jars.prefix}-jakarta-regexp.jar" | |||||
| basedir="${build.classes}" manifest="${manifest.tmp}"> | basedir="${build.classes}" manifest="${manifest.tmp}"> | ||||
| <selector refid="needs.jakarta.regexp"/> | <selector refid="needs.jakarta.regexp"/> | ||||
| </jar> | </jar> | ||||
| @@ -829,7 +830,7 @@ | |||||
| <selector refid="needs.jakarta.oro"/> | <selector refid="needs.jakarta.oro"/> | ||||
| </jar> | </jar> | ||||
| <jar destfile="${build.lib}/${optional.jars.prefix}-bcel.jar" | |||||
| <jar destfile="${build.lib}/${optional.jars.prefix}-bcel.jar" | |||||
| basedir="${build.classes}" | basedir="${build.classes}" | ||||
| manifest="${manifest.tmp}"> | manifest="${manifest.tmp}"> | ||||
| <selector refid="needs.jakarta.bcel"/> | <selector refid="needs.jakarta.bcel"/> | ||||
| @@ -841,7 +842,7 @@ | |||||
| <selector refid="needs.jakarta.log4j"/> | <selector refid="needs.jakarta.log4j"/> | ||||
| </jar> | </jar> | ||||
| <jar destfile="${build.lib}/${optional.jars.prefix}-commons-logging.jar" | |||||
| <jar destfile="${build.lib}/${optional.jars.prefix}-commons-logging.jar" | |||||
| basedir="${build.classes}" manifest="${manifest.tmp}"> | basedir="${build.classes}" manifest="${manifest.tmp}"> | ||||
| <selector refid="needs.commons.logging"/> | <selector refid="needs.commons.logging"/> | ||||
| </jar> | </jar> | ||||
| @@ -1595,7 +1596,7 @@ | |||||
| <target name="run-single-test" if="testcase" depends="compile-tests,run-single-test-only" | <target name="run-single-test" if="testcase" depends="compile-tests,run-single-test-only" | ||||
| description="--> runs the single unit test defined in the testcase property"/> | description="--> runs the single unit test defined in the testcase property"/> | ||||
| <target name="run-single-test-only" | |||||
| <target name="run-single-test-only" | |||||
| description="--> runs the single unit test defined in the testcase property"> | description="--> runs the single unit test defined in the testcase property"> | ||||
| @@ -1,24 +1,36 @@ | |||||
| <project name="signjartest" default="help"> | |||||
| <property name="classes.dir" value="../../../../build/classes"/> | |||||
| <project name="signjartest" default="help" basedir=".."> | |||||
| <property name="classes.dir" value="../../../build/classes"/> | |||||
| <target name="basic"> | <target name="basic"> | ||||
| <jar jarfile="signtest.jar" basedir="${classes.dir}" includes="**/Task.class"/> | <jar jarfile="signtest.jar" basedir="${classes.dir}" includes="**/Task.class"/> | ||||
| <signjar jar="signtest.jar" alias="testonly" keystore="../testkeystore" | |||||
| <signjar jar="signtest.jar" alias="testonly" keystore="testkeystore" | |||||
| storepass="apacheant"/> | storepass="apacheant"/> | ||||
| </target> | </target> | ||||
| <target name="sigfile"> | <target name="sigfile"> | ||||
| <jar jarfile="signtest.jar" basedir="${classes.dir}" includes="**/Task.class"/> | <jar jarfile="signtest.jar" basedir="${classes.dir}" includes="**/Task.class"/> | ||||
| <signjar jar="signtest.jar" alias="testonly" keystore="../testkeystore" | |||||
| <signjar jar="signtest.jar" alias="testonly" keystore="testkeystore" | |||||
| storepass="apacheant" sigfile="TEST"/> | storepass="apacheant" sigfile="TEST"/> | ||||
| </target> | </target> | ||||
| <target name="maxmemory"> | <target name="maxmemory"> | ||||
| <jar jarfile="signtest.jar" basedir="${classes.dir}" includes="**/Task.class"/> | <jar jarfile="signtest.jar" basedir="${classes.dir}" includes="**/Task.class"/> | ||||
| <signjar jar="signtest.jar" alias="testonly" keystore="../testkeystore" | |||||
| <signjar jar="signtest.jar" alias="testonly" keystore="testkeystore" | |||||
| storepass="apacheant" maxmemory="128m"/> | storepass="apacheant" maxmemory="128m"/> | ||||
| </target> | </target> | ||||
| <target name="urlKeystoreFile"> | |||||
| <jar jarfile="signtest.jar" basedir="${classes.dir}" includes="**/Task.class"/> | |||||
| <signjar jar="signtest.jar" alias="testonly" keystore="file://../testkeystore" | |||||
| storepass="apacheant" maxmemory="128m"/> | |||||
| </target> | |||||
| <target name="urlKeystoreHTTP"> | |||||
| <jar jarfile="signtest.jar" basedir="${classes.dir}" includes="**/Task.class"/> | |||||
| <signjar jar="signtest.jar" alias="testonly" | |||||
| keystore="http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-ant/src/etc/testcases/testkeystore?rev=HEAD" | |||||
| storepass="apacheant" maxmemory="128m"/> | |||||
| </target> | |||||
| <target name="clean"> | <target name="clean"> | ||||
| <delete file="signtest.jar"/> | <delete file="signtest.jar"/> | ||||
| @@ -1,7 +1,7 @@ | |||||
| /* | /* | ||||
| * The Apache Software License, Version 1.1 | * The Apache Software License, Version 1.1 | ||||
| * | * | ||||
| * Copyright (c) 2000-2002 The Apache Software Foundation. All rights | |||||
| * Copyright (c) 2000-2003 The Apache Software Foundation. All rights | |||||
| * reserved. | * reserved. | ||||
| * | * | ||||
| * Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
| @@ -97,7 +97,7 @@ public class SignJar extends Task { | |||||
| /** | /** | ||||
| * The name of keystore file. | * The name of keystore file. | ||||
| */ | */ | ||||
| protected File keystore; | |||||
| private String keystore; | |||||
| protected String storepass; | protected String storepass; | ||||
| protected String storetype; | protected String storetype; | ||||
| @@ -115,6 +115,7 @@ public class SignJar extends Task { | |||||
| * the filesets of the jars to sign | * the filesets of the jars to sign | ||||
| */ | */ | ||||
| protected Vector filesets = new Vector(); | protected Vector filesets = new Vector(); | ||||
| /** | /** | ||||
| * Whether to assume a jar which has an appropriate .SF file in is already | * Whether to assume a jar which has an appropriate .SF file in is already | ||||
| * signed. | * signed. | ||||
| @@ -149,7 +150,7 @@ public class SignJar extends Task { | |||||
| /** | /** | ||||
| * keystore location; required | * keystore location; required | ||||
| */ | */ | ||||
| public void setKeystore(final File keystore) { | |||||
| public void setKeystore(final String keystore) { | |||||
| this.keystore = keystore; | this.keystore = keystore; | ||||
| } | } | ||||
| @@ -286,8 +287,16 @@ public class SignJar extends Task { | |||||
| } | } | ||||
| if (null != keystore) { | if (null != keystore) { | ||||
| cmd.createArg().setValue("-keystore"); | |||||
| cmd.createArg().setValue(keystore.toString()); | |||||
| // is the keystore a file | |||||
| File keystoreFile = getProject().resolveFile(keystore); | |||||
| if (keystoreFile.exists()) { | |||||
| cmd.createArg().setValue("-keystore"); | |||||
| cmd.createArg().setValue(keystoreFile.getPath()); | |||||
| } else { | |||||
| // must be a URL - just pass as is | |||||
| cmd.createArg().setValue("-keystore"); | |||||
| cmd.createArg().setValue(keystore); | |||||
| } | |||||
| } | } | ||||
| if (null != storepass) { | if (null != storepass) { | ||||
| @@ -97,4 +97,11 @@ public class SignJarTest extends BuildFileTest { | |||||
| executeTarget("maxmemory"); | executeTarget("maxmemory"); | ||||
| } | } | ||||
| public void testURLKeystoreFile() { | |||||
| executeTarget("urlKeystoreFile"); | |||||
| } | |||||
| public void testURLKeystoreHTTP() { | |||||
| executeTarget("urlKeystoreHTTP"); | |||||
| } | |||||
| } | } | ||||