Adding a Bundle-Activator into the camel-spring module  will introduce the
dependency of OSGi jars into camel-spring.
I'm wandering if we could do some thing on the camel-osgi module's
Bundle-Activator to override the camel-spring's Spring handler?


Willem


On Thu, Mar 26, 2009 at 5:14 PM, Gert Vanthienen
<gert.vanthie...@gmail.com>wrote:

> Willem,
>
> Would adding a Bundle-Activator to our jars help?  The activator would
> only be called upon in an OSGi environment so it could take of putting
> in place everything that's necessary for OSGi without the need for
> anyone to change the configuration in the XML files.
>
> Regards,
>
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
>
>
>
> 2009/3/26 Willem Jiang <willem.ji...@gmail.com>:
> > Hi,
> >
> > Yes, in servicemix-camel component, we can use the Spring namespace for
> > OSGi and non-OSGi environment. That is because ServiceMix take charge of
> > the Camel Spring handler itself, and the Spring handler of camel-spring
> > will detect the CamelContextFactoryBean of OSGi (in the camel-osgi
> > bundle) by using Class.forName() and replace the CamelContextFactoryBean
> > of Spring with the OSGi one.
> >
> > But if we deploy a camel context spring configure file into ServiceMix
> > directly, the Spring handler will be inited by Spring DM first, and the
> > Class.forName() detection will not work for camel-spring bundle anymore,
> > since the camel-osgi bundle is not be installed at that time.
> >
> > Maybe we need to find some other way to accomplish this kind of auto
> > replacing work.
> >
> > BTW, I don't if we can achieve this by using Spring java config ?
> >
> > Willem
> >
> >
> > James Strachan wrote:
> >> BTW I remember having a chat with Guillaume a while back and I don't
> >> think the OSGi namespace in the XML is required any more; I think he
> >> figured out how to wire in the OSGi injection without having to change
> >> the XML namespace. Though I've not tested it to be sure though - want
> >> to give it a try?
> >>
> >> Then in OSGi you add camel-osgi but when not using OSGi you can omit
> >> this dependency?
> >>
> >> 2009/3/25 Willem Jiang <willem.ji...@gmail.com>:
> >>> Hi Aaron
> >>>
> >>> The CamelContextFactoryBean of OSGi version extends the
> >>> CamelContextFactoryBean of Spring version. It only add the handle of
> >>> bundle context injection. For non-OSGi container it will not inject the
> >>>  bundle context into the OSGi CamelContextFactoryBean, so the OSGi
> >>> CamelContextFactoryBean will act as Spring CamelContextFactoryBean.
> >>>
> >>> The only side effect is you need to add the camel-osgi dependented
> third
> >>> party jars into the class path.
> >>>
> >>> Willem
> >>>
> >>> Aaron Crickenberger wrote:
> >>>> I have the following XML I'd like to deploy both in an OSGi container,
> and a
> >>>> non-OSGi container.  To deploy in the OSGi container, I have to use
> the
> >>>> "osgi" schema so that the "quartz" component is resolved to the
> camel-quartz
> >>>> bundle.
> >>>>
> >>>> To deploy in a non-OSGi container, I had to add
> spring-osgi-core-1.1.2.jar
> >>>> and org.osg.core-1.2.0.jar to the classpath.  It appears to be
> working, but
> >>>> I wanted to double-check with the experts.  Can you think of any
> >>>> side-effects I might see from deploying this way vs. deploying w/ the
> "
> >>>> http://activemq.apache.org/camel/schema/spring"; schema?
> >>>>
> >>>> <beans xmlns="http://www.springframework.org/schema/beans";
> >>>>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> >>>>        xmlns:camel="http://activemq.apache.org/camel/schema/spring";
> >>>>        xsi:schemaLocation="
> >>>>        http://www.springframework.org/schema/beans
> >>>> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
> >>>>        http://activemq.apache.org/camel/schema/spring
> >>>> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
> >>>>        http://activemq.apache.org/camel/schema/osgi
> >>>> http://activemq.apache.org/camel/schema/osgi/camel-osgi.xsd";>
> >>>>
> >>>>   <camelContext xmlns="http://activemq.apache.org/camel/schema/osgi";>
> >>>>     <camel:route>
> >>>>       <camel:from
> uri="quartz://groupName/timerName/0,15,30,45/*/*/*/*/$" />
> >>>>       <camel:to uri="log:ExampleRouter"/>
> >>>>     </camel:route>
> >>>>   </camelContext>
> >>>>
> >>>> </beans>
> >>>>
> >>>> - aaron
> >>>>
> >>>
> >>
> >>
> >>
> >
> >
>

Reply via email to