01: package org.apache.ojb.broker.core;
02:
03: /* Copyright 2003-2005 The Apache Software Foundation
04: *
05: * Licensed under the Apache License, Version 2.0 (the "License");
06: * you may not use this file except in compliance with the License.
07: * 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: */
17:
18: import org.apache.commons.pool.KeyedObjectPool;
19: import org.apache.ojb.broker.PersistenceBrokerInternal;
20: import org.apache.ojb.broker.util.logging.LoggerFactory;
21:
22: public class PoolablePersistenceBroker extends
23: DelegatingPersistenceBroker {
24: private KeyedObjectPool pool;
25:
26: public PoolablePersistenceBroker(PersistenceBrokerInternal broker,
27: KeyedObjectPool pool) {
28: super (broker);
29: this .pool = pool;
30: }
31:
32: public boolean close() {
33: super .close();
34: try {
35: pool.returnObject(this .getPBKey(), this );
36: return true;
37: } catch (Exception e) {
38: LoggerFactory
39: .getDefaultLogger()
40: .error(
41: "Unexpected exception when returning instance to pool",
42: e);
43: return false;
44: }
45: }
46:
47: public void destroy() {
48: this.setDelegate(null);
49: }
50: }
|