Author: rob.stryker(a)jboss.com
Date: 2010-09-02 05:04:29 -0400 (Thu, 02 Sep 2010)
New Revision: 24638
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/polling/WebPortPoller.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml
Log:
JBIDE-6973 - http poller added! :D
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/polling/WebPortPoller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/polling/WebPortPoller.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/polling/WebPortPoller.java 2010-09-02
09:04:29 UTC (rev 24638)
@@ -0,0 +1,103 @@
+package org.jboss.ide.eclipse.as.core.extensions.polling;
+
+import java.io.FileNotFoundException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.core.server.IServerStatePoller;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.core.server.internal.PollThread;
+import org.jboss.ide.eclipse.as.core.server.internal.ServerStatePollerType;
+import org.jboss.ide.eclipse.as.core.util.ServerConverter;
+
+public class WebPortPoller implements IServerStatePoller {
+
+ private IServer server;
+ private ServerStatePollerType type;
+ private boolean canceled, done;
+ private boolean state;
+
+
+ public void beginPolling(IServer server, boolean expectedState,
+ PollThread pt) {
+ this.server = server;
+ canceled = done = false;
+ state = SERVER_DOWN;
+ launchThread();
+ }
+
+ protected void launchThread() {
+ Thread t = new Thread(new Runnable(){
+ public void run() {
+ pollerRun();
+ }
+ }, "Web Poller"); //$NON-NLS-1$
+ t.start();
+ }
+
+ public void pollerRun() {
+ done = false;
+ String url = "http://"+getServer().getHost(); //$NON-NLS-1$
+ JBossServer jbs = ServerConverter.getJBossServer(server);
+ int port = jbs.getJBossWebPort();
+ url += ":" + port; //$NON-NLS-1$
+
+ while(!canceled && !done) {
+ try {
+ URL pingUrl = new URL(url);
+ URLConnection conn = pingUrl.openConnection();
+ ((HttpURLConnection)conn).getResponseCode();
+ done = true;
+ state = SERVER_UP;
+ } catch( FileNotFoundException fnfe ) {
+ done = true;
+ state = SERVER_UP;
+ } catch( Exception e) {
+ }
+ }
+ }
+
+ public ServerStatePollerType getPollerType() {
+ return type;
+ }
+
+ public void setPollerType(ServerStatePollerType type) {
+ this.type = type;
+ }
+
+ public IServer getServer() {
+ return server;
+ }
+
+ public boolean isComplete() throws PollingException, RequiresInfoException {
+ return done;
+ }
+
+ public boolean getState() throws PollingException, RequiresInfoException {
+ return state;
+ }
+
+ public void cleanup() {
+ }
+
+ public List<String> getRequiredProperties() {
+ return new ArrayList<String>();
+ }
+
+ public void failureHandled(Properties properties) {
+ }
+
+ public void cancel(int type) {
+ canceled = true;
+ }
+
+ public int getTimeoutBehavior() {
+ return TIMEOUT_BEHAVIOR_FAIL;
+ }
+
+}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml 2010-09-02 05:40:58 UTC (rev
24637)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml 2010-09-02 09:04:29 UTC (rev
24638)
@@ -590,7 +590,7 @@
id="org.jboss.ide.eclipse.as.core.runtime.server.JMXPoller"
name="JMX Poller"
supportsStartup="true"
- supportsShutdown="false"/>
+ supportsShutdown="true"/>
<serverPoller
class="org.jboss.ide.eclipse.as.core.extensions.polling.ProcessTerminatedPoller"
id="org.jboss.ide.eclipse.as.core.runtime.server.processTerminatedPoller"
@@ -598,6 +598,13 @@
supportsShutdown="true"
supportsStartup="false">
</serverPoller>
+ <serverPoller
+
class="org.jboss.ide.eclipse.as.core.extensions.polling.WebPortPoller"
+ id="org.jboss.ide.eclipse.as.core.runtime.server.WebPoller"
+ name="Web Port Poller"
+ supportsShutdown="true"
+ supportsStartup="true">
+ </serverPoller>
</extension>
Show replies by date