diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibResolveTask.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibResolveTask.java | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibResolveTask.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibResolveTask.java deleted file mode 100644 index c13194fa..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibResolveTask.java +++ /dev/null @@ -1,268 +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.optional.extension; - -import java.io.File; -import java.util.ArrayList; -import java.util.jar.Manifest; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.taskdefs.optional.extension.resolvers.AntResolver; -import org.apache.tools.ant.taskdefs.optional.extension.resolvers.LocationResolver; -import org.apache.tools.ant.taskdefs.optional.extension.resolvers.URLResolver; - -/** - * Tries to locate a JAR to satisfy an extension and place - * location of JAR into property. - * - * @ant.task name="jarlib-resolve" - */ -public class JarLibResolveTask extends Task { - /** - * The name of the property in which the location of - * library is stored. - */ - private String propertyName; - - /** - * The extension that is required. - */ - private Extension requiredExtension; - - /** - * The set of resolvers to use to attempt to locate library. - */ - private final ArrayList resolvers = new ArrayList(); - - /** - * Flag to indicate that you should check that - * the librarys resolved actually contain - * extension and if they don't then raise - * an exception. - */ - private boolean checkExtension = true; - - /** - * Flag indicating whether or not you should - * throw a BuildException if you cannot resolve - * library. - */ - private boolean failOnError = true; - - /** - * The name of the property in which the location of - * library is stored. - * - * @param property The name of the property in which the location of - * library is stored. - */ - public void setProperty(final String property) { - this.propertyName = property; - } - - /** - * Check nested libraries for extensions - * - * @param checkExtension if true, libraries returned by nested - * resolvers should be checked to see if they supply extension. - */ - public void setCheckExtension(final boolean checkExtension) { - this.checkExtension = checkExtension; - } - - /** - * Set whether to fail if error. - * - * @param failOnError if true, failure to locate library should fail build. - */ - public void setFailOnError(final boolean failOnError) { - this.failOnError = failOnError; - } - - /** - * Adds location resolver to look for a library in a location - * relative to project directory. - * - * @param loc the resolver location to search. - */ - public void addConfiguredLocation(final LocationResolver loc) { - resolvers.add(loc); - } - - /** - * Adds a URL resolver to download a library from a URL - * to a local file. - * - * @param url the URL resolver from which to download the library - */ - public void addConfiguredUrl(final URLResolver url) { - resolvers.add(url); - } - - /** - * Adds Ant resolver to run an Ant build file to generate a library. - * - * @param ant the AntResolver to generate the library. - */ - public void addConfiguredAnt(final AntResolver ant) { - resolvers.add(ant); - } - - /** - * Set the Extension looking for. - * - * @param extension Set the Extension looking for. - */ - public void addConfiguredExtension(final ExtensionAdapter extension) { - if (null != requiredExtension) { - final String message = "Can not specify extension to " - + "resolve multiple times."; - throw new BuildException(message); - } - requiredExtension = extension.toExtension(); - } - - /** - * Execute the task. - * - * @throws BuildException if the task fails. - */ - public void execute() throws BuildException { - validate(); - - getProject().log("Resolving extension: " + requiredExtension, Project.MSG_VERBOSE); - - String candidate = getProject().getProperty(propertyName); - - if (null != candidate) { - final String message = "Property Already set to: " + candidate; - if (failOnError) { - throw new BuildException(message); - } - getProject().log(message, Project.MSG_ERR); - return; - } - - final int size = resolvers.size(); - for (int i = 0; i < size; i++) { - final ExtensionResolver resolver = - (ExtensionResolver) resolvers.get(i); - - getProject().log("Searching for extension using Resolver:" + resolver, - Project.MSG_VERBOSE); - - try { - final File file = resolver.resolve(requiredExtension, getProject()); - try { - checkExtension(file); - return; - } catch (final BuildException be) { - final String message = "File " + file + " returned by " - + "resolver failed to satisfy extension due to: " + be.getMessage(); - getProject().log(message, Project.MSG_WARN); - } - } catch (final BuildException be) { - final String message = "Failed to resolve extension to file " + "using resolver " - + resolver + " due to: " + be; - getProject().log(message, Project.MSG_WARN); - } - } - missingExtension(); - } - - /** - * Utility method that will throw a {@link BuildException} - * if {@link #failOnError} is true else it just displays - * a warning. - */ - private void missingExtension() { - final String message = "Unable to resolve extension to a file"; - if (failOnError) { - throw new BuildException(message); - } - getProject().log(message, Project.MSG_ERR); - } - - /** - * Check if specified file satisfies extension. - * If it does then set the relevant property - * else throw a BuildException. - * - * @param file the candidate library - * @throws BuildException if library does not satisfy extension - */ - private void checkExtension(final File file) { - if (!file.exists()) { - throw new BuildException("File " + file + " does not exist"); - } - if (!file.isFile()) { - throw new BuildException("File " + file + " is not a file"); - } - if (!checkExtension) { - getProject().log("Setting property to " + file - + " without verifying library satisfies extension", Project.MSG_VERBOSE); - setLibraryProperty(file); - } else { - getProject().log("Checking file " + file + " to see if it satisfies extension", - Project.MSG_VERBOSE); - final Manifest manifest = ExtensionUtil.getManifest(file); - final Extension[] extensions = Extension.getAvailable(manifest); - for (int i = 0; i < extensions.length; i++) { - final Extension extension = extensions[ i ]; - if (extension.isCompatibleWith(requiredExtension)) { - setLibraryProperty(file); - return; - } - } - final String message = "File " + file + " skipped as it " - + "does not satisfy extension"; - getProject().log(message, Project.MSG_VERBOSE); - throw new BuildException(message); - } - } - - /** - * Utility method to set the appropriate property - * to indicate that specified file satisfies library - * requirements. - * - * @param file the library - */ - private void setLibraryProperty(final File file) { - getProject().setNewProperty(propertyName, file.getAbsolutePath()); - } - - /** - * Validate the tasks parameters. - * - * @throws BuildException if invalid parameters found - */ - private void validate() throws BuildException { - if (null == propertyName) { - final String message = "Property attribute must be specified."; - throw new BuildException(message); - } - - if (null == requiredExtension) { - final String message = "Extension element must be specified."; - throw new BuildException(message); - } - } -} |