Author: indika
Date: Mon Apr 5 11:41:11 2010
New Revision: 930843
URL: http://svn.apache.org/viewvc?rev=930843&view=rev
Log:
fix for stats collection when the out flow is ended because of a drop mediator
Added:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/AspectConfigurationDetectionStrategy.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsReporter.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigUtils.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/DropMediator.java
Added:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/AspectConfigurationDetectionStrategy.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/AspectConfigurationDetectionStrategy.java?rev=930843&view=auto
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/AspectConfigurationDetectionStrategy.java
(added)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/AspectConfigurationDetectionStrategy.java
Mon Apr 5 11:41:11 2010
@@ -0,0 +1,56 @@
+/*
+ * 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.synapse.aspects;
+
+import org.apache.synapse.MessageContext;
+import org.apache.synapse.SynapseConstants;
+import org.apache.synapse.config.xml.XMLConfigConstants;
+
+/**
+ * Take an AspectConfiguration based on some strategy - Currently only
consider statistics
+ */
+public class AspectConfigurationDetectionStrategy {
+
+ /**
+ * Factory method to create the AspectConfiguration when there is no a
defined main sequence and
+ * only there is a set of mediators. This is useful when collecting stats
for messages going
+ * through the main sequence
+ * //TODO cache
+ * @param synCtx Message Context
+ * @return an AspectConfiguration instance
+ */
+ public static AspectConfiguration getAspectConfiguration(MessageContext
synCtx) {
+
+ boolean statisticsEnable = false;
+
+ if (XMLConfigConstants.STATISTICS_ENABLE.equals(
+ synCtx.getConfiguration().getProperty(
+ SynapseConstants.SYNAPSE_STATISTICS_STATE))) {
+ statisticsEnable = true;
+ }
+
+ if (statisticsEnable) {
+ AspectConfiguration configuration = new AspectConfiguration(
+ SynapseConstants.SYNAPSE_ASPECTS);
+ configuration.enableStatistics();
+ return configuration;
+ }
+ return null;
+ }
+}
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsReporter.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsReporter.java?rev=930843&r1=930842&r2=930843&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsReporter.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsReporter.java
Mon Apr 5 11:41:11 2010
@@ -225,6 +225,16 @@ public class StatisticsReporter {
}
}
+ /**
+ * Reports statistics on the end of the out flow
+ *
+ * @param synCtx MessageContext instance
+ */
+ public static void reportForAllOnOutFlowEnd(MessageContext synCtx) {
+
+ endReportForAll(synCtx);
+
+ }
/**
* Factory method to create <code>StatisticsLog</code> instances
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigUtils.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigUtils.java?rev=930843&r1=930842&r2=930843&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigUtils.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigUtils.java
Mon Apr 5 11:41:11 2010
@@ -802,33 +802,5 @@ public class SynapseConfigUtils {
config.addSequence(org.apache.synapse.SynapseConstants.FAULT_SEQUENCE_KEY,
fault);
}
-
-
- /**
- * Factory method to create the AspectConfiguration when there is no a
defined main sequence and
- * only there is a set of mediators. This is useful when collecting stats
for messages going
- * through the main sequence
- * //TODO cache
- * @param synCtx Message Context
- * @return an AspectConfiguration instance
- */
- public static AspectConfiguration
getGlobalAspectConfiguration(MessageContext synCtx) {
-
- boolean statisticsEnable = false;
-
- if (XMLConfigConstants.STATISTICS_ENABLE.equals(
- synCtx.getConfiguration().getProperty(
- SynapseConstants.SYNAPSE_STATISTICS_STATE))) {
- statisticsEnable = true;
- }
-
- if (statisticsEnable) {
- AspectConfiguration configuration = new AspectConfiguration(
- SynapseConstants.SYNAPSE_ASPECTS);
- configuration.enableStatistics();
- return configuration;
- }
- return null;
- }
}
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java?rev=930843&r1=930842&r2=930843&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
Mon Apr 5 11:41:11 2010
@@ -27,9 +27,9 @@ import org.apache.synapse.FaultHandler;
import org.apache.synapse.MessageContext;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.aspects.AspectConfigurationDetectionStrategy;
import org.apache.synapse.aspects.ComponentType;
import org.apache.synapse.aspects.statistics.StatisticsReporter;
-import org.apache.synapse.config.SynapseConfigUtils;
import org.apache.synapse.mediators.MediatorFaultHandler;
/**
@@ -47,7 +47,7 @@ public class SynapseMessageReceiver impl
MessageContext synCtx =
MessageContextCreatorForAxis2.getSynapseMessageContext(mc);
StatisticsReporter.reportForComponent(synCtx,
- SynapseConfigUtils.getGlobalAspectConfiguration(synCtx),
+
AspectConfigurationDetectionStrategy.getAspectConfiguration(synCtx),
ComponentType.PROXYSERVICE);
boolean traceOn = synCtx.getMainSequence().getTraceState() ==
SynapseConstants.TRACING_ON;
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/DropMediator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/DropMediator.java?rev=930843&r1=930842&r2=930843&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/DropMediator.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/DropMediator.java
Mon Apr 5 11:41:11 2010
@@ -21,6 +21,7 @@ package org.apache.synapse.mediators.bui
import org.apache.synapse.MessageContext;
import org.apache.synapse.SynapseLog;
+import org.apache.synapse.aspects.statistics.StatisticsReporter;
import org.apache.synapse.mediators.AbstractMediator;
/**
@@ -36,7 +37,7 @@ public class DropMediator extends Abstra
*/
public boolean mediate(MessageContext synCtx) {
- SynapseLog synLog = getLog(synCtx);
+ SynapseLog synLog = getLog(synCtx);
if (synLog.isTraceOrDebugEnabled()) {
synLog.traceOrDebug("Start : Drop mediator");
@@ -44,10 +45,19 @@ public class DropMediator extends Abstra
if (synLog.isTraceTraceEnabled()) {
synLog.traceTrace("Message : " + synCtx.getEnvelope());
}
- }
+ }
- synLog.traceOrDebug("End : Drop mediator");
synCtx.setTo(null);
+
+ // if this is a response , this the end of the outflow
+ if (synCtx.isResponse()) {
+ StatisticsReporter.reportForAllOnOutFlowEnd(synCtx);
+ }
+
+ if (synLog.isTraceOrDebugEnabled()) {
+ synLog.traceOrDebug("End : Drop mediator");
+ }
+
return false;
}
}