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! } }