Index: jaxws-ri/rt/src/com/sun/xml/ws/server/RuntimeEndpointInfo.java =================================================================== RCS file: /cvs/jax-ws-sources/jaxws-ri/rt/src/com/sun/xml/ws/server/RuntimeEndpointInfo.java,v retrieving revision 1.81 diff -u -r1.81 RuntimeEndpointInfo.java --- jaxws-ri/rt/src/com/sun/xml/ws/server/RuntimeEndpointInfo.java 29 Jun 2006 23:49:40 -0000 1.81 +++ jaxws-ri/rt/src/com/sun/xml/ws/server/RuntimeEndpointInfo.java 21 Aug 2006 04:47:46 -0000 @@ -106,6 +106,7 @@ private EntityResolver wsdlResolver; private QName portTypeName; private Integer mtomThreshold; + private boolean enableDotNetHack; private static final Logger logger = Logger.getLogger( com.sun.xml.ws.util.Constants.LoggingDomain + ".server.endpoint"); private static final Localizer localizer = new Localizer(); @@ -377,7 +378,7 @@ } WSDLGenResolver wsdlResolver = new WSDLGenResolver(getDocMetadata()); WSDLGenerator wsdlGen = new WSDLGenerator(runtimeModel, wsdlResolver, - ((BindingImpl)binding).getBindingId()); + ((BindingImpl)binding).getBindingId(), enableDotNetHack); try { wsdlGen.doGeneration(); } catch(Exception e) { @@ -838,6 +839,14 @@ public ProviderModel getProviderModel() { return providerModel; } + + public boolean isEnableDotNetHack() { + return enableDotNetHack; + } + + public void setEnableDotNetHack(boolean enableDotNetHack) { + this.enableDotNetHack = enableDotNetHack; + } } Index: jaxws-ri/rt/src/com/sun/xml/ws/wsdl/writer/WSDLGenerator.java =================================================================== RCS file: /cvs/jax-ws-sources/jaxws-ri/rt/src/com/sun/xml/ws/wsdl/writer/WSDLGenerator.java,v retrieving revision 1.54 diff -u -r1.54 WSDLGenerator.java --- jaxws-ri/rt/src/com/sun/xml/ws/wsdl/writer/WSDLGenerator.java 29 Jun 2006 23:50:08 -0000 1.54 +++ jaxws-ri/rt/src/com/sun/xml/ws/wsdl/writer/WSDLGenerator.java 21 Aug 2006 04:47:47 -0000 @@ -115,13 +115,15 @@ private String wsdlLocation; private String portWSDLID; private String schemaPrefix; + private boolean enableDotNetHack; - public WSDLGenerator(RuntimeModel model, WSDLOutputResolver wsdlResolver, String bindingId) { + public WSDLGenerator(RuntimeModel model, WSDLOutputResolver wsdlResolver, String bindingId, boolean enableDotNetHack) { this.model = model; resolver = new JAXWSOutputSchemaResolver(); this.wsdlResolver = wsdlResolver; this.bindingId = bindingId; + this.enableDotNetHack = enableDotNetHack; } public void doGeneration() { @@ -283,8 +285,12 @@ // if its not really wrapper style dont use the same name as input message if (unwrappable) part = message.part().name(RESULT); - else - part = message.part().name(UNWRAPPABLE_RESULT); + else { + if (enableDotNetHack) { + part = message.part().name(RESULT); + } else + part = message.part().name(UNWRAPPABLE_RESULT); + } part.element(param.getName()); } else { part = message.part().name(param.getPartName()); @@ -402,6 +408,7 @@ List sortedParams = sortMethodParameters(method); boolean isWrapperStyle = isWrapperStyle(method); int i = 0; + if (enableDotNetHack) return; for (Parameter parameter : sortedParams) { // System.out.println("param: "+parameter.getIndex()+" name: "+parameter.getName().getLocalPart()); if (parameter.getIndex() < 0) @@ -600,8 +607,12 @@ // if its not really wrapper style dont use the same name as input message if (unwrappable) parts = RESULT; - else + else { + if (enableDotNetHack) { + parts = RESULT; + } parts = UNWRAPPABLE_RESULT; + } } else { parts = param.getPartName(); } @@ -701,8 +712,12 @@ // if its not really wrapper style dont use the same name as input message if (unwrappable) body.parts(RESULT); - else - body.parts(UNWRAPPABLE_RESULT); + else { + if (enableDotNetHack) { + body.parts(RESULT); + } + body.parts(UNWRAPPABLE_RESULT); + } } else { body.parts(param.getPartName()); } Index: jaxws-ri/rt/src/com/sun/xml/ws/transport/http/servlet/RuntimeEndpointInfoParser.java =================================================================== RCS file: /cvs/jax-ws-sources/jaxws-ri/rt/src/com/sun/xml/ws/transport/http/servlet/RuntimeEndpointInfoParser.java,v retrieving revision 1.23 diff -u -r1.23 RuntimeEndpointInfoParser.java --- jaxws-ri/rt/src/com/sun/xml/ws/transport/http/servlet/RuntimeEndpointInfoParser.java 29 Jun 2006 23:49:55 -0000 1.23 +++ jaxws-ri/rt/src/com/sun/xml/ws/transport/http/servlet/RuntimeEndpointInfoParser.java 21 Aug 2006 04:47:46 -0000 @@ -126,6 +126,12 @@ sb.setMTOMEnabled(Boolean.valueOf(mtom)); } } + + String enableDotNetHack = getAttribute(attrs, ATTR_ENABLE_DOT_NET_HACK); + if (enableDotNetHack != null && + (enableDotNetHack.equalsIgnoreCase("true") || enableDotNetHack.equalsIgnoreCase("yes"))) { + rei.setEnableDotNetHack(true); + } rei.setUrlPattern( getMandatoryNonEmptyAttribute(reader, attrs, ATTR_URL_PATTERN)); @@ -340,6 +346,7 @@ public static final String ATTR_ENABLE_MTOM = "enable-mtom"; public static final String ATTR_MTOM_THRESHOLD_VALUE = "mtom-threshold-value"; public static final String ATTR_BINDING = "binding"; + public static final String ATTR_ENABLE_DOT_NET_HACK = "enable-dot-net-hack"; public static final String ATTRVALUE_VERSION_1_0 = "2.0"; private static final Logger logger = Index: .project =================================================================== RCS file: .project diff -N .project --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ .project 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,17 @@ + + + jax-ws-sources + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + Index: .classpath =================================================================== RCS file: .classpath diff -N .classpath --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ .classpath 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +