scheu       02/03/18 15:03:17

  Modified:    java/src/org/apache/axis/wsdl/toJava Tag: Beta1
                        JavaDeployWriter.java JavaStubWriter.java
                        JavaWriterFactory.java SymbolTable.java Utils.java
  Log:
  Checking in the anon type fix for the beta release:
    1) Changed separator from . to >
    2) Fixed stub/deploy generator.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.26.2.1  +12 -2     
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java
  
  Index: JavaDeployWriter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java,v
  retrieving revision 1.26
  retrieving revision 1.26.2.1
  diff -u -r1.26 -r1.26.2.1
  --- JavaDeployWriter.java     13 Mar 2002 15:19:26 -0000      1.26
  +++ JavaDeployWriter.java     18 Mar 2002 23:03:17 -0000      1.26.2.1
  @@ -169,10 +169,20 @@
                   process = false;
               }
   
  +            // If a root Element named Foo has an anon type, the 
  +            // anon type is named ">Foo".  The following hack
  +            // uses the name "Foo" so that the right qname gets 
  +            // registered.
  +            String localPart = type.getQName().getLocalPart();
  +            if (localPart.startsWith(SymbolTable.ANON_TOKEN)) {
  +                localPart = localPart.substring(1);
  +            }
  +            QName qName = new QName(type.getQName().getNamespaceURI(), localPart);
  +
               if (process) {
                   pw.println("      <typeMapping");
  -                pw.println("        xmlns:ns=\"" + 
type.getQName().getNamespaceURI() + "\"");
  -                pw.println("        qname=\"ns:" + type.getQName().getLocalPart() + 
'"');
  +                pw.println("        xmlns:ns=\"" + qName.getNamespaceURI() + "\"");
  +                pw.println("        qname=\"ns:" + qName.getLocalPart() + '"');
                   pw.println("        type=\"java:" + type.getName() + '"');
                   if (type.getName().endsWith("[]")) {
                       pw.println("        
serializer=\"org.apache.axis.encoding.ser.ArraySerializerFactory\"");
  
  
  
  1.45.2.1  +10 -1     
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java
  
  Index: JavaStubWriter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java,v
  retrieving revision 1.45
  retrieving revision 1.45.2.1
  diff -u -r1.45 -r1.45.2.1
  --- JavaStubWriter.java       15 Mar 2002 15:35:07 -0000      1.45
  +++ JavaStubWriter.java       18 Mar 2002 23:03:17 -0000      1.45.2.1
  @@ -433,7 +433,16 @@
           }
           firstSer = false ;
   
  -        QName qname = type.getQName();
  +        // If a root Element named Foo has an anon type, the 
  +        // anon type is named ">Foo".  The following hack
  +        // uses the name "Foo" so that the right qname gets 
  +        // registered.
  +        String localPart = type.getQName().getLocalPart();
  +        if (localPart.startsWith(SymbolTable.ANON_TOKEN)) {
  +            localPart = localPart.substring(1);
  +        }
  +        QName qname = new QName(type.getQName().getNamespaceURI(), localPart);
  +
           pw.println("            qName = new javax.xml.rpc.namespace.QName(\""
                      + qname.getNamespaceURI() + "\", \"" + qname.getLocalPart()
                      + "\");");
  
  
  
  1.18.2.1  +8 -5      
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriterFactory.java
  
  Index: JavaWriterFactory.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriterFactory.java,v
  retrieving revision 1.18
  retrieving revision 1.18.2.1
  diff -u -r1.18 -r1.18.2.1
  --- JavaWriterFactory.java    13 Mar 2002 15:43:34 -0000      1.18
  +++ JavaWriterFactory.java    18 Mar 2002 23:03:17 -0000      1.18.2.1
  @@ -182,14 +182,16 @@
                       }
                       // Get the QName to javify
                       QName typeQName = tEntry.getQName();
  -                    if (typeQName.getLocalPart().lastIndexOf('.') >= 0) {
  +                    if 
(typeQName.getLocalPart().lastIndexOf(SymbolTable.ANON_TOKEN) >= 0) {
                           // This is an anonymous type name.
  -                        // Axis uses '.' as a nesting token to generate
  +                        // Axis uses '>' as a nesting token to generate
                           // unique qnames for anonymous types.
  -                        // Only consider the localName after the last '.' when
  +                        // Only consider the localName after the last '>' when
                           // generating the java name
                           String localName = typeQName.getLocalPart();
  -                        localName = 
localName.substring(localName.lastIndexOf('.')+1);
  +                        localName = 
  +                            localName.substring(
  +                                localName.lastIndexOf(SymbolTable.ANON_TOKEN)+1);
                           typeQName = new QName(typeQName.getNamespaceURI(), 
localName);
                           // If there is already an existing type, there will be a 
                           // collision.  If there is an existing anon type, there 
will be a 
  @@ -273,7 +275,8 @@
                               // an anonymous type, then need to change the
                               // java name of the anonymous type to match.
                               QName anonQName = new 
QName(entry.getQName().getNamespaceURI(),
  -                                                        "." + 
entry.getQName().getLocalPart());
  +                                                        SymbolTable.ANON_TOKEN +
  +                                                        
entry.getQName().getLocalPart());
                               TypeEntry anonType = symbolTable.getType(anonQName);
                               if (anonType != null) {
                                   anonType.setName(entry.getName());
  
  
  
  1.44.2.1  +12 -6     xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java
  
  Index: SymbolTable.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java,v
  retrieving revision 1.44
  retrieving revision 1.44.2.1
  diff -u -r1.44 -r1.44.2.1
  --- SymbolTable.java  13 Mar 2002 19:50:59 -0000      1.44
  +++ SymbolTable.java  18 Mar 2002 23:03:17 -0000      1.44.2.1
  @@ -142,6 +142,8 @@
       // should we attempt to treat document/literal WSDL as "rpc-style"
       private boolean wrapped = false;
       
  +    public static final String ANON_TOKEN = ">";
  +
       /**
        * Construct a symbol table with the given Namespaces.
        */
  @@ -1369,6 +1371,16 @@
                           setTypeReferences(referent, doc, literal);
                       }
                   }
  +                // If the Defined Element has an anonymous type, 
  +                // process it with the current literal flag setting.
  +                QName anonQName = SchemaUtils.getElementAnonQName(entry.getNode());
  +                if (anonQName != null) {
  +                    TypeEntry anonType = getType(anonQName);
  +                    if (anonType != null) {
  +                        setTypeReferences(anonType, doc, literal);
  +                        return;
  +                    }
  +                }
               }
           }
   
  @@ -1579,12 +1591,6 @@
           QName name = entry.getQName();
           if (get(name, entry.getClass()) == null) {
               // An entry of the given qname of the given type doesn't exist yet.
  -
  -            if (debug) {
  -                System.out.println("Symbol Table add " + name + " as " + 
  -                      entry.getClass().getName().substring(
  -                            entry.getClass().getName().lastIndexOf(".") + 1));
  -            }
               if (entry instanceof Type && 
                   get(name, UndefinedType.class) != null) {
   
  
  
  
  1.19.2.1  +2 -1      xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java
  
  Index: Utils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java,v
  retrieving revision 1.19
  retrieving revision 1.19.2.1
  diff -u -r1.19 -r1.19.2.1
  --- Utils.java        13 Mar 2002 19:50:59 -0000      1.19
  +++ Utils.java        18 Mar 2002 23:03:17 -0000      1.19.2.1
  @@ -247,7 +247,8 @@
                   if (kind.getLocalPart().equals("schema")) {
                       search = null;
                   } else if (kind.getLocalPart().equals("element")) {
  -                    localName = "." + getNodeNameQName(search).getLocalPart();
  +                    localName = SymbolTable.ANON_TOKEN +
  +                        getNodeNameQName(search).getLocalPart();
                       search = search.getParentNode();
                   } else if (kind.getLocalPart().equals("complexType") ||
                              kind.getLocalPart().equals("simpleType")) {
  
  
  


Reply via email to