01: /**
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * 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: */package org.apache.geronimo.connector.outbound.connectiontracking;
17:
18: import org.apache.geronimo.gbean.GBeanInfo;
19: import org.apache.geronimo.gbean.GBeanInfoBuilder;
20: import org.apache.geronimo.gbean.GBeanLifecycle;
21: import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
22: import org.apache.geronimo.transaction.manager.MonitorableTransactionManager;
23:
24: /**
25: *
26: * @version $Revision: 584390 $
27: */
28: public class ConnectionTrackingCoordinatorGBean extends
29: ConnectionTrackingCoordinator implements GBeanLifecycle {
30: private final MonitorableTransactionManager monitorableTm;
31: private final GeronimoTransactionListener listener;
32:
33: public ConnectionTrackingCoordinatorGBean(
34: MonitorableTransactionManager monitorableTm,
35: boolean lazyConnect) {
36: super (lazyConnect);
37: this .monitorableTm = monitorableTm;
38: listener = new GeronimoTransactionListener(this );
39: }
40:
41: public void doStart() throws Exception {
42: monitorableTm.addTransactionAssociationListener(listener);
43: }
44:
45: public void doStop() throws Exception {
46: monitorableTm.removeTransactionAssociationListener(listener);
47: }
48:
49: public void doFail() {
50: monitorableTm.removeTransactionAssociationListener(listener);
51: }
52:
53: public final static GBeanInfo GBEAN_INFO;
54:
55: static {
56: GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(
57: ConnectionTrackingCoordinatorGBean.class,
58: NameFactory.JCA_CONNECTION_TRACKER);
59:
60: infoFactory.addReference("TransactionManager",
61: MonitorableTransactionManager.class,
62: NameFactory.JTA_RESOURCE);
63: infoFactory.addAttribute("lazyConnect", boolean.class, true);
64:
65: infoFactory.addInterface(TrackedConnectionAssociator.class);
66: infoFactory.addInterface(ConnectionTracker.class);
67:
68: infoFactory.setConstructor(new String[] { "TransactionManager",
69: "lazyConnect" });
70: GBEAN_INFO = infoFactory.getBeanInfo();
71: }
72:
73: public static GBeanInfo getGBeanInfo() {
74: return GBEAN_INFO;
75: }
76:
77: }
|