diff options
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ClasspathUtil.java')
-rw-r--r-- | plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ClasspathUtil.java | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ClasspathUtil.java b/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ClasspathUtil.java deleted file mode 100644 index 2e39c5f07..000000000 --- a/plugins/org.eclipse.jst.j2ee.core/commonArchive/org/eclipse/jst/j2ee/commonarchivecore/internal/util/ClasspathUtil.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.j2ee.commonarchivecore.internal.util; - - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import com.ibm.icu.util.StringTokenizer; -import java.util.jar.Attributes; -import java.util.jar.JarFile; -import java.util.jar.Manifest; - -import org.eclipse.jem.util.logger.proxy.Logger; -import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.RuntimeClasspathEntry; -import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.RuntimeClasspathEntryImpl; - - -public class ClasspathUtil { - - public static void processManifest(String inPath, List rtClasspath, Set processedPaths) { - ArrayList paths = getManifestPaths(inPath); - for (int i = 0; i < paths.size(); i++) { - RuntimeClasspathEntry entry = (RuntimeClasspathEntry) paths.get(i); - if (!processedPaths.contains(entry)) { - processedPaths.add(entry); - rtClasspath.add(entry); - processManifest(entry.getAbsolutePath(), rtClasspath, processedPaths); - } - } - } - - protected static RuntimeClasspathEntry createRuntimeClasspathEntry(String absolutePath, String manifestValue) { - RuntimeClasspathEntry entry = new RuntimeClasspathEntryImpl(); - entry.setAbsolutePath(absolutePath); - entry.setManifestValue(manifestValue); - return entry; - } - - protected static ArrayList getManifestPaths(String path) { - ArrayList manifestPaths = new ArrayList(); - File f = new File(path); - if (f.exists()) { - if (f.isDirectory()) { - File manifestFile = new File(path + File.separator + "META-INF" + File.separator + "MANIFEST.MF"); //$NON-NLS-1$ //$NON-NLS-2$ - if (manifestFile.exists()) { - FileInputStream inputStream = null; - try { - inputStream = new FileInputStream(manifestFile); - Manifest manifest = new Manifest(inputStream); - manifestPaths = getManifestClassPaths(manifest, f.getParent()); - } catch (IOException e) { - //Ignore - } finally { - if (null != inputStream) { - try { - inputStream.close(); - } catch (IOException ex) { - Logger.getLogger().logError(ex); - } - } - } - } - } else { - JarFile jarFile = null; - try { - jarFile = new JarFile(f); - Manifest manifest = jarFile.getManifest(); - if (manifest != null) - manifestPaths = getManifestClassPaths(manifest, f.getParent()); - } catch (IOException e) { - //Ignore - } finally { - if (jarFile != null) - try { - jarFile.close(); - } catch (IOException ex) { - //Ignore - } - } - } - } - return manifestPaths; - } - - protected static ArrayList getManifestClassPaths(Manifest manifest, String archivePath) { - ArrayList pathList = new ArrayList(); - Attributes main = manifest.getMainAttributes(); - String classPath = main.getValue(Attributes.Name.CLASS_PATH); - if (classPath != null) { - StringTokenizer st = new StringTokenizer(classPath, " "); //$NON-NLS-1$ - while (st.hasMoreTokens()) { - String token = st.nextToken(); - String path = archivePath + File.separator + token; - path = normalizePath(path); - if (new File(path).exists()) { - pathList.add(createRuntimeClasspathEntry(path, token)); - } - } - } - return pathList; - } - - public static String normalizePath(String path) { - File f = new File(path); - try { - f = f.getCanonicalFile(); - } catch (Exception ex) { - //Ignore - } - return f.getPath(); - } -} |