Author: indika
Date: Sat Jan 10 02:41:36 2009
New Revision: 28643
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=28643

Log:
fix for carbon CARBON-2402 +CARBON-2259

Modified:
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationSerializer.java

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?rev=28643&r1=28642&r2=28643&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
  (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
  Sat Jan 10 02:41:36 2009
@@ -56,11 +56,15 @@
 
        private static final Log log = 
LogFactory.getLog(SynapseConfiguration.class);
 
-       /**
+    private static final String ENTRY = "entry";
+    private static final String ENDPOINT = "endpoint";
+    private static final String SEQUENCE = "sequence"; 
+
+    /**
         * The remote registry made available to the Synapse configuration. 
Only one
         * is supported
         */
-       Registry registry = null;
+       private Registry registry = null;
 
     /**
      * This holds the default QName of the configuration.
@@ -126,7 +130,8 @@
         *            a Sequence mediator
         */
        public void addSequence(String key, Mediator mediator) {
-               localRegistry.put(key, mediator);
+        assertAlreadyExists(key,SEQUENCE);
+        localRegistry.put(key, mediator);
        }
 
        /**
@@ -140,7 +145,8 @@
         *            resource
         */
        public void addSequence(String key, Entry entry) {
-               localRegistry.put(key, entry);
+        assertAlreadyExists(key,ENTRY);
+        localRegistry.put(key, entry);
        }
 
        /**
@@ -264,7 +270,9 @@
         */
        public void addEntry(String key, Entry entry) {
 
-               if (entry.getType() == Entry.URL_SRC && entry.getValue() == 
null) {
+        assertAlreadyExists(key, ENTRY);
+        
+        if (entry.getType() == Entry.URL_SRC && entry.getValue() == null) {
                        try {
                                
entry.setValue(SynapseConfigUtils.getOMElementFromURL(entry.getSrc()
                                                .toString()));
@@ -426,7 +434,8 @@
         *            the endpoint definition
         */
        public void addEndpoint(String key, Endpoint endpoint) {
-               localRegistry.put(key, endpoint);
+        assertAlreadyExists(key, ENDPOINT);
+        localRegistry.put(key, endpoint);
        }
 
        /**
@@ -438,7 +447,8 @@
         *            the actual endpoint definition to be added
         */
        public void addEndpoint(String key, Entry entry) {
-               localRegistry.put(key, entry);
+        assertAlreadyExists(key, ENTRY);
+        localRegistry.put(key, entry);
        }
 
        /**
@@ -963,4 +973,15 @@
     public void setEventSources(Map<String, SynapseEventSource> eventSources) {
         this.eventSources = eventSources;
     }
+
+    private void assertAlreadyExists(String key, String type) {
+
+        if (key == null || "".equals(key)) {
+            handleException("Given entry key is empty or null.");
+        }
+
+        if (localRegistry.containsKey(key.trim())) {
+            handleException("Duplicate " + type + " definition for key : " + 
key);
+        }
+    }
 }

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationSerializer.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationSerializer.java?rev=28643&r1=28642&r2=28643&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationSerializer.java
 (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationSerializer.java
 Sat Jan 10 02:41:36 2009
@@ -1,13 +1,5 @@
 package org.apache.synapse.config.xml;
 
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Collection;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
@@ -15,6 +7,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.Mediator;
+import org.apache.synapse.Startup;
+import org.apache.synapse.SynapseConstants;
 import org.apache.synapse.SynapseException;
 import org.apache.synapse.config.Entry;
 import org.apache.synapse.config.SynapseConfiguration;
@@ -22,9 +16,15 @@
 import org.apache.synapse.config.xml.eventing.EventSourceSerializer;
 import org.apache.synapse.core.axis2.ProxyService;
 import org.apache.synapse.endpoints.Endpoint;
-import org.apache.synapse.Startup;
 import org.apache.synapse.eventing.SynapseEventSource;
 
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
 public class SynapseXMLConfigurationSerializer implements 
ConfigurationSerializer {
 
     private static final Log log = LogFactory
@@ -73,6 +73,9 @@
         iter = synCfg.getLocalRegistry().keySet().iterator();
         while (iter.hasNext()) {
             Object key = iter.next();
+            if (SynapseConstants.SERVER_IP.equals(key) || 
SynapseConstants.SERVER_HOST.equals(key)) {
+                continue;
+            }
             Object o = synCfg.getLocalRegistry().get(key);
             if (o instanceof Mediator) {
                 sequences.put(key, o);

_______________________________________________
Esb-java-dev mailing list
[email protected]
https://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev

Reply via email to