[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