You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ri...@apache.org on 2007/02/23 20:17:55 UTC
svn commit: r511057 - in
/incubator/tuscany/branches/sca-java-integration/sca:
extensions/axis2/databinding/src/main/java/org/apache/tuscany/databinding/axiom/
extensions/axis2/databinding/src/test/java/org/apache/tuscany/databinding/axiom/
kernel/core...
Author: rineholt
Date: Fri Feb 23 11:17:53 2007
New Revision: 511057
URL: http://svn.apache.org/viewvc?view=rev&rev=511057
Log:
[sca-java-integration] fixes for Exception faults with wsdl contract
Added:
incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ServiceFaultException.java (with props)
Removed:
incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/main/java/org/apache/tuscany/databinding/axiom/AxiomFaultException.java
Modified:
incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/main/java/org/apache/tuscany/databinding/axiom/AxiomExceptionHandler.java
incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/test/java/org/apache/tuscany/databinding/axiom/AxiomExceptionHandlerTestCase.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingInteceptor.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/ExceptionHandler.java
incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandler.java
incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandlerTestCase.java
incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandler.java
incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandlerTestCase.java
incubator/tuscany/branches/sca-java-integration/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/main/java/org/apache/tuscany/databinding/axiom/AxiomExceptionHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/main/java/org/apache/tuscany/databinding/axiom/AxiomExceptionHandler.java?view=diff&rev=511057&r1=511056&r2=511057
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/main/java/org/apache/tuscany/databinding/axiom/AxiomExceptionHandler.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/main/java/org/apache/tuscany/databinding/axiom/AxiomExceptionHandler.java Fri Feb 23 11:17:53 2007
@@ -21,6 +21,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.tuscany.spi.databinding.ExceptionHandler;
+import org.apache.tuscany.spi.idl.ServiceFaultException;
import org.apache.tuscany.spi.idl.XMLType;
import org.apache.tuscany.spi.model.DataType;
@@ -32,21 +33,25 @@
public class AxiomExceptionHandler implements ExceptionHandler {
public Exception createException(DataType<DataType> exceptionType, String message, Object faultInfo, Throwable cause) {
- return new AxiomFaultException(message, (OMElement)faultInfo, cause);
+ return new ServiceFaultException(message, (OMElement)faultInfo, cause);
}
public Object getFaultInfo(Exception exception) {
if (exception == null) {
return null;
}
- AxiomFaultException faultException = (AxiomFaultException)exception;
+ ServiceFaultException faultException = (ServiceFaultException)exception;
return faultException.getFaultInfo();
}
- public DataType<?> getFaultType(Class<? extends Exception> exceptionType) {
- if (AxiomFaultException.class == exceptionType) {
- DataType<XMLType> faultType = new DataType<XMLType>(AxiomDataBinding.NAME, OMElement.class, XMLType.UNKNOWN);
+ public DataType<?> getFaultType(DataType exceptionType) {
+ if (ServiceFaultException.class == exceptionType.getPhysical()) {
+ XMLType type = XMLType.UNKNOWN;
+ if(exceptionType.getLogical() instanceof XMLType) {
+ type = (XMLType) exceptionType.getLogical();
+ }
+ DataType<XMLType> faultType = new DataType<XMLType>(AxiomDataBinding.NAME, OMElement.class, type);
return faultType;
} else {
return null;
Modified: incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/test/java/org/apache/tuscany/databinding/axiom/AxiomExceptionHandlerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/test/java/org/apache/tuscany/databinding/axiom/AxiomExceptionHandlerTestCase.java?view=diff&rev=511057&r1=511056&r2=511057
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/test/java/org/apache/tuscany/databinding/axiom/AxiomExceptionHandlerTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/extensions/axis2/databinding/src/test/java/org/apache/tuscany/databinding/axiom/AxiomExceptionHandlerTestCase.java Fri Feb 23 11:17:53 2007
@@ -28,6 +28,7 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.tuscany.spi.idl.ServiceFaultException;
import org.apache.tuscany.spi.idl.XMLType;
import org.apache.tuscany.spi.model.DataType;
@@ -80,25 +81,25 @@
}
public void testGetFaultType() {
- DataType<?> dataType = handler.getFaultType(AxiomFaultException.class);
+ DataType<?> dataType = handler.getFaultType(new DataType<XMLType>(ServiceFaultException.class, null));
assertEquals(OMElement.class, dataType.getPhysical());
assertEquals(XMLType.UNKNOWN, dataType.getLogical());
assertEquals(AxiomDataBinding.NAME, dataType.getDataBinding());
- dataType = handler.getFaultType(Exception.class);
+ dataType = handler.getFaultType(new DataType<XMLType>(Exception.class, null));
assertNull(dataType);
}
public void testCreate() {
Exception ex = handler.createException(null, "Order", faultElement, null);
- assertTrue(ex instanceof AxiomFaultException);
- AxiomFaultException exception = (AxiomFaultException)ex;
+ assertTrue(ex instanceof ServiceFaultException);
+ ServiceFaultException exception = (ServiceFaultException)ex;
assertEquals("Order", exception.getMessage());
assertSame(faultElement, exception.getFaultInfo());
}
public void testGetFaultInfo() {
- AxiomFaultException exception = new AxiomFaultException("Order", faultElement, null);
+ ServiceFaultException exception = new ServiceFaultException("Order", faultElement, null);
Object faultInfo = handler.getFaultInfo(exception);
assertSame(faultElement, faultInfo);
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingInteceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingInteceptor.java?view=diff&rev=511057&r1=511056&r2=511057
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingInteceptor.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingInteceptor.java Fri Feb 23 11:17:53 2007
@@ -174,7 +174,7 @@
if (targetHandler == null) {
return null;
}
- return targetHandler.getFaultType((Class)exceptionType.getPhysical());
+ return targetHandler.getFaultType(exceptionType);
}
/**
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/ExceptionHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/ExceptionHandler.java?view=diff&rev=511057&r1=511056&r2=511057
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/ExceptionHandler.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/ExceptionHandler.java Fri Feb 23 11:17:53 2007
@@ -50,8 +50,8 @@
/**
* Introspect an exception class to figure out the fault data type
*
- * @param exceptionType The exception class
+ * @param exceptionDataType The exception class
* @return The data type for the fault
*/
- DataType<?> getFaultType(Class<? extends Exception> exceptionType);
+ DataType<?> getFaultType(DataType exceptionDataType);
}
Added: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ServiceFaultException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ServiceFaultException.java?view=auto&rev=511057
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ServiceFaultException.java (added)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ServiceFaultException.java Fri Feb 23 11:17:53 2007
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.spi.idl;
+
+import org.apache.tuscany.api.TuscanyException;
+
+/**
+ * The generic java exception to wrap service faults
+ *
+ * @version $Rev$ $Date$
+ */
+public class ServiceFaultException extends TuscanyException {
+ private static final long serialVersionUID = -8002583655240625792L;
+ private Object faultInfo;
+
+ /**
+ * @param message
+ * @param faultInfo
+ */
+ public ServiceFaultException(String message, Object faultInfo) {
+ super(message);
+ this.faultInfo = faultInfo;
+ }
+
+ /**
+ * @param message
+ * @param faultInfo
+ * @param cause
+ */
+ public ServiceFaultException(String message, Object faultInfo, Throwable cause) {
+ super(message, cause);
+ this.faultInfo = faultInfo;
+ }
+
+ /**
+ * @return the faultInfo
+ */
+ public Object getFaultInfo() {
+ return faultInfo;
+ }
+
+}
Propchange: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ServiceFaultException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ServiceFaultException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandler.java?view=diff&rev=511057&r1=511056&r2=511057
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandler.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandler.java Fri Feb 23 11:17:53 2007
@@ -76,7 +76,8 @@
}
}
- public DataType<?> getFaultType(Class<? extends Exception> exceptionType) {
+ public DataType<?> getFaultType(DataType exDataType) {
+ Class<?> exceptionType = (Class) exDataType.getPhysical();
WebFault webFault = exceptionType.getAnnotation(WebFault.class);
if (webFault == null) {
return null;
Modified: incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandlerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandlerTestCase.java?view=diff&rev=511057&r1=511056&r2=511057
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandlerTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandlerTestCase.java Fri Feb 23 11:17:53 2007
@@ -44,14 +44,16 @@
}
public void testGetFaultType() {
- DataType<?> dataType = handler.getFaultType(InvalidSymbolFault_Exception.class);
+ DataType exType = new DataType<XMLType>(InvalidSymbolFault_Exception.class, XMLType.UNKNOWN);
+ DataType<?> dataType = handler.getFaultType(exType);
assertEquals(InvalidSymbolFault.class, dataType.getPhysical());
assertEquals(ELEMENT, ((XMLType) dataType.getLogical()).getElementName());
assertEquals(JAXBDataBinding.NAME, dataType.getDataBinding());
}
public void testCreate() {
- DataType<?> faultType = handler.getFaultType(InvalidSymbolFault_Exception.class);
+ DataType execType = new DataType<XMLType>(InvalidSymbolFault_Exception.class, XMLType.UNKNOWN);
+ DataType<?> faultType = handler.getFaultType(execType);
InvalidSymbolFault fault = new InvalidSymbolFault();
fault.setMessage("ABC");
fault.setSymbol("IBM0");
Modified: incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandler.java?view=diff&rev=511057&r1=511056&r2=511057
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandler.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandler.java Fri Feb 23 11:17:53 2007
@@ -83,7 +83,8 @@
}
}
- public DataType<?> getFaultType(Class<? extends Exception> exceptionType) {
+ public DataType<?> getFaultType(DataType exceptionDataType) {
+ Class exceptionType = (Class) exceptionDataType.getPhysical();
Class faultBeanClass = null;
try {
Method method = exceptionType.getMethod("getFaultInfo", EMPTY_CLASS_ARRAY);
Modified: incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandlerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandlerTestCase.java?view=diff&rev=511057&r1=511056&r2=511057
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandlerTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/services/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOExceptionHandlerTestCase.java Fri Feb 23 11:17:53 2007
@@ -48,14 +48,16 @@
}
public void testGetFaultType() {
- DataType<?> dataType = handler.getFaultType(InvalidSymbolFault_Exception.class);
+ DataType execType = new DataType<XMLType>(InvalidSymbolFault_Exception.class, XMLType.UNKNOWN);
+ DataType<?> dataType = handler.getFaultType(execType);
assertEquals(InvalidSymbolFault.class, dataType.getPhysical());
assertEquals(InvalidSymbolFault_Exception.FAULT_ELEMENT, ((XMLType) dataType.getLogical()).getElementName());
assertEquals(SDODataBinding.NAME, dataType.getDataBinding());
}
public void testCreate() {
- DataType<?> faultType = handler.getFaultType(InvalidSymbolFault_Exception.class);
+ DataType execType = new DataType<XMLType>(InvalidSymbolFault_Exception.class, XMLType.UNKNOWN);
+ DataType<?> faultType = handler.getFaultType(execType);
InvalidSymbolFault fault = StockFactory.INSTANCE.createInvalidSymbolFault();
fault.setMessage("ABC");
fault.setSymbol("IBM0");
Modified: incubator/tuscany/branches/sca-java-integration/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java?view=diff&rev=511057&r1=511056&r2=511057
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java Fri Feb 23 11:17:53 2007
@@ -34,6 +34,7 @@
import org.apache.tuscany.spi.databinding.DataBinding;
import org.apache.tuscany.spi.idl.ElementInfo;
import org.apache.tuscany.spi.idl.InvalidServiceContractException;
+import org.apache.tuscany.spi.idl.ServiceFaultException;
import org.apache.tuscany.spi.idl.TypeInfo;
import org.apache.tuscany.spi.idl.XMLType;
import org.apache.tuscany.spi.model.WrapperInfo;
@@ -132,7 +133,7 @@
throw new NotSupportedWSDLException("Multi-part output is not supported");
}
Part part = (Part)outputParts.get(0);
- outputType = new WSDLPart(part).getDataType();
+ outputType = new WSDLPart(part, Object.class).getDataType();
// outputType.setMetadata(WSDLOperation.class.getName(), this);
}
}
@@ -155,7 +156,7 @@
throw new NotSupportedWSDLException("The fault message MUST have a single part");
}
Part part = (Part)faultParts.get(0);
- WSDLPart wsdlPart = new WSDLPart(part);
+ WSDLPart wsdlPart = new WSDLPart(part, ServiceFaultException.class);
faultTypes.add(wsdlPart.getDataType());
}
}
@@ -167,7 +168,7 @@
if (message != null) {
Collection parts = message.getOrderedParts(null);
for (Object p : parts) {
- WSDLPart part = new WSDLPart((Part)p);
+ WSDLPart part = new WSDLPart((Part)p, Object.class);
DataType<XMLType> partType = part.getDataType();
partTypes.add(partType);
}
@@ -221,7 +222,7 @@
private DataType<XMLType> dataType;
- public WSDLPart(Part part) throws InvalidWSDLException {
+ public WSDLPart(Part part, Class javaType) throws InvalidWSDLException {
this.part = part;
QName elementName = part.getElementName();
if (elementName != null) {
@@ -244,7 +245,7 @@
element.setSchemaTypeName(type.getQName());
}
}
- dataType = new DataType<XMLType>(dataBinding, Object.class, new XMLType(getElementInfo(element)));
+ dataType = new DataType<XMLType>(dataBinding, javaType, new XMLType(getElementInfo(element)));
// dataType.setMetadata(WSDLPart.class.getName(), this);
// dataType.setMetadata(ElementInfo.class.getName(), getElementInfo(element));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org