Author: indika
Date: Mon Jan 29 00:47:59 2007
New Revision: 500972
URL: http://svn.apache.org/viewvc?view=rev&rev=500972
Log:
Add Statistics Collecting for Message Mediation – Synapse Service
Fixed few bugs
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/Constants.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ProxyServiceSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2Sender.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/statistics/StatisticsUtils.java
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/Constants.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/Constants.java?view=diff&rev=500972&r1=500971&r2=500972
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/Constants.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/Constants.java
Mon Jan 29 00:47:59 2007
@@ -158,6 +158,9 @@
/** key for lookup Proxy Service statistics stack */
String PROXYSERVICE_STATISTICS_STACK ="proxyservice_statistics_stack";
+ /** key for lookup Proxy Service statistics stack */
+ String SYNAPSESERVICE_STATISTICS_STACK ="synapseservice_statistics_stack";
+
/** key for lookup Endpoint statistics stack */
String ENDPOINT_STATISTICS_STACK ="endpoint_statistics_stack";
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointSerializer.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointSerializer.java?view=diff&rev=500972&r1=500971&r2=500972
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointSerializer.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointSerializer.java
Mon Jan 29 00:47:59 2007
@@ -93,7 +93,7 @@
}
if (statisticsValue != null) {
endpoint.addAttribute(fac.createOMAttribute(
- Constants.TRACE_ATTRIB_NAME, nullNS, statisticsValue));
+ Constants.STATISTICS_ATTRIB_NAME, nullNS,
statisticsValue));
}
if (endpt.isAddressingOn()) {
OMElement addressing = fac.createOMElement("enableAddressing",
synNS);
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ProxyServiceSerializer.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ProxyServiceSerializer.java?view=diff&rev=500972&r1=500971&r2=500972
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ProxyServiceSerializer.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ProxyServiceSerializer.java
Mon Jan 29 00:47:59 2007
@@ -146,7 +146,7 @@
}
if (statisticsValue != null) {
proxy.addAttribute(fac.createOMAttribute(
- Constants.TRACE_ATTRIB_NAME, nullNS, statisticsValue));
+ Constants.STATISTICS_ATTRIB_NAME, nullNS,
statisticsValue));
}
int traceState = service.getTraceState();
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorSerializer.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorSerializer.java?view=diff&rev=500972&r1=500971&r2=500972
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorSerializer.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorSerializer.java
Mon Jan 29 00:47:59 2007
@@ -61,7 +61,7 @@
}
if (statisticsValue != null) {
sequence.addAttribute(fac.createOMAttribute(
- Constants.TRACE_ATTRIB_NAME, nullNS, statisticsValue));
+ Constants.STATISTICS_ATTRIB_NAME, nullNS,
statisticsValue));
}
if (mediator.getRef() != null) {
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2Sender.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2Sender.java?view=diff&rev=500972&r1=500971&r2=500972
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2Sender.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2Sender.java
Mon Jan 29 00:47:59 2007
@@ -27,6 +27,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.Constants;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.statistics.StatisticsUtils;
import org.apache.neethi.Policy;
import org.apache.axiom.soap.SOAPFault;
@@ -40,56 +41,57 @@
private static final Log log = LogFactory.getLog(Axis2Sender.class);
public static void sendOn(
- org.apache.synapse.MessageContext synapseInMessageContext) {
+ org.apache.synapse.MessageContext synapseInMessageContext) {
try {
- Boolean wsAOn = (Boolean) synapseInMessageContext.getProperty(
- Constants.OUTFLOW_ADDRESSING_ON);
- Boolean wsRmOn = (Boolean) synapseInMessageContext.getProperty(
- Constants.OUTFLOW_RM_ON);
+ Boolean wsAOn = (Boolean) synapseInMessageContext.getProperty(
+ Constants.OUTFLOW_ADDRESSING_ON);
+ Boolean wsRmOn = (Boolean) synapseInMessageContext.getProperty(
+ Constants.OUTFLOW_RM_ON);
Boolean wsSecOn = (Boolean) synapseInMessageContext.getProperty(
- Constants.OUTFLOW_SECURITY_ON);
+ Constants.OUTFLOW_SECURITY_ON);
Boolean separateListener = (Boolean)
synapseInMessageContext.getProperty(
Constants.OUTFLOW_USE_SEPARATE_LISTENER);
MessageContext axisOutMsgContext =
- Axis2FlexibleMEPClient.send(
- // WS-A default is off
- (wsAOn != null && wsAOn.booleanValue()),
-
- // WS-Sec default is off
- (wsSecOn != null && wsSecOn.booleanValue()),
-
- // The Rampart security policy
- (String) synapseInMessageContext.getProperty(
- Constants.OUTFLOW_SEC_POLICY),
-
- // WS-RM default is off
- (wsRmOn != null && wsRmOn.booleanValue()),
-
- // The Sandesha security policy
- (String) synapseInMessageContext.getProperty(
- Constants.OUTFLOW_RM_POLICY),
-
- // use a separate listener
- (separateListener != null &&
separateListener.booleanValue()),
-
- // The Axis2 Message context of the Synapse MC
- synapseInMessageContext);
+ Axis2FlexibleMEPClient.send(
+ // WS-A default is off
+ (wsAOn != null && wsAOn.booleanValue()),
-
- if (axisOutMsgContext != null &&
axisOutMsgContext.getEnvelope()!=null) { // if there is no response env will be
null
+ // WS-Sec default is off
+ (wsSecOn != null && wsSecOn.booleanValue()),
+
+ // The Rampart security policy
+ (String) synapseInMessageContext.getProperty(
+ Constants.OUTFLOW_SEC_POLICY),
+
+ // WS-RM default is off
+ (wsRmOn != null && wsRmOn.booleanValue()),
+
+ // The Sandesha security policy
+ (String) synapseInMessageContext.getProperty(
+ Constants.OUTFLOW_RM_POLICY),
+
+ // use a separate listener
+ (separateListener != null &&
separateListener.booleanValue()),
+
+ // The Axis2 Message context of the Synapse MC
+ synapseInMessageContext);
+
+
+ if (axisOutMsgContext != null && axisOutMsgContext.getEnvelope()
!= null)
+ { // if there is no response env will be null
//set the response Envelop as a property in Original axisMsgCtx
synapseInMessageContext.setProperty(
- org.apache.synapse.Constants.RESPONSE_SOAP_ENVELOPE,
- axisOutMsgContext.getEnvelope());
+ org.apache.synapse.Constants.RESPONSE_SOAP_ENVELOPE,
+ axisOutMsgContext.getEnvelope());
// create the synapse message context for the response
org.apache.synapse.MessageContext synapseOutMessageContext =
- new Axis2MessageContext(
- axisOutMsgContext,
- synapseInMessageContext.getConfiguration(),
- synapseInMessageContext.getEnvironment());
+ new Axis2MessageContext(
+ axisOutMsgContext,
+ synapseInMessageContext.getConfiguration(),
+ synapseInMessageContext.getEnvironment());
synapseOutMessageContext.setResponse(true);
// now set properties to co-relate to the request i.e. copy
over
@@ -99,30 +101,30 @@
while (iter.hasNext()) {
Object key = iter.next();
synapseOutMessageContext.setProperty(
- (String) key,
synapseInMessageContext.getCorrelationProperty((String) key));
+ (String) key,
synapseInMessageContext.getCorrelationProperty((String) key));
}
// if we have a SOAP Fault, log it - irrespective of the
mediation logic
// http://issues.apache.org/jira/browse/SYNAPSE-42
if
(synapseOutMessageContext.getEnvelope().getBody().hasFault()) {
SOAPFault fault =
synapseOutMessageContext.getEnvelope().getBody().getFault();
- log.warn("Synapse received a SOAP fault from : " +
synapseInMessageContext.getTo() +
- (fault.getNode() != null ? " Node : " +
fault.getNode().getNodeValue() : "") +
- (fault.getReason() != null ? " Reason : " +
fault.getReason().getFirstSOAPText() : "") +
- (fault.getCode() != null ? " Code : " +
fault.getCode().getValue() : ""));
+ log.warn("Synapse received a SOAP fault from : " +
synapseInMessageContext.getTo() +
+ (fault.getNode() != null ? " Node : " +
fault.getNode().getNodeValue() : "") +
+ (fault.getReason() != null ? " Reason : " +
fault.getReason().getFirstSOAPText() : "") +
+ (fault.getCode() != null ? " Code : " +
fault.getCode().getValue() : ""));
}
log.debug("Processing incoming message");
// sets the out sequence if present to the out MC to mediate
the response
- if(synapseInMessageContext.getProperty(Constants.OUT_SEQUENCE)
!= null) {
+ if
(synapseInMessageContext.getProperty(Constants.OUT_SEQUENCE) != null) {
synapseOutMessageContext.setProperty(Constants.OUT_SEQUENCE,
synapseInMessageContext.getProperty(Constants.OUT_SEQUENCE));
}
// send the response message through the synapse mediation flow
synapseInMessageContext.getEnvironment().
- injectMessage(synapseOutMessageContext);
+ injectMessage(synapseOutMessageContext);
}
} catch (Exception e) {
@@ -133,13 +135,19 @@
public static void sendBack(org.apache.synapse.MessageContext smc) {
MessageContext messageContext = ((Axis2MessageContext) smc).
- getAxis2MessageContext();
+ getAxis2MessageContext();
AxisEngine ae = new
AxisEngine(messageContext.getConfigurationContext());
try {
messageContext.setProperty(Constants.ISRESPONSE_PROPERTY,
Boolean.TRUE);
// check if addressing is already engaged for this message.
// if engaged we should use the addressing enabled Configuraion
context.
+ if (smc.isResponse()) {
+ //Process statistics
+ StatisticsUtils.processEndPointStatistics(smc);
+ StatisticsUtils.processProxyServiceStatistics(smc);
+ StatisticsUtils.processSequenceStatistics(smc);
+ }
ae.send(messageContext);
} catch (AxisFault e) {
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java?view=diff&rev=500972&r1=500971&r2=500972
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseMessageReceiver.java
Mon Jan 29 00:47:59 2007
@@ -25,6 +25,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.MessageContext;
+import org.apache.synapse.statistics.StatisticsStack;
+import org.apache.synapse.statistics.impl.SequenceStatisticsStack;
+import org.apache.synapse.statistics.impl.ProxyServiceStatisticsStack;
/**
* This message receiver should be configured in the Axis2 configuration as the
@@ -47,6 +50,13 @@
}
MessageContext synCtx =
Axis2MessageContextFinder.getSynapseMessageContext(mc);
+ StatisticsStack synapseServiceStack = (StatisticsStack)
synCtx.getProperty(org.apache.synapse.Constants.SYNAPSESERVICE_STATISTICS_STACK);
+ if (synapseServiceStack== null) {
+ synapseServiceStack= new ProxyServiceStatisticsStack();
+
synCtx.setCorrelationProperty(org.apache.synapse.Constants.SYNAPSESERVICE_STATISTICS_STACK,
synapseServiceStack);
+ }
+ String name = "SynapseService";
+ synapseServiceStack.put(name, System.currentTimeMillis(),
!synCtx.isResponse(), true);
synCtx.getEnvironment().injectMessage(synCtx);
// Response handling mechanism for 200/202 and 5XX
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/statistics/StatisticsUtils.java
URL:
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/statistics/StatisticsUtils.java?view=diff&rev=500972&r1=500971&r2=500972
==============================================================================
---
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/statistics/StatisticsUtils.java
(original)
+++
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/statistics/StatisticsUtils.java
Mon Jan 29 00:47:59 2007
@@ -41,6 +41,10 @@
if (proxyServiceStatisticsStack != null) {
proxyServiceStatisticsStack.reportToStatisticsCollector(statisticsCollector);
}
+ ProxyServiceStatisticsStack synapseServiceStatisticsStack =
(ProxyServiceStatisticsStack)
synCtx.getProperty(Constants.SYNAPSESERVICE_STATISTICS_STACK);
+ if (synapseServiceStatisticsStack != null) {
+
synapseServiceStatisticsStack.reportToStatisticsCollector(statisticsCollector);
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]