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