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