[jboss-svn-commits] JBL Code SVN: r20002 - labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun May 18 04:07:03 EDT 2008
Author: tfennelly
Date: 2008-05-18 04:07:03 -0400 (Sun, 18 May 2008)
New Revision: 20002
Added:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/AbstractLoadBalancePolicy.java
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/FirstAvailable.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/RandomRobin.java
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/RoundRobin.java
Log:
http://jira.jboss.com/jira/browse/JBESB-1741
Added: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/AbstractLoadBalancePolicy.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/AbstractLoadBalancePolicy.java (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/AbstractLoadBalancePolicy.java 2008-05-18 08:07:03 UTC (rev 20002)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.ha;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.eprs.InVMEpr;
+
+import java.util.List;
+
+/**
+ * Abstract {@link LoadBalancePolicy}.
+ * <p/>
+ * Gives precedence to InVM EPRs, before selecting the EPR by policy.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class AbstractLoadBalancePolicy implements LoadBalancePolicy {
+
+ public final EPR chooseEPR(ServiceClusterInfo serviceCluster) {
+ List<EPR> eprs = serviceCluster.getEPRs();
+
+ if (eprs.isEmpty()) {
+ return null;
+ }
+
+ // Give precedence to InVM EPRs...
+ for (EPR epr : eprs) {
+ if(epr instanceof InVMEpr) {
+ return epr;
+ }
+ }
+
+ return chooseEPRByPolicy(serviceCluster);
+ }
+
+ protected abstract EPR chooseEPRByPolicy(ServiceClusterInfo serviceCluster);
+}
Property changes on: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/AbstractLoadBalancePolicy.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/FirstAvailable.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/FirstAvailable.java 2008-05-18 03:39:18 UTC (rev 20001)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/FirstAvailable.java 2008-05-18 08:07:03 UTC (rev 20002)
@@ -41,13 +41,13 @@
*
*/
-public class FirstAvailable implements LoadBalancePolicy
+public class FirstAvailable extends AbstractLoadBalancePolicy
{
private static final long serialVersionUID = 1L;
protected transient EPR electedEPR = null;
- public EPR chooseEPR (ServiceClusterInfo serviceCluster)
+ protected EPR chooseEPRByPolicy(ServiceClusterInfo serviceCluster)
{
List<EPR> eprs = serviceCluster.getEPRs ();
if (eprs.size () == 0)
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/RandomRobin.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/RandomRobin.java 2008-05-18 03:39:18 UTC (rev 20001)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/RandomRobin.java 2008-05-18 08:07:03 UTC (rev 20002)
@@ -34,7 +34,7 @@
*
* @author <a href="mailto:kurt at osconsulting.org">Kurt Stam</a>.
*/
-public class RandomRobin implements LoadBalancePolicy
+public class RandomRobin extends AbstractLoadBalancePolicy
{
private static final long serialVersionUID = 1L;
/** This needs to be a class variable or else you end up with multiple
@@ -43,7 +43,7 @@
public static final Random localRandomizer = new Random (System.currentTimeMillis ());
- public EPR chooseEPR (ServiceClusterInfo serviceCluster)
+ protected EPR chooseEPRByPolicy(ServiceClusterInfo serviceCluster)
{
List<EPR> eprs = serviceCluster.getEPRs ();
int max = eprs.size();
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/RoundRobin.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/RoundRobin.java 2008-05-18 03:39:18 UTC (rev 20001)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/ha/RoundRobin.java 2008-05-18 08:07:03 UTC (rev 20002)
@@ -34,11 +34,11 @@
* @author <a href="mailto:kurt at osconsulting.org">Kurt Stam</a>.
*
*/
-public class RoundRobin implements LoadBalancePolicy
+public class RoundRobin extends AbstractLoadBalancePolicy
{
private static final long serialVersionUID = 1L;
- public EPR chooseEPR (ServiceClusterInfo serviceCluster)
+ protected EPR chooseEPRByPolicy(ServiceClusterInfo serviceCluster)
{
int cursor = serviceCluster.getCursor ();
List<EPR> eprs = serviceCluster.getEPRs ();
More information about the jboss-svn-commits
mailing list