Author: ruwan
Date: Wed Sep 22 09:33:25 2010
New Revision: 999830
URL: http://svn.apache.org/viewvc?rev=999830&view=rev
Log:
Fixing the Configuration building API to pass in properties with additional
information
This helps to get rid of the static references to the resolve root and so forth
via the ServerManager
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractListMediatorFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractMediatorFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/deployers/AbstractSynapseArtifactDeployer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/AbstractRegistry.java
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/AbstractTestCase.java
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/AbstractTestCase.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractListMediatorFactory.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractListMediatorFactory.java?rev=999830&r1=999829&r2=999830&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractListMediatorFactory.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractListMediatorFactory.java
Wed Sep 22 09:33:25 2010
@@ -25,6 +25,7 @@ import org.apache.synapse.SynapseExcepti
import org.apache.synapse.mediators.ListMediator;
import java.util.Iterator;
+import java.util.Properties;
/**
* This implements the basic logic to build a list mediator from a given XML
@@ -32,12 +33,12 @@ import java.util.Iterator;
*/
public abstract class AbstractListMediatorFactory extends
AbstractMediatorFactory {
- protected static void addChildren(OMElement el, ListMediator m) {
+ protected static void addChildren(OMElement el, ListMediator m, Properties
properties) {
Iterator it = el.getChildElements();
while (it.hasNext()) {
OMElement child = (OMElement) it.next();
if (!DESCRIPTION_Q.equals(child.getQName())) { // neglect the
description tag
- Mediator med =
MediatorFactoryFinder.getInstance().getMediator(child);
+ Mediator med =
MediatorFactoryFinder.getInstance().getMediator(child, properties);
if (med != null) {
m.addChild(med);
} else {
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractMediatorFactory.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractMediatorFactory.java?rev=999830&r1=999829&r2=999830&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractMediatorFactory.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/AbstractMediatorFactory.java
Wed Sep 22 09:33:25 2010
@@ -34,6 +34,7 @@ import javax.xml.namespace.QName;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Properties;
/**
* Parent class for all the {...@link MediatorFactory} implementations
@@ -74,18 +75,18 @@ public abstract class AbstractMediatorFa
/**
* Creates the mediator by looking at the given XML element. This method
handles
* extracting the common information from the respective element. It
delegates the mediator
- * specific building to the {...@link
#createSpecificMediator(org.apache.axiom.om.OMElement)}
- * method, which has tobe implemented by the respective mediators</p>
+ * specific building to the {...@link
#createSpecificMediator(org.apache.axiom.om.OMElement,
+ * java.util.Properties)} method, which has tobe implemented by the
respective mediators</p>
*
* <p>This method has been marked as <code>final</code> to avoid
mistakenly overwriting
- * this method instead of the {...@link
#createSpecificMediator(org.apache.axiom.om.OMElement)}
- * by the sub classes
+ * this method instead of the {...@link
#createSpecificMediator(org.apache.axiom.om.OMElement,
+ * java.util.Properties)} by the sub classes
*
* @param elem configuration element of the mediator to be built
* @return built mediator using the above element
*/
- public final Mediator createMediator(OMElement elem) {
- Mediator mediator = createSpecificMediator(elem);
+ public final Mediator createMediator(OMElement elem, Properties
properties) {
+ Mediator mediator = createSpecificMediator(elem, properties);
OMElement descElem = elem.getFirstChildWithName(DESCRIPTION_Q);
if (descElem != null) {
mediator.setDescription(descElem.getText());
@@ -98,9 +99,10 @@ public abstract class AbstractMediatorFa
* {...@link org.apache.synapse.Mediator} by the given XML configuration
*
* @param elem configuration element describing the properties of the
mediator
+ * @param properties bag of properties to pass in any information to the
factory
* @return built mediator of that specific type
*/
- protected abstract Mediator createSpecificMediator(OMElement elem);
+ protected abstract Mediator createSpecificMediator(OMElement elem,
Properties properties);
/**
* This is to Initialize the mediator with the default attributes.
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/deployers/AbstractSynapseArtifactDeployer.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/deployers/AbstractSynapseArtifactDeployer.java?rev=999830&r1=999829&r2=999830&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/deployers/AbstractSynapseArtifactDeployer.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/deployers/AbstractSynapseArtifactDeployer.java
Wed Sep 22 09:33:25 2010
@@ -43,6 +43,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.Properties;
/**
* Implements the generic logic for the synapse artifact deployment and
provide a deployment framework
@@ -81,8 +82,7 @@ public abstract class AbstractSynapseArt
* @param deploymentFileData file to be used for the deployment
* @throws DeploymentException in-case of an error in deploying the file
*
- * @see
org.apache.synapse.deployers.AbstractSynapseArtifactDeployer#deploySynapseArtifact(
- * org.apache.axiom.om.OMElement, String)
+ * @see
AbstractSynapseArtifactDeployer#deploySynapseArtifact(org.apache.axiom.om.OMElement,
String,java.util.Properties)
*/
public void deploy(DeploymentFileData deploymentFileData) throws
DeploymentException {
@@ -122,6 +122,10 @@ public abstract class AbstractSynapseArt
// since all synapse artifacts are XML based
OMElement element = new StAXOMBuilder(
StAXUtils.createXMLStreamReader(in)).getDocumentElement();
+ Properties properties = new Properties();
+ properties.put(SynapseConstants.RESOLVE_ROOT,
getSynapseEnvironment()
+ .getServerContextInformation()
+ .getServerConfigurationInformation().getResolveRoot());
String artifatcName = null;
if (deploymentStore.isUpdatingArtifact(filename)) {
@@ -134,7 +138,7 @@ public abstract class AbstractSynapseArt
deploymentStore.removeUpdatingArtifact(filename);
try {
artifatcName = updateSynapseArtifact(
- element, filename, existingArtifactName);
+ element, filename, existingArtifactName,
properties);
} catch (SynapseArtifactDeploymentException sade) {
log.error("Update of the Synapse Artifact from file : "
+ filename + " : Failed!", sade);
@@ -147,7 +151,7 @@ public abstract class AbstractSynapseArt
} else {
// new artifact hot-deployment case
try {
- artifatcName = deploySynapseArtifact(element,
filename);
+ artifatcName = deploySynapseArtifact(element,
filename, properties);
} catch (SynapseArtifactDeploymentException sade) {
log.error("Deployment of the Synapse Artifact from
file : "
+ filename + " : Failed!", sade);
@@ -257,12 +261,14 @@ public abstract class AbstractSynapseArt
*
* @param artifactConfig built element representing the artifact to be
deployed loaded from the file
* @param fileName file name from which this artifact is being loaded
+ * @param properties
* @return String artifact name created by the deployment task
*
* @see
org.apache.synapse.deployers.AbstractSynapseArtifactDeployer#deploy(
* org.apache.axis2.deployment.repository.util.DeploymentFileData)
*/
- public abstract String deploySynapseArtifact(OMElement artifactConfig,
String fileName);
+ public abstract String deploySynapseArtifact(OMElement artifactConfig,
String fileName,
+ Properties properties);
/**
* All synapse artifact deployers MUST implement this method and it
handles artifact specific update
@@ -271,10 +277,12 @@ public abstract class AbstractSynapseArt
* @param artifactConfig built element representing the artifact to be
deployed loaded from the file
* @param fileName file name from which this artifact is being loaded
* @param existingArtifactName name of the artifact that was being
deployed using the updated file
+ * @param properties bag of properties with the additional infroamtion
* @return String artifact name created by the update task
*/
public abstract String updateSynapseArtifact(OMElement artifactConfig,
String fileName,
- String existingArtifactName);
+ String existingArtifactName,
+ Properties properties);
/**
* All synapse artifact deployers MUST implement this method and it
handles artifact specific undeployment
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/AbstractRegistry.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/AbstractRegistry.java?rev=999830&r1=999829&r2=999830&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/AbstractRegistry.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/registry/AbstractRegistry.java
Wed Sep 22 09:33:25 2010
@@ -42,9 +42,10 @@ public abstract class AbstractRegistry i
/**
* Get the resource for the given key from this registry
* @param entry The Enrty instance that contains meta-data
+ * @param properties bag of properties with additional information
* @return the matching resultant object
*/
- public Object getResource(Entry entry) {
+ public Object getResource(Entry entry, Properties properties) {
OMNode omNode = null;
RegistryEntry re = null;
@@ -107,7 +108,7 @@ public abstract class AbstractRegistry i
// if we have a XMLToObjectMapper for this entry, use it to convert
this
// resource into the appropriate object - e.g. sequence or endpoint
if (entry.getMapper() != null) {
- entry.setValue(entry.getMapper().getObjectFromOMNode(omNode));
+ entry.setValue(entry.getMapper().getObjectFromOMNode(omNode,
properties));
if (entry.getValue() instanceof SequenceMediator) {
SequenceMediator seq = (SequenceMediator) entry.getValue();
@@ -126,7 +127,7 @@ public abstract class AbstractRegistry i
XMLToObjectMapper mapper = getMapper(re.getType());
if (mapper != null) {
entry.setMapper(mapper);
- entry.setValue(mapper.getObjectFromOMNode(omNode));
+ entry.setValue(mapper.getObjectFromOMNode(omNode,
properties));
} else {
entry.setValue(omNode);
Modified:
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/AbstractTestCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/AbstractTestCase.java?rev=999830&r1=999829&r2=999830&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/AbstractTestCase.java
(original)
+++
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/AbstractTestCase.java
Wed Sep 22 09:33:25 2010
@@ -28,6 +28,7 @@ import org.custommonkey.xmlunit.XMLTestC
import org.xml.sax.SAXException;
import java.io.IOException;
+import java.util.Properties;
/**
*
@@ -56,7 +57,7 @@ public abstract class AbstractTestCase e
protected boolean serialization(String inputXml, MediatorFactory
mediatorFactory, MediatorSerializer mediatorSerializer) {
OMElement inputOM = createOMElement(inputXml);
- Mediator mediator = mediatorFactory.createMediator(inputOM);
+ Mediator mediator = mediatorFactory.createMediator(inputOM, new
Properties());
OMElement resultOM = mediatorSerializer.serializeMediator(null,
mediator);
try {
assertXMLEqual(resultOM.toString(), inputXml);
@@ -71,7 +72,7 @@ public abstract class AbstractTestCase e
protected boolean serialization(String inputXml, MediatorSerializer
mediatorSerializer) {
OMElement inputOM = createOMElement(inputXml);
- Mediator mediator =
MediatorFactoryFinder.getInstance().getMediator(inputOM);
+ Mediator mediator =
MediatorFactoryFinder.getInstance().getMediator(inputOM, new Properties());
OMElement resultOM = mediatorSerializer.serializeMediator(null,
mediator);
try {
assertXMLEqual(resultOM.toString(), inputXml);
Modified:
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/AbstractTestCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/AbstractTestCase.java?rev=999830&r1=999829&r2=999830&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/AbstractTestCase.java
(original)
+++
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/AbstractTestCase.java
Wed Sep 22 09:33:25 2010
@@ -20,6 +20,7 @@ package org.apache.synapse.mediators;
import java.io.IOException;
import java.io.StringReader;
+import java.util.Properties;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
@@ -65,7 +66,7 @@ public abstract class AbstractTestCase e
protected boolean serialization(String inputXml, MediatorFactory
mediatorFactory, MediatorSerializer mediatorSerializer) {
OMElement inputOM = createOMElement(inputXml);
- Mediator mediator = mediatorFactory.createMediator(inputOM);
+ Mediator mediator = mediatorFactory.createMediator(inputOM, new
Properties());
OMElement resultOM = mediatorSerializer.serializeMediator(null,
mediator);
try {
assertXMLEqual(resultOM.toString(), inputXml);
@@ -80,7 +81,7 @@ public abstract class AbstractTestCase e
protected boolean serialization(String inputXml, MediatorSerializer
mediatorSerializer) {
OMElement inputOM = createOMElement(inputXml);
- Mediator mediator =
MediatorFactoryFinder.getInstance().getMediator(inputOM);
+ Mediator mediator =
MediatorFactoryFinder.getInstance().getMediator(inputOM, new Properties());
OMElement resultOM = mediatorSerializer.serializeMediator(null,
mediator);
try {
assertXMLEqual(resultOM.toString(), inputXml);