You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gd...@apache.org on 2005/08/28 08:37:17 UTC

svn commit: r263837 - /geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/HeavyweightTypeInfoBuilder.java

Author: gdamour
Date: Sat Aug 27 23:37:10 2005
New Revision: 263837

URL: http://svn.apache.org/viewcvs?rev=263837&view=rev
Log:
GERONIMO-822 Need more flexibility in interpreting jaxrpc mappings of ArrayOfFoo elements
GERONIMO-823 We should accept (and ignore) simple type mappings in a jaxrpc-mapping file

Support some specific mappings generated by the IBM jaxrpc mapping generator.

Modified:
    geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/HeavyweightTypeInfoBuilder.java

Modified: geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/HeavyweightTypeInfoBuilder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/HeavyweightTypeInfoBuilder.java?rev=263837&r1=263836&r2=263837&view=diff
==============================================================================
--- geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/HeavyweightTypeInfoBuilder.java (original)
+++ geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/HeavyweightTypeInfoBuilder.java Sat Aug 27 23:37:10 2005
@@ -71,7 +71,7 @@
 public class HeavyweightTypeInfoBuilder implements TypeInfoBuilder {
     private static final String SOAP_ENCODING_NS = "http://schemas.xmlsoap.org/soap/encoding/";
     private static final String XML_SCHEMA_NS = "http://www.w3.org/2001/XMLSchema";
-
+    
     private static final Log log = LogFactory.getLog(HeavyweightTypeInfoBuilder.class);
 
     private final ClassLoader cl;
@@ -129,7 +129,11 @@
 
             SchemaType schemaType = (SchemaType) schemaTypeKeyToSchemaTypeMap.get(key);
             if (schemaType == null) {
-//                throw new DeploymentException("Schema type key " + key + " not found in analyzed schema: " + schemaTypeKeyToSchemaTypeMap);
+                // if it is a built-in type, then one assumes a redundant mapping. 
+                if (null != TypeMappingLookup.getFactoryPair(key.getqName())) {
+                    continue;
+                }
+//              throw new DeploymentException("Schema type key " + key + " not found in analyzed schema: " + schemaTypeKeyToSchemaTypeMap);
                 log.warn("Schema type key " + key + " not found in analyzed schema: " + schemaTypeKeyToSchemaTypeMap);
                 continue;
             }
@@ -364,8 +368,18 @@
                 }
             }
         }
-
+        
         VariableMappingType[] variableMappings = javaXmlTypeMapping.getVariableMappingArray();
+
+        // short-circuit the processing of arrays as they should not define variable-mapping elements. 
+        if (javaClass.isArray()) {
+            if (0 != variableMappings.length) {
+                // for portability reason we simply warn and not fail.
+                log.warn("Ignoring variable-mapping defined for class " + javaClass + " which is an array.");
+            }
+            typeInfo.setFields(new FieldDesc[0]);
+            return;
+        }
 
         FieldDesc[] fields = new FieldDesc[variableMappings.length];
         typeInfo.setFields(fields);