Author: gnodet
Date: Fri Jun 13 06:36:54 2008
New Revision: 667533
URL: http://svn.apache.org/viewvc?rev=667533&view=rev
Log:
CAMEL-610: camel-spring and camel-context need to import the needed packages
for the JAXBContext to work in OSGi
Modified:
activemq/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelNamespaceHandler.java
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
Modified:
activemq/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelNamespaceHandler.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelNamespaceHandler.java?rev=667533&r1=667532&r2=667533&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelNamespaceHandler.java
(original)
+++
activemq/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/CamelNamespaceHandler.java
Fri Jun 13 06:36:54 2008
@@ -16,6 +16,9 @@
*/
package org.apache.camel.osgi;
+import java.util.HashSet;
+import java.util.Set;
+
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
@@ -27,7 +30,27 @@
}
protected JAXBContext createJaxbContext() throws JAXBException {
- return JAXBContext.newInstance("org.apache.camel.osgi:" +
JAXB_PACKAGES);
+ StringBuilder packages = new StringBuilder();
+ for (Class cl : getJaxbPackages()) {
+ if (packages.length() > 0) {
+ packages.append(":");
+ }
+ packages.append(cl.getName().substring(0,
cl.getName().lastIndexOf('.')));
+ }
+ return JAXBContext.newInstance(packages.toString(),
getClass().getClassLoader());
+ }
+
+ protected Set<Class> getJaxbPackages() {
+ Set<Class> classes = new HashSet<Class>();
+ classes.add(org.apache.camel.osgi.CamelContextFactoryBean.class);
+ classes.add(org.apache.camel.spring.CamelContextFactoryBean.class);
+ classes.add(org.apache.camel.model.RouteType.class);
+
classes.add(org.apache.camel.model.config.StreamResequencerConfig.class);
+ classes.add(org.apache.camel.model.dataformat.DataFormatType.class);
+ classes.add(org.apache.camel.model.language.ExpressionType.class);
+
classes.add(org.apache.camel.model.loadbalancer.LoadBalancerType.class) ;
+ return classes;
}
+
}
Modified:
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java?rev=667533&r1=667532&r2=667533&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
(original)
+++
activemq/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
Fri Jun 13 06:36:54 2008
@@ -57,11 +57,9 @@
public class CamelNamespaceHandler extends NamespaceHandlerSupport {
- public static final String JAXB_PACKAGES =
"org.apache.camel.spring:org.apache.camel.model:org.apache.camel.model.config:"
- +
"org.apache.camel.model.dataformat:org.apache.camel.model.language:org.apache.camel.model.loadbalancer";
+
protected BeanDefinitionParser endpointParser = new
BeanDefinitionParser(EndpointFactoryBean.class);
- protected BeanDefinitionParser beanPostProcessorParser = new
BeanDefinitionParser(
-
CamelBeanPostProcessor.class);
+ protected BeanDefinitionParser beanPostProcessorParser = new
BeanDefinitionParser(CamelBeanPostProcessor.class);
protected Set<String> parserElementNames = new HashSet<String>();
private JAXBContext jaxbContext;
private Map<String, BeanDefinitionParser> parserMap = new HashMap<String,
BeanDefinitionParser>();
@@ -149,7 +147,25 @@
}
protected JAXBContext createJaxbContext() throws JAXBException {
- return JAXBContext.newInstance(JAXB_PACKAGES);
+ StringBuilder packages = new StringBuilder();
+ for (Class cl : getJaxbPackages()) {
+ if (packages.length() > 0) {
+ packages.append(":");
+ }
+ packages.append(cl.getName().substring(0,
cl.getName().lastIndexOf('.')));
+ }
+ return JAXBContext.newInstance(packages.toString(),
getClass().getClassLoader());
+ }
+
+ protected Set<Class> getJaxbPackages() {
+ Set<Class> classes = new HashSet<Class>();
+ classes.add(org.apache.camel.spring.CamelContextFactoryBean.class);
+ classes.add(org.apache.camel.model.RouteType.class);
+
classes.add(org.apache.camel.model.config.StreamResequencerConfig.class);
+ classes.add(org.apache.camel.model.dataformat.DataFormatType.class);
+ classes.add(org.apache.camel.model.language.ExpressionType.class);
+
classes.add(org.apache.camel.model.loadbalancer.LoadBalancerType.class) ;
+ return classes;
}
protected class CamelContextBeanDefinitionParser extends
BeanDefinitionParser {