You are viewing a plain text version of this content. The canonical link for it is here.
Posted to woden-dev@ws.apache.org by jk...@apache.org on 2005/12/05 16:09:32 UTC

svn commit: r354082 - in /incubator/woden/java/src/org/apache/woden: internal/DOMWSDLReader.java internal/wsdl20/Constants.java wsdl20/extensions/ExtensionRegistry.java

Author: jkaputin
Date: Mon Dec  5 07:09:21 2005
New Revision: 354082

URL: http://svn.apache.org/viewcvs?rev=354082&view=rev
Log:
Modified behaviour if there is no extension registered
for a non-WSDL attribute to report error rather than
to throw an exception. Will add more support for an
'UnknownAttr' type to wrap the non-WSDL attribute.

Modified:
    incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java
    incubator/woden/java/src/org/apache/woden/internal/wsdl20/Constants.java
    incubator/woden/java/src/org/apache/woden/wsdl20/extensions/ExtensionRegistry.java

Modified: incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java?rev=354082&r1=354081&r2=354082&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/DOMWSDLReader.java Mon Dec  5 07:09:21 2005
@@ -1446,7 +1446,8 @@
             
             if (namespaceURI != null && !namespaceURI.equals(Constants.NS_URI_WSDL20))
             {
-                if (!namespaceURI.equals(Constants.NS_URI_XMLNS))
+                if (!namespaceURI.equals(Constants.NS_URI_XMLNS) && 
+                    !namespaceURI.equals(Constants.NS_URI_XSI))  //TODO handle xsi attrs elsewhere, without need to register
                 {
                     //TODO reg namespaces at appropriate element scope, not just at desc.
                     //DOMUtils.registerUniquePrefix(prefix, namespaceURI, desc);
@@ -1456,9 +1457,12 @@
                     if (extReg != null)
                     {
                         xmlAttr = extReg.createExtAttribute(wsdlClass, qname);
-                        String attrValue = domAttr.getValue();
-                        xmlAttr.init(domEl, attrValue);
-                        wsdlObj.setExtensionAttribute(qname, xmlAttr);
+                        if(xmlAttr != null) //TODO use an 'UnknownAttr' class in place of null
+                        {
+                            String attrValue = domAttr.getValue();
+                            xmlAttr.init(domEl, attrValue);
+                            wsdlObj.setExtensionAttribute(qname, xmlAttr);
+                        }
                     }
                     else
                     {

Modified: incubator/woden/java/src/org/apache/woden/internal/wsdl20/Constants.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/Constants.java?rev=354082&r1=354081&r2=354082&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/wsdl20/Constants.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/wsdl20/Constants.java Mon Dec  5 07:09:21 2005
@@ -31,6 +31,8 @@
         "http://www.w3.org/2005/08/wsdl";
     public static final String NS_URI_XMLNS =
         "http://www.w3.org/2000/xmlns/";
+    public static final String NS_URI_XSI =
+        "http://www.w3.org/2001/XMLSchema-instance";
 
     // Top-level WSDL 2.0 element names.
     public static final String ELEM_DESCRIPTION = "description";

Modified: incubator/woden/java/src/org/apache/woden/wsdl20/extensions/ExtensionRegistry.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/wsdl20/extensions/ExtensionRegistry.java?rev=354082&r1=354081&r2=354082&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/wsdl20/extensions/ExtensionRegistry.java (original)
+++ incubator/woden/java/src/org/apache/woden/wsdl20/extensions/ExtensionRegistry.java Mon Dec  5 07:09:21 2005
@@ -23,6 +23,7 @@
 
 import org.apache.woden.ErrorReporter;
 import org.apache.woden.WSDLException;
+import org.apache.woden.internal.ErrorLocatorImpl;
 import org.apache.woden.xml.XMLAttr;
 
 /**
@@ -537,15 +538,21 @@
       
       if (implClass == null)
       {
-          String msg = getErrorReporter().getFormattedMessage("WSDL010", 
-                           new Object[] {attrQName.toString(), ownerClass.getName()});    
-          throw new WSDLException(WSDLException.CONFIGURATION_ERROR, msg);
+          //TODO capture the attr in an 'UnknownAttr' object instead
+          
+          getErrorReporter().reportError( 
+              new ErrorLocatorImpl(),  //TODO line/col nos.
+              "WSDL010", 
+              new Object[] {attrQName.toString(), ownerClass.getName()},
+              ErrorReporter.SEVERITY_ERROR);
+          
+         return null;
       }
       else if (!(XMLAttr.class.isAssignableFrom(implClass)))
       {
           String msg = getErrorReporter().getFormattedMessage("WSDL011", 
                            new Object[] {attrQName.toString()});    
-          throw new WSDLException(WSDLException.CONFIGURATION_ERROR, msg);
+          throw new WSDLException(WSDLException.CONFIGURATION_ERROR, "WSDL011: " + msg);
       }
       
       try {
@@ -556,7 +563,7 @@
       {
           String msg = getErrorReporter().getFormattedMessage("WSDL009",
                            new Object[] {implClass.getName()});
-          throw new WSDLException(WSDLException.CONFIGURATION_ERROR, msg, e);
+          throw new WSDLException(WSDLException.CONFIGURATION_ERROR, "WSDL009: " + msg, e);
       } 
       catch (IllegalAccessException e) {
           String msg = getErrorReporter().getFormattedMessage("WSDL009",



---------------------------------------------------------------------
To unsubscribe, e-mail: woden-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: woden-dev-help@ws.apache.org