You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2008/01/30 23:48:30 UTC
svn commit: r616935 - in /incubator/cxf/trunk:
api/src/main/java/org/apache/cxf/service/model/
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/
rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/
rt/frontend/jaxws/src/mai...
Author: dkulp
Date: Wed Jan 30 14:48:24 2008
New Revision: 616935
URL: http://svn.apache.org/viewvc?rev=616935&view=rev
Log:
Fix a bunch of issues with handlers and one way operations
Modified:
incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AbstractJAXWSHandlerInterceptor.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainInvoker.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/LogicalHandlerInInterceptor.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/LogicalHandlerOutInterceptor.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPMessageContextImpl.java
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/HandlerChainInvokerTest.java
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/LogicalHandlerInterceptorTest.java
incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/MtoM.java
incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/customer/bare/CustomerService.java
incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/customer/bare/GetCustomer.java
Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java Wed Jan 30 14:48:24 2008
@@ -64,6 +64,9 @@
public static BindingOperationInfo getOperation(Exchange exchange, QName opName) {
Endpoint ep = exchange.get(Endpoint.class);
+ if (ep == null) {
+ return null;
+ }
BindingInfo service = ep.getEndpointInfo().getBinding();
return service.getOperation(opName);
}
@@ -72,6 +75,9 @@
boolean output) {
Endpoint ep = exchange.get(Endpoint.class);
+ if (ep == null) {
+ return null;
+ }
BindingInfo service = ep.getEndpointInfo().getBinding();
Map<QName, BindingOperationInfo> wrapperMap =
CastUtils.cast(service.getProperty("ServiceModel.WRAPPER.MAP"
@@ -92,6 +98,13 @@
}
if (part != null) {
wrapperMap.put(part.getConcreteName(), b);
+ }
+ } else {
+ //check for single bare elements
+ BindingMessageInfo info = output ? b.getOutput() : b.getInput();
+ if (info != null && info.getMessageParts().size() == 1) {
+ wrapperMap.put(info.getMessageParts().get(0).getConcreteName(),
+ b);
}
}
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AbstractJAXWSHandlerInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AbstractJAXWSHandlerInterceptor.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AbstractJAXWSHandlerInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AbstractJAXWSHandlerInterceptor.java Wed Jan 30 14:48:24 2008
@@ -19,11 +19,15 @@
package org.apache.cxf.jaxws.handler;
+import javax.xml.namespace.QName;
import javax.xml.ws.Binding;
import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.service.model.BindingOperationInfo;
+import org.apache.cxf.service.model.OperationInfo;
+import org.apache.cxf.service.model.ServiceModelUtil;
public abstract class AbstractJAXWSHandlerInterceptor<T extends Message> extends AbstractPhaseInterceptor<T> {
private Binding binding;
@@ -104,5 +108,32 @@
}
return false;
+ }
+
+ protected void setupBindingOperationInfo(Exchange exch, Object data) {
+ if (exch.get(BindingOperationInfo.class) == null) {
+ //need to know the operation to determine if oneway
+ QName opName = getOpQName(exch, data);
+ if (opName == null) {
+ return;
+ }
+ BindingOperationInfo bop = ServiceModelUtil
+ .getOperationForWrapperElement(exch, opName, false);
+ if (bop == null) {
+ bop = ServiceModelUtil.getOperation(exch, opName);
+ }
+ if (bop != null) {
+ exch.put(BindingOperationInfo.class, bop);
+ exch.put(OperationInfo.class, bop.getOperationInfo());
+ if (bop.getOutput() == null) {
+ exch.setOneWay(true);
+ }
+ }
+
+ }
+ }
+
+ protected QName getOpQName(Exchange ex, Object data) {
+ return null;
}
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainInvoker.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainInvoker.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainInvoker.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainInvoker.java Wed Jan 30 14:48:24 2008
@@ -337,6 +337,8 @@
if (responseExpected) {
changeMessageDirection(ctx);
messageDirectionReversed = true;
+ } else {
+ invokeReversedClose();
}
break;
@@ -359,11 +361,17 @@
} else {
invokeReversedClose();
}
+ continueProcessing = false;
+ setFault(e);
+ throw e;
+ } else {
+ continueProcessing = false;
+ if (responseExpected || outbound) {
+ setFault(e);
+ throw e;
+ }
+ invokeReversedClose();
}
-
- continueProcessing = false;
- setFault(e);
- throw e;
} catch (RuntimeException e) {
LOG.log(Level.WARNING, "HANDLER_RAISED_RUNTIME_EXCEPTION", e);
@@ -376,11 +384,17 @@
//observer, we have to call close here.
if (isRequestor()) {
invokeReversedClose();
+ continueProcessing = false;
+ setFault(e);
+ throw e;
+ } else if (!responseExpected && !outbound) {
+ invokeReversedClose();
+ continueProcessing = false;
+ } else {
+ continueProcessing = false;
+ setFault(e);
+ throw e;
}
-
- continueProcessing = false;
- setFault(e);
- throw e;
}
return continueProcessing;
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/LogicalHandlerInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/LogicalHandlerInInterceptor.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/LogicalHandlerInInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/LogicalHandlerInInterceptor.java Wed Jan 30 14:48:24 2008
@@ -19,7 +19,10 @@
package org.apache.cxf.jaxws.handler.logical;
+import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMSource;
import javax.xml.ws.Binding;
import org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor;
@@ -31,6 +34,7 @@
import org.apache.cxf.jaxws.handler.HandlerChainInvoker;
import org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor;
import org.apache.cxf.jaxws.support.ContextPropertiesMapping;
+import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.staxutils.StaxUtils;
@@ -55,6 +59,9 @@
LogicalMessageContextImpl lctx = new LogicalMessageContextImpl(message);
invoker.setLogicalMessageContext(lctx);
boolean requestor = isRequestor(message);
+ if (!requestor) {
+ setupBindingOperationInfo(message.getExchange(), lctx);
+ }
ContextPropertiesMapping.mapCxf2Jaxws(message.getExchange(), lctx, requestor);
if (!invoker.invokeLogicalHandlers(requestor, lctx)) {
@@ -99,4 +106,17 @@
public void handleFault(T message) {
// TODO
}
+
+ protected QName getOpQName(Exchange ex, Object data) {
+ LogicalMessageContextImpl sm = (LogicalMessageContextImpl)data;
+ Source src = sm.getMessage().getPayload();
+ if (src instanceof DOMSource) {
+ DOMSource dsrc = (DOMSource)src;
+ String ln = dsrc.getNode().getLocalName();
+ String ns = dsrc.getNode().getNamespaceURI();
+ return new QName(ns, ln);
+ }
+ return null;
+ }
+
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/LogicalHandlerOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/LogicalHandlerOutInterceptor.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/LogicalHandlerOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/logical/LogicalHandlerOutInterceptor.java Wed Jan 30 14:48:24 2008
@@ -118,20 +118,22 @@
if (requestor) {
// client side - abort
message.getInterceptorChain().abort();
- Endpoint e = message.getExchange().get(Endpoint.class);
- Message responseMsg = e.getBinding().createMessage();
-
- MessageObserver observer = (MessageObserver)message.getExchange()
- .get(MessageObserver.class);
- if (observer != null) {
- //client side outbound, the request message becomes the response message
- responseMsg.setContent(XMLStreamReader.class, message
- .getContent(XMLStreamReader.class));
-
- message.getExchange().setInMessage(responseMsg);
- responseMsg.put(PhaseInterceptorChain.STARTING_AT_INTERCEPTOR_ID,
- LogicalHandlerInInterceptor.class.getName());
- observer.onMessage(responseMsg);
+ if (!message.getExchange().isOneWay()) {
+ Endpoint e = message.getExchange().get(Endpoint.class);
+ Message responseMsg = e.getBinding().createMessage();
+
+ MessageObserver observer = (MessageObserver)message.getExchange()
+ .get(MessageObserver.class);
+ if (observer != null) {
+ //client side outbound, the request message becomes the response message
+ responseMsg.setContent(XMLStreamReader.class, message
+ .getContent(XMLStreamReader.class));
+
+ message.getExchange().setInMessage(responseMsg);
+ responseMsg.put(PhaseInterceptorChain.STARTING_AT_INTERCEPTOR_ID,
+ LogicalHandlerInInterceptor.class.getName());
+ observer.onMessage(responseMsg);
+ }
}
} else {
// server side - abort
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java Wed Jan 30 14:48:24 2008
@@ -21,9 +21,12 @@
import java.net.URI;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.Set;
import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.stream.XMLStreamException;
@@ -50,6 +53,7 @@
import org.apache.cxf.jaxws.handler.AbstractProtocolHandlerInterceptor;
import org.apache.cxf.jaxws.handler.HandlerChainInvoker;
import org.apache.cxf.jaxws.support.ContextPropertiesMapping;
+import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.phase.PhaseInterceptorChain;
@@ -122,6 +126,7 @@
}
private void handleMessageInternal(SoapMessage message) {
+
MessageContext context = createProtocolMessageContext(message);
HandlerChainInvoker invoker = getInvoker(message);
invoker.setProtocolMessageContext(context);
@@ -144,11 +149,13 @@
// client side outbound
if (getInvoker(message).isOutbound()) {
message.getInterceptorChain().abort();
- Endpoint e = message.getExchange().get(Endpoint.class);
- Message responseMsg = e.getBinding().createMessage();
-
+
MessageObserver observer = (MessageObserver)message.getExchange().get(MessageObserver.class);
- if (observer != null) {
+ if (!message.getExchange().isOneWay()
+ && observer != null) {
+ Endpoint e = message.getExchange().get(Endpoint.class);
+ Message responseMsg = e.getBinding().createMessage();
+
// the request message becomes the response message
message.getExchange().setInMessage(responseMsg);
SOAPMessage soapMessage = ((SOAPMessageContext)context).getMessage();
@@ -162,7 +169,6 @@
SOAPHandlerInterceptor.class.getName());
observer.onMessage(responseMsg);
}
-
//We dont call onCompletion here, as onCompletion will be called by inbound
//LogicalHandlerInterceptor
} else {
@@ -206,6 +212,8 @@
SOAPMessageContextImpl sm = new SOAPMessageContextImpl(message);
boolean requestor = isRequestor(message);
ContextPropertiesMapping.mapCxf2Jaxws(message.getExchange(), sm, requestor);
+ Exchange exch = message.getExchange();
+ setupBindingOperationInfo(exch, sm);
return sm;
}
@@ -227,4 +235,27 @@
public void handleFault(SoapMessage message) {
}
+
+ protected QName getOpQName(Exchange ex, Object data) {
+ SOAPMessageContextImpl sm = (SOAPMessageContextImpl)data;
+ try {
+ SOAPMessage msg = sm.getMessage();
+ if (msg == null) {
+ return null;
+ }
+ SOAPBody body = msg.getSOAPBody();
+ if (body == null) {
+ return null;
+ }
+ Iterator<SOAPElement> it = CastUtils.cast(body.getChildElements());
+ if (it != null && it.hasNext()) {
+ SOAPElement el = it.next();
+ return el.getElementQName();
+ }
+ } catch (SOAPException e) {
+ //ignore, nothing we can do
+ }
+ return null;
+ }
+
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPMessageContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPMessageContextImpl.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPMessageContextImpl.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPMessageContextImpl.java Wed Jan 30 14:48:24 2008
@@ -72,7 +72,7 @@
//Only happens to non-Dispatch/Provider case.
if (null == message) {
Boolean outboundProperty = (Boolean)get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
- if (!outboundProperty) {
+ if (outboundProperty == null || !outboundProperty) {
//No SOAPMessage exists yet, so lets create one
SAAJ_IN.handleMessage(getWrappedSoapMessage());
message = getWrappedSoapMessage().getContent(SOAPMessage.class);
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/HandlerChainInvokerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/HandlerChainInvokerTest.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/HandlerChainInvokerTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/HandlerChainInvokerTest.java Wed Jan 30 14:48:24 2008
@@ -520,10 +520,9 @@
assertTrue(logicalHandlers[1].getInvokeOrderOfHandleMessage()
< logicalHandlers[2].getInvokeOrderOfHandleMessage());
- //Close is invoked outside HandlerChainInvoker, eg, in SOAPHandlerInterceptor
- assertEquals(0, logicalHandlers[0].getCloseCount());
- assertEquals(0, logicalHandlers[1].getCloseCount());
- assertEquals(0, logicalHandlers[2].getCloseCount());
+ assertEquals(1, logicalHandlers[0].getCloseCount());
+ assertEquals(1, logicalHandlers[1].getCloseCount());
+ assertEquals(1, logicalHandlers[2].getCloseCount());
assertEquals(0, logicalHandlers[3].getCloseCount());
assertEquals(0, logicalHandlers[0].getHandleFaultCount());
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/LogicalHandlerInterceptorTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/LogicalHandlerInterceptorTest.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/LogicalHandlerInterceptorTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/LogicalHandlerInterceptorTest.java Wed Jan 30 14:48:24 2008
@@ -87,10 +87,11 @@
});
expect(invoker.getLogicalHandlers()).andReturn(list);
expect(message.getExchange()).andReturn(exchange).anyTimes();
+ expect(message.containsKey(Message.REQUESTOR_ROLE)).andReturn(Boolean.TRUE).anyTimes();
expect(message.keySet()).andReturn(new TreeSet<String>()).anyTimes();
expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker);
expect(exchange.getOutMessage()).andReturn(message);
- expect(invoker.invokeLogicalHandlers(eq(false), isA(LogicalMessageContext.class)))
+ expect(invoker.invokeLogicalHandlers(eq(true), isA(LogicalMessageContext.class)))
.andReturn(true);
control.replay();
Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/MtoM.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/MtoM.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/MtoM.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/MtoM.java Wed Jan 30 14:48:24 2008
@@ -30,6 +30,6 @@
@WebService(targetNamespace = "uri:org.apache.cxf.javascript.fortest")
public interface MtoM {
void receiveNonXmlDH(@WebParam(name = "theArg") MtoMParameterBeanWithDataHandler param);
- void receiveNonXmlNoDH(@WebParam(name = "theArg") MtoMParameterBeanNoDataHandler param);
+ void receiveNonXmlNoDH(@WebParam(name = "theArgNoDH") MtoMParameterBeanNoDataHandler param);
MtoMParameterBeanWithDataHandler sendNonXmlDH();
}
Modified: incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/customer/bare/CustomerService.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/customer/bare/CustomerService.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/customer/bare/CustomerService.java (original)
+++ incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/customer/bare/CustomerService.java Wed Jan 30 14:48:24 2008
@@ -72,7 +72,7 @@
@HttpResource(location = "/customers/{id}")
@WebMethod
@WebResult(name = "customer")
- public Customer getCustomer(@WebParam(name = "GetCustomer") GetCustomer getCustomer)
+ public Customer getCustomer(@WebParam(name = "getCustomer") GetCustomer getCustomer)
throws CustomerNotFoundFault {
Customer c = customers.get(getCustomer.getId());
if (c == null) {
@@ -86,7 +86,7 @@
@Get
@HttpResource(location = "/customers/details/{id}")
@WebMethod
- public String getSomeDetails(@WebParam(name = "GetCustomer") GetCustomer getCustomer)
+ public String getSomeDetails(@WebParam(name = "getSomeDetails") GetCustomer getCustomer)
throws CustomerNotFoundFault {
return "some details";
}
Modified: incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/customer/bare/GetCustomer.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/customer/bare/GetCustomer.java?rev=616935&r1=616934&r2=616935&view=diff
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/customer/bare/GetCustomer.java (original)
+++ incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/customer/bare/GetCustomer.java Wed Jan 30 14:48:24 2008
@@ -19,8 +19,10 @@
package org.apache.cxf.customer.bare;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "GetCustomer")
+@XmlType(name = "GetCustomer")
public class GetCustomer {
private long id;