X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=ide%2Fplugins%2Forg.argeo.slc.ide.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fide%2Fui%2Flaunch%2Fosgi%2FEclipseBootLaunchConfiguration.java;fp=ide%2Fplugins%2Forg.argeo.slc.ide.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fide%2Fui%2Flaunch%2Fosgi%2FEclipseBootLaunchConfiguration.java;h=d03b90a897bf976c947eb7421e938fc5fce2695a;hb=3c660e05ee3da1cc7a1be77e05697d5de6d25b5e;hp=0000000000000000000000000000000000000000;hpb=10c5a7040f86f45ee6f710acd8490cc87f38b9f8;p=gpl%2Fargeo-slc.git diff --git a/ide/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/EclipseBootLaunchConfiguration.java b/ide/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/EclipseBootLaunchConfiguration.java new file mode 100644 index 000000000..d03b90a89 --- /dev/null +++ b/ide/plugins/org.argeo.slc.ide.ui/src/main/java/org/argeo/slc/ide/ui/launch/osgi/EclipseBootLaunchConfiguration.java @@ -0,0 +1,42 @@ +package org.argeo.slc.ide.ui.launch.osgi; + +import org.argeo.slc.ide.ui.SlcIdeUiPlugin; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; +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.pde.launching.EclipseApplicationLaunchConfiguration; + +/** OSGiBoot launch configuration. */ +public class EclipseBootLaunchConfiguration extends + EclipseApplicationLaunchConfiguration { + public final static String ID = SlcIdeUiPlugin.ID + ".EclipseBootLauncher"; + + @Override + public void launch(ILaunchConfiguration configuration, String mode, + ILaunch launch, IProgressMonitor monitor) throws CoreException { + super.launch(configuration, mode, launch, monitor); + // Refresh resources before launching + final IFile propertiesFile = (IFile) configuration.getMappedResources()[0]; + propertiesFile.getParent().refreshLocal(IResource.DEPTH_INFINITE, + monitor); + } + + @Override + protected void preLaunchCheck(ILaunchConfiguration configuration, + ILaunch launch, IProgressMonitor monitor) throws CoreException { + ILaunchConfigurationWorkingCopy wc = configuration.getWorkingCopy(); + OsgiLaunchHelper.updateLaunchConfiguration(wc, true); + wc.doSave(); + + super.preLaunchCheck(configuration, launch, monitor); + + // Note that if a Java project contains a build.properties it has to + // declare the sources otherwise it will be skipped in the generation of + // the dev.properties file! + } + +}