You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2007/03/22 14:13:01 UTC

svn commit: r521252 - in /activemq/camel/trunk: camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java

Author: jstrachan
Date: Thu Mar 22 06:12:59 2007
New Revision: 521252

URL: http://svn.apache.org/viewvc?view=rev&rev=521252
Log:
minor refactor to make it easier to create lazy-initialisation body messages

Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java
    activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java?view=diff&rev=521252&r1=521251&r2=521252
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java Thu Mar 22 06:12:59 2007
@@ -34,6 +34,9 @@
     private Object body;
 
     public Object getBody() {
+        if (body == null) {
+            body = createBody();
+        }
         return body;
     }
 
@@ -83,4 +86,13 @@
      */
     public abstract Message newInstance();
 
+
+    /**
+     * A factory method to allow a provider to lazily create the message body for inbound messages from other sources
+     *
+     * @return the value of the message body or null if there is no value available
+     */
+    protected Object createBody() {
+        return null;
+    }
 }

Modified: activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java?view=diff&rev=521252&r1=521251&r2=521252
==============================================================================
--- activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java (original)
+++ activemq/camel/trunk/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessage.java Thu Mar 22 06:12:59 2007
@@ -43,16 +43,6 @@
     }
 
     @Override
-    public Object getBody() {
-        Object answer = super.getBody();
-        if (answer == null && jmsMessage != null) {
-            answer = getExchange().getBinding().extractBodyFromJms(getExchange(), jmsMessage);
-            setBody(answer);
-        }
-        return answer;
-    }
-
-    @Override
     public JmsExchange getExchange() {
         return (JmsExchange) super.getExchange();
     }
@@ -130,6 +120,14 @@
     @Override
     public JmsMessage newInstance() {
         return new JmsMessage();
+    }
+
+    @Override
+    protected Object createBody() {
+        if (jmsMessage != null) {
+            return  getExchange().getBinding().extractBodyFromJms(getExchange(), jmsMessage);
+        }
+        return null;
     }
 }