[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server ...
Robert Stryker
rawblem at gmail.com
Wed Nov 15 17:26:55 EST 2006
User: rawb
Date: 06/11/15 17:26:55
Modified: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server
JBossServerBehavior.java
Log:
Rebuilt the event log API and fixed some UI bugs preventing an efficient refresh of the tree.
Revision Changes Path
1.14 +21 -106 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossServerBehavior.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: JBossServerBehavior.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/JBossServerBehavior.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- JBossServerBehavior.java 14 Nov 2006 06:22:55 -0000 1.13
+++ JBossServerBehavior.java 15 Nov 2006 22:26:55 -0000 1.14
@@ -21,8 +21,6 @@
*/
package org.jboss.ide.eclipse.as.core.server;
-import java.util.Date;
-
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -34,21 +32,23 @@
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.internal.Module;
import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.core.internal.ServerType;
import org.eclipse.wst.server.core.model.IModuleResourceDelta;
import org.eclipse.wst.server.core.model.ModuleFactoryDelegate;
import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
import org.jboss.ide.eclipse.as.core.JBossServerCore;
+import org.jboss.ide.eclipse.as.core.model.EventLogModel;
import org.jboss.ide.eclipse.as.core.model.ServerProcessModel;
+import org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogTreeItem;
import org.jboss.ide.eclipse.as.core.module.PathModuleFactory;
import org.jboss.ide.eclipse.as.core.publishers.IJBossServerPublisher;
import org.jboss.ide.eclipse.as.core.publishers.JstPublisher;
import org.jboss.ide.eclipse.as.core.publishers.NullPublisher;
import org.jboss.ide.eclipse.as.core.publishers.PathPublisher;
-import org.jboss.ide.eclipse.as.core.runtime.IServerStatePoller;
-import org.jboss.ide.eclipse.as.core.runtime.server.IServerPollerTimeoutListener;
-import org.jboss.ide.eclipse.as.core.runtime.server.internal.TwiddlePoller;
-import org.jboss.ide.eclipse.as.core.server.attributes.IServerPollingAttributes;
+import org.jboss.ide.eclipse.as.core.runtime.server.IServerStatePoller;
+import org.jboss.ide.eclipse.as.core.runtime.server.polling.PollThread;
+import org.jboss.ide.eclipse.as.core.runtime.server.polling.TwiddlePoller;
+import org.jboss.ide.eclipse.as.core.runtime.server.polling.TwiddlePoller.TwiddlePollerEvent;
+import org.jboss.ide.eclipse.as.core.util.SimpleTreeItem;
public class JBossServerBehavior extends ServerBehaviourDelegate {
public static final String LAUNCH_CONFIG_DEFAULT_CLASSPATH = "__JBOSS_SERVER_BEHAVIOR_LAUNCH_CONFIG_DEFAULT_CLASSPATH__";
@@ -101,12 +101,20 @@
try {
ServerProcessModel.getDefault().getModel(getServer().getId()).clearAll();
setServerStopped();
+ EventLogTreeItem tpe = new ForceShutdownEvent();
+ EventLogModel.markChanged(tpe.getEventRoot());
+
} catch( Throwable t ) {
t.printStackTrace();
}
}
-
+ public static final String FORCE_SHUTDOWN_EVENT_KEY = "org.jboss.ide.eclipse.as.core.server.JBossServerBehavior.forceShutdown";
+ public class ForceShutdownEvent extends EventLogTreeItem {
+ public ForceShutdownEvent() {
+ super(EventLogModel.getModel(getServer()).getRoot(), null, FORCE_SHUTDOWN_EVENT_KEY);
+ }
+ }
public void setupLaunchConfiguration(ILaunchConfigurationWorkingCopy workingCopy, IProgressMonitor monitor) throws CoreException {
JBossServerLaunchConfiguration.setupLaunchConfiguration(workingCopy, getServer(), JBossServerLaunchConfiguration.START);
@@ -127,105 +135,12 @@
}
- public class PollThread extends Thread {
- private boolean expectedState;
- private IServerStatePoller poller;
- private boolean abort;
- public PollThread(String name, IServerStatePoller poller, boolean expectedState) {
- super(name);
- this.expectedState = expectedState;
- this.poller = poller;
- this.abort = false;
- }
-
- public void cancel() {
- abort = true;
- }
-
-
- // Getting the timeouts. First from plugin.xml as default, or from user settings.
- public int getTimeout() {
- int timeout;
- JBossServer jbs = ((JBossServer)getServer().loadAdapter(JBossServer.class, null));
- ServerAttributeHelper helper = (ServerAttributeHelper)jbs.getAttributeHelper();
- if( expectedState == IServerStatePoller.SERVER_UP) {
- int def = ((ServerType)getServer().getServerType()).getStartTimeout();
- timeout = helper.getAttribute(IServerPollingAttributes.START_TIMEOUT, def);
- } else {
- int def = ((ServerType)getServer().getServerType()).getStopTimeout();
- timeout = helper.getAttribute(IServerPollingAttributes.STOP_TIMEOUT, def);
- }
- return timeout;
- }
-
-
- public void run() {
- int maxWait = getTimeout();
-
- long startTime = new Date().getTime();
- boolean done = false;
- poller.beginPolling(getServer(), expectedState);
- while( !abort && !done && new Date().getTime() < startTime + maxWait ) {
- try {
- Thread.sleep(100);
- done = poller.isComplete();
- } catch( InterruptedException ie ) { }
- }
- boolean currentState = !expectedState;
- if( abort ) {
- poller.cancel(IServerStatePoller.CANCEL);
- poller.cleanup();
- } else {
-
- if( done ) {
- // the poller has an answer
- currentState = poller.getState();
- poller.cleanup();
- } else {
- // we timed out. get response from preferences
- poller.cancel(IServerStatePoller.TIMEOUT_REACHED);
- currentState = getTimeoutBehavior();
- poller.cleanup();
- fireTimeoutEvent();
- }
-
- if( currentState != expectedState ) {
- // it didnt work... cancel all processes!
- forceStop();
- } else {
- if( currentState == IServerStatePoller.SERVER_UP )
- setServerStarted();
- else
- setServerStopped();
- }
- }
- }
- protected boolean getTimeoutBehavior() {
- // timeout has been reached, so let the user's preferences override
- JBossServer jbs = ((JBossServer)getServer().loadAdapter(JBossServer.class, null));
- ServerAttributeHelper helper = (ServerAttributeHelper)jbs.getAttributeHelper();
-
- boolean behavior = helper.getAttribute(IServerPollingAttributes.TIMEOUT_BEHAVIOR, IServerPollingAttributes.TIMEOUT_IGNORE);
- if( behavior == IServerPollingAttributes.TIMEOUT_ABORT )
- return !expectedState;
-
- return expectedState;
- }
-
- protected void fireTimeoutEvent() {
- IServerPollerTimeoutListener[] listeners =
- JBossServerCore.getDefault().getTimeoutListeners(poller.getClass().getName());
- for( int i = 0; i < listeners.length; i++ ) {
- listeners[i].serverTimedOut(getServer(), expectedState);
- }
- }
- }
protected void pollServer(final boolean expectedState) {
if( this.pollThread != null ) {
pollThread.cancel();
}
- this.pollThread = new PollThread("Server Poller", new TwiddlePoller(), expectedState);
+ this.pollThread = new PollThread("Server Poller", new TwiddlePoller(), expectedState, this);
// this.pollThread = new PollThread("Server Poller", new TimeoutPoller(), expectedState);
pollThread.start();
}
@@ -309,19 +224,19 @@
/*
* Change the state of the server
*/
- private void setServerStarted() {
+ public void setServerStarted() {
setServerState(IServer.STATE_STARTED);
}
- private void setServerStarting() {
+ public void setServerStarting() {
setServerState(IServer.STATE_STARTING);
}
- private void setServerStopped() {
+ public void setServerStopped() {
setServerState(IServer.STATE_STOPPED);
}
- private void setServerStopping() {
+ public void setServerStopping() {
setServerState(IServer.STATE_STOPPING);
}
More information about the jboss-cvs-commits
mailing list