Author: hiranya
Date: Thu Aug  8 18:02:16 2013
New Revision: 1511904

URL: http://svn.apache.org/r1511904
Log:
Adding a serialization test case for dynamic load balance endpoint

Added:
    
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializationTest.java
Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointFactory.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2LoadBalanceMembershipHandler.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointFactory.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointFactory.java?rev=1511904&r1=1511903&r2=1511904&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointFactory.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointFactory.java
 Thu Aug  8 18:02:16 2013
@@ -129,9 +129,13 @@ public class DynamicLoadbalanceEndpointF
                             getFirstChildWithName(new 
QName(SynapseConstants.SYNAPSE_NAMESPACE,
                                                             
"membershipHandler"));
             if (eventHandler != null) {
-                String clazz =
-                        eventHandler.getAttributeValue(new 
QName(XMLConfigConstants.NULL_NAMESPACE,
-                                                                 
"class")).trim();
+                String clazz = eventHandler.getAttributeValue(new QName(
+                        XMLConfigConstants.NULL_NAMESPACE, "class"));
+                if (clazz == null) {
+                    handleException("class attribute is required on the 
membershipHandler element");
+                } else {
+                    clazz = clazz.trim();
+                }
                 try {
                     LoadBalanceMembershipHandler lbMembershipHandler =
                             (LoadBalanceMembershipHandler) 
Class.forName(clazz).newInstance();
@@ -157,9 +161,10 @@ public class DynamicLoadbalanceEndpointF
                 } catch (Exception e) {
                     String msg = "Could not instantiate " +
                             "LoadBalanceMembershipHandler implementation " + 
clazz;
-                    log.error(msg, e);
-                    throw new SynapseException(msg, e);
+                    handleException(msg, e);
                 }
+            } else {
+                handleException("membershipHandler element is required");
             }
 
             processProperties(loadbalanceEndpoint, epConfig);

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2LoadBalanceMembershipHandler.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2LoadBalanceMembershipHandler.java?rev=1511904&r1=1511903&r2=1511904&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2LoadBalanceMembershipHandler.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2LoadBalanceMembershipHandler.java
 Thu Aug  8 18:02:16 2013
@@ -16,6 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
+
 package org.apache.synapse.core.axis2;
 
 import org.apache.axis2.clustering.ClusteringAgent;

Added: 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializationTest.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializationTest.java?rev=1511904&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializationTest.java
 (added)
+++ 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializationTest.java
 Thu Aug  8 18:02:16 2013
@@ -0,0 +1,76 @@
+/*
+ *  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.DynamicLoadbalanceEndpoint;
+
+public class DynamicLoadbalanceEndpointSerializationTest extends 
AbstractTestCase {
+
+    public void testDLBEndpointScenarioOne() throws Exception {
+        String inputXML = "<endpoint name=\"ep\" 
xmlns=\"http://ws.apache.org/ns/synapse\";>" +
+                "<dynamicLoadbalance 
algorithm=\"org.apache.synapse.endpoints.algorithms.RoundRobin\">" +
+                "<membershipHandler 
class=\"org.apache.synapse.core.axis2.Axis2LoadBalanceMembershipHandler\">" +
+                "<property name=\"applicationDomain\" 
value=\"foo\"/></membershipHandler></dynamicLoadbalance>" +
+                "</endpoint>" ;
+
+        OMElement inputElement = createOMElement(inputXML);
+        DynamicLoadbalanceEndpoint endpoint =
+                (DynamicLoadbalanceEndpoint) DynamicLoadbalanceEndpointFactory.
+                        getEndpointFromElement(inputElement, true, null);
+
+        OMElement serializedOut = 
DynamicLoadbalanceEndpointSerializer.getElementFromEndpoint(endpoint);
+        assertTrue(compare(serializedOut,inputElement));
+    }
+
+    public void testDLBEndpointScenarioTwo() throws Exception {
+        String inputXML = "<endpoint name=\"ep\" 
xmlns=\"http://ws.apache.org/ns/synapse\";>" +
+                "<session type=\"soap\"/>" +
+                "<dynamicLoadbalance 
algorithm=\"org.apache.synapse.endpoints.algorithms.RoundRobin\">" +
+                "<membershipHandler 
class=\"org.apache.synapse.core.axis2.Axis2LoadBalanceMembershipHandler\">" +
+                "<property name=\"applicationDomain\" 
value=\"foo\"/></membershipHandler></dynamicLoadbalance>" +
+                "</endpoint>" ;
+
+        OMElement inputElement = createOMElement(inputXML);
+        DynamicLoadbalanceEndpoint endpoint =
+                (DynamicLoadbalanceEndpoint) DynamicLoadbalanceEndpointFactory.
+                        getEndpointFromElement(inputElement, true, null);
+
+        OMElement serializedOut = 
DynamicLoadbalanceEndpointSerializer.getElementFromEndpoint(endpoint);
+        assertTrue(compare(serializedOut,inputElement));
+    }
+
+    public void testDLBEndpointScenarioThree() throws Exception {
+        String inputXML = "<endpoint name=\"ep\" 
xmlns=\"http://ws.apache.org/ns/synapse\";>" +
+                "<dynamicLoadbalance failover=\"false\" 
algorithm=\"org.apache.synapse.endpoints.algorithms.RoundRobin\">" +
+                "<membershipHandler 
class=\"org.apache.synapse.core.axis2.Axis2LoadBalanceMembershipHandler\">" +
+                "<property name=\"applicationDomain\" 
value=\"foo\"/></membershipHandler></dynamicLoadbalance>" +
+                "</endpoint>" ;
+
+        OMElement inputElement = createOMElement(inputXML);
+        DynamicLoadbalanceEndpoint endpoint =
+                (DynamicLoadbalanceEndpoint) DynamicLoadbalanceEndpointFactory.
+                        getEndpointFromElement(inputElement, true, null);
+
+        OMElement serializedOut = 
DynamicLoadbalanceEndpointSerializer.getElementFromEndpoint(endpoint);
+        assertTrue(compare(serializedOut,inputElement));
+    }
+}


Reply via email to