[SMX4-1248] Update saaj-api specs bundle to latest geronimo-specs version
git-svn-id: https://svn.apache.org/repos/asf/servicemix/smx4/specs/trunk@1389477 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/saaj-api-1.3/pom.xml b/saaj-api-1.3/pom.xml
index b3492e7..d8be8fd 100644
--- a/saaj-api-1.3/pom.xml
+++ b/saaj-api-1.3/pom.xml
@@ -37,7 +37,7 @@
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-saaj_1.3_spec</artifactId>
- <version>1.0.0</version>
+ <version>1.1</version>
</dependency>
<dependency>
<groupId>org.apache.servicemix.specs</groupId>
diff --git a/saaj-api-1.3/src/main/java/javax/xml/soap/FactoryFinder.java b/saaj-api-1.3/src/main/java/javax/xml/soap/FactoryFinder.java
index 8bd40a8..ac9e9f5 100644
--- a/saaj-api-1.3/src/main/java/javax/xml/soap/FactoryFinder.java
+++ b/saaj-api-1.3/src/main/java/javax/xml/soap/FactoryFinder.java
@@ -79,22 +79,49 @@
* @return a factory object
* @throws SOAPException
*/
+ static Object find(Class factory,
+ String defaultFactoryClassName) throws SOAPException {
+ return find(factory.getName(), factory, defaultFactoryClassName);
+ }
+ /**
+ * Instantiates a factory object given the factory's property name and the default class name.
+ *
+ * @param factoryPropertyName
+ * @param defaultFactoryClassName
+ * @return a factory object
+ * @throws SOAPException
+ */
static Object find(String factoryPropertyName,
String defaultFactoryClassName) throws SOAPException {
+ return find(factoryPropertyName, null, defaultFactoryClassName);
+ }
+ /**
+ * Instantiates a factory object given the factory's property name and the default class name.
+ *
+ * @param factoryPropertyName
+ * @param defaultFactoryClassName
+ * @return a factory object
+ * @throws SOAPException
+ */
+ static Object find(String factoryPropertyName,
+ Class factoryClass,
+ String defaultFactoryClassName) throws SOAPException {
try {
// If we are deployed into an OSGi environment, leverage it
- String factoryClassName = factoryPropertyName;
- if (factoryPropertyName.equals("javax.xml.soap.MetaFactory")) {
- //this is an exception that the factoryPropertyName isn't
- //the actual factory class name, there is no class
- //javax.xml.soap.MetaFactory at all
- factoryClassName = "javax.xml.soap.SAAJMetaFactory";
+ if (factoryClass == null) {
+ String factoryClassName = factoryPropertyName;
+ if (factoryPropertyName.equals("javax.xml.soap.MetaFactory")) {
+ //this is an exception that the factoryPropertyName isn't
+ //the actual factory class name, there is no class
+ //javax.xml.soap.MetaFactory at all
+ factoryClassName = "javax.xml.soap.SAAJMetaFactory";
+ }
+ ClassLoader cl = FactoryFinder.class.getClassLoader();
+ if (cl == null) {
+ cl = Thread.currentThread().getContextClassLoader();
+ }
+ factoryClass = cl.loadClass(factoryClassName);
}
- ClassLoader cl = FactoryFinder.class.getClassLoader();
- if (cl == null) {
- cl = Thread.currentThread().getContextClassLoader();
- }
- Class factoryClass = cl.loadClass(factoryClassName);
Class spiClass = org.apache.servicemix.specs.locator.OsgiLocator.locate(factoryClass, factoryPropertyName);
if (spiClass != null) {
return spiClass.newInstance();