You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2018/03/21 17:13:55 UTC

[cxf] branch master updated (effefb0 -> f4a293c)

This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git.


    from effefb0  tests for default injections
     new a8a9877  [CXF-7669/CXF-7520] Fix JSONProvider that may be escaping strings via XML escape rules
     new 60e02ba  [CXF-7670] Consider the non-synthetic/bridge methods first, then re-consider the bridge/synthetics if needed
     new f4a293c  Fix some eclipse warnings

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/org/apache/cxf/common/jaxb/JAXBUtils.java |  4 +++-
 .../java/org/apache/cxf/cdi/ContextResolved.java   |  2 +-
 .../cxf/cdi/DelegateContextAnnotatedType.java      |  1 +
 .../cxf/jaxrs/provider/AbstractJAXBProvider.java   |  1 -
 .../cxf/jaxrs/provider/JAXBElementProvider.java    |  4 +++-
 .../apache/cxf/jaxrs/provider/ProviderFactory.java |  1 +
 .../cxf/jaxrs/provider/XSLTJaxbProvider.java       |  1 +
 .../org/apache/cxf/jaxrs/utils/ResourceUtils.java  | 24 +++++++++++++++-------
 .../cxf/jaxrs/provider/json/JSONProvider.java      |  1 +
 .../apache/cxf/systests/cdi/base/Injections.java   |  5 +++--
 .../systest/jaxrs/JAXRSClientServerBookTest.java   | 12 ++++++++---
 11 files changed, 40 insertions(+), 16 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
dkulp@apache.org.

[cxf] 03/03: Fix some eclipse warnings

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit f4a293c5291c9cccd1ffed29fcd69dadf6c31de5
Author: Daniel Kulp <dk...@apache.org>
AuthorDate: Wed Mar 21 13:13:40 2018 -0400

    Fix some eclipse warnings
---
 .../cdi/src/main/java/org/apache/cxf/cdi/ContextResolved.java        | 2 +-
 .../main/java/org/apache/cxf/cdi/DelegateContextAnnotatedType.java   | 1 +
 .../src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java | 1 +
 .../src/main/java/org/apache/cxf/systests/cdi/base/Injections.java   | 5 +++--
 4 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/integration/cdi/src/main/java/org/apache/cxf/cdi/ContextResolved.java b/integration/cdi/src/main/java/org/apache/cxf/cdi/ContextResolved.java
index 932467e..94d43d9 100644
--- a/integration/cdi/src/main/java/org/apache/cxf/cdi/ContextResolved.java
+++ b/integration/cdi/src/main/java/org/apache/cxf/cdi/ContextResolved.java
@@ -47,6 +47,6 @@ public @interface ContextResolved {
     ContextResolved LITERAL = new ContextResolvedLiteral();
 
     final class ContextResolvedLiteral extends AnnotationLiteral<ContextResolved> implements ContextResolved {
-
+        private static final long serialVersionUID = 1L;
     }
 }
diff --git a/integration/cdi/src/main/java/org/apache/cxf/cdi/DelegateContextAnnotatedType.java b/integration/cdi/src/main/java/org/apache/cxf/cdi/DelegateContextAnnotatedType.java
index 437a39f..792a562 100644
--- a/integration/cdi/src/main/java/org/apache/cxf/cdi/DelegateContextAnnotatedType.java
+++ b/integration/cdi/src/main/java/org/apache/cxf/cdi/DelegateContextAnnotatedType.java
@@ -179,6 +179,7 @@ final class DelegateContextAnnotatedType<X> implements AnnotatedType<X> {
     }
 
     private static final class InjectLiteral extends AnnotationLiteral<Inject> implements Inject {
+        private static final long serialVersionUID = 1L;
 
     }
 }
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
index e8e7a87..e62d339 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
@@ -1409,6 +1409,7 @@ public abstract class ProviderFactory {
         return null;
     }
 
+    @SuppressWarnings("unchecked")
     public void setProviderComparator(Comparator<?> providerComparator) {
         this.providerComparator = providerComparator;
 
diff --git a/systests/cdi/base/src/main/java/org/apache/cxf/systests/cdi/base/Injections.java b/systests/cdi/base/src/main/java/org/apache/cxf/systests/cdi/base/Injections.java
index 7e2391c..5e6a7c1 100644
--- a/systests/cdi/base/src/main/java/org/apache/cxf/systests/cdi/base/Injections.java
+++ b/systests/cdi/base/src/main/java/org/apache/cxf/systests/cdi/base/Injections.java
@@ -40,6 +40,7 @@ import javax.ws.rs.ext.Providers;
 import org.apache.cxf.cdi.ContextResolved;
 
 @ApplicationScoped
+@SuppressWarnings("unused")
 public class Injections {
     /* this one is not supposed to work in the systests
     @Inject
@@ -86,11 +87,11 @@ public class Injections {
     private Providers cxfProviders; //NOPMD
 
     @Inject
-    private ContextResolver contextResolver; //NOPMD
+    private ContextResolver<?> contextResolver; //NOPMD
 
     @Inject
     @ContextResolved
-    private ContextResolver cxfContextResolver; //NOPMD
+    private ContextResolver<?> cxfContextResolver; //NOPMD
 
     @Inject
     private HttpServletRequest httpServletRequest; //NOPMD

-- 
To stop receiving notification emails like this one, please contact
dkulp@apache.org.

[cxf] 01/03: [CXF-7669/CXF-7520] Fix JSONProvider that may be escaping strings via XML escape rules

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit a8a9877e7c5ca191b2f584b33a50c324be2a2bd7
Author: Daniel Kulp <dk...@apache.org>
AuthorDate: Wed Mar 21 10:41:02 2018 -0400

    [CXF-7669/CXF-7520] Fix JSONProvider that may be escaping strings via XML escape rules
---
 core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java |  4 +++-
 .../org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java  |  1 -
 .../org/apache/cxf/jaxrs/provider/JAXBElementProvider.java   |  4 +++-
 .../java/org/apache/cxf/jaxrs/provider/XSLTJaxbProvider.java |  1 +
 .../org/apache/cxf/jaxrs/provider/json/JSONProvider.java     |  1 +
 .../apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java  | 12 +++++++++---
 6 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
index fa28ee2..cf0a4d9 100644
--- a/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
+++ b/core/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
@@ -1563,7 +1563,9 @@ public final class JAXBUtils {
     public static void setEscapeHandler(Marshaller marshaller, Object escapeHandler) {
         try {
             String postFix = getPostfix(marshaller.getClass());
-            marshaller.setProperty("com.sun.xml" + postFix + ".bind.characterEscapeHandler", escapeHandler);
+            if (postFix != null) {
+                marshaller.setProperty("com.sun.xml" + postFix + ".bind.characterEscapeHandler", escapeHandler);
+            }
         } catch (PropertyException e) {
             LOG.log(Level.INFO, "Failed to set MinumEscapeHandler to jaxb marshaller", e);
         }
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
index e587b57..4b326ff 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
@@ -627,7 +627,6 @@ public abstract class AbstractJAXBProvider<T> extends AbstractConfigurableProvid
         if (marshallerListener != null) {
             marshaller.setListener(marshallerListener);
         }
-        JAXBUtils.setMinimumEscapeHandler(marshaller);
         validateObjectIfNeeded(marshaller, cls, obj);
         return marshaller;
     }
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
index 966e339..e03a8b4 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
@@ -542,7 +542,7 @@ public class JAXBElementProvider<T> extends AbstractJAXBProvider<T>  {
         return null;
     }
     //CHECKSTYLE:OFF
-    protected void marshal(Object obj, Class<?> cls, Type genericType,
+    protected final void marshal(Object obj, Class<?> cls, Type genericType,
                            String enc, OutputStream os,
                            Annotation[] anns, MediaType mt, Marshaller ms)
         throws Exception {
@@ -611,6 +611,7 @@ public class JAXBElementProvider<T> extends AbstractJAXBProvider<T>  {
     protected void marshalToOutputStream(Marshaller ms, Object obj, OutputStream os,
                                          Annotation[] anns, MediaType mt)
         throws Exception {
+        org.apache.cxf.common.jaxb.JAXBUtils.setMinimumEscapeHandler(ms);
         if (os == null) {
             Writer writer = getStreamHandlerFromCurrentMessage(Writer.class);
             if (writer == null) {
@@ -627,6 +628,7 @@ public class JAXBElementProvider<T> extends AbstractJAXBProvider<T>  {
     protected void marshalToWriter(Marshaller ms, Object obj, XMLStreamWriter writer,
                                    Annotation[] anns, MediaType mt)
         throws Exception {
+        org.apache.cxf.common.jaxb.JAXBUtils.setNoEscapeHandler(ms);
         ms.marshal(obj, writer);
     }
 
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProvider.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProvider.java
index d85a0da..e91f88e 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProvider.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProvider.java
@@ -347,6 +347,7 @@ public class XSLTJaxbProvider<T> extends JAXBElementProvider<T> {
             super.marshalToOutputStream(ms, obj, os, anns, mt);
             return;
         }
+        org.apache.cxf.common.jaxb.JAXBUtils.setMinimumEscapeHandler(ms);
         TransformerHandler th = null;
         try {
             th = factory.newTransformerHandler(t);
diff --git a/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/json/JSONProvider.java b/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/json/JSONProvider.java
index 6926f54..dabe3ed 100644
--- a/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/json/JSONProvider.java
+++ b/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/json/JSONProvider.java
@@ -501,6 +501,7 @@ public class JSONProvider<T> extends AbstractJAXBProvider<T>  {
         if (namespaceMap.size() > 1 || namespaceMap.size() == 1 && !namespaceMap.containsKey(JSONUtils.XSI_URI)) {
             setNamespaceMapper(ms, namespaceMap);
         }
+        org.apache.cxf.common.jaxb.JAXBUtils.setNoEscapeHandler(ms);
         ms.marshal(actualObject, writer);
         writer.close();
         if (os != actualOs) {
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
index 61dba7c..3fb110c 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java
@@ -946,7 +946,7 @@ public class JAXRSClientServerBookTest extends AbstractBusClientServerTestBase {
         }
         assertTrue("Did not contain JSESSIONID", hasJSESSION);
         assertTrue("Did not contain dummy", hasDummy1);
-        assertTrue("Did not contain dummy2", hasDummy1);
+        assertTrue("Did not contain dummy2", hasDummy2);
     }
 
 
@@ -2087,10 +2087,16 @@ public class JAXRSClientServerBookTest extends AbstractBusClientServerTestBase {
     @Test
     public void testEchoBookElementWebClient() throws Exception {
         WebClient wc = WebClient.create("http://localhost:" + PORT + "/bookstore/books/element/echo");
+        wc.type("application/xml").accept("application/json");
+        Book book = wc.post(new Book("\"Jack\" & \"Jill\"", 123L), Book.class);
+        assertEquals(123L, book.getId());
+        assertEquals("\"Jack\" & \"Jill\"", book.getName());
+        
+        wc = WebClient.create("http://localhost:" + PORT + "/bookstore/books/element/echo");
         wc.type("application/xml").accept("application/xml");
-        Book book = wc.post(new Book("CXF", 123L), Book.class);
+        book = wc.post(new Book("Jack & Jill", 123L), Book.class);
         assertEquals(123L, book.getId());
-        assertEquals("CXF", book.getName());
+        assertEquals("Jack & Jill", book.getName());
     }
 
     @Test

-- 
To stop receiving notification emails like this one, please contact
dkulp@apache.org.

[cxf] 02/03: [CXF-7670] Consider the non-synthetic/bridge methods first, then re-consider the bridge/synthetics if needed

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 60e02bacfcb09ff105d083ac3f49d0cd03c21494
Author: Daniel Kulp <dk...@apache.org>
AuthorDate: Wed Mar 21 12:41:01 2018 -0400

    [CXF-7670] Consider the non-synthetic/bridge methods first, then re-consider the bridge/synthetics if needed
---
 .../org/apache/cxf/jaxrs/utils/ResourceUtils.java  | 24 +++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java
index 0f044e8..62ead3b 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/ResourceUtils.java
@@ -314,14 +314,24 @@ public final class ResourceUtils {
         final Set<Method> annotatedMethods = new HashSet<>();
 
         for (Method m : serviceClass.getMethods()) {
-
-            Method annotatedMethod = AnnotationUtils.getAnnotatedMethod(serviceClass, m);
-
-            if (!annotatedMethods.contains(annotatedMethod)) {
-                evaluateResourceMethod(cri, enableStatic, md, m, annotatedMethod);
-                annotatedMethods.add(annotatedMethod);
+            if (!m.isBridge() && !m.isSynthetic()) {
+                //do real methods first
+                Method annotatedMethod = AnnotationUtils.getAnnotatedMethod(serviceClass, m);
+                if (!annotatedMethods.contains(annotatedMethod)) {
+                    evaluateResourceMethod(cri, enableStatic, md, m, annotatedMethod);
+                    annotatedMethods.add(annotatedMethod);
+                }
+            }
+        }
+        for (Method m : serviceClass.getMethods()) {
+            if (m.isBridge() || m.isSynthetic()) {
+                //if a bridge/synthetic method isn't already mapped to something, go ahead and do it
+                Method annotatedMethod = AnnotationUtils.getAnnotatedMethod(serviceClass, m);
+                if (!annotatedMethods.contains(annotatedMethod)) {
+                    evaluateResourceMethod(cri, enableStatic, md, m, annotatedMethod);
+                    annotatedMethods.add(annotatedMethod);
+                }
             }
-
         }
         cri.setMethodDispatcher(md);
     }

-- 
To stop receiving notification emails like this one, please contact
dkulp@apache.org.