You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by de...@apache.org on 2017/09/25 12:21:26 UTC
[cxf] branch 3.1.x-fixes updated: [CXF-7515] fix and testcase for
classes in default package
This is an automated email from the ASF dual-hosted git repository.
deki pushed a commit to branch 3.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/3.1.x-fixes by this push:
new 4115105 [CXF-7515] fix and testcase for classes in default package
4115105 is described below
commit 41151051f82f4b8ac2a2f3c51a081a7cdafaa562
Author: Dennis Kieselhorst <de...@apache.org>
AuthorDate: Mon Sep 25 14:09:34 2017 +0200
[CXF-7515] fix and testcase for classes in default package
---
.../src/main/java/org/apache/cxf/jaxb/Utils.java | 15 ++++++----
.../src/test/java/SampleClassInDefaultPackage.java | 34 ++++++++++++++++++++++
.../org/apache/cxf/jaxb/JAXBDataBindingTest.java | 11 +++++++
3 files changed, 54 insertions(+), 6 deletions(-)
diff --git a/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java b/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java
index 40de666..3899f50 100644
--- a/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java
+++ b/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/Utils.java
@@ -291,12 +291,15 @@ final class Utils {
adapter = m.getReturnType().getAnnotation(XmlJavaTypeAdapter.class);
}
if (adapter == null) {
- XmlJavaTypeAdapters adapters = m.getDeclaringClass().getPackage().getAnnotation(XmlJavaTypeAdapters.class);
- if (adapters != null) {
- for (XmlJavaTypeAdapter candidate : adapters.value()) {
- if (candidate != null && candidate.type().equals(m.getGenericReturnType())) {
- adapter = candidate;
- break;
+ Package packageDeclaration = m.getDeclaringClass().getPackage();
+ if (packageDeclaration != null) {
+ XmlJavaTypeAdapters adapters = packageDeclaration.getAnnotation(XmlJavaTypeAdapters.class);
+ if (adapters != null) {
+ for (XmlJavaTypeAdapter candidate : adapters.value()) {
+ if (candidate != null && candidate.type().equals(m.getGenericReturnType())) {
+ adapter = candidate;
+ break;
+ }
}
}
}
diff --git a/rt/databinding/jaxb/src/test/java/SampleClassInDefaultPackage.java b/rt/databinding/jaxb/src/test/java/SampleClassInDefaultPackage.java
new file mode 100644
index 0000000..9833fb4
--- /dev/null
+++ b/rt/databinding/jaxb/src/test/java/SampleClassInDefaultPackage.java
@@ -0,0 +1,34 @@
+/**
+ * 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.
+ */
+//CHECKSTYLE:OFF
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class SampleClassInDefaultPackage {
+ private String attribute = "test";
+
+ public String getAttribute() {
+ return attribute;
+ }
+
+ public void setAttribute(String attribute) {
+ this.attribute = attribute;
+ }
+}
+//CHECKSTYLE:ON
diff --git a/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java b/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java
index 980f2de..e75ada7 100644
--- a/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java
+++ b/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java
@@ -336,6 +336,17 @@ public class JAXBDataBindingTest extends Assert {
}
+ @Test
+ public void testClassInDefaultPackage() throws Exception {
+ Class<?> sampleClassInDefaultPackage = Class.forName("SampleClassInDefaultPackage");
+ Set<Class<?>> classes = new HashSet<>();
+ Collection<Object> typeReferences = new ArrayList<>();
+ Map<String, Object> props = new HashMap<>();
+ JAXBContextInitializer init = new JAXBContextInitializer(null, classes, typeReferences, props);
+ init.addClass(sampleClassInDefaultPackage);
+ assertEquals(1, classes.size());
+ }
+
@XmlRootElement
public static class Person {
@XmlAttribute
--
To stop receiving notification emails like this one, please contact
['"commits@cxf.apache.org" <co...@cxf.apache.org>'].