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/21 17:03:35 UTC

svn commit: r540203 [1/2] - in /incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba: ./ interceptors/ runtime/ types/ utils/

Author: bravi
Date: Mon May 21 10:03:31 2007
New Revision: 540203

URL: http://svn.apache.org/viewvc?view=rev&rev=540203
Log:
[YOKO-366] - Updates to the perf branch (more types support).

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/CorbaDestination.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaMessage.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaServerConduit.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/TypeMapCache.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultInInterceptor.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptor.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaOutInterceptor.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/interceptors/CorbaStreamOutEndingInterceptor.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutInterceptor.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaDSIServant.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectReader.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamReader.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractStartEndEventProducer.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumEventProducer.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveTypeEventProducer.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceEventProducer.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructEventProducer.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/ParameterSequenceEventProducer.java
    incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/utils/CorbaUtils.java

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=540203&r1=540202&r2=540203
==============================================================================
--- 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 Mon May 21 10:03:31 2007
@@ -74,14 +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 = TypeMapCache.get(ei.getService());
+        typeMap = TypeMapCache.get(ei.getService());
     }
 
     public void prepare(Message message) throws IOException {    
@@ -109,7 +109,7 @@
                                new CorbaOutputStream(message));
             
             CorbaMessage corbaMessage = (CorbaMessage) message;
-            corbaMessage.setCorbaTypeMap(typeMaps);
+            corbaMessage.setCorbaTypeMap(typeMap);
             
         } catch (java.lang.Exception ex) {
             ex.printStackTrace();
@@ -169,8 +169,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");
@@ -197,7 +197,7 @@
                     CorbaHandlerUtils.initializeObjectHandler(orb,
                                                               elName,
                                                               raises.getException(),
-                                                              typeMaps,
+                                                              typeMap,
                                                               service);
                 
                 CorbaStreamable exStreamable = message.createStreamableObject(handler, elName);
@@ -247,8 +247,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();
@@ -285,7 +284,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) {

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaDestination.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaDestination.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaDestination.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaDestination.java Mon May 21 10:03:31 2007
@@ -20,7 +20,6 @@
 package org.apache.yoko.bindings.corba;
 
 import java.io.IOException;
-import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -57,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;
 
@@ -70,7 +69,7 @@
         reference.setAddress(addr);
         endpointInfo = ei;
         orbConfig = config;
-        typeMaps = TypeMapCache.get(binding.getService());
+        typeMap = TypeMapCache.get(binding.getService());
     }
 
     public EndpointReferenceType getAddress() {
@@ -81,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() {
@@ -92,8 +91,8 @@
         return endpointInfo;
     }
 
-    public List<CorbaTypeMap> getCorbaTypeMap() {
-        return typeMaps;
+    public CorbaTypeMap getCorbaTypeMap() {
+        return typeMap;
     }
 
     public void shutdown() {
@@ -170,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);
             

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaMessage.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaMessage.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaMessage.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaMessage.java Mon May 21 10:03:31 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/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaServerConduit.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaServerConduit.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaServerConduit.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/CorbaServerConduit.java Mon May 21 10:03:31 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/branches/perf/src/main/java/org/apache/yoko/bindings/corba/TypeMapCache.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/TypeMapCache.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/TypeMapCache.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/TypeMapCache.java Mon May 21 10:03:31 2007
@@ -18,7 +18,6 @@
  */
 package org.apache.yoko.bindings.corba;
 
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -29,19 +28,17 @@
 
 public class TypeMapCache {
 
-    private static Map<ServiceInfo, List<CorbaTypeMap>> cache =
-        new HashMap<ServiceInfo, List<CorbaTypeMap>>();
+    private static Map<ServiceInfo, CorbaTypeMap> cache =
+        new HashMap<ServiceInfo, CorbaTypeMap>();
 
-    public static List<CorbaTypeMap> get(ServiceInfo service) {
+    public static CorbaTypeMap get(ServiceInfo service) {
         synchronized (cache) {
             if (!cache.containsKey(service)) {
-                List<CorbaTypeMap> tm = new ArrayList<CorbaTypeMap>();
                 List<TypeMappingType> corbaTypes = service.getDescription()
                         .getExtensors(TypeMappingType.class);
-                if (corbaTypes != null) {
-                    CorbaUtils.createCorbaTypeMap(tm, corbaTypes);
+                if (corbaTypes != null) {                    
+                    cache.put(service, CorbaUtils.createCorbaTypeMap(corbaTypes));
                 }
-                cache.put(service, tm);
             }
         }
         return cache.get(service);

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultInInterceptor.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultInInterceptor.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultInInterceptor.java Mon May 21 10:03:31 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/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaFaultOutInterceptor.java Mon May 21 10:03:31 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/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptor.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptor.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaInInterceptor.java Mon May 21 10:03:31 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/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaOutInterceptor.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaOutInterceptor.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaOutInterceptor.java Mon May 21 10:03:31 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);
         }
@@ -222,7 +210,7 @@
                     obj = CorbaHandlerUtils.initializeObjectHandler(orb,
                                                                     paramName,
                                                                     idlType,
-                                                                    typeMaps,
+                                                                    typeMap,
                                                                     service);
                 } else {
                     obj = corbaStaxObject.readObjectFromStax(evtReader, idlType);
@@ -303,7 +291,7 @@
                     obj = CorbaHandlerUtils.initializeObjectHandler(orb,
                                                                     paramName,
                                                                     idlType,
-                                                                    typeMaps,
+                                                                    typeMap,
                                                                     service);
                 } else {
                     obj = corbaStaxObject.readObjectFromStax(evtReader, idlType);

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=540203&r1=540202&r2=540203
==============================================================================
--- 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 Mon May 21 10:03:31 2007
@@ -63,7 +63,7 @@
 
     private ORB orb;
     private ServiceInfo service;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
 
     public CorbaStreamInInterceptor() {
         super();
@@ -99,11 +99,11 @@
             }
         }
         */
-
+        orb = (ORB)message.getExchange().get(ORB.class);
         HandlerIterator paramIterator = new HandlerIterator(outMessage, false);
 
         CorbaTypeEventProducer eventProducer = null;
-        typeMaps = outMessage.getCorbaTypeMap();
+        typeMap = outMessage.getCorbaTypeMap();
         Exchange exchange = message.getExchange();
         BindingOperationInfo bindingOpInfo = exchange.get(BindingOperationInfo.class);  
         BindingMessageInfo msgInfo = bindingOpInfo.getOutput();
@@ -113,7 +113,9 @@
             QName wrapperElementQName = msgInfo.getMessageInfo().getName();
             eventProducer = new ParameterSequenceEventProducer(wrapperElementQName,
                                                                paramIterator,
-                                                               typeMaps);
+                                                               typeMap,
+                                                               service,
+                                                               orb);
         } else {
             throw new RuntimeException("non wrapped parts not implemented");
         }
@@ -134,7 +136,7 @@
         service = destination.getBindingInfo().getService();
         Exchange exchange = message.getExchange();
 
-        typeMaps = message.getCorbaTypeMap();
+        typeMap = message.getCorbaTypeMap();
 
         BindingInfo bInfo = destination.getBindingInfo();              
         InterfaceInfo info = bInfo.getInterface();
@@ -173,7 +175,9 @@
             QName wrapperElementQName = msgInfo.getMessageInfo().getName();
             eventProducer = new ParameterSequenceEventProducer(wrapperElementQName,
                                                                paramIterator,
-                                                               typeMaps);
+                                                               typeMap,
+                                                               service,
+                                                               orb);
         } else {
             throw new RuntimeException("non wrapped parts not implemented");
         }
@@ -206,7 +210,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;
         
@@ -216,7 +220,7 @@
                                         BindingOperationInfo boi,
                                         CorbaStreamable[] streamables, 
                                         List<ParamType> paramTypes,
-                                        List<CorbaTypeMap> maps) {
+                                        CorbaTypeMap map) {
         try {
             // Build the list of DII arguments, returns, and exceptions        
             NVList list = orb.create_list(streamables.length);        
@@ -244,7 +248,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")) {
                     streamables[i].setMode(org.omg.CORBA.ARG_IN.value);

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutEndingInterceptor.java Mon May 21 10:03:31 2007
@@ -56,7 +56,7 @@
 
     private static final Logger LOG = LogUtils.getL7dLogger(CorbaStreamOutEndingInterceptor.class);
     private org.omg.CORBA.ORB orb;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
     private ServiceInfo service;
 
     public CorbaStreamOutEndingInterceptor() {
@@ -70,7 +70,7 @@
         Exchange exchange = message.getExchange();
         BindingOperationInfo boi = exchange.get(BindingOperationInfo.class);
         service = exchange.get(ServiceInfo.class);
-        typeMaps = message.getCorbaTypeMap();
+        typeMap = message.getCorbaTypeMap();
 
         if (ContextUtils.isRequestor(message)) {
             handleOutBoundMessage(message, boi);
@@ -108,7 +108,7 @@
                 obj = CorbaHandlerUtils.initializeObjectHandler(orb,
                                                                 paramName,
                                                                 idlType,
-                                                                typeMaps,
+                                                                typeMap,
                                                                 service);
             } else {
                 obj = objs[count++];
@@ -128,7 +128,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);
         }
@@ -169,7 +169,7 @@
                 obj = CorbaHandlerUtils.initializeObjectHandler(orb,
                                                                 paramName,
                                                                 idlType,
-                                                                typeMaps,
+                                                                typeMap,
                                                                 service);
             } else {
                 obj = objs[count++];

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutInterceptor.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutInterceptor.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/interceptors/CorbaStreamOutInterceptor.java Mon May 21 10:03:31 2007
@@ -51,7 +51,7 @@
     private static final Logger LOG = LogUtils.getL7dLogger(CorbaStreamOutInterceptor.class);
     
     private org.omg.CORBA.ORB orb;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
     private ServiceInfo service;
 
     public CorbaStreamOutInterceptor() {
@@ -64,7 +64,7 @@
         orb = (org.omg.CORBA.ORB) message.get(CorbaConstants.ORB);
         Exchange exchange = message.getExchange();
         service = exchange.get(ServiceInfo.class);
-        typeMaps = message.getCorbaTypeMap();
+        typeMap = message.getCorbaTypeMap();
         BindingOperationInfo boi = exchange.get(BindingOperationInfo.class);
         if (ContextUtils.isRequestor(message)) {
             handleOutBoundMessage(message, boi);
@@ -88,7 +88,7 @@
                 params.add((ArgType)param);
             }
         }
-        CorbaStreamWriter writer = new CorbaStreamWriter(orb, params, typeMaps, service, wrap);
+        CorbaStreamWriter writer = new CorbaStreamWriter(orb, params, typeMap, service, wrap);
         message.setContent(XMLStreamWriter.class, writer);
     }
 
@@ -111,7 +111,7 @@
                 params.add((ArgType)param);
             }
         }
-        CorbaStreamWriter writer = new CorbaStreamWriter(orb, params, typeMaps, service, wrap);
+        CorbaStreamWriter writer = new CorbaStreamWriter(orb, params, typeMap, service, wrap);
         message.setContent(XMLStreamWriter.class, writer);      
     }
 

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaDSIServant.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaDSIServant.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaDSIServant.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaDSIServant.java Mon May 21 10:03:31 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/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectReader.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectReader.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectReader.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaObjectReader.java Mon May 21 10:03:31 2007
@@ -25,8 +25,6 @@
 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 +49,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 {
@@ -431,25 +428,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/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStaxObject.java Mon May 21 10:03:31 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,7 +1190,7 @@
                         CorbaHandlerUtils.createTypeHandler(orb,
                                                             new QName("discriminator"),
                                                             unionType.getDiscriminator(),
-                                                            typeMaps,
+                                                            typeMap,
                                                             serviceInfo);
                     obj.setDiscriminator(discObj);
                     
@@ -1219,7 +1219,7 @@
                     branchObj = CorbaHandlerUtils.createTypeHandler(orb,
                                                                     qname,
                                                                     branch.getIdltype(),
-                                                                    typeMaps,
+                                                                    typeMap,
                                                                     serviceInfo);
                 }
                 obj.addCase(branchObj);
@@ -1313,7 +1313,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 +1350,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 +1620,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 +1633,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 +1670,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/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=540203&r1=540202&r2=540203
==============================================================================
--- 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 Mon May 21 10:03:31 2007
@@ -57,13 +57,7 @@
     }
 
     public String getNamespaceURI() {
-        String current = getName().getNamespaceURI();
-        if (current == null || current.equals("")) {
-            current = defaultNameSpace;
-        } else {
-            defaultNameSpace = current;
-        }
-        return current;
+        return getName().getNamespaceURI();
     }
 
     public boolean hasNext() throws XMLStreamException {
@@ -151,17 +145,17 @@
 
             public int getCharacterOffset() {
                 // TODO Auto-generated method stub
-                return 0;
+                return -1;
             }
 
             public int getColumnNumber() {
                 // TODO Auto-generated method stub
-                return 0;
+                return -1;
             }
 
             public int getLineNumber() {
                 // TODO Auto-generated method stub
-                return 0;
+                return -1;
             }
 
             public String getPublicId() {

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/runtime/CorbaStreamWriter.java Mon May 21 10:03:31 2007
@@ -48,7 +48,7 @@
     private String defaultNS = "";
     private boolean skipWrap;
     private ServiceInfo serviceInfo;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
     private List<ArgType> params;
     private int paramCounter;
     private ORB orb;
@@ -61,12 +61,12 @@
 
     public CorbaStreamWriter(ORB orbRef,
                              List<ArgType> paramTypes,
-                             List<CorbaTypeMap> maps,
+                             CorbaTypeMap map,
                              ServiceInfo sinfo,
                              boolean wrap) {
         orb = orbRef;
         params = paramTypes;
-        typeMaps = maps;
+        typeMap = map;
         serviceInfo = sinfo;
         skipWrap = wrap;
         listeners = new CorbaTypeListener[paramTypes.size()];
@@ -120,7 +120,7 @@
                 ArgType param = params.get(paramCounter);
                 QName idlType = param.getIdltype();
                 if (localName.equals(param.getName())) {
-                    currentTypeListener = CorbaHandlerUtils.getTypeListener(name, idlType, typeMaps, orb);
+                    currentTypeListener = CorbaHandlerUtils.getTypeListener(name, idlType, typeMap, orb);
                     listeners[paramCounter] = currentTypeListener;
                     paramCounter++;
                 } else {

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractStartEndEventProducer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractStartEndEventProducer.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractStartEndEventProducer.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/AbstractStartEndEventProducer.java Mon May 21 10:03:31 2007
@@ -19,12 +19,14 @@
 package org.apache.yoko.bindings.corba.types;
 
 import java.util.Iterator;
-import java.util.List;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
 
+import org.apache.cxf.service.model.ServiceInfo;
+
 import org.apache.yoko.bindings.corba.CorbaTypeMap;
+import org.omg.CORBA.ORB;
 
 public abstract class AbstractStartEndEventProducer implements
         CorbaTypeEventProducer {
@@ -33,9 +35,11 @@
     protected final int[] states = {XMLStreamReader.START_ELEMENT, 0, XMLStreamReader.END_ELEMENT};
     
     protected CorbaTypeEventProducer currentEventProducer;
-    protected List<CorbaTypeMap> typeMaps;
+    protected CorbaTypeMap typeMap;
     protected QName name;
     protected Iterator<CorbaObjectHandler> iterator;
+    protected ServiceInfo serviceInfo;
+    protected ORB orb;
 
     public String getLocalName() {
         return getName().getLocalPart();
@@ -65,7 +69,7 @@
             event = currentEventProducer.next();
         } else if (iterator.hasNext()) {
             CorbaObjectHandler obj = iterator.next();
-            currentEventProducer = CorbaHandlerUtils.getTypeEventProducer(obj, typeMaps);
+            currentEventProducer = CorbaHandlerUtils.getTypeEventProducer(obj, typeMap, serviceInfo, orb);
             event = currentEventProducer.next();
         } else {
             // all done with content, move past state 0

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumEventProducer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumEventProducer.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumEventProducer.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaEnumEventProducer.java Mon May 21 10:03:31 2007
@@ -21,14 +21,19 @@
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
 
+import org.apache.cxf.service.model.ServiceInfo;
+import org.apache.yoko.bindings.corba.utils.CorbaUtils;
+
 public class CorbaEnumEventProducer implements CorbaTypeEventProducer {
 
     int state;
     int[] states = {XMLStreamReader.START_ELEMENT, XMLStreamReader.CHARACTERS, XMLStreamReader.END_ELEMENT};
     final CorbaEnumHandler handler;
+    final QName name;
 
-    public CorbaEnumEventProducer(CorbaObjectHandler h) {
+    public CorbaEnumEventProducer(CorbaObjectHandler h, ServiceInfo service) {
         handler = (CorbaEnumHandler) h;
+        name = CorbaUtils.processQName(handler.getName(), service);
     }
 
     public String getLocalName() {        
@@ -44,7 +49,7 @@
     }
 
     public QName getName() {
-        return handler.getName();
+        return name;
     }
 
     public boolean hasNext() {

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaHandlerUtils.java Mon May 21 10:03:31 2007
@@ -66,13 +66,13 @@
     public static CorbaObjectHandler createTypeHandler(ORB orb,
                                                        QName name, 
                                                        QName idlType,
-                                                       List<CorbaTypeMap> typeMaps,
+                                                       CorbaTypeMap typeMap,
                                                        ServiceInfo serviceInfo) {
         CorbaObjectHandler handler = null;        
-        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);
                 }
@@ -90,7 +90,7 @@
                 handler = new CorbaPrimitiveHandler(name, idlType, tc, null);
             }
         } else {
-            CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMaps);
+            CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMap);
             switch (tc.kind().value()) {
             case TCKind._tk_array:
                 handler = new CorbaArrayHandler(name, idlType, tc, type);
@@ -132,12 +132,12 @@
     public static CorbaObjectHandler initializeObjectHandler(ORB orb,
                                                              QName name, 
                                                              QName idlType,
-                                                             List<CorbaTypeMap> typeMaps,
+                                                             CorbaTypeMap typeMap,
                                                              ServiceInfo serviceInfo) {
-        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);
                 }
@@ -147,21 +147,21 @@
         } catch (Throwable ex) {
             throw new CorbaBindingException(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());
         }
-        return initializeObjectHandler(orb, name, idlType, schemaType, typeMaps, serviceInfo);
+        return initializeObjectHandler(orb, name, idlType, schemaType, typeMap, serviceInfo);
     }
     
     public static CorbaObjectHandler initializeObjectHandler(ORB orb,
                                                              QName name, 
                                                              QName idlType,
                                                              XmlSchemaObject schemaType,
-                                                             List<CorbaTypeMap> typeMaps,
+                                                             CorbaTypeMap typeMap,
                                                              ServiceInfo serviceInfo) {
-        CorbaObjectHandler obj = createTypeHandler(orb, name, idlType, typeMaps, serviceInfo);
+        CorbaObjectHandler obj = createTypeHandler(orb, name, idlType, typeMap, serviceInfo);
         if (obj.getType() != null) {
             String nsUri = getNamespaceURI(serviceInfo, obj.getType().getType());
             name = new QName(nsUri, obj.getName().getLocalPart());
@@ -171,19 +171,19 @@
         if (!CorbaUtils.isPrimitiveIdlType(idlType)) {
             switch (obj.getTypeCode().kind().value()) {
             case TCKind._tk_array:
-                initializeArrayHandler(orb, obj, name, schemaType, typeMaps, serviceInfo);
+                initializeArrayHandler(orb, obj, name, schemaType, typeMap, serviceInfo);
                 break;
             case TCKind._tk_except:
-                initializeExceptionHandler(orb, obj, name, schemaType, typeMaps, serviceInfo);
+                initializeExceptionHandler(orb, obj, name, schemaType, typeMap, serviceInfo);
                 break;
             case TCKind._tk_sequence:
-                initializeSequenceHandler(orb, obj, name, schemaType, typeMaps, serviceInfo);
+                initializeSequenceHandler(orb, obj, name, schemaType, typeMap, serviceInfo);
                 break;
             case TCKind._tk_struct:
-                initializeStructHandler(orb, obj, name, schemaType, typeMaps, serviceInfo);
+                initializeStructHandler(orb, obj, name, schemaType, typeMap, serviceInfo);
                 break;
             case TCKind._tk_union:
-                initializeUnionHandler(orb, obj, name, schemaType, typeMaps, serviceInfo);
+                initializeUnionHandler(orb, obj, name, schemaType, typeMap, serviceInfo);
                 break;
 
             default:
@@ -197,7 +197,7 @@
                                               CorbaObjectHandler obj, 
                                               QName name,
                                               XmlSchemaObject schemaType,
-                                              List<CorbaTypeMap> typeMaps,
+                                              CorbaTypeMap typeMap,
                                               ServiceInfo serviceInfo) {
         QName arrayElementType = null;
         long arrayBound = 0;
@@ -218,7 +218,7 @@
         }
         for (int i = 0; i < arrayBound; ++i) {
             CorbaObjectHandler elementObj = 
-                initializeObjectHandler(orb, elementName, arrayElementType, el, typeMaps, serviceInfo);
+                initializeObjectHandler(orb, elementName, arrayElementType, el, typeMap, serviceInfo);
             ((CorbaArrayHandler)obj).addElement(elementObj);
         }
     }
@@ -227,7 +227,7 @@
                                                   CorbaObjectHandler obj, 
                                                   QName name,
                                                   XmlSchemaObject schemaType,
-                                                  List<CorbaTypeMap> typeMaps,
+                                                  CorbaTypeMap typeMap,
                                                   ServiceInfo serviceInfo) {
         Exception exceptType = (Exception)obj.getType();
         List<MemberType> exceptMembers = exceptType.getMember();
@@ -246,7 +246,7 @@
                                                                    memberName,
                                                                    memberType,
                                                                    group.getItems().getItem(i),
-                                                                   typeMaps,
+                                                                   typeMap,
                                                                    serviceInfo);
             ((CorbaExceptionHandler)obj).addMember(memberObj);
         }
@@ -256,7 +256,7 @@
                                                  CorbaObjectHandler obj, 
                                                  QName name,
                                                  XmlSchemaObject schemaType,
-                                                 List<CorbaTypeMap> typeMaps,
+                                                 CorbaTypeMap typeMap,
                                                  ServiceInfo serviceInfo) {
         QName seqElementType = null;
         long seqBound = 0;
@@ -285,12 +285,12 @@
             // This is an unbounded sequence.  Store a 'template' object that we can use to create
             // new objects as needed
             CorbaObjectHandler elementObj = 
-                initializeObjectHandler(orb, elementName, seqElementType, el, typeMaps, serviceInfo);
+                initializeObjectHandler(orb, elementName, seqElementType, el, typeMap, serviceInfo);
             ((CorbaSequenceHandler)obj).setTemplateElement(elementObj);
         }
         for (int i = 0; i < seqBound; ++i) {
             CorbaObjectHandler elementObj = 
-                initializeObjectHandler(orb, elementName, seqElementType, el, typeMaps, serviceInfo);
+                initializeObjectHandler(orb, elementName, seqElementType, el, typeMap, serviceInfo);
             ((CorbaSequenceHandler)obj).addElement(elementObj);
         }
     }
@@ -299,7 +299,7 @@
                                                CorbaObjectHandler obj, 
                                                QName name,
                                                XmlSchemaObject schemaType,
-                                               List<CorbaTypeMap> typeMaps,
+                                               CorbaTypeMap typeMap,
                                                ServiceInfo serviceInfo) {
         Struct structType = (Struct)obj.getType();
         List<MemberType> structMembers = structType.getMember();
@@ -348,7 +348,7 @@
                                                                    memberName,
                                                                    memberType,
                                                                    schemaObj,
-                                                                   typeMaps,
+                                                                   typeMap,
                                                                    serviceInfo);
             ((CorbaStructHandler)obj).addMember(memberObj);
         }
@@ -358,7 +358,7 @@
                                               CorbaObjectHandler obj, 
                                               QName name,
                                               XmlSchemaObject schemaType,
-                                              List<CorbaTypeMap> typeMaps,
+                                              CorbaTypeMap typeMap,
                                               ServiceInfo serviceInfo) {
         Union unionType = (Union)obj.getType();
         // First handle the discriminator
@@ -366,7 +366,7 @@
                                                              new QName("discriminator"),
                                                              unionType.getDiscriminator(),
                                                              null,
-                                                             typeMaps,
+                                                             typeMap,
                                                              serviceInfo);
         ((CorbaUnionHandler)obj).setDiscriminator(discObj);
         boolean isAttr = false;
@@ -401,7 +401,7 @@
             QName branchName = new QName(nsURI, branch.getName());
             QName branchIdlType = branch.getIdltype();
             CorbaObjectHandler branchObj = 
-                initializeObjectHandler(orb, branchName, branchIdlType, stype, typeMaps, serviceInfo);
+                initializeObjectHandler(orb, branchName, branchIdlType, stype, typeMap, serviceInfo);
             ((CorbaUnionHandler)obj).addCase(branchObj);
         }
     }
@@ -440,13 +440,13 @@
 
     public static CorbaTypeListener getTypeListener(QName name,
                                                     QName idlType,
-                                                    List<CorbaTypeMap> typeMaps,
+                                                    CorbaTypeMap typeMap,
                                                     ORB orb)
         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);
                 }
@@ -461,7 +461,7 @@
             LOG.log(Level.INFO, "Reading primitive type from XML reader");
             result = new CorbaPrimitiveListener(name, idlType, tc, null);
         } else {
-            CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMaps);
+            CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMap);
             switch (tc.kind().value()) {
             case TCKind._tk_any:
                 LOG.log(Level.INFO, "Reading any type from XML reader");
@@ -481,7 +481,7 @@
                 break;
             case TCKind._tk_sequence:
                 LOG.log(Level.INFO, "Reading sequence type from XML reader");
-                result = new CorbaSequenceListener(name, idlType, tc, type, typeMaps, orb);
+                result = new CorbaSequenceListener(name, idlType, tc, type, typeMap, orb);
                 break;
             case TCKind._tk_string:
             case TCKind._tk_wstring:
@@ -490,7 +490,7 @@
                 break;
             case TCKind._tk_struct:
                 LOG.log(Level.INFO, "Reading struct type from XML reader");
-                result = new CorbaStructListener(name, idlType, tc, type, typeMaps, orb);
+                result = new CorbaStructListener(name, idlType, tc, type, typeMap, orb);
                 break;
             case TCKind._tk_union:
                 LOG.log(Level.INFO, "Reading union type from XML reader");
@@ -507,15 +507,17 @@
     }
     
     public static CorbaTypeEventProducer getTypeEventProducer(CorbaObjectHandler handler,
-                                                              List<CorbaTypeMap> typeMaps)
+                                                              CorbaTypeMap typeMap,
+                                                              ServiceInfo serviceInfo,
+                                                              ORB orb)
         throws CorbaBindingException {        
         QName idlType = handler.getIdlType();
         TypeCode tc = handler.getTypeCode();
         CorbaTypeEventProducer result = null;
         if (CorbaUtils.isPrimitiveIdlType(idlType)) {
-            result = new CorbaPrimitiveTypeEventProducer(handler);
+            result = new CorbaPrimitiveTypeEventProducer(handler, serviceInfo);
         } else {
-            //CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMaps);
+            //CorbaTypeImpl type = CorbaUtils.getCorbaType(idlType, typeMap);
             switch (tc.kind().value()) {
             case TCKind._tk_any:
                 LOG.log(Level.INFO, "Reading any type from XML reader");
@@ -525,7 +527,7 @@
                 break;
             case TCKind._tk_enum:
                 LOG.log(Level.INFO, "Reading enumeration type from XML reader");
-                result = new CorbaEnumEventProducer(handler);
+                result = new CorbaEnumEventProducer(handler, serviceInfo);
                 break;
             case TCKind._tk_except:
                 LOG.log(Level.INFO, "Reading exception type from XML reader");
@@ -535,7 +537,7 @@
                 break;
             case TCKind._tk_sequence:
                 LOG.log(Level.INFO, "Reading sequence type from XML reader");
-                result = new CorbaSequenceEventProducer(handler, typeMaps);
+                result = new CorbaSequenceEventProducer(handler, typeMap, serviceInfo, orb);
                 break;
             case TCKind._tk_string:
             case TCKind._tk_wstring:
@@ -544,15 +546,14 @@
                 break;
             case TCKind._tk_struct:
                 LOG.log(Level.INFO, "Reading struct type from XML reader");
-                result = new CorbaStructEventProducer(handler, typeMaps);
+                result = new CorbaStructEventProducer(handler, typeMap, serviceInfo, orb);
                 break;
             case TCKind._tk_union:
                 LOG.log(Level.INFO, "Reading union type from XML reader");
                 break;
             case TCKind._tk_objref:
                 LOG.log(Level.INFO, "Reading object reference from XML reader");
-                //result = new CorbaObjectReferenceListener(name, idlType, tc,
-                //        type, orb);
+                result = new CorbaObjectReferenceEventProducer(handler, serviceInfo, orb);
                 break;
             default:
                 throw new CorbaBindingException("Unsupported complex type "

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveTypeEventProducer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveTypeEventProducer.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveTypeEventProducer.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaPrimitiveTypeEventProducer.java Mon May 21 10:03:31 2007
@@ -21,13 +21,19 @@
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
 
+import org.apache.cxf.service.model.ServiceInfo;
+import org.apache.yoko.bindings.corba.utils.CorbaUtils;
+
 public class CorbaPrimitiveTypeEventProducer implements CorbaTypeEventProducer {
 
     int state;
     int[] states = {XMLStreamReader.START_ELEMENT, XMLStreamReader.CHARACTERS, XMLStreamReader.END_ELEMENT};
     final CorbaPrimitiveHandler handler;
-    public CorbaPrimitiveTypeEventProducer(CorbaObjectHandler h) {
+    final QName name;
+
+    public CorbaPrimitiveTypeEventProducer(CorbaObjectHandler h, ServiceInfo service) {
         handler = (CorbaPrimitiveHandler) h;
+        name = CorbaUtils.processQName(handler.getName(), service);
     }
 
     public String getLocalName() {        
@@ -43,11 +49,10 @@
     }
 
     public QName getName() {
-        return handler.getName();
+        return name;
     }
 
     public boolean hasNext() {
         return state < states.length;
     }
-
 }

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceEventProducer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceEventProducer.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceEventProducer.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceEventProducer.java Mon May 21 10:03:31 2007
@@ -18,9 +18,9 @@
  */
 package org.apache.yoko.bindings.corba.types;
 
-import java.util.List;
 
 import javax.xml.namespace.QName;
+import org.apache.cxf.service.model.ServiceInfo;
 
 import org.apache.schemas.yoko.bindings.corba.Anonsequence;
 import org.apache.schemas.yoko.bindings.corba.Sequence;
@@ -29,16 +29,22 @@
 import org.apache.yoko.bindings.corba.utils.CorbaUtils;
 import org.apache.yoko.wsdl.CorbaTypeImpl;
 
+import org.omg.CORBA.ORB;
+
 public class CorbaSequenceEventProducer extends AbstractStartEndEventProducer {
 
     boolean isPrimitiveIdlType;
 
-    public CorbaSequenceEventProducer(CorbaObjectHandler h, List<CorbaTypeMap> tm) {
+    public CorbaSequenceEventProducer(CorbaObjectHandler h,
+                                      CorbaTypeMap tm,
+                                      ServiceInfo service,
+                                      ORB orbRef) {
         CorbaSequenceHandler handler = (CorbaSequenceHandler) h;
-        name = handler.getName();
+        name = CorbaUtils.processQName(handler.getName(), service);
         iterator = handler.getElements().iterator();
-        typeMaps = tm;
-
+        typeMap = tm;
+        serviceInfo = service;
+        orb = orbRef;
         CorbaTypeImpl seqType = handler.getType();
         QName seqElementType;
         if (seqType instanceof Anonsequence) {
@@ -67,7 +73,10 @@
             if (currentEventProducer != null && currentEventProducer.hasNext()) {
                 event = currentEventProducer.next();
             } else if (iterator.hasNext()) {
-                currentEventProducer = CorbaHandlerUtils.getTypeEventProducer(iterator.next(), typeMaps);
+                currentEventProducer = CorbaHandlerUtils.getTypeEventProducer(iterator.next(),
+                                                                              typeMap,
+                                                                              serviceInfo,
+                                                                              orb);
                 event = currentEventProducer.next();
             }
         } else {

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaSequenceListener.java Mon May 21 10:03:31 2007
@@ -18,7 +18,6 @@
  */
 package org.apache.yoko.bindings.corba.types;
 
-import java.util.List;
 import javax.xml.namespace.QName;
 
 import org.apache.schemas.yoko.bindings.corba.Anonsequence;
@@ -36,17 +35,17 @@
     private QName currentElName;
     private CorbaTypeListener currentTypeListener;
     private ORB orb;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
     
     public CorbaSequenceListener(QName seqName,
                                  QName seqIdlType,
                                  TypeCode seqTC,
                                  Object seqType,
-                                 List<CorbaTypeMap> maps,
+                                 CorbaTypeMap map,
                                  ORB orbRef) {
         value = new CorbaSequenceHandler(seqName, seqIdlType, seqTC, seqType);
         orb = orbRef;
-        typeMaps = maps;
+        typeMap = map;
         if (seqType instanceof Anonsequence) {
             Anonsequence anonSeqType = (Anonsequence) seqType;
             seqElementType = anonSeqType.getElemtype();
@@ -66,7 +65,7 @@
             currentTypeListener =
                 CorbaHandlerUtils.getTypeListener(name,
                                                   seqElementType,
-                                                  typeMaps,
+                                                  typeMap,
                                                   orb);
             value.addElement(currentTypeListener.getCorbaObject());
         } else {
@@ -89,7 +88,7 @@
             CorbaTypeListener primitiveListener = 
                 CorbaHandlerUtils.getTypeListener(value.getName(),
                                                   seqElementType,
-                                                  typeMaps,
+                                                  typeMap,
                                                   orb);
             value.addElement(primitiveListener.getCorbaObject());
             primitiveListener.processCharacters(text);      

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructEventProducer.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructEventProducer.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructEventProducer.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructEventProducer.java Mon May 21 10:03:31 2007
@@ -18,17 +18,23 @@
  */
 package org.apache.yoko.bindings.corba.types;
 
-import java.util.List;
-
+import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.yoko.bindings.corba.CorbaTypeMap;
+import org.apache.yoko.bindings.corba.utils.CorbaUtils;
+
+import org.omg.CORBA.ORB;
 
 public class CorbaStructEventProducer extends AbstractStartEndEventProducer {
 
     public CorbaStructEventProducer(CorbaObjectHandler h,
-                                    List<CorbaTypeMap> tm) {
+                                    CorbaTypeMap tm,
+                                    ServiceInfo service,
+                                    ORB orbRef) {
         CorbaStructHandler handler = (CorbaStructHandler) h;
-        name = handler.getName();
+        name = CorbaUtils.processQName(handler.getName(), service);
         iterator = handler.members.iterator();
-        typeMaps = tm;
+        typeMap = tm;
+        serviceInfo = service;
+        orb = orbRef;
     }
 }

Modified: incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java?view=diff&rev=540203&r1=540202&r2=540203
==============================================================================
--- incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java (original)
+++ incubator/yoko/branches/perf/src/main/java/org/apache/yoko/bindings/corba/types/CorbaStructListener.java Mon May 21 10:03:31 2007
@@ -36,18 +36,18 @@
     private List<MemberType> structMembers;
     private CorbaTypeListener currentTypeListener;
     private QName memberElement;
-    private List<CorbaTypeMap> typeMaps;
+    private CorbaTypeMap typeMap;
     private ORB orb;
 
     public CorbaStructListener(QName structName,
                                QName structIdlType,
                                TypeCode structTC,
                                Object structType,
-                               List<CorbaTypeMap> maps,
+                               CorbaTypeMap map,
                                ORB orbRef) {
         value = new CorbaStructHandler(structName, structIdlType, structTC, structType);
         orb = orbRef;
-        typeMaps = maps;
+        typeMap = map;
         structMembers = ((Struct) structType).getMember();
     }
 
@@ -58,7 +58,7 @@
             currentTypeListener =
                 CorbaHandlerUtils.getTypeListener(name,
                                                   structMembers.get(memberCount).getIdltype(),
-                                                  typeMaps,
+                                                  typeMap,
                                                   orb);
             value.addMember(currentTypeListener.getCorbaObject());
             memberCount++;