You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dk...@apache.org on 2011/09/19 21:09:03 UTC

svn commit: r1172749 - in /camel/branches/camel-2.8.x: ./ components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/ components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/ tests/camel-itest-osgi/ tests/camel-itest-os...

Author: dkulp
Date: Mon Sep 19 19:09:02 2011
New Revision: 1172749

URL: http://svn.apache.org/viewvc?rev=1172749&view=rev
Log:
Merged revisions 1149449 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r1149449 | ningjiang | 2011-07-21 23:50:16 -0400 (Thu, 21 Jul 2011) | 1 line
  
  Merge branch 'CAMEL-4110' into trunk
........

Added:
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/BlueprintSupport.java
      - copied unchanged from r1149449, camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/BlueprintSupport.java
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientBlueprintBean.java
      - copied unchanged from r1149449, camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientBlueprintBean.java
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerBlueprintBean.java
      - copied unchanged from r1149449, camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerBlueprintBean.java
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsBlueprintEndpoint.java
      - copied unchanged from r1149449, camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsBlueprintEndpoint.java
Modified:
    camel/branches/camel-2.8.x/   (props changed)
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/AbstractBeanDefinitionParser.java
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerDefinitionParser.java
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsComponent.java
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
    camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringEndpoint.java
    camel/branches/camel-2.8.x/tests/camel-itest-osgi/pom.xml
    camel/branches/camel-2.8.x/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/AbstractIntegrationTest.java
    camel/branches/camel-2.8.x/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cxf/CxfProxyExampleTest.java

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/AbstractBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/AbstractBeanDefinitionParser.java?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/AbstractBeanDefinitionParser.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/AbstractBeanDefinitionParser.java Mon Sep 19 19:09:02 2011
@@ -17,8 +17,45 @@
 
 package org.apache.camel.component.cxf.blueprint;
 
+import java.util.StringTokenizer;
+
+import org.w3c.dom.Element;
+
+import org.apache.aries.blueprint.ParserContext;
+import org.apache.aries.blueprint.mutable.MutableBeanMetadata;
+import org.apache.camel.component.cxf.CxfBlueprintEndpoint;
+import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.configuration.blueprint.AbstractBPBeanDefinitionParser;
 
 public class AbstractBeanDefinitionParser extends AbstractBPBeanDefinitionParser {
+    public static String getIdOrName(Element elem) {
+        String id = elem.getAttribute("id");
+
+        if (null == id || "".equals(id)) {
+            String names = elem.getAttribute("name");
+            if (null != names) {
+                StringTokenizer st = new StringTokenizer(names, ",");
+                if (st.countTokens() > 0) {
+                    id = st.nextToken();
+                }
+            }
+        }
+        return id;
+    }
+    
+    public MutableBeanMetadata createBeanMetadata(Element element, ParserContext context, Class runtimeClass) {
+        MutableBeanMetadata answer = context.createMetadata(MutableBeanMetadata.class);
+        answer.setRuntimeClass(runtimeClass);
+        answer.addProperty("blueprintContainer", createRef(context, "blueprintContainer"));
+        answer.addProperty("bundleContext", createRef(context, "blueprintBundleContext"));
+        
+        if (!StringUtils.isEmpty(getIdOrName(element))) {
+            answer.setId(getIdOrName(element));
+        } else {
+            // TODO we may need to throw exception for it
+            answer.setId("camel.cxf.endpoint." + runtimeClass.getSimpleName() + "." + context.generateId());
+        }
+        return answer;
+    }
 
 }

Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java Mon Sep 19 19:09:02 2011
@@ -54,6 +54,14 @@ public class CxfNamespaceHandler impleme
             LOG.debug("parsing the cxfEndpoint element");
             answer = new EndpointDefinitionParser().parse(element, context);
         }
+        if ("rsClient".equals(s)) {
+            LOG.debug("parsing the rsClient element");
+            answer = new RsClientDefinitionParser().parse(element, context);
+        }
+        if ("rsServer".equals(s)) {
+            LOG.debug("parsing the rsServer element");
+            answer = new RsServerDefinitionParser().parse(element, context);
+        }
         
         return answer;
     }

Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java Mon Sep 19 19:09:02 2011
@@ -17,9 +17,8 @@
 
 package org.apache.camel.component.cxf.blueprint;
 
-import java.util.StringTokenizer;
-import java.util.concurrent.Callable;
 import javax.xml.namespace.QName;
+
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
@@ -33,35 +32,12 @@ import org.apache.cxf.helpers.DOMUtils;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.blueprint.reflect.Metadata;
 
-public class EndpointDefinitionParser extends AbstractBPBeanDefinitionParser {
-
-    public static String getIdOrName(Element elem) {
-        String id = elem.getAttribute("id");
-
-        if (null == id || "".equals(id)) {
-            String names = elem.getAttribute("name");
-            if (null != names) {
-                StringTokenizer st = new StringTokenizer(names, ",");
-                if (st.countTokens() > 0) {
-                    id = st.nextToken();
-                }
-            }
-        }
-        return id;
-    }
 
+public class EndpointDefinitionParser extends AbstractBeanDefinitionParser {
+    
     public Metadata parse(Element element, ParserContext context) {
-        MutableBeanMetadata endpointConfig = context.createMetadata(MutableBeanMetadata.class);
-        endpointConfig.setRuntimeClass(CxfBlueprintEndpoint.class);
-        endpointConfig.addProperty("blueprintContainer", createRef(context, "blueprintContainer"));
-        endpointConfig.addProperty("bundleContext", createRef(context, "blueprintBundleContext"));
-
-        if (!StringUtils.isEmpty(getIdOrName(element))) {
-            endpointConfig.setId(getIdOrName(element));
-        } else {
-            endpointConfig.setId("camel.cxf.endpoint." + context.generateId());
-        }
-
+        MutableBeanMetadata endpointConfig = createBeanMetadata(element, context, CxfBlueprintEndpoint.class);
+ 
         NamedNodeMap atts = element.getAttributes();
 
         String bus = null;
@@ -119,17 +95,5 @@ public class EndpointDefinitionParser ex
 
         return endpointConfig;
     }
-
-    public static class PassThroughCallable<T> implements Callable<T> {
-
-        private T value;
-
-        public PassThroughCallable(T value) {
-            this.value = value;
-        }
-
-        public T call() throws Exception {
-            return value;
-        }
-    }
+    
 }

Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsClientDefinitionParser.java Mon Sep 19 19:09:02 2011
@@ -17,47 +17,87 @@
 
 package org.apache.camel.component.cxf.blueprint;
 
+import java.util.List;
 import java.util.StringTokenizer;
 
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
 
 import org.apache.aries.blueprint.ParserContext;
 import org.apache.aries.blueprint.mutable.MutableBeanMetadata;
+import org.apache.aries.blueprint.mutable.MutablePassThroughMetadata;
+import org.apache.aries.blueprint.mutable.MutableValueMetadata;
 import org.apache.camel.component.cxf.CxfBlueprintEndpoint;
 import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.configuration.blueprint.AbstractBPBeanDefinitionParser;
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.jaxrs.model.UserResource;
+import org.apache.cxf.jaxrs.utils.ResourceUtils;
+import org.osgi.framework.BundleContext;
 import org.osgi.service.blueprint.reflect.Metadata;
 
 
-public class RsClientDefinitionParser extends AbstractBPBeanDefinitionParser {
+public class RsClientDefinitionParser extends AbstractBeanDefinitionParser {
 
     public Metadata parse(Element element, ParserContext context) {
-        MutableBeanMetadata endpointConfig = context.createMetadata(MutableBeanMetadata.class);
-        endpointConfig.setRuntimeClass(CxfBlueprintEndpoint.class);
-        endpointConfig.addProperty("blueprintContainer", createRef(context, "blueprintContainer"));
-        endpointConfig.addProperty("bundleContext", createRef(context, "blueprintBundleContext"));
-
-        if (!StringUtils.isEmpty(getIdOrName(element))) {
-            endpointConfig.setId(getIdOrName(element));
-        } else {
-            endpointConfig.setId("camel.cxf.endpoint." + context.generateId());
-        }
-
-        return null;
-    }
-
-    public static String getIdOrName(Element elem) {
-        String id = elem.getAttribute("id");
+        MutableBeanMetadata beanMetadata = createBeanMetadata(element, context, RsClientBlueprintBean.class);
+        NamedNodeMap atts = element.getAttributes();
 
-        if (null == id || "".equals(id)) {
-            String names = elem.getAttribute("name");
-            if (null != names) {
-                StringTokenizer st = new StringTokenizer(names, ",");
-                if (st.countTokens() > 0) {
-                    id = st.nextToken();
+        String bus = null;
+        for (int i = 0; i < atts.getLength(); i++) {
+            Attr node = (Attr) atts.item(i);
+            String val = node.getValue();
+            String pre = node.getPrefix();
+            String name = node.getLocalName();
+            if ("bus".equals(name)) {
+                bus = val;
+            } else if (isAttribute(pre, name)) {
+                if ("depends-on".equals(name)) {
+                    beanMetadata.addDependsOn(val);
+                } else if (!"name".equals(name)) {
+                    beanMetadata.addProperty(name, AbstractBPBeanDefinitionParser.createValue(context, val));
                 }
             }
         }
-        return id;
+
+        Element elem = DOMUtils.getFirstElement(element);
+        while (elem != null) {
+            String name = elem.getLocalName();
+            if ("properties".equals(name) || "headers".equals(name)) {
+                Metadata map = parseMapData(context, beanMetadata, elem);
+                beanMetadata.addProperty(name, map);
+            } else if ("binding".equals(name)) {
+                setFirstChildAsProperty(element, context, beanMetadata, "bindingConfig");
+            } else if ("inInterceptors".equals(name) || "inFaultInterceptors".equals(name) || "outInterceptors".equals(name)
+                || "outFaultInterceptors".equals(name) || "features".equals(name) || "schemaLocations".equals(name) || "handlers".equals(name)) {
+                Metadata list = parseListData(context, beanMetadata, elem);
+                beanMetadata.addProperty(name, list);
+            } else if ("features".equals(name) || "providers".equals(name)
+                || "schemaLocations".equals(name) || "modelBeans".equals(name)
+                || "serviceBeans".equals(name)) {
+                Metadata list = parseListData(context, beanMetadata, elem);
+                beanMetadata.addProperty(name, list);
+            } else if ("model".equals(name)) {
+                List<UserResource> resources = ResourceUtils.getResourcesFromElement(elem);
+                MutablePassThroughMetadata value = context.createMetadata(MutablePassThroughMetadata.class);
+                value.setObject(resources);
+                beanMetadata.addProperty(name, value);
+            } else {
+                setFirstChildAsProperty(element, context, beanMetadata, name);
+            }
+        } 
+ 
+        if (StringUtils.isEmpty(bus)) {
+            bus = "cxf";
+        }
+        //Will create a bus if needed...
+
+        beanMetadata.addProperty("bus", getBusRef(context, bus));
+        return beanMetadata;
     }
+
+    
 }

Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerDefinitionParser.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerDefinitionParser.java?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerDefinitionParser.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerDefinitionParser.java Mon Sep 19 19:09:02 2011
@@ -17,6 +17,81 @@
 
 package org.apache.camel.component.cxf.blueprint;
 
-public class RsServerDefinitionParser {
+import java.util.List;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+
+import org.apache.aries.blueprint.ParserContext;
+import org.apache.aries.blueprint.mutable.MutableBeanMetadata;
+import org.apache.aries.blueprint.mutable.MutablePassThroughMetadata;
+import org.apache.camel.component.cxf.CxfBlueprintEndpoint;
+import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.configuration.blueprint.AbstractBPBeanDefinitionParser;
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.jaxrs.model.UserResource;
+import org.apache.cxf.jaxrs.utils.ResourceUtils;
+import org.osgi.service.blueprint.reflect.Metadata;
+
+public class RsServerDefinitionParser extends AbstractBeanDefinitionParser {
+    
+    public Metadata parse(Element element, ParserContext context) {
+        MutableBeanMetadata beanMetadata = createBeanMetadata(element, context, RsServerBlueprintBean.class);
+        NamedNodeMap atts = element.getAttributes();
+
+        String bus = null;
+        for (int i = 0; i < atts.getLength(); i++) {
+            Attr node = (Attr) atts.item(i);
+            String val = node.getValue();
+            String pre = node.getPrefix();
+            String name = node.getLocalName();
+            if ("bus".equals(name)) {
+                bus = val;
+            } else if (isAttribute(pre, name)) {
+                if ("depends-on".equals(name)) {
+                    beanMetadata.addDependsOn(val);
+                } else if (!"name".equals(name)) {
+                    beanMetadata.addProperty(name, AbstractBPBeanDefinitionParser.createValue(context, val));
+                }
+            }
+        }
+
+        Element elem = DOMUtils.getFirstElement(element);
+        while (elem != null) {
+            String name = elem.getLocalName();
+            if ("properties".equals(name)
+                || "extensionMappings".equals(name)
+                || "languageMappings".equals(name)) {
+                Metadata map = parseMapData(context, beanMetadata, elem);
+                beanMetadata.addProperty(name, map);
+            } else if ("binding".equals(name)) {
+                setFirstChildAsProperty(element, context, beanMetadata, "bindingConfig");
+            } else if ("inInterceptors".equals(name) || "inFaultInterceptors".equals(name) || "outInterceptors".equals(name)
+                || "outFaultInterceptors".equals(name) || "features".equals(name) || "schemaLocations".equals(name) || "handlers".equals(name)) {
+                Metadata list = parseListData(context, beanMetadata, elem);
+                beanMetadata.addProperty(name, list);
+            } else if ("features".equals(name) || "providers".equals(name)
+                || "schemaLocations".equals(name) || "modelBeans".equals(name)) {
+                Metadata list = parseListData(context, beanMetadata, elem);
+                beanMetadata.addProperty(name, list);
+            } else if ("model".equals(name)) {
+                List<UserResource> resources = ResourceUtils.getResourcesFromElement(elem);
+                MutablePassThroughMetadata value = context.createMetadata(MutablePassThroughMetadata.class);
+                value.setObject(resources);
+                beanMetadata.addProperty(name, value);
+            } else {
+                setFirstChildAsProperty(element, context, beanMetadata, name);
+            }
+        } 
+ 
+        if (StringUtils.isEmpty(bus)) {
+            bus = "cxf";
+        }
+        //Will create a bus if needed...
+
+        beanMetadata.addProperty("bus", getBusRef(context, bus));
+        return beanMetadata;
+    }
 
 }

Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsComponent.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsComponent.java?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsComponent.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsComponent.java Mon Sep 19 19:09:02 2011
@@ -21,6 +21,7 @@ import java.util.Map;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
+import org.apache.camel.component.cxf.blueprint.BlueprintSupport;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.impl.HeaderFilterStrategyComponent;
 import org.apache.camel.util.CamelContextHelper;
@@ -52,9 +53,11 @@ public class CxfRsComponent extends Head
 
             AbstractJAXRSFactoryBean bean = CamelContextHelper.mandatoryLookup(getCamelContext(), beanId, 
                 AbstractJAXRSFactoryBean.class);
-
-            answer = new CxfRsSpringEndpoint(this.getCamelContext(), bean);
-           
+            if (bean instanceof BlueprintSupport) {
+                answer = new CxfRsBlueprintEndpoint(this.getCamelContext(), bean);
+            } else {
+                answer = new CxfRsSpringEndpoint(this.getCamelContext(), bean);
+            }
             // Apply Spring bean properties (including # notation referenced bean).  Note that the
             // Spring bean properties values can be overridden by property defined in URI query.
             // The super class (DefaultComponent) will invoke "setProperties" after this method 

Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java Mon Sep 19 19:09:02 2011
@@ -26,9 +26,6 @@ import org.apache.camel.Component;
 import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
-import org.apache.camel.component.cxf.CxfEndpointUtils;
-import org.apache.camel.component.cxf.spring.SpringJAXRSClientFactoryBean;
-import org.apache.camel.component.cxf.spring.SpringJAXRSServerFactoryBean;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
@@ -139,35 +136,56 @@ public class CxfRsEndpoint extends Defau
 
         return binding;
     }
+    
+    protected void checkBeanType(Object object, Class<?> clazz) {
+        if (!clazz.isAssignableFrom(object.getClass())) {
+            throw new IllegalArgumentException("The configure bean is not the instance of " + clazz.getName());
+        }
+    }
 
     protected void setupJAXRSServerFactoryBean(JAXRSServerFactoryBean sfb) {
         // address
-        sfb.setAddress(getAddress());
-        sfb.setResourceClasses(CastUtils.cast(getResourceClasses(), Class.class));
+        if (getAddress() != null) {
+            sfb.setAddress(getAddress());
+        }
+        if (getResourceClasses()!= null) {
+            sfb.setResourceClasses(CastUtils.cast(getResourceClasses(), Class.class));
+        }
         sfb.setStart(false);
     }
 
     protected void setupJAXRSClientFactoryBean(JAXRSClientFactoryBean cfb, String address) {
         // address
-        cfb.setAddress(address);
+        if (address != null) {
+            cfb.setAddress(address);
+        }
         if (getResourceClasses() != null) {
             cfb.setResourceClass(getResourceClasses().get(0));
         }
         cfb.setThreadSafe(true);
     }
+    
+    protected JAXRSServerFactoryBean newJAXRSServerFactoryBean() {
+        return new JAXRSServerFactoryBean();
+    }
+    
+    protected JAXRSClientFactoryBean newJAXRSClientFactoryBean() {
+        return new JAXRSClientFactoryBean();
+    }
 
     public JAXRSServerFactoryBean createJAXRSServerFactoryBean() {
-        JAXRSServerFactoryBean answer = new SpringJAXRSServerFactoryBean();
+        JAXRSServerFactoryBean answer = newJAXRSServerFactoryBean();
         setupJAXRSServerFactoryBean(answer);
         return answer;
     }
+    
 
     public JAXRSClientFactoryBean createJAXRSClientFactoryBean() {
         return createJAXRSClientFactoryBean(getAddress());
     }
     
     public JAXRSClientFactoryBean createJAXRSClientFactoryBean(String address) {
-        JAXRSClientFactoryBean answer = new SpringJAXRSClientFactoryBean();
+        JAXRSClientFactoryBean answer = newJAXRSClientFactoryBean();
         setupJAXRSClientFactoryBean(answer, address);
         return answer;
     }

Modified: camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringEndpoint.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringEndpoint.java?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringEndpoint.java (original)
+++ camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringEndpoint.java Mon Sep 19 19:09:02 2011
@@ -18,6 +18,8 @@
 package org.apache.camel.component.cxf.jaxrs;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.component.cxf.spring.SpringJAXRSClientFactoryBean;
+import org.apache.camel.component.cxf.spring.SpringJAXRSServerFactoryBean;
 import org.apache.camel.spring.SpringCamelContext;
 import org.apache.cxf.configuration.spring.ConfigurerImpl;
 import org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean;
@@ -26,9 +28,6 @@ import org.apache.cxf.jaxrs.client.JAXRS
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.AbstractApplicationContext;
 
-/**
- * 
- */
 public class CxfRsSpringEndpoint extends CxfRsEndpoint implements BeanIdAware {
     private AbstractJAXRSFactoryBean bean;
     private ApplicationContext applicationContext;
@@ -61,28 +60,34 @@ public class CxfRsSpringEndpoint extends
         configurer.configureBean(beanId, beanInstance);
     }
     
-    void checkBeanType(Class<?> clazz) {
-        if (!clazz.isAssignableFrom(bean.getClass())) {
-            throw new IllegalArgumentException("The configure bean is not the instance of " + clazz.getName());
-        }
-    }
+    
     
     @Override
     protected void setupJAXRSServerFactoryBean(JAXRSServerFactoryBean sfb) {
-        checkBeanType(JAXRSServerFactoryBean.class);
+        checkBeanType(bean, JAXRSServerFactoryBean.class);
         configure(sfb);
         
     }
     
     @Override
     protected void setupJAXRSClientFactoryBean(JAXRSClientFactoryBean cfb, String address) {
-        checkBeanType(JAXRSClientFactoryBean.class);
+        checkBeanType(bean, JAXRSClientFactoryBean.class);
         configure(cfb);      
         cfb.setAddress(address);
         // Need to enable the option of ThreadSafe
         cfb.setThreadSafe(true);
     }
     
+    @Override
+    protected JAXRSServerFactoryBean newJAXRSServerFactoryBean() {
+        return new SpringJAXRSServerFactoryBean();
+    }
+    
+    @Override
+    protected JAXRSClientFactoryBean newJAXRSClientFactoryBean() {
+        return new SpringJAXRSClientFactoryBean();
+    }
+    
     public String getBeanId() {
         return beanId;
     }

Modified: camel/branches/camel-2.8.x/tests/camel-itest-osgi/pom.xml
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/tests/camel-itest-osgi/pom.xml?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/tests/camel-itest-osgi/pom.xml (original)
+++ camel/branches/camel-2.8.x/tests/camel-itest-osgi/pom.xml Mon Sep 19 19:09:02 2011
@@ -236,6 +236,12 @@
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
+      <version>${httpclient4-version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>org.apache.openjpa</groupId>
       <artifactId>openjpa-persistence-jdbc</artifactId>
       <scope>test</scope>
@@ -283,22 +289,10 @@
       <!-- cxf -->
       <dependency>
           <groupId>org.apache.cxf</groupId>
-          <artifactId>cxf-rt-core</artifactId>
-          <version>${cxf-version}</version>
-      </dependency>
-      <!-- used by the real web service -->
-      <dependency>
-          <groupId>org.apache.cxf</groupId>
-          <artifactId>cxf-rt-frontend-jaxws</artifactId>
-          <version>${cxf-version}</version>
-      </dependency>
-      <!-- regular http transport -->
-      <dependency>
-          <groupId>org.apache.cxf</groupId>
-          <artifactId>cxf-rt-transports-http</artifactId>
+          <artifactId>cxf-bundle</artifactId>
           <version>${cxf-version}</version>
+          <scope>test</scope>
       </dependency>
-
       <dependency>
         <groupId>org.apache.ftpserver</groupId>
         <artifactId>ftpserver-core</artifactId>

Modified: camel/branches/camel-2.8.x/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/AbstractIntegrationTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/AbstractIntegrationTest.java?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/AbstractIntegrationTest.java (original)
+++ camel/branches/camel-2.8.x/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/AbstractIntegrationTest.java Mon Sep 19 19:09:02 2011
@@ -43,13 +43,6 @@ public abstract class AbstractIntegratio
     @Inject
     protected BundleContext bundleContext;
 
-    @Before
-    public void setUp() throws Exception {
-        log.info("********************************************************************************");
-        log.info("Testing: " + getTestMethodName() + "(" + getClass().getName() + ")");
-        log.info("********************************************************************************");
-    }
-
     protected <T> T getOsgiService(Class<T> type, long timeout) {
         return getOsgiService(type, null, timeout);
     }

Modified: camel/branches/camel-2.8.x/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cxf/CxfProxyExampleTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cxf/CxfProxyExampleTest.java?rev=1172749&r1=1172748&r2=1172749&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cxf/CxfProxyExampleTest.java (original)
+++ camel/branches/camel-2.8.x/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/cxf/CxfProxyExampleTest.java Mon Sep 19 19:09:02 2011
@@ -30,12 +30,9 @@ import org.ops4j.pax.exam.junit.Configur
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext;
 
-import static org.ops4j.pax.exam.CoreOptions.equinox;
-import static org.ops4j.pax.exam.CoreOptions.felix;
 import static org.ops4j.pax.exam.CoreOptions.provision;
 import static org.ops4j.pax.exam.OptionUtils.combine;
 import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.scanFeatures;
-import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.workingDirectory;
 
 import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.newBundle;
 import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.withBnd;