package org.jactr.eclipse.demo.export.ops; /* * default logging */ import java.lang.reflect.InvocationTargetException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.ui.actions.WorkspaceModifyOperation; import org.jactr.eclipse.runtime.launching.ACTRLaunchConfigurationUtils; import org.jactr.eclipse.runtime.launching.ACTRLaunchConstants; public class UpdateLaunchOperation extends WorkspaceModifyOperation { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(UpdateLaunchOperation.class); private ILaunchConfigurationWorkingCopy _configuration; public UpdateLaunchOperation(ILaunchConfigurationWorkingCopy configuration) { _configuration = configuration; } @Override protected void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException, InterruptedException { if (monitor != null) monitor = new SubProgressMonitor(monitor, 3); else monitor = new NullProgressMonitor(); try { monitor.beginTask("Adjusting run configuration", 3); ACTRLaunchConfigurationUtils.setupPermanentAttributes(_configuration); monitor.worked(1); ACTRLaunchConfigurationUtils.setupPersistentAttributes(_configuration); monitor.worked(1); /* * we overwrite the ports and address to prevent connection attempts */ _configuration.setAttribute(ACTRLaunchConstants.ATTR_DEBUG_PORT, -1); _configuration.setAttribute(ACTRLaunchConstants.ATTR_DEBUG_ADDRESS, (String) null); _configuration.setAttribute(ACTRLaunchConstants.ATTR_CREDENTIALS, (String) null); monitor.worked(1); } finally { monitor.done(); } } }