Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 2C3DC200B68 for ; Fri, 5 Aug 2016 02:31:09 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 0E681160AB0; Fri, 5 Aug 2016 00:31:09 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 56A0C160AAE for ; Fri, 5 Aug 2016 02:31:08 +0200 (CEST) Received: (qmail 58042 invoked by uid 500); 5 Aug 2016 00:31:07 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 57912 invoked by uid 99); 5 Aug 2016 00:31:07 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Aug 2016 00:31:07 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 2C987E0B40; Fri, 5 Aug 2016 00:31:07 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: reta@apache.org To: commits@cxf.apache.org Date: Fri, 05 Aug 2016 00:31:08 -0000 Message-Id: <1d52c22f7009486e833b3e15c31aeb4c@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [2/2] cxf git commit: CXF-6995: Fix the overlap between ResourceUtils.createApplication and JAXRSCdiResourceExtension beans discovery archived-at: Fri, 05 Aug 2016 00:31:09 -0000 CXF-6995: Fix the overlap between ResourceUtils.createApplication and JAXRSCdiResourceExtension beans discovery Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/cb405d42 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/cb405d42 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/cb405d42 Branch: refs/heads/master Commit: cb405d4275a5cf30187c4fbf957dbbb70a9eeacf Parents: 6becb31 Author: reta Authored: Thu Aug 4 20:14:33 2016 -0400 Committer: reta Committed: Thu Aug 4 20:30:02 2016 -0400 ---------------------------------------------------------------------- .../cxf/cdi/JAXRSCdiResourceExtension.java | 26 ++++++-------------- 1 file changed, 7 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/cb405d42/integration/cdi/src/main/java/org/apache/cxf/cdi/JAXRSCdiResourceExtension.java ---------------------------------------------------------------------- diff --git a/integration/cdi/src/main/java/org/apache/cxf/cdi/JAXRSCdiResourceExtension.java b/integration/cdi/src/main/java/org/apache/cxf/cdi/JAXRSCdiResourceExtension.java index 99f6d87..e674f45 100644 --- a/integration/cdi/src/main/java/org/apache/cxf/cdi/JAXRSCdiResourceExtension.java +++ b/integration/cdi/src/main/java/org/apache/cxf/cdi/JAXRSCdiResourceExtension.java @@ -22,8 +22,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.Map; import java.util.List; +import java.util.Map; import java.util.ServiceLoader; import java.util.Set; @@ -150,42 +150,30 @@ public class JAXRSCdiResourceExtension implements Extension { private JAXRSServerFactoryBean createFactoryInstance(final Application application, final BeanManager beanManager) { final JAXRSServerFactoryBean instance = ResourceUtils.createApplication(application, false, false); - final Map< Class< ? >, List< Object > > classified = classifySingletons(application, beanManager); + final Map< Class< ? >, List< Object > > classified = classes2singletons(application, beanManager); instance.setServiceBeans(classified.get(Path.class)); instance.setProviders(classified.get(Provider.class)); - instance.setFeatures(CastUtils.cast(classified.get(Feature.class), Feature.class)); + instance.getFeatures().addAll(CastUtils.cast(classified.get(Feature.class), Feature.class)); instance.setBus(bus); return instance; } /** - * JAX-RS application has defined singletons as being instances of any providers, resources and features. + * JAX-RS application has defined singletons as being classes of any providers, resources and features. * In the JAXRSServerFactoryBean, those should be split around several method calls depending on instance * type. At the moment, only the Feature is CXF-specific and should be replaced by JAX-RS Feature implementation. * @param application the application instance - * @return classified singletons by instance types + * @return classified instances of classes by instance types */ - private Map< Class< ? >, List< Object > > classifySingletons(final Application application, + private Map< Class< ? >, List< Object > > classes2singletons(final Application application, final BeanManager beanManager) { - final Set singletons = application.getSingletons(); - final Map< Class< ? >, List< Object > > classified = - new HashMap<>(); + final Map< Class< ? >, List< Object > > classified = new HashMap<>(); classified.put(Feature.class, new ArrayList<>()); classified.put(Provider.class, new ArrayList<>()); classified.put(Path.class, new ArrayList<>()); - for (final Object singleton: singletons) { - if (singleton instanceof Feature) { - classified.get(Feature.class).add(singleton); - } else if (singleton.getClass().isAnnotationPresent(Provider.class)) { - classified.get(Provider.class).add(singleton); - } else if (singleton.getClass().isAnnotationPresent(Path.class)) { - classified.get(Path.class).add(singleton); - } - } - // now loop through the classes Set> classes = application.getClasses(); if (!classes.isEmpty()) {