Author: richard.opalka(a)jboss.com
Date: 2011-04-13 05:09:05 -0400 (Wed, 13 Apr 2011)
New Revision: 14085
Modified:
api/trunk/src/main/java/org/jboss/wsf/spi/tools/WSContractConsumer.java
Log:
[JBWS-3222] implement temporary reflection based hack for AS7 jbossws integration module
lookup
Modified: api/trunk/src/main/java/org/jboss/wsf/spi/tools/WSContractConsumer.java
===================================================================
--- api/trunk/src/main/java/org/jboss/wsf/spi/tools/WSContractConsumer.java 2011-04-13
09:08:41 UTC (rev 14084)
+++ api/trunk/src/main/java/org/jboss/wsf/spi/tools/WSContractConsumer.java 2011-04-13
09:09:05 UTC (rev 14085)
@@ -52,7 +52,21 @@
*/
public static WSContractConsumer newInstance()
{
- return newInstance(SecurityActions.getContextClassLoader());
+ // TODO: use SPI class loader facade, not reflection!
+ ClassLoader loader;
+ 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, "org.jboss.as.webservices.server.integration");
+ Object module = moduleLoaderClass.getMethod("loadModule",
moduleIdentifierClass).invoke(moduleLoader, moduleIdentifier);
+ loader =
(ClassLoader)moduleClass.getMethod("getClassLoader").invoke(module);
+ } catch (Exception e) {
+ //ignore, JBoss Modules might not be available at all
+ loader = Thread.currentThread().getContextClassLoader();
+ }
+ return newInstance(loader);
}
/**