Hello. I've had many warnings about Dynamic-Import, and I suppose that's for good reasons.
I understand how and why the maven plugin doesn't analyze the Camel's routes and their components such as Groovy to build the bundle's dependencies. But how can I guess the packages that Groovy will need at runtime in Camel/ServiceMix/Karaf, and give a hand-made Import-Package for my bundle ? As I've explained before, I've done a test copying the packages that were detected at deployment time using a plain XML blueprint, but some packages are only imported when needed, and errors occur late... Any idea ? Have you experienced dependency management problem for other components ? Thanks again. Ephemeris Lappis Le 06/08/2012 07:07, Freeman-2 [via ServiceMix] a écrit : > Hi, > > When you drop a blueprint camel router file in $SMX_HOME/deploy > folder, actually a karaf blueprint deployer will kick in and transform > the blueprint file into a bundle underlying, and as Johan already > pointed out, karat blueprint deployer will add "Dynamic-Import: *" for > the bundle generated from blueprint file, it works but using > Dynamic-Import isn't good practice in OSGi world. > > When use maven-bundle-plugin to build camel router bundle yourself, it > will scan the blueprint configuration file, but only those packages > used explicitly in bean declaration would be taken into account(added > into Import-Package), the tags like <groovy> won't, as > maven-bundle-plugin can't connect tag with the necessary underlying > camel packages, you need manage it yourself in maven-bundle-plugin > configuration. > > Freeman > ------------- > Freeman Fang > > FuseSource > Email:[hidden email] </user/SendEmail.jtp?type=node&node=5714083&i=0> > Web: fusesource.com > Twitter: freemanfang > Blog: http://freemanfang.blogspot.com > http://blog.sina.com.cn/u/1473905042 > weibo: http://weibo.com/u/1473905042 > > On 2012-7-31, at 上午2:32, Ephemeris Lappis wrote: > > > Hello. > > > > I don't understand what you mean : should I explicitly put the > > "Dynamic-Import: *" in my bundle instructions ? > > Thanks. > > > > Ephemeris Lappis > > > > Le 30/07/2012 18:42, Johan Edstrom-2 [via ServiceMix] a écrit : > >> A blueprint file deployed is going to be setup with a > >> Dynamic-Import: * > >> > >> Which is pretty expensive for the framework, a bundle with blueprint > >> on your > >> classpath is going to need the correct imports and exports. > >> > >> /je > >> On Jul 30, 2012, at 10:35 AM, Jon Anstey wrote: > >> > >>> The maven-bundle-plugin won't detect what Camel components you are > >> using > >>> and make sure those are installed. To do this you will need to use a > >>> feature for your application > >>> > >> > http://karaf.apache.org/manual/latest-2.2.x/users-guide/provisioning.htmlYou > >>> can create one something like this: > >>> > >>> <feature name="myapp" version="${project.version}"> > >>> <feature>camel-core</feature> > >>> <feature>camel-blueprint</feature> > >>> <feature>camel-activemq</feature> > >>> ... > >>> <bundle>mvn:myapp/myapp/${project.version}</bundle> > >>> </feature> > >>> > >>> Now, when you install "myapp" feature, all the Camel components you > >> need > >>> will be installed as well. > >>> > >>> If you want to enforce the various package imports are there at the > >> OSGi > >>> bundle level, you can always add them in manually with the > >> <Import-Package> > >>> instruction. > >>> > >>> Cheers, > >>> Jon > >>> > >>> On Fri, Jul 27, 2012 at 1:41 PM, Ephemeris Lappis < > >>> [hidden email] </user/SendEmail.jtp?type=node&node=5714023&i=0>> > wrote: > >>> > >>>> Hello. > >>>> > >>>> It seems that dependencies for a blueprint file depend on the way > >> it is > >>>> deployed. > >>>> > >>>> In a first step, I directly copy the blueprint XML file to the > deploy > >>>> folder, and it works as expected. > >>>> > >>>> In a second step, I package the same file into a bundle using the > >> felix > >>>> maven plugin, and deploy the generated JAR into the deploy folder. > >> In this > >>>> case, an error is produced during the deployment : > >>>> > >>>> java.lang.NoClassDefFoundError: groovy/lang/Script > >>>> > >>>> I've not tested other cases, but I suppose that it may do the same > >> error > >>>> for > >>>> other Camel component like it does with groovy in my example. > >>>> > >>>> When I look at the first bundle description in the web console, I > >> can see a > >>>> list of all the actual dependent modules in the imported packages : > >>>> > >>>> groovy.lang,version=1.8.5 from groovy-all (219) > >>>> groovyjarjarantlr,version=1.8.5 from groovy-all (219) > >>>> org.apache.activemq,version=5.5.1 from > >> org.apache.activemq.activemq-core > >>>> (50) > >>>> org.apache.camel,version=2.8.5 from org.apache.camel.camel-core (91) > >>>> org.apache.camel.blueprint,version=2.8.5 from > >>>> org.apache.camel.camel-blueprint (152) > >>>> org.apache.camel.impl,version=2.8.5 from > >> org.apache.camel.camel-core (91) > >>>> org.apache.camel.spi,version=2.8.5 from org.apache.camel.camel-core > >> (91) > >>>> org.codehaus.groovy.reflection,version=1.8.5 from groovy-all (219) > >>>> org.codehaus.groovy.runtime.callsite,version=1.8.5 from groovy-all > >> (219) > >>>> org.osgi.service.blueprint.container,version=1.0.1 from > >>>> org.apache.aries.blueprint (10) > >>>> > >>>> In the second case, the maven plugin only sets the > >>>> "org.osgi.service.blueprint" in the imported packages list in the > >> manifest. > >>>> Indeed, It seems that all the OSGi part of my blueprint is taken > into > >>>> account, but nothing from the camel context... Nothing seems to be > >> done at > >>>> deployment time to add the camel components dependences... > >>>> > >>>> Where is the error ? Should I do something different to build the > >> JAR with > >>>> the maven plugin ? > >>>> > >>>> Thanks for you help. > >>>> > >>>> > http://servicemix.396122.n5.nabble.com/file/n5714018/camel-context.xml > >>>> camel-context.xml > >>>> http://servicemix.396122.n5.nabble.com/file/n5714018/pom.xml pom.xml > >>>> > >>>> > >>>> > >>>> -- > >>>> View this message in context: > >>>> > >> > http://servicemix.396122.n5.nabble.com/Camel-classpath-using-blueprint-inside-an-OSGi-bundle-tp5714018.html > >>>> Sent from the ServiceMix - User mailing list archive at Nabble.com. > >>>> > >>> > >>> > >>> > >>> -- > >>> Cheers, > >>> Jon > >>> --------------- > >>> FuseSource > >>> Email: [hidden email] > </user/SendEmail.jtp?type=node&node=5714023&i=1> > >>> Web: fusesource.com > >>> Twitter: jon_anstey > >>> Blog: http://janstey.blogspot.com > >>> Author of Camel in Action: http://manning.com/ibsen > >> > >> > >> > >> > ------------------------------------------------------------------------ > >> If you reply to this email, your message will be added to the > >> discussion below: > >> > http://servicemix.396122.n5.nabble.com/Camel-classpath-using-blueprint-inside-an-OSGi-bundle-tp5714018p5714023.html > > > >> > >> To unsubscribe from Camel classpath using blueprint inside an OSGi > >> bundle, click here > >> < > >> NAML > >> > <http://servicemix.396122.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > > > >> > > > > > > > > > > > > -- > > View this message in context: > http://servicemix.396122.n5.nabble.com/Camel-classpath-using-blueprint-inside-an-OSGi-bundle-tp5714018p5714025.html > > Sent from the ServiceMix - User mailing list archive at Nabble.com. > > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the > discussion below: > http://servicemix.396122.n5.nabble.com/Camel-classpath-using-blueprint-inside-an-OSGi-bundle-tp5714018p5714083.html > > > To unsubscribe from Camel classpath using blueprint inside an OSGi > bundle, click here > <http://servicemix.396122.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5714018&code=ZXBoZW1lcmlzLmxhcHBpc0BnbWFpbC5jb218NTcxNDAxOHw0OTQyMjM2NDI=>. > NAML > <http://servicemix.396122.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > > -- View this message in context: http://servicemix.396122.n5.nabble.com/Camel-classpath-using-blueprint-inside-an-OSGi-bundle-tp5714018p5714085.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
