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/29 16:26:32 UTC

svn commit: r542580 [1/3] - in /incubator/yoko/trunk/bindings: ./ src/main/java/org/apache/yoko/bindings/corba/ src/main/java/org/apache/yoko/bindings/corba/interceptors/ src/main/java/org/apache/yoko/bindings/corba/runtime/ src/main/java/org/apache/yo...

Author: bravi
Date: Tue May 29 09:26:24 2007
New Revision: 542580

URL: http://svn.apache.org/viewvc?view=rev&rev=542580
Log:
[YOKO-366] - Merged the perf branch changes to trunk/bindings.

Added:
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/TypeMapCache.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/TypeMapCache.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamFaultInInterceptor.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamFaultInInterceptor.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamFaultOutInterceptor.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamFaultOutInterceptor.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamInInterceptor.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamInInterceptor.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutInterceptor.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutInterceptor.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaFaultStreamWriter.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaFaultStreamWriter.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/AbstractCorbaTypeListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractCorbaTypeListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/AbstractNoStartEndEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractNoStartEndEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/AbstractStartEndEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractStartEndEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaAnonStructEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaAnonStructEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaObjectReferenceEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaObjectReferenceEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaObjectReferenceListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaObjectReferenceListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaOctetSequenceEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaOctetSequenceEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveSequenceEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveSequenceEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveTypeEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveTypeEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaTypeListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionListener.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionListener.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/HandlerIterator.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/HandlerIterator.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/Messages.properties
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/Messages.properties
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/ParameterEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/ParameterEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/SkipStartEndEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/SkipStartEndEventProducer.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/WrappedParameterSequenceEventProducer.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/WrappedParameterSequenceEventProducer.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaNestedObjReferenceTest.java
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/test/java/org/apache/yoko/bindings/corba/CorbaNestedObjReferenceTest.java
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/NestedObjRef.wsdl
      - copied unchanged from r542577, incubator/yoko/branches/perf/src/test/resources/wsdl/NestedObjRef.wsdl
Modified:
    incubator/yoko/trunk/bindings/pom.xml
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaBindingFactory.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaConduit.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaDestination.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaMessage.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaServerConduit.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultInInterceptor.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptor.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaOutInterceptor.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaDSIServant.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectReader.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectWriter.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaAnyHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaObjectHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaObjectReferenceHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaUnionHandler.java
    incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/utils/CorbaUtils.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/AbstractIdlToWsdlTypeTestClient.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/AbstractTypeTestClient1.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaBindingFactoryTest.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaConduitTest.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaExceptionTest.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaObjectReferenceTest.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaServerConduitTest.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/CorbaTypeTest.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/IdlToWsdlTypeTest.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptorTest.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObjectTest.java
    incubator/yoko/trunk/bindings/src/test/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtilsTest.java
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/exceptions.wsdl
    incubator/yoko/trunk/bindings/src/test/resources/wsdl/type_test/type_test.xsd

Modified: incubator/yoko/trunk/bindings/pom.xml
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/pom.xml?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/pom.xml (original)
+++ incubator/yoko/trunk/bindings/pom.xml Tue May 29 09:26:24 2007
@@ -355,6 +355,26 @@
                         </goals>
                     </execution>
                     <execution>
+                        <id>generate-corba-nested-object-reference-test-java-sources</id>
+                        <phase>process-test-resources</phase>
+                        <configuration>
+                            <testSourceRoot>${basedir}/target/generated/src/test/java</testSourceRoot>
+                            <wsdlOptions>
+                                <wsdlOption>
+                                    <wsdl>
+                                        ${basedir}/src/test/resources/wsdl/NestedObjRef.wsdl
+                                    </wsdl>
+                                    <extraargs>
+                                        <extraarg>-verbose</extraarg>
+                                    </extraargs>
+                                </wsdlOption>
+                            </wsdlOptions>
+                        </configuration>
+                        <goals>
+                            <goal>wsdl2java</goal>
+                        </goals>
+                    </execution>
+                    <execution>
                         <id>generate-corba-exception-test-java-sources</id>
                         <phase>process-test-resources</phase>
                         <configuration>

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaBindingFactory.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaBindingFactory.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaBindingFactory.java Tue May 29 09:26:24 2007
@@ -21,7 +21,6 @@
 
 import java.io.IOException;
 import java.util.Collection;
-//import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
@@ -32,7 +31,9 @@
 import org.apache.cxf.binding.Binding;
 import org.apache.cxf.binding.BindingFactoryManager;
 
-//import org.apache.cxf.helpers.CastUtils;
+import org.apache.cxf.interceptor.BareInInterceptor;
+import org.apache.cxf.interceptor.BareOutInterceptor;
+
 import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.EndpointInfo;
 
@@ -46,10 +47,10 @@
 
 import org.apache.cxf.ws.addressing.EndpointReferenceType;
 
-import org.apache.yoko.bindings.corba.interceptors.CorbaFaultInInterceptor;
-import org.apache.yoko.bindings.corba.interceptors.CorbaFaultOutInterceptor;
-import org.apache.yoko.bindings.corba.interceptors.CorbaInInterceptor;
-import org.apache.yoko.bindings.corba.interceptors.CorbaOutInterceptor;
+import org.apache.yoko.bindings.corba.interceptors.CorbaStreamFaultInInterceptor;
+import org.apache.yoko.bindings.corba.interceptors.CorbaStreamFaultOutInterceptor;
+import org.apache.yoko.bindings.corba.interceptors.CorbaStreamInInterceptor;
+import org.apache.yoko.bindings.corba.interceptors.CorbaStreamOutInterceptor;
 
 import org.apache.yoko.bindings.corba.utils.OrbConfig;
 
@@ -101,10 +102,13 @@
 
     public Binding createBinding(BindingInfo bindingInfo) {
         CorbaBinding binding = new CorbaBinding();
-        binding.getInInterceptors().add(new CorbaInInterceptor());
-        binding.getOutInterceptors().add(new CorbaOutInterceptor());
-        binding.getInFaultInterceptors().add(new CorbaFaultInInterceptor());
-        binding.getOutFaultInterceptors().add(new CorbaFaultOutInterceptor());
+
+        binding.getInFaultInterceptors().add(new CorbaStreamFaultInInterceptor());
+        binding.getOutFaultInterceptors().add(new CorbaStreamFaultOutInterceptor());
+        binding.getOutInterceptors().add(new BareOutInterceptor());
+        binding.getOutInterceptors().add(new CorbaStreamOutInterceptor());
+        binding.getInInterceptors().add(new BareInInterceptor());
+        binding.getInInterceptors().add(new CorbaStreamInInterceptor());
         binding.setBindingInfo(bindingInfo);
         return binding;
     }

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaConduit.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaConduit.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaConduit.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaConduit.java Tue May 29 09:26:24 2007
@@ -21,7 +21,6 @@
 
 import java.io.IOException;
 import java.io.OutputStream;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -47,7 +46,6 @@
 import org.apache.schemas.yoko.bindings.corba.AddressType;
 import org.apache.schemas.yoko.bindings.corba.OperationType;
 import org.apache.schemas.yoko.bindings.corba.RaisesType;
-import org.apache.schemas.yoko.bindings.corba.TypeMappingType;
 import org.apache.yoko.bindings.corba.types.CorbaHandlerUtils;
 import org.apache.yoko.bindings.corba.types.CorbaObjectHandler;
 import org.apache.yoko.bindings.corba.utils.ContextUtils;
@@ -76,21 +74,14 @@
     private MessageObserver incomingObserver;
     private ORB orb;
     private OrbConfig orbConfig;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
 
     public CorbaConduit(EndpointInfo ei, EndpointReferenceType ref, OrbConfig config) {
         endpointInfo = ei;
         target = getTargetReference(ref);
         orbConfig = config;
         orb = CorbaBindingHelper.getDefaultORB(config);
-        typeMaps = new ArrayList<CorbaTypeMap>();
-        if (ei.getService() != null) {
-            List<TypeMappingType> corbaTypes =
-                ei.getService().getDescription().getExtensors(TypeMappingType.class);
-            if (corbaTypes != null) {
-                CorbaUtils.createCorbaTypeMap(typeMaps, corbaTypes);
-            }
-        }
+        typeMap = TypeMapCache.get(ei.getService());
     }
 
     public void prepare(Message message) throws IOException {    
@@ -116,8 +107,11 @@
             message.put(CorbaConstants.CORBA_ENDPOINT_OBJECT, targetObject);
             message.setContent(OutputStream.class,
                                new CorbaOutputStream(message));
+            
+            CorbaMessage corbaMessage = (CorbaMessage) message;
+            corbaMessage.setCorbaTypeMap(typeMap);
+            
         } catch (java.lang.Exception ex) {
-            ex.printStackTrace();
             LOG.log(Level.SEVERE, "Could not resolve target object");
             throw new CorbaBindingException(ex);
         }
@@ -131,7 +125,6 @@
             buildRequest((CorbaMessage)message, opType);            
             message.getContent(OutputStream.class).close();
         } catch (Exception ex) {
-            ex.printStackTrace();
             LOG.log(Level.SEVERE, "Could not build the corba request");
             throw new CorbaBindingException(ex);
         }
@@ -174,8 +167,8 @@
         ServiceInfo service = message.getExchange().get(ServiceInfo.class);
         NVList nvlist = getArguments(message);
         NamedValue ret = getReturn(message);
-        Map<TypeCode, RaisesType> exceptions = getOperationExceptions(opType, typeMaps);
-        ExceptionList exList = getExceptionList(exceptions, message, opType, typeMaps);
+        Map<TypeCode, RaisesType> exceptions = getOperationExceptions(opType, typeMap);
+        ExceptionList exList = getExceptionList(exceptions, message, opType);
         Request request = getRequest(message, opType.getName(), nvlist, ret, exList);
         if (request == null) {
             throw new CorbaBindingException("Couldn't build the corba request");
@@ -187,7 +180,6 @@
             message.setSystemException(ex);
             return;
         }
-        
         Exception ex = request.env().exception();
         if (ex != null) {
             if (ex instanceof UnknownUserException) {
@@ -202,7 +194,7 @@
                     CorbaHandlerUtils.initializeObjectHandler(orb,
                                                               elName,
                                                               raises.getException(),
-                                                              typeMaps,
+                                                              typeMap,
                                                               service);
                 
                 CorbaStreamable exStreamable = message.createStreamableObject(handler, elName);
@@ -252,8 +244,7 @@
     
     protected ExceptionList getExceptionList(Map<TypeCode, RaisesType> exceptions,
                                              CorbaMessage message, 
-                                             OperationType opType,
-                                             List<CorbaTypeMap> map) {
+                                             OperationType opType) {
         // Get the typecodes for the exceptions this operation can throw.
         // These are defined in the operation definition from WSDL.
         ExceptionList exList = orb.create_exception_list();
@@ -290,7 +281,7 @@
         
     protected Map<TypeCode, RaisesType> getOperationExceptions(
                                          OperationType operation, 
-                                         List<CorbaTypeMap> map) {
+                                         CorbaTypeMap map) {
         Map<TypeCode, RaisesType> exceptions = new HashMap<TypeCode, RaisesType>();
         List<RaisesType> exList = operation.getRaises(); 
         if (exList != null) {
@@ -353,6 +344,7 @@
             inMessage.setExchange(exchange);
             CorbaMessage inCorbaMsg = new CorbaMessage(inMessage);
             CorbaMessage corbaMsg = (CorbaMessage) message;
+            inCorbaMsg.setCorbaTypeMap(corbaMsg.getCorbaTypeMap());
             if (corbaMsg.getStreamableException() != null) {
                 exchange.setInFaultMessage(corbaMsg);
                 inCorbaMsg.setStreamableException(corbaMsg.getStreamableException());

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaDestination.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaDestination.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaDestination.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaDestination.java Tue May 29 09:26:24 2007
@@ -20,8 +20,6 @@
 package org.apache.yoko.bindings.corba;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -36,7 +34,6 @@
 import org.apache.cxf.ws.addressing.EndpointReferenceType;
 
 import org.apache.schemas.yoko.bindings.corba.AddressType;
-import org.apache.schemas.yoko.bindings.corba.TypeMappingType;
 
 import org.apache.yoko.bindings.corba.runtime.CorbaDSIServant;
 import org.apache.yoko.bindings.corba.utils.CorbaBindingHelper;
@@ -59,7 +56,7 @@
     private EndpointInfo endpointInfo;
     private OrbConfig orbConfig;
     private MessageObserver incomingObserver;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
     private byte[] objectId;
     private POA bindingPOA;
 
@@ -72,12 +69,7 @@
         reference.setAddress(addr);
         endpointInfo = ei;
         orbConfig = config;
-        typeMaps = new ArrayList<CorbaTypeMap>(); 
-        List<TypeMappingType> corbaTypes =
-            binding.getService().getDescription().getExtensors(TypeMappingType.class);
-        if (corbaTypes != null) {
-            CorbaUtils.createCorbaTypeMap(typeMaps, corbaTypes);
-        }
+        typeMap = TypeMapCache.get(binding.getService());
     }
 
     public EndpointReferenceType getAddress() {
@@ -88,7 +80,7 @@
                                   Message partialResponse,
                                   EndpointReferenceType ref)
         throws IOException {
-        return  new CorbaServerConduit(endpointInfo, reference, orbConfig, typeMaps);
+        return  new CorbaServerConduit(endpointInfo, reference, orbConfig, typeMap);
     }
 
     public BindingInfo getBindingInfo() {
@@ -99,8 +91,8 @@
         return endpointInfo;
     }
 
-    public List<CorbaTypeMap> getCorbaTypeMap() {
-        return typeMaps;
+    public CorbaTypeMap getCorbaTypeMap() {
+        return typeMap;
     }
 
     public void shutdown() {
@@ -177,7 +169,7 @@
             }
 
             CorbaDSIServant servant = new CorbaDSIServant();
-            servant.init(orb, bindingPOA, this, incomingObserver, typeMaps);
+            servant.init(orb, bindingPOA, this, incomingObserver, typeMap);
             objectId = bindingPOA.activate_object(servant);
             obj = bindingPOA.id_to_reference(objectId);
             
@@ -253,7 +245,7 @@
             // Since we know that http is not valid for a corba address, check for the
             // existance of this string at the beginning of our address and remove if
             // necessary.
-            if (location != null && location.startsWith("http://localhost/")) {
+            if (location.startsWith("http://localhost/")) {
                 location = location.substring("http://localhost/".length());
             }
         }

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaMessage.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaMessage.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaMessage.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaMessage.java Tue May 29 09:26:24 2007
@@ -40,7 +40,7 @@
     private CorbaStreamable returnParam;
     private CorbaStreamable except;
     private SystemException systemExcept;
-    private List<CorbaTypeMap> corbaTypeMap;
+    private CorbaTypeMap corbaTypeMap;
     
     private NVList list;
 
@@ -146,11 +146,11 @@
         return new CorbaStreamableImpl(obj, elName);
     }
 
-    public List<CorbaTypeMap> getCorbaTypeMap() {
+    public CorbaTypeMap getCorbaTypeMap() {
         return corbaTypeMap;
     }
 
-    public void setCorbaTypeMap(List<CorbaTypeMap> typeMap) {
+    public void setCorbaTypeMap(CorbaTypeMap typeMap) {
         corbaTypeMap = typeMap;
     }
 }

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaServerConduit.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaServerConduit.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaServerConduit.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/CorbaServerConduit.java Tue May 29 09:26:24 2007
@@ -21,7 +21,6 @@
 
 import java.io.IOException;
 import java.io.OutputStream;
-import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -54,16 +53,16 @@
     private EndpointReferenceType target;
     private MessageObserver incomingObserver;
     private ORB orb;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
 
     public CorbaServerConduit(EndpointInfo ei,
                               EndpointReferenceType ref,
                               OrbConfig config,
-                              List<CorbaTypeMap> map) {
+                              CorbaTypeMap map) {
         endpointInfo = ei;
         target = getTargetReference(ref);
         orb = CorbaBindingHelper.getDefaultORB(config);
-        typeMaps = map;
+        typeMap = map;
     }
 
     public void prepare(Message message) throws IOException {
@@ -79,7 +78,7 @@
             message.put(CorbaConstants.CORBA_ENDPOINT_OBJECT, targetObject);
             message.setContent(OutputStream.class,
                                new CorbaOutputStream(message));
-            ((CorbaMessage) message).setCorbaTypeMap(typeMaps);
+            ((CorbaMessage) message).setCorbaTypeMap(typeMap);
         } catch (java.lang.Exception ex) {
             LOG.log(Level.SEVERE, "Could not resolve target object");
             throw new CorbaBindingException(ex);

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultInInterceptor.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultInInterceptor.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultInInterceptor.java Tue May 29 09:26:24 2007
@@ -24,9 +24,7 @@
 
 import java.lang.reflect.Constructor;
 
-import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -48,12 +46,12 @@
 import org.apache.cxf.service.model.FaultInfo;
 import org.apache.cxf.service.model.OperationInfo;
 import org.apache.cxf.service.model.ServiceInfo;
-import org.apache.schemas.yoko.bindings.corba.TypeMappingType;
 
 import org.apache.yoko.bindings.corba.CorbaBindingException;
 import org.apache.yoko.bindings.corba.CorbaMessage;
 import org.apache.yoko.bindings.corba.CorbaStreamable;
 import org.apache.yoko.bindings.corba.CorbaTypeMap;
+import org.apache.yoko.bindings.corba.TypeMapCache;
 import org.apache.yoko.bindings.corba.runtime.CorbaStaxObject;
 import org.apache.yoko.bindings.corba.utils.ContextUtils;
 import org.apache.yoko.wsdl.CorbaConstants;
@@ -92,16 +90,12 @@
 
                 BindingOperationInfo bopInfo = message.getExchange().get(BindingOperationInfo.class);
                 OperationInfo opInfo = bopInfo.getOperationInfo();
-                
-                List<CorbaTypeMap> typeMaps = new ArrayList<CorbaTypeMap>();
 
                 ServiceInfo service = message.getExchange().get(ServiceInfo.class);
-                List<TypeMappingType> corbaTypes =
-                    service.getDescription().getExtensors(TypeMappingType.class);
-                if (corbaTypes != null) {
-                    corbaStaxObject.setTypeMaps(typeMaps);
-                    corbaStaxObject.setServiceInfo(service);
-                }
+                CorbaTypeMap typeMap = TypeMapCache.get(service);
+
+                corbaStaxObject.setTypeMaps(typeMap);
+                corbaStaxObject.setServiceInfo(service);
 
                 org.omg.CORBA.ORB orb = (org.omg.CORBA.ORB) message.get(CorbaConstants.ORB);
                 if (orb == null) {

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java Tue May 29 09:26:24 2007
@@ -23,7 +23,6 @@
 import java.io.ByteArrayOutputStream;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.logging.Level;
@@ -53,15 +52,14 @@
 import org.apache.cxf.service.model.ServiceModelUtil;
 import org.apache.schemas.yoko.bindings.corba.OperationType;
 import org.apache.schemas.yoko.bindings.corba.RaisesType;
-import org.apache.schemas.yoko.bindings.corba.TypeMappingType;
 import org.apache.yoko.bindings.corba.CorbaBindingException;
 import org.apache.yoko.bindings.corba.CorbaDestination;
 import org.apache.yoko.bindings.corba.CorbaMessage;
 import org.apache.yoko.bindings.corba.CorbaStreamable;
 import org.apache.yoko.bindings.corba.CorbaTypeMap;
+import org.apache.yoko.bindings.corba.TypeMapCache;
 import org.apache.yoko.bindings.corba.runtime.CorbaStaxObject;
 import org.apache.yoko.bindings.corba.types.CorbaObjectHandler;
-import org.apache.yoko.bindings.corba.utils.CorbaUtils;
 import org.apache.yoko.wsdl.CorbaConstants;
 
 import org.omg.CORBA.Any;
@@ -98,15 +96,10 @@
                 orb = (org.omg.CORBA.ORB) message.getExchange().get(org.omg.CORBA.ORB.class); 
             }
             corbaStaxObject.setOrb(orb);
-
-            List<CorbaTypeMap> typeMaps = new ArrayList<CorbaTypeMap>();                
-            ServiceInfo service = destination.getBindingInfo().getService();        
-            List<TypeMappingType> corbaTypes = service.getDescription().getExtensors(TypeMappingType.class);
-            if (corbaTypes != null) {
-                CorbaUtils.createCorbaTypeMap(typeMaps, corbaTypes);
-                corbaStaxObject.setTypeMaps(typeMaps);
-                corbaStaxObject.setServiceInfo(service);
-            }
+            ServiceInfo service = destination.getBindingInfo().getService();
+            CorbaTypeMap typeMap = TypeMapCache.get(service);
+            corbaStaxObject.setTypeMaps(typeMap);
+            corbaStaxObject.setServiceInfo(service);
 
             Throwable ex = message.getContent(Exception.class);
             ex = ex.getCause();

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptor.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptor.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptor.java Tue May 29 09:26:24 2007
@@ -56,7 +56,6 @@
 import org.apache.schemas.yoko.bindings.corba.ModeType;
 import org.apache.schemas.yoko.bindings.corba.OperationType;
 import org.apache.schemas.yoko.bindings.corba.ParamType;
-import org.apache.schemas.yoko.bindings.corba.TypeMappingType;
 import org.apache.yoko.bindings.corba.CorbaDestination;
 import org.apache.yoko.bindings.corba.CorbaMessage;
 import org.apache.yoko.bindings.corba.CorbaStreamable;
@@ -65,7 +64,6 @@
 import org.apache.yoko.bindings.corba.types.CorbaHandlerUtils;
 import org.apache.yoko.bindings.corba.types.CorbaObjectHandler;
 import org.apache.yoko.bindings.corba.utils.ContextUtils;
-import org.apache.yoko.bindings.corba.utils.CorbaUtils;
 import org.omg.CORBA.Any;
 import org.omg.CORBA.NVList;
 import org.omg.CORBA.ORB;
@@ -74,7 +72,7 @@
 public class CorbaInInterceptor extends AbstractPhaseInterceptor<Message> {
     
     protected static CorbaStaxObject corbaStaxObject;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
     private XMLOutputFactory xof;
     private XMLInputFactory xif;
     private ORB orb;
@@ -101,21 +99,13 @@
                 destination = (CorbaDestination)message.getExchange().getDestination();
             }
             service = destination.getBindingInfo().getService();
-            typeMaps = message.getCorbaTypeMap();
-            if (typeMaps == null) {
-                typeMaps = new ArrayList<CorbaTypeMap>();                
-                List<TypeMappingType> corbaTypes =
-                    service.getDescription().getExtensors(TypeMappingType.class);
-                if (corbaTypes != null) {
-                    CorbaUtils.createCorbaTypeMap(typeMaps, corbaTypes);
-                }
-            }
+            typeMap = message.getCorbaTypeMap();
+
             if (corbaStaxObject == null) {
                 corbaStaxObject = new CorbaStaxObject();
             }
-            corbaStaxObject.setTypeMaps(typeMaps);
+            corbaStaxObject.setTypeMaps(typeMap);
             corbaStaxObject.setServiceInfo(service);
-            
             // TODO: where does encoding constant go?
             //String encoding = (String)message.get("Encoding");        
                                
@@ -381,6 +371,7 @@
                                                   evtWriter,
                                                   XMLEventFactory.newInstance());
                 evtWriter.flush();
+                System.out.println("in: " + new String(outStream.toByteArray()));
                 ByteArrayInputStream inStream = new ByteArrayInputStream(outStream.toByteArray());
 
                 XMLEventReader evtReader = inputFactory.createXMLEventReader(inStream);
@@ -426,7 +417,7 @@
                        
         List<ParamType> paramTypes = opType.getParam();       
         CorbaStreamable[] arguments = new CorbaStreamable[paramTypes.size()];                               
-        NVList list = prepareDIIArgsList(corbaMsg, bOpInfo, arguments, paramTypes, typeMaps);         
+        NVList list = prepareDIIArgsList(corbaMsg, bOpInfo, arguments, paramTypes, typeMap);         
         
         return list;
         
@@ -436,7 +427,7 @@
                                         BindingOperationInfo boi,
                                         CorbaStreamable[] streamables, 
                                         List<ParamType> paramTypes,
-                                        List<CorbaTypeMap> maps)
+                                        CorbaTypeMap map)
         throws Exception { 
         // Build the list of DII arguments, returns, and exceptions        
         NVList list = orb.create_list(streamables.length);        
@@ -467,7 +458,7 @@
             }
 
             CorbaObjectHandler obj = 
-                CorbaHandlerUtils.initializeObjectHandler(orb, paramName, paramIdlType, maps, service);
+                CorbaHandlerUtils.initializeObjectHandler(orb, paramName, paramIdlType, map, service);
 
             streamables[i] = corbaMsg.createStreamableObject(obj, paramName);
             if (paramMode.value().equals("in")) {

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaOutInterceptor.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaOutInterceptor.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaOutInterceptor.java Tue May 29 09:26:24 2007
@@ -21,7 +21,6 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.logging.Logger;
@@ -52,7 +51,6 @@
 import org.apache.schemas.yoko.bindings.corba.ModeType;
 import org.apache.schemas.yoko.bindings.corba.OperationType;
 import org.apache.schemas.yoko.bindings.corba.ParamType;
-import org.apache.schemas.yoko.bindings.corba.TypeMappingType;
 import org.apache.yoko.bindings.corba.CorbaBindingException;
 import org.apache.yoko.bindings.corba.CorbaMessage;
 import org.apache.yoko.bindings.corba.CorbaStreamable;
@@ -61,7 +59,6 @@
 import org.apache.yoko.bindings.corba.types.CorbaHandlerUtils;
 import org.apache.yoko.bindings.corba.types.CorbaObjectHandler;
 import org.apache.yoko.bindings.corba.utils.ContextUtils;
-import org.apache.yoko.bindings.corba.utils.CorbaUtils;
 import org.apache.yoko.wsdl.CorbaConstants;
 import org.omg.CORBA.ORB;
 
@@ -76,7 +73,7 @@
 
     protected CorbaStaxObject corbaStaxObject;
     private ServiceInfo service;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
     private ORB orb;
     private XMLOutputFactory xof;
     private XMLInputFactory xif;
@@ -93,21 +90,12 @@
             corbaStaxObject = new CorbaStaxObject(orb);
             Exchange exchange = message.getExchange();
             service = exchange.get(ServiceInfo.class);
-            typeMaps = message.getCorbaTypeMap();
-            if (typeMaps == null) {
-                typeMaps = new ArrayList<CorbaTypeMap>();
-                List<TypeMappingType> corbaTypes =
-                    service.getDescription().getExtensors(TypeMappingType.class);
-                if (corbaTypes != null) {
-                    CorbaUtils.createCorbaTypeMap(typeMaps, corbaTypes);
-                }
-            }
+            typeMap = message.getCorbaTypeMap();
             if (corbaStaxObject == null) {
                 corbaStaxObject = new CorbaStaxObject();
             }
-            corbaStaxObject.setTypeMaps(typeMaps);
+            corbaStaxObject.setTypeMaps(typeMap);
             corbaStaxObject.setServiceInfo(service);
-
             getXMLOutputFactory().setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.TRUE);
 
             // TODO: where does encoding constant go?
@@ -145,7 +133,7 @@
             QName retIdlType = returnParam.getIdltype();
             QName retName = new QName("", returnParam.getName());
             CorbaObjectHandler obj = CorbaHandlerUtils
-                .initializeObjectHandler(orb, retName, retIdlType, typeMaps, service);
+                .initializeObjectHandler(orb, retName, retIdlType, typeMap, service);
             CorbaStreamable streamable = message.createStreamableObject(obj, retName);
             message.setStreamableReturn(streamable);
         }
@@ -196,10 +184,8 @@
 
             XMLEventReader evtReader = inputFactory.createXMLEventReader(inStream);
 
-            if (params.size() != 0) {
-                while (evtReader.peek().getEventType() != XMLStreamConstants.START_ELEMENT) {
-                    evtReader.nextEvent();
-                }
+            while (evtReader.peek().getEventType() != XMLStreamConstants.START_ELEMENT) {
+                evtReader.nextEvent();
             }
             if (wrap) {
                 // read the wrapper element from the reader.  Since this contains all of the namespaces
@@ -224,7 +210,7 @@
                     obj = CorbaHandlerUtils.initializeObjectHandler(orb,
                                                                     paramName,
                                                                     idlType,
-                                                                    typeMaps,
+                                                                    typeMap,
                                                                     service);
                 } else {
                     obj = corbaStaxObject.readObjectFromStax(evtReader, idlType);
@@ -269,11 +255,8 @@
             ByteArrayInputStream inStream = new ByteArrayInputStream(outStream.toByteArray());
             XMLEventReader evtReader = inputFactory.createXMLEventReader(inStream);
 
-            // If there were no arguments, then the STAX stream should have no events
-            if (args.size() != 0) {
-                while (evtReader.peek().getEventType() != XMLStreamConstants.START_ELEMENT) {
-                    evtReader.nextEvent();
-                }
+            while (evtReader.peek().getEventType() != XMLStreamConstants.START_ELEMENT) {
+                evtReader.nextEvent();
             }
             if (wrap) {
                 // read the wrapper element from the reader.  Since this contains all of the namespaces
@@ -308,7 +291,7 @@
                     obj = CorbaHandlerUtils.initializeObjectHandler(orb,
                                                                     paramName,
                                                                     idlType,
-                                                                    typeMaps,
+                                                                    typeMap,
                                                                     service);
                 } else {
                     obj = corbaStaxObject.readObjectFromStax(evtReader, idlType);

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaDSIServant.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaDSIServant.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaDSIServant.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaDSIServant.java Tue May 29 09:26:24 2007
@@ -56,7 +56,7 @@
     private MessageObserver incomingObserver;
     private CorbaDestination destination;
     private Map<String, QName> operationMap;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
     
     public CorbaDSIServant() {
         //Complete
@@ -73,12 +73,12 @@
                      POA poa,
                      CorbaDestination dest,
                      MessageObserver observer,
-                     List<CorbaTypeMap> map) {
+                     CorbaTypeMap map) {
         orb = theOrb;
         servantPOA = poa;
         destination = dest;
         incomingObserver = observer;
-        typeMaps = map;
+        typeMap = map;
        
         // Get the list of interfaces that this servant will support
         try {                
@@ -138,8 +138,8 @@
         operationMap = map;
     }
 
-    public void setCorbaTypeMap(List<CorbaTypeMap> map) {
-        typeMaps = map;
+    public void setCorbaTypeMap(CorbaTypeMap map) {
+        typeMap = map;
     }
     
     public void invoke(ServerRequest request) throws CorbaBindingException {
@@ -151,7 +151,7 @@
         exg.put(ServerRequest.class, request);
         msgImpl.setExchange(exg);
         CorbaMessage msg = new CorbaMessage(msgImpl);
-        msg.setCorbaTypeMap(typeMaps);
+        msg.setCorbaTypeMap(typeMap);
         // invokes the interceptors
         getObserver().onMessage(msg);
     }

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectReader.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectReader.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectReader.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectReader.java Tue May 29 09:26:24 2007
@@ -20,13 +20,12 @@
 
 import java.lang.reflect.Constructor;
 import java.math.BigInteger;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javax.xml.namespace.QName;
-
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.schemas.yoko.bindings.corba.Anonsequence;
 import org.apache.schemas.yoko.bindings.corba.CaseType;
@@ -51,7 +50,6 @@
 
 import org.omg.CORBA.Any;
 import org.omg.CORBA.TCKind;
-import org.omg.CORBA.TypeCode;
 import org.omg.CORBA.portable.InputStream;
 
 public class CorbaObjectReader {
@@ -395,7 +393,6 @@
     public void readSequence(CorbaObjectHandler obj) throws CorbaBindingException {
         CorbaSequenceHandler sequenceObj = (CorbaSequenceHandler)obj;
         List<CorbaObjectHandler> seqElements = sequenceObj.getElements();
-
         int length = stream.read_ulong();
         long bound = 0;
         if (obj.getType() instanceof Anonsequence) {
@@ -405,17 +402,23 @@
             Sequence seqType = (Sequence) obj.getType();
             bound = seqType.getBound();
         }
-        if (bound == 0) { 
-            seqElements.clear();
+        List<CorbaObjectHandler> elements = new ArrayList<CorbaObjectHandler>(length);
+        if (bound == 0) {
+            sequenceObj.clear();
             // No predefined elements means an unbounded sequence.  Use the template element
             // to construct each object that is in the input stream.
             CorbaObjectHandler template = sequenceObj.getTemplateElement();
-           
             for (int i = 0; i < length; ++i) {
-                CorbaObjectHandler seqElement = initializeCorbaObjectHandler(template);
+                CorbaObjectHandler seqElement;
+                if (i < seqElements.size()) {
+                    seqElement = seqElements.get(i);
+                } else {
+                    seqElement = initializeCorbaObjectHandler(template);
+                }
                 read(seqElement);
-                seqElements.add(seqElement);
+                elements.add(seqElement);
             }
+            sequenceObj.setElements(elements);
         } else {
             // We have a bounded sequence and the object should already be pre-built
             for (int i = 0; i < length; ++i) {
@@ -431,25 +434,12 @@
     }
 
     private CorbaObjectHandler initializeCorbaObjectHandler(CorbaObjectHandler template) {
-        Class<?> templateClass = template.getClass();
-        // we know that we are after the 4 parameter version of the constructor
-        Class[] paramClasses = new Class[4];
+        Constructor templateConstructor = template.getClass().getDeclaredConstructors()[0];
         Object[] params = new Object[4];
-        paramClasses[0] = QName.class;
         params[0] = template.getName();
-        paramClasses[1] = QName.class;
         params[1] = template.getIdlType();
-        paramClasses[2] = TypeCode.class;
         params[2] = template.getTypeCode();
-        paramClasses[3] = Object.class;
         params[3] = template.getType();
-        Constructor templateConstructor = null;
-        try {
-            templateConstructor = templateClass.getConstructor(paramClasses);
-            
-        } catch (java.lang.NoSuchMethodException ex) {
-            throw new CorbaBindingException("Exception while reading unbounded sequence", ex);
-        }
         
         CorbaObjectHandler handler = null;
         try {

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectWriter.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectWriter.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectWriter.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectWriter.java Tue May 29 09:26:24 2007
@@ -277,7 +277,6 @@
         CorbaExceptionHandler exHandler = (CorbaExceptionHandler)obj;
         Exception exType = (Exception)exHandler.getType();
         List<CorbaObjectHandler> exMembers = exHandler.getMembers();
-    
         stream.write_string(exType.getRepositoryID());
         for (int i = 0; i < exMembers.size(); ++i) {
             this.write(exMembers.get(i));

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java Tue May 29 09:26:24 2007
@@ -112,7 +112,7 @@
     private static final String WSDLI_NAMESPACE_URI = "http://www.w3.org/2006/01/wsdl-instance";
 
     private ORB orb;
-    private List<CorbaTypeMap> typeMaps;       
+    private CorbaTypeMap typeMap;       
     private ServiceInfo serviceInfo;
     private XMLEvent rootElement;
     
@@ -131,12 +131,12 @@
         orb = tOrb;
     }
 
-    public void setTypeMaps(List<CorbaTypeMap> tMaps) {
-        typeMaps = tMaps;
+    public void setTypeMaps(CorbaTypeMap tMap) {
+        typeMap = tMap;
     }
     
-    public List<CorbaTypeMap> getTypeMaps() {
-        return typeMaps;
+    public CorbaTypeMap getTypeMap() {
+        return typeMap;
     }
 
     public void setServiceInfo(ServiceInfo info) {
@@ -168,7 +168,7 @@
         } catch (XMLStreamException ex) {
             throw new CorbaBindingException("Unable to locate start of object", ex);
         }
-        CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMaps);
+        CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMap);
         XmlSchemaType schemaType = null;
         if (type != null) {
             schemaType = CorbaUtils.getXmlSchemaType(serviceInfo, type.getType());
@@ -181,10 +181,10 @@
                                                     XmlSchemaObject schemaType,
                                                     boolean isNested)
         throws CorbaBindingException {
-        TypeCode tc = CorbaUtils.getTypeCode(orb, idlType, typeMaps);
+        TypeCode tc = CorbaUtils.getTypeCode(orb, idlType, typeMap);
         try {
             while (tc.kind().value() == TCKind._tk_alias) {
-                Alias alias = (Alias) CorbaUtils.getCorbaType(idlType, typeMaps);
+                Alias alias = (Alias) CorbaUtils.getCorbaType(idlType, typeMap);
                 if (alias == null) {
                     throw new CorbaBindingException("Couldn't find corba alias type: " + idlType);
                 }
@@ -513,7 +513,7 @@
         try {
             QName arrayElemType = null;
             long arrayBound = 0;
-            CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMaps);
+            CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMap);
             // Arrays and anonymous arrays can be handled by the same method
             if (type instanceof Anonarray) {
                 Anonarray anonArrayType = (Anonarray)type;
@@ -603,7 +603,7 @@
         throws CorbaBindingException {
         CorbaEnumHandler obj = null;
         try {
-            Enum enumType = (Enum) CorbaUtils.getCorbaType(idlType, typeMaps);
+            Enum enumType = (Enum) CorbaUtils.getCorbaType(idlType, typeMap);
             StartElement enumStartEl = reader.nextEvent().asStartElement();
             obj = new CorbaEnumHandler(enumStartEl.getName(), idlType, tc, enumType);
             Characters enumCharEl = reader.nextEvent().asCharacters();
@@ -645,7 +645,7 @@
         }
         CorbaExceptionHandler obj = null;
         try {
-            Exception exType = (Exception) CorbaUtils.getCorbaType(idlType, typeMaps);
+            Exception exType = (Exception) CorbaUtils.getCorbaType(idlType, typeMap);
             StartElement exStartEl = reader.nextEvent().asStartElement();
             obj = new CorbaExceptionHandler(exStartEl.getName(), idlType, tc, exType);
             XmlSchemaComplexType ctype = (XmlSchemaComplexType) schemaType;
@@ -669,7 +669,7 @@
                     member = CorbaHandlerUtils.initializeObjectHandler(orb, 
                                                                        new QName(exMembers.get(i).getName()),
                                                                        exMembers.get(i).getIdltype(),
-                                                                       typeMaps,
+                                                                       typeMap,
                                                                        serviceInfo);
                                                                        
                 }
@@ -716,7 +716,7 @@
                                                       boolean isTopLevel)
         throws CorbaBindingException {
         //check if it is a sequence of octets
-        CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMaps);
+        CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMap);
         boolean readOctets = type.getType().equals(W3CConstants.NT_SCHEMA_BASE64)
             || type.getType().equals(W3CConstants.NT_SCHEMA_HBIN);
         if ((schemaType == null) && (!readOctets)) {
@@ -801,7 +801,7 @@
             CorbaHandlerUtils.initializeObjectHandler(orb,
                                                       elementName,
                                                       seqElementType,
-                                                      typeMaps,
+                                                      typeMap,
                                                       serviceInfo);
         obj.setTemplateElement(elementObj);
         boolean nestedSequence = isNestedSequence(seqElementType);
@@ -934,7 +934,7 @@
         }         
         CorbaStructHandler obj = null;
         try {            
-            Struct structType = (Struct) CorbaUtils.getCorbaType(idlType, typeMaps);
+            Struct structType = (Struct) CorbaUtils.getCorbaType(idlType, typeMap);
             XmlSchemaObjectCollection attrs = null;
             XmlSchemaObjectCollection members = null;
             
@@ -1119,7 +1119,7 @@
                                                                       TypeCode tc,
                                                                       XmlSchemaObject schemaType)
         throws CorbaBindingException {
-        Union unionType = (Union) CorbaUtils.getCorbaType(idlType, typeMaps);
+        Union unionType = (Union) CorbaUtils.getCorbaType(idlType, typeMap);
         CorbaUnionHandler obj = new CorbaUnionHandler(name, idlType, tc, unionType);
         CorbaPrimitiveHandler discObj =
             new CorbaPrimitiveHandler(new QName("discriminator"),
@@ -1168,7 +1168,7 @@
         CorbaUnionHandler obj = null;
         try {
             XmlSchemaChoice choiceType = (XmlSchemaChoice) schemaType;
-            Union unionType = (Union) CorbaUtils.getCorbaType(idlType, typeMaps);
+            Union unionType = (Union) CorbaUtils.getCorbaType(idlType, typeMap);
             QName elName = reader.nextEvent().asStartElement().getName();
             obj = new CorbaUnionHandler(elName, idlType, tc, unionType);
             // Build the entire union with all branches, etc.  Then read info from the XML Event Reader
@@ -1190,8 +1190,7 @@
                         CorbaHandlerUtils.createTypeHandler(orb,
                                                             new QName("discriminator"),
                                                             unionType.getDiscriminator(),
-                                                            typeMaps,
-                                                            serviceInfo);
+                                                            typeMap);
                     obj.setDiscriminator(discObj);
                     
                     // Determine the value of the discriminator.  
@@ -1219,8 +1218,7 @@
                     branchObj = CorbaHandlerUtils.createTypeHandler(orb,
                                                                     qname,
                                                                     branch.getIdltype(),
-                                                                    typeMaps,
-                                                                    serviceInfo);
+                                                                    typeMap);
                 }
                 obj.addCase(branchObj);
             }
@@ -1313,7 +1311,7 @@
         throws CorbaBindingException {
         CorbaFixedHandler obj = null;
         try {
-            CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMaps);
+            CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMap);
             StartElement fixedStartEl = reader.nextEvent().asStartElement();
             obj = new CorbaFixedHandler(fixedStartEl.getName(), idlType, tc, type);
             Characters fixedCharEl = reader.nextEvent().asCharacters();
@@ -1350,7 +1348,7 @@
                                  XmlSchemaObject schemaType) {
         CorbaObjectReferenceHandler obj = null;
         try {
-            Object objType = (Object)CorbaUtils.getCorbaType(idlType, typeMaps);
+            Object objType = (Object)CorbaUtils.getCorbaType(idlType, typeMap);
             StartElement objStartEl = reader.nextEvent().asStartElement();
             obj = new CorbaObjectReferenceHandler(objStartEl.getName(), idlType, tc, objType);
            
@@ -1620,7 +1618,7 @@
     }
 
     private boolean isNestedSequence(QName seqElType) {
-        TypeCode tc = CorbaUtils.getTypeCode(orb, seqElType, typeMaps);
+        TypeCode tc = CorbaUtils.getTypeCode(orb, seqElType, typeMap);
         return isNestedSequence(tc);
     }
 
@@ -1633,7 +1631,7 @@
     }
 
     private boolean isNestedArray(QName arrayElType) {
-        TypeCode tc = CorbaUtils.getTypeCode(orb, arrayElType, typeMaps);
+        TypeCode tc = CorbaUtils.getTypeCode(orb, arrayElType, typeMap);
         return isNestedArray(tc);
     }    
 
@@ -1670,7 +1668,7 @@
             }
             Attribute attr = el.getAttributeByName(name);
             if (attr != null) {
-                TypeCode tc = CorbaUtils.getTypeCode(orb, idlType, typeMaps);
+                TypeCode tc = CorbaUtils.getTypeCode(orb, idlType, typeMap);
                 result = new CorbaPrimitiveHandler(new QName("value"), idlType, tc, null);
                 result.setValueFromData(attr.getValue());
             }

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaAnyHandler.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaAnyHandler.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaAnyHandler.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaAnyHandler.java Tue May 29 09:26:24 2007
@@ -50,6 +50,10 @@
     public Any getValue() {
         return value;
     }
+
+    public void clear() {
+        value = null;
+    }
     
     public void setValue(Any v) throws CorbaBindingException {
         value = v;

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayHandler.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayHandler.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayHandler.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaArrayHandler.java Tue May 29 09:26:24 2007
@@ -47,5 +47,11 @@
     
     public CorbaObjectHandler getElement(int index) {
         return elements.get(index);
-    }    
+    }
+
+    public void clear() {
+        for (int i = 0; i < elements.size(); i++) {
+            elements.get(i).clear();
+        }
+    }  
 }

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumHandler.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumHandler.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumHandler.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumHandler.java Tue May 29 09:26:24 2007
@@ -57,4 +57,8 @@
     public long getIndex() {
         return index;
     }
+
+    public void clear() {
+        value = null;
+    }
 }

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionHandler.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionHandler.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionHandler.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaExceptionHandler.java Tue May 29 09:26:24 2007
@@ -72,6 +72,12 @@
     public void setId(String eid) {
         id = eid;
     }
+
+    public void clear() {
+        for (int i = 0; i < members.size(); i++) {
+            members.get(i).clear();
+        }
+    }  
     
     // TODO: Can we add the features that exist in the main package here?
 }

Modified: incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedHandler.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedHandler.java?view=diff&rev=542580&r1=542579&r2=542580
==============================================================================
--- incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedHandler.java (original)
+++ incubator/yoko/trunk/bindings/src/main/java/org/apache/yoko/bindings/corba/types/CorbaFixedHandler.java Tue May 29 09:26:24 2007
@@ -72,4 +72,8 @@
     public void setValueFromData(String data) {
         value = new BigDecimal(data);
     }
+
+    public void clear() {
+        value = null;
+    }  
 }