Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A8DEE1057C for ; Mon, 30 Dec 2013 18:39:02 +0000 (UTC) Received: (qmail 48670 invoked by uid 500); 30 Dec 2013 18:37:17 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 48594 invoked by uid 500); 30 Dec 2013 18:37: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 48479 invoked by uid 99); 30 Dec 2013 18:36:56 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Dec 2013 18:36:56 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Dec 2013 18:36:53 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 17E7F23888E2; Mon, 30 Dec 2013 18:36:32 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1554292 - in /cxf/trunk: core/src/main/java/org/apache/cxf/endpoint/ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ systests/jaxrs/src/test/resources/jaxrs/WEB-INF/ Date: Mon, 30 Dec 2013 18:36:31 -0000 To: commits@cxf.apache.org From: sergeyb@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20131230183632.17E7F23888E2@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: sergeyb Date: Mon Dec 30 18:36:31 2013 New Revision: 1554292 URL: http://svn.apache.org/r1554292 Log: [CXF-5362] Allowing for more flexible setting of JAX-RS service beans and providers with the code suggested by Dan Modified: cxf/trunk/core/src/main/java/org/apache/cxf/endpoint/AbstractEndpointFactory.java cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServerFactoryBean.java cxf/trunk/systests/jaxrs/src/test/resources/jaxrs/WEB-INF/beans.xml Modified: cxf/trunk/core/src/main/java/org/apache/cxf/endpoint/AbstractEndpointFactory.java URL: http://svn.apache.org/viewvc/cxf/trunk/core/src/main/java/org/apache/cxf/endpoint/AbstractEndpointFactory.java?rev=1554292&r1=1554291&r2=1554292&view=diff ============================================================================== --- cxf/trunk/core/src/main/java/org/apache/cxf/endpoint/AbstractEndpointFactory.java (original) +++ cxf/trunk/core/src/main/java/org/apache/cxf/endpoint/AbstractEndpointFactory.java Mon Dec 30 18:36:31 2013 @@ -19,6 +19,7 @@ package org.apache.cxf.endpoint; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.LinkedList; import java.util.List; @@ -237,6 +238,16 @@ public abstract class AbstractEndpointFa } } + protected static void addToBeans(Collection beans, Object o) { + if (o instanceof Collection) { + for (Object o2: (Collection)o) { + addToBeans(beans, o2); + } + } else { + beans.add(o); + } + } + protected boolean initializeAnnotationInterceptors(AnnotationInterceptors provider, Endpoint ep) { boolean hasAnnotation = false; if (provider.getInFaultInterceptors() != null) { Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java?rev=1554292&r1=1554291&r2=1554292&view=diff ============================================================================== --- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java (original) +++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/AbstractJAXRSFactoryBean.java Mon Dec 30 18:36:31 2013 @@ -18,6 +18,7 @@ */ package org.apache.cxf.jaxrs; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; @@ -282,7 +283,9 @@ public class AbstractJAXRSFactoryBean ex * @param entityProviders the entityProviders */ public void setProviders(List providers) { - this.entityProviders.addAll(providers); + List newBeans = new ArrayList(); + addToBeans(newBeans, providers); + this.entityProviders.addAll(newBeans); } /** Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServerFactoryBean.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServerFactoryBean.java?rev=1554292&r1=1554291&r2=1554292&view=diff ============================================================================== --- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServerFactoryBean.java (original) +++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServerFactoryBean.java Mon Dec 30 18:36:31 2013 @@ -19,6 +19,7 @@ package org.apache.cxf.jaxrs; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; @@ -323,8 +324,10 @@ public class JAXRSServerFactoryBean exte * @param beans the list of resource instances */ public void setServiceBeans(List beans) { - serviceFactory.setResourceClassesFromBeans(beans); - } + List newBeans = new ArrayList(); + addToBeans(newBeans, beans); + serviceFactory.setResourceClassesFromBeans(newBeans); + } /** * Sets the provider managing the life-cycle of the given resource class Modified: cxf/trunk/systests/jaxrs/src/test/resources/jaxrs/WEB-INF/beans.xml URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/resources/jaxrs/WEB-INF/beans.xml?rev=1554292&r1=1554291&r2=1554292&view=diff ============================================================================== --- cxf/trunk/systests/jaxrs/src/test/resources/jaxrs/WEB-INF/beans.xml (original) +++ cxf/trunk/systests/jaxrs/src/test/resources/jaxrs/WEB-INF/beans.xml Mon Dec 30 18:36:31 2013 @@ -88,12 +88,18 @@ - + - + + + + + + +