1 /** 2 * 3 * Copyright 2006 The Apache Software Foundation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 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.manager.ReplicationManager; 24 import org.codehaus.wadi.replication.manager.ReplicationManagerFactory; 25 import org.codehaus.wadi.replication.manager.basic.BasicReplicationManagerFactory; 26 import org.codehaus.wadi.replication.strategy.BackingStrategyFactory; 27 import org.codehaus.wadi.servicespace.ServiceSpace; 28 29 /** 30 * 31 * @version $Rev$ $Date$ 32 */ 33 public class BasicReplicationManagerFactoryGBean implements ReplicationManagerFactory, GBeanLifecycle { 34 private ReplicationManagerFactory factory; 35 36 public ReplicationManager factory(ServiceSpace serviceSpace, BackingStrategyFactory backingStrategyFactory) { 37 return factory.factory(serviceSpace, backingStrategyFactory); 38 } 39 40 public void doFail() { 41 factory = null; 42 } 43 44 public void doStart() throws Exception { 45 factory = new BasicReplicationManagerFactory(); 46 } 47 48 public void doStop() throws Exception { 49 factory = null; 50 } 51 52 public static final GBeanInfo GBEAN_INFO; 53 54 static { 55 GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(BasicReplicationManagerFactoryGBean.class, 56 NameFactory.GERONIMO_SERVICE); 57 58 infoBuilder.addInterface(ReplicationManagerFactory.class); 59 60 infoBuilder.setConstructor(new String[0]); 61 62 GBEAN_INFO = infoBuilder.getBeanInfo(); 63 } 64 65 public static GBeanInfo getGBeanInfo() { 66 return GBEAN_INFO; 67 } 68 }