aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java423
1 files changed, 0 insertions, 423 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
deleted file mode 100644
index bc8c0319..00000000
--- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- *
- */
-
-package org.apache.tools.ant.taskdefs;
-
-import java.io.File;
-import java.util.Vector;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.filters.LineContainsRegExp;
-import org.apache.tools.ant.types.Environment;
-import org.apache.tools.ant.types.FileSet;
-import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.types.RedirectorElement;
-import org.apache.tools.ant.types.RegularExpression;
-import org.apache.tools.ant.util.JavaEnvUtils;
-
-/**
- * This is factored out from {@link SignJar}; a base class that can be used
- * for both signing and verifying JAR files using jarsigner
- */
-
-public abstract class AbstractJarSignerTask extends Task {
- // CheckStyle:VisibilityModifier OFF - bc
- /**
- * The name of the jar file.
- */
- protected File jar;
- /**
- * The alias of signer.
- */
- protected String alias;
- /**
- * The url or path of keystore file.
- */
- protected String keystore;
- /**
- * password for the store
- */
- protected String storepass;
- /**
- * type of store,-storetype param
- */
- protected String storetype;
- /**
- * password for the key in the store
- */
- protected String keypass;
- /**
- * verbose output
- */
- protected boolean verbose;
- /**
- * strict checking
- * @since Ant 1.9.1
- */
- protected boolean strict = false;
- /**
- * The maximum amount of memory to use for Jar signer
- */
- protected String maxMemory;
- /**
- * the filesets of the jars to sign
- */
- protected Vector<FileSet> filesets = new Vector<FileSet>();
- /**
- * name of JDK program we are looking for
- */
- protected static final String JARSIGNER_COMMAND = "jarsigner";
-
- // CheckStyle:VisibilityModifier ON
-
- /**
- * redirector used to talk to the jarsigner program
- */
- private RedirectorElement redirector;
-
- /**
- * Java declarations -J-Dname=value
- */
- private Environment sysProperties = new Environment();
-
- /**
- * error string for unit test verification: {@value}
- */
- public static final String ERROR_NO_SOURCE = "jar must be set through jar attribute "
- + "or nested filesets";
-
- /**
- * Path holding all non-filesets of filesystem resources we want to sign.
- *
- * @since Ant 1.7
- */
- private Path path = null;
-
- /**
- * The executable to use instead of jarsigner.
- *
- * @since Ant 1.8.0
- */
- private String executable;
-
- /**
- * Set the maximum memory to be used by the jarsigner process
- *
- * @param max a string indicating the maximum memory according to the JVM
- * conventions (e.g. 128m is 128 Megabytes)
- */
- public void setMaxmemory(String max) {
- maxMemory = max;
- }
-
- /**
- * the jar file to sign; required
- *
- * @param jar the jar file to sign
- */
- public void setJar(final File jar) {
- this.jar = jar;
- }
-
- /**
- * the alias to sign under; required
- *
- * @param alias the alias to sign under
- */
- public void setAlias(final String alias) {
- this.alias = alias;
- }
-
- /**
- * keystore location; required
- *
- * @param keystore the keystore location
- */
- public void setKeystore(final String keystore) {
- this.keystore = keystore;
- }
-
- /**
- * password for keystore integrity; required
- *
- * @param storepass the password for the keystore
- */
- public void setStorepass(final String storepass) {
- this.storepass = storepass;
- }
-
- /**
- * keystore type; optional
- *
- * @param storetype the keystore type
- */
- public void setStoretype(final String storetype) {
- this.storetype = storetype;
- }
-
- /**
- * password for private key (if different); optional
- *
- * @param keypass the password for the key (if different)
- */
- public void setKeypass(final String keypass) {
- this.keypass = keypass;
- }
-
- /**
- * Enable verbose output when signing ; optional: default false
- *
- * @param verbose if true enable verbose output
- */
- public void setVerbose(final boolean verbose) {
- this.verbose = verbose;
- }
-
- /**
- * do strict checking
- * @since Ant 1.9.1
- * @param strict
- */
- public void setStrict(boolean strict) {
- this.strict = strict;
- }
-
- /**
- * Adds a set of files to sign
- *
- * @param set a set of files to sign
- * @since Ant 1.4
- */
- public void addFileset(final FileSet set) {
- filesets.addElement(set);
- }
-
- /**
- * Add a system property.
- *
- * @param sysp system property.
- */
- public void addSysproperty(Environment.Variable sysp) {
- sysProperties.addVariable(sysp);
- }
-
- /**
- * Adds a path of files to sign.
- *
- * @return a path of files to sign.
- * @since Ant 1.7
- */
- public Path createPath() {
- if (path == null) {
- path = new Path(getProject());
- }
- return path.createPath();
- }
-
- /**
- * init processing logic; this is retained through our execution(s)
- */
- protected void beginExecution() {
-
- redirector = createRedirector();
- }
-
- /**
- * any cleanup logic
- */
- protected void endExecution() {
- redirector = null;
- }
-
- /**
- * Create the redirector to use, if any.
- *
- * @return a configured RedirectorElement.
- */
- private RedirectorElement createRedirector() {
- RedirectorElement result = new RedirectorElement();
- if (storepass != null) {
- StringBuffer input = new StringBuffer(storepass).append('\n');
- if (keypass != null) {
- input.append(keypass).append('\n');
- }
- result.setInputString(input.toString());
- result.setLogInputString(false);
- // Try to avoid showing password prompts on log output, as they would be confusing.
- LineContainsRegExp filter = new LineContainsRegExp();
- RegularExpression rx = new RegularExpression();
- // TODO only handles English locale, not ja or zh_CN
- rx.setPattern("^(Enter Passphrase for keystore: |Enter key password for .+: )$");
- filter.addConfiguredRegexp(rx);
- filter.setNegate(true);
- result.createErrorFilterChain().addLineContainsRegExp(filter);
- }
- return result;
- }
-
- /**
- * get the redirector. Non-null between invocations of
- * {@link #beginExecution()} and {@link #endExecution()}
- * @return a redirector or null
- */
- public RedirectorElement getRedirector() {
- return redirector;
- }
-
- /**
- * Sets the actual executable command to invoke, instead of the binary
- * <code>jarsigner</code> found in Ant's JDK.
- * @param executable the command to invoke.
- * @since Ant 1.8.0
- */
- public void setExecutable(String executable) {
- this.executable = executable;
- }
-
- /**
- * these are options common to signing and verifying
- * @param cmd command to configure
- */
- protected void setCommonOptions(final ExecTask cmd) {
- if (maxMemory != null) {
- addValue(cmd, "-J-Xmx" + maxMemory);
- }
-
- if (verbose) {
- addValue(cmd, "-verbose");
- }
-
- if (strict) {
- addValue(cmd, "-strict");
- }
-
- //now patch in all system properties
- for (Environment.Variable variable : sysProperties.getVariablesVector()) {
- declareSysProperty(cmd, variable);
- }
- }
-
- /**
- *
- * @param cmd command to configure
- * @param property property to set
- * @throws BuildException if the property is not correctly defined.
- */
- protected void declareSysProperty(
- ExecTask cmd, Environment.Variable property) throws BuildException {
- addValue(cmd, "-J-D" + property.getContent());
- }
-
-
- /**
- * bind to a keystore if the attributes are there
- * @param cmd command to configure
- */
- protected void bindToKeystore(final ExecTask cmd) {
- if (null != keystore) {
- // is the keystore a file
- addValue(cmd, "-keystore");
- String loc;
- File keystoreFile = getProject().resolveFile(keystore);
- if (keystoreFile.exists()) {
- loc = keystoreFile.getPath();
- } else {
- // must be a URL - just pass as is
- loc = keystore;
- }
- addValue(cmd, loc);
- }
- if (null != storetype) {
- addValue(cmd, "-storetype");
- addValue(cmd, storetype);
- }
- }
-
- /**
- * create the jarsigner executable task
- * @return a task set up with the executable of jarsigner, failonerror=true
- * and bound to our redirector
- */
- protected ExecTask createJarSigner() {
- final ExecTask cmd = new ExecTask(this);
- if (executable == null) {
- cmd.setExecutable(JavaEnvUtils.getJdkExecutable(JARSIGNER_COMMAND));
- } else {
- cmd.setExecutable(executable);
- }
- cmd.setTaskType(JARSIGNER_COMMAND);
- cmd.setFailonerror(true);
- cmd.addConfiguredRedirector(redirector);
- return cmd;
- }
-
- /**
- * clone our filesets vector, and patch in the jar attribute as a new
- * fileset, if is defined
- * @return a vector of FileSet instances
- */
- protected Vector<FileSet> createUnifiedSources() {
- @SuppressWarnings("unchecked")
- Vector<FileSet> sources = (Vector<FileSet>) filesets.clone();
- if (jar != null) {
- //we create a fileset with the source file.
- //this lets us combine our logic for handling output directories,
- //mapping etc.
- FileSet sourceJar = new FileSet();
- sourceJar.setProject(getProject());
- sourceJar.setFile(jar);
- sourceJar.setDir(jar.getParentFile());
- sources.add(sourceJar);
- }
- return sources;
- }
-
- /**
- * clone our path and add all explicitly specified FileSets as
- * well, patch in the jar attribute as a new fileset if it is
- * defined.
- * @return a path that contains all files to sign
- * @since Ant 1.7
- */
- protected Path createUnifiedSourcePath() {
- Path p = path == null ? new Path(getProject()) : (Path) path.clone();
- for (FileSet fileSet : createUnifiedSources()) {
- p.add(fileSet);
- }
- return p;
- }
-
- /**
- * Has either a path or a fileset been specified?
- * @return true if a path or fileset has been specified.
- * @since Ant 1.7
- */
- protected boolean hasResources() {
- return path != null || filesets.size() > 0;
- }
-
- /**
- * add a value argument to a command
- * @param cmd command to manipulate
- * @param value value to add
- */
- protected void addValue(final ExecTask cmd, String value) {
- cmd.createArg().setValue(value);
- }
-}