[jbossws-commits] JBossWS SVN: r8424 - stack/metro/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/metro.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Thu Oct 9 12:13:21 EDT 2008


Author: alessio.soldano at jboss.com
Date: 2008-10-09 12:13:21 -0400 (Thu, 09 Oct 2008)
New Revision: 8424

Modified:
   stack/metro/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/metro/WsgenWrapperGenerator.java
Log:
[JBWS-2342][JBWS-2139] Adding wsgen requirements check


Modified: stack/metro/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/metro/WsgenWrapperGenerator.java
===================================================================
--- stack/metro/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/metro/WsgenWrapperGenerator.java	2008-10-09 15:43:22 UTC (rev 8423)
+++ stack/metro/branches/asoldano/modules/server/src/main/java/org/jboss/wsf/stack/metro/WsgenWrapperGenerator.java	2008-10-09 16:13:21 UTC (rev 8424)
@@ -31,6 +31,8 @@
 import java.util.LinkedList;
 import java.util.List;
 
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.ws.EndpointReference;
 import javax.xml.ws.WebServiceException;
 
 import org.jboss.logging.Logger;
@@ -61,11 +63,16 @@
 
    public ClassLoader generate(String endpoint, ClassLoader classLoader, URL archiveUrl)
    {
-      log.info("ImplementationName: " + endpoint);
-      log.info("Archive file: " + archiveUrl);
+      log.debug("ImplementationName: " + endpoint);
+      log.debug("Archive file: " + archiveUrl);
       File tempDir = getTempDir(archiveUrl);
-      log.info("Temp directory: " + tempDir);
-
+      log.debug("Temp directory: " + tempDir);
+      
+      if (!checkWsgenRequirements())
+      {
+         return classLoader;
+      }
+      
       WsgenTool wsgen = new WsgenTool(outputStream);
       List<String> args = new ArrayList<String>();
       args.add("-cp");
@@ -76,7 +83,7 @@
       args.add(endpoint);
       try
       {
-         log.info("Invoking Wsgen with the following parameters: " + args);
+         log.debug("Invoking Wsgen with the following parameters: " + args);
          if (!wsgen.run(args.toArray(new String[0])))
             throw new WebServiceException("Wsgen invocation failed: see the logs for details.");
 
@@ -88,6 +95,22 @@
          throw new WebServiceException("Unable to generate wrapper classes", e);
       }
    }
+   
+   private static boolean checkWsgenRequirements()
+   {
+      Class<?> epRef = EndpointReference.class;
+      Class<?> xmlSeeAlso = XmlSeeAlso.class;
+      String epRefUrl = epRef.getResource('/'+epRef.getName().replace('.','/')+".class").toExternalForm();
+      String xmlSeeAlsoUrl = xmlSeeAlso.getResource('/'+xmlSeeAlso.getName().replace('.','/')+".class").toExternalForm();
+      log.debug("EndpointReference.class loaded from: " + epRefUrl);
+      log.debug("XmlSeeAlso.class loaded from: " + xmlSeeAlsoUrl);
+      if (!epRefUrl.startsWith("jar:") || !xmlSeeAlsoUrl.startsWith("jar:"))
+      {
+         log.warn("[JBWS-2342] wsgen tool does not support jaxws-api and jaxb library loaded through vfszip. Try running this with JDK6. Wrapper generation skipped.");
+         return false;
+      }
+      return true;
+   }
 
    private ServerConfig getServerConfig()
    {




More information about the jbossws-commits mailing list