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...");
+ }
}