annotate WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/javax/wadls/factory/WADLFactory.java @ 0:049760c677de default tip

Galaxy WSExtensions added successfully
author uga-galaxy-group
date Tue, 05 Jul 2011 19:34:18 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
1 /*
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
2 * (c) Copyright IBM Corp 2001, 2005
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
3 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
4
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
5 package javax.wadls.factory;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
6
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
7 import java.io.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
8 import java.util.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
9
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
10 import javax.wadls.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
11 import javax.wadls.xml.*;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
12
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
13 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
14 * This abstract class defines a factory API that enables applications
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
15 * to obtain a WSDLFactory capable of producing new Definitions, new
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
16 * WSDLReaders, and new WSDLWriters.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
17 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
18 * Some ideas used here have been shamelessly copied from the
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
19 * wonderful JAXP and Xerces work.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
20 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
21 * @author Matthew J. Duftler (duftler@us.ibm.com)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
22 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
23 public abstract class WADLFactory
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
24 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
25 private static final String PROPERTY_NAME =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
26 "javax.wadls.factory.WADLFactory";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
27 private static final String PROPERTY_FILE_NAME =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
28 "wadl.properties";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
29 private static final String DEFAULT_FACTORY_IMPL_NAME =
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
30 "edu.uga.cs.lsdis.meteors.wadls.factory.WADLFactoryImpl";
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
31
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
32 private static String fullPropertyFileName = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
33
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
34 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
35 * Get a new instance of a WSDLFactory. This method
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
36 * follows (almost) the same basic sequence of steps that JAXP
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
37 * follows to determine the fully-qualified class name of the
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
38 * class which implements WSDLFactory. The steps (in order)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
39 * are:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
40 *<pre>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
41 * Check the javax.wsdls.factory.WSDLFactory system property.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
42 * Check the lib/wsdl.properties file in the JRE directory. The key
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
43 * will have the same name as the above system property.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
44 * Use the default value.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
45 *</pre>
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
46 * Once an instance of a WSDLFactory is obtained, invoke
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
47 * newDefinition(), newWSDLReader(), or newWSDLWriter(), to create
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
48 * the desired instances.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
49 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
50 public static WADLFactory newInstance() throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
51 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
52 String factoryImplName = findFactoryImplName();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
53
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
54 return newInstance(factoryImplName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
55 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
56
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
57 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
58 * Get a new instance of a WSDLFactory. This method
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
59 * returns an instance of the class factoryImplName.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
60 * Once an instance of a WSDLFactory is obtained, invoke
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
61 * newDefinition(), newWSDLReader(), or newWSDLWriter(), to create
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
62 * the desired instances.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
63 *
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
64 * @param factoryImplName the fully-qualified class name of the
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
65 * class which provides a concrete implementation of the abstract
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
66 * class WSDLFactory.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
67 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
68 public static WADLFactory newInstance(String factoryImplName)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
69 throws WADLSException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
70 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
71 if (factoryImplName != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
72 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
73 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
74 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
75 Class cl = Class.forName(factoryImplName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
76
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
77 return (WADLFactory)cl.newInstance();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
78 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
79 catch (Exception e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
80 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
81 /*
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
82 Catches:
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
83 ClassNotFoundException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
84 InstantiationException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
85 IllegalAccessException
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
86 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
87 throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
88 "Problem instantiating factory " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
89 "implementation.",
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
90 e);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
91 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
92 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
93 else
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
94 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
95 throw new WADLSException(WADLSException.CONFIGURATION_ERROR,
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
96 "Unable to find name of factory " +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
97 "implementation.");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
98 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
99 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
100
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
101 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
102 * Create a new instance of a Definition.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
103 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
104 public abstract Application newApplication();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
105
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
106 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
107 * Create a new instance of a WSDLReader.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
108 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
109 public abstract WADLReader newWADLReader();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
110
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
111 /**
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
112 * Create a new instance of a WSDLWriter.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
113 */
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
114 public abstract WADLWriter newWADLWriter();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
115
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
116
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
117 private static String findFactoryImplName()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
118 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
119 String factoryImplName = null;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
120
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
121 // First, check the system property.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
122 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
123 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
124 factoryImplName = System.getProperty(PROPERTY_NAME);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
125
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
126 if (factoryImplName != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
127 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
128 return factoryImplName;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
129 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
130 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
131 catch (SecurityException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
132 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
133 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
134
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
135 // Second, check the properties file.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
136 String propFileName = getFullPropertyFileName();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
137
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
138 if (propFileName != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
139 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
140 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
141 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
142 Properties properties = new Properties();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
143 File propFile = new File(propFileName);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
144 FileInputStream fis = new FileInputStream(propFile);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
145
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
146 properties.load(fis);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
147 fis.close();
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
148
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
149 factoryImplName = properties.getProperty(PROPERTY_NAME);
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
150
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
151 if (factoryImplName != null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
152 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
153 return factoryImplName;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
154 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
155 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
156 catch (IOException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
157 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
158 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
159 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
160
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
161 // Third, return the default.
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
162 return DEFAULT_FACTORY_IMPL_NAME;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
163 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
164
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
165 private static String getFullPropertyFileName()
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
166 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
167 if (fullPropertyFileName == null)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
168 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
169 try
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
170 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
171 String javaHome = System.getProperty("java.home");
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
172
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
173 fullPropertyFileName = javaHome + File.separator + "lib" +
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
174 File.separator + PROPERTY_FILE_NAME;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
175 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
176 catch (SecurityException e)
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
177 {
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
178 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
179 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
180
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
181 return fullPropertyFileName;
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
182 }
049760c677de Galaxy WSExtensions added successfully
uga-galaxy-group
parents:
diff changeset
183 }