You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by hi...@apache.org on 2010/04/27 08:19:22 UTC

svn commit: r938330 - in /synapse/trunk/java/modules/core/src/test/java/org/apache/synapse: mediators/TestUtils.java registry/DynamicResourceTest.java

Author: hiranya
Date: Tue Apr 27 06:19:22 2010
New Revision: 938330

URL: http://svn.apache.org/viewvc?rev=938330&view=rev
Log:
Test case for dynamic endpoints


Modified:
    synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/TestUtils.java
    synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/DynamicResourceTest.java

Modified: synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/TestUtils.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/TestUtils.java?rev=938330&r1=938329&r2=938330&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/TestUtils.java (original)
+++ synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/TestUtils.java Tue Apr 27 06:19:22 2010
@@ -19,17 +19,11 @@
 
 package org.apache.synapse.mediators;
 
-import java.io.StringReader;
 import java.util.Map;
 
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.TestMessageContextBuilder;
@@ -39,6 +33,8 @@ import org.apache.synapse.config.Synapse
 import org.apache.synapse.core.SynapseEnvironment;
 import org.apache.synapse.core.axis2.Axis2MessageContext;
 import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.engine.AxisConfiguration;
 
 public class TestUtils {
 
@@ -95,6 +91,31 @@ public class TestUtils {
         return synMc;
     }
 
+    public static MessageContext createSynapseMessageContext(
+            String payload, SynapseConfiguration config) throws Exception {
+
+        org.apache.axis2.context.MessageContext mc =
+                new org.apache.axis2.context.MessageContext();
+        AxisConfiguration axisConfig = config.getAxisConfiguration();
+        if (axisConfig == null) {
+            axisConfig = new AxisConfiguration();
+            config.setAxisConfiguration(axisConfig);
+        }
+        ConfigurationContext cfgCtx = new ConfigurationContext(axisConfig);
+        SynapseEnvironment env = new Axis2SynapseEnvironment(cfgCtx, config);
+        MessageContext synMc = new Axis2MessageContext(mc, config, env);
+        SOAPEnvelope envelope =
+                OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
+        OMDocument omDoc =
+                OMAbstractFactory.getSOAP11Factory().createOMDocument();
+        omDoc.addChild(envelope);
+
+        envelope.getBody().addChild(createOMElement(payload));
+
+        synMc.setEnvelope(envelope);
+        return synMc;
+    }
+
     public static OMElement createOMElement(String xml) {
         return SynapseConfigUtils.stringToOM(xml);
     }

Modified: synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/DynamicResourceTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/DynamicResourceTest.java?rev=938330&r1=938329&r2=938330&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/DynamicResourceTest.java (original)
+++ synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/registry/DynamicResourceTest.java Tue Apr 27 06:19:22 2010
@@ -22,6 +22,10 @@ package org.apache.synapse.registry;
 import junit.framework.TestCase;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.Mediator;
+import org.apache.synapse.core.SynapseEnvironment;
+import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
+import org.apache.synapse.endpoints.Endpoint;
+import org.apache.synapse.endpoints.AddressEndpoint;
 import org.apache.synapse.config.SynapseConfiguration;
 import org.apache.synapse.mediators.TestUtils;
 import org.apache.synapse.mediators.base.SequenceMediator;
@@ -34,7 +38,12 @@ public class DynamicResourceTest extends
 
     private static final String DYNAMIC_ENDPOINT_1 =
             "<endpoint xmlns=\"http://ws.apache.org/ns/synapse\">\n" +
-            "    <address uri=\"http://localhost:9000/services/SimpleStockQuoteService\"/>\n" +
+            "    <address uri=\"http://test.url\"/>\n" +
+            "</endpoint>";
+
+    private static final String DYNAMIC_ENDPOINT_2 =
+            "<endpoint xmlns=\"http://ws.apache.org/ns/synapse\">\n" +
+            "    <address uri=\"http://test2.url\"/>\n" +
             "</endpoint>";
 
     private static final String DYNAMIC_SEQUENCE_1 =
@@ -71,7 +80,7 @@ public class DynamicResourceTest extends
 
         // Phase 1
         System.out.println("Testing basic registry lookup functionality...");
-        MessageContext synCtx = TestUtils.createLightweightSynapseMessageContext("<empty/>", config);
+        MessageContext synCtx = TestUtils.createSynapseMessageContext("<empty/>", config);
         Mediator seq1 = synCtx.getSequence(KEY_DYNAMIC_SEQUENCE_1);
         assertNotNull(seq1);
         assertTrue(((SequenceMediator) seq1).isInitialized());
@@ -81,7 +90,7 @@ public class DynamicResourceTest extends
 
         // Phase 2
         System.out.println("Testing basic sequence caching...");
-        synCtx = TestUtils.createLightweightSynapseMessageContext("<empty/>", config);
+        synCtx = TestUtils.createSynapseMessageContext("<empty/>", config);
         Mediator seq2 = synCtx.getSequence(KEY_DYNAMIC_SEQUENCE_1);
         assertNotNull(seq2);
         assertTrue(((SequenceMediator) seq2).isInitialized());
@@ -92,7 +101,7 @@ public class DynamicResourceTest extends
 
         // Phase 3
         System.out.println("Testing advanced sequence caching...");
-        synCtx = TestUtils.createLightweightSynapseMessageContext("<empty/>", config);
+        synCtx = TestUtils.createSynapseMessageContext("<empty/>", config);
         System.out.println("Waiting for the cache to expire...");
         Thread.sleep(8500L);
         Mediator seq3 = synCtx.getSequence(KEY_DYNAMIC_SEQUENCE_1);
@@ -108,7 +117,7 @@ public class DynamicResourceTest extends
         registry.updateResource(KEY_DYNAMIC_SEQUENCE_1, TestUtils.createOMElement(DYNAMIC_SEQUENCE_2));
         System.out.println("Waiting for the cache to expire...");
         Thread.sleep(8500L);
-        synCtx = TestUtils.createLightweightSynapseMessageContext("<empty/>", config);
+        synCtx = TestUtils.createSynapseMessageContext("<empty/>", config);
         Mediator seq4 = synCtx.getSequence(KEY_DYNAMIC_SEQUENCE_1);
         assertNotNull(seq4);
         assertTrue(((SequenceMediator) seq4).isInitialized());
@@ -120,4 +129,51 @@ public class DynamicResourceTest extends
 
         System.out.println("Dynamic sequence lookup tests were successful...");
     }
+
+    public void testDynamicEndpointLookup() throws Exception {
+        System.out.println("Testing dynamic endpoint lookup...");
+
+        // Phase 1
+        System.out.println("Testing basic registry lookup functionality...");
+        MessageContext synCtx = TestUtils.createLightweightSynapseMessageContext("<empty/>", config);
+        Endpoint ep1 = synCtx.getEndpoint(KEY_DYNAMIC_ENDPOINT_1);
+        assertNotNull(ep1);
+        assertTrue(ep1.isInitialized());
+        assertEquals(1, registry.getHitCount());
+        assertEquals("http://test.url", ((AddressEndpoint) ep1).getDefinition().getAddress());
+
+        // Phase 2
+        System.out.println("Testing basic endpoint caching...");
+        synCtx = TestUtils.createLightweightSynapseMessageContext("<empty/>", config);
+        Endpoint ep2 = synCtx.getEndpoint(KEY_DYNAMIC_ENDPOINT_1);
+        assertNotNull(ep2);
+        assertEquals(1, registry.getHitCount());
+        assertTrue(ep1 == ep2);
+
+        // Phase 3
+        System.out.println("Testing advanced endpoint caching...");
+        synCtx = TestUtils.createLightweightSynapseMessageContext("<empty/>", config);
+        System.out.println("Waiting for the cache to expire...");
+        Thread.sleep(8500L);
+        Endpoint ep3 = synCtx.getEndpoint(KEY_DYNAMIC_ENDPOINT_1);
+        assertNotNull(ep3);
+        assertEquals(1, registry.getHitCount());
+        assertTrue(ep1 == ep3);
+
+        // Phase 4
+        System.out.println("Testing endpoint reloading...");
+        registry.updateResource(KEY_DYNAMIC_ENDPOINT_1, TestUtils.createOMElement(DYNAMIC_SEQUENCE_2));
+        System.out.println("Waiting for the cache to expire...");
+        Thread.sleep(8500L);
+        synCtx = TestUtils.createLightweightSynapseMessageContext("<empty/>", config);
+        Endpoint ep4 = synCtx.getEndpoint(KEY_DYNAMIC_ENDPOINT_1);
+        assertNotNull(ep4);
+        assertTrue(ep4.isInitialized());
+        assertEquals(2, registry.getHitCount());
+        assertEquals("http://test2.url", ((AddressEndpoint) ep1).getDefinition().getAddress());
+        assertTrue(ep1 != ep4);
+        assertTrue(!ep1.isInitialized());
+
+        System.out.println("Dynamic endpoint lookup tests were successful...");
+    }
 }