This is an automated email from the ASF dual-hosted git repository.
buhhunyx pushed a commit to branch 3.3.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/3.3.x-fixes by this push:
new 5c1270a CXF-8168 Wadl2java maven plugin not allows mapping to array
types (#611)
5c1270a is described below
commit 5c1270a27b6b2547ed614b17f7956b1e55712a93
Author: Alexey Markevich <[email protected]>
AuthorDate: Wed Dec 4 22:59:35 2019 +0300
CXF-8168 Wadl2java maven plugin not allows mapping to array types (#611)
---
.../cxf/tools/common/toolspec/parser/Option.java | 23 +++++++++++-----------
.../cxf/tools/wadlto/jaxrs/WADLToJavaTest.java | 2 ++
.../jaxrs/src/test/resources/wadl/bookstore.xml | 2 +-
3 files changed, 14 insertions(+), 13 deletions(-)
diff --git
a/tools/common/src/main/java/org/apache/cxf/tools/common/toolspec/parser/Option.java
b/tools/common/src/main/java/org/apache/cxf/tools/common/toolspec/parser/Option.java
index fe358d5..6031ec0 100644
---
a/tools/common/src/main/java/org/apache/cxf/tools/common/toolspec/parser/Option.java
+++
b/tools/common/src/main/java/org/apache/cxf/tools/common/toolspec/parser/Option.java
@@ -37,7 +37,6 @@ public class Option implements TokenConsumer {
protected Element argument;
protected Element annotation;
private final Element element;
- private Element valueType;
private int numMatches;
@@ -163,14 +162,12 @@ public class Option implements TokenConsumer {
List<Element> list =
DOMUtils.findAllElementsByTagNameNS(argument,
Tool.TOOL_SPEC_PUBLIC_ID, "valuetype");
//NodeList list =
argument.getElementsByTagNameNS(Tool.TOOL_SPEC_PUBLIC_ID, "valuetype");
- String valuetypeStr = null;
if (list != null && !list.isEmpty()) {
- valueType = list.get(0);
- valuetypeStr = valueType.getFirstChild().getNodeValue();
+ String valuetypeStr = list.get(0).getFirstChild().getNodeValue();
if ("IdentifyString".equals(valuetypeStr)) {
- return !isIdentifyString(argValue);
+ return !isIdentifyString(argValue, false);
} else if ("NamingSpacePackageString".equals(valuetypeStr)) {
return !isNamingSpacePackageString(argValue);
} else if ("Digital".equals(valuetypeStr)) {
@@ -207,9 +204,10 @@ public class Option implements TokenConsumer {
return result;
}
- private boolean isIdentifyString(String value) {
+ private static boolean isIdentifyString(String value, boolean
allowBrackets) {
for (int i = 0; i < value.length(); i++) {
- if (value.charAt(i) == '.') {
+ if (value.charAt(i) == '.'
+ || (allowBrackets && (value.charAt(i) == '[' ||
value.charAt(i) == ']'))) {
continue;
}
if (!Character.isJavaIdentifierPart(value.charAt(i))) {
@@ -219,12 +217,13 @@ public class Option implements TokenConsumer {
return true;
}
- private boolean isNamingSpacePackageString(String value) {
- if (value.indexOf('=') < 0) {
- return isIdentifyString(value);
+ private static boolean isNamingSpacePackageString(String value) {
+ int idx = value.indexOf('=');
+ if (idx == -1) {
+ return isIdentifyString(value, true);
}
- String packageName = value.substring(value.indexOf('=') + 1,
value.length());
- return isIdentifyString(packageName);
+ String packageName = value.substring(idx + 1, value.length());
+ return isIdentifyString(packageName, true);
}
diff --git
a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/WADLToJavaTest.java
b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/WADLToJavaTest.java
index 566ff01..6d4f979 100644
---
a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/WADLToJavaTest.java
+++
b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/WADLToJavaTest.java
@@ -48,6 +48,8 @@ public class WADLToJavaTest extends ProcessorTestBase {
"custom.service",
"-tMap",
"{http://www.w3.org/2001/XMLSchema}date=java.util.List..String",
+ "-tMap",
+ "{http://www.w3.org/2001/XMLSchema}base64Binary=byte[]",
"-async getName,delete",
"-inheritResourceParams first",
"-compile",
diff --git a/tools/wadlto/jaxrs/src/test/resources/wadl/bookstore.xml
b/tools/wadlto/jaxrs/src/test/resources/wadl/bookstore.xml
index 69a8108..844cf27 100644
--- a/tools/wadlto/jaxrs/src/test/resources/wadl/bookstore.xml
+++ b/tools/wadlto/jaxrs/src/test/resources/wadl/bookstore.xml
@@ -64,7 +64,7 @@
<param name="enumType" style="query"
type="prefix1:enumType"/>
<param name="a" style="query" type="xs:int"/>
<param name="c.a" style="query" type="xs:int"/>
- <param name="c.b" style="query" type="xs:int"/>
+ <param name="c.b" style="query" type="xs:base64Binary"/>
<param name="c.d.a" style="query" type="xs:dateTime"/>
<param name="option" default="A" style="query"
required="true">
<option value="A"/>