Author: rob.stryker(a)jboss.com
Date: 2007-06-22 18:55:20 -0400 (Fri, 22 Jun 2007)
New Revision: 2166
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossServerBehavior.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossServerLaunchConfiguration.java
Log:
process termination now sets server state to stopped
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossServerBehavior.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossServerBehavior.java 2007-06-22
22:40:40 UTC (rev 2165)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossServerBehavior.java 2007-06-22
22:55:20 UTC (rev 2166)
@@ -24,6 +24,9 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.debug.core.DebugEvent;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.IDebugEventSetListener;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.core.ILaunchManager;
@@ -87,6 +90,7 @@
// just terminate the processes. All of them
try {
ServerProcessModel.getDefault().getModel(getServer().getId()).clearAll();
+ process = null;
setServerStopped();
EventLogTreeItem tpe = new ForceShutdownEvent();
EventLogModel.markChanged(tpe.getEventRoot());
@@ -108,6 +112,33 @@
}
+ protected transient IProcess process;
+ protected transient IDebugEventSetListener processListener;
+ public void setProcess(final IProcess newProcess) {
+ if (process != null)
+ return;
+
+ process = newProcess;
+ if (processListener != null)
+ DebugPlugin.getDefault().removeDebugEventListener(processListener);
+ if (newProcess == null)
+ return;
+
+ processListener = new IDebugEventSetListener() {
+ public void handleDebugEvents(DebugEvent[] events) {
+ if (events != null) {
+ int size = events.length;
+ for (int i = 0; i < size; i++) {
+ if (process != null && process.equals(events[i].getSource()) &&
events[i].getKind() == DebugEvent.TERMINATE) {
+ DebugPlugin.getDefault().removeDebugEventListener(this);
+ forceStop();
+ }
+ }
+ }
+ }
+ };
+ DebugPlugin.getDefault().addDebugEventListener(processListener);
+ }
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossServerLaunchConfiguration.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossServerLaunchConfiguration.java 2007-06-22
22:40:40 UTC (rev 2165)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossServerLaunchConfiguration.java 2007-06-22
22:55:20 UTC (rev 2166)
@@ -225,6 +225,7 @@
if( action.equals(START)) {
processes = launchConfiguration(configuration, launch, monitor, mode);
processModel.add(processes, action, configuration);
+ jbossServerBehavior.setProcess(processes[0]);
jbossServerBehavior.serverStarting();
} else if( action.equals(STOP)) {
processes = launchConfiguration(configuration, launch, monitor, mode);
Show replies by date