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 23:39:52 UTC
svn commit: r606746 - in /incubator/cxf/trunk:
common/common/src/main/java/org/apache/cxf/common/xmlschema/
rt/javascript/src/main/java/org/apache/cxf/javascript/
rt/javascript/src/main/java/org/apache/cxf/javascript/types/
rt/javascript/src/test/java/...
Author: bimargulies
Date: Mon Dec 24 14:39:50 2007
New Revision: 606746
URL: http://svn.apache.org/viewvc?rev=606746&view=rev
Log:
Add test for an experiment in anyType, using Aegis. It passes, but it doesn't really work due to CXF-1333.
Added:
incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/fortest/
incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/fortest/AegisService.aegis.xml (with props)
Modified:
incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/xmlschema/XmlSchemaConstants.java
incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/JavascriptUtils.java
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/AegisTest.java
incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JavascriptRhinoTest.java
incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AegisService.java
incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AegisServiceImpl.java
incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/AegisTests.js
Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/xmlschema/XmlSchemaConstants.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/xmlschema/XmlSchemaConstants.java?rev=606746&r1=606745&r2=606746&view=diff
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/xmlschema/XmlSchemaConstants.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/xmlschema/XmlSchemaConstants.java Mon Dec 24 14:39:50 2007
@@ -29,4 +29,49 @@
public static final String XSD_NAMESPACE_URI = "http://www.w3.org/2001/XMLSchema";
public static final QName ANY_TYPE_QNAME = new QName(XSD_NAMESPACE_URI, "anyType");
+ public static final QName ANY_URI_QNAME = new QName(XSD_NAMESPACE_URI, "anyURI");
+ public static final QName BASE64BINARY_QNAME = new QName(XSD_NAMESPACE_URI, "base64Binary");
+ public static final QName BOOLEAN_QNAME = new QName(XSD_NAMESPACE_URI, "boolean");
+ public static final QName BYTE_QNAME = new QName(XSD_NAMESPACE_URI, "byte");
+ public static final QName DATE_QNAME = new QName(XSD_NAMESPACE_URI, "date");
+ public static final QName DATETIME_QNAME = new QName(XSD_NAMESPACE_URI, "dateTime");
+ public static final QName DOUBLE_QNAME = new QName(XSD_NAMESPACE_URI, "double");
+ public static final QName DURATION_QNAME = new QName(XSD_NAMESPACE_URI, "duration");
+ public static final QName ENTITIES_QNAME = new QName(XSD_NAMESPACE_URI, "ENTITIES");
+ public static final QName ENTITY_QNAME = new QName(XSD_NAMESPACE_URI, "ENTITY");
+ public static final QName FLOAT_QNAME = new QName(XSD_NAMESPACE_URI, "float");
+ public static final QName GDAY_QNAME = new QName(XSD_NAMESPACE_URI, "gDay");
+ public static final QName GMONTH_QNAME = new QName(XSD_NAMESPACE_URI, "gMonth");
+ public static final QName GMONTHDAY_QNAME = new QName(XSD_NAMESPACE_URI, "gMonthDay");
+ public static final QName GYEAR_QNAME = new QName(XSD_NAMESPACE_URI, "gYear");
+ public static final QName GYEARMONTH_QNAME = new QName(XSD_NAMESPACE_URI, "gYearMonth");
+ public static final QName HEX_BINARY_QNAME = new QName(XSD_NAMESPACE_URI, "hexBinary");
+ public static final QName ID_QNAME = new QName(XSD_NAMESPACE_URI, "ID");
+ public static final QName IDREF_QNAME = new QName(XSD_NAMESPACE_URI, "IDREF");
+ public static final QName IDREFS_QNAME = new QName(XSD_NAMESPACE_URI, "IDREFS");
+ public static final QName INT_QNAME = new QName(XSD_NAMESPACE_URI, "int");
+ public static final QName INTEGER_QNAME = new QName(XSD_NAMESPACE_URI, "integer");
+ public static final QName LANGUAGE_QNAME = new QName(XSD_NAMESPACE_URI, "language");
+ public static final QName LONG_QNAME = new QName(XSD_NAMESPACE_URI, "long");
+ public static final QName NAME_QNAME = new QName(XSD_NAMESPACE_URI, "Name");
+ public static final QName NCNAME_QNAME = new QName(XSD_NAMESPACE_URI, "NCName");
+ public static final QName NEGATIVEINTEGER_QNAME = new QName(XSD_NAMESPACE_URI, "negativeInteger");
+ public static final QName NMTOKEN_QNAME = new QName(XSD_NAMESPACE_URI, "NMTOKEN");
+ public static final QName NMTOKENS_QNAME = new QName(XSD_NAMESPACE_URI, "NMTOKENS");
+ public static final QName NONNEGATIVEINTEGER_QNAME = new QName(XSD_NAMESPACE_URI, "nonNegativeInteger");
+ public static final QName NONPOSITIVEINTEGER_QNAME = new QName(XSD_NAMESPACE_URI, "nonPositiveInteger");
+ public static final QName NORMALIZEDSTRING_QNAME =
+ new QName(XSD_NAMESPACE_URI, "normalizedStringInteger");
+ public static final QName NOTATION_QNAME = new QName(XSD_NAMESPACE_URI, "NOTATION");
+ public static final QName POSITIVEINTEGER_QNAME = new QName(XSD_NAMESPACE_URI, "positiveInteger");
+ public static final QName QNAME_QNAME = new QName(XSD_NAMESPACE_URI, "QName");
+ public static final QName SHORT_QNAME = new QName(XSD_NAMESPACE_URI, "short");
+ public static final QName STRING_QNAME = new QName(XSD_NAMESPACE_URI, "string");
+ public static final QName TIME_QNAME = new QName(XSD_NAMESPACE_URI, "time");
+ public static final QName TOKEN_QNAME = new QName(XSD_NAMESPACE_URI, "token");
+ public static final QName UNSIGNEDBYTE_QNAME = new QName(XSD_NAMESPACE_URI, "unsignedByte");
+ public static final QName UNSIGNEDINT_QNAME = new QName(XSD_NAMESPACE_URI, "unsignedInt");
+ public static final QName UNSIGNEDLONG_QNAME = new QName(XSD_NAMESPACE_URI, "unsignedLong");
+ public static final QName UNSIGNEDSHORT_QNAME = new QName(XSD_NAMESPACE_URI, "unsignedShort");
+
}
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=606746&r1=606745&r2=606746&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 Mon Dec 24 14:39:50 2007
@@ -256,6 +256,7 @@
}
// now for the thing itself.
+ // type will be null for anyType. Apparently, XmlSchema doesn't represent it.
if (type instanceof XmlSchemaComplexType) {
// it has a value
// pass the extra null in the slot for the 'extra namespaces' needed by 'any'.
@@ -263,13 +264,17 @@
+ ".serialize(cxfjsutils, '"
+ elementInfo.getXmlName() + "', null)");
} else { // simple type
- QName typeName = type.getQName();
appendString("<" + elementInfo.getXmlName() + ">");
// warning: this assumes that ordinary Javascript serialization is all we need.
// except for > ad all of that.
- if (isStringSimpleType(typeName)) {
+ if (type != null && isStringSimpleType(type.getQName())) {
appendExpression("cxfjsutils.escapeXmlEntities(" + jsVar + ")");
} else {
+ // in other words, an AnyType is a string ... of XML!
+ // Or, to be exact, of anything permitted in XML!
+ // (That is, in the anyType case, type will be null, and we won't escape,
+ // and anything goes. If someone sticks a string with xml-y stuff into
+ // an 'int' the results here won't be pretty.)
appendExpression(jsVar);
}
appendString("</" + elementInfo.getXmlName() + ">");
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=606746&r1=606745&r2=606746&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 Mon Dec 24 14:39:50 2007
@@ -582,7 +582,10 @@
utils.appendLine("var value = null;");
utils.startIf("!cxfjsutils.isElementNil(curElement)");
- if (simple) {
+ if (itemInfo.isAnyType()) {
+ // All I can think of to do is deliver the DOM.
+ utils.appendLine("value = curElement;");
+ } else if (simple) {
utils.appendLine("value = cxfjsutils.getNodeText(curElement);");
utils.appendLine(valueTarget
+ " = "
Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/AegisTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/AegisTest.java?rev=606746&r1=606745&r2=606746&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/AegisTest.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/AegisTest.java Mon Dec 24 14:39:50 2007
@@ -23,6 +23,7 @@
import java.util.logging.Logger;
import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.javascript.JavascriptTestUtilities.JSRunnable;
import org.apache.cxf.javascript.fortest.AegisServiceImpl;
import org.junit.Before;
@@ -34,7 +35,6 @@
* We end up here with a part with isElement == true, a non-array element,
* but a complex type for an array of the element.
*/
-@org.junit.Ignore
public class AegisTest extends JavascriptRhinoTest {
private static final Logger LOG = LogUtils.getL7dLogger(AegisTest.class);
@@ -61,6 +61,7 @@
true);
implementor = (AegisServiceImpl)rawImplementor;
implementor.reset();
+ serverFactoryBean.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
}
private Void acceptAny(Context context) {
@@ -68,7 +69,7 @@
testUtilities.rhinoCall("testAnyNToServerRaw",
testUtilities.javaToJS(getAddress()));
assertEquals("before items", implementor.getAcceptedString());
- Collection<Object> something = implementor.getAcceptedCollection();
+ Collection<org.jdom.Element> something = implementor.getAcceptedCollection();
assertNotNull(something);
return null;
}
Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JavascriptRhinoTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JavascriptRhinoTest.java?rev=606746&r1=606745&r2=606746&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JavascriptRhinoTest.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/JavascriptRhinoTest.java Mon Dec 24 14:39:50 2007
@@ -34,6 +34,7 @@
protected JavascriptTestUtilities testUtilities;
protected JaxWsProxyFactoryBean clientProxyFactory;
protected ServiceInfo serviceInfo;
+ protected ServerFactoryBean serverFactoryBean;
protected Object rawImplementor;
private Endpoint endpoint;
@@ -48,7 +49,7 @@
boolean validation) throws Exception {
testUtilities.setBus(getBean(Bus.class, "cxf"));
testUtilities.initializeRhino();
- ServerFactoryBean serverFactoryBean = getBean(ServerFactoryBean.class, serviceEndpointBean);
+ serverFactoryBean = getBean(ServerFactoryBean.class, serviceEndpointBean);
endpoint = serverFactoryBean.getServer().getEndpoint();
// we need to find the implementor.
rawImplementor = serverFactoryBean.getServiceBean();
Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AegisService.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AegisService.java?rev=606746&r1=606745&r2=606746&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AegisService.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AegisService.java Mon Dec 24 14:39:50 2007
@@ -22,6 +22,6 @@
import java.util.Collection;
public interface AegisService {
- void acceptAny(String before, Collection<Object> anything);
+ void acceptAny(String before, Collection<org.jdom.Element> anything);
}
Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AegisServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AegisServiceImpl.java?rev=606746&r1=606745&r2=606746&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AegisServiceImpl.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/AegisServiceImpl.java Mon Dec 24 14:39:50 2007
@@ -26,7 +26,7 @@
*/
public class AegisServiceImpl implements AegisService {
private String acceptedString;
- private Collection<Object> acceptedCollection;
+ private Collection<org.jdom.Element> acceptedCollection;
public void reset() {
acceptedString = null;
@@ -34,7 +34,7 @@
}
/** {@inheritDoc}*/
- public void acceptAny(String before, Collection<Object> anything) {
+ public void acceptAny(String before, Collection<org.jdom.Element> anything) {
acceptedString = before;
acceptedCollection = anything;
}
@@ -42,7 +42,7 @@
/**
* @return Returns the acceptedCollection.
*/
- public Collection<Object> getAcceptedCollection() {
+ public Collection<org.jdom.Element> getAcceptedCollection() {
return acceptedCollection;
}
Modified: incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/AegisTests.js
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/AegisTests.js?rev=606746&r1=606745&r2=606746&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/AegisTests.js (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/AegisTests.js Mon Dec 24 14:39:50 2007
@@ -34,14 +34,22 @@
globalResponseObject = null;
}
+// aegis/simple doesn't understand 'oneway'
+
+function success()
+{
+}
+
+function error()
+{
+}
+
function testAnyNToServerRaw(url)
{
- var service = new cxf_apache_org_jstest_any_AcceptAny();
+ var service = new fortest_javascript_cxf_apache_org__AegisServicePortType();
service.url = url;
- var param = new cxf_apache_org_jstest_types_any_acceptAnyN();
- param.setBefore("before chalk");
- var holder = new org_apache_cxf_raw_any_holder("<walrus xmlns='uri:iam'>tusks</walrus><penguin xmlns='uri:linux'>emperor</penguin>");
- param.setAny(holder);
- param.setAfter("after chalk");
- service.acceptAnyN(param);
+
+ var arrayItem = new fortest_javascript_cxf_apache_org__ArrayOfAnyType();
+ arrayItem.setAnyType(["<walrus xmlns='uri:iam'>tusks</walrus>", "<penguin xmlns='uri:linux'>emperor</penguin>"]);
+ service.acceptAny(success, error, "before items", arrayItem);
}
Added: incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/fortest/AegisService.aegis.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/fortest/AegisService.aegis.xml?rev=606746&view=auto
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/fortest/AegisService.aegis.xml (added)
+++ incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/fortest/AegisService.aegis.xml Mon Dec 24 14:39:50 2007
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the v Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<mappings xmlns:ns="http://fortest.cxf.apache.org">
+ <mapping name="ns:AegisService">
+ <method name="acceptAny">
+ <parameter index="0" mappedName="before"/>
+ <parameter index="1" mappedName="anything"/>
+ </method>
+ </mapping>
+</mappings>
+
Propchange: incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/fortest/AegisService.aegis.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/fortest/AegisService.aegis.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/rt/javascript/src/test/resources/org/apache/cxf/javascript/fortest/AegisService.aegis.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml