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"/>