You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2017/01/26 16:41:51 UTC
cxf git commit: [CXF-7228] Using ClassHelper to get the real provider
info class in some cases
Repository: cxf
Updated Branches:
refs/heads/master f8439a921 -> bf5dee134
[CXF-7228] Using ClassHelper to get the real provider info class in some cases
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/bf5dee13
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/bf5dee13
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/bf5dee13
Branch: refs/heads/master
Commit: bf5dee1340b680f92f02d63d4801ed40af540dc5
Parents: f8439a9
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Thu Jan 26 16:41:31 2017 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Thu Jan 26 16:41:31 2017 +0000
----------------------------------------------------------------------
.../apache/cxf/jaxrs/provider/ProviderFactory.java | 3 ++-
.../cxf/jaxrs/provider/ServerProviderFactory.java | 14 +++++++++-----
2 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/bf5dee13/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
----------------------------------------------------------------------
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 fd850de..a038f84 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
@@ -1224,7 +1224,8 @@ public abstract class ProviderFactory {
names = ((FilterProviderInfo<?>)p).getNameBinding();
}
if (names == null) {
- names = AnnotationUtils.getNameBindings(p.getProvider().getClass().getAnnotations());
+ Class<?> pClass = ClassHelper.getRealClass(p.getBus(), p.getProvider());
+ names = AnnotationUtils.getNameBindings(pClass.getAnnotations());
}
if (names.isEmpty()) {
names = Collections.singleton(DEFAULT_FILTER_NAME_BINDING);
http://git-wip-us.apache.org/repos/asf/cxf/blob/bf5dee13/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ServerProviderFactory.java
----------------------------------------------------------------------
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 13cae5a..9c8ef9f 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
@@ -563,8 +563,9 @@ public final class ServerProviderFactory extends ProviderFactory {
}
private boolean isRegistered(Collection<?> list, Class<?> cls) {
Collection<ProviderInfo<?>> list2 = CastUtils.cast(list);
- for (ProviderInfo<?> pi : list2) {
- if (cls.isAssignableFrom(pi.getProvider().getClass())) {
+ for (ProviderInfo<?> p : list2) {
+ Class<?> pClass = ClassHelper.getRealClass(p.getBus(), p.getProvider());
+ if (cls.isAssignableFrom(pClass)) {
return true;
}
}
@@ -572,9 +573,12 @@ public final class ServerProviderFactory extends ProviderFactory {
}
private Integer getPriority(Collection<?> list, Class<?> cls, Class<?> filterClass) {
Collection<ProviderInfo<?>> list2 = CastUtils.cast(list);
- for (ProviderInfo<?> pi : list2) {
- if (pi instanceof FilterProviderInfo && pi.getProvider().getClass().isAssignableFrom(cls)) {
- return ((FilterProviderInfo<?>)pi).getPriority(filterClass);
+ for (ProviderInfo<?> p : list2) {
+ if (p instanceof FilterProviderInfo) {
+ Class<?> pClass = ClassHelper.getRealClass(p.getBus(), p.getProvider());
+ if (cls.isAssignableFrom(pClass)) {
+ return ((FilterProviderInfo<?>)p).getPriority(filterClass);
+ }
}
}
return Priorities.USER;