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.

Reply via email to