001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019
020 package org.apache.geronimo.tomcat.cluster.wadi;
021
022 import org.apache.geronimo.clustering.wadi.WADISessionManager;
023 import org.apache.geronimo.gbean.GBeanInfo;
024 import org.apache.geronimo.gbean.GBeanInfoBuilder;
025 import org.apache.geronimo.gbean.GBeanLifecycle;
026 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
027 import org.apache.geronimo.tomcat.ObjectRetriever;
028 import org.codehaus.wadi.core.manager.Manager;
029
030
031 /**
032 *
033 * @version $Rev: 706640 $ $Date: 2008-10-21 14:44:05 +0000 (Tue, 21 Oct 2008) $
034 */
035 public class WADIClusteredValveRetriever implements ObjectRetriever, GBeanLifecycle {
036 private final WADISessionManager sessionManager;
037 private Manager wadiManager;
038
039 public WADIClusteredValveRetriever(WADISessionManager sessionManager) {
040 this.sessionManager = sessionManager;
041 }
042
043 public Object getInternalObject() {
044 return new WADIClusteredValve(wadiManager);
045 }
046
047 public void doStart() throws Exception {
048 wadiManager = sessionManager.getManager();
049 }
050
051 public void doStop() throws Exception {
052 }
053
054 public void doFail() {
055 }
056
057 public static final GBeanInfo GBEAN_INFO;
058 public static final String GBEAN_REF_WADI_SESSION_MANAGER = "WADISessionManager";
059
060 static {
061 GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("WADI Clustered Valve Retriever",
062 WADIClusteredValveRetriever.class,
063 NameFactory.GERONIMO_SERVICE);
064
065 infoFactory.addReference(GBEAN_REF_WADI_SESSION_MANAGER,
066 WADISessionManager.class,
067 NameFactory.GERONIMO_SERVICE);
068
069 infoFactory.setConstructor(new String[]{GBEAN_REF_WADI_SESSION_MANAGER});
070
071 GBEAN_INFO = infoFactory.getBeanInfo();
072 }
073
074 public static GBeanInfo getGBeanInfo() {
075 return GBEAN_INFO;
076 }
077
078 }