You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by su...@apache.org on 2011/04/28 11:23:23 UTC
svn commit: r1097378 - in
/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml:
./ endpoints/
Author: supun
Date: Thu Apr 28 09:23:22 2011
New Revision: 1097378
URL: http://svn.apache.org/viewvc?rev=1097378&view=rev
Log:
applying patch SYNAPSE 753, many thanks Udayanga for the contribution
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MultiXMLConfigurationSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/TemplateSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MultiXMLConfigurationSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MultiXMLConfigurationSerializer.java?rev=1097378&r1=1097377&r2=1097378&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MultiXMLConfigurationSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/MultiXMLConfigurationSerializer.java Thu Apr 28 09:23:22 2011
@@ -19,11 +19,14 @@
package org.apache.synapse.config.xml;
+import net.sf.saxon.value.SequenceType;
+import org.apache.synapse.config.xml.endpoints.TemplateSerializer;
import org.apache.synapse.deployers.SynapseArtifactDeploymentStore;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.config.Entry;
import org.apache.synapse.config.xml.eventing.EventSourceSerializer;
import org.apache.synapse.config.xml.endpoints.EndpointSerializer;
+import org.apache.synapse.endpoints.Template;
import org.apache.synapse.mediators.template.TemplateMediator;
import org.apache.synapse.registry.Registry;
import org.apache.synapse.core.axis2.ProxyService;
@@ -192,6 +195,11 @@ public class MultiXMLConfigurationSerial
MediatorSerializerFinder.getInstance().
getSerializer(seq).serializeMediator(definitions, seq);
}
+ } else if (o instanceof Template) {
+ Template templEndpoint = (Template) o;
+ if (templEndpoint.getFileName() == null) {
+ new TemplateSerializer().serializeEndpointTemplate(templEndpoint, definitions);
+ }
} else if (o instanceof AbstractEndpoint) {
AbstractEndpoint endpoint = (AbstractEndpoint) o;
if (endpoint.getFileName() == null) {
@@ -343,6 +351,25 @@ public class MultiXMLConfigurationSerial
return seqElem;
}
+ public OMElement serializeTemplate(Template template, SynapseConfiguration synapseConfig,
+ OMElement parent) throws Exception {
+
+ File seqDir = createDirectory(currentDirectory, MultiXMLConfigurationBuilder.TEMPLATES_DIR);
+
+ OMElement seqElem = new TemplateSerializer().serializeEndpointTemplate(template, parent);
+ String fileName = template.getFileName();
+ if (fileName != null) {
+ handleDeployment(seqDir, fileName, template.getName(),
+ synapseConfig.getArtifactDeploymentStore());
+ File seqFile = new File(seqDir, fileName);
+ writeToFile(seqElem, seqFile);
+ } else if (parent != null) {
+ parent.addChild(seqElem);
+ }
+
+ return seqElem;
+ }
+
public OMElement serializeEndpoint(Endpoint epr, SynapseConfiguration synapseConfig,
OMElement parent) throws Exception {
@@ -368,6 +395,8 @@ public class MultiXMLConfigurationSerial
return serializeTemplate((TemplateMediator) o, synapseConfig, parent);
} else if (o instanceof SequenceMediator) {
return serializeSequence((SequenceMediator) o, synapseConfig, parent);
+ } else if (o instanceof Template) {
+ return serializeTemplate((Template) o, synapseConfig, parent);
} else if (o instanceof Endpoint) {
return serializeEndpoint((Endpoint) o, synapseConfig, parent);
} else if (o instanceof Entry) {
@@ -613,6 +642,20 @@ public class MultiXMLConfigurationSerial
EXECUTORS_DIR), exec.getFileName(), exec.getName(), deploymentStore);
}
}
+
+ for (TemplateMediator medTempl : synapseConfig.getSequenceTemplates().values()) {
+ if (medTempl.getFileName() != null) {
+ handleDeployment(new File(rootDirectory, MultiXMLConfigurationBuilder.
+ TEMPLATES_DIR), medTempl.getFileName(), medTempl.getName(), deploymentStore);
+ }
+ }
+
+ for (Template endTempl : synapseConfig.getEndpointTemplates().values()) {
+ if (endTempl.getFileName() != null) {
+ handleDeployment(new File(rootDirectory, MultiXMLConfigurationBuilder.
+ TEMPLATES_DIR), endTempl.getFileName(), endTempl.getName(), deploymentStore);
+ }
+ }
}
}
\ No newline at end of file
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java?rev=1097378&r1=1097377&r2=1097378&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointFactory.java Thu Apr 28 09:23:22 2011
@@ -106,8 +106,14 @@ public class AddressEndpointFactory exte
public EndpointDefinition createEndpointDefinition(OMElement elem) {
OMAttribute address = elem.getAttribute(new QName("uri"));
- EndpointDefinitionFactory fac = new EndpointDefinitionFactory();
- EndpointDefinition endpointDefinition = fac.createDefinition(elem);
+ DefinitionFactory fac = getEndpointDefinitionFactory();
+ EndpointDefinition endpointDefinition;
+ if (fac == null) {
+ fac = new EndpointDefinitionFactory();
+ endpointDefinition = fac.createDefinition(elem);
+ } else{
+ endpointDefinition = fac.createDefinition(elem);
+ }
if (address != null) {
endpointDefinition.setAddress(address.getAttributeValue().trim());
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointFactory.java?rev=1097378&r1=1097377&r2=1097378&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointFactory.java Thu Apr 28 09:23:22 2011
@@ -121,9 +121,9 @@ public class DefaultEndpointFactory exte
definition.setForceREST(true);
definition.setFormat(SynapseConstants.FORMAT_REST);
- } else {
+ } /*else if(!TemplateMappingsPopulator.populateMapping(definition, EndpointDefinition.EndpointDefKey.format, forceValue)) {
handleException("force value -\"" + forceValue + "\" not yet implemented");
- }
+ }*/
}
}
@@ -137,8 +137,14 @@ public class DefaultEndpointFactory exte
* @return EndpointDefinition object containing the endpoint details.
*/
public EndpointDefinition createEndpointDefinition(OMElement elem) {
- EndpointDefinitionFactory fac = new EndpointDefinitionFactory();
- EndpointDefinition endpointDefinition = fac.createDefinition(elem);
+ DefinitionFactory fac = getEndpointDefinitionFactory();
+ EndpointDefinition endpointDefinition;
+ if (fac == null) {
+ fac = new EndpointDefinitionFactory();
+ endpointDefinition = fac.createDefinition(elem);
+ } else{
+ endpointDefinition = fac.createDefinition(elem);
+ }
extractSpecificEndpointProperties(endpointDefinition, elem);
return endpointDefinition;
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionFactory.java?rev=1097378&r1=1097377&r2=1097378&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointDefinitionFactory.java Thu Apr 28 09:23:22 2011
@@ -31,7 +31,7 @@ import org.apache.synapse.endpoints.Endp
import javax.xml.namespace.QName;
import java.util.StringTokenizer;
-public class EndpointDefinitionFactory {
+public class EndpointDefinitionFactory implements DefinitionFactory{
public static final Log log = LogFactory.getLog(EndpointDefinitionFactory.class);
/**
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java?rev=1097378&r1=1097377&r2=1097378&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java Thu Apr 28 09:23:22 2011
@@ -53,6 +53,7 @@ import java.util.*;
public abstract class EndpointFactory implements XMLToObjectMapper {
static Log log;
+ private DefinitionFactory customDefnFactory = null;
protected EndpointFactory() {
log = LogFactory.getLog(this.getClass());
@@ -80,6 +81,25 @@ public abstract class EndpointFactory im
}
/**
+ * Core method which is exposed for the external use, and this will find the proper
+ * {@link EndpointFactory} and create the endpoint which is of the format {@link Endpoint}.However
+ * defintion for this endpoint will be built using a custom Endpoint Defn factory.
+ *
+ * @param elem XML from which the endpoint will be built
+ * @param factory custom definition factory which this endpoint will be used to build
+ * @param isAnonymous whether this is an anonymous endpoint or not
+ * @param properties bag of properties to pass in any information to the factory
+ * @return created endpoint
+ */
+ public static Endpoint getEndpointFromElement(OMElement elem,DefinitionFactory factory,
+ boolean isAnonymous,
+ Properties properties) {
+ EndpointFactory fac = getEndpointFactory(elem);
+ fac.setEndpointDefinitionFactory(factory);
+ return fac.createEndpointWithName(elem, isAnonymous, properties);
+ }
+
+ /**
* Creates the {@link Endpoint} object from the provided {@link OMNode}
*
* @param om XML node from which the endpoint will be built
@@ -251,6 +271,22 @@ public abstract class EndpointFactory im
}
/**
+ * provide a custom Endpoint definition factory
+ * @param factory
+ */
+ public void setEndpointDefinitionFactory(DefinitionFactory factory){
+ customDefnFactory = factory;
+ }
+
+ /**
+ * return current factory for building this endpoint definition
+ * @return
+ */
+ public DefinitionFactory getEndpointDefinitionFactory(){
+ return customDefnFactory;
+ }
+
+ /**
* Helper method to extract endpoint properties.
*
* @param endpoint actual endpoint to set the properties
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/TemplateSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/TemplateSerializer.java?rev=1097378&r1=1097377&r2=1097378&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/TemplateSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/TemplateSerializer.java Thu Apr 28 09:23:22 2011
@@ -58,6 +58,6 @@ public class TemplateSerializer {
parent.addChild(templateElement);
}
- return parent;
+ return templateElement;
}
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java?rev=1097378&r1=1097377&r2=1097378&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointFactory.java Thu Apr 28 09:23:22 2011
@@ -95,8 +95,14 @@ public class WSDLEndpointFactory extends
(new QName(SynapseConstants.SYNAPSE_NAMESPACE, "wsdl"));
if (wsdlElement != null) {
- EndpointDefinitionFactory fac = new EndpointDefinitionFactory();
- EndpointDefinition endpoint = fac.createDefinition(wsdlElement);
+ DefinitionFactory fac = getEndpointDefinitionFactory();
+ EndpointDefinition endpoint;
+ if (fac == null) {
+ fac = new EndpointDefinitionFactory();
+ endpoint = fac.createDefinition(wsdlElement);
+ } else {
+ endpoint = fac.createDefinition(wsdlElement);
+ }
// for now, QOS information has to be provided explicitly.
extractSpecificEndpointProperties(endpoint, wsdlElement);