Author: hiranya
Date: Fri Oct 8 00:08:22 2010
New Revision: 1005674
URL: http://svn.apache.org/viewvc?rev=1005674&view=rev
Log:
Fixing SYNAPSE-696 (Endpoint serialization improvements and tests)
Added:
synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/
synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializationTest.java
synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/LoadBalanceEndpointSerializationTest.java
Modified:
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointSerializer.java
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
Modified:
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java?rev=1005674&r1=1005673&r2=1005674&view=diff
==============================================================================
---
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
(original)
+++
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializer.java
Fri Oct 8 00:08:22 2010
@@ -48,12 +48,8 @@ public class AddressEndpointSerializer e
// serialize the properties
serializeProperties(addressEndpoint, endpointElement);
-
- String name = addressEndpoint.getName();
- boolean anon = addressEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ //serialize attributes
+ serializeCommonAttributes(endpoint,endpointElement);
EndpointDefinition epAddress = addressEndpoint.getDefinition();
OMElement addressElement = serializeEndpointDefinition(epAddress);
Modified:
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java?rev=1005674&r1=1005673&r2=1005674&view=diff
==============================================================================
---
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java
(original)
+++
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DefaultEndpointSerializer.java
Fri Oct 8 00:08:22 2010
@@ -44,12 +44,9 @@ public class DefaultEndpointSerializer e
= fac.createOMElement("endpoint",
SynapseConstants.SYNAPSE_OMNAMESPACE);
DefaultEndpoint defaultEndpoint = (DefaultEndpoint) endpoint;
- String name = defaultEndpoint.getName();
- boolean anon = defaultEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(defaultEndpoint,endpointElement);
+
EndpointDefinition epAddress = defaultEndpoint.getDefinition();
OMElement defaultElement = serializeEndpointDefinition(epAddress);
endpointElement.addChild(defaultElement);
Modified:
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java?rev=1005674&r1=1005673&r2=1005674&view=diff
==============================================================================
---
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
(original)
+++
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
Fri Oct 8 00:08:22 2010
@@ -62,11 +62,8 @@ public class DynamicLoadbalanceEndpointS
// serialize the parameters
serializeProperties(dynamicLoadbalanceEndpoint, endpointElement);
- String name = dynamicLoadbalanceEndpoint.getName();
- boolean anon = dynamicLoadbalanceEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(endpoint,endpointElement);
+
Dispatcher dispatcher = dynamicLoadbalanceEndpoint.getDispatcher();
if (dispatcher != null) {
Modified:
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java?rev=1005674&r1=1005673&r2=1005674&view=diff
==============================================================================
---
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
(original)
+++
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/EndpointSerializer.java
Fri Oct 8 00:08:22 2010
@@ -102,7 +102,7 @@ public abstract class EndpointSerializer
*/
protected void serializeCommonEndpointProperties(
EndpointDefinition endpointDefinition, OMElement element) {
-
+
if (endpointDefinition.getTraceState() == SynapseConstants.TRACING_ON)
{
element.addAttribute(fac.createOMAttribute(XMLConfigConstants.TRACE_ATTRIB_NAME,
null, XMLConfigConstants.TRACE_ENABLE));
@@ -121,7 +121,7 @@ public abstract class EndpointSerializer
XMLConfigConstants.STATISTICS_ATTRIB_NAME, null,
XMLConfigConstants.STATISTICS_ENABLE));
}
-
+
if (endpointDefinition.isUseSwa()) {
element.addAttribute(fac.createOMAttribute("optimize", null,
"swa"));
} else if (endpointDefinition.isUseMTOM()) {
@@ -335,6 +335,23 @@ public abstract class EndpointSerializer
endpoint.getClass().toString() + " is not defined.");
}
+ protected void serializeCommonAttributes(Endpoint endpoint, OMElement
element) {
+
+ String name = endpoint.getName();
+ boolean anon = ((AbstractEndpoint) endpoint).isAnonymous();
+ if (name != null && !anon) {
+ element.addAttribute("name", name, null);
+ }
+
+ //serialize the message stores
+ String messageStore = endpoint.getOnFaultMessageStore();
+ if (messageStore != null) {
+ element.addAttribute(EndpointFactory.ON_FAULT_Q.getLocalPart(),
+ messageStore, null);
+ }
+ }
+
+
protected void serializeProperties(PropertyInclude endpoint, OMElement
element) {
Collection<MediatorProperty> properties = endpoint.getProperties();
if (properties != null && properties.size() > 0) {
Modified:
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java?rev=1005674&r1=1005673&r2=1005674&view=diff
==============================================================================
---
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java
(original)
+++
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/FailoverEndpointSerializer.java
Fri Oct 8 00:08:22 2010
@@ -51,11 +51,8 @@ public class FailoverEndpointSerializer
= fac.createOMElement("failover",
SynapseConstants.SYNAPSE_OMNAMESPACE);
endpointElement.addChild(failoverElement);
- String name = failoverEndpoint.getName();
- boolean anon = failoverEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(endpoint,endpointElement);
+
for (Endpoint childEndpoint : failoverEndpoint.getChildren()) {
failoverElement.addChild(EndpointSerializer.getElementFromEndpoint(childEndpoint));
Modified:
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java?rev=1005674&r1=1005673&r2=1005674&view=diff
==============================================================================
---
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java
(original)
+++
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/LoadbalanceEndpointSerializer.java
Fri Oct 8 00:08:22 2010
@@ -49,11 +49,7 @@ public class LoadbalanceEndpointSerializ
// serialize the parameters
serializeProperties(loadbalanceEndpoint, endpointElement);
- String name = loadbalanceEndpoint.getName();
- boolean anon = loadbalanceEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(endpoint,endpointElement);
OMElement loadbalanceElement
= fac.createOMElement("loadbalance",
SynapseConstants.SYNAPSE_OMNAMESPACE);
Modified:
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointSerializer.java?rev=1005674&r1=1005673&r2=1005674&view=diff
==============================================================================
---
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointSerializer.java
(original)
+++
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/SALoadbalanceEndpointSerializer.java
Fri Oct 8 00:08:22 2010
@@ -52,11 +52,7 @@ public class SALoadbalanceEndpointSerial
// serialize the parameters
serializeProperties(loadbalanceEndpoint, endpointElement);
- String name = loadbalanceEndpoint.getName();
- boolean anon = loadbalanceEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(endpoint,endpointElement);
Dispatcher dispatcher = loadbalanceEndpoint.getDispatcher();
if (dispatcher != null) {
Modified:
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
URL:
http://svn.apache.org/viewvc/synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java?rev=1005674&r1=1005673&r2=1005674&view=diff
==============================================================================
---
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
(original)
+++
synapse/branches/2.0/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/WSDLEndpointSerializer.java
Fri Oct 8 00:08:22 2010
@@ -48,11 +48,8 @@ public class WSDLEndpointSerializer exte
// serialize the parameters
serializeProperties(wsdlEndpoint, endpointElement);
- String name = wsdlEndpoint.getName();
- boolean anon = wsdlEndpoint.isAnonymous();
- if (name != null && !anon) {
- endpointElement.addAttribute("name", name, null);
- }
+ serializeCommonAttributes(endpoint,endpointElement);
+
OMElement wsdlElement = fac.createOMElement("wsdl",
SynapseConstants.SYNAPSE_OMNAMESPACE);
String serviceName = wsdlEndpoint.getServiceName();
Added:
synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializationTest.java
URL:
http://svn.apache.org/viewvc/synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializationTest.java?rev=1005674&view=auto
==============================================================================
---
synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializationTest.java
(added)
+++
synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/AddressEndpointSerializationTest.java
Fri Oct 8 00:08:22 2010
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.util.AXIOMUtil;
+import org.apache.synapse.config.xml.AbstractTestCase;
+import org.apache.synapse.endpoints.AddressEndpoint;
+import org.apache.synapse.endpoints.Endpoint;
+
+import javax.xml.stream.XMLStreamException;
+import java.util.Properties;
+
+public class AddressEndpointSerializationTest extends AbstractTestCase {
+
+ public void testAddressEndpointScenarioOne() throws Exception {
+ String inputXML = "<endpoint
xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\">" +
+ "<address
uri=\"http://localhost:9000/services/SimpleStockQuoteService\" />" +
+ "</endpoint>" ;
+
+ OMElement inputElement = createOMElement(inputXML);
+ AddressEndpoint endpoint = (AddressEndpoint)
AddressEndpointFactory.getEndpointFromElement(
+ inputElement,true,null);
+
+ OMElement serializedOut =
AddressEndpointSerializer.getElementFromEndpoint(endpoint);
+ assertTrue(compare(serializedOut,inputElement));
+
+ }
+
+ public void testAddressEndpointScenarioTwo() throws Exception {
+ String inputXML =
+ "<endpoint name=\"testEndpoint\" onFault=\"foo\" xmlns=" +
+
"\"http://synapse.apache.org/ns/2010/04/configuration\">" +
+ "<address
uri=\"http://localhost:9000/services/SimpleStockQuoteService\" >" +
+ "</address>"+
+ "</endpoint>" ;
+
+ OMElement inputElement = createOMElement(inputXML);
+ AddressEndpoint endpoint = (AddressEndpoint)
AddressEndpointFactory.getEndpointFromElement(
+ inputElement,false,null);
+ OMElement serializedOut =
AddressEndpointSerializer.getElementFromEndpoint(endpoint);
+
+ assertTrue(compare(serializedOut,inputElement));
+ }
+}
Added:
synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/LoadBalanceEndpointSerializationTest.java
URL:
http://svn.apache.org/viewvc/synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/LoadBalanceEndpointSerializationTest.java?rev=1005674&view=auto
==============================================================================
---
synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/LoadBalanceEndpointSerializationTest.java
(added)
+++
synapse/branches/2.0/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/LoadBalanceEndpointSerializationTest.java
Fri Oct 8 00:08:22 2010
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.config.xml.endpoints;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.config.xml.AbstractTestCase;
+import org.apache.synapse.endpoints.Endpoint;
+
+public class LoadBalanceEndpointSerializationTest extends AbstractTestCase {
+
+ public void testLoadBalanceEndpointScenarioOne()throws Exception {
+ String inputXml = "<endpoint
xmlns=\"http://synapse.apache.org/ns/2010/04/configuration\">" +
+ "<session type=\"simpleClientSession\"/>" +
+ "<loadbalance
algorithm=\"org.apache.synapse.endpoints.algorithms.RoundRobin\">" +
+ "<endpoint>" +
+ "<address uri=\"http://localhost:9001/soap/LBService1\">" +
+ "<enableAddressing/>" +
+ "</address>" +
+ "</endpoint>" +
+ "<endpoint>" +
+ "<address uri=\"http://localhost:9002/soap/LBService1\">" +
+ "<enableAddressing/>" +
+ "</address>" +
+ "</endpoint>" +
+ "<endpoint>" +
+ "<address uri=\"http://localhost:9003/soap/LBService1\">" +
+ "<enableAddressing/>" +
+ "</address>" +
+ "</endpoint>" +
+ "</loadbalance>" +
+ "</endpoint>";
+
+ OMElement inputElement = createOMElement(inputXml);
+ Endpoint endpoint = LoadbalanceEndpointFactory.getEndpointFromElement(
+ inputElement,true,null);
+ OMElement serializedOut =
LoadbalanceEndpointSerializer.getElementFromEndpoint(endpoint);
+
+ assertTrue(compare(serializedOut,inputElement));
+ }
+}