Author: ruwan
Date: Fri Feb 26 01:58:31 2010
New Revision: 916533
URL: http://svn.apache.org/viewvc?rev=916533&view=rev
Log:
Fixing the issue SYNAPSE-579
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java?rev=916533&r1=916532&r2=916533&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointFactory.java
Fri Feb 26 01:58:31 2010
@@ -31,6 +31,7 @@
import org.apache.synapse.endpoints.Endpoint;
import org.apache.synapse.endpoints.IndirectEndpoint;
import org.apache.synapse.endpoints.EndpointDefinition;
+import org.apache.synapse.util.UUIDGenerator;
import javax.xml.namespace.QName;
import java.util.ArrayList;
@@ -55,6 +56,8 @@
log = LogFactory.getLog(this.getClass());
}
+ private static final String ENDPOINT_NAME_PREFIX = "endpoint_";
+
/**
* Core method which is exposed for the external use, and this will find
the proper
* {...@link EndpointFactory} and create the endpoint which is of the
format {...@link Endpoint}.
@@ -64,7 +67,7 @@
* @return created endpoint
*/
public static Endpoint getEndpointFromElement(OMElement elem, boolean
isAnonymous) {
- return getEndpointFactory(elem).createEndpoint(elem, isAnonymous);
+ return getEndpointFactory(elem).createEndpointWithName(elem,
isAnonymous);
}
/**
@@ -75,7 +78,7 @@
*/
public Object getObjectFromOMNode(OMNode om) {
if (om instanceof OMElement) {
- return createEndpoint((OMElement) om, false);
+ return createEndpointWithName((OMElement) om, false);
} else {
handleException("Invalid XML configuration for an Endpoint.
OMElement expected");
}
@@ -95,6 +98,25 @@
protected abstract Endpoint createEndpoint(OMElement epConfig, boolean
anonymousEndpoint);
/**
+ * Make sure that the endpoints created by the factory has a name
+ *
+ * @param epConfig OMElement conatining the endpoint
configuration.
+ * @param anonymousEndpoint false if the endpoint has a name. true
otherwise.
+ * @return Endpoint implementation for the given configuration.
+ */
+ private Endpoint createEndpointWithName(OMElement epConfig, boolean
anonymousEndpoint) {
+
+ Endpoint ep = createEndpoint(epConfig, anonymousEndpoint);
+ // if the endpoint doesn't have a name we will generate a unique name.
+ if (ep.getName() == null) {
+ String uuid = UUIDGenerator.getUUID();
+ uuid = uuid.replace(':', '_');
+ ep.setName(ENDPOINT_NAME_PREFIX + uuid);
+ }
+ return ep;
+ }
+
+ /**
* Extracts the QoS information from the XML which represents a
WSDL/Address/Default endpoints
*
* @param definition to be filled with the extracted information