You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by to...@apache.org on 2005/06/04 00:23:50 UTC
cvs commit: ws-axis/java/src/org/apache/axis/wsdl/symbolTable SymbolTable.java Utils.java
tomj 2005/06/03 15:23:50
Modified: java/src/org/apache/axis/wsdl/symbolTable SymbolTable.java
Utils.java
Log:
Utils.java:
- Prevent anonymous types from being marked as referenced when the
xsd:anyType is used in the WSDL.
This was causing the types to be emitted and the deploy.wsdd file
would have typemappings for these (made up) QNames.
Test case will follow in test/wsdl/query when I fix some other bugs.
SymbolTable.java:
- Add a comment
Revision Changes Path
1.120 +7 -1 ws-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java
Index: SymbolTable.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -r1.119 -r1.120
--- SymbolTable.java 13 Apr 2005 16:22:52 -0000 1.119
+++ SymbolTable.java 3 Jun 2005 22:23:50 -0000 1.120
@@ -3287,7 +3287,13 @@
continue;
}
- if ((refType != null) && !refType.equals(nestedType)
+ // If this entry has a referenced type that isn't
+ // the same as the nested type
+ // AND the OnlyLiteral reference switch is on
+ // THEN turn the OnlyLiteral reference switch off.
+ // If only someone had put a comment here saying why we do this...
+ if ((refType != null)
+ && !refType.equals(nestedType)
&& nestedType.isOnlyLiteralReferenced()) {
nestedType.setOnlyLiteralReference(false);
}
1.45 +10 -9 ws-axis/java/src/org/apache/axis/wsdl/symbolTable/Utils.java
Index: Utils.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/symbolTable/Utils.java,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- Utils.java 4 Mar 2005 08:43:52 -0000 1.44
+++ Utils.java 3 Jun 2005 22:23:50 -0000 1.45
@@ -22,12 +22,7 @@
import javax.xml.namespace.QName;
import javax.xml.rpc.holders.BooleanHolder;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.StringTokenizer;
-import java.util.Vector;
+import java.util.*;
/**
* This class contains static utility methods for the emitter.
@@ -526,12 +521,18 @@
if ((type != null) && (type.getNode() != null)) {
getDerivedTypes(type, types, symbolTable);
- } else if (Constants.isSchemaXSD(type.getQName().getNamespaceURI())
+ }
+ else if (type != null && Constants.isSchemaXSD(type.getQName().getNamespaceURI())
&& (type.getQName().getLocalPart().equals("anyType")
|| type.getQName().getLocalPart().equals("any"))) {
- // All types are derived from anyType
- types.addAll(symbolTable.getTypeIndex().values());
+ // All types are derived from anyType, except anonymous ones
+ final Collection typeValues = symbolTable.getTypeIndex().values();
+ for (Iterator it = typeValues.iterator(); it.hasNext();) {
+ SymTabEntry e = (SymTabEntry) it.next();
+ if (! e.getQName().getLocalPart().startsWith(SymbolTable.ANON_TOKEN))
+ types.add(e);
+ }
}
return types;
Re: cvs commit: ws-axis/java/src/org/apache/axis/wsdl/symbolTable SymbolTable.java Utils.java
Posted by Venkat Reddy <vr...@gmail.com>.
Tom,
I have traced the issue of AXIS-2107 (Amazon wsdl) to this commit. Can
you review these changes in Utils.java?
thanks
Venkat
On 3 Jun 2005 22:23:50 -0000, tomj@apache.org <to...@apache.org> wrote:
> tomj 2005/06/03 15:23:50
>
> Modified: java/src/org/apache/axis/wsdl/symbolTable SymbolTable.java
> Utils.java
> Log:
> Utils.java:
> - Prevent anonymous types from being marked as referenced when the
> xsd:anyType is used in the WSDL.
> This was causing the types to be emitted and the deploy.wsdd file
> would have typemappings for these (made up) QNames.
>
> Test case will follow in test/wsdl/query when I fix some other bugs.
>
> SymbolTable.java:
> - Add a comment
>
> Revision Changes Path
> 1.120 +7 -1 ws-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java
>
> Index: SymbolTable.java
> ===================================================================
> RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java,v
> retrieving revision 1.119
> retrieving revision 1.120
> diff -u -r1.119 -r1.120
> --- SymbolTable.java 13 Apr 2005 16:22:52 -0000 1.119
> +++ SymbolTable.java 3 Jun 2005 22:23:50 -0000 1.120
> @@ -3287,7 +3287,13 @@
> continue;
> }
>
> - if ((refType != null) && !refType.equals(nestedType)
> + // If this entry has a referenced type that isn't
> + // the same as the nested type
> + // AND the OnlyLiteral reference switch is on
> + // THEN turn the OnlyLiteral reference switch off.
> + // If only someone had put a comment here saying why we do this...
> + if ((refType != null)
> + && !refType.equals(nestedType)
> && nestedType.isOnlyLiteralReferenced()) {
> nestedType.setOnlyLiteralReference(false);
> }
>
>
>
> 1.45 +10 -9 ws-axis/java/src/org/apache/axis/wsdl/symbolTable/Utils.java
>
> Index: Utils.java
> ===================================================================
> RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/symbolTable/Utils.java,v
> retrieving revision 1.44
> retrieving revision 1.45
> diff -u -r1.44 -r1.45
> --- Utils.java 4 Mar 2005 08:43:52 -0000 1.44
> +++ Utils.java 3 Jun 2005 22:23:50 -0000 1.45
> @@ -22,12 +22,7 @@
>
> import javax.xml.namespace.QName;
> import javax.xml.rpc.holders.BooleanHolder;
> -import java.util.HashMap;
> -import java.util.HashSet;
> -import java.util.Iterator;
> -import java.util.Map;
> -import java.util.StringTokenizer;
> -import java.util.Vector;
> +import java.util.*;
>
> /**
> * This class contains static utility methods for the emitter.
> @@ -526,12 +521,18 @@
>
> if ((type != null) && (type.getNode() != null)) {
> getDerivedTypes(type, types, symbolTable);
> - } else if (Constants.isSchemaXSD(type.getQName().getNamespaceURI())
> + }
> + else if (type != null && Constants.isSchemaXSD(type.getQName().getNamespaceURI())
> && (type.getQName().getLocalPart().equals("anyType")
> || type.getQName().getLocalPart().equals("any"))) {
>
> - // All types are derived from anyType
> - types.addAll(symbolTable.getTypeIndex().values());
> + // All types are derived from anyType, except anonymous ones
> + final Collection typeValues = symbolTable.getTypeIndex().values();
> + for (Iterator it = typeValues.iterator(); it.hasNext();) {
> + SymTabEntry e = (SymTabEntry) it.next();
> + if (! e.getQName().getLocalPart().startsWith(SymbolTable.ANON_TOKEN))
> + types.add(e);
> + }
> }
>
> return types;
>
>
>
>