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%2FOsgiBootEquinoxLaunchConfiguration.java;h=6d1ebaf8b98281d310546ae889ac44e0d55d58cf;hb=56b28607f4c35706f0428b1b358b0e2033eb8448;hp=cbd84cbe75bf3ee3b3b48654c6e56b03ba2b40f7;hpb=18ac6f87499d59dd81c2195017dc74a088aecd1c;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/OsgiBootEquinoxLaunchConfiguration.java b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/OsgiBootEquinoxLaunchConfiguration.java index cbd84cbe7..6d1ebaf8b 100644 --- a/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/OsgiBootEquinoxLaunchConfiguration.java +++ b/eclipse/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/OsgiBootEquinoxLaunchConfiguration.java @@ -1,12 +1,5 @@ package org.argeo.slc.ide.ui.launch.osgi; -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; - import org.argeo.slc.ide.ui.SlcIdeUiPlugin; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; @@ -15,11 +8,9 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; -import org.eclipse.jface.dialogs.ErrorDialog; import org.eclipse.pde.ui.launcher.EquinoxLaunchConfiguration; -import org.eclipse.pde.ui.launcher.OSGiLaunchShortcut; -import org.eclipse.swt.widgets.Display; +/** OSGiBoot launch configuration. */ public class OsgiBootEquinoxLaunchConfiguration extends EquinoxLaunchConfiguration { public final static String ID = SlcIdeUiPlugin.ID @@ -29,59 +20,19 @@ public class OsgiBootEquinoxLaunchConfiguration extends public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException { super.launch(configuration, mode, launch, monitor); - - // TODO: add launch listener to be notified when is terminated and - // refresh resources - - IFile propertiesFile = (IFile) configuration.getMappedResources()[0]; + // Refresh resources before launching + final IFile propertiesFile = (IFile) configuration.getMappedResources()[0]; propertiesFile.getParent().refreshLocal(IResource.DEPTH_INFINITE, monitor); - // propertiesFile.getProject().refreshLocal(IResource.DEPTH_INFINITE, - // monitor); } @Override protected void preLaunchCheck(ILaunchConfiguration configuration, ILaunch launch, IProgressMonitor monitor) throws CoreException { // System.out.println("Launching... " + launch); - IFile propertiesFile = (IFile) configuration.getMappedResources()[0]; - - Properties properties = null; - try { - properties = OsgiLaunchHelper.readProperties(propertiesFile); - } catch (CoreException e) { - ErrorDialog.openError(Display.getCurrent().getActiveShell(), - "Error", "Cannot execute launch shortcut", e.getStatus()); - return; - } - - List bundlesToStart = new ArrayList(); - Map systemPropertiesToAppend = new HashMap(); - OsgiLaunchHelper.interpretProperties(properties, bundlesToStart, - systemPropertiesToAppend); - - File workingDir = getWorkingDirectory(configuration); - ILaunchConfigurationWorkingCopy wc = configuration.getWorkingCopy(); - - // Reinitialize using standard OSGi launch shortcut - // Kind of a hack but it lacks extension capabilities and it is still - // cleaner than forking the code (which would imply a lot of fork indeed - // because of all the internal classes) - new OSGiLaunchShortcut() { - @Override - public void initializeConfiguration( - ILaunchConfigurationWorkingCopy configuration) { - // TODO Auto-generated method stub - super.initializeConfiguration(configuration); - } - }.initializeConfiguration(wc); - - OsgiLaunchHelper.updateLaunchConfiguration(wc, bundlesToStart, - systemPropertiesToAppend, null, new File(workingDir, "data") - .getAbsolutePath()); + OsgiLaunchHelper.updateLaunchConfiguration(wc); wc.doSave(); - super.preLaunchCheck(configuration, launch, monitor); // Note that if a Java project contains a build.properties it has to