1 17 package org.apache.geronimo.clustering.wadi; 18 19 import org.apache.geronimo.gbean.GBeanInfo; 20 import org.apache.geronimo.gbean.GBeanInfoBuilder; 21 import org.apache.geronimo.gbean.GBeanLifecycle; 22 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory; 23 import org.codehaus.wadi.replication.strategy.BackingStrategy; 24 import org.codehaus.wadi.replication.strategy.BackingStrategyFactory; 25 import org.codehaus.wadi.replication.strategy.RoundRobinBackingStrategyFactory; 26 27 31 public class RoundRobinBackingStrategyFactoryGBean implements BackingStrategyFactory, GBeanLifecycle { 32 private final int nbReplica; 33 34 private BackingStrategyFactory strategyFactory; 35 36 public RoundRobinBackingStrategyFactoryGBean(int nbReplica) { 37 this.nbReplica = nbReplica; 38 } 39 40 public BackingStrategy factory() { 41 return strategyFactory.factory(); 42 } 43 44 public void doFail() { 45 strategyFactory = null; 46 } 47 48 public void doStart() throws Exception { 49 strategyFactory = new RoundRobinBackingStrategyFactory(nbReplica); 50 } 51 52 public void doStop() throws Exception { 53 strategyFactory = null; 54 } 55 56 57 public static final GBeanInfo GBEAN_INFO; 58 59 public static final String GBEAN_ATTR_NB_REPLICA = "nbReplica"; 60 61 static { 62 GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(RoundRobinBackingStrategyFactoryGBean.class, 63 NameFactory.GERONIMO_SERVICE); 64 65 infoBuilder.addAttribute(GBEAN_ATTR_NB_REPLICA, int.class, true); 66 67 infoBuilder.addInterface(BackingStrategyFactory.class); 68 69 infoBuilder.setConstructor(new String [] {GBEAN_ATTR_NB_REPLICA}); 70 71 GBEAN_INFO = infoBuilder.getBeanInfo(); 72 } 73 74 public static GBeanInfo getGBeanInfo() { 75 return GBEAN_INFO; 76 } 77 } 78 | Popular Tags |