Author: dkulp
Date: Thu Jul 19 11:10:01 2007
New Revision: 557715
URL: http://svn.apache.org/viewvc?view=rev&rev=557715
Log:
[CXF-655, CXF-802] Fix issues with empty array as well as minOccurs=0 with nulls
Fix a bunch of tests that apparently were not valid
Added:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/package-info.java
(with props)
Modified:
incubator/cxf/trunk/pom.xml
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java
incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderTest.java
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/sayHi.xml
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/EchoService.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soapheader/HeaderClientServerTest.java
Modified: incubator/cxf/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/pom.xml?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
--- incubator/cxf/trunk/pom.xml (original)
+++ incubator/cxf/trunk/pom.xml Thu Jul 19 11:10:01 2007
@@ -351,6 +351,7 @@
<preparationGoals>clean install</preparationGoals>
<goals>deploy</goals>
<arguments>-Prelease,deploy</arguments>
+ <autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
<plugin>
Modified:
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java
(original)
+++
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java
Thu Jul 19 11:10:01 2007
@@ -50,6 +50,7 @@
import org.apache.cxf.service.model.ServiceInfo;
import org.apache.cxf.staxutils.DepthXMLStreamReader;
import org.apache.cxf.staxutils.StaxUtils;
+import org.apache.ws.commons.schema.XmlSchemaElement;
public class DocLiteralInInterceptor extends AbstractInDatabindingInterceptor {
private static final Logger LOG =
Logger.getLogger(DocLiteralInInterceptor.class.getName());
@@ -206,40 +207,61 @@
DataReader<XMLStreamReader> dr,
List<Object> parameters,
Iterator<MessagePartInfo> itr) {
-
- //List<Object> list = new ArrayList<Object>();
- MessagePartInfo part = null;
- while (StaxUtils.toNextElement(xmlReader)) {
- boolean isListPara = false;
- if (itr.hasNext()) {
- part = itr.next();
- if (part.getTypeClass().getName().startsWith("[L")) {
- //&&
Collection.class.isAssignableFrom(part.getTypeClass())) {
- //it's List Para
- //
- Type genericType = (Type) part.getProperty("generic.type");
-
- if (genericType instanceof ParameterizedType) {
- isListPara = true;
+
+ boolean hasNext = true;
+ while (itr.hasNext()) {
+ MessagePartInfo part = itr.next();
+ if (hasNext) {
+ hasNext = StaxUtils.toNextElement(xmlReader);
+ }
+ Object obj = null;
+ if (hasNext) {
+ QName rname = xmlReader.getName();
+ while (part != null
+ && !rname.equals(part.getConcreteName())) {
+ if (part.getXmlSchema() instanceof XmlSchemaElement) {
+ //should check minOccurs=0
+ parameters.add(null);
}
- }
- }
- if (part == null) {
- break;
+ if (itr.hasNext()) {
+ part = itr.next();
+ } else {
+ part = null;
+ }
+ }
+ if (part == null) {
+ return;
+ }
+ if (rname.equals(part.getConcreteName())) {
+ obj = dr.read(part, xmlReader);
+ }
}
- Object obj = dr.read(part, xmlReader);
- if (isListPara) {
+ if (isList(part)) {
List<Object> listArg = new ArrayList<Object>();
- for (Object o : (Object[])obj) {
- listArg.add(o);
+ if (obj != null) {
+ for (Object o : (Object[])obj) {
+ listArg.add(o);
+ }
}
parameters.add(listArg);
} else {
parameters.add(obj);
}
-
}
-
+ }
+ private boolean isList(MessagePartInfo part) {
+ if (part.getTypeClass().isArray()
+ && !part.getTypeClass().getComponentType().isPrimitive()) {
+ //&& Collection.class.isAssignableFrom(part.getTypeClass())) {
+ //it's List Para
+ //
+ Type genericType = (Type) part.getProperty("generic.type");
+
+ if (genericType instanceof ParameterizedType) {
+ return true;
+ }
+ }
+ return false;
}
Modified:
incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml
(original)
+++
incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml
Thu Jul 19 11:10:01 2007
@@ -3,10 +3,10 @@
xmlns:j="http://inheritance.aegis.xfire.codehaus.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<i:receiveUser>
- <j:user xsi:type="j:Employee">
+ <i:user xsi:type="j:Employee">
<j:division>foo</j:division>
<j:name>bar</j:name>
- </j:user>
+ </i:user>
</i:receiveUser>
</env:Body>
</env:Envelope>
Modified:
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
(original)
+++
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
Thu Jul 19 11:10:01 2007
@@ -36,7 +36,6 @@
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
-import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.attachment.AttachmentMarshaller;
import javax.xml.bind.attachment.AttachmentUnmarshaller;
import javax.xml.namespace.QName;
@@ -121,8 +120,7 @@
u.setAttachmentMarshaller(am);
}
- if (null != elName
- && !cls.isAnnotationPresent(XmlRootElement.class)) {
+ if (null != elName) {
if (part != null
&& part.getXmlSchema() instanceof XmlSchemaElement) {
Modified:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderTest.java?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderTest.java
(original)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/HolderTest.java
Thu Jul 19 11:10:01 2007
@@ -70,8 +70,9 @@
svr.create();
addNamespace("h", "http://holder.jaxws.cxf.apache.org/");
+ Node response;
- Node response = invoke(address, LocalTransportFactory.TRANSPORT_ID,
"echo.xml");
+ response = invoke(address, LocalTransportFactory.TRANSPORT_ID,
"echo.xml");
assertNotNull(response);
assertValid("//h:echoResponse/return[text()='one']", response);
Modified:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml
(original)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo.xml
Thu Jul 19 11:10:01 2007
@@ -18,9 +18,9 @@
-->
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
- <echo xmlns="http://holder.jaxws.cxf.apache.org/">
- <s1>one</s1>
- <s2>two</s2>
- </echo>
+ <ns2:echo xmlns:ns2="http://holder.jaxws.cxf.apache.org/">
+ <arg0>one</arg0>
+ <arg1>two</arg1>
+ </ns2:echo>
</s:Body>
</s:Envelope>
Modified:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml
(original)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo2.xml
Thu Jul 19 11:10:01 2007
@@ -18,9 +18,9 @@
-->
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
- <echo2 xmlns="http://holder.jaxws.cxf.apache.org/">
- <s1>one</s1>
- <s2>two</s2>
- </echo2>
+ <ns2:echo2 xmlns:ns2="http://holder.jaxws.cxf.apache.org/">
+ <arg0>one</arg0>
+ <arg1>two</arg1>
+ </ns2:echo2>
</s:Body>
</s:Envelope>
Modified:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml
(original)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echo3.xml
Thu Jul 19 11:10:01 2007
@@ -16,14 +16,13 @@
specific language governing permissions and limitations
under the License.
-->
-<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns="http://holder.jaxws.cxf.apache.org/">
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
- <header>header</header>
+ <ns2:header
xmlns:ns2="http://holder.jaxws.cxf.apache.org/">header</ns2:header>
</s:Header>
<s:Body>
- <echo3>
- <s1>one</s1>
- </echo3>
+ <ns2:echo3 xmlns:ns2="http://holder.jaxws.cxf.apache.org/">
+ <arg1>one</arg1>
+ </ns2:echo3>
</s:Body>
</s:Envelope>
Modified:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml
(original)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/holder/echoResponse.xml
Thu Jul 19 11:10:01 2007
@@ -18,9 +18,9 @@
-->
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
- <echoResponse xmlns="http://holder.jaxws.cxf.apache.org/">
+ <ns2:echoResponse xmlns:ns2="http://holder.jaxws.cxf.apache.org/">
<return>one</return>
- <outS2>two</outS2>
- </echoResponse>
+ <return1>two</return1>
+ </ns2:echoResponse>
</s:Body>
</s:Envelope>
Modified:
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/sayHi.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/sayHi.xml?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/sayHi.xml
(original)
+++
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/sayHi.xml
Thu Jul 19 11:10:01 2007
@@ -18,9 +18,9 @@
-->
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
- <sayHi xmlns="http://service.jaxws.cxf.apache.org/">
- <text>hi</text>
- </sayHi>
+ <ns2:sayHi xmlns:ns2="http://service.jaxws.cxf.apache.org/">
+ <arg0>hi</arg0>
+ </ns2:sayHi>
</soap:Body>
</soap:Envelope>
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/ClientServerMiscTest.java
Thu Jul 19 11:10:01 2007
@@ -160,6 +160,11 @@
servName);
DocLitWrappedCodeFirstService port = service.getPort(portName,
DocLitWrappedCodeFirstService.class);
+ List<String> rev = new
ArrayList<String>(Arrays.asList(DocLitWrappedCodeFirstServiceImpl.DATA));
+ Collections.reverse(rev);
+
+
+ String s;
String arrayOut[] = port.arrayOutput();
assertNotNull(arrayOut);
@@ -175,17 +180,27 @@
assertEquals(DocLitWrappedCodeFirstServiceImpl.DATA[x],
listOut.get(x));
}
- String s = port.arrayInput(DocLitWrappedCodeFirstServiceImpl.DATA);
+ s = port.arrayInput(DocLitWrappedCodeFirstServiceImpl.DATA);
assertEquals("string1string2string3", s);
s =
port.listInput(java.util.Arrays.asList(DocLitWrappedCodeFirstServiceImpl.DATA));
assertEquals("string1string2string3", s);
- List<String> rev = new
ArrayList<String>(Arrays.asList(DocLitWrappedCodeFirstServiceImpl.DATA));
- Collections.reverse(rev);
- String s2 =
port.multiListInput(Arrays.asList(DocLitWrappedCodeFirstServiceImpl.DATA),
+ s =
port.multiListInput(Arrays.asList(DocLitWrappedCodeFirstServiceImpl.DATA),
rev,
"Hello", 24);
- assertEquals("string1string2string3string3string2string1Hello24", s2);
+ assertEquals("string1string2string3string3string2string1Hello24", s);
+
+ s = port.listInput(new ArrayList<String>());
+ assertEquals("", s);
+
+ s = port.listInput(null);
+ assertEquals("", s);
+
+ s =
port.multiListInput(Arrays.asList(DocLitWrappedCodeFirstServiceImpl.DATA),
+ rev,
+ null, 24);
+ assertEquals("string1string2string3string3string2string1<null>24", s);
+
}
}
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/DocLitWrappedCodeFirstServiceImpl.java
Thu Jul 19 11:10:01 2007
@@ -62,7 +62,11 @@
for (String s : inputs2) {
buf.append(s);
}
- buf.append(x);
+ if (x == null) {
+ buf.append("<null>");
+ } else {
+ buf.append(x);
+ }
buf.append(Integer.toString(y));
return buf.toString();
}
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/EchoService.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/EchoService.java?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/EchoService.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/EchoService.java
Thu Jul 19 11:10:01 2007
@@ -18,11 +18,14 @@
*/
package org.apache.cxf.systest.mtom;
+import javax.jws.WebParam;
import javax.jws.WebService;
[EMAIL PROTECTED]
[EMAIL PROTECTED](targetNamespace = "http://mtom.systest.cxf.apache.org")
public class EchoService {
- public Data echo(Data input) {
+ public Data echo(
+ @WebParam(name = "Data")
+ Data input) {
// ByteArrayOutputStream out = new ByteArrayOutputStream();
// try {
// IOUtils.copy(input.getSomeData().getInputStream(), out);
Added:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/package-info.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/package-info.java?view=auto&rev=557715
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/package-info.java
(added)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/package-info.java
Thu Jul 19 11:10:01 2007
@@ -0,0 +1,21 @@
+/**
+ * Licensed to the Apache 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.
+ */
[EMAIL PROTECTED](namespace = "http://mtom.systest.cxf.apache.org",
+ elementFormDefault =
javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.apache.cxf.systest.mtom;
\ No newline at end of file
Propchange:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/package-info.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/package-info.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soapheader/HeaderClientServerTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soapheader/HeaderClientServerTest.java?view=diff&rev=557715&r1=557714&r2=557715
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soapheader/HeaderClientServerTest.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soapheader/HeaderClientServerTest.java
Thu Jul 19 11:10:01 2007
@@ -59,7 +59,7 @@
header.setName("mao");
header.setPhoneNumber("108");
- OrderPizzaResponseType res = port.orderPizza(req);
+ OrderPizzaResponseType res = port.orderPizza(req);
System.out.println(res);
//OrderPizzaResponseType res = port.orderPizza(req, header);