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;