You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by ru...@apache.org on 2007/08/21 11:27:20 UTC

svn commit: r568035 - in /webservices/synapse/trunk/java/modules: core/src/main/java/org/apache/synapse/ core/src/main/java/org/apache/synapse/config/ core/src/main/java/org/apache/synapse/core/axis2/ samples/src/main/java/samples/common/ samples/src/m...

Author: ruwan
Date: Tue Aug 21 02:27:19 2007
New Revision: 568035

URL: http://svn.apache.org/viewvc?rev=568035&view=rev
Log:
Adding a global timer for the Synapse configuraiton so that when ever we need a timer task to be scheduled, we can use the SynapseConfiguraiton.getSynapseTimer() rather than forking a new timer thread.

Added the -Ditr property for the StockQuoteClient to add iterations to the message body element

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/SynapseConfiguration.java
    webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/AnonymousServiceFactory.java
    webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
    webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
    webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
    webservices/synapse/trunk/java/modules/samples/src/main/java/samples/common/StockQuoteHandler.java
    webservices/synapse/trunk/java/modules/samples/src/main/java/samples/userguide/StockQuoteClient.java
    webservices/synapse/trunk/java/modules/samples/src/main/scripts/build.xml

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?rev=568035&r1=568034&r2=568035&view=diff
==============================================================================
--- 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 Tue Aug 21 02:27:19 2007
@@ -215,4 +215,13 @@
     String ANONYMOUS_SEQUENCES = "AnonymousSequences";
     /** Anonymous ProxyServices key   */
     String ANONYMOUS_PROXYSERVICES = "AnonymousProxyServices";
+
+    /** Property key for the aggregation corelation */
+    String AGGREGATE_CORELATION = "aggregateCorelation";
+
+    /** Property key for the message sequence details in an aggregation */
+    String MESSAGE_SEQUENCE = "messageSequence";
+
+    /** String message sequence delemiter */
+    String MESSAGE_SEQUENCE_DELEMITER = "/";
 }

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?rev=568035&r1=568034&r2=568035&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java Tue Aug 21 02:27:19 2007
@@ -70,7 +70,12 @@
 	 */
 	private Map localRegistry = new HashMap();
 
-	/** Hold reference to the Axis2 ConfigurationContext */
+    /**
+     * This will provide the timer deamon object for the sheduled tasks.
+     */
+    private Timer synapseTimer = new Timer(true);
+
+    /** Hold reference to the Axis2 ConfigurationContext */
 	private AxisConfiguration axisConfiguration = null;
 
 	/**
@@ -79,7 +84,7 @@
 	 */
 	private String pathToConfigFile = null;
 
-	/**
+    /**
 	 * Add a named sequence into the local registry
 	 *
 	 * @param key
@@ -521,6 +526,10 @@
 	public List getStartup() {
 		return startup;
 	}
+
+    public Timer getSynapseTimer() {
+        return synapseTimer;
+    }
 
     public void destroy() {
         if (log.isDebugEnabled()) {

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/AnonymousServiceFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/AnonymousServiceFactory.java?rev=568035&r1=568034&r2=568035&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/AnonymousServiceFactory.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/AnonymousServiceFactory.java Tue Aug 21 02:27:19 2007
@@ -29,6 +29,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.Constants;
 import org.apache.synapse.SynapseException;
+import org.apache.synapse.config.SynapseConfiguration;
 
 import javax.xml.namespace.QName;
 
@@ -48,7 +49,7 @@
 
     public static final String DYNAMIC_OPERATION  = "__DYNAMIC_OPERATION__";
 
-    private static final SynapseCallbackReceiver synapseCallback = new SynapseCallbackReceiver();
+    private static SynapseCallbackReceiver synapseCallbackReceiver = null;
 
     /**
      * Creates an AxisService for the requested QoS for sending out messages
@@ -59,8 +60,9 @@
      * @param wsSecOn
      * @return An Axis service for the requested QoS
      */
-    public static AxisService getAnonymousService(AxisConfiguration axisCfg,
-        boolean wsAddrOn, boolean wsRMOn, boolean wsSecOn) {
+    public static AxisService getAnonymousService(SynapseConfiguration synCfg,
+                                                  AxisConfiguration axisCfg, boolean wsAddrOn,
+                                                  boolean wsRMOn, boolean wsSecOn) {
 
         String servicekey = null;
         if (!wsAddrOn) {
@@ -88,7 +90,7 @@
                         return service;
                     }
 
-                    service = createAnonymousService(axisCfg, servicekey);
+                    service = createAnonymousService(synCfg, axisCfg, servicekey);
 
                     if (wsAddrOn) {
                         service.engageModule(axisCfg.getModule(
@@ -123,13 +125,13 @@
      * @param axisCfg the Axis2 configuration
      * @return an anonymous service named with the given QoS key
      */
-    private static AxisService createAnonymousService(
+    private static AxisService createAnonymousService(SynapseConfiguration synCfg,
         AxisConfiguration axisCfg, String serviceKey) {
 
         try {
             DynamicAxisOperation dynamicOperation =
                 new DynamicAxisOperation(new QName(DYNAMIC_OPERATION));
-            dynamicOperation.setMessageReceiver(synapseCallback);
+            dynamicOperation.setMessageReceiver(getCallbackReceiver(synCfg));
             AxisMessage inMsg = new AxisMessage();
             inMsg.setName("in-message");
             inMsg.setParent(dynamicOperation);
@@ -150,6 +152,14 @@
                  serviceKey, e);
         }
         return null;
+    }
+
+    private static SynapseCallbackReceiver getCallbackReceiver(SynapseConfiguration synCfg) {
+        if (synapseCallbackReceiver == null) {
+            synapseCallbackReceiver = new SynapseCallbackReceiver(synCfg);
+        }
+
+        return synapseCallbackReceiver;
     }
 
 }

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?rev=568035&r1=568034&r2=568035&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java Tue Aug 21 02:27:19 2007
@@ -169,7 +169,7 @@
         AxisConfiguration axisCfg       = axisCfgCtx.getAxisConfiguration();
 
         AxisService anoymousService =
-            AnonymousServiceFactory.getAnonymousService(
+            AnonymousServiceFactory.getAnonymousService(synapseOutMessageContext.getConfiguration(),
             axisCfg, wsAddressingEnabled, wsRMEnabled, wsSecurityEnabled);
         ServiceGroupContext sgc = new ServiceGroupContext(
             axisCfgCtx, (AxisServiceGroup) anoymousService.getParent());

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java?rev=568035&r1=568034&r2=568035&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java Tue Aug 21 02:27:19 2007
@@ -31,6 +31,7 @@
 import org.apache.synapse.Mediator;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.SynapseException;
+import org.apache.synapse.util.UUIDGenerator;
 import org.apache.synapse.config.SynapseConfiguration;
 import org.apache.synapse.endpoints.utils.EndpointDefinition;
 import org.apache.synapse.core.SynapseEnvironment;
@@ -145,7 +146,8 @@
         axis2MC.setServiceContext(new ServiceContext());
         axis2MC.setOperationContext(new OperationContext());
         MessageContext mc = new Axis2MessageContext(axis2MC, synapseConfig, this);
-		try {
+        mc.setMessageID(UUIDGenerator.getUUID());
+        try {
 			mc.setEnvelope(OMAbstractFactory.getSOAP12Factory().createSOAPEnvelope());
 			mc.getEnvelope().addChild(OMAbstractFactory.getSOAP12Factory().createSOAPBody());
 		} catch (Exception e) {

Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java?rev=568035&r1=568034&r2=568035&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java Tue Aug 21 02:27:19 2007
@@ -37,6 +37,7 @@
 import org.apache.synapse.Constants;
 import org.apache.synapse.FaultHandler;
 import org.apache.synapse.SynapseException;
+import org.apache.synapse.config.SynapseConfiguration;
 import org.apache.synapse.endpoints.Endpoint;
 
 import java.util.*;
@@ -47,17 +48,13 @@
 
     private Map callbackStore;  // this will be made thread safe within the constructor
 
-    /**
-     * Timer to schedule the timeout task.
-     */
-    private Timer timeOutTimer = null;
-
-    public SynapseCallbackReceiver() {
+    public SynapseCallbackReceiver(SynapseConfiguration synCfg) {
         callbackStore = Collections.synchronizedMap(new HashMap());
 
         // create the Timer object and a TimeoutHandler task. Schedule it to run every 10 seconds from here
         TimeoutHandler timeoutHandler = new TimeoutHandler(callbackStore);
-        timeOutTimer = new Timer(true);
+        
+        Timer timeOutTimer = synCfg.getSynapseTimer();
         timeOutTimer.schedule(timeoutHandler, 0, Constants.TIMEOUT_HANDLER_INTERVAL);
     }
 

Modified: webservices/synapse/trunk/java/modules/samples/src/main/java/samples/common/StockQuoteHandler.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/samples/src/main/java/samples/common/StockQuoteHandler.java?rev=568035&r1=568034&r2=568035&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/samples/src/main/java/samples/common/StockQuoteHandler.java (original)
+++ webservices/synapse/trunk/java/modules/samples/src/main/java/samples/common/StockQuoteHandler.java Tue Aug 21 02:27:19 2007
@@ -66,15 +66,17 @@
      * @param symbol the stock symbol
      * @return OMElement for SOAP body
      */
-    public static OMElement createStandardQuoteRequest(String symbol) {
+    public static OMElement createStandardQuoteRequest(String symbol, int itrCount) {
         OMFactory factory   = OMAbstractFactory.getOMFactory();
         OMNamespace ns      = factory.createOMNamespace("http://services.samples/xsd", "m0");
         OMElement getQuote  = factory.createOMElement("getQuote", ns);
-        OMElement request   = factory.createOMElement("request", ns);
-        OMElement symb      = factory.createOMElement("symbol", ns);
-        request.addChild(symb);
-        getQuote.addChild(request);
-        symb.setText(symbol);
+        for (int i =0; i<itrCount; i++) {
+            OMElement request   = factory.createOMElement("request", ns);
+            OMElement symb      = factory.createOMElement("symbol", ns);
+            request.addChild(symb);
+            getQuote.addChild(request);
+            symb.setText(symbol);
+        }
         return getQuote;
     }
 

Modified: webservices/synapse/trunk/java/modules/samples/src/main/java/samples/userguide/StockQuoteClient.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/samples/src/main/java/samples/userguide/StockQuoteClient.java?rev=568035&r1=568034&r2=568035&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/samples/src/main/java/samples/userguide/StockQuoteClient.java (original)
+++ webservices/synapse/trunk/java/modules/samples/src/main/java/samples/userguide/StockQuoteClient.java Tue Aug 21 02:27:19 2007
@@ -64,6 +64,7 @@
         String svcPolicy = getProperty("policy", null);
         String rest      = getProperty("rest", null);
         String wsrm      = getProperty("wsrm", null);
+        String itr       = getProperty("itr", "1");
 
         double price = 0; int quantity = 0;
 		ConfigurationContext configContext = null;
@@ -98,7 +99,8 @@
                 payload = StockQuoteHandler.createMarketActivityRequest();
                 options.setAction("urn:getMarketActivity");
             } else if ("quote".equals(mode)) {
-                payload = StockQuoteHandler.createStandardQuoteRequest(symbol);
+                payload = StockQuoteHandler.createStandardQuoteRequest(
+                        symbol, Integer.parseInt(itr));
                 options.setAction("urn:getQuote");
             }
 

Modified: webservices/synapse/trunk/java/modules/samples/src/main/scripts/build.xml
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/samples/src/main/scripts/build.xml?rev=568035&r1=568034&r2=568035&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/samples/src/main/scripts/build.xml (original)
+++ webservices/synapse/trunk/java/modules/samples/src/main/scripts/build.xml Tue Aug 21 02:27:19 2007
@@ -75,6 +75,7 @@
     <property name="policy" value=""/>
     <property name="rest" value=""/>
     <property name="wsrm" value=""/>
+    <property name="itr" value=""/>
     <property name="jms_dest" value=""/>
     <property name="jms_type" value=""/>
     <property name="jms_payload" value=""/>
@@ -100,6 +101,7 @@
             <sysproperty key="policy" value="${policy}"/>
             <sysproperty key="rest" value="${rest}"/>
             <sysproperty key="wsrm" value="${wsrm}"/>
+            <sysproperty key="itr" value="${itr}"/>
             <sysproperty key="javax.net.ssl.trustStore" value="./../../lib/trust.jks"/>
             <sysproperty key="javax.net.ssl.trustStorePassword" value="password"/>
             <!--



---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org