aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/JarLibResolveTask.java
diff options
context:
space:
mode:
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.java268
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);
- }
- }
-}