You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by fu...@apache.org on 2007/03/08 01:23:17 UTC

svn commit: r515864 - /db/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/DerbyUtils.java

Author: fuzzylogic
Date: Wed Mar  7 16:23:17 2007
New Revision: 515864

URL: http://svn.apache.org/viewvc?view=rev&rev=515864
Log:
DERBY-2376: Make Derby Eclipse plugin .classpath entries reference the 
ECLIPSE_HOME variable instead of using absolute paths.

Committed for Aaron Tarter <aj...@gmail.com>

Modified:
    db/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/DerbyUtils.java

Modified: db/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/DerbyUtils.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/DerbyUtils.java?view=diff&rev=515864&r1=515863&r2=515864
==============================================================================
--- db/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/DerbyUtils.java (original)
+++ db/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/DerbyUtils.java Wed Mar  7 16:23:17 2007
@@ -21,6 +21,7 @@
 
 package org.apache.derby.ui.util;
 
+import java.io.File;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
@@ -31,10 +32,11 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Platform; 
 import org.eclipse.debug.core.DebugPlugin;
 import org.eclipse.debug.core.ILaunch;
 import org.eclipse.debug.core.ILaunchConfiguration;
@@ -55,6 +57,7 @@
 
 
 public class DerbyUtils {
+	private final static String PLUGIN_ROOT = "ECLIPSE_HOME/plugins/";
 	
 	private static ManifestElement[] getElements(String bundleName) throws BundleException {
 		String requires = (String)Platform.getBundle(bundleName).getHeaders().get(Constants.BUNDLE_CLASSPATH);
@@ -70,30 +73,28 @@
 			elements_ui=getElements(CommonNames.UI_PATH);
 			
 			Bundle bundle=Platform.getBundle(CommonNames.CORE_PATH);
-			URL pluginURL = bundle.getEntry("/");
-			URL jarURL=null;
-			URL localURL=null;
+			URL pluginURL = FileLocator.resolve(FileLocator.find(bundle, new Path("/"), null));
+			String pluginName = new File(pluginURL.getPath()).getName();
 
 			newRawCP=new IClasspathEntry[rawCP.length + (elements_core.length) + (elements_ui.length-1)];
 			System.arraycopy(rawCP, 0, newRawCP, 0, rawCP.length);
 			
 			//Add the CORE jars
 			int oldLength=rawCP.length;
-			 for(int i=0;i<elements_core.length;i++){
-				jarURL= new URL(pluginURL,elements_core[i].getValue());
-				localURL=Platform.asLocalURL(jarURL);
-				newRawCP[oldLength+i]=JavaCore.newLibraryEntry(new Path(localURL.getPath()), null, null);
+			for(int i=0;i<elements_core.length;i++){
+				// add JAR as var type entry relative to the eclipse plugins dir, so the entry is portable 
+				newRawCP[oldLength+i]=JavaCore.newVariableEntry(new Path(PLUGIN_ROOT+pluginName+"/"+elements_core[i].getValue()), null, null);				
 				
 			}
 			 // Add the UI jars
 			bundle=Platform.getBundle(CommonNames.UI_PATH);
-			pluginURL = bundle.getEntry("/");
+			pluginURL = FileLocator.resolve(FileLocator.find(bundle, new Path("/"), null));
+			pluginName = new File(pluginURL.getPath()).getName();
 			oldLength=oldLength+elements_core.length -1; 
 			for(int i=0;i<elements_ui.length;i++){
 				if(!(elements_ui[i].getValue().toLowerCase().equals("ui.jar"))){
-					jarURL= new URL(pluginURL,elements_ui[i].getValue());
-					localURL=Platform.asLocalURL(jarURL);
-					newRawCP[oldLength+i]=JavaCore.newLibraryEntry(new Path(localURL.getPath()), null, null);
+					// add JAR as var type entry relative to the eclipse plugins dir, so the entry is portable
+					newRawCP[oldLength+i]=JavaCore.newVariableEntry(new Path(PLUGIN_ROOT+pluginName+"/"+elements_ui[i].getValue()), null, null);
 				}
 			}					
 			return newRawCP;