[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();