[jbossws-commits] JBossWS SVN: r8431 - stack/metro/trunk/modules/server/src/main/java/org/jboss/wsf/stack/metro.
jbossws-commits at lists.jboss.org
jbossws-commits at lists.jboss.org
Fri Oct 10 09:39:10 EDT 2008
Author: alessio.soldano at jboss.com
Date: 2008-10-10 09:39:10 -0400 (Fri, 10 Oct 2008)
New Revision: 8431
Modified:
stack/metro/trunk/modules/server/src/main/java/org/jboss/wsf/stack/metro/DeploymentDescriptorParserExt.java
Log:
[JBWS-2129] Fixing @SOAPBinding retrieval
Modified: stack/metro/trunk/modules/server/src/main/java/org/jboss/wsf/stack/metro/DeploymentDescriptorParserExt.java
===================================================================
--- stack/metro/trunk/modules/server/src/main/java/org/jboss/wsf/stack/metro/DeploymentDescriptorParserExt.java 2008-10-10 13:01:06 UTC (rev 8430)
+++ stack/metro/trunk/modules/server/src/main/java/org/jboss/wsf/stack/metro/DeploymentDescriptorParserExt.java 2008-10-10 13:39:10 UTC (rev 8431)
@@ -308,7 +308,7 @@
Invoker invoker = createInvoker(implementorClass);
//Generate wrappers
- if (isWrapperGenerationRequired(implementorClass))
+ if (isWrapperGenerationRequired(implementorClass, reader, this.classLoader))
{
WsgenWrapperGenerator wrapperGenerator = new WsgenWrapperGenerator(System.out);
ClassLoader newClassLoader = wrapperGenerator.generate(implementationName, classLoader, archiveFile.toURL());
@@ -326,15 +326,26 @@
return adapters;
}
- private boolean isWrapperGenerationRequired(Class<?> endpoint)
+ private boolean isWrapperGenerationRequired(Class<?> endpoint, XMLStreamReader reader, ClassLoader classLoader)
{
WebService webServiceAnnotation = endpoint.getAnnotation(WebService.class);
if (webServiceAnnotation == null)
return false;
String wsdlLocation = webServiceAnnotation.wsdlLocation();
+ String endpointInterface = webServiceAnnotation.endpointInterface();
if (wsdlLocation != null && !"".equals(wsdlLocation))
return false; //provided wsdlLocation means a top-down (contract first) development is used, thus the user should use wsimport
- javax.jws.soap.SOAPBinding soapBinding = endpoint.getAnnotation(javax.jws.soap.SOAPBinding.class);
+ javax.jws.soap.SOAPBinding soapBinding;
+ if (endpointInterface == null || "".equalsIgnoreCase(endpointInterface))
+ {
+ soapBinding = endpoint.getAnnotation(javax.jws.soap.SOAPBinding.class);
+ }
+ else
+ {
+ //getting the annotation from the SEI
+ Class<?> sei = getImplementorClass(endpointInterface, reader, classLoader);
+ soapBinding = sei.getAnnotation(javax.jws.soap.SOAPBinding.class);
+ }
if (soapBinding == null)
return true; //no @SOAPBinding means default settings, ie. doc/lit wrapped
return !(ParameterStyle.BARE.equals(soapBinding.parameterStyle()) || Style.RPC.equals(soapBinding.style()) || Use.ENCODED.equals(soapBinding.use()));
More information about the jbossws-commits
mailing list