[jboss-svn-commits] JBossWS SVN: r1183 - in trunk/src: main/java/org/jboss/ws/binding main/java/org/jboss/ws/deployment main/java/org/jboss/ws/jaxrpc main/java/org/jboss/ws/metadata main/java/org/jboss/ws/utils test/java/org/jboss/test/ws/jaxws/jsr181/webparam
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 10 00:30:47 EDT 2006
Author: jason.greene at jboss.com
Date: 2006-10-10 00:30:40 -0400 (Tue, 10 Oct 2006)
New Revision: 1183
Modified:
trunk/src/main/java/org/jboss/ws/binding/EndpointInvocation.java
trunk/src/main/java/org/jboss/ws/deployment/JSR181ClientMetaDataBuilder.java
trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java
trunk/src/main/java/org/jboss/ws/jaxrpc/ParameterWrapping.java
trunk/src/main/java/org/jboss/ws/metadata/ParameterMetaData.java
trunk/src/main/java/org/jboss/ws/utils/HolderUtils.java
trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/PingDocument.java
trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/PingService.java
trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/SecurityHeader.java
Log:
Improve holder support
Fix default namespace handling
Fix JAX-WS/JSR-181 webparam test case
Modified: trunk/src/main/java/org/jboss/ws/binding/EndpointInvocation.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/binding/EndpointInvocation.java 2006-10-10 02:45:56 UTC (rev 1182)
+++ trunk/src/main/java/org/jboss/ws/binding/EndpointInvocation.java 2006-10-10 04:30:40 UTC (rev 1183)
@@ -303,12 +303,10 @@
if (paramMetaData.getMode() == ParameterMode.INOUT || paramMetaData.getMode() == ParameterMode.OUT)
{
- Holder holder = HolderUtils.getHolderInstance(targetParameterType);
- HolderUtils.setHolderValue(holder, paramValue);
- retValue = holder;
+ retValue = HolderUtils.getHolderInstance(paramValue, targetParameterType);
QName xmlName = paramMetaData.getXmlName();
- setResponseParamValue(xmlName, holder);
+ setResponseParamValue(xmlName, retValue);
}
if (retValue != null)
Modified: trunk/src/main/java/org/jboss/ws/deployment/JSR181ClientMetaDataBuilder.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/deployment/JSR181ClientMetaDataBuilder.java 2006-10-10 02:45:56 UTC (rev 1182)
+++ trunk/src/main/java/org/jboss/ws/deployment/JSR181ClientMetaDataBuilder.java 2006-10-10 04:30:40 UTC (rev 1183)
@@ -69,7 +69,7 @@
processWebMethods(epMetaData, wsClass, true);
// Build JAXB Context
- createJAXBContext();
+ createJAXBContext(epMetaData.getInterfaceQName().getNamespaceURI());
populateXmlTypes(epMetaData);
// Eager initialization
Modified: trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java 2006-10-10 02:45:56 UTC (rev 1182)
+++ trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java 2006-10-10 04:30:40 UTC (rev 1183)
@@ -194,7 +194,7 @@
processWebMethods(sepMetaData, wsClass, includeAllMethods);
// Build JAXB Context
- createJAXBContext();
+ createJAXBContext(sepMetaData.getInterfaceQName().getNamespaceURI());
populateXmlTypes(sepMetaData);
// Process or generate WSDL
@@ -250,11 +250,11 @@
typeRefs.clear();
}
- protected void createJAXBContext()
+ protected void createJAXBContext(String targetNamespace)
{
try
{
- jaxbCtx = JAXBRIContext.newInstance(javaTypes.toArray(new Class[0]), typeRefs, null, false);
+ jaxbCtx = JAXBRIContext.newInstance(javaTypes.toArray(new Class[0]), typeRefs, targetNamespace, false);
}
catch (JAXBException ex)
{
@@ -428,8 +428,8 @@
// FIXME - Improve JAX-RPC and JAX-WS Holder unification
if (HolderUtils.isHolderType(javaType))
{
- javaType = HolderUtils.getValueType(javaType);
genericType = HolderUtils.getGenericValueType(genericType);
+ javaType = JavaUtils.erasure(genericType);
javaTypeName = javaType.getName();
}
Modified: trunk/src/main/java/org/jboss/ws/jaxrpc/ParameterWrapping.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/jaxrpc/ParameterWrapping.java 2006-10-10 02:45:56 UTC (rev 1182)
+++ trunk/src/main/java/org/jboss/ws/jaxrpc/ParameterWrapping.java 2006-10-10 04:30:40 UTC (rev 1183)
@@ -84,17 +84,6 @@
return HolderUtils.getHolderValue(holder);
}
- private static Object holder(Object value, Class<?> target)
- {
- if (! HolderUtils.isHolderType(target))
- return value;
-
- Object holder = HolderUtils.getHolderInstance(target);
- HolderUtils.setHolderValue(holder, value);
-
- return holder;
- }
-
public static Class getWrappedType(String variable, Class wrapperType)
{
try
@@ -168,7 +157,7 @@
// INOUT Parameter
if (HolderUtils.isHolderType(targetType))
{
- value = holder(value, targetType);
+ value = HolderUtils.getHolderInstance(value, targetType);
outParameters.put(param.index, value);
}
@@ -249,7 +238,7 @@
if (param.index < 0)
retValue = value;
else
- methodParams[param.index] = holder(value, targetTypes[param.index]);
+ methodParams[param.index] = HolderUtils.getHolderInstance(value, targetTypes[param.index]);
}
}
catch (RuntimeException rte)
Modified: trunk/src/main/java/org/jboss/ws/metadata/ParameterMetaData.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/metadata/ParameterMetaData.java 2006-10-10 02:45:56 UTC (rev 1182)
+++ trunk/src/main/java/org/jboss/ws/metadata/ParameterMetaData.java 2006-10-10 04:30:40 UTC (rev 1183)
@@ -359,7 +359,8 @@
{
// At some point we want to make this plugable, hardcoding
// references like this is not very flexible.
- (new DynamicWrapperGenerator(getClassLoader())).generate(this);
+ if (opMetaData.isDocumentWrapped())
+ (new DynamicWrapperGenerator(getClassLoader())).generate(this);
// Initialize the cache
getJavaType();
Modified: trunk/src/main/java/org/jboss/ws/utils/HolderUtils.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/utils/HolderUtils.java 2006-10-10 02:45:56 UTC (rev 1182)
+++ trunk/src/main/java/org/jboss/ws/utils/HolderUtils.java 2006-10-10 04:30:40 UTC (rev 1183)
@@ -113,24 +113,6 @@
/** Get the Holder for a given valueType.
*/
- public static Holder getHolderInstance(Class holderType)
- {
- try
- {
- return (Holder)holderType.newInstance();
- }
- catch (RuntimeException rte)
- {
- throw rte;
- }
- catch (Exception e)
- {
- throw new IllegalArgumentException("Cannot instanciate holder: " + holderType);
- }
- }
-
- /** Get the Holder for a given valueType.
- */
public static Class getHolderType(Class valueType)
{
if (valueType == null)
@@ -218,7 +200,7 @@
if (holder == null)
throw new IllegalArgumentException("Illegal null parameter");
- if (Holder.class.isInstance(holder) == false)
+ if (!Holder.class.isInstance(holder) && !javax.xml.ws.Holder.class.isInstance(holder))
throw new IllegalArgumentException("Is not a holder: " + holder);
try
@@ -244,14 +226,10 @@
if (holder == null)
throw new IllegalArgumentException("Illegal null parameter");
- if (Holder.class.isInstance(holder) == false)
+ if (!Holder.class.isInstance(holder) && !javax.xml.ws.Holder.class.isInstance(holder))
throw new IllegalArgumentException("Is not a holder: " + holder);
Class valueType = getValueType(holder.getClass());
- if (JavaUtils.isPrimitive(valueType))
- value = JavaUtils.getPrimitiveValue(value);
- else
- value = JavaUtils.getWrapperValue(value);
if (value != null && JavaUtils.isAssignableFrom(valueType, value.getClass()) == false)
throw new IllegalArgumentException("Holder [" + holder.getClass().getName() + "] value not assignable: " + value);
@@ -274,6 +252,31 @@
public static Type getGenericValueType(Type holder)
{
- return ((ParameterizedType)holder).getActualTypeArguments()[0];
+ return (holder instanceof ParameterizedType) ? ((ParameterizedType)holder).getActualTypeArguments()[0] : holder;
}
+
+ public static Object getHolderInstance(Object value, Class<?> target)
+ {
+ if (! isHolderType(target))
+ return value;
+
+ Object holder;
+
+ try
+ {
+ holder = target.newInstance();
+ }
+ catch (RuntimeException rte)
+ {
+ throw rte;
+ }
+ catch (Exception e)
+ {
+ throw new IllegalArgumentException("Cannot instanciate holder: " + target);
+ }
+
+ setHolderValue(holder, value);
+
+ return holder;
+ }
}
Modified: trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/PingDocument.java
===================================================================
--- trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/PingDocument.java 2006-10-10 02:45:56 UTC (rev 1182)
+++ trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/PingDocument.java 2006-10-10 04:30:40 UTC (rev 1183)
@@ -27,7 +27,7 @@
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
- at XmlType(name = "PingDocumentType", propOrder = { "content" })
+ at XmlType(name = "PingDocument", propOrder = { "content" })
public class PingDocument
{
@XmlElement(namespace = "http://www.openuri.org/jsr181/WebParamExample", required = true)
Modified: trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/PingService.java
===================================================================
--- trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/PingService.java 2006-10-10 02:45:56 UTC (rev 1182)
+++ trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/PingService.java 2006-10-10 04:30:40 UTC (rev 1183)
@@ -21,11 +21,12 @@
*/
package org.jboss.test.ws.jaxws.jsr181.webparam;
+import javax.jws.Oneway;
import javax.jws.WebMethod;
+import javax.jws.WebParam;
import javax.jws.WebService;
-import javax.jws.WebParam;
-import javax.jws.Oneway;
import javax.jws.soap.SOAPBinding;
+import javax.xml.ws.Holder;
import org.jboss.logging.Logger;
@@ -57,7 +58,7 @@
}
@WebMethod(operationName = "PingTwoWay")
- public void ping(@WebParam(name = "Ping", mode = WebParam.Mode.INOUT) PingDocumentHolder p)
+ public void ping(@WebParam(name = "Ping", mode = WebParam.Mode.INOUT) Holder<PingDocument> p)
{
log.info("ping: " + p.value);
p.value = new PingDocument(p.value.getContent() + " Response");
Modified: trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/SecurityHeader.java
===================================================================
--- trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/SecurityHeader.java 2006-10-10 02:45:56 UTC (rev 1182)
+++ trunk/src/test/java/org/jboss/test/ws/jaxws/jsr181/webparam/SecurityHeader.java 2006-10-10 04:30:40 UTC (rev 1183)
@@ -27,7 +27,7 @@
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
- at XmlType(name = "SecurityHeaderType", propOrder = { "value" })
+ at XmlType(name = "SecurityHeader", propOrder = { "value" })
public class SecurityHeader
{
@XmlElement(namespace = "http://www.openuri.org/jsr181/WebParamExample", required = true)
More information about the jboss-svn-commits
mailing list