Author: veithen
Date: Fri Nov  7 06:36:19 2008
New Revision: 712137

URL: http://svn.apache.org/viewvc?rev=712137&view=rev
Log:
JMS transport: eliminated some duplicate code and added a review comment.

Modified:
    
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java
    
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java
    
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java

Modified: 
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java?rev=712137&r1=712136&r2=712137&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java
 (original)
+++ 
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSMessageReceiver.java
 Fri Nov  7 06:36:19 2008
@@ -101,13 +101,7 @@
 
         // update transport level metrics
         try {
-            if (message instanceof BytesMessage) {
-                
metrics.incrementBytesReceived((JMSUtils.getBodyLength((BytesMessage) 
message)));
-            } else if (message instanceof TextMessage) {
-                metrics.incrementBytesReceived(((TextMessage) 
message).getText().getBytes().length);
-            } else {
-                handleException("Unsupported JMS message type : " + 
message.getClass().getName());
-            }
+            metrics.incrementBytesReceived(JMSUtils.getMessageSize(message));
         } catch (JMSException e) {
             log.warn("Error reading JMS message size to update transport 
metrics", e);
         }

Modified: 
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java?rev=712137&r1=712136&r2=712137&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java
 (original)
+++ 
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java
 Fri Nov  7 06:36:19 2008
@@ -241,15 +241,7 @@
 
                     metrics.incrementMessagesSent();
                     try {
-                        if (message instanceof BytesMessage) {
-                            
metrics.incrementBytesSent(JMSUtils.getBodyLength((BytesMessage) message));
-                        } else if (message instanceof TextMessage) {
-                            metrics.incrementBytesSent((
-                                (TextMessage) 
message).getText().getBytes().length);
-                        } else {
-                            handleException("Unsupported JMS message type : " +
-                                message.getClass().getName());
-                        }
+                        
metrics.incrementBytesSent(JMSUtils.getMessageSize(message));
                     } catch (JMSException e) {
                         log.warn("Error reading JMS message size to update 
transport metrics", e);
                     }
@@ -335,15 +327,7 @@
                 // update transport level metrics
                 metrics.incrementMessagesReceived();                
                 try {
-                    if (reply instanceof BytesMessage) {
-                        
metrics.incrementBytesReceived(JMSUtils.getBodyLength((BytesMessage) reply));
-                    } else if (reply instanceof TextMessage) {
-                        metrics.incrementBytesReceived((
-                            (TextMessage) reply).getText().getBytes().length);
-                    } else {
-                        handleException("Unsupported JMS message type : " +
-                            reply.getClass().getName());
-                    }
+                    
metrics.incrementBytesReceived(JMSUtils.getMessageSize(reply));
                 } catch (JMSException e) {
                     log.warn("Error reading JMS message size to update 
transport metrics", e);
                 }

Modified: 
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java?rev=712137&r1=712136&r2=712137&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
 (original)
+++ 
webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
 Fri Nov  7 06:36:19 2008
@@ -745,6 +745,20 @@
         return length;
     }
     
+    public static long getMessageSize(Message message) throws JMSException {
+        if (message instanceof BytesMessage) {
+            return JMSUtils.getBodyLength((BytesMessage) message);
+        } else if (message instanceof TextMessage) {
+            // TODO: Converting the whole message to a byte array is too much 
overhead just to determine the message size.
+            //       Anyway, the result is not accurate since we don't know 
what encoding the JMS provider uses.
+            return ((TextMessage) message).getText().getBytes().length;
+        } else {
+            log.warn("Can't determine size of JMS message; unsupported message 
type : "
+                    + message.getClass().getName());
+            return 0;
+        }
+    }
+    
     public static <T> T lookup(Context context, Class<T> clazz, String name)
         throws NamingException {
         


Reply via email to