db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fuzzylo...@apache.org
Subject svn commit: r178020 [3/3] - in /incubator/derby/code/trunk/plugins: ./ eclipse/ eclipse/org.apache.derby.plugin.doc/ eclipse/org.apache.derby.plugin.doc/topics/ eclipse/org.apache.derby.plugin.doc/topics/images/ eclipse/org.apache.derby.ui/ eclipse/org.apache.derby.ui/icons/ eclipse/org.apache.derby.ui/src/ eclipse/org.apache.derby.ui/src/org/ eclipse/org.apache.derby.ui/src/org/apache/ eclipse/org.apache.derby.ui/src/org/apache/derby/ eclipse/org.apache.derby.ui/src/org/apache/derby/ui/ eclipse/org.apache.derby.ui/src/org/apache/derby/ui/actions/ eclipse/org.apache.derby.ui/src/org/apache/derby/ui/common/ eclipse/org.apache.derby.ui/src/org/apache/derby/ui/decorate/ eclipse/org.apache.derby.ui/src/org/apache/derby/ui/launch/ eclipse/org.apache.derby.ui/src/org/apache/derby/ui/nature/ eclipse/org.apache.derby.ui/src/org/apache/derby/ui/popup/ eclipse/org.apache.derby.ui/src/org/apache/derby/ui/popup/actions/ eclipse/org.apache.derby.ui/src/org/apache/derby/ui/properties/ eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/
Date Mon, 23 May 2005 20:55:17 GMT
Added: incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/DerbyUtils.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/DerbyUtils.java?rev=178020&view=auto
==============================================================================
--- incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/DerbyUtils.java
(added)
+++ incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/DerbyUtils.java
Mon May 23 13:55:15 2005
@@ -0,0 +1,305 @@
+/*
+
+	Derby - Class org.apache.derby.ui.util.DerbyUtils
+	Copyright 2002, 2004 The Apache Software Foundation or its licensors, as applicable.
+	
+	Licensed 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.derby.ui.util;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.derby.ui.DerbyPlugin;
+import org.apache.derby.ui.common.CommonNames;
+import org.apache.derby.ui.properties.DerbyProperties;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+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.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationType;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.core.model.IProcess;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.osgi.util.ManifestElement;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleException;
+import org.osgi.framework.Constants;
+
+
+
+public class DerbyUtils {
+	
+	private static ManifestElement[] getElements(String bundleName) throws BundleException {
+		String requires = (String)Platform.getBundle(bundleName).getHeaders().get(Constants.BUNDLE_CLASSPATH);
+		return ManifestElement.parseHeader(Constants.BUNDLE_CLASSPATH, requires);
+	}
+	public static IClasspathEntry[] addDerbyJars(IClasspathEntry[] rawCP) throws Exception{
+		
+		IClasspathEntry[] newRawCP= null;
+		try{
+			//New OSGI way
+			ManifestElement[] elements_core, elements_ui;
+			elements_core = getElements(CommonNames.CORE_PATH);
+			elements_ui=getElements(CommonNames.UI_PATH);
+			
+			Bundle bundle=Platform.getBundle(CommonNames.CORE_PATH);
+			URL pluginURL = bundle.getEntry("/");
+			URL jarURL=null;
+			URL localURL=null;
+
+			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);
+				
+			}
+			 // Add the UI jars
+			bundle=Platform.getBundle(CommonNames.UI_PATH);
+			pluginURL = bundle.getEntry("/");
+			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);
+				}
+			}					
+			return newRawCP;
+		}catch(Exception e){
+			throw e;
+		}
+		
+	}
+	public static IClasspathEntry[] removeDerbyJars(IClasspathEntry[] rawCP) throws Exception{
+		ArrayList arrL=new ArrayList();
+		for (int i=0;i<rawCP.length;i++){
+			arrL.add(rawCP[i]);
+		}
+		IClasspathEntry[] newRawCP= null;
+		try{
+			ManifestElement[] elements_core, elements_ui;
+			elements_core = getElements(CommonNames.CORE_PATH);
+			elements_ui=getElements(CommonNames.UI_PATH);
+			
+			Bundle bundle;
+			URL pluginURL,jarURL,localURL;
+
+			boolean add;
+			IClasspathEntry icp=null;
+			for (int j=0;j<arrL.size();j++){
+				bundle=Platform.getBundle(CommonNames.CORE_PATH);
+				pluginURL = bundle.getEntry("/");
+				add=true;
+				icp=(IClasspathEntry)arrL.get(j);
+				//remove 'core' jars
+				for (int i=0;i<elements_core.length;i++){
+					jarURL= new URL(pluginURL,elements_core[i].getValue());
+					localURL=Platform.asLocalURL(jarURL);
+					if(((icp).equals(JavaCore.newLibraryEntry(new Path(localURL.getPath()), null, null)))||
+							icp.getPath().toString().toLowerCase().endsWith("derby.jar")||
+							icp.getPath().toString().toLowerCase().endsWith("derbynet.jar")||
+							icp.getPath().toString().toLowerCase().endsWith("derbyclient.jar")||
+							icp.getPath().toString().toLowerCase().endsWith("derbytools.jar")){
+						add=false;
+					}
+				}
+				if(!add){
+					arrL.remove(j);
+					j=j-1;
+				}
+				//REMOVE 'ui' jars
+				bundle=Platform.getBundle(CommonNames.UI_PATH);
+				pluginURL = bundle.getEntry("/");
+				add=true;
+				
+				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);					
+						if((icp).equals(JavaCore.newLibraryEntry(new Path(localURL.getPath()), null, null))){
+							add=false;
+						}
+					}
+				}
+				if(!add){
+					arrL.remove(j);
+					j=j-1;
+				}
+			}
+			newRawCP=new IClasspathEntry[arrL.size()];
+			for (int i=0;i<arrL.size();i++){
+				newRawCP[i]=(IClasspathEntry)arrL.get(i);
+			}
+			return newRawCP;
+		}catch(Exception e){
+			e.printStackTrace();
+			//return rawCP;
+			throw e;
+		}
+		
+	}
+	protected static ILaunch launch(IProject proj, String name, String mainClass, String args,
String vmargs, String app) throws CoreException {	
+		ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
+	
+		ILaunchConfigurationType type=null;
+		if(app.equalsIgnoreCase(CommonNames.START_DERBY_SERVER)){
+			//type= manager.getLaunchConfigurationType("org.apache.derby.ui.startDerbyServerLaunchConfigurationType");
+			type= manager.getLaunchConfigurationType(CommonNames.START_SERVER_LAUNCH_CONFIG_TYPE);
+		}else if(app.equalsIgnoreCase(CommonNames.SHUTDOWN_DERBY_SERVER)){
+			//type= manager.getLaunchConfigurationType("org.apache.derby.ui.stopDerbyServerLaunchConfigurationType");
+			type= manager.getLaunchConfigurationType(CommonNames.STOP_SERVER_LAUNCH_CONFIG_TYPE);
+		}else if(app.equalsIgnoreCase(CommonNames.IJ)){
+			//type= manager.getLaunchConfigurationType("org.apache.derby.ui.ijDerbyLaunchConfigurationType");
+			type= manager.getLaunchConfigurationType(CommonNames.IJ_LAUNCH_CONFIG_TYPE);
+		}else if(app.equalsIgnoreCase(CommonNames.SYSINFO)){
+			//type= manager.getLaunchConfigurationType("org.apache.derby.ui.sysinfoDerbyLaunchConfigurationType");
+			type= manager.getLaunchConfigurationType(CommonNames.SYSINFO_LAUNCH_CONFIG_TYPE);
+		}else{
+			type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
+		}
+		ILaunchConfiguration config = null;
+		// if the configuration already exists, delete it
+		ILaunchConfiguration[] configurations = manager.getLaunchConfigurations(type);
+		for (int i = 0; i < configurations.length; i++) {
+			if (configurations[i].getName().equals(name))
+				configurations[i].delete();
+		}
+		// else create a new one
+		if (config == null) {
+			ILaunchConfigurationWorkingCopy wc = type.newInstance(null, name);
+			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME,
+				proj.getProject().getName());
+			// current directory should be the project root
+			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY,
+				proj.getProject().getLocation().toString());
+			// use the suplied args
+			if((vmargs!=null)&&!(vmargs.equals(""))){
+				wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, vmargs);
+			}
+			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME,
+				mainClass);
+			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS,
+				args);
+			// saves the new config
+			config = wc.doSave();
+		}
+		ILaunch launch=config.launch(ILaunchManager.RUN_MODE, null);
+		config.delete();
+		return launch;
+	}
+	public static void runIJ(IFile currentScript, IProject currentProject) throws CoreException
{	
+
+		String launchType="";
+		String args="";
+		
+		//the above some times throws wrong 'create=true|false' errors
+		String vmargs="";
+		DerbyProperties dprop=new DerbyProperties(currentProject);
+		if((dprop.getSystemHome()!=null)&& !(dprop.getSystemHome().equals(""))){
+			vmargs+=CommonNames.D_SYSTEM_HOME+dprop.getSystemHome();
+		}
+		
+		if(currentScript!=null){
+			launchType=CommonNames.SQL_SCRIPT;
+			
+			//Preferable to use the full String with quotes to take care of spaces 
+			//in file names
+			args="\""+currentScript.getLocation().toOSString()+"\"";
+		}else{
+			launchType=CommonNames.IJ;
+			args="";	
+		}
+		
+		ILaunch launch=launch(currentProject,launchType,CommonNames.IJ_CLASS,args, vmargs, CommonNames.IJ);
+		IProcess ip=launch.getProcesses()[0];
+		String procName="["+currentProject.getName()+"] - "+CommonNames.IJ+" "+args;
+		ip.setAttribute(IProcess.ATTR_PROCESS_LABEL,procName);
+	}
+	public static void runSysInfo(IProject currentProject) throws CoreException {	
+		String args="";
+		ILaunch launch=launch(currentProject,CommonNames.SYSINFO,CommonNames.SYSINFO_CLASS,args,
null, CommonNames.SYSINFO);
+		IProcess ip=launch.getProcesses()[0];
+		String procName="["+currentProject.getName()+"] - "+CommonNames.SYSINFO;
+		ip.setAttribute(IProcess.ATTR_PROCESS_LABEL,procName);
+	}
+	//another launch mechanism 																	
+	public void launch() throws CoreException{
+		DerbyPlugin plugin = DerbyPlugin.getDefault();
+
+		// constructs a classpath from the default JRE...
+		IPath systemLibs = new Path(JavaRuntime.JRE_CONTAINER);
+		IRuntimeClasspathEntry systemLibsEntry = JavaRuntime.newRuntimeContainerClasspathEntry(
+			systemLibs, IRuntimeClasspathEntry.STANDARD_CLASSES);
+		systemLibsEntry.setClasspathProperty(IRuntimeClasspathEntry.BOOTSTRAP_CLASSES);
+		//include org.apache.derby.core plugin
+		IRuntimeClasspathEntry derbyCPEntry = null;
+		List classpath = new ArrayList();
+		classpath.add(systemLibsEntry.getMemento());
+		
+		try {
+			ManifestElement[] elements_core, elements_ui;
+			elements_core = getElements(CommonNames.CORE_PATH);
+			elements_ui=getElements(CommonNames.UI_PATH);
+			
+			Bundle bundle;
+			URL pluginURL,jarURL,localURL;
+			bundle=Platform.getBundle(CommonNames.CORE_PATH);
+			pluginURL = bundle.getEntry("/");
+			for(int i=0;i<elements_core.length;i++){
+				if(!elements_core[i].getValue().toLowerCase().endsWith("derbynet.jar")){
+					jarURL= new URL(pluginURL,elements_core[i].getValue());
+					localURL=Platform.asLocalURL(jarURL);
+					derbyCPEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(new Path(localURL.getPath()));
+					derbyCPEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
+					classpath.add(derbyCPEntry.getMemento());
+				}
+			}
+			bundle=Platform.getBundle(CommonNames.CORE_PATH);
+			pluginURL = bundle.getEntry("/");
+			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);
+					derbyCPEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(new Path(localURL.getPath()));
+					derbyCPEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
+					classpath.add(derbyCPEntry.getMemento());
+				}
+			}
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+			Logger.log("Error in launch() "+e,IStatus.ERROR);
+		}
+	
+	}
+}

Added: incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/Logger.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/Logger.java?rev=178020&view=auto
==============================================================================
--- incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/Logger.java
(added)
+++ incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/Logger.java
Mon May 23 13:55:15 2005
@@ -0,0 +1,35 @@
+/*
+
+	Derby - Class org.apache.derby.ui.util.Logger
+	
+	Copyright 2002, 2004 The Apache Software Foundation or its licensors, as applicable.
+	
+	Licensed 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.derby.ui.util;
+
+import org.apache.derby.ui.DerbyPlugin;
+import org.eclipse.core.runtime.ILog;
+import org.eclipse.core.runtime.Status;
+
+
+public class Logger {
+	static public void log(String msg, int msgType) {
+		ILog log = DerbyPlugin.getDefault().getLog();
+		Status status = new Status(msgType, DerbyPlugin.getDefault().getBundle().getSymbolicName(),
msgType, msg + "\n", null);
+		log.log(status);
+		
+	}
+}

Added: incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/SelectionUtil.java
URL: http://svn.apache.org/viewcvs/incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/SelectionUtil.java?rev=178020&view=auto
==============================================================================
--- incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/SelectionUtil.java
(added)
+++ incubator/derby/code/trunk/plugins/eclipse/org.apache.derby.ui/src/org/apache/derby/ui/util/SelectionUtil.java
Mon May 23 13:55:15 2005
@@ -0,0 +1,73 @@
+/*
+
+	Derby - Class org.apache.derby.ui.util.SelectionUtil
+	
+	Copyright 2002, 2004 The Apache Software Foundation or its licensors, as applicable.
+	
+	Licensed 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.derby.ui.util;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+
+public class SelectionUtil {
+    public static IProject findSelectedProject(ISelection selection) {
+    	IProject currentProject = null;
+    	if (selection != null) {
+    		if (selection instanceof IStructuredSelection) {
+    			IStructuredSelection ss = (IStructuredSelection)selection;
+    			Object obj = ss.getFirstElement();
+    			if (obj instanceof IProject) {
+    				currentProject = (IProject)obj;
+    			}
+    		}
+    	}
+    	return currentProject;
+    }
+	
+     public static IJavaProject findSelectedJavaProject(ISelection selection) {
+    	IJavaProject currentProject = null;
+    	if (selection != null) {
+    		if (selection instanceof IStructuredSelection) {
+    			IStructuredSelection ss = (IStructuredSelection)selection;
+    			Object obj = ss.getFirstElement();
+    			if (obj instanceof IJavaProject) {
+    				currentProject = (IJavaProject)obj;
+    			}
+    		}
+    	}
+    	return currentProject;
+    }
+    
+    public static String getStatusMessages(Exception e) {
+    	String msg = e.getMessage();
+    	if (e instanceof CoreException) {
+    		CoreException ce = (CoreException)e;	
+			IStatus status = ce.getStatus();
+			IStatus[] children = status.getChildren();
+			for (int i = 0; i < children.length; i++)
+				msg += "\n" + children[i].getMessage();
+			System.err.println(msg);
+			ce.printStackTrace(System.err);
+    	}
+    	return msg;
+    }
+}



Mime
View raw message