01: /**
02: *
03: * Copyright 2003-2004 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: */package javax.xml.registry;
17:
18: import java.util.Collection;
19: import java.util.Properties;
20:
21: /**
22: * @version $Revision$ $Date$
23: */
24: public abstract class ConnectionFactory {
25: public ConnectionFactory() {
26: }
27:
28: public abstract Connection createConnection() throws JAXRException;
29:
30: public abstract FederatedConnection createFederatedConnection(
31: Collection connections) throws JAXRException;
32:
33: public abstract Properties getProperties() throws JAXRException;
34:
35: public abstract void setProperties(Properties properties)
36: throws JAXRException;
37:
38: public static ConnectionFactory newInstance() throws JAXRException {
39: String className = System.getProperty(
40: "javax.xml.registry.ConnectionFactoryClass",
41: "org.apache.ws.scout.registry.ConnectionFactoryImpl");
42: ClassLoader cl = Thread.currentThread().getContextClassLoader();
43: if (cl == null) {
44: cl = ConnectionFactory.class.getClassLoader();
45: }
46: try {
47: Class factoryClass = cl.loadClass(className);
48: return (ConnectionFactory) factoryClass.newInstance();
49: } catch (ClassNotFoundException e) {
50: throw new JAXRException(
51: "Unable to load JAXR ConnectionFactoryClass: "
52: + className, e);
53: } catch (InstantiationException e) {
54: throw new JAXRException(
55: "Unable to instantiate JAXR ConnectionFactoryClass: "
56: + className, e);
57: } catch (IllegalAccessException e) {
58: throw new JAXRException(
59: "Unable to instantiate JAXR ConnectionFactoryClass: "
60: + className, e);
61: }
62: }
63: }
|