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

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


The following commit(s) were added to refs/heads/master by this push:
     new 4ab4c59  [CXF-7609] Initial updates
4ab4c59 is described below

commit 4ab4c5904e98275788accdca1dc9b225e6acdc91
Author: Sergey Beryozkin <[email protected]>
AuthorDate: Fri Jan 12 18:04:18 2018 +0000

    [CXF-7609] Initial updates
---
 .../cxf/jaxrs/provider/ServerProviderFactory.java  | 23 +++++++++++-----------
 .../cxf/jaxrs/client/ClientProviderFactory.java    | 22 +++++++++------------
 2 files changed, 20 insertions(+), 25 deletions(-)

diff --git 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
index ee12a1d..8bb8974 100644
--- 
a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
+++ 
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
@@ -30,6 +30,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
 
 import javax.ws.rs.BeanParam;
 import javax.ws.rs.Priorities;
@@ -183,20 +184,18 @@ public final class ServerProviderFactory extends 
ProviderFactory {
     @SuppressWarnings("unchecked")
     public <T extends Throwable> ExceptionMapper<T> 
createExceptionMapper(Class<?> exceptionType,
                                                                           
Message m) {
-        List<ProviderInfo<ExceptionMapper<?>>> candidates = new 
LinkedList<ProviderInfo<ExceptionMapper<?>>>();
-        for (ProviderInfo<ExceptionMapper<?>> em : exceptionMappers) {
-            if (handleMapper(em, exceptionType, m, ExceptionMapper.class, 
true)) {
-                candidates.add(em);
-            }
-        }
-        if (candidates.size() == 0) {
-            return null;
-        }
+        
         boolean makeDefaultWaeLeastSpecific =
             MessageUtils.getContextualBoolean(m, 
MAKE_DEFAULT_WAE_LEAST_SPECIFIC, false);
-        Collections.sort(candidates, new 
ExceptionProviderInfoComparator(exceptionType,
-                                                                         
makeDefaultWaeLeastSpecific));
-        return (ExceptionMapper<T>) candidates.get(0).getProvider();
+        
+        List<ExceptionMapper<?>> candidates = exceptionMappers.stream()
+                .filter(em -> handleMapper(em, exceptionType, m, 
ExceptionMapper.class, true))
+                .sorted(new ExceptionProviderInfoComparator(exceptionType,
+                                                            
makeDefaultWaeLeastSpecific))
+                .map(ProviderInfo::getProvider)
+                .collect(Collectors.toList());
+        
+        return candidates.isEmpty() ? null : 
(ExceptionMapper<T>)candidates.get(0);
     }
 
 
diff --git 
a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProviderFactory.java
 
b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProviderFactory.java
index ff251ce..9abd320 100644
--- 
a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProviderFactory.java
+++ 
b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProviderFactory.java
@@ -20,8 +20,8 @@ package org.apache.cxf.jaxrs.client;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import javax.ws.rs.client.ClientRequestFilter;
 import javax.ws.rs.client.ClientResponseFilter;
@@ -103,18 +103,14 @@ public final class ClientProviderFactory extends 
ProviderFactory {
     public <T extends Throwable> ResponseExceptionMapper<T> 
createResponseExceptionMapper(
                                  Message m, Class<?> paramType) {
 
-        List<ResponseExceptionMapper<?>> candidates = new 
LinkedList<ResponseExceptionMapper<?>>();
-
-        for (ProviderInfo<ResponseExceptionMapper<?>> em : 
responseExceptionMappers) {
-            if (handleMapper(em, paramType, m, ResponseExceptionMapper.class, 
true)) {
-                candidates.add(em.getProvider());
-            }
-        }
-        if (candidates.size() == 0) {
-            return null;
-        }
-        Collections.sort(candidates, new 
ProviderFactory.ClassComparator(paramType));
-        return (ResponseExceptionMapper<T>) candidates.get(0);
+        List<ResponseExceptionMapper<?>> candidates = 
+            responseExceptionMappers.stream()
+                .filter(em -> handleMapper(em, paramType, m, 
ResponseExceptionMapper.class, true))
+                .map(ProviderInfo::getProvider)
+                .sorted(new ProviderFactory.ClassComparator(paramType))
+                .collect(Collectors.toList());
+             
+        return candidates.isEmpty() ? null : 
(ResponseExceptionMapper<T>)candidates.get(0);
     }
 
     @Override

-- 
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].

Reply via email to