You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2006/06/22 03:51:47 UTC

svn commit: r416195 - in /geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean: ShellServerDaemonGBean.java ShellServerGBean.java

Author: jdillon
Date: Wed Jun 21 18:51:46 2006
New Revision: 416195

URL: http://svn.apache.org/viewvc?rev=416195&view=rev
Log:
Adding basic gbean impl

Added:
    geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerDaemonGBean.java   (contents, props changed)
      - copied, changed from r416192, geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerGBean.java
Removed:
    geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerGBean.java

Copied: geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerDaemonGBean.java (from r416192, geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerGBean.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerDaemonGBean.java?p2=geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerDaemonGBean.java&p1=geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerGBean.java&r1=416192&r2=416195&rev=416195&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerGBean.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerDaemonGBean.java Wed Jun 21 18:51:46 2006
@@ -20,39 +20,92 @@
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
 
+import org.apache.geronimo.gshell.server.SocketServerDaemon;
+import org.apache.geronimo.gshell.server.SocketServerDaemon.SocketHandler;
+import org.apache.geronimo.gshell.server.ShellServer;
+
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.logging.Log;
 
+import java.net.Socket;
+
 /**
- * Shell server GBean.
+ * Shell server daemon GBean.
  *
  * @version $Id$
  */
-public class ShellServerGBean
+public class ShellServerDaemonGBean
     implements GBeanLifecycle
 {
-    private static final Log log = LogFactory.getLog(ShellServerGBean.class);
+    private static final Log log = LogFactory.getLog(ShellServerDaemonGBean.class);
+
+    private SocketServerDaemon daemon;
+
+    //
+    // Attributes
+    //
+
+    private int port = 5057;
+
+    public void setPort(final int port) {
+        this.port = port;
+    }
+
+    public int getPort() {
+        return port;
+    }
 
     //
     // GBeanLifecycle
     //
 
     public void doStart() throws Exception {
-        //
-        // TODO:
-        //
+        if (daemon != null) {
+            log.warn("Already started; ignoring start request");
+            return;
+        }
+
+        log.info("Starting");
+
+        SocketHandler handler = new SocketHandler() {
+            ShellServer server = new ShellServer();
+
+            public void handle(final Socket socket) throws Exception {
+                assert socket != null;
+
+                server.service(socket);
+            }
+        };
+
+        daemon = new SocketServerDaemon(getPort(), handler);
+        daemon.start();
+
+        log.info("Started");
     }
 
     public void doStop() throws Exception {
-        //
-        // TODO:
-        //
+        if (daemon == null) {
+            log.warn("Not started; ignoring stop request");
+            return;
+        }
+
+        log.info("Stopping");
+
+        daemon.stop();
+        daemon = null;
+
+        log.info("Stopped");
     }
 
     public void doFail() {
-        //
-        // TODO:
-        //
+        log.warn("Service failed; stopping");
+
+        try {
+            doStop();
+        }
+        catch (Exception e) {
+            log.warn("Stop after failure failed; ignorning", e);
+        }
     }
 
     //
@@ -62,7 +115,9 @@
     public static final GBeanInfo GBEAN_INFO;
 
     static {
-        GBeanInfoBuilder infoFactory = new GBeanInfoBuilder("ShellServerGBean", ShellServerGBean.class);
+        GBeanInfoBuilder infoFactory = new GBeanInfoBuilder(
+            "Shell Server Daemon",
+            ShellServerDaemonGBean.class);
 
         GBEAN_INFO = infoFactory.getBeanInfo();
     }

Propchange: geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerDaemonGBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerDaemonGBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/sandbox/gshell/trunk/gshell-server/gshell-server-gbean/src/main/java/org/apache/geronimo/gshell/server/gbean/ShellServerDaemonGBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain