cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bimargul...@apache.org
Subject svn commit: r591082 - in /incubator/cxf/trunk/rt/javascript/src: main/java/org/apache/cxf/javascript/types/ test/java/org/apache/cxf/javascript/ test/java/org/apache/cxf/javascript/types/
Date Thu, 01 Nov 2007 16:51:13 GMT
Author: bimargulies
Date: Thu Nov  1 09:51:12 2007
New Revision: 591082

URL: http://svn.apache.org/viewvc?rev=591082&view=rev
Log:
Work around possible problem in RSFB in setting up refNames, fill in more testing of the javascript
generator, and turn the tests 
back on.

Modified:
    incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
    incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JavascriptTestUtilities.java
    incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTest.java

Modified: incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java?rev=591082&r1=591081&r2=591082&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
(original)
+++ incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
Thu Nov  1 09:51:12 2007
@@ -303,6 +303,28 @@
     }
     
     /**
+     * This copes with an observed phenomenon in the schema built by the ReflectionServiceFactoryBean.
It 
+     * is creating element such that: (a) the type is not set. (b) the refName is set. 
+     * (c) the namespaceURI in the refName is set empty. This apparently indicates 
+     * 'same Schema' to everyone else, so thus function implements
+     * that convention here. It is unclear if that is a correct structure, 
+     * and it if changes, we can simplify or eliminate this function.
+     * @param name
+     * @param referencingURI
+     * @return
+     */
+    private XmlSchemaElement findElementByRefName(QName name, String referencingURI) {
+        String uri = name.getNamespaceURI();
+        if ("".equals(uri)) {
+            uri = referencingURI;
+        }
+        QName copyName = new QName(uri, name.getLocalPart());
+        XmlSchemaElement target = xmlSchemaCollection.getElementByQName(copyName);
+        assert target != null;
+        return target;
+    }
+    
+    /**
      * Follow a chain of references from element to element until we can obtain a type.
      * @param element
      * @return
@@ -310,7 +332,8 @@
     private XmlSchemaType getElementType(XmlSchemaComplexType containingType, XmlSchemaElement
element) {
         XmlSchemaElement originalElement = element;
         while (element.getSchemaType() == null && element.getRefName() != null) {
-            XmlSchemaElement nextElement = xmlSchemaCollection.getElementByQName(element.getRefName());
+            XmlSchemaElement nextElement = findElementByRefName(element.getRefName(), 
+                                                                containingType.getQName().getNamespaceURI());
             assert nextElement != null;
             element = nextElement;
         }
@@ -426,7 +449,17 @@
             
             // now for the thing itself.
             if (elType instanceof XmlSchemaComplexType) {
-                utils.appendExpression(elementName + ".serialize(cxfjsutils, '" + elementXmlRef
+ "')");
+                if (elChild.getMinOccurs() != 0) { // required
+                    utils.startIf(elementName + " == null");
+                    utils.appendString("<" + elementXmlRef + " " + NIL_ATTRIBUTES + "/>");
+                    utils.appendElse();
+                    utils.appendExpression(elementName + ".serialize(cxfjsutils, '" + elementXmlRef
+ "')");
+                    utils.endBlock();
+                } else {
+                    utils.startIf(elementName + " != null");
+                    utils.appendExpression(elementName + ".serialize(cxfjsutils, '" + elementXmlRef
+ "')");
+                    utils.endBlock();
+                }
             } else {
                 QName typeName = elType.getQName();
                 utils.appendString("<" + elementXmlRef + ">");

Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JavascriptTestUtilities.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JavascriptTestUtilities.java?rev=591082&r1=591081&r2=591082&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JavascriptTestUtilities.java
(original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JavascriptTestUtilities.java
Thu Nov  1 09:51:12 2007
@@ -105,7 +105,7 @@
     }
     
     public void readStringIntoRhino(String js, String sourceName) {
-        LOG.info(sourceName + ":\n" + js);
+        LOG.fine(sourceName + ":\n" + js);
         rhinoContext.evaluateString(rhinoScope, js, sourceName, 1, null);
     }
     

Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTest.java?rev=591082&r1=591081&r2=591082&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTest.java
(original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTest.java
Thu Nov  1 09:51:12 2007
@@ -46,7 +46,6 @@
 import org.apache.cxf.service.model.SchemaInfo;
 import org.apache.cxf.service.model.ServiceInfo;
 import org.junit.Assert;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.mozilla.javascript.RhinoException;
 import org.springframework.test.AbstractDependencyInjectionSpringContextTests;



Mime
View raw message