[jboss-svn-commits] JBL Code SVN: r22514 - in labs/jbossesb/workspace/skeagh/routing/jms/src: test/java/org/jboss/esb/jms and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Sep 8 07:35:53 EDT 2008


Author: beve
Date: 2008-09-08 07:35:53 -0400 (Mon, 08 Sep 2008)
New Revision: 22514

Modified:
   labs/jbossesb/workspace/skeagh/routing/jms/src/main/java/org/jboss/esb/jms/JmsInboundRouter.java
   labs/jbossesb/workspace/skeagh/routing/jms/src/main/java/org/jboss/esb/jms/JmsPayloadExtractor.java
   labs/jbossesb/workspace/skeagh/routing/jms/src/test/java/org/jboss/esb/jms/JmsPayloadExtractorTest.java
Log:
Refactoring.


Modified: labs/jbossesb/workspace/skeagh/routing/jms/src/main/java/org/jboss/esb/jms/JmsInboundRouter.java
===================================================================
--- labs/jbossesb/workspace/skeagh/routing/jms/src/main/java/org/jboss/esb/jms/JmsInboundRouter.java	2008-09-08 11:04:17 UTC (rev 22513)
+++ labs/jbossesb/workspace/skeagh/routing/jms/src/main/java/org/jboss/esb/jms/JmsInboundRouter.java	2008-09-08 11:35:53 UTC (rev 22514)
@@ -65,18 +65,14 @@
     @org.jboss.esb.annotations.Properties
     private final Properties jmsProperties = getDefaultProperties();
     /**
-     * JmsMessageListener that takes care of the JMS connection
+     * JmsMessageListener that takes care of the JMS connection.
      */
     private JmsMessageListener messageListener;
-    /**
-     * Payload extractor for extracting the JMS message content.
-     */
-    private JmsPayloadExtractor payloadExtractor;
 
     /**
      * Sets up the JmsMesssageListener of this class.
      *
-     * @throws JMSException
+     * @throws JMSException if a JMS exception occurs.
      */
     @Initialize
     public final void initialize() throws JMSException
@@ -87,11 +83,10 @@
         messageListener = new JmsMessageListener(destination, jmsProperties, dispatcher);
         messageListener.connect();
 
-        payloadExtractor = new JmsPayloadExtractor();
     }
 
     /**
-     * Closes the underlying JMS connection
+     * Closes the underlying JMS connection.
      */
     @Uninitialize
     public final void uninitialize()
@@ -128,7 +123,12 @@
         return "[dispatcher=" + dispatcher + ", jmsProperties=" + jmsProperties + "]";
     }
 
-    public String getDestination()
+    /**
+     * Gets the jms destination(Topic or Queue).
+     *
+     * @return String   the name of the destination.
+     */
+    public final String getDestination()
     {
         return destination;
     }
@@ -149,27 +149,45 @@
         return defaults;
     }
 
+    /**
+     * JmsMessageListener that listens to incoming messages and uses
+     * the {@link MessageDispatcher} to pass the message along though the ESB.
+     *
+     * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+     *
+     */
     private class JmsMessageListener extends AbstractMessageListener
     {
-        private MessageDispatcher dispatcher;
+        /**
+         * The MessageDispather to use.
+         */
+        private final MessageDispatcher dispatcher;
 
-        protected JmsMessageListener(final String destinationName, final Properties jndiProperties)
+        /**
+         * Protected contstructor.
+         *
+         * @param destinationName   the JMS destination name.
+         * @param jndiProperties    the jndi properties to be used for jndi lookups.
+         * @param dispatcher        the {@link MessageDispatcher} to be used.
+         */
+        protected JmsMessageListener(final String destinationName, final Properties jndiProperties, final MessageDispatcher dispatcher)
         {
             super(destinationName, jndiProperties);
-        }
-
-        protected JmsMessageListener(final String destinationName, final Properties jndiProperties, final MessageDispatcher dispatcher)
-        {
-            this(destinationName, jndiProperties);
             this.dispatcher = dispatcher;
         }
 
+        /**
+         * Handles a single JMSMessage, extracts the contents and creates
+         * and populates an ESB Message object instance and dispataches
+         * the ESB Message object instance to the ESB.
+         * @param jmsMessage    the JMS Message object instance
+         */
         public void onMessage(final javax.jms.Message jmsMessage)
         {
-            System.out.println("jmsMessage recieved.....");
+            log.debug("jmsMessage recieved.....");
             try
             {
-                Message esbMessage = payloadExtractor.extractPayload(jmsMessage);
+                Message esbMessage = JmsPayloadExtractor.extractPayload(jmsMessage);
                 dispatcher.dispatch(esbMessage, new InvocationContext());
             }
             catch (RoutingException e)

Modified: labs/jbossesb/workspace/skeagh/routing/jms/src/main/java/org/jboss/esb/jms/JmsPayloadExtractor.java
===================================================================
--- labs/jbossesb/workspace/skeagh/routing/jms/src/main/java/org/jboss/esb/jms/JmsPayloadExtractor.java	2008-09-08 11:04:17 UTC (rev 22513)
+++ labs/jbossesb/workspace/skeagh/routing/jms/src/main/java/org/jboss/esb/jms/JmsPayloadExtractor.java	2008-09-08 11:35:53 UTC (rev 22514)
@@ -41,42 +41,60 @@
  * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
  *
  */
-public class JmsPayloadExtractor
+public final class JmsPayloadExtractor
 {
-    private final Logger log = Logger.getLogger(JmsPayloadExtractor.class);
+    /**
+     * Logger instance.
+     */
+    private static final Logger LOGGER = Logger.getLogger(JmsPayloadExtractor.class);
 
-    public Message extractPayload(final javax.jms.Message t)  throws RoutingException
+    /**
+     * Private constructor.
+     */
+    private JmsPayloadExtractor()
     {
+        throw new AssertionError("Private constructor should not be called. Not even reflectively");
+    }
+
+    /**
+     * Add docs.
+     *
+     * @param jmsMessage        the JMS Message object instance
+     * @return Message          the populated ESB Message object instance.
+     * @throws RoutingException if an error occurs while trying to extract the JMS messages contents.
+     */
+    public static Message extractPayload(final javax.jms.Message jmsMessage)  throws RoutingException
+    {
         final Message esbMessage = new Message();
         try
         {
-            if ( t instanceof TextMessage )
+            if (jmsMessage instanceof TextMessage)
             {
-                final String text = ((TextMessage) t).getText();
-                if ( text == null )
+                final String text = ((TextMessage) jmsMessage).getText();
+                if (text == null)
                 {
-                    throw new RoutingException("Content in JMSMessage [" + t + "] was null");
+                    throw new RoutingException("Content in JMSMessage [" + jmsMessage + "] was null");
                 }
                 esbMessage.setPayload(text);
             }
-            else if ( t instanceof ObjectMessage )
+            else if (jmsMessage instanceof ObjectMessage)
             {
-                final Serializable object = ((ObjectMessage)t).getObject();
-                if ( object == null )
+                final Serializable object = ((ObjectMessage)jmsMessage).getObject();
+                if (object == null)
                 {
-                    throw new RoutingException("Content in JMSMessage [" + t + "] was null");
+                    throw new RoutingException("Content in JMSMessage [" + jmsMessage + "] was null");
                 }
                 esbMessage.setPayload(object);
             }
-            else if ( t instanceof BytesMessage )
+            else if (jmsMessage instanceof BytesMessage)
             {
-                BytesMessage bytesMessage = (BytesMessage)t;
+                BytesMessage bytesMessage = (BytesMessage)jmsMessage;
                 bytesMessage.reset();
                 int msgLength = 0;
-                int BUF_SIZE = 50000;
-                byte[] data = new byte[BUF_SIZE];
+                final int buffSize = 50000;
+                byte[] data = new byte[buffSize];
                 //  calculate the nr of bytes in the message
-                while(true)
+                while (true)
                 {
                     int len = bytesMessage.readBytes(data);
                     if (len > 0)
@@ -88,12 +106,12 @@
                         break;
                     }
                 }
-                if ( msgLength == 0 )
+                if (msgLength == 0)
                 {
-                    throw new RoutingException("Content in JMSMessage [" + t + "] was of zero length");
+                    throw new RoutingException("Content in JMSMessage [" + jmsMessage + "] was of zero length");
                 }
                 byte[] content = new byte[msgLength];
-                if (msgLength <= BUF_SIZE)
+                if (msgLength <= buffSize)
                 {
                     System.arraycopy(data, 0, content, 0, msgLength);
                 }
@@ -104,40 +122,38 @@
                 }
                 esbMessage.setPayload(content);
             }
-            else if ( t instanceof MapMessage )
+            else if (jmsMessage instanceof MapMessage)
             {
-                final MapMessage map = (MapMessage)t;
+                final MapMessage map = (MapMessage)jmsMessage;
                 final Map newMap = new HashMap();
 
                 Enumeration mapNames = map.getMapNames();
-                while(mapNames.hasMoreElements())
+                while (mapNames.hasMoreElements())
                 {
                     final String key = (String)mapNames.nextElement();
                     final Object value = map.getObject(key);
                     newMap.put(key, value);
                 }
-                if ( newMap.isEmpty() )
+                if (newMap.isEmpty())
                 {
-                    throw new RoutingException("Map in JMSMessage [" + t + "] contained zero key value pairs.");
+                    throw new RoutingException("Map in JMSMessage [" + jmsMessage + "] contained zero key value pairs.");
                 }
                 esbMessage.setPayload(newMap);
             }
-            else if ( t instanceof StreamMessage )
+            else if (jmsMessage instanceof StreamMessage)
             {
-                log.info("StreamMessage");
+                LOGGER.info("StreamMessage");
             }
             else
             {
-                throw new RoutingException("Could not determine the type of JMSMessage:" + t);
+                throw new RoutingException("Could not determine the type of JMSMessage:" + jmsMessage);
             }
         }
-        catch ( final JMSException e )
+        catch (final JMSException e)
         {
-            throw new RoutingException("Could not extract content from JMSMessage: " + t, e);
+            throw new RoutingException("Could not extract content from JMSMessage: " + jmsMessage, e);
         }
-
         return esbMessage;
     }
 
-
 }

Modified: labs/jbossesb/workspace/skeagh/routing/jms/src/test/java/org/jboss/esb/jms/JmsPayloadExtractorTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/routing/jms/src/test/java/org/jboss/esb/jms/JmsPayloadExtractorTest.java	2008-09-08 11:04:17 UTC (rev 22513)
+++ labs/jbossesb/workspace/skeagh/routing/jms/src/test/java/org/jboss/esb/jms/JmsPayloadExtractorTest.java	2008-09-08 11:35:53 UTC (rev 22514)
@@ -30,7 +30,6 @@
 import org.jboss.esb.message.Message;
 import org.jboss.esb.routing.RoutingException;
 import org.junit.Test;
-
 import com.mockrunner.mock.jms.MockBytesMessage;
 import com.mockrunner.mock.jms.MockMapMessage;
 import com.mockrunner.mock.jms.MockObjectMessage;
@@ -44,15 +43,13 @@
  */
 public class JmsPayloadExtractorTest
 {
-    private final JmsPayloadExtractor extractor = new JmsPayloadExtractor();
-
     @Test
     public void extractContentTextMessage() throws RoutingException, JMSException
     {
         final String content = "testing text message content";
         final MockTextMessage textMessage = new MockTextMessage();
         textMessage.setText(content);
-        final Message esbMessage = extractor.extractPayload(textMessage);
+        final Message esbMessage = JmsPayloadExtractor.extractPayload(textMessage);
         assertEquals( content, esbMessage.getPayload());
     }
 
@@ -61,7 +58,7 @@
     {
         final MockTextMessage textMessage = new MockTextMessage();
         textMessage.setText(null);
-        extractor.extractPayload(textMessage);
+        JmsPayloadExtractor.extractPayload(textMessage);
     }
 
     @Test
@@ -70,7 +67,7 @@
         final String content = "testing text message content";
         final MockObjectMessage objectMessage = new MockObjectMessage();
         objectMessage.setObject(content);
-        final Message esbMessage = extractor.extractPayload(objectMessage);
+        final Message esbMessage = JmsPayloadExtractor.extractPayload(objectMessage);
         assertEquals( content, esbMessage.getPayload());
     }
 
@@ -79,7 +76,7 @@
     {
         final MockObjectMessage objectMessage = new MockObjectMessage();
         objectMessage.setObject(null);
-        extractor.extractPayload(objectMessage);
+        JmsPayloadExtractor.extractPayload(objectMessage);
     }
 
     @Test
@@ -88,7 +85,7 @@
         final byte[] content = "testing text message content".getBytes();
         final MockBytesMessage bytesMessage = new MockBytesMessage();
         bytesMessage.writeObject(content);
-        final Message esbMessage = extractor.extractPayload(bytesMessage);
+        final Message esbMessage = JmsPayloadExtractor.extractPayload(bytesMessage);
         Object payload = esbMessage.getPayload();
         assertTrue(payload instanceof byte[]);
         assertEquals( new String(content), new String((byte[])esbMessage.getPayload()));
@@ -98,7 +95,7 @@
     public void extractContentBytesMessageNullPayload() throws RoutingException, JMSException
     {
         final MockBytesMessage bytesMessage = new MockBytesMessage();
-        extractor.extractPayload(bytesMessage);
+        JmsPayloadExtractor.extractPayload(bytesMessage);
     }
 
     @Test
@@ -107,7 +104,7 @@
         final MockMapMessage mapMessage = new MockMapMessage();
         mapMessage.setObject("key1", "value1");
         mapMessage.setObject("key2", "value2");
-        final Message esbMessage = extractor.extractPayload(mapMessage);
+        final Message esbMessage = JmsPayloadExtractor.extractPayload(mapMessage);
         Object payload = esbMessage.getPayload();
         assertTrue(payload instanceof Map);
 
@@ -122,7 +119,7 @@
     public void extractContentMapMessageEmptyMap() throws RoutingException, JMSException
     {
         final MockMapMessage mapMessage = new MockMapMessage();
-        extractor.extractPayload(mapMessage);
+        JmsPayloadExtractor.extractPayload(mapMessage);
     }
 
 }




More information about the jboss-svn-commits mailing list