[jboss-cvs] JBossAS SVN: r68616 - in projects/ejb3/trunk/ejb3-socket-inflow: src/main/java/org/jboss/ejb3/resource/adaptor/socket and 5 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 3 23:46:12 EST 2008


Author: ALRubinger
Date: 2008-01-03 23:46:12 -0500 (Thu, 03 Jan 2008)
New Revision: 68616

Added:
   projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/SocketMessage.java
   projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/listener/
   projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/listener/SocketMessageListener.java
   projects/ejb3/trunk/ejb3-socket-inflow/src/main/resources/META-INF/
   projects/ejb3/trunk/ejb3-socket-inflow/src/main/resources/META-INF/ra.xml
Modified:
   projects/ejb3/trunk/ejb3-socket-inflow/pom.xml
   projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/NonBlockingSocketServer.java
   projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/SocketResourceAdaptor.java
   projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/handler/http/CopyHttpRequestToResponseRequestHandler.java
   projects/ejb3/trunk/ejb3-socket-inflow/src/test/java/org/jboss/ejb3/resource/adaptor/socket/test/stress/StressSocketServerTestCase.java
Log:
Development Encapsulating into a RAR

Modified: projects/ejb3/trunk/ejb3-socket-inflow/pom.xml
===================================================================
--- projects/ejb3/trunk/ejb3-socket-inflow/pom.xml	2008-01-03 23:30:20 UTC (rev 68615)
+++ projects/ejb3/trunk/ejb3-socket-inflow/pom.xml	2008-01-04 04:46:12 UTC (rev 68616)
@@ -21,7 +21,7 @@
   <groupId>org.jboss</groupId>
   <artifactId>jboss-ejb3-socket-inflow</artifactId>
   <version>0.0.1-SNAPSHOT</version>
-  <packaging>rar</packaging>
+  <packaging>jar</packaging>
   <name>JBoss EJB 3.0 Socket Inflow</name>
   <description>JBoss EJB 3.0 Socket Inflow Adaptor RAR</description>
   <url>http://labs.jboss.com/jbossejb3/</url>

Modified: projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/NonBlockingSocketServer.java
===================================================================
--- projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/NonBlockingSocketServer.java	2008-01-03 23:30:20 UTC (rev 68615)
+++ projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/NonBlockingSocketServer.java	2008-01-04 04:46:12 UTC (rev 68616)
@@ -118,22 +118,29 @@
     */
    public void start()
    {
-      try
+      // Only Start if not Running
+      if (!this.isRunning())
       {
-         // Bind the Server and Register the MultiPlexor
-         this.bindAndRegisterConnection();
+         try
+         {
+            // Bind the Server and Register the MultiPlexor
+            this.bindAndRegisterConnection();
 
-         // Set as running
-         this.setRunning(true);
+            // Set as running
+            this.setRunning(true);
 
-         // Listen for incoming connections
-         this.listenForIncomingConnections();
+            // Log
+            logger.info("Server at " + this.getBindAddress().toString() + " Started");
 
+            // Listen for incoming connections
+            this.listenForIncomingConnections();
+
+         }
+         catch (IOException ioe)
+         {
+            throw new RuntimeException(ioe);
+         }
       }
-      catch (IOException ioe)
-      {
-         throw new RuntimeException(ioe);
-      }
    }
 
    /**
@@ -141,25 +148,28 @@
     */
    public void shutdown()
    {
+      // Only Shutdown if Running
+      if (this.isRunning())
+      {
+         // Set Flag
+         this.setRunning(false);
 
-      // Set Flag
-      this.setRunning(false);
+         // Shutdown
+         this.getMultiplexor().wakeup();
 
-      // Shutdown
-      this.getMultiplexor().wakeup();
+         // Close Channel
+         try
+         {
+            this.getChannel().close();
+         }
+         // Ignore
+         catch (IOException e)
+         {
+         }
 
-      // Close Channel
-      try
-      {
-         this.getChannel().close();
+         // Log
+         logger.info("Server at " + this.getBindAddress().toString() + " Shutdown");
       }
-      // Ignore
-      catch (IOException e)
-      {
-      }
-
-      // Log
-      logger.info("Server at " + this.getBindAddress().toString() + " shutdown");
    }
 
    // Internal Helper Methods

Added: projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/SocketMessage.java
===================================================================
--- projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/SocketMessage.java	                        (rev 0)
+++ projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/SocketMessage.java	2008-01-04 04:46:12 UTC (rev 68616)
@@ -0,0 +1,37 @@
+package org.jboss.ejb3.resource.adaptor.socket;
+
+import java.net.Socket;
+
+/**
+ * A SocketMessage is an incoming socket-based request from a
+ * client, to be sent to the Listener for processing 
+ * 
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public class SocketMessage
+{
+   // Instance Members
+
+   Socket socket = new Socket();
+
+   // Constructor
+
+   public SocketMessage(Socket socket)
+   {
+      this.setSocket(socket);
+   }
+
+   // Accessors / Mutators
+
+   public Socket getSocket()
+   {
+      return socket;
+   }
+
+   private void setSocket(Socket socket)
+   {
+      this.socket = socket;
+   }
+
+}


Property changes on: projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/SocketMessage.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/SocketResourceAdaptor.java
===================================================================
--- projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/SocketResourceAdaptor.java	2008-01-03 23:30:20 UTC (rev 68615)
+++ projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/SocketResourceAdaptor.java	2008-01-04 04:46:12 UTC (rev 68616)
@@ -40,6 +40,13 @@
 
 public class SocketResourceAdaptor implements ResourceAdapter, Work
 {
+   // Class Members
+
+   /*
+    * Server to handle Socket Requests
+    */
+   private static NonBlockingSocketServer server;
+
    // Instance Members
    /*
     * Bootstrap Context
@@ -47,11 +54,6 @@
    private BootstrapContext ctx;
 
    /*
-    * Server to handle AJAX Requests
-    */
-   private NonBlockingSocketServer server;
-
-   /*
     * ActivationSpec / MessageEndpoint Factories 
     */
    private ConcurrentMap<ActivationSpec, MessageEndpointFactory> activationSpecFactories = new ConcurrentHashMap<ActivationSpec, MessageEndpointFactory>();
@@ -67,16 +69,6 @@
       this.ctx = ctx;
    }
 
-   private NonBlockingSocketServer getServer()
-   {
-      return server;
-   }
-
-   private void setServer(NonBlockingSocketServer server)
-   {
-      this.server = server;
-   }
-
    private Map<ActivationSpec, MessageEndpointFactory> getActivationSpecFactories()
    {
       return activationSpecFactories;
@@ -120,7 +112,8 @@
       try
       {
          //TODO Handler from ActivationConfig properties
-         this.setServer(new NonBlockingSocketServer(CopyHttpRequestToResponseRequestHandler.class.newInstance()));
+         SocketResourceAdaptor.server = new NonBlockingSocketServer(CopyHttpRequestToResponseRequestHandler.class
+               .newInstance());
       }
       catch (InstantiationException e)
       {
@@ -153,12 +146,12 @@
    public void run()
    {
       // Start the Server
-      this.getServer().start();
+      SocketResourceAdaptor.server.start();
    }
 
    public void release()
    {
       // Shutdown the Server
-      this.getServer().shutdown();
+      SocketResourceAdaptor.server.shutdown();
    }
 }
\ No newline at end of file

Modified: projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/handler/http/CopyHttpRequestToResponseRequestHandler.java
===================================================================
--- projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/handler/http/CopyHttpRequestToResponseRequestHandler.java	2008-01-03 23:30:20 UTC (rev 68615)
+++ projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/handler/http/CopyHttpRequestToResponseRequestHandler.java	2008-01-04 04:46:12 UTC (rev 68616)
@@ -80,6 +80,9 @@
                break;
             }
          }
+         
+         // Flush Outstream
+         outStream.flush();
       }
       catch (IOException ioe)
       {

Added: projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/listener/SocketMessageListener.java
===================================================================
--- projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/listener/SocketMessageListener.java	                        (rev 0)
+++ projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/listener/SocketMessageListener.java	2008-01-04 04:46:12 UTC (rev 68616)
@@ -0,0 +1,19 @@
+package org.jboss.ejb3.resource.adaptor.socket.listener;
+
+import org.jboss.ejb3.resource.adaptor.socket.SocketMessage;
+
+/**
+ * Listener for new Socket Messages
+ * 
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+public interface SocketMessageListener
+{
+   /**
+    * Event fired when a new message is received
+    * 
+    * @param message
+    */
+   public void onMessage(SocketMessage message);
+}


Property changes on: projects/ejb3/trunk/ejb3-socket-inflow/src/main/java/org/jboss/ejb3/resource/adaptor/socket/listener/SocketMessageListener.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: projects/ejb3/trunk/ejb3-socket-inflow/src/main/resources/META-INF/ra.xml
===================================================================
--- projects/ejb3/trunk/ejb3-socket-inflow/src/main/resources/META-INF/ra.xml	                        (rev 0)
+++ projects/ejb3/trunk/ejb3-socket-inflow/src/main/resources/META-INF/ra.xml	2008-01-04 04:46:12 UTC (rev 68616)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- $Id: ra.xml 38316 2005-11-21 17:30:31Z ALRubinger $ -->
+
+<connector xmlns="http://java.sun.com/xml/ns/j2ee"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+  http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
+  version="1.5"
+>
+
+  <display-name>JBoss EJB3 Socket Inflow Adaptor</display-name>
+  <vendor-name>JBoss, a Division of Red Hat</vendor-name>
+  <eis-type>Socket Requests</eis-type>
+
+  <resourceadapter-version>5.0</resourceadapter-version>
+
+  <license>
+    <description>
+      JBoss, Home of Professional Open Source Copyright 2008, JBoss
+      Inc., and individual contributors as indicated by the @authors
+      tag. See the copyright.txt in the distribution for a full listing
+      of individual contributors.
+
+      This is free software; you can redistribute it and/or modify it
+      under the terms of the GNU Lesser General Public License as
+      published by the Free Software Foundation; either version 2.1 of
+      the License, or (at your option) any later version.
+
+      This software is distributed in the hope that it will be useful,
+      but WITHOUT ANY WARRANTY; without even the implied warranty of
+      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+      Lesser General Public License for more details.
+
+      You should have received a copy of the GNU Lesser General Public
+      License along with this software; if not, write to the Free
+      Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+      02110-1301 USA, or see the FSF site: http://www.fsf.org.
+    </description>
+    <license-required>true</license-required>
+  </license>
+
+  <resourceadapter>
+
+    <resourceadapter-class>
+      org.jboss.ejb3.resource.adaptor.socket.SocketResourceAdaptor
+    </resourceadapter-class>
+
+    <!-- Default Configuration Properties 
+    <config-property>
+      <config-property-name>Port</config-property-name>
+      <config-property-type>java.lang.Integer</config-property-type>
+      <config-property-value>9001</config-property-value>
+    </config-property>
+    <config-property>
+      <config-property-name>Host</config-property-name>
+      <config-property-type>java.lang.String</config-property-type>
+      <config-property-value>localhost</config-property-value>
+    </config-property>
+    <config-property>
+      <config-property-name>HandlerClassName</config-property-name>
+      <config-property-type>java.lang.String</config-property-type>
+      <config-property-value>
+        org.jboss.ejb3.resource.adaptor.socket.handler.SocketBasedRequestHandler
+      </config-property-value>
+    </config-property> -->
+
+    <!-- The Inbound Resource Adaptor -->
+
+    <inbound-resourceadapter>
+      <messageadapter>
+        <messagelistener>
+          <messagelistener-type>
+            org.jboss.ejb3.resource.adaptor.socket.listener.SocketMessageListener
+          </messagelistener-type>
+          <activationspec>
+            <activationspec-class>
+              org.jboss.ejb3.resource.adaptor.socket.inflow.SocketActivationSpec
+            </activationspec-class>
+            <required-config-property>
+              <config-property-name>
+                HandlerClassName
+              </config-property-name>
+            </required-config-property>
+            <required-config-property>
+              <config-property-name>
+                Host
+              </config-property-name>
+            </required-config-property>
+            <required-config-property>
+              <config-property-name>
+                Port
+              </config-property-name>
+            </required-config-property>
+          </activationspec>
+        </messagelistener>
+      </messageadapter>
+    </inbound-resourceadapter>
+  </resourceadapter>
+</connector>
\ No newline at end of file


Property changes on: projects/ejb3/trunk/ejb3-socket-inflow/src/main/resources/META-INF/ra.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: projects/ejb3/trunk/ejb3-socket-inflow/src/test/java/org/jboss/ejb3/resource/adaptor/socket/test/stress/StressSocketServerTestCase.java
===================================================================
--- projects/ejb3/trunk/ejb3-socket-inflow/src/test/java/org/jboss/ejb3/resource/adaptor/socket/test/stress/StressSocketServerTestCase.java	2008-01-03 23:30:20 UTC (rev 68615)
+++ projects/ejb3/trunk/ejb3-socket-inflow/src/test/java/org/jboss/ejb3/resource/adaptor/socket/test/stress/StressSocketServerTestCase.java	2008-01-04 04:46:12 UTC (rev 68616)
@@ -96,18 +96,22 @@
    {
       // Call super implementation
       super.setUp();
+
       // Create a new Server
       if (this.serverThread == null)
       {
          this.serverThread = new ServerThread();
       }
+
       // Start the ServerThread
       this.serverThread.start();
+
       // Block until Server is running
       while (this.serverThread.getServer() == null || !this.serverThread.getServer().isRunning())
       {
          Thread.sleep(10);
       }
+
       // Log Started
       System.out.println("Server Started");
    }
@@ -246,14 +250,14 @@
 
       // Functional Methods
       public void shutdown()
-      {
+      {         
          // Delegate to Server to shutdown
          this.getServer().shutdown();
 
          // Block until shutdown
          while (this.getServer().isRunning())
          {
-
+            
          }
 
          // Stop Thread




More information about the jboss-cvs-commits mailing list