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:[email protected]
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 
>> <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-tp5714018p5714025.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to