X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Fplugins%2Forg.argeo.slc.ide.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fide%2Fui%2Flaunch%2Fosgi%2FSlcLaunchShortcut.java;h=e8e61ef210e8357fcdbbddc456dad2ba8529f04a;hb=24f738dcddf83ec2c13fe2e7498a47a4bcd0f427;hp=fb34e27fed312f434f6d0a4c0369dfb3af162459;hpb=7608332865a01c65a10424e5580a287ff4eb17a7;p=gpl%2Fargeo-slc.git diff --git a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/SlcLaunchShortcut.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/SlcLaunchShortcut.java index fb34e27fe..e8e61ef21 100644 --- a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/SlcLaunchShortcut.java +++ b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/SlcLaunchShortcut.java @@ -5,33 +5,16 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.StringTokenizer; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.Assert; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.debug.core.ILaunchConfigurationType; -import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; -import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants; -import org.eclipse.jdt.launching.IVMInstall; -import org.eclipse.jdt.launching.IVMInstall2; -import org.eclipse.jdt.launching.IVMInstallType; -import org.eclipse.jdt.launching.JavaRuntime; -import org.eclipse.jface.dialogs.ErrorDialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.osgi.service.resolver.BundleDescription; import org.eclipse.pde.core.plugin.IPluginModelBase; import org.eclipse.pde.core.plugin.PluginRegistry; -import org.eclipse.pde.ui.launcher.IPDELauncherConstants; -import org.eclipse.pde.ui.launcher.OSGiLaunchShortcut; -import org.eclipse.swt.widgets.DirectoryDialog; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; - -public class SlcLaunchShortcut extends OSGiLaunchShortcut { - public final static String VMS_PROPERTY_PREFIX = "slc.launch.vm"; +public class SlcLaunchShortcut extends AbstractOsgiLaunchShortcut { private Boolean debug = false; private String springOsgiExtenderId = "org.springframework.osgi.extender"; @@ -40,11 +23,8 @@ public class SlcLaunchShortcut extends OSGiLaunchShortcut { // private String osgiBootId = "org.argeo.slc.osgiboot"; private ISelection selection = null; - private StringBuffer name = null; private final List defaultBundlesToStart = new ArrayList(); - private List bundlesToStart = new ArrayList(); - public SlcLaunchShortcut() { super(); defaultBundlesToStart.add(springOsgiExtenderId); @@ -67,156 +47,6 @@ public class SlcLaunchShortcut extends OSGiLaunchShortcut { // Reset this.selection = null; - this.name = null; - bundlesToStart = null; - } - - protected void initializeConfiguration( - ILaunchConfigurationWorkingCopy configuration) { - try { - super.initializeConfiguration(configuration); - - // Convert bundle lists - String targetBundles = configuration.getAttribute( - IPDELauncherConstants.TARGET_BUNDLES, ""); - configuration.setAttribute(IPDELauncherConstants.TARGET_BUNDLES, - convertBundleList(bundlesToStart, targetBundles)); - - String wkSpaceBundles = configuration.getAttribute( - IPDELauncherConstants.WORKSPACE_BUNDLES, ""); - configuration.setAttribute(IPDELauncherConstants.WORKSPACE_BUNDLES, - convertBundleList(bundlesToStart, wkSpaceBundles)); - - // Update other default information - configuration.setAttribute( - IPDELauncherConstants.DEFAULT_AUTO_START, false); - configuration.setAttribute(IPDELauncherConstants.CONFIG_CLEAR_AREA, - true); - String defaultVmArgs = configuration.getAttribute( - IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, ""); - StringBuffer vmArgs = new StringBuffer(defaultVmArgs); - vmArgs.append(" -Xmx256m"); - - // Add locations of JVMs - addVmSysProperty(vmArgs, "default", JavaRuntime - .getDefaultVMInstall()); - IVMInstallType[] vmTypes = JavaRuntime.getVMInstallTypes(); - for (IVMInstallType vmType : vmTypes) { - // System.out.println("vmType: id=" + vmType.getId() + ", name=" - // + vmType.getName() + ", toString=" + vmType); - for (IVMInstall vmInstall : vmType.getVMInstalls()) { - // printVm("", vmInstall); - // properties based on name - addVmSysProperty(vmArgs, vmInstall.getName(), vmInstall); - if (vmInstall instanceof IVMInstall2) { - // properties based on version - IVMInstall2 vmInstall2 = (IVMInstall2) vmInstall; - String version = vmInstall2.getJavaVersion(); - addVmSysProperty(vmArgs, version, vmInstall); - - List tokens = new ArrayList(); - StringTokenizer st = new StringTokenizer(version, "."); - while (st.hasMoreTokens()) - tokens.add(st.nextToken()); - if (tokens.size() >= 2) - addVmSysProperty(vmArgs, tokens.get(0) + "." - + tokens.get(1), vmInstall); - } - } - } - configuration.setAttribute( - IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, vmArgs - .toString()); - - // Choose working directory - Shell shell = Display.getCurrent().getActiveShell(); - DirectoryDialog dirDialog = new DirectoryDialog(shell); - dirDialog.setText("Working Directory"); - dirDialog.setMessage("Choose the working directory"); - String dir = dirDialog.open(); - if (dir != null) - configuration - .setAttribute( - IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, - dir); - - } catch (CoreException e) { - Shell shell = Display.getCurrent().getActiveShell(); - ErrorDialog.openError(shell, "Error", - "Cannot execute SLC launch shortcut", e.getStatus()); - } - - } - - protected void addVmSysProperty(StringBuffer vmArgs, String suffix, - IVMInstall vmInstall) { - addSysProperty(vmArgs, VMS_PROPERTY_PREFIX + "." + suffix, vmInstall - .getInstallLocation().getPath()); - } - - protected void addSysProperty(StringBuffer vmArgs, String key, String value) { - String str = "-D" + key + "=" + value; - if (str.contains(" ")) - str = "\"" + str + "\""; - vmArgs.append(" " + str); - } - - protected void printVm(String prefix, IVMInstall vmInstall) { - System.out.println(prefix + " vmInstall: id=" + vmInstall.getId() - + ", name=" + vmInstall.getName() + ", installLocation=" - + vmInstall.getInstallLocation() + ", toString=" + vmInstall); - if (vmInstall instanceof IVMInstall2) { - IVMInstall2 vmInstall2 = (IVMInstall2) vmInstall; - System.out.println(" vmInstall: javaVersion=" - + vmInstall2.getJavaVersion()); - } - // printVm("Default", JavaRuntime.getDefaultVMInstall()); - // IExecutionEnvironment[] execEnvs = JavaRuntime - // .getExecutionEnvironmentsManager() - // .getExecutionEnvironments(); - // for (IExecutionEnvironment execEnv : execEnvs) { - // System.out.println("execEnv: id=" + execEnv.getId() + ", desc=" - // + execEnv.getDescription()); - // if (execEnv.getId().startsWith("J2SE") - // || execEnv.getId().startsWith("Java")) { - // IVMInstall vmInstall = execEnv.getDefaultVM(); - // printVm("", vmInstall); - // } - // } - - } - - protected String convertBundleList(List bundlesToStart, - String original) { - StringBuffer bufBundles = new StringBuffer(1024); - StringTokenizer stComa = new StringTokenizer(original, ","); - boolean first = true; - while (stComa.hasMoreTokens()) { - if (first) - first = false; - else - bufBundles.append(','); - - String tkComa = stComa.nextToken(); - int indexAt = tkComa.indexOf('@'); - boolean modified = false; - if (indexAt >= 0) { - String bundelId = tkComa.substring(0, indexAt); - - if (bundlesToStart.contains(bundelId)) { - bufBundles.append(bundelId).append('@').append( - "default:true"); - modified = true; - if (debug) - System.out.println("Will start " + bundelId); - } - } - - if (!modified) - bufBundles.append(tkComa); - } - String output = bufBundles.toString(); - return output; } protected void addSelectedProjects(List bundlesToStart) { @@ -272,12 +102,4 @@ public class SlcLaunchShortcut extends OSGiLaunchShortcut { } } } - - protected String getName(ILaunchConfigurationType type) { - if (name != null && !name.toString().trim().equals("")) - return name.toString(); - else - return "SLC"; - } - }