[jboss-cvs] JBossAS SVN: r110767 - in projects/specs/trunk/jboss-jaxws-api_2.2_spec: src/main/java/javax/xml/ws/spi and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Feb 24 12:25:31 EST 2011


Author: smcgowan at redhat.com
Date: 2011-02-24 12:25:30 -0500 (Thu, 24 Feb 2011)
New Revision: 110767

Modified:
   projects/specs/trunk/jboss-jaxws-api_2.2_spec/pom.xml
   projects/specs/trunk/jboss-jaxws-api_2.2_spec/src/main/java/javax/xml/ws/spi/FactoryFinder.java
Log:
JBEE-75 - update versions to 2.0.0 with this change

Modified: projects/specs/trunk/jboss-jaxws-api_2.2_spec/pom.xml
===================================================================
--- projects/specs/trunk/jboss-jaxws-api_2.2_spec/pom.xml	2011-02-24 16:43:28 UTC (rev 110766)
+++ projects/specs/trunk/jboss-jaxws-api_2.2_spec/pom.xml	2011-02-24 17:25:30 UTC (rev 110767)
@@ -8,7 +8,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.jboss.spec.javax.xml.ws</groupId>
   <artifactId>jboss-jaxws-api_2.2_spec</artifactId>
-  <version>1.0.1-SNAPSHOT</version>
+  <version>2.0.0-SNAPSHOT</version>
   <packaging>jar</packaging>
   <name>Java API for XML Web Services 2.2</name>
   <description>Java API for XML Web Services Version 2.2 classes</description>

Modified: projects/specs/trunk/jboss-jaxws-api_2.2_spec/src/main/java/javax/xml/ws/spi/FactoryFinder.java
===================================================================
--- projects/specs/trunk/jboss-jaxws-api_2.2_spec/src/main/java/javax/xml/ws/spi/FactoryFinder.java	2011-02-24 16:43:28 UTC (rev 110766)
+++ projects/specs/trunk/jboss-jaxws-api_2.2_spec/src/main/java/javax/xml/ws/spi/FactoryFinder.java	2011-02-24 17:25:30 UTC (rev 110767)
@@ -16,6 +16,7 @@
 
 class FactoryFinder {
 
+    private static final String JBOSS_JAXWS_CLIENT_MODULE = "org.jboss.ws.jaxws-client";
     /**
      * Creates an instance of the specified class using the specified 
      * <code>ClassLoader</code> object.
@@ -120,6 +121,40 @@
         } catch (SecurityException se) {
         }
 
+        ClassLoader moduleClassLoader = null;
+        try {
+           Class<?> moduleClass = Class.forName("org.jboss.modules.Module");
+           Class<?> moduleIdentifierClass = Class.forName("org.jboss.modules.ModuleIdentifier");
+           Class<?> moduleLoaderClass = Class.forName("org.jboss.modules.ModuleLoader");
+           Object moduleLoader = moduleClass.getMethod("getBootModuleLoader").invoke(null);
+           Object moduleIdentifier = moduleIdentifierClass.getMethod("create", String.class).invoke(null, JBOSS_JAXWS_CLIENT_MODULE);
+           Object module = moduleLoaderClass.getMethod("loadModule", moduleIdentifierClass).invoke(moduleLoader, moduleIdentifier);
+           moduleClassLoader = (ClassLoader)moduleClass.getMethod("getClassLoader").invoke(module);
+        } catch (ClassNotFoundException e) {
+           //ignore, JBoss Modules might not be available at all
+        } catch (Exception e) {
+           throw new WebServiceException(e);
+        }
+        if (moduleClassLoader != null) {
+           try {
+              InputStream is = moduleClassLoader.getResourceAsStream(serviceId);
+          
+              if( is!=null ) {
+                  BufferedReader rd =
+                      new BufferedReader(new InputStreamReader(is, "UTF-8"));
+          
+                  String factoryClassName = rd.readLine();
+                  rd.close();
+
+                  if (factoryClassName != null &&
+                      ! "".equals(factoryClassName)) {
+                      return newInstance(factoryClassName, moduleClassLoader);
+                  }
+              }
+          } catch( Exception ex ) {
+          }
+        }
+
         if (fallbackClassName == null) {
             throw new WebServiceException(
                 "Provider for " + factoryId + " cannot be found", null);



More information about the jboss-cvs-commits mailing list