You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yoko-commits@incubator.apache.org by br...@apache.org on 2007/05/23 13:09:38 UTC
svn commit: r540943 - in /incubator/yoko/branches/perf/src:
main/java/org/apache/yoko/bindings/corba/
main/java/org/apache/yoko/bindings/corba/interceptors/
main/java/org/apache/yoko/bindings/corba/runtime/
test/java/org/apache/yoko/bindings/corba/ tes...
Author: bravi
Date: Wed May 23 06:09:37 2007
New Revision: 540943
URL: http://svn.apache.org/viewvc?view=rev&rev=540943
Log:
[YOKO-366] - Completed support for exceptions
Modified:
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaConduit.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamFaultInInterceptor.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamInInterceptor.java
incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java
incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaExceptionTest.java
incubator/yoko/branches/perf/src/test/resources/wsdl/exceptions.wsdl
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaConduit.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaConduit.java?view=diff&rev=540943&r1=540942&r2=540943
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaConduit.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaConduit.java Wed May 23 06:09:37 2007
@@ -176,7 +176,7 @@
try {
request.invoke();
} catch (SystemException ex) {
- message.setContent(Exception.class, ex);
+ message.setContent(Exception.class, new Fault(ex));
message.setSystemException(ex);
return;
}
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamFaultInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamFaultInInterceptor.java?view=diff&rev=540943&r1=540942&r2=540943
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamFaultInInterceptor.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamFaultInInterceptor.java Wed May 23 06:09:37 2007
@@ -83,8 +83,10 @@
BindingOperationInfo bopInfo = message.getExchange().get(BindingOperationInfo.class);
OperationInfo opInfo = bopInfo.getOperationInfo();
+ CorbaMessage outMessage = (CorbaMessage)message.getExchange().getOutMessage();
+
ServiceInfo service = message.getExchange().get(ServiceInfo.class);
- CorbaTypeMap typeMap = message.getCorbaTypeMap();
+ CorbaTypeMap typeMap = outMessage.getCorbaTypeMap();
org.omg.CORBA.ORB orb = (org.omg.CORBA.ORB) message.get(CorbaConstants.ORB);
if (orb == null) {
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamInInterceptor.java?view=diff&rev=540943&r1=540942&r2=540943
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamInInterceptor.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamInInterceptor.java Wed May 23 06:09:37 2007
@@ -89,17 +89,18 @@
}
}
- private void handleReply(Message message) {
-
- CorbaMessage outMessage = (CorbaMessage)message.getExchange().getOutMessage();
- if (outMessage.getStreamableException() != null || outMessage.getSystemException() != null) {
+ private void handleReply(Message msg) {
+ CorbaMessage message = (CorbaMessage)msg;
+ if (message.getStreamableException() != null || message.getSystemException() != null) {
Endpoint ep = message.getExchange().get(Endpoint.class);
message.getInterceptorChain().abort();
if (ep.getInFaultObserver() != null) {
- ep.getInFaultObserver().onMessage(outMessage);
+ ep.getInFaultObserver().onMessage(message);
return;
}
}
+
+ CorbaMessage outMessage = (CorbaMessage)message.getExchange().getOutMessage();
orb = (ORB)message.getExchange().get(ORB.class);
HandlerIterator paramIterator = new HandlerIterator(outMessage, false);
Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java?view=diff&rev=540943&r1=540942&r2=540943
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java Wed May 23 06:09:37 2007
@@ -21,6 +21,7 @@
import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
@@ -90,6 +91,18 @@
return currentText.length;
}
+ public boolean isStartElement() {
+ return currentState == XMLStreamConstants.START_ELEMENT;
+ }
+
+ public boolean isCharacters() {
+ return currentState == XMLStreamConstants.CHARACTERS;
+ }
+
+ public boolean isEndElement() {
+ return currentState == XMLStreamConstants.END_ELEMENT;
+ }
+
public void close() throws XMLStreamException {
// TODO Auto-generated method stub
}
@@ -259,21 +272,9 @@
return false;
}
- public boolean isCharacters() {
- throw new RuntimeException("Not Implemented");
- }
-
- public boolean isEndElement() {
- throw new RuntimeException("Not Implemented");
- }
-
public boolean isStandalone() {
// TODO Auto-generated method stub
return false;
- }
-
- public boolean isStartElement() {
- throw new RuntimeException("Not Implemented");
}
public boolean isWhiteSpace() {
Modified: incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaExceptionTest.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaExceptionTest.java?view=diff&rev=540943&r1=540942&r2=540943
==============================================================================
--- incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaExceptionTest.java (original)
+++ incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaExceptionTest.java Wed May 23 06:09:37 2007
@@ -131,11 +131,19 @@
client.reviewData(data);
} catch (org.apache.schemas.idl.except.BadRecord ex) {
assertTrue(true);
+ assertEquals("BadRecord exception does not contain proper values",
+ "testReason",
+ ex.getFaultInfo().getReason());
return;
} catch (Exception ex) {
Throwable t = ex.getCause();
if ((t != null) && (t instanceof org.apache.schemas.idl.except.BadRecord)) {
assertTrue(true);
+ org.apache.schemas.idl.except.BadRecord recEx =
+ (org.apache.schemas.idl.except.BadRecord) t;
+ assertEquals("BadRecord exception does not contain proper values",
+ "testReason",
+ recEx.getFaultInfo().getReason());
return;
}
}
@@ -174,9 +182,11 @@
endpointInterface = "org.apache.schemas.idl.except.ExceptionTest")
public class ExceptionTestImpl implements ExceptionTest {
public ExceptionTestReviewDataResult reviewData(ExceptionTestReviewData exId)
- throws org.apache.schemas.idl.except.BadRecord {
- throw new org.apache.schemas.idl.except.BadRecord("test",
- new org.apache.schemas.idltypes.except.BadRecord());
+ throws org.apache.schemas.idl.except.BadRecord {
+ org.apache.schemas.idltypes.except.BadRecord rec = new org.apache.schemas.idltypes.except.BadRecord();
+ rec.setReason("testReason");
+ rec.setCode((short)10);
+ throw new org.apache.schemas.idl.except.BadRecord("test", rec);
}
}
}
Modified: incubator/yoko/branches/perf/src/test/resources/wsdl/exceptions.wsdl
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/test/resources/wsdl/exceptions.wsdl?view=diff&rev=540943&r1=540942&r2=540943
==============================================================================
--- incubator/yoko/branches/perf/src/test/resources/wsdl/exceptions.wsdl (original)
+++ incubator/yoko/branches/perf/src/test/resources/wsdl/exceptions.wsdl Wed May 23 06:09:37 2007
@@ -27,10 +27,13 @@
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://schemas.apache.org/idltypes/except">
<corba:typeMapping targetNamespace="http://schemas.apache.org/typemap/corba/except">
- <corba:exception name="BadRecord" repositoryID="IDL:BadRecord:1.0"
- type="xsd1:BadRecord">
- <corba:member idltype="corba:string" name="reason"/>
- <corba:member idltype="corba:short" name="code"/>
+ <corba:struct repositoryID="IDL:ExceptionTest/review_dataResult:1.0" type="xsd1:ExceptionTest.review_dataResult" name="ExceptionTest.review_dataResult" />
+ <corba:struct repositoryID="IDL:ExceptionTest/review_data:1.0" type="xsd1:ExceptionTest.review_data" name="ExceptionTest.review_data">
+ <corba:member name="data" idltype="corba:string" />
+ </corba:struct>
+ <corba:exception repositoryID="IDL:BadRecord:1.0" type="xsd1:BadRecord" name="BadRecord">
+ <corba:member name="reason" idltype="corba:string" />
+ <corba:member name="code" idltype="corba:short" />
</corba:exception>
</corba:typeMapping>
<types>
@@ -77,17 +80,21 @@
</operation>
</portType>
<binding name="ExceptionTestCORBABinding" type="tns:ExceptionTest">
- <corba:binding repositoryID="IDL:ExceptionTest:1.0"/>
+ <corba:binding repositoryID="IDL:ExceptionTest:1.0" />
<operation name="review_data">
- <corba:operation name="review_data">
- <corba:param idltype="corba:string" mode="in" name="data"/>
- <corba:raises exception="corbatm:BadRecord"/>
- </corba:operation>
- <input name="review_data"/>
- <output name="review_dataResponse"/>
- <fault name="BadRecord"/>
+ <corba:operation name="review_data">
+ <corba:param mode="in" name="parameters" idltype="corbatm:ExceptionTest.review_data" />
+ <corba:return name="parameters" idltype="corbatm:ExceptionTest.review_dataResult" />
+ <corba:raises exception="corbatm:BadRecord" />
+ </corba:operation>
+ <input name="review_data">
+ </input>
+ <output name="review_dataResponse">
+ </output>
+ <fault name="BadRecord">
+ </fault>
</operation>
- </binding>
+ </binding>
<service name="ExceptionTestCORBAService">
<port name="ExceptionTestCORBAPort" binding="tns:ExceptionTestCORBABinding">
<corba:address location="corbaloc::localhost:40000/except"/>