01: package org.apache.torque.dsfactory;
02:
03: /*
04: * Licensed to the Apache Software Foundation (ASF) under one
05: * or more contributor license agreements. See the NOTICE file
06: * distributed with this work for additional information
07: * regarding copyright ownership. The ASF licenses this file
08: * to you under the Apache License, Version 2.0 (the
09: * "License"); you may not use this file except in compliance
10: * with the License. You may obtain a copy of the License at
11: *
12: * http://www.apache.org/licenses/LICENSE-2.0
13: *
14: * Unless required by applicable law or agreed to in writing,
15: * software distributed under the License is distributed on an
16: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17: * KIND, either express or implied. See the License for the
18: * specific language governing permissions and limitations
19: * under the License.
20: */
21:
22: import javax.sql.DataSource;
23: import org.apache.commons.configuration.Configuration;
24: import org.apache.torque.TorqueException;
25:
26: /**
27: * A factory that returns a DataSource.
28: *
29: * @author <a href="mailto:jmcnally@apache.org">John McNally</a>
30: * @author <a href="mailto:fischer@seitenbau.de">Thomas Fischer</a>
31: * @version $Id: DataSourceFactory.java 473821 2006-11-11 22:37:25Z tv $
32: */
33: public interface DataSourceFactory {
34: /**
35: * Key for the configuration which contains DataSourceFactories
36: */
37: String DSFACTORY_KEY = "dsfactory";
38:
39: /**
40: * Key for the configuration which contains the fully qualified name
41: * of the factory implementation class
42: */
43: String FACTORY_KEY = "factory";
44:
45: /**
46: * @return the <code>DataSource</code> configured by the factory.
47: * @throws TorqueException if the source can't be returned
48: */
49: DataSource getDataSource() throws TorqueException;
50:
51: /**
52: * Initialize the factory.
53: *
54: * @param configuration where to load the factory settings from
55: * @throws TorqueException Any exceptions caught during processing will be
56: * rethrown wrapped into a TorqueException.
57: */
58: void initialize(Configuration configuration) throws TorqueException;
59:
60: /**
61: * Sets the current schema for the database connection
62: *
63: * @param schema The current schema name
64: * @deprecated use DatabaseInfo.setSchema() instead. Will be removed
65: * in a future version of Torque.
66: */
67: void setSchema(String schema);
68:
69: /**
70: * This method returns the current schema for the database connection
71: *
72: * @return The current schema name. Null means, no schema has been set.
73: * @throws TorqueException Any exceptions caught during processing will be
74: * rethrown wrapped into a TorqueException.
75: * @deprecated use DatabaseInfo.getSchema() instead. Will be removed
76: * in a future version of Torque.
77: */
78: String getSchema();
79:
80: /**
81: * A hook which is called when the resources of the associated DataSource
82: * can be released.
83: * After close() is called, the other methods may not work any more
84: * (e.g. getDataSource() might return null).
85: * It is not guaranteed that this method does anything. For example,
86: * we do not want to close connections retrieved via JNDI, so the
87: * JndiDataSouurceFactory does not close these connections
88: *
89: * @throws TorqueException Any exceptions caught during processing will be
90: * rethrown wrapped into a TorqueException.
91: */
92: void close() throws TorqueException;
93: }
|