diff options
Diffstat (limited to 'plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalFileConfigurationContributorController.java')
-rw-r--r-- | plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalFileConfigurationContributorController.java | 314 |
1 files changed, 0 insertions, 314 deletions
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalFileConfigurationContributorController.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalFileConfigurationContributorController.java deleted file mode 100644 index df8937b3d..000000000 --- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalFileConfigurationContributorController.java +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 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.jem.internal.proxy.remote; - -import java.net.URL; -import java.util.*; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.jdt.core.*; -import org.eclipse.jdt.launching.IRuntimeClasspathEntry; -import org.eclipse.jdt.launching.JavaRuntime; -import org.osgi.framework.Bundle; - -import org.eclipse.jem.internal.proxy.core.*; -import org.eclipse.jem.util.plugin.JEMUtilPlugin; - -/** - * This version works with local files being added to the classpath, and the classpath is strings. - * - * @since 1.0.0 - */ -public class LocalFileConfigurationContributorController implements IConfigurationContributionController { - - private URL[] classpathInfo; - - private URL[][] bootpathInfo; - - private List classpath; - - private List prependBootpath; - - private List appendBootpath; - - private List javaLibraryPath; - - private ProxyLaunchSupport.LaunchInfo launchInfo; - - public LocalFileConfigurationContributorController(URL[] classpathInfo, URL[][] bootpathInfo, ProxyLaunchSupport.LaunchInfo launchInfo) { - this.classpathInfo = classpathInfo; - this.bootpathInfo = bootpathInfo; - this.launchInfo = launchInfo; - } - - public URL[] getFinalClasspath() { - if (classpath == null) - return classpathInfo; - else - return (URL[]) classpath.toArray(new URL[classpath.size()]); - } - - public URL[] getFinalPrependBootpath() { - if (prependBootpath == null) - return bootpathInfo[0]; - else - return (URL[]) prependBootpath.toArray(new URL[prependBootpath.size()]); - } - - public URL[] getFinalAppendBootpath() { - if (appendBootpath == null) - return bootpathInfo[2]; - else - return (URL[]) appendBootpath.toArray(new URL[appendBootpath.size()]); - } - - public List getFinalJavaLibraryPath() { - if (javaLibraryPath == null) - return Collections.EMPTY_LIST; - else - return javaLibraryPath; - } - - protected List getClasspath() { - if (classpath == null) { - classpath = new ArrayList(classpathInfo.length); - addAll(classpath, classpathInfo, -1); - } - return classpath; - } - - protected List getPrependBootpath() { - if (prependBootpath == null) { - if (bootpathInfo[0] != null) { - prependBootpath = new ArrayList(bootpathInfo[0].length); - addAll(prependBootpath, bootpathInfo[0], -1); - } else - prependBootpath = new ArrayList(1); - } - return prependBootpath; - } - - protected List getAppendBootpath() { - if (appendBootpath == null) { - if (bootpathInfo[2] != null) { - appendBootpath = new ArrayList(bootpathInfo[2].length); - addAll(appendBootpath, bootpathInfo[2], -1); - } else - appendBootpath = new ArrayList(1); - } - return appendBootpath; - } - - protected List getJavaLibraryPath() { - if (javaLibraryPath == null) { - javaLibraryPath = new ArrayList(3); - } - return javaLibraryPath; - } - - protected void addAll(List toList, Object[] array, int loc) { - for (int i = 0; i < array.length; i++) { - // Need a dup check, sometimes dups come in especially during development - if (toList.contains(array[i])) - continue; - if (loc == -1) - toList.add(array[i]); - else - toList.add(loc++, array[i]); - } - } - - protected void addLocations(List toList, IRuntimeClasspathEntry[] entries) { - for (int i = 0; i < entries.length; i++) { - IRuntimeClasspathEntry entry = entries[i]; - URL location = ProxyLaunchSupport.convertStringPathToURL(entry.getLocation()); - if (location != null && !toList.contains(location)) - toList.add(location); - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#getJavaProject() - */ - public IJavaProject getJavaProject() { - return launchInfo.getJavaProject(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeProject(org.eclipse.core.resources.IProject) - */ - public void contributeProject(IProject project) throws CoreException { - IJavaProject jproject = JavaCore.create(project); - IRuntimeClasspathEntry[] projPath = JavaRuntime.computeUnresolvedRuntimeClasspath(jproject); - boolean jreContainerFound = false; - for (int i = 0; i < projPath.length; i++) { - IRuntimeClasspathEntry entry = projPath[i]; - if (entry.getClasspathProperty() == IRuntimeClasspathEntry.BOOTSTRAP_CLASSES - || entry.getClasspathProperty() == IRuntimeClasspathEntry.STANDARD_CLASSES) { - int entryKind = entry.getClasspathEntry().getEntryKind(); - String segment0 = entry.getPath().segment(0); - if (entryKind == IClasspathEntry.CPE_CONTAINER && JavaRuntime.JRE_CONTAINER.equals(segment0) - || entryKind == IClasspathEntry.CPE_VARIABLE && JavaRuntime.JRELIB_VARIABLE.equals(segment0)) { - jreContainerFound = true; - } else { - if (jreContainerFound) - addLocations(getAppendBootpath(), JavaRuntime.resolveRuntimeClasspathEntry(entry, jproject)); - else - addLocations(getPrependBootpath(), JavaRuntime.resolveRuntimeClasspathEntry(entry, jproject)); - } - } else { - addLocations(getClasspath(), JavaRuntime.resolveRuntimeClasspathEntry(entry, jproject)); - } - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(java.lang.String, int) - */ - public void contributeClasspath(String classpath, int typeFlag) { - contributeClasspath(ProxyLaunchSupport.convertStringPathToURL(classpath), typeFlag); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(java.net.URL, int) - */ - public void contributeClasspath(URL classpathURL, int typeFlag) { - if (classpathURL == null) - return; - switch (typeFlag) { - case PREPEND_BOOT_CLASSPATH: - if (!getPrependBootpath().contains(classpathURL)) - getPrependBootpath().add(classpathURL); - break; - case PREPEND_USER_CLASSPATH: - if (!getClasspath().contains(classpathURL)) - getClasspath().add(0, classpathURL); - break; - case APPEND_USER_CLASSPATH: - if (!getClasspath().contains(classpathURL)) - getClasspath().add(classpathURL); - break; - case APPEND_BOOT_CLASSPATH: - if (!getAppendBootpath().contains(classpathURL)) - getAppendBootpath().add(classpathURL); - break; - case APPEND_JAVA_LIBRARY_PATH: - if (!getJavaLibraryPath().contains(classpathURL)) - getJavaLibraryPath().add(classpathURL); - break; - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(org.osgi.framework.Bundle, java.lang.String, - * int, boolean) - */ - public void contributeClasspath(Bundle bundle, String relativePath, int typeFlag, boolean nlsLocalize) { - // If not nls localize, or if it is java library path, then just find the one in the plugin/fragment and add it. - if (nlsLocalize) - contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeAllFromBundleAndFragments(bundle, relativePath), typeFlag); - else if (typeFlag == IConfigurationContributionController.APPEND_JAVA_LIBRARY_PATH) { - if (relativePath == null || relativePath.length() == 0) { - // PDE is not here to help us extract that @#$ dll - JEMUtilPlugin.getLogger().log("Can't extract a directory from the root of a plugin."); //$NON-NLS-1$ - return; - } - URL contribution = ProxyPlugin.getPlugin().urlLocalizeFromBundleAndFragments(bundle, relativePath); - contributeClasspath(contribution, typeFlag); - } else { - if (relativePath != null) - contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeFromBundleOnly(bundle, relativePath), typeFlag); - else - contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeBundle(bundle), typeFlag); - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(org.osgi.framework.Bundle, - * org.eclipse.core.runtime.IPath, int, boolean) - */ - public void contributeClasspath(Bundle bundle, IPath relativePath, int typeFlag, boolean nlsLocalize) { - if (nlsLocalize) - if (relativePath != null) - contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeAllFromBundleAndFragments(bundle, relativePath), typeFlag); - else - contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeBundleAndFragments(bundle), typeFlag); - else if (typeFlag == IConfigurationContributionController.APPEND_JAVA_LIBRARY_PATH) { - if (relativePath == null || relativePath.segmentCount() == 0) { - // PDE is not here to help us extract that @#$ dll - JEMUtilPlugin.getLogger().log("Can't extract a directory from the root of a plugin."); //$NON-NLS-1$ - return; - } - URL contribution = ProxyPlugin.getPlugin().urlLocalizeFromBundleAndFragments(bundle, relativePath); - contributeClasspath(contribution, typeFlag); - } else { - if (relativePath != null) - contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeFromBundleOnly(bundle, relativePath), typeFlag); - else - contributeClasspath(ProxyPlugin.getPlugin().urlLocalizeBundle(bundle), typeFlag); - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(java.lang.String[], int) - */ - public void contributeClasspath(String[] classpaths, int typeFlag) { - contributeClasspath(ProxyLaunchSupport.convertStringPathsToURL(classpaths), typeFlag); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IConfigurationContributionController#contributeClasspath(java.net.URL[], int) - */ - public void contributeClasspath(URL[] classpathURLs, int typeFlag) { - if (classpathURLs == null) - return; - switch (typeFlag) { - case PREPEND_BOOT_CLASSPATH: - addAll(getPrependBootpath(), classpathURLs, -1); - break; - case PREPEND_USER_CLASSPATH: - addAll(getClasspath(), classpathURLs, 0); - break; - case APPEND_USER_CLASSPATH: - addAll(getClasspath(), classpathURLs, -1); - break; - case APPEND_BOOT_CLASSPATH: - addAll(getAppendBootpath(), classpathURLs, -1); - break; - case APPEND_JAVA_LIBRARY_PATH: - addAll(getJavaLibraryPath(), classpathURLs, -1); - break; - } - } - -} |