package fr.opensagres.mongodb.ide.launching.internal.jobs; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchManager; import org.eclipse.osgi.util.NLS; import fr.opensagres.mongodb.ide.core.model.Database; import fr.opensagres.mongodb.ide.launching.internal.Messages; import fr.opensagres.mongodb.ide.launching.internal.ProgressUtil; import fr.opensagres.mongodb.ide.launching.internal.ServerLauncherManager; import fr.opensagres.mongodb.ide.launching.internal.Trace; public class StartShellJob extends DatabaseJob { public StartShellJob(Database database) { super(database, NLS.bind(Messages.jobStarting, database.getName())); } @Override protected IStatus run(IProgressMonitor monitor) { monitor = ProgressUtil.getMonitorFor(monitor); Database database = super.getDatabase(); try { ILaunchConfiguration launchConfig = ServerLauncherManager.getLaunchConfiguration( database, true, monitor); if (launchConfig != null) { ILaunch launch = launchConfig.launch( ILaunchManager.RUN_MODE, monitor); // , true); - // causes // workspace // lock database.setLaunch(launch); } if (Trace.FINEST) { Trace.trace(Trace.STRING_FINEST, "Launch: " + database.getLaunch()); } } catch (CoreException e) { if (Trace.SEVERE) { Trace.trace(Trace.STRING_SEVERE, "Error starting server " + database.toString(), e); } return e.getStatus(); } return Status.OK_STATUS; } }