You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bi...@apache.org on 2007/12/24 03:13:53 UTC

svn commit: r606656 - in /incubator/cxf/trunk/rt/javascript/src: main/java/org/apache/cxf/javascript/ main/resources/org/apache/cxf/javascript/ test/java/org/apache/cxf/javascript/ test/java/org/apache/cxf/javascript/fortest/ test/resources/org/apache/...

Author: bimargulies
Date: Sun Dec 23 18:13:49 2007
New Revision: 606656

URL: http://svn.apache.org/viewvc?rev=606656&view=rev
Log:
Add a feature to allow arbitrary XML to be sent from javascript to java for xs:any. 

Modified:
    incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptUtils.java
    incubator/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js
    incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/AnyTest.java
    incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JsXMLHttpRequest.java
    incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AnyImpl.java
    incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/AnyTests.js

Modified: incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptUtils.java?rev=606656&r1=606655&r2=606656&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptUtils.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptUtils.java Sun Dec 23 18:13:49 2007
@@ -309,7 +309,7 @@
         appendLine("var anyData = null;");
         appendLine("var anyStartTag;");
         
-        startIf("anyHolder != null");
+        startIf("anyHolder != null && !anyHolder.raw");
         appendLine("anySerializer = "
                              + "cxfjsutils.interfaceObject.globalElementSerializers[anyHolder.qname];");
         appendLine("anyXmlTag = '" + prefix + ":' + anyHolder.localName;");
@@ -319,7 +319,9 @@
         appendLine("anyEmptyTag = '<' + anyXmlTag + ' ' + anyXmlNsDef + '/>';");
         appendLine("anyData = anyHolder.object;");
         endBlock();
-
+        startIf("anyHolder != null && anyHolder.raw");
+        appendExpression("anyHolder.xml");
+        appendElse();
         // first question: optional?
         if (optional) {
             startIf("anyHolder != null && anyData != null");
@@ -358,6 +360,7 @@
         if (optional) {
             endBlock();
         }
+        endBlock(); // for raw
     }
 
 }

Modified: incubator/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js?rev=606656&r1=606655&r2=606656&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js (original)
+++ incubator/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js Sun Dec 23 18:13:49 2007
@@ -411,4 +411,12 @@
 	this.localName = localName;
 	this.qname = "{" + namespaceURI + "}" + localName;
 	this.object = object;
+	this.raw = false;
 }
+
+function org_apache_cxf_raw_any_holder(xml)
+{
+	this.xml = xml;
+	this.raw = true;
+}
+	

Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/AnyTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/AnyTest.java?rev=606656&r1=606655&r2=606656&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/AnyTest.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/AnyTest.java Sun Dec 23 18:13:49 2007
@@ -21,6 +21,8 @@
 
 import java.util.logging.Logger;
 
+import org.w3c.dom.Element;
+
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.javascript.JavascriptTestUtilities.JSRunnable;
 import org.apache.cxf.javascript.JavascriptTestUtilities.Notifier;
@@ -87,6 +89,30 @@
         });
     }
     
+    private Void acceptOneRaw(Context context) {
+        LOG.info("About to call accept1 with Raw XML" + endpoint.getAddress());
+        testUtilities.rhinoCall("testAny1ToServerRaw",  
+                                testUtilities.javaToJS(endpoint.getAddress()));
+        assertEquals("before chalk", implementor.getBefore());
+        Object something = implementor.getAny1value();
+        assertNotNull(something);
+        assertTrue(something instanceof Element);
+        Element walrus = (Element) something;
+        assertEquals("walrus", walrus.getNodeName());
+        assertEquals("tusks", walrus.getTextContent());
+        assertEquals("after chalk", implementor.getAfter());
+        return null;
+    }
+    
+    @Test
+    public void callAcceptOneRaw() {
+        testUtilities.runInsideContext(Void.class, new JSRunnable<Void>() {
+            public Void run(Context context) {
+                return acceptOneRaw(context);
+            }
+        });
+    }
+
     private Void returnAny1(Context context) {
         Notifier notifier = 
             testUtilities.rhinoCallConvert("testAny1ToClientChalk", Notifier.class, 

Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JsXMLHttpRequest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JsXMLHttpRequest.java?rev=606656&r1=606655&r2=606656&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JsXMLHttpRequest.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JsXMLHttpRequest.java Sun Dec 23 18:13:49 2007
@@ -127,7 +127,7 @@
 
     private void notifyReadyStateChangeListener() {
         if (readyStateChangeListener instanceof Function) {
-            LOG.info("notify " + readyState);
+            LOG.fine("notify " + readyState);
             // for now, call with no args.
             Function listenerFunction = (Function)readyStateChangeListener;
             listenerFunction.call(Context.getCurrentContext(), getParentScope(), null, new Object[] {});
@@ -136,7 +136,7 @@
 
     private void doOpen(String method, String urlString, boolean async, String user, String password) {
         // ignoring auth for now.
-        LOG.info("doOpen " + method + " " + urlString + " " + Boolean.toString(async));
+        LOG.fine("doOpen " + method + " " + urlString + " " + Boolean.toString(async));
 
         storedAsync = async;
         responseText = null;
@@ -145,7 +145,7 @@
         method = method.toUpperCase();
         // 1 check method
         if (!validMethods.contains(method)) {
-            LOG.info("Invalid method syntax error.");
+            LOG.fine("Invalid method syntax error.");
             throwError("SYNTAX_ERR");
         }
         // 2 security check (we don't have any)
@@ -157,7 +157,7 @@
         try {
             URI tempUri = new URI(urlString);
             if (tempUri.isOpaque()) { 
-                LOG.info("Relative URL syntax error.");
+                LOG.fine("Relative URL syntax error.");
                 throwError("SYNTAX_ERR");
             }
             

Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AnyImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AnyImpl.java?rev=606656&r1=606655&r2=606656&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AnyImpl.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AnyImpl.java Sun Dec 23 18:13:49 2007
@@ -34,7 +34,7 @@
 /**
  * 
  */
-@org.apache.cxf.feature.Features(features = "org.apache.cxf.feature.LoggingFeature")   
+//@org.apache.cxf.feature.Features(features = "org.apache.cxf.feature.LoggingFeature")   
 public class AnyImpl implements AcceptAny {
 
     private Object any1value;

Modified: incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/AnyTests.js
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/AnyTests.js?rev=606656&r1=606655&r2=606656&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/AnyTests.js (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/AnyTests.js Sun Dec 23 18:13:49 2007
@@ -48,6 +48,18 @@
 	service.acceptAny1(param);
 }
 
+function testAny1ToServerRaw(url)
+{
+	var service = new cxf_apache_org_jstest_any_AcceptAny();
+	service.url = url;
+	var param = new cxf_apache_org_jstest_types_any_acceptAny1();
+	param.setBefore("before chalk");
+	var holder = new org_apache_cxf_raw_any_holder("<walrus xmlns='uri:iam'>tusks</walrus>");
+	param.setAny(holder);
+	param.setAfter("after chalk");
+	service.acceptAny1(param);
+}
+
 function errorCallback(httpStatus, httpStatusText) 
 {
     org_apache_cxf_trace.trace("error");