[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