diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java | 215 |
1 files changed, 0 insertions, 215 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java deleted file mode 100644 index 089c7894..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java +++ /dev/null @@ -1,215 +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.io.IOException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.jar.JarFile; -import java.util.jar.Manifest; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.DirectoryScanner; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.types.FileSet; - -/** - * A set of useful methods relating to extensions. - * - */ -public final class ExtensionUtil { - /** - * Class is not meant to be instantiated. - */ - private ExtensionUtil() { - //all methods static - } - - /** - * Convert a list of extensionAdapter objects to extensions. - * - * @param adapters the list of ExtensionAdapterss to add to convert - * @throws BuildException if an error occurs - */ - static ArrayList toExtensions(final List adapters) - throws BuildException { - final ArrayList results = new ArrayList(); - - final int size = adapters.size(); - for (int i = 0; i < size; i++) { - final ExtensionAdapter adapter = - (ExtensionAdapter) adapters.get(i); - final Extension extension = adapter.toExtension(); - results.add(extension); - } - - return results; - } - - /** - * Generate a list of extensions from a specified fileset. - * - * @param libraries the list to add extensions to - * @param fileset the filesets containing librarys - * @throws BuildException if an error occurs - */ - static void extractExtensions(final Project project, - final List libraries, - final List fileset) - throws BuildException { - if (!fileset.isEmpty()) { - final Extension[] extensions = getExtensions(project, - fileset); - for (int i = 0; i < extensions.length; i++) { - libraries.add(extensions[ i ]); - } - } - } - - /** - * Retrieve extensions from the specified libraries. - * - * @param libraries the filesets for libraries - * @return the extensions contained in libraries - * @throws BuildException if failing to scan libraries - */ - private static Extension[] getExtensions(final Project project, - final List libraries) - throws BuildException { - final ArrayList extensions = new ArrayList(); - final Iterator iterator = libraries.iterator(); - while (iterator.hasNext()) { - final FileSet fileSet = (FileSet) iterator.next(); - - boolean includeImpl = true; - boolean includeURL = true; - - if (fileSet instanceof LibFileSet) { - LibFileSet libFileSet = (LibFileSet) fileSet; - includeImpl = libFileSet.isIncludeImpl(); - includeURL = libFileSet.isIncludeURL(); - } - - final DirectoryScanner scanner = fileSet.getDirectoryScanner(project); - final File basedir = scanner.getBasedir(); - final String[] files = scanner.getIncludedFiles(); - for (int i = 0; i < files.length; i++) { - final File file = new File(basedir, files[ i ]); - loadExtensions(file, extensions, includeImpl, includeURL); - } - } - return (Extension[]) extensions.toArray(new Extension[extensions.size()]); - } - - /** - * Load list of available extensions from specified file. - * - * @param file the file - * @param extensionList the list to add available extensions to - * @throws BuildException if there is an error - */ - private static void loadExtensions(final File file, - final List extensionList, - final boolean includeImpl, - final boolean includeURL) - throws BuildException { - try { - final JarFile jarFile = new JarFile(file); - final Extension[] extensions = - Extension.getAvailable(jarFile.getManifest()); - for (int i = 0; i < extensions.length; i++) { - final Extension extension = extensions[ i ]; - addExtension(extensionList, extension, includeImpl, includeURL); - } - } catch (final Exception e) { - throw new BuildException(e.getMessage(), e); - } - } - - /** - * Add extension to list. - * If extension should not have implementation details but - * does strip them. If extension should not have url but does - * then strip it. - * - * @param extensionList the list of extensions to add to - * @param originalExtension the extension - * @param includeImpl false to exclude implementation details - * @param includeURL false to exclude implementation URL - */ - private static void addExtension(final List extensionList, - final Extension originalExtension, - final boolean includeImpl, - final boolean includeURL) { - Extension extension = originalExtension; - if (!includeURL - && null != extension.getImplementationURL()) { - extension = - new Extension(extension.getExtensionName(), - extension.getSpecificationVersion().toString(), - extension.getSpecificationVendor(), - extension.getImplementationVersion().toString(), - extension.getImplementationVendor(), - extension.getImplementationVendorID(), - null); - } - - final boolean hasImplAttributes = - null != extension.getImplementationURL() - || null != extension.getImplementationVersion() - || null != extension.getImplementationVendorID() - || null != extension.getImplementationVendor(); - - if (!includeImpl && hasImplAttributes) { - extension = - new Extension(extension.getExtensionName(), - extension.getSpecificationVersion().toString(), - extension.getSpecificationVendor(), - null, - null, - null, - extension.getImplementationURL()); - } - - extensionList.add(extension); - } - - /** - * Retrieve manifest for specified file. - * - * @param file the file - * @return the manifest - * @throws BuildException if errror occurs (file doesn't exist, - * file not a jar, manifest doesn't exist in file) - */ - static Manifest getManifest(final File file) - throws BuildException { - try { - final JarFile jarFile = new JarFile(file); - Manifest m = jarFile.getManifest(); - if (m == null) { - throw new BuildException(file + " doesn't have a MANIFEST"); - } - return m; - } catch (final IOException ioe) { - throw new BuildException(ioe.getMessage(), ioe); - } - } -} |