Author: alessio.soldano(a)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()
{
Show replies by date