You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ve...@apache.org on 2008/12/23 19:54:13 UTC

svn commit: r729062 - in /webservices/commons/trunk/modules/transport/modules: jms/src/main/java/org/apache/axis2/transport/jms/ mail/src/main/java/org/apache/axis2/transport/mail/ testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/ ...

Author: veithen
Date: Tue Dec 23 10:54:13 2008
New Revision: 729062

URL: http://svn.apache.org/viewvc?rev=729062&view=rev
Log:
Updated existing transport to support message level metrics collection (at least messages sent and bytes sent).

Added:
    webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/util/
    webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/util/MessageLevelMetricsCollectorImpl.java   (with props)
Modified:
    webservices/commons/trunk/modules/transport/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSSender.java
    webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java
    webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClient.java

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=729062&r1=729061&r2=729062&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 Tue Dec 23 10:54:13 2008
@@ -183,7 +183,7 @@
 
         try {
             messageSender.send(message, msgCtx);
-            metrics.incrementMessagesSent();
+            metrics.incrementMessagesSent(msgCtx);
 
         } catch (AxisJMSException e) {
             metrics.incrementFaultsSending();
@@ -191,7 +191,7 @@
         }
 
         try {
-            metrics.incrementBytesSent(JMSUtils.getMessageSize(message));
+            metrics.incrementBytesSent(msgCtx, 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/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java?rev=729062&r1=729061&r2=729062&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java (original)
+++ webservices/commons/trunk/modules/transport/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportSender.java Tue Dec 23 10:54:13 2008
@@ -447,10 +447,10 @@
             Transport.send(message);
 
             // update metrics
-            metrics.incrementMessagesSent();
+            metrics.incrementMessagesSent(msgContext);
             long bytesSent = message.getBytesSent();
             if (bytesSent != -1) {
-                metrics.incrementBytesSent(bytesSent);
+                metrics.incrementBytesSent(msgContext, bytesSent);
             }
 
         } catch (MessagingException e) {

Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClient.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClient.java?rev=729062&r1=729061&r2=729062&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClient.java (original)
+++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClient.java Tue Dec 23 10:54:13 2008
@@ -31,8 +31,10 @@
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.transport.TransportSender;
+import org.apache.axis2.transport.base.BaseConstants;
 import org.apache.axis2.transport.base.ManagementSupport;
 import org.apache.axis2.transport.testkit.MessageExchangeValidator;
+import org.apache.axis2.transport.testkit.axis2.util.MessageLevelMetricsCollectorImpl;
 import org.apache.axis2.transport.testkit.channel.Channel;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 import org.apache.axis2.transport.testkit.client.TestClient;
@@ -51,6 +53,7 @@
     protected @Transient Options axisOptions;
     private long messagesSent;
     private long bytesSent;
+    private MessageLevelMetricsCollectorImpl metrics;
     
     @Setup @SuppressWarnings("unused")
     private void setUp(AxisTestClientContext context, Channel channel, AxisTestClientConfigurator[] configurators) throws Exception {
@@ -82,6 +85,9 @@
             ManagementSupport sender = (ManagementSupport)this.sender;
             messagesSent = sender.getMessagesSent();
             bytesSent = sender.getBytesSent();
+            metrics = new MessageLevelMetricsCollectorImpl();
+        } else {
+            metrics = null;
         }
     }
 
@@ -103,6 +109,9 @@
         }
         mc.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING, options.getCharset());
         mc.setServiceContext(serviceClient.getServiceContext());
+        if (metrics != null) {
+            mc.setProperty(BaseConstants.METRICS_COLLECTOR, metrics);
+        }
         mepClient.addMessageContext(mc);
         mepClient.execute(block);
         return resultMessageLabel == null ? null : mepClient.getMessageContext(resultMessageLabel);
@@ -111,10 +120,14 @@
     public void afterReceive() throws Exception {
         if (sender instanceof ManagementSupport) {
             ManagementSupport sender = (ManagementSupport)this.sender;
+            Assert.assertEquals(1, metrics.getMessagesSent());
             Assert.assertEquals(messagesSent+1, sender.getMessagesSent());
+            long thisBytesSent = metrics.getBytesSent();
+            Assert.assertTrue("No increase in bytes sent in message level metrics", thisBytesSent != 0);
             long newBytesSent = sender.getBytesSent();
-            Assert.assertTrue("No increase in bytes sent (before sending: " + bytesSent +
+            Assert.assertTrue("No increase in bytes sent in transport level metrics (before sending: " + bytesSent +
                     "; after sending: " + newBytesSent + ")", newBytesSent > bytesSent);
+            Assert.assertEquals("Mismatch between message and transport level metrics", thisBytesSent, newBytesSent - bytesSent);
         }
     }
 }

Added: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/util/MessageLevelMetricsCollectorImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/util/MessageLevelMetricsCollectorImpl.java?rev=729062&view=auto
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/util/MessageLevelMetricsCollectorImpl.java (added)
+++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/util/MessageLevelMetricsCollectorImpl.java Tue Dec 23 10:54:13 2008
@@ -0,0 +1,80 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.axis2.transport.testkit.axis2.util;
+
+import org.apache.axis2.transport.base.MessageLevelMetricsCollector;
+
+/**
+ * Message level metrics collector implementation used during the tests to check that
+ * message level metrics collection is implemented.
+ */
+public class MessageLevelMetricsCollectorImpl implements MessageLevelMetricsCollector {
+    private long messagesSent;
+    private long bytesSent;
+    
+    public void incrementBytesReceived(long size) {
+    }
+
+    public synchronized void incrementBytesSent(long size) {
+        bytesSent += size;
+    }
+
+    public void incrementFaultsReceiving(int errorCode) {
+    }
+
+    public void incrementFaultsSending(int errorCode) {
+    }
+
+    public void incrementMessagesReceived() {
+    }
+
+    public synchronized void incrementMessagesSent() {
+        messagesSent++;
+    }
+
+    public void incrementTimeoutsReceiving() {
+    }
+
+    public void incrementTimeoutsSending() {
+    }
+
+    public void notifyReceivedMessageSize(long size) {
+    }
+
+    public void notifySentMessageSize(long size) {
+    }
+
+    public void reportReceivingFault(int errorCode) {
+    }
+
+    public void reportResponseCode(int respCode) {
+    }
+
+    public void reportSendingFault(int errorCode) {
+    }
+
+    public synchronized long getMessagesSent() {
+        return messagesSent;
+    }
+
+    public synchronized long getBytesSent() {
+        return bytesSent;
+    }
+}

Propchange: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/util/MessageLevelMetricsCollectorImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native