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


Reply via email to