Author: indika
Date: Sat Jan 10 03:12:22 2009
New Revision: 733264

URL: http://svn.apache.org/viewvc?rev=733264&view=rev
Log:
add required validation when adding things to synapse configuration

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

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?rev=733264&r1=733263&r2=733264&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
 Sat Jan 10 03:12:22 2009
@@ -56,7 +56,11 @@
 
        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
         */
@@ -128,7 +132,8 @@
         *            a Sequence mediator
         */
        public void addSequence(String key, Mediator mediator) {
-               localRegistry.put(key, mediator);
+        assertAlreadyExists(key,SEQUENCE);
+        localRegistry.put(key, mediator);
        }
 
        /**
@@ -142,7 +147,8 @@
         *            resource
         */
        public void addSequence(String key, Entry entry) {
-               localRegistry.put(key, entry);
+        assertAlreadyExists(key,ENTRY);
+        localRegistry.put(key, entry);
        }
 
        /**
@@ -266,7 +272,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()));
@@ -428,7 +436,8 @@
         *            the endpoint definition
         */
        public void addEndpoint(String key, Endpoint endpoint) {
-               localRegistry.put(key, endpoint);
+        assertAlreadyExists(key, ENDPOINT);
+        localRegistry.put(key, endpoint);
        }
 
        /**
@@ -440,7 +449,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);
        }
 
        /**
@@ -966,4 +976,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: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationSerializer.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationSerializer.java?rev=733264&r1=733263&r2=733264&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationSerializer.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SynapseXMLConfigurationSerializer.java
 Sat Jan 10 03:12:22 2009
@@ -23,6 +23,7 @@
 import org.apache.synapse.core.axis2.ProxyService;
 import org.apache.synapse.endpoints.Endpoint;
 import org.apache.synapse.Startup;
+import org.apache.synapse.SynapseConstants;
 import org.apache.synapse.eventing.SynapseEventSource;
 
 public class SynapseXMLConfigurationSerializer implements 
ConfigurationSerializer {
@@ -74,6 +75,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);


Reply via email to