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]

Reply via email to