You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/02/20 05:35:29 UTC

[camel] branch master updated: CAMEL-14589: camel-cxf - Service beans can only be set via context. Thanks to Jens Kleine-Herzbruch for the patch.

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 323b2ee  CAMEL-14589: camel-cxf - Service beans can only be set via context. Thanks to Jens Kleine-Herzbruch for the patch.
323b2ee is described below

commit 323b2ee622614fd34488ba74ec63a03b049c03b2
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Feb 20 06:34:54 2020 +0100

    CAMEL-14589: camel-cxf - Service beans can only be set via context. Thanks to Jens Kleine-Herzbruch for the patch.
---
 .../camel/component/cxf/jaxrs/CxfRsEndpoint.java   | 25 ++++++++++++++++------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
index 01ac3d6..52987dc 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
@@ -84,8 +84,9 @@ public class CxfRsEndpoint extends DefaultEndpoint implements HeaderFilterStrate
     private String address;
     @UriParam
     private List<Class<?>> resourceClasses;
-    @UriParam(label = "consumer,advanced")
-    private String serviceBeans;
+    @UriParam(label = "consumer,advanced", javaType = "java.lang.String")
+    private List<Object> serviceBeans = new LinkedList<>();
+    private String serviceBeansRef;
     @UriParam
     private String modelRef;
     @UriParam(label = "consumer", defaultValue = "Default")
@@ -248,10 +249,12 @@ public class CxfRsEndpoint extends DefaultEndpoint implements HeaderFilterStrate
         if (getResourceClasses() != null) {
             sfb.setResourceClasses(getResourceClasses());
         }
-        if (serviceBeans != null) {
-            List<Object> beans = EndpointHelper.resolveReferenceListParameter(getCamelContext(), serviceBeans, Object.class);
-            sfb.setServiceBeans(beans);
+
+        List<Object> beans = new ArrayList<>(serviceBeans);
+        if (serviceBeansRef != null) {
+            beans.addAll(EndpointHelper.resolveReferenceListParameter(getCamelContext(), serviceBeansRef, Object.class));
         }
+        sfb.setServiceBeans(beans);
 
         // setup the resource providers for interfaces
         List<ClassResourceInfo> cris = sfb.getServiceFactory().getClassResourceInfo();
@@ -438,7 +441,7 @@ public class CxfRsEndpoint extends DefaultEndpoint implements HeaderFilterStrate
         setResourceClasses(Arrays.asList(classes));
     }
 
-    public String getServiceBeans() {
+    public List<?> getServiceBeans() {
         return serviceBeans;
     }
 
@@ -447,7 +450,15 @@ public class CxfRsEndpoint extends DefaultEndpoint implements HeaderFilterStrate
      * Multiple beans can be separated by comma
      */
     public void setServiceBeans(String beans) {
-        this.serviceBeans = beans;
+        this.serviceBeansRef = beans;
+    }
+
+    public void setServiceBeans(List<?> beans) {
+        this.serviceBeans.addAll(beans);
+    }
+
+    public void setServiceBean(Object bean) {
+        this.serviceBeans.add(bean);
     }
 
     /**