You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by mm...@apache.org on 2006/11/17 04:34:10 UTC
svn commit: r476038 - in /incubator/cxf/trunk/rt:
core/src/main/java/org/apache/cxf/interceptor/
databinding/jaxb/src/main/java/org/apache/cxf/jaxb/
databinding/jaxb/src/test/java/org/apache/cxf/jaxb/
frontend/simple/src/main/java/org/apache/cxf/servic...
Author: mmao
Date: Thu Nov 16 19:34:09 2006
New Revision: 476038
URL: http://svn.apache.org/viewvc?view=rev&rev=476038
Log:
CXF-246
* Apply Patch CXF-246 contributed by Unreal Jiang
* In Code-Firt model, message processing in client side and server side are different
Modified:
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/WrappedInInterceptor.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/WrappedOutInterceptor.java
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
incubator/cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/WrappedInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/WrappedInInterceptor.java?view=diff&rev=476038&r1=476037&r2=476038
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/WrappedInInterceptor.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/WrappedInInterceptor.java Thu Nov 16 19:34:09 2006
@@ -86,7 +86,7 @@
MessageInfo msgInfo = setMessage(message, operation, requestor);
// Determine if there is a wrapper class
- if ((operation.isUnwrapped() || operation.isUnwrappedCapable())
+ if (operation.isUnwrappedCapable()
&& msgInfo.getMessageParts().get(0).getTypeClass() != null) {
objects = new ArrayList<Object>();
Object wrappedObject = dr.read(msgInfo.getMessageParts().get(0), message);
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/WrappedOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/WrappedOutInterceptor.java?view=diff&rev=476038&r1=476037&r2=476038
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/WrappedOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/WrappedOutInterceptor.java Thu Nov 16 19:34:09 2006
@@ -61,14 +61,7 @@
xmlWriter.setDefaultNamespace(name.getNamespaceURI());
xmlWriter.writeStartElement(name.getNamespaceURI(), name.getLocalPart());
xmlWriter.writeDefaultNamespace(name.getNamespaceURI());
- if (!message.getInterceptorChain().doIntercept(message)
- && message.getContent(Exception.class) != null) {
- if (message.getContent(Exception.class) instanceof Fault) {
- throw (Fault)message.getContent(Exception.class);
- } else {
- throw new Fault(message.getContent(Exception.class));
- }
- }
+ message.getInterceptorChain().doIntercept(message);
xmlWriter.writeEndElement();
} catch (XMLStreamException e) {
throw new Fault(new org.apache.cxf.common.i18n.Message("STAX_WRITE_EXC", BUNDLE), e);
Modified: incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java?view=diff&rev=476038&r1=476037&r2=476038
==============================================================================
--- incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java (original)
+++ incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java Thu Nov 16 19:34:09 2006
@@ -25,6 +25,7 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
@@ -244,6 +245,17 @@
public static JAXBContext createJAXBContext(Set<Class<?>> classes) throws JAXBException {
+ Iterator it = classes.iterator();
+ String className = "";
+ Object remoteExceptionObject = null;
+ while (it.hasNext()) {
+ remoteExceptionObject = (Class)it.next();
+ className = remoteExceptionObject.toString();
+ if (!("".equals(className)) && className.contains("RemoteException")) {
+ classes.remove(remoteExceptionObject);
+ }
+ }
+
try {
classes.add(Class.forName("org.apache.cxf.ws.addressing.wsdl.AttributedQNameType"));
classes.add(Class.forName("org.apache.cxf.ws.addressing.wsdl.ObjectFactory"));
Modified: incubator/cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java?view=diff&rev=476038&r1=476037&r2=476038
==============================================================================
--- incubator/cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java (original)
+++ incubator/cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java Thu Nov 16 19:34:09 2006
@@ -20,8 +20,10 @@
package org.apache.cxf.jaxb;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.logging.Logger;
import javax.wsdl.Definition;
@@ -112,6 +114,17 @@
assertNotNull(jmsSchema.getElement());
assertEquals(wsdlSchema.getNamespaceURI(), "http://schemas.xmlsoap.org/wsdl/");
assertEquals(jmsSchema.getNamespaceURI(), "http://cxf.apache.org/transports/jms");
+ }
+
+ public void testCreateJAXBContext() throws Exception {
+ try {
+ Set<Class<?>> classes = new HashSet<Class<?>>();
+ classes.add(Class.forName("java.rmi.RemoteException"));
+ assertNotNull(JAXBDataBinding.createJAXBContext(classes));
+ } catch (Exception e) {
+ assertFalse(true);
+ }
+
}
}
Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java?view=diff&rev=476038&r1=476037&r2=476038
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/SimpleMethodDispatcher.java Thu Nov 16 19:34:09 2006
@@ -82,9 +82,7 @@
private BindingOperationInfo getRealOperation(OperationInfo o, BindingOperationInfo bop) {
BindingOperationInfo unwrappedOp = bop.getUnwrappedOperation();
if (unwrappedOp != null
- && unwrappedOp.getOperationInfo().equals(o.getUnwrappedOperation())
- && unwrappedOp.getWrappedOperation().getInput().getMessageInfo()
- .getMessagePartByIndex(0).getTypeClass() != null) {
+ && unwrappedOp.getOperationInfo().equals(o.getUnwrappedOperation())) {
bop = unwrappedOp;
}
return bop;