Author: snjeza
Date: 2009-01-10 13:10:44 -0500 (Sat, 10 Jan 2009)
New Revision: 12973
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/UnitedServerListenerManager.java
Log:
JBIDE-3502 org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager@e94c62
exception using tomcat and JBossAS at the same time
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/UnitedServerListenerManager.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/UnitedServerListenerManager.java 2009-01-10
16:44:02 UTC (rev 12972)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/UnitedServerListenerManager.java 2009-01-10
18:10:44 UTC (rev 12973)
@@ -25,7 +25,9 @@
import java.util.Iterator;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.wst.server.core.IPublishListener;
+import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.IServerLifecycleListener;
import org.eclipse.wst.server.core.IServerListener;
@@ -57,28 +59,55 @@
ServerCore.addServerLifecycleListener(this);
IServer[] allServers = ServerCore.getServers();
for( int i = 0; i < allServers.length; i++ ) {
- allServers[i].addServerListener(this);
- allServers[i].addPublishListener(this);
+ if (isJBossServer(allServers[i])) {
+ allServers[i].addServerListener(this);
+ allServers[i].addPublishListener(this);
+ }
}
}
+ private boolean isJBossServer(IServer server) {
+ if (server == null) {
+ return false;
+ }
+ IRuntime rt = server.getRuntime();
+ if (rt == null) {
+ return false;
+ }
+ IJBossServerRuntime jbsrt =
(IJBossServerRuntime)rt.loadAdapter(IJBossServerRuntime.class, new
NullProgressMonitor());
+ if (jbsrt == null) {
+ return false;
+ }
+ return true;
+ }
+
+
public void addListener(UnitedServerListener listener) {
if( !list.contains(listener)) {
list.add(listener);
IServer[] allServers = ServerCore.getServers();
- for( int i = 0; i < allServers.length; i++ )
- listener.init(allServers[i]);
+ for( int i = 0; i < allServers.length; i++ ) {
+ if (isJBossServer(allServers[i])) {
+ listener.init(allServers[i]);
+ }
+ }
}
}
public void removeListener(UnitedServerListener listener) {
list.remove(listener);
IServer[] allServers = ServerCore.getServers();
- for( int i = 0; i < allServers.length; i++ )
- listener.cleanUp(allServers[i]);
+ for( int i = 0; i < allServers.length; i++ ) {
+ if (isJBossServer(allServers[i])) {
+ listener.cleanUp(allServers[i]);
+ }
+ }
}
public void serverAdded(IServer server) {
+ if (!isJBossServer(server)) {
+ return;
+ }
server.addServerListener(this);
server.addPublishListener(this);
for( Iterator<UnitedServerListener> i = list.iterator(); i.hasNext(); ) {
@@ -86,11 +115,17 @@
}
}
public void serverChanged(IServer server) {
+ if (!isJBossServer(server)) {
+ return;
+ }
for( Iterator<UnitedServerListener> i = list.iterator(); i.hasNext(); ) {
i.next().serverChanged(server);
}
}
public void serverRemoved(IServer server) {
+ if (!isJBossServer(server)) {
+ return;
+ }
server.removeServerListener(this);
server.removePublishListener(this);
for( Iterator<UnitedServerListener> i = list.iterator(); i.hasNext(); ) {
@@ -99,17 +134,27 @@
}
public void serverChanged(ServerEvent event) {
+ IServer server = event.getServer();
+ if (!isJBossServer(server)) {
+ return;
+ }
for( Iterator<UnitedServerListener> i = list.iterator(); i.hasNext(); ) {
i.next().serverChanged(event);
}
}
public void publishStarted(IServer server) {
+ if (!isJBossServer(server)) {
+ return;
+ }
for( Iterator<UnitedServerListener> i = list.iterator(); i.hasNext(); )
i.next().publishStarted(server);
}
public void publishFinished(IServer server, IStatus status) {
+ if (!isJBossServer(server)) {
+ return;
+ }
for( Iterator<UnitedServerListener> i = list.iterator(); i.hasNext(); )
i.next().publishFinished(server, status);
}
Show replies by date