KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > connector > outbound > MCFConnectionInterceptor


1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. 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
18 package org.apache.geronimo.connector.outbound;
19
20 import javax.resource.ResourceException JavaDoc;
21 import javax.resource.spi.ManagedConnection JavaDoc;
22
23 /**
24  * MCFConnectionInterceptor.java
25  *
26  *
27  * @version $Rev: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $
28  */

29 public class MCFConnectionInterceptor implements ConnectionInterceptor {
30
31     private ConnectionInterceptor stack;
32
33     public MCFConnectionInterceptor() {
34     }
35
36     public void getConnection(ConnectionInfo connectionInfo) throws ResourceException JavaDoc {
37         ManagedConnectionInfo mci = connectionInfo.getManagedConnectionInfo();
38         if (mci.getManagedConnection() != null) {
39             return;
40         }
41         ManagedConnection JavaDoc mc =
42                 mci.getManagedConnectionFactory().createManagedConnection(
43                         mci.getSubject(),
44                         mci.getConnectionRequestInfo());
45         mci.setManagedConnection(mc);
46         GeronimoConnectionEventListener listener = new GeronimoConnectionEventListener(stack, mci);
47         mci.setConnectionEventListener(listener);
48         mc.addConnectionEventListener(listener);
49     }
50
51     public void returnConnection(
52             ConnectionInfo connectionInfo,
53             ConnectionReturnAction connectionReturnAction) {
54         ManagedConnectionInfo mci = connectionInfo.getManagedConnectionInfo();
55         ManagedConnection JavaDoc mc = mci.getManagedConnection();
56         try {
57             mc.destroy();
58         } catch (ResourceException JavaDoc e) {
59             //log and forget
60
} catch (Error JavaDoc e) {
61             throw e;
62         } catch (Throwable JavaDoc t) {
63             //log and forget
64
}
65     }
66
67     public void destroy() {
68         // MCF is the "tail" of the stack. So, we're all done...
69
}
70     
71     public void setStack(ConnectionInterceptor stack) {
72         this.stack = stack;
73     }
74
75 }
76
Popular Tags