Author: ruwan
Date: Thu Aug 27 08:16:15 2009
New Revision: 808318

URL: http://svn.apache.org/viewvc?rev=808318&view=rev
Log:
Adding the file that is being missed by the previous commit

Added:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java

Added: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java?rev=808318&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
 (added)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/DynamicLoadbalanceEndpointSerializer.java
 Thu Aug 27 08:16:15 2009
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.synapse.SynapseConstants;
+import org.apache.synapse.config.xml.XMLConfigConstants;
+import org.apache.synapse.core.LoadBalanceMembershipHandler;
+import org.apache.synapse.endpoints.DynamicLoadbalanceEndpoint;
+import org.apache.synapse.endpoints.Endpoint;
+
+import java.util.Properties;
+
+/**
+ * Creates {...@link org.apache.synapse.endpoints.DynamicLoadbalanceEndpoint} 
using an XML configuration.
+ *
+ * <pre>
+ * &lt;endpoint>
+ *       &lt;dynamicLoadbalance [failover="true|false"] [policy="load balance 
algorithm"]&gt;
+ *           &lt;membershipHandler
+ *                   class="HandlerClass"&gt;
+ *              &lt;property name="some name" value="some domain"/&gt;+
+ *           &lt;/membershipHandler&gt;
+ *       &lt;/dynamicLoadbalance&gt;
+ * &lt;/endpoint&gt;
+ * </pre>
+ */
+
+public class DynamicLoadbalanceEndpointSerializer extends EndpointSerializer {
+    
+    protected OMElement serializeEndpoint(Endpoint endpoint) {
+
+        if (!(endpoint instanceof DynamicLoadbalanceEndpoint)) {
+            handleException("Invalid endpoint type.");
+        }
+
+        fac = OMAbstractFactory.getOMFactory();
+        OMElement endpointElement
+                = fac.createOMElement("endpoint", 
SynapseConstants.SYNAPSE_OMNAMESPACE);
+
+        DynamicLoadbalanceEndpoint dynamicLoadbalanceEndpoint = 
(DynamicLoadbalanceEndpoint) endpoint;
+
+
+        String name = dynamicLoadbalanceEndpoint.getName();
+        if (name != null) {
+            endpointElement.addAttribute("name", name, null);
+        }
+
+        OMElement dynamicLoadbalanceElement
+                = fac.createOMElement("dynamicLoadbalance", 
SynapseConstants.SYNAPSE_OMNAMESPACE);
+        endpointElement.addChild(dynamicLoadbalanceElement);
+
+        // set if failover is turned off in the endpoint
+        if (!dynamicLoadbalanceEndpoint.isFailover()) {
+            dynamicLoadbalanceElement.addAttribute("failover", "false", null);
+        }
+
+        LoadBalanceMembershipHandler loadBalanceMembershipHandler = 
dynamicLoadbalanceEndpoint.getLbMembershipHandler();
+
+        
dynamicLoadbalanceElement.addAttribute(XMLConfigConstants.LOADBALANCE_ALGORITHM,
+                
loadBalanceMembershipHandler.getLoadbalanceAlgorithm().getClass().getName(),
+                null);
+
+        OMElement membershipHandlerElement =
+                fac.createOMElement("membershipHandler", 
SynapseConstants.SYNAPSE_OMNAMESPACE);
+        dynamicLoadbalanceElement.addChild(membershipHandlerElement);
+
+        
membershipHandlerElement.addAttribute("class",loadBalanceMembershipHandler.getClass().getName(),null);
+
+        Properties membershipHandlerProperties = 
loadBalanceMembershipHandler.getProperties();
+        OMElement propertyElement = null;
+        for (Object property : membershipHandlerProperties.keySet()){
+            propertyElement = fac.createOMElement("property", 
SynapseConstants.SYNAPSE_OMNAMESPACE);
+            membershipHandlerElement.addChild(propertyElement);
+            propertyElement.addAttribute("name", property.toString(), null);
+            propertyElement.addAttribute("value", 
membershipHandlerProperties.getProperty((String)property), null);
+        }
+
+        return endpointElement;
+    }
+}


Reply via email to