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);


Reply via email to