01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one
03: * or more contributor license agreements. See the NOTICE file
04: * distributed with this work for additional information
05: * regarding copyright ownership. The ASF licenses this file
06: * to you under the Apache License, Version 2.0 (the
07: * "License"); you may not use this file except in compliance
08: * with the License. You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing,
13: * software distributed under the License is distributed on an
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15: * KIND, either express or implied. See the License for the
16: * specific language governing permissions and limitations
17: * under the License.
18: */
19:
20: package org.apache.geronimo.tomcat.cluster;
21:
22: import org.apache.geronimo.clustering.SessionManager;
23: import org.apache.geronimo.gbean.GBeanInfo;
24: import org.apache.geronimo.gbean.GBeanInfoBuilder;
25: import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
26: import org.apache.geronimo.tomcat.ObjectRetriever;
27:
28: /**
29: *
30: * @version $Rev:$ $Date:$
31: */
32: public class ClusteredManagerRetriever implements ObjectRetriever {
33: private final SessionManager sessionManager;
34:
35: public ClusteredManagerRetriever(SessionManager sessionManager) {
36: if (null == sessionManager) {
37: throw new IllegalArgumentException(
38: "sessionManager is required");
39: }
40: this .sessionManager = sessionManager;
41: }
42:
43: public Object getInternalObject() {
44: return new ClusteredManager(sessionManager);
45: }
46:
47: public static final GBeanInfo GBEAN_INFO;
48: public static final String GBEAN_REF_SESSION_MANAGER = "SessionManager";
49:
50: static {
51: GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(
52: "Clustered Manager Retriever",
53: ClusteredManagerRetriever.class,
54: NameFactory.GERONIMO_SERVICE);
55:
56: infoFactory.addReference(GBEAN_REF_SESSION_MANAGER,
57: SessionManager.class, NameFactory.GERONIMO_SERVICE);
58:
59: infoFactory.addInterface(ObjectRetriever.class);
60:
61: infoFactory
62: .setConstructor(new String[] { GBEAN_REF_SESSION_MANAGER });
63:
64: GBEAN_INFO = infoFactory.getBeanInfo();
65: }
66:
67: public static GBeanInfo getGBeanInfo() {
68: return GBEAN_INFO;
69: }
70:
71: }
|