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]>'].