You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by ch...@apache.org on 2007/03/06 06:48:13 UTC
svn commit: r514989 [1/2] - in
/webservices/synapse/trunk/java/modules/core/src:
main/java/org/apache/synapse/ main/java/org/apache/synapse/config/
main/java/org/apache/synapse/config/xml/
main/java/org/apache/synapse/config/xml/endpoints/ main/java/or...
Author: chathura_ce
Date: Mon Mar 5 21:48:09 2007
New Revision: 514989
URL: http://svn.apache.org/viewvc?view=rev&rev=514989
Log:
Implemented the load balance and failover support for synapse. Now endpoints can be nested inside each other to obtain required functionality. Initial support for WSDL based endpoints added.
Added:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/EndpointDefinition.java
- copied, changed from r514585, webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Endpoint.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointDefinitionFactory.java
- copied, changed from r514585, webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointDefinitionSerializer.java
- copied, changed from r514585, 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/endpoints/
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointAbstractFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointAbstractSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/IndirectEndpointFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/IndirectEndpointSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/LoadbalanceAlgorithmFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL20EndpointBuilder.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/FailureListener.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/SendConstants.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/SendMediator.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/algorithms/
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/algorithms/LoadbalanceAlgorithm.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/algorithms/RoundRobin.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/dispatchers/
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/AddressEndpoint.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/Endpoint.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/FailoverEndpoint.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/IndirectEndpoint.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/LoadbalanceEndpoint.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/send/endpoints/WSDLEndpoint.java
Removed:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Endpoint.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointFactory.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/mediators/builtin/SendMediator.java
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/config/SynapseConfigurationBuilder.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ProxyServiceFactory.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/SendMediatorFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigurationBuilder.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigurationSerializer.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.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/Axis2Sender.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/ProxyService.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/AbstractRegistry.java
webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/ProxyServiceSerializationTest.java
webservices/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/SendMediatorSerializationTest.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=514989&r1=514988&r2=514989
==============================================================================
--- 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 Mar 5 21:48:09 2007
@@ -19,6 +19,9 @@
package org.apache.synapse;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.OMAbstractFactory;
+
import javax.xml.namespace.QName;
/**
@@ -28,6 +31,9 @@
/** The Synapse namespace */
public static final String SYNAPSE_NAMESPACE = "http://ws.apache.org/ns/synapse";
+
+ public static final OMNamespace SYNAPSE_OMNAMESPACE =
+ OMAbstractFactory.getOMFactory().createOMNamespace(SYNAPSE_NAMESPACE, "syn");
// -- keys related to Axis2 configuration and Synapse initialization --
/** The key name used to store the Synapse configuration into the Axis2 config */
Copied: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/EndpointDefinition.java (from r514585, webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Endpoint.java)
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/EndpointDefinition.java?view=diff&rev=514989&p1=webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Endpoint.java&r1=514585&p2=webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/EndpointDefinition.java&r2=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/Endpoint.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/EndpointDefinition.java Mon Mar 5 21:48:09 2007
@@ -29,7 +29,7 @@
*
* In future registry lookups etc may be used to resolve a named endpoint into its absolute address
*/
-public class Endpoint {
+public class EndpointDefinition {
/** The name of this endpoint instance */
private String name = null;
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?view=diff&rev=514989&r1=514988&r2=514989
==============================================================================
--- 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 Mon Mar 5 21:48:09 2007
@@ -23,6 +23,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
import org.apache.synapse.Mediator;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
import org.apache.synapse.core.axis2.ProxyService;
import org.apache.synapse.registry.Registry;
import org.apache.axis2.AxisFault;
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java?view=diff&rev=514989&r1=514988&r2=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java Mon Mar 5 21:48:09 2007
@@ -25,7 +25,8 @@
import org.apache.synapse.SynapseException;
import org.apache.synapse.config.xml.XMLConfigurationBuilder;
import org.apache.synapse.mediators.base.SynapseMediator;
-import org.apache.synapse.mediators.builtin.SendMediator;
+import org.apache.synapse.mediators.builtin.send.SendMediator;
+
import java.io.FileInputStream;
import java.io.FileNotFoundException;
Copied: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointDefinitionFactory.java (from r514585, webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointFactory.java)
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointDefinitionFactory.java?view=diff&rev=514989&p1=webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointFactory.java&r1=514585&p2=webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointDefinitionFactory.java&r2=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointFactory.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointDefinitionFactory.java Mon Mar 5 21:48:09 2007
@@ -25,7 +25,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
-import org.apache.synapse.config.Endpoint;
+import org.apache.synapse.config.EndpointDefinition;
import org.apache.synapse.config.XMLToObjectMapper;
import javax.xml.namespace.QName;
@@ -42,16 +42,16 @@
*
* </endpoint>
*/
-public class EndpointFactory implements XMLToObjectMapper {
+public class EndpointDefinitionFactory implements XMLToObjectMapper {
- private static Log log = LogFactory.getLog(EndpointFactory.class);
+ private static Log log = LogFactory.getLog(EndpointDefinitionFactory.class);
- private static final EndpointFactory instance = new EndpointFactory();
+ private static final EndpointDefinitionFactory instance = new EndpointDefinitionFactory();
- private EndpointFactory() {
+ private EndpointDefinitionFactory() {
}
- public static Endpoint createEndpoint(OMElement elem,
+ public static EndpointDefinition createEndpoint(OMElement elem,
boolean anonymousEndpoint) {
OMAttribute name = elem.getAttribute(new QName(
@@ -63,7 +63,7 @@
OMAttribute optimize = elem.getAttribute(new QName(
Constants.NULL_NAMESPACE, "optimize"));
- Endpoint endpoint = new Endpoint();
+ EndpointDefinition endpoint = new EndpointDefinition();
if (!anonymousEndpoint) {
if (name == null) {
handleException("The 'name' attribute is required for a named endpoint definition");
@@ -181,7 +181,7 @@
return null;
}
- public static EndpointFactory getInstance() {
+ public static EndpointDefinitionFactory getInstance() {
return instance;
}
}
Copied: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointDefinitionSerializer.java (from r514585, 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/EndpointDefinitionSerializer.java?view=diff&rev=514989&p1=webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointSerializer.java&r1=514585&p2=webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/EndpointDefinitionSerializer.java&r2=514989
==============================================================================
--- 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/EndpointDefinitionSerializer.java Mon Mar 5 21:48:09 2007
@@ -26,7 +26,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
-import org.apache.synapse.config.Endpoint;
+import org.apache.synapse.config.EndpointDefinition;
/**
* <endpoint name="string" address="url">
@@ -50,15 +50,15 @@
*
* </endpoint>
*/
-public class EndpointSerializer {
+public class EndpointDefinitionSerializer {
- private static Log log = LogFactory.getLog(EndpointSerializer.class);
+ private static Log log = LogFactory.getLog(EndpointDefinitionSerializer.class);
protected static final OMFactory fac = OMAbstractFactory.getOMFactory();
protected static final OMNamespace synNS = fac.createOMNamespace(Constants.SYNAPSE_NAMESPACE, "syn");
protected static final OMNamespace nullNS = fac.createOMNamespace(Constants.NULL_NAMESPACE, "");
- public static OMElement serializeEndpoint(Endpoint endpt, OMElement parent) {
+ public static OMElement serializeEndpoint(EndpointDefinition endpt, OMElement parent) {
OMElement endpoint = fac.createOMElement("endpoint", synNS);
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyFactory.java?view=diff&rev=514989&r1=514988&r2=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyFactory.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyFactory.java Mon Mar 5 21:48:09 2007
@@ -20,7 +20,6 @@
package org.apache.synapse.config.xml;
import org.apache.synapse.config.XMLToObjectMapper;
-import org.apache.synapse.config.Endpoint;
import org.apache.synapse.config.Property;
import org.apache.synapse.SynapseException;
import org.apache.axiom.om.OMNode;
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ProxyServiceFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ProxyServiceFactory.java?view=diff&rev=514989&r1=514988&r2=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ProxyServiceFactory.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ProxyServiceFactory.java Mon Mar 5 21:48:09 2007
@@ -24,6 +24,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.config.xml.endpoints.EndpointAbstractFactory;
+import org.apache.synapse.config.xml.endpoints.EndpointFactory;
import org.apache.synapse.core.axis2.ProxyService;
import org.apache.axis2.wsdl.WSDLConstants;
@@ -171,7 +173,8 @@
} else {
OMElement endpointElement = target.getFirstChildWithName(new QName(Constants.SYNAPSE_NAMESPACE, "endpoint"));
if (endpointElement != null) {
- proxy.setTargetInLineEndpoint(EndpointFactory.createEndpoint(endpointElement, true));
+ EndpointFactory fac = EndpointAbstractFactory.getEndpointFactroy(endpointElement);
+ proxy.setTargetInLineEndpoint(fac.createEndpoint(endpointElement, true));
isTargetOk = true;
}
}
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=514989&r1=514988&r2=514989
==============================================================================
--- 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 Mar 5 21:48:09 2007
@@ -24,7 +24,10 @@
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
import org.apache.synapse.mediators.base.SequenceMediator;
-import org.apache.synapse.config.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.config.EndpointDefinition;
+import org.apache.synapse.config.xml.endpoints.EndpointAbstractSerializer;
+import org.apache.synapse.config.xml.endpoints.EndpointSerializer;
import org.apache.synapse.core.axis2.ProxyService;
import java.util.Iterator;
@@ -99,7 +102,10 @@
"endpoint", nullNS, endpoint));
proxy.addChild(target);
} else if (inLineEndpoint != null) {
- EndpointSerializer.serializeEndpoint(inLineEndpoint, target);
+ EndpointSerializer serializer
+ = EndpointAbstractSerializer.getEndpointSerializer(inLineEndpoint);
+ OMElement epElement = serializer.serializeEndpoint(inLineEndpoint);
+ target.addChild(epElement);
proxy.addChild(target);
} else {
String inSeq = service.getTargetInSequence();
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorFactory.java?view=diff&rev=514989&r1=514988&r2=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorFactory.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorFactory.java Mon Mar 5 21:48:09 2007
@@ -19,14 +19,16 @@
package org.apache.synapse.config.xml;
-import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.synapse.SynapseException;
import org.apache.synapse.Mediator;
-import org.apache.synapse.config.Endpoint;
-import org.apache.synapse.mediators.builtin.SendMediator;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.config.EndpointDefinition;
+import org.apache.synapse.config.xml.endpoints.EndpointFactory;
+import org.apache.synapse.config.xml.endpoints.EndpointAbstractFactory;
+import org.apache.synapse.mediators.builtin.send.SendMediator;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
@@ -91,12 +93,20 @@
// set its common attributes such as tracing etc
initMediator(sm,elem);
- Iterator iter = elem.getChildrenWithName(new QName(Constants.SYNAPSE_NAMESPACE, "endpoint"));
- while (iter.hasNext()) {
-
- OMElement endptElem = (OMElement) iter.next();
- Endpoint endpt = EndpointFactory.createEndpoint(endptElem, true);
- sm.addEndpoint(endpt);
+ OMElement epElement = elem.getFirstChildWithName(new QName(Constants.SYNAPSE_NAMESPACE, "endpoint"));
+ if (epElement != null) {
+ // get the factory for the element
+ // create the endpoint and set it in the send medaitor
+
+ EndpointFactory fac = EndpointAbstractFactory.getEndpointFactroy(epElement);
+ if (fac != null) {
+ Endpoint endpoint = fac.createEndpoint(epElement, true);
+ if (endpoint != null) {
+ sm.setEndpoint(endpoint);
+ }
+ } else {
+ throw new SynapseException("Invalid endpoint fromat.");
+ }
}
return sm;
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorSerializer.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorSerializer.java?view=diff&rev=514989&r1=514988&r2=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorSerializer.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorSerializer.java Mon Mar 5 21:48:09 2007
@@ -24,8 +24,11 @@
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
import org.apache.synapse.Mediator;
-import org.apache.synapse.config.Endpoint;
-import org.apache.synapse.mediators.builtin.SendMediator;
+import org.apache.synapse.config.EndpointDefinition;
+import org.apache.synapse.config.xml.endpoints.EndpointSerializer;
+import org.apache.synapse.config.xml.endpoints.EndpointAbstractSerializer;
+import org.apache.synapse.mediators.builtin.send.SendMediator;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
import java.util.Iterator;
@@ -85,12 +88,14 @@
SendMediator mediator = (SendMediator) m;
OMElement send = fac.createOMElement("send", synNS);
finalizeSerialization(send, mediator);
- if (mediator.getEndpoints() != null) {
- Iterator iter = mediator.getEndpoints().iterator();
- while (iter.hasNext()) {
- Endpoint endpt = (Endpoint) iter.next();
- EndpointSerializer.serializeEndpoint(endpt, send);
- }
+
+ Endpoint activeEndpoint = mediator.getEndpoint();
+ if (activeEndpoint != null) {
+ EndpointSerializer serializer = EndpointAbstractSerializer.
+ getEndpointSerializer(activeEndpoint);
+
+ OMElement endpointElement = serializer.serializeEndpoint(activeEndpoint);
+ send.addChild(endpointElement);
}
if (parent != null) {
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigurationBuilder.java?view=diff&rev=514989&r1=514988&r2=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigurationBuilder.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigurationBuilder.java Mon Mar 5 21:48:09 2007
@@ -24,13 +24,15 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
-import org.apache.synapse.config.Endpoint;
+import org.apache.synapse.config.EndpointDefinition;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.config.Property;
import org.apache.synapse.config.Util;
+import org.apache.synapse.config.xml.endpoints.EndpointAbstractFactory;
import org.apache.synapse.core.axis2.ProxyService;
import org.apache.synapse.mediators.base.SequenceMediator;
import org.apache.synapse.mediators.base.SynapseMediator;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
import org.apache.synapse.mediators.builtin.LogMediator;
import org.apache.synapse.registry.Registry;
@@ -226,12 +228,17 @@
Property dp = new Property();
dp.setType(Property.DYNAMIC_TYPE);
dp.setKey(key.getAttributeValue());
- dp.setMapper(EndpointFactory.getInstance());
+ //dp.setMapper(EndpointDefinitionFactory.getInstance());
+ dp.setMapper(EndpointAbstractFactory.getEndpointFactroy(ele));
config.addNamedEndpoint(name.getAttributeValue(), dp);
} else {
- Endpoint endpoint = EndpointFactory.createEndpoint(ele, false);
- // add this endpoint to the configuration
+ Endpoint endpoint = EndpointAbstractFactory.getEndpointFactroy(ele).
+ createEndpoint(ele, false);
config.addNamedEndpoint(endpoint.getName(), endpoint);
+
+ //EndpointDefinition endpoint = EndpointDefinitionFactory.createEndpoint(ele, false);
+ //// add this endpoint to the configuration
+ //config.addNamedEndpoint(endpoint.getName(), endpoint);
}
}
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigurationSerializer.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigurationSerializer.java?view=diff&rev=514989&r1=514988&r2=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigurationSerializer.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigurationSerializer.java Mon Mar 5 21:48:09 2007
@@ -26,7 +26,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseException;
-import org.apache.synapse.config.Endpoint;
+import org.apache.synapse.config.EndpointDefinition;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.config.Property;
import org.apache.synapse.core.axis2.ProxyService;
@@ -117,8 +117,8 @@
"key", nullNS, dp.getKey()));
definitions.addChild(endpoint);
- } else if (endpt instanceof Endpoint) {
- EndpointSerializer.serializeEndpoint((Endpoint) endpt, definitions);
+ } else if (endpt instanceof EndpointDefinition) {
+ EndpointDefinitionSerializer.serializeEndpoint((EndpointDefinition) endpt, definitions);
} else {
handleException("Invalid endpoint. Type : " + endpt.getClass());
}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,179 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.AddressEndpoint;
+import org.apache.synapse.config.EndpointDefinition;
+import org.apache.synapse.config.xml.endpoints.utils.WSDL11EndpointBuilder;
+import org.apache.synapse.config.xml.endpoints.utils.WSDL20EndpointBuilder;
+import org.apache.synapse.Constants;
+import org.apache.synapse.SynapseException;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.axis2.wsdl.WSDLConstants;
+
+import javax.xml.namespace.QName;
+import java.net.URL;
+import java.net.MalformedURLException;
+import java.io.IOException;
+
+public class AddressEndpointFactory implements EndpointFactory {
+
+ private static Log log = LogFactory.getLog(AddressEndpointFactory.class);
+
+ private static AddressEndpointFactory instance = new AddressEndpointFactory();
+
+ private AddressEndpointFactory() {}
+
+ public static AddressEndpointFactory getInstance() {
+ return instance;
+ }
+
+ public Endpoint createEndpoint(OMElement epConfig, boolean anonymousEndpoint) {
+
+ AddressEndpoint addressEndpoint = new AddressEndpoint();
+
+ if (!anonymousEndpoint) {
+ OMAttribute name = epConfig.getAttribute(new QName(
+ org.apache.synapse.config.xml.Constants.NULL_NAMESPACE, "name"));
+
+ if (name != null) {
+ addressEndpoint.setName(name.getAttributeValue());
+ }
+ }
+
+ OMElement addressElement = epConfig.getFirstChildWithName
+ (new QName(Constants.SYNAPSE_NAMESPACE, "address"));
+
+ if (addressElement != null) {
+ EndpointDefinition endpoint = createEndpointDefinition(addressElement);
+ addressEndpoint.setEndpoint(endpoint);
+ }
+
+ return addressEndpoint;
+ }
+
+ public Object getObjectFromOMNode(OMNode om) {
+ if (om instanceof OMElement) {
+ return createEndpoint((OMElement) om, false);
+ } else {
+ handleException("Invalid XML configuration for an Endpoint. OMElement expected");
+ }
+ return null;
+ }
+
+ private EndpointDefinition createEndpointDefinition(OMElement elem) {
+
+ OMAttribute name = elem.getAttribute(new QName(
+ org.apache.synapse.config.xml.Constants.NULL_NAMESPACE, "name"));
+ OMAttribute address = elem.getAttribute(new QName(
+ org.apache.synapse.config.xml.Constants.NULL_NAMESPACE, "uri"));
+ OMAttribute force = elem.getAttribute(new QName(
+ org.apache.synapse.config.xml.Constants.NULL_NAMESPACE, "force"));
+ OMAttribute optimize = elem.getAttribute(new QName(
+ org.apache.synapse.config.xml.Constants.NULL_NAMESPACE, "optimize"));
+ OMAttribute reference = elem.getAttribute(new QName(
+ org.apache.synapse.config.xml.Constants.NULL_NAMESPACE, "ref"));
+
+ EndpointDefinition endpoint = new EndpointDefinition();
+
+ if (reference != null) {
+ endpoint.setRef(reference.getAttributeValue());
+ } else if (address != null) {
+ endpoint.setAddress(address.getAttributeValue());
+ } else {
+ handleException("One of the 'address' or 'ref' attributes are required in an "
+ + "anonymous endpoint");
+ }
+
+ if (force != null)
+ {
+ String forceValue = force.getAttributeValue().trim().toLowerCase();
+ if (forceValue.equals("pox")) {
+ endpoint.setForcePOX(true);
+ } else if (forceValue.equals("soap")) {
+ endpoint.setForceSOAP(true);
+ } else {
+ handleException("force value -\""+forceValue+"\" not yet implemented");
+ }
+ }
+
+ if (optimize != null && optimize.getAttributeValue().length() > 0) {
+ String method = optimize.getAttributeValue().trim();
+ if ("mtom".equalsIgnoreCase(method)) {
+ endpoint.setUseMTOM(true);
+ } else if ("swa".equalsIgnoreCase(method)) {
+ endpoint.setUseSwa(true);
+ }
+ }
+
+ OMElement wsAddr = elem.getFirstChildWithName(new QName(
+ org.apache.synapse.config.xml.Constants.SYNAPSE_NAMESPACE, "enableAddressing"));
+ if (wsAddr != null) {
+ endpoint.setAddressingOn(true);
+ String useSepList = wsAddr.getAttributeValue(new QName(
+ "separateListener"));
+ if (useSepList != null) {
+ if (useSepList.trim().toLowerCase().startsWith("tr")
+ || useSepList.trim().startsWith("1")) {
+ endpoint.setUseSeparateListener(true);
+ }
+ }
+ }
+
+ OMElement wsSec = elem.getFirstChildWithName(new QName(
+ org.apache.synapse.config.xml.Constants.SYNAPSE_NAMESPACE, "enableSec"));
+ if (wsSec != null) {
+ endpoint.setSecurityOn(true);
+ OMAttribute policy = wsSec.getAttribute(new QName(
+ org.apache.synapse.config.xml.Constants.NULL_NAMESPACE, "policy"));
+ if (policy != null) {
+ endpoint.setWsSecPolicyKey(policy.getAttributeValue());
+ }
+ }
+ OMElement wsRm = elem.getFirstChildWithName(new QName(
+ org.apache.synapse.config.xml.Constants.SYNAPSE_NAMESPACE, "enableRM"));
+ if (wsRm != null) {
+ endpoint.setReliableMessagingOn(true);
+ OMAttribute policy = wsRm.getAttribute(new QName(
+ org.apache.synapse.config.xml.Constants.NULL_NAMESPACE, "policy"));
+ if (policy != null) {
+ endpoint.setWsRMPolicyKey(policy.getAttributeValue());
+ }
+ }
+
+ return endpoint;
+ }
+
+ private static void handleException(String msg) {
+ log.error(msg);
+ throw new SynapseException(msg);
+ }
+
+ private static void handleException(String msg, Exception e) {
+ log.error(msg, e);
+ throw new SynapseException(msg, e);
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.AddressEndpoint;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.Constants;
+import org.apache.synapse.config.EndpointDefinition;
+
+public class AddressEndpointSerializer implements EndpointSerializer {
+
+ private OMFactory fac = null;
+
+ public OMElement serializeEndpoint(Endpoint endpoint) {
+
+ if (!(endpoint instanceof AddressEndpoint)) {
+ throw new SynapseException("Invalid endpoint type.");
+ }
+
+ fac = OMAbstractFactory.getOMFactory();
+ OMElement endpointElement = fac.createOMElement("endpoint", Constants.SYNAPSE_OMNAMESPACE);
+
+ AddressEndpoint addressEndpoint = (AddressEndpoint) endpoint;
+ String name = addressEndpoint.getName();
+ if (name != null) {
+ endpointElement.addAttribute("name", name, null);
+ }
+
+ EndpointDefinition epAddress = addressEndpoint.getEndpoint();
+ OMElement addressElement = serializeAddress(epAddress);
+ endpointElement.addChild(addressElement);
+
+ return endpointElement;
+ }
+
+ public OMElement serializeAddress(EndpointDefinition address) {
+
+ OMElement addressElement = fac.createOMElement("address", Constants.SYNAPSE_OMNAMESPACE);
+ String uri = address.getAddress();
+ if (uri != null) {
+ addressElement.addAttribute("uri", uri, null);
+ }
+
+ if (address.isAddressingOn()) {
+ addressElement.addChild(fac.createOMElement("enableAddressing", Constants.SYNAPSE_OMNAMESPACE));
+ }
+
+ return addressElement;
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointAbstractFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointAbstractFactory.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointAbstractFactory.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointAbstractFactory.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.Constants;
+
+import javax.xml.namespace.QName;
+
+public class EndpointAbstractFactory {
+
+ public static EndpointFactory getEndpointFactroy(OMElement configElement) {
+
+ if (configElement.getAttribute(new QName("ref")) != null) {
+ IndirectEndpointFactory endpointFactory = IndirectEndpointFactory.getInstance();
+ return endpointFactory;
+ }
+
+ OMElement addressElement = configElement.getFirstChildWithName
+ (new QName(Constants.SYNAPSE_NAMESPACE, "address"));
+ if (addressElement != null) {
+ EndpointFactory endpointFactory = AddressEndpointFactory.getInstance();
+ return endpointFactory;
+ }
+
+ OMElement wsdlElement = configElement.getFirstChildWithName
+ (new QName(Constants.SYNAPSE_NAMESPACE, "wsdl"));
+ if (wsdlElement != null) {
+ EndpointFactory endpointFactory = WSDLEndpointFactory.getInstance();
+ return endpointFactory;
+ }
+
+ OMElement lbElement = configElement.getFirstChildWithName
+ (new QName(Constants.SYNAPSE_NAMESPACE, "loadbalance"));
+ if (lbElement != null) {
+ EndpointFactory endpointFactory = LoadbalanceEndpointFactory.getInstance();
+ return endpointFactory;
+ }
+
+ OMElement foElement = configElement.getFirstChildWithName
+ (new QName(Constants.SYNAPSE_NAMESPACE, "failover"));
+ if (foElement != null) {
+ EndpointFactory endpointFactory = FailoverEndpointFactory.getInstance();
+ return endpointFactory;
+ }
+
+ return null;
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointAbstractSerializer.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointAbstractSerializer.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointAbstractSerializer.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointAbstractSerializer.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.synapse.mediators.builtin.send.endpoints.*;
+import org.apache.synapse.SynapseException;
+
+public class EndpointAbstractSerializer {
+
+ public static EndpointSerializer getEndpointSerializer(Endpoint endpoint) {
+
+ if (endpoint instanceof AddressEndpoint) {
+ return new AddressEndpointSerializer();
+ } else if (endpoint instanceof WSDLEndpoint) {
+ return new WSDLEndpointSerializer();
+ } else if (endpoint instanceof IndirectEndpoint) {
+ return new IndirectEndpointSerializer();
+ } else if (endpoint instanceof LoadbalanceEndpoint) {
+ return new LoadbalanceEndpointSerializer();
+ } else if (endpoint instanceof FailoverEndpoint) {
+ return new FailoverEndpointSerializer();
+ }
+
+ throw new SynapseException("Serializer for endpoint " +
+ endpoint.getClass().toString() + " is not defined.");
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.config.XMLToObjectMapper;
+import org.apache.axiom.om.OMElement;
+
+public interface EndpointFactory extends XMLToObjectMapper {
+ public Endpoint createEndpoint(OMElement epConfig, boolean anonymousEndpoint);
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+
+public interface EndpointSerializer {
+
+ public OMElement serializeEndpoint(Endpoint endpoint);
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointFactory.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.FailoverEndpoint;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.Constants;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNode;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+public class FailoverEndpointFactory implements EndpointFactory {
+
+ private static Log log = LogFactory.getLog(FailoverEndpointFactory.class);
+
+ private static FailoverEndpointFactory instance = new FailoverEndpointFactory();
+
+ private FailoverEndpointFactory() {}
+
+ public static FailoverEndpointFactory getInstance() {
+ return instance;
+ }
+
+ public Endpoint createEndpoint(OMElement epConfig, boolean anonymousEndpoint) {
+
+ OMElement failoverElement = epConfig.getFirstChildWithName
+ (new QName(Constants.SYNAPSE_NAMESPACE, "failover"));
+ if (failoverElement != null) {
+
+ FailoverEndpoint failoverEndpoint = new FailoverEndpoint();
+
+ // set endpoint name
+ String name = failoverElement.getAttributeValue(new QName("name"));
+ if (name != null) {
+ failoverEndpoint.setName(name);
+ }
+
+ // set endpoints
+ ArrayList endpoints = getEndpoints(failoverElement);
+ failoverEndpoint.setEndpoints(endpoints);
+
+ return failoverEndpoint;
+ }
+
+ return null;
+ }
+
+ public Object getObjectFromOMNode(OMNode om) {
+ if (om instanceof OMElement) {
+ return createEndpoint((OMElement) om, false);
+ } else {
+ handleException("Invalid XML configuration for an Endpoint. OMElement expected");
+ }
+ return null;
+ }
+
+ private ArrayList getEndpoints(OMElement failoverElement) {
+
+ ArrayList endpoints = new ArrayList();
+ Iterator iter = failoverElement.getChildrenWithName
+ (org.apache.synapse.config.xml.Constants.ENDPOINT_ELT);
+ while (iter.hasNext()) {
+
+ OMElement endptElem = (OMElement) iter.next();
+
+ EndpointFactory epFac = EndpointAbstractFactory.getEndpointFactroy(endptElem);
+ Endpoint endpoint = epFac.createEndpoint(endptElem, true);
+ endpoints.add(endpoint);
+ }
+
+ return endpoints;
+ }
+
+ private static void handleException(String msg) {
+ log.error(msg);
+ throw new SynapseException(msg);
+ }
+
+ private static void handleException(String msg, Exception e) {
+ log.error(msg, e);
+ throw new SynapseException(msg, e);
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMFactory;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.FailoverEndpoint;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.Constants;
+
+import java.util.ArrayList;
+
+public class FailoverEndpointSerializer implements EndpointSerializer {
+
+ private OMFactory fac = null;
+
+ public OMElement serializeEndpoint(Endpoint endpoint) {
+
+ if (!(endpoint instanceof FailoverEndpoint)) {
+ throw new SynapseException("Invalid endpoint type.");
+ }
+
+ FailoverEndpoint failoverEndpoint = (FailoverEndpoint) endpoint;
+
+ fac = OMAbstractFactory.getOMFactory();
+ OMElement endpointElement = fac.createOMElement("endpoint", Constants.SYNAPSE_OMNAMESPACE);
+
+ OMElement failoverElement = fac.createOMElement("failover", Constants.SYNAPSE_OMNAMESPACE);
+ endpointElement.addChild(failoverElement);
+
+ String name = failoverEndpoint.getName();
+ if (name != null) {
+ endpointElement.addAttribute("name", name, null);
+ }
+
+ ArrayList endpoints = failoverEndpoint.getEndpoints();
+ for (int i = 0; i < endpoints.size(); i++) {
+ Endpoint childEndpoint = (Endpoint) endpoints.get(i);
+ EndpointSerializer serializer = EndpointAbstractSerializer.
+ getEndpointSerializer(childEndpoint);
+ OMElement aeElement = serializer.serializeEndpoint(childEndpoint);
+ failoverElement.addChild(aeElement);
+ }
+
+ return endpointElement;
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/IndirectEndpointFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/IndirectEndpointFactory.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/IndirectEndpointFactory.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/IndirectEndpointFactory.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.IndirectEndpoint;
+import org.apache.synapse.SynapseException;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNode;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.xml.namespace.QName;
+
+public class IndirectEndpointFactory implements EndpointFactory {
+
+ private static Log log = LogFactory.getLog(IndirectEndpointFactory.class);
+
+ private static IndirectEndpointFactory instance = new IndirectEndpointFactory();
+
+ private IndirectEndpointFactory() {}
+
+ public static IndirectEndpointFactory getInstance() {
+ return instance;
+ }
+
+ public Endpoint createEndpoint(OMElement epConfig, boolean anonymousEndpoint) {
+
+ IndirectEndpoint indirectEndpoint = new IndirectEndpoint();
+ String ref = epConfig.getAttributeValue(new QName("ref"));
+ indirectEndpoint.setRef(ref);
+ return indirectEndpoint;
+ }
+
+ public Object getObjectFromOMNode(OMNode om) {
+ if (om instanceof OMElement) {
+ return createEndpoint((OMElement) om, false);
+ } else {
+ handleException("Invalid XML configuration for an Endpoint. OMElement expected");
+ }
+ return null;
+ }
+
+ private static void handleException(String msg) {
+ log.error(msg);
+ throw new SynapseException(msg);
+ }
+
+ private static void handleException(String msg, Exception e) {
+ log.error(msg, e);
+ throw new SynapseException(msg, e);
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/IndirectEndpointSerializer.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/IndirectEndpointSerializer.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/IndirectEndpointSerializer.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/IndirectEndpointSerializer.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMFactory;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.IndirectEndpoint;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.Constants;
+
+public class IndirectEndpointSerializer implements EndpointSerializer {
+
+ private OMFactory fac = null;
+
+ public OMElement serializeEndpoint(Endpoint endpoint) {
+
+ if (!(endpoint instanceof IndirectEndpoint)) {
+ throw new SynapseException("Invalid endpoint type.");
+ }
+
+ fac = OMAbstractFactory.getOMFactory();
+ OMElement endpointElement = fac.createOMElement("endpoint", Constants.SYNAPSE_OMNAMESPACE);
+
+ IndirectEndpoint indirectEndpoint = (IndirectEndpoint) endpoint;
+ String ref = indirectEndpoint.getRef();
+ if (ref != null) {
+ endpointElement.addAttribute("ref", ref, null);
+ }
+
+ return endpointElement;
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointFactory.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.LoadbalanceEndpoint;
+import org.apache.synapse.mediators.builtin.send.algorithms.LoadbalanceAlgorithm;
+import org.apache.synapse.mediators.builtin.send.SendConstants;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.Constants;
+import org.apache.synapse.config.xml.endpoints.utils.LoadbalanceAlgorithmFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.OMAttribute;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.xml.namespace.QName;
+import java.util.Iterator;
+import java.util.ArrayList;
+
+public class LoadbalanceEndpointFactory implements EndpointFactory {
+
+ private static Log log = LogFactory.getLog(LoadbalanceEndpointFactory.class);
+
+ private static LoadbalanceEndpointFactory instance = new LoadbalanceEndpointFactory();
+
+ private LoadbalanceEndpointFactory() {}
+
+ public static LoadbalanceEndpointFactory getInstance() {
+ return instance;
+ }
+
+ public Endpoint createEndpoint(OMElement epConfig, boolean anonymousEndpoint) {
+
+ // create the endpoint, manager and the algorithms
+
+ OMElement loadbalanceElement = null;
+ loadbalanceElement = epConfig.getFirstChildWithName
+ (new QName(Constants.SYNAPSE_NAMESPACE, "loadbalance"));
+
+ if(loadbalanceElement != null) {
+
+ LoadbalanceEndpoint loadbalanceEndpoint = new LoadbalanceEndpoint();
+
+ // set endpoint name
+ OMAttribute name = epConfig.getAttribute(new QName(
+ org.apache.synapse.config.xml.Constants.NULL_NAMESPACE, "name"));
+
+ if (name != null) {
+ loadbalanceEndpoint.setName(name.getAttributeValue());
+ }
+
+ // set endpoints
+ ArrayList endpoints = getEndpoints(loadbalanceElement);
+ loadbalanceEndpoint.setEndpoints(endpoints);
+
+ // set load balance algorithm
+ LoadbalanceAlgorithm algorithm = LoadbalanceAlgorithmFactory.
+ createLoadbalanceAlgorithm(loadbalanceElement, endpoints);
+ loadbalanceEndpoint.setAlgorithm(algorithm);
+
+ // set abandon time
+ long abandonTime = 0;
+ OMAttribute atAttribute = loadbalanceElement.getAttribute
+ (new QName(null, SendConstants.RETRY_AFTER_FAILURE_TIME));
+ if(atAttribute != null) {
+ String at = atAttribute.getAttributeValue();
+ abandonTime = Long.parseLong(at);
+ loadbalanceEndpoint.setAbandonTime(abandonTime);
+ }
+
+ //long retryInterval = 30000;
+ //OMAttribute riAttribute = loadbalanceElement.getAttribute
+ // (new QName(null, Constants.RETRY_INTERVAL));
+ //
+ //if(riAttribute != null) {
+ // String ri = riAttribute.getAttributeValue();
+ // retryInterval = Long.parseLong(ri);
+ //}
+
+ //int maximumRetries = 0;
+ //OMAttribute mrAttribute = loadbalanceElement.getAttribute
+ // (new QName(null, Constants.MAXIMUM_RETRIES));
+ //
+ //if(mrAttribute != null) {
+ // String mr = mrAttribute.getAttributeValue();
+ // maximumRetries = Integer.parseInt(mr);
+ //}
+
+ return loadbalanceEndpoint;
+ }
+
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ public Object getObjectFromOMNode(OMNode om) {
+ if (om instanceof OMElement) {
+ return createEndpoint((OMElement) om, false);
+ } else {
+ handleException("Invalid XML configuration for an Endpoint. OMElement expected");
+ }
+ return null;
+ }
+
+ private ArrayList getEndpoints(OMElement loadbalanceElement) {
+
+ ArrayList endpoints = new ArrayList();
+ Iterator iter = loadbalanceElement.getChildrenWithName
+ (org.apache.synapse.config.xml.Constants.ENDPOINT_ELT);
+ while (iter.hasNext()) {
+
+ OMElement endptElem = (OMElement) iter.next();
+
+ EndpointFactory epFac = EndpointAbstractFactory.getEndpointFactroy(endptElem);
+ Endpoint endpoint = epFac.createEndpoint(endptElem, true);
+ endpoints.add(endpoint);
+ }
+
+ return endpoints;
+ }
+
+ private static void handleException(String msg) {
+ log.error(msg);
+ throw new SynapseException(msg);
+ }
+
+ private static void handleException(String msg, Exception e) {
+ log.error(msg, e);
+ throw new SynapseException(msg, e);
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.LoadbalanceEndpoint;
+import org.apache.synapse.mediators.builtin.send.algorithms.LoadbalanceAlgorithm;
+import org.apache.synapse.mediators.builtin.send.algorithms.RoundRobin;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.Constants;
+
+import java.util.ArrayList;
+
+public class LoadbalanceEndpointSerializer implements EndpointSerializer {
+
+ private OMFactory fac = null;
+
+ public OMElement serializeEndpoint(Endpoint endpoint) {
+
+ if (!(endpoint instanceof LoadbalanceEndpoint)) {
+ throw new SynapseException("Invalid endpoint type.");
+ }
+
+ fac = OMAbstractFactory.getOMFactory();
+ OMElement endpointElement = fac.createOMElement("endpoint", Constants.SYNAPSE_OMNAMESPACE);
+
+ LoadbalanceEndpoint loadbalanceEndpoint = (LoadbalanceEndpoint) endpoint;
+
+ String name = loadbalanceEndpoint.getName();
+ if (name != null) {
+ endpointElement.addAttribute("name", name, null);
+ }
+
+ OMElement loadbalanceElement = fac.createOMElement("loadbalance", Constants.SYNAPSE_OMNAMESPACE);
+ endpointElement.addChild(loadbalanceElement);
+
+ LoadbalanceAlgorithm algorithm = loadbalanceEndpoint.getAlgorithm();
+ String algorithmName = "roundRobin";
+ if (algorithm instanceof RoundRobin) {
+ algorithmName = "roundRobin";
+ }
+ loadbalanceElement.addAttribute("algorithm", algorithmName, null);
+
+ ArrayList endpoints = loadbalanceEndpoint.getEndpoints();
+ for (int i = 0; i < endpoints.size(); i++) {
+ Endpoint childEndpoint = (Endpoint) endpoints.get(i);
+ EndpointSerializer serializer = EndpointAbstractSerializer.
+ getEndpointSerializer(childEndpoint);
+ OMElement aeElement = serializer.serializeEndpoint(childEndpoint);
+ loadbalanceElement.addChild(aeElement);
+ }
+
+ return endpointElement;
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.WSDLEndpoint;
+import org.apache.synapse.Constants;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.config.EndpointDefinition;
+import org.apache.synapse.config.xml.endpoints.utils.WSDL11EndpointBuilder;
+import org.apache.synapse.config.xml.endpoints.utils.WSDL20EndpointBuilder;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.axis2.wsdl.WSDLConstants;
+
+import javax.xml.namespace.QName;
+import java.net.URL;
+
+public class WSDLEndpointFactory implements EndpointFactory {
+
+ private static Log log = LogFactory.getLog(WSDLEndpointFactory.class);
+
+ private static WSDLEndpointFactory instance = new WSDLEndpointFactory();
+
+ private WSDLEndpointFactory() {}
+
+ public static WSDLEndpointFactory getInstance() {
+ return instance;
+ }
+
+ public Object getObjectFromOMNode(OMNode om) {
+ if (om instanceof OMElement) {
+ return createEndpoint((OMElement) om, false);
+ } else {
+ handleException("Invalid XML configuration for an Endpoint. OMElement expected");
+ }
+ return null;
+ }
+
+ public Endpoint createEndpoint(OMElement epConfig, boolean anonymousEndpoint) {
+
+ WSDLEndpoint wsdlEndpoint = new WSDLEndpoint();
+
+ if (!anonymousEndpoint) {
+ OMAttribute name = epConfig.getAttribute(new QName(
+ org.apache.synapse.config.xml.Constants.NULL_NAMESPACE, "name"));
+
+ if (name != null) {
+ wsdlEndpoint.setName(name.getAttributeValue());
+ }
+ }
+
+ OMElement wsdlElement = epConfig.getFirstChildWithName
+ (new QName(Constants.SYNAPSE_NAMESPACE, "wsdl"));
+
+ if (wsdlElement != null) {
+
+ String wsdlURI = wsdlElement.getAttributeValue(new QName("uri"));
+ try {
+ EndpointDefinition endpoint = new EndpointDefinition();
+
+ URL wsdlURL = new URL(wsdlURI);
+ StAXOMBuilder OMBuilder = new StAXOMBuilder(wsdlURL.openConnection().getInputStream());
+ OMElement docElement = OMBuilder.getDocumentElement();
+ String ns = docElement.getNamespace().getNamespaceURI();
+
+ if (org.apache.axis2.namespace.Constants.NS_URI_WSDL11.equals(ns)) {
+ endpoint = new WSDL11EndpointBuilder().
+ createEndpointDefinitionFromWSDL(wsdlElement);
+ } else if (WSDLConstants.WSDL20_2006Constants.DEFAULT_NAMESPACE_URI.equals(ns)) {
+ endpoint = new WSDL20EndpointBuilder().
+ createEndpointDefinitionFromWSDL(wsdlElement);
+ }
+ wsdlEndpoint.setEndpointDefinition(endpoint);
+ } catch (Exception e1) {
+
+ }
+ }
+
+ return wsdlEndpoint;
+ }
+
+ private static void handleException(String msg) {
+ log.error(msg);
+ throw new SynapseException(msg);
+ }
+
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.synapse.mediators.builtin.send.endpoints.Endpoint;
+import org.apache.synapse.mediators.builtin.send.endpoints.WSDLEndpoint;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.Constants;
+import org.apache.synapse.config.EndpointDefinition;
+
+public class WSDLEndpointSerializer implements EndpointSerializer {
+
+ private OMFactory fac = null;
+
+ public OMElement serializeEndpoint(Endpoint endpoint) {
+
+ if (!(endpoint instanceof WSDLEndpoint)) {
+ throw new SynapseException("Invalid endpoint type.");
+ }
+
+ fac = OMAbstractFactory.getOMFactory();
+ OMElement endpointElement = fac.createOMElement("endpoint", Constants.SYNAPSE_OMNAMESPACE);
+
+ WSDLEndpoint wsdlEndpoint = (WSDLEndpoint) endpoint;
+ String name = wsdlEndpoint.getName();
+ if (name != null) {
+ endpointElement.addAttribute("name", name, null);
+ }
+
+ EndpointDefinition epAddress = wsdlEndpoint.getEndpointDefinition();
+ OMElement wsdlElement = serializeWSDL(epAddress);
+ endpointElement.addChild(wsdlElement);
+
+ return endpointElement;
+ }
+
+ public OMElement serializeWSDL(EndpointDefinition epDef) {
+
+ return null;
+ }
+}
Added: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/LoadbalanceAlgorithmFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/LoadbalanceAlgorithmFactory.java?view=auto&rev=514989
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/LoadbalanceAlgorithmFactory.java (added)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/LoadbalanceAlgorithmFactory.java Mon Mar 5 21:48:09 2007
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints.utils;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMAttribute;
+import org.apache.synapse.mediators.builtin.send.algorithms.LoadbalanceAlgorithm;
+import org.apache.synapse.mediators.builtin.send.algorithms.RoundRobin;
+import org.apache.synapse.mediators.builtin.send.SendConstants;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+
+/**
+ * Factroy of all load balance algorithms. ESBSendMediatorFactroy will use this to create the
+ * appropriate algorithm implementation.
+ */
+public class LoadbalanceAlgorithmFactory {
+
+ public static LoadbalanceAlgorithm createLoadbalanceAlgorithm(OMElement loadbalanceElement, ArrayList endpoints) {
+
+ LoadbalanceAlgorithm algorithm = null;
+
+ String algorithmName = "roundRobin";
+ OMAttribute algoAttribute = loadbalanceElement.getAttribute(new QName(null, SendConstants.ALGORITHM_NAME));
+ if(algoAttribute != null) {
+ algorithmName = algoAttribute.getAttributeValue();
+ }
+
+ if(algorithmName.equalsIgnoreCase("roundRobin")) {
+ algorithm = new RoundRobin(endpoints);
+ }
+
+ return algorithm;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org