You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by XiLai Dai <xl...@talend.com> on 2011/11/23 04:36:04 UTC

Package uses conflict: Import-Package: org.osgi.service.blueprint

Hello,

We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build with maven-bundle-plugin. 
The META-INF/ MANIFEST.MF contains: 
......
Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...

When install this bundle into Karaf 2.2.4, got error: 
Reason: Package uses conflict: Im port-Package: org.osgi.service.blueprint; version="[1.0.0,2.0.0)"

Why it complains there has conflict? 

Thanks.
Xilai

Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by Willem Jiang <wi...@gmail.com>.
yes, the maven-bundle-plugin will read the MANIFEST.MF of the third party
bundle, if it exports the package with some kind version number like
1.2.1.  maven-bundle-plugin will generated the import package with the
version rang of [1.2, 2).
You can override it by specify the import package version rang in the
maven-bundle-plugin.

Willem

On Wed, Nov 23, 2011 at 1:36 PM, Freeman Fang <fr...@gmail.com>wrote:

> Hi,
>
> maven-bundle-plugin basically just analyze the dependency in pom.xml and
> generate OSGi meta-data header in MANIFEST.MF accordingly, you need check
> if your dependency introduce this package import.
> Btw, you can configure the maven-bundle-plugin to totally control the OSGi
> meta-data header.
>
> Freeman
>
> On 2011-11-23, at 下午1:27, XiLai Dai wrote:
>
> Thanks Freeman for your clear reply!****
> ** **
> BTW, I’ve run another test with the same bundle which just removed the
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from MANIFEST.MF, then,
> it has been installed into Karaf successfully.****
> So, maybe it’s a problem from maven-bundle-plugin, it should not generate
> the unexpected “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into
> MANIFEST.MF.****
> ** **
> Thanks.****
> Xilai****
> *From:* Freeman Fang [mailto:freeman.fang@gmail.com<fr...@gmail.com>
> ]
> *Sent:* Wednesday, November 23, 2011 11:52 AM
> *To:* user@karaf.apache.org
> *Subject:* Re: Package uses conflict: Import-Package:
> org.osgi.service.blueprint****
> ** **
> Hi,****
> ** **
> This kind of "Package uses conflict" comes from the scenario
> like, let's say, ****
> bundle A import-package org.osgi.service.blueprint;
> version="[1.0.0,2.0.0)", bundle A also import-package x.y.z****
> bunde B export-package  x.y.z with "use" directive like
> uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)"" ****
> Let's say bundle B already get resolved and started.****
> When resolve bundle A, it will use export-package x.y.z from bundle B, but
>  as bundle B export-package  x.y.z uses:="oorg.osgi.service.blueprint;
> version="[2.0.0,3.0.0)" and bundle B get resolved to
> import org.osgi.service.blueprint; version="[2.0.0,3.0.0), so it's not meet
> bundle A's restriction which need org.osgi.service.blueprint;
> version="[1.0.0,2.0.0)(notice the version mismatch between the two), then
> you see such exception.****
> ** **
> The root cause is that you install some bundles which need
> different org.osgi.service.blueprint versions, also those bundles has
> dependency with each other, you need figure it out from your bundles and
> fix it.****
> ** **
> Freeman****
> On 2011-11-23, at 上午11:36, XiLai Dai wrote:****
>
>
> ****
> Hello,
>
> We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build
> with maven-bundle-plugin.
> The META-INF/ MANIFEST.MF contains:
> ......
> Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...
>
> When install this bundle into Karaf 2.2.4, got error:
> Reason: Package uses conflict: Im port-Package:
> org.osgi.service.blueprint; version="[1.0.0,2.0.0)"
>
> Why it complains there has conflict?
>
> Thanks.
> Xilai****
> ** **
> ---------------------------------------------****
> Freeman Fang****
> ** **
> FuseSource****
> Email:f <de...@fusesource.com>fang@fusesource.com****
> Web: fusesource.com****
> Twitter: freemanfang****
> Blog: http://freemanfang.blogspot.com****
> ** **
> ** **
> ** **
> ** **
> ** **
> ** **
> ** **
> ** **
> ** **
>
>
> ---------------------------------------------
> Freeman Fang
>
> FuseSource
> Email:f <de...@fusesource.com>fang@fusesource.com
> Web: fusesource.com
> Twitter: freemanfang
> Blog: http://freemanfang.blogspot.com
>
>
>
>
>
>
>
>
>
>

Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by David Jencks <da...@yahoo.com>.
This import-package is reguired by the blueprint spec so that only one blueprint implementation can process the blueprint plan.  The only way I can imagine to get this uses conflict is if you have two blueprint implementations running in karaf.  Do you?  Do you need both?

thanks
david jencks

On Nov 22, 2011, at 10:36 PM, XiLai Dai wrote:

> Hello,
> There is no any osgi dependencies in the pom.xml file!  If OSGI-INF/blueprint/*.xml included into bundle, the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” will be generated; if remove OSGI-INF/blueprint/*.xml, then “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” was gone.
>  
> How to control this meta info?
> I’ve tried adding this into the pom.xml
> <!--Import-Package>
> !org.osgi.service.blueprint
>           </Import-Package-->
> But not works.
>  
> Thanks.
> Xilai
> From: Freeman Fang [mailto:freeman.fang@gmail.com] 
> Sent: Wednesday, November 23, 2011 1:37 PM
> To: user@karaf.apache.org
> Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint
>  
> Hi,
>  
> maven-bundle-plugin basically just analyze the dependency in pom.xml and generate OSGi meta-data header in MANIFEST.MF accordingly, you need check if your dependency introduce this package import.
> Btw, you can configure the maven-bundle-plugin to totally control the OSGi meta-data header.
>  
> Freeman
>  
> On 2011-11-23, at 下午1:27, XiLai Dai wrote:
> 
> 
> Thanks Freeman for your clear reply!
>  
> BTW, I’ve run another test with the same bundle which just removed the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from MANIFEST.MF, then, it has been installed into Karaf successfully.
> So, maybe it’s a problem from maven-bundle-plugin, it should not generate the unexpected “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into MANIFEST.MF.
>  
> Thanks.
> Xilai
> From: Freeman Fang [mailto:freeman.fang@gmail.com] 
> Sent: Wednesday, November 23, 2011 11:52 AM
> To: user@karaf.apache.org
> Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint
>  
> Hi,
>  
> This kind of "Package uses conflict" comes from the scenario like, let's say, 
> bundle A import-package org.osgi.service.blueprint; version="[1.0.0,2.0.0)", bundle A also import-package x.y.z
> bunde B export-package  x.y.z with "use" directive like uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)"" 
> Let's say bundle B already get resolved and started.
> When resolve bundle A, it will use export-package x.y.z from bundle B, but  as bundle B export-package  x.y.z uses:="oorg.osgi.service.blueprint; version="[2.0.0,3.0.0)" and bundle B get resolved to import org.osgi.service.blueprint; version="[2.0.0,3.0.0), so it's not meet bundle A's restriction which need org.osgi.service.blueprint; version="[1.0.0,2.0.0)(notice the version mismatch between the two), then you see such exception.
>  
> The root cause is that you install some bundles which need different org.osgi.service.blueprint versions, also those bundles has dependency with each other, you need figure it out from your bundles and fix it.
>  
> Freeman
> On 2011-11-23, at 上午11:36, XiLai Dai wrote:
> 
> 
> 
> Hello,
> 
> We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build with maven-bundle-plugin. 
> The META-INF/ MANIFEST.MF contains: 
> ......
> Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...
> 
> When install this bundle into Karaf 2.2.4, got error: 
> Reason: Package uses conflict: Im port-Package: org.osgi.service.blueprint; version="[1.0.0,2.0.0)"
> 
> Why it complains there has conflict? 
> 
> Thanks.
> Xilai
>  
> ---------------------------------------------
> Freeman Fang
>  
> FuseSource
> Email:ffang@fusesource.com
> Web: fusesource.com
> Twitter: freemanfang
> Blog: http://freemanfang.blogspot.com
>  
>  
>  
>  
>  
>  
>  
>  
>  
>  
> ---------------------------------------------
> Freeman Fang
>  
> FuseSource
> Email:ffang@fusesource.com
> Web: fusesource.com
> Twitter: freemanfang
> Blog: http://freemanfang.blogspot.com
>  
>  
>  
>  
>  
>  
>  
>  
>  


RE: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by XiLai Dai <xl...@talend.com>.
Oops!   My fault about this exception!

But for the error of “Package uses conflict: Import-Package: org.osgi.service.blueprint”,  I’m not sure if it still happens because now I’m using a clean Karaf 2.2.4 container for testing this sample.  In the former case, we used the Karaf 2.2.4 container with many installed bundles (Spring, CXF, Servicemix, … ),  I can’t attach the whole container in the mail ☺

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com]
Sent: Thursday, November 24, 2011 12:12 PM
To: user@karaf.apache.org
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

So no error like Package uses conflict: Import-Package: org.osgi.service.blueprint at all now, right?

The exception like
org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to find a matching constructor on class test.blueprint.UIAPIServlet for arguments [] when instanciating bean #recipe-1
indicate that the IOC container(blueprint in this case) can't initialize your class test.blueprint.UIAPIServlet,  this is comes from that your UIAPIServlet has protected constructor,
change it to public like
public UIAPIServlet() {

        }
then it works.

Freeman

On Thu, Nov 24, 2011 at 11:13 AM, XiLai Dai <xl...@talend.com>> wrote:
Hi, Freeman,

Please find the attachment which is a simple bundle with blueprint.

1.       Deploy geronimo-servlet_2.5_spec-1.1.2.jar into $Karaf2.2.4/deploy

2.       Deploy test-blueprint-0.1.jar into $Karaf2.2.4/deploy

The source project also attached.

   ID   State         Blueprint      Level  Name
[  50] [Active     ] [            ] [   60] geronimo-servlet_2.5_spec (1.1.2)
[  52] [Active     ] [Failure     ] [   60] test :: blueprint (0.1.0)

The blueprint still failure, and now got this exception in the karaf.log:

org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to find a matching constructor on class test.blueprint.UIAPIServlet for arguments [] when instanciating bean #recipe-1
         at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:272)[9:org.apache.aries.blueprint:0.3.1]

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com<ma...@gmail.com>]
Sent: Wednesday, November 23, 2011 6:30 PM

To: user@karaf.apache.org<ma...@karaf.apache.org>
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

Is it possible that you append a src project which we can build and deploy to reproduce it?

Freeman
On Wed, Nov 23, 2011 at 3:53 PM, XiLai Dai <xl...@talend.com>> wrote:
Thanks much!
But unfortunately, seems there is only Aries implementation for blueprint in my Karaf container  ☹
-----------------------------------------------
karaf@trun> packages:imports | grep org.osgi.service.blueprint
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
karaf@trun> packages:exports |grep org.osgi.service.blueprint
     9 org.osgi.service.blueprint; version="1.0.1"
     9 org.osgi.service.blueprint.container; version="1.0.1"
     9 org.osgi.service.blueprint.reflect; version="1.0.1"
----------------------------------------------------

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com<ma...@gmail.com>]
Sent: Wednesday, November 23, 2011 3:27 PM

To: user@karaf.apache.org<ma...@karaf.apache.org>
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,
I've run a quick test on a blueprint bundle.
The configuration like
         <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <configuration>
                    <instructions>
                        ...
                           <Import-Package>!org.osgi.service.blueprint</Import-Package>
                     </instructions>
                </configuration>
            </plugin>
works for me.

Notice in your configuration you just comment out the Import-Package, so that configuration won't take effect.

However, I don't think you should change this OSGi header of this bundle, as it's correct behavior to generate org.osgi.service.blueprint;version="[1.0.0,2.0.0)" header when it's a blueprint bundle. As I mentioned previously you need figure out other bundles which wrongly export/import other version of org.osgi.service.blueprint.
From karaf console
packages:imports |grep org.osgi.service.blueprint
or
packages:exports |grep org.osgi.service.blueprint
may give you more hints. I guess most likely you install other blueprint implementation other than the aries one.

Freeman
On Wed, Nov 23, 2011 at 2:36 PM, XiLai Dai <xl...@talend.com>> wrote:
Hello,
There is no any osgi dependencies in the pom.xml file!  If OSGI-INF/blueprint/*.xml included into bundle, the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” will be generated; if remove OSGI-INF/blueprint/*.xml, then “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” was gone.

How to control this meta info?
I’ve tried adding this into the pom.xml
<!--Import-Package>
!org.osgi.service.blueprint
          </Import-Package-->
But not works.

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com<ma...@gmail.com>]
Sent: Wednesday, November 23, 2011 1:37 PM

To: user@karaf.apache.org<ma...@karaf.apache.org>
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

maven-bundle-plugin basically just analyze the dependency in pom.xml and generate OSGi meta-data header in MANIFEST.MF accordingly, you need check if your dependency introduce this package import.
Btw, you can configure the maven-bundle-plugin to totally control the OSGi meta-data header.

Freeman

On 2011-11-23, at 下午1:27, XiLai Dai wrote:

Thanks Freeman for your clear reply!

BTW, I’ve run another test with the same bundle which just removed the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from MANIFEST.MF, then, it has been installed into Karaf successfully.
So, maybe it’s a problem from maven-bundle-plugin, it should not generate the unexpected “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into MANIFEST.MF.

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com]
Sent: Wednesday, November 23, 2011 11:52 AM
To: user@karaf.apache.org<ma...@karaf.apache.org>
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

This kind of "Package uses conflict" comes from the scenario like, let's say,
bundle A import-package org.osgi.service.blueprint; version="[1.0.0,2.0.0)", bundle A also import-package x.y.z
bunde B export-package  x.y.z with "use" directive like uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)""
Let's say bundle B already get resolved and started.
When resolve bundle A, it will use export-package x.y.z from bundle B, but  as bundle B export-package  x.y.z uses:="oorg.osgi.service.blueprint; version="[2.0.0,3.0.0)" and bundle B get resolved to import org.osgi.service.blueprint; version="[2.0.0,3.0.0), so it's not meet bundle A's restriction which need org.osgi.service.blueprint; version="[1.0.0,2.0.0)(notice the version mismatch between the two), then you see such exception.

The root cause is that you install some bundles which need different org.osgi.service.blueprint versions, also those bundles has dependency with each other, you need figure it out from your bundles and fix it.

Freeman
On 2011-11-23, at 上午11:36, XiLai Dai wrote:

Hello,

We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build with maven-bundle-plugin.
The META-INF/ MANIFEST.MF contains:
......
Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...

When install this bundle into Karaf 2.2.4, got error:
Reason: Package uses conflict: Im port-Package: org.osgi.service.blueprint; version="[1.0.0,2.0.0)"

Why it complains there has conflict?

Thanks.
Xilai

---------------------------------------------
Freeman Fang

FuseSource
Email:f<ma...@fusesource.com>
Web: fusesource.com<http://fusesource.com/>
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com










---------------------------------------------
Freeman Fang

FuseSource
Email:f<ma...@fusesource.com>
Web: fusesource.com<http://fusesource.com/>
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com













Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

So no error like Package uses conflict: Import-Package:
org.osgi.service.blueprint at all now, right?

The exception like
org.osgi.service.blueprint.container.ComponentDefinitionException: Unable
to find a matching constructor on class test.blueprint.UIAPIServlet for
arguments [] when instanciating bean #recipe-1
indicate that the IOC container(blueprint in this case) can't initialize
your class test.blueprint.UIAPIServlet,  this is comes from that your
UIAPIServlet has protected constructor,
change it to public like
public UIAPIServlet() {

        }
then it works.

Freeman


On Thu, Nov 24, 2011 at 11:13 AM, XiLai Dai <xl...@talend.com> wrote:

>  Hi, Freeman,****
>
> ** **
>
> Please find the attachment which is a simple bundle with blueprint.****
>
> **1.       **Deploy geronimo-servlet_2.5_spec-1.1.2.jar into
> $Karaf2.2.4/deploy****
>
> **2.       **Deploy test-blueprint-0.1.jar into $Karaf2.2.4/deploy****
>
> ** **
>
> The source project also attached.****
>
> ** **
>
>    ID   State         Blueprint      Level  Name****
>
> [  50] [Active     ] [            ] [   60] geronimo-servlet_2.5_spec
> (1.1.2)****
>
> [  52] [Active     ] [Failure     ] [   60] test :: blueprint (0.1.0)****
>
> ** **
>
> The blueprint still failure, and now got this exception in the karaf.log:*
> ***
>
> ** **
>
> org.osgi.service.blueprint.container.ComponentDefinitionException: Unable
> to find a matching constructor on class test.blueprint.UIAPIServlet for
> arguments [] when instanciating bean #recipe-1****
>
>          at
> org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:272)[9:org.apache.aries.blueprint:0.3.1]
> ****
>
> ** **
>
> Thanks.****
>
> Xilai****
>
> *From:* Freeman Fang [mailto:freeman.fang@gmail.com]
> *Sent:* Wednesday, November 23, 2011 6:30 PM
>
> *To:* user@karaf.apache.org
> *Subject:* Re: Package uses conflict: Import-Package:
> org.osgi.service.blueprint****
>
> ** **
>
> Hi,
>
> Is it possible that you append a src project which we can build and deploy
> to reproduce it?
>
> Freeman****
>
> On Wed, Nov 23, 2011 at 3:53 PM, XiLai Dai <xl...@talend.com> wrote:****
>
> Thanks much! ****
>
> But unfortunately, seems there is only Aries implementation for blueprint
> in my Karaf container  L****
>
> -----------------------------------------------****
>
> karaf@trun> packages:imports | grep org.osgi.service.blueprint****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> karaf@trun> packages:exports |grep org.osgi.service.blueprint****
>
>      9 org.osgi.service.blueprint; version="1.0.1"****
>
>      9 org.osgi.service.blueprint.container; version="1.0.1"****
>
>      9 org.osgi.service.blueprint.reflect; version="1.0.1"****
>
> ----------------------------------------------------****
>
>  ****
>
> Thanks.****
>
> Xilai****
>
> *From:* Freeman Fang [mailto:freeman.fang@gmail.com]
> *Sent:* Wednesday, November 23, 2011 3:27 PM****
>
>
> *To:* user@karaf.apache.org
> *Subject:* Re: Package uses conflict: Import-Package:
> org.osgi.service.blueprint****
>
>  ****
>
> Hi,
> I've run a quick test on a blueprint bundle.
> The configuration like
>          <plugin>
>                 <groupId>org.apache.felix</groupId>
>                 <artifactId>maven-bundle-plugin</artifactId>
>                 <configuration>
>                     <instructions>
>                         ...
>
> <Import-Package>!org.osgi.service.blueprint</Import-Package>
>                      </instructions>
>                 </configuration>
>             </plugin>
> works for me.
>
> Notice in your configuration you just comment out the Import-Package, so
> that configuration won't take effect.
>
> However, I don't think you should change this OSGi header of this bundle,
> as it's correct behavior to generate
> org.osgi.service.blueprint;version="[1.0.0,2.0.0)" header when it's a
> blueprint bundle. As I mentioned previously you need figure out other
> bundles which wrongly export/import other version of
> org.osgi.service.blueprint.
> From karaf console
> packages:imports |grep org.osgi.service.blueprint
> or
> packages:exports |grep org.osgi.service.blueprint
> may give you more hints. I guess most likely you install other blueprint
> implementation other than the aries one.
>
> Freeman****
>
> On Wed, Nov 23, 2011 at 2:36 PM, XiLai Dai <xl...@talend.com> wrote:****
>
> Hello,****
>
> There is no any osgi dependencies in the pom.xml file!  If
> OSGI-INF/blueprint/*.xml included into bundle, the
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” will be generated; if
> remove OSGI-INF/blueprint/*.xml, then
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” was gone.****
>
>  ****
>
> How to control this meta info? ****
>
> I’ve tried adding this into the pom.xml****
>
> <!--Import-Package>****
>
> !org.osgi.service.blueprint****
>
>           </Import-Package-->****
>
> But not works.****
>
>  ****
>
> Thanks.****
>
> Xilai****
>
> *From:* Freeman Fang [mailto:freeman.fang@gmail.com]
> *Sent:* Wednesday, November 23, 2011 1:37 PM****
>
>
> *To:* user@karaf.apache.org
> *Subject:* Re: Package uses conflict: Import-Package:
> org.osgi.service.blueprint****
>
>  ****
>
> Hi,****
>
>  ****
>
> maven-bundle-plugin basically just analyze the dependency in pom.xml and
> generate OSGi meta-data header in MANIFEST.MF accordingly, you need check
> if your dependency introduce this package import.****
>
> Btw, you can configure the maven-bundle-plugin to totally control the OSGi
> meta-data header.****
>
>  ****
>
> Freeman****
>
>  ****
>
> On 2011-11-23, at 下午1:27, XiLai Dai wrote:****
>
>  ****
>
> Thanks Freeman for your clear reply!****
>
>  ****
>
> BTW, I’ve run another test with the same bundle which just removed the
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from MANIFEST.MF, then,
> it has been installed into Karaf successfully.****
>
> So, maybe it’s a problem from maven-bundle-plugin, it should not generate
> the unexpected “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into
> MANIFEST.MF.****
>
>  ****
>
> Thanks.****
>
> Xilai****
>
> *From:* Freeman Fang [mailto:freeman.fang@gmail.com<fr...@gmail.com>
> ]
> *Sent:* Wednesday, November 23, 2011 11:52 AM
> *To:* user@karaf.apache.org
> *Subject:* Re: Package uses conflict: Import-Package:
> org.osgi.service.blueprint****
>
>  ****
>
> Hi,****
>
>  ****
>
> This kind of "Package uses conflict" comes from the scenario
> like, let's say, ****
>
> bundle A import-package org.osgi.service.blueprint;
> version="[1.0.0,2.0.0)", bundle A also import-package x.y.z****
>
> bunde B export-package  x.y.z with "use" directive like
> uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)"" ****
>
> Let's say bundle B already get resolved and started.****
>
> When resolve bundle A, it will use export-package x.y.z from bundle B, but
>  as bundle B export-package  x.y.z uses:="oorg.osgi.service.blueprint;
> version="[2.0.0,3.0.0)" and bundle B get resolved to
> import org.osgi.service.blueprint; version="[2.0.0,3.0.0), so it's not meet
> bundle A's restriction which need org.osgi.service.blueprint;
> version="[1.0.0,2.0.0)(notice the version mismatch between the two), then
> you see such exception.****
>
>  ****
>
> The root cause is that you install some bundles which need
> different org.osgi.service.blueprint versions, also those bundles has
> dependency with each other, you need figure it out from your bundles and
> fix it.****
>
>  ****
>
> Freeman****
>
> On 2011-11-23, at 上午11:36, XiLai Dai wrote:****
>
> ** **
>
> Hello,
>
> We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build
> with maven-bundle-plugin.
> The META-INF/ MANIFEST.MF contains:
> ......
> Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...
>
> When install this bundle into Karaf 2.2.4, got error:
> Reason: Package uses conflict: Im port-Package:
> org.osgi.service.blueprint; version="[1.0.0,2.0.0)"
>
> Why it complains there has conflict?
>
> Thanks.
> Xilai****
>
>  ****
>
> ---------------------------------------------****
>
> Freeman Fang****
>
>  ****
>
> FuseSource****
>
> Email:f <de...@fusesource.com>fang@fusesource.com****
>
> Web: fusesource.com****
>
> Twitter: freemanfang****
>
> Blog: http://freemanfang.blogspot.com****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
> ---------------------------------------------****
>
> Freeman Fang****
>
>  ****
>
> FuseSource****
>
> Email:f <de...@fusesource.com>fang@fusesource.com****
>
> Web: fusesource.com****
>
> Twitter: freemanfang****
>
> Blog: http://freemanfang.blogspot.com****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
> ** **
>

RE: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by XiLai Dai <xl...@talend.com>.
Hi, Freeman,

Please find the attachment which is a simple bundle with blueprint.

1.       Deploy geronimo-servlet_2.5_spec-1.1.2.jar into $Karaf2.2.4/deploy

2.       Deploy test-blueprint-0.1.jar into $Karaf2.2.4/deploy

The source project also attached.

   ID   State         Blueprint      Level  Name
[  50] [Active     ] [            ] [   60] geronimo-servlet_2.5_spec (1.1.2)
[  52] [Active     ] [Failure     ] [   60] test :: blueprint (0.1.0)

The blueprint still failure, and now got this exception in the karaf.log:

org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to find a matching constructor on class test.blueprint.UIAPIServlet for arguments [] when instanciating bean #recipe-1
         at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:272)[9:org.apache.aries.blueprint:0.3.1]

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com]
Sent: Wednesday, November 23, 2011 6:30 PM
To: user@karaf.apache.org
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

Is it possible that you append a src project which we can build and deploy to reproduce it?

Freeman
On Wed, Nov 23, 2011 at 3:53 PM, XiLai Dai <xl...@talend.com>> wrote:
Thanks much!
But unfortunately, seems there is only Aries implementation for blueprint in my Karaf container  ☹
-----------------------------------------------
karaf@trun> packages:imports | grep org.osgi.service.blueprint
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
karaf@trun> packages:exports |grep org.osgi.service.blueprint
     9 org.osgi.service.blueprint; version="1.0.1"
     9 org.osgi.service.blueprint.container; version="1.0.1"
     9 org.osgi.service.blueprint.reflect; version="1.0.1"
----------------------------------------------------

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com<ma...@gmail.com>]
Sent: Wednesday, November 23, 2011 3:27 PM

To: user@karaf.apache.org<ma...@karaf.apache.org>
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,
I've run a quick test on a blueprint bundle.
The configuration like
         <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <configuration>
                    <instructions>
                        ...
                           <Import-Package>!org.osgi.service.blueprint</Import-Package>
                     </instructions>
                </configuration>
            </plugin>
works for me.

Notice in your configuration you just comment out the Import-Package, so that configuration won't take effect.

However, I don't think you should change this OSGi header of this bundle, as it's correct behavior to generate org.osgi.service.blueprint;version="[1.0.0,2.0.0)" header when it's a blueprint bundle. As I mentioned previously you need figure out other bundles which wrongly export/import other version of org.osgi.service.blueprint.
From karaf console
packages:imports |grep org.osgi.service.blueprint
or
packages:exports |grep org.osgi.service.blueprint
may give you more hints. I guess most likely you install other blueprint implementation other than the aries one.

Freeman
On Wed, Nov 23, 2011 at 2:36 PM, XiLai Dai <xl...@talend.com>> wrote:
Hello,
There is no any osgi dependencies in the pom.xml file!  If OSGI-INF/blueprint/*.xml included into bundle, the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” will be generated; if remove OSGI-INF/blueprint/*.xml, then “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” was gone.

How to control this meta info?
I’ve tried adding this into the pom.xml
<!--Import-Package>
!org.osgi.service.blueprint
          </Import-Package-->
But not works.

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com<ma...@gmail.com>]
Sent: Wednesday, November 23, 2011 1:37 PM

To: user@karaf.apache.org<ma...@karaf.apache.org>
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

maven-bundle-plugin basically just analyze the dependency in pom.xml and generate OSGi meta-data header in MANIFEST.MF accordingly, you need check if your dependency introduce this package import.
Btw, you can configure the maven-bundle-plugin to totally control the OSGi meta-data header.

Freeman

On 2011-11-23, at 下午1:27, XiLai Dai wrote:

Thanks Freeman for your clear reply!

BTW, I’ve run another test with the same bundle which just removed the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from MANIFEST.MF, then, it has been installed into Karaf successfully.
So, maybe it’s a problem from maven-bundle-plugin, it should not generate the unexpected “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into MANIFEST.MF.

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com]
Sent: Wednesday, November 23, 2011 11:52 AM
To: user@karaf.apache.org<ma...@karaf.apache.org>
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

This kind of "Package uses conflict" comes from the scenario like, let's say,
bundle A import-package org.osgi.service.blueprint; version="[1.0.0,2.0.0)", bundle A also import-package x.y.z
bunde B export-package  x.y.z with "use" directive like uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)""
Let's say bundle B already get resolved and started.
When resolve bundle A, it will use export-package x.y.z from bundle B, but  as bundle B export-package  x.y.z uses:="oorg.osgi.service.blueprint; version="[2.0.0,3.0.0)" and bundle B get resolved to import org.osgi.service.blueprint; version="[2.0.0,3.0.0), so it's not meet bundle A's restriction which need org.osgi.service.blueprint; version="[1.0.0,2.0.0)(notice the version mismatch between the two), then you see such exception.

The root cause is that you install some bundles which need different org.osgi.service.blueprint versions, also those bundles has dependency with each other, you need figure it out from your bundles and fix it.

Freeman
On 2011-11-23, at 上午11:36, XiLai Dai wrote:

Hello,

We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build with maven-bundle-plugin.
The META-INF/ MANIFEST.MF contains:
......
Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...

When install this bundle into Karaf 2.2.4, got error:
Reason: Package uses conflict: Im port-Package: org.osgi.service.blueprint; version="[1.0.0,2.0.0)"

Why it complains there has conflict?

Thanks.
Xilai

---------------------------------------------
Freeman Fang

FuseSource
Email:f<ma...@fusesource.com>
Web: fusesource.com<http://fusesource.com/>
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com










---------------------------------------------
Freeman Fang

FuseSource
Email:f<ma...@fusesource.com>
Web: fusesource.com<http://fusesource.com/>
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com












Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

Is it possible that you append a src project which we can build and deploy
to reproduce it?

Freeman

On Wed, Nov 23, 2011 at 3:53 PM, XiLai Dai <xl...@talend.com> wrote:

>  Thanks much! ****
>
> But unfortunately, seems there is only Aries implementation for blueprint
> in my Karaf container  L****
>
> -----------------------------------------------****
>
> karaf@trun> packages:imports | grep org.osgi.service.blueprint****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container;
> version="1.0.1"****
>
> Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect;
> version="1.0.1"****
>
> karaf@trun> packages:exports |grep org.osgi.service.blueprint****
>
>      9 org.osgi.service.blueprint; version="1.0.1"****
>
>      9 org.osgi.service.blueprint.container; version="1.0.1"****
>
>      9 org.osgi.service.blueprint.reflect; version="1.0.1"****
>
> ----------------------------------------------------****
>
> ** **
>
> Thanks.****
>
> Xilai****
>
> *From:* Freeman Fang [mailto:freeman.fang@gmail.com]
> *Sent:* Wednesday, November 23, 2011 3:27 PM
>
> *To:* user@karaf.apache.org
> *Subject:* Re: Package uses conflict: Import-Package:
> org.osgi.service.blueprint****
>
> ** **
>
> Hi,
> I've run a quick test on a blueprint bundle.
> The configuration like
>          <plugin>
>                 <groupId>org.apache.felix</groupId>
>                 <artifactId>maven-bundle-plugin</artifactId>
>                 <configuration>
>                     <instructions>
>                         ...
>
> <Import-Package>!org.osgi.service.blueprint</Import-Package>
>                      </instructions>
>                 </configuration>
>             </plugin>
> works for me.
>
> Notice in your configuration you just comment out the Import-Package, so
> that configuration won't take effect.
>
> However, I don't think you should change this OSGi header of this bundle,
> as it's correct behavior to generate
> org.osgi.service.blueprint;version="[1.0.0,2.0.0)" header when it's a
> blueprint bundle. As I mentioned previously you need figure out other
> bundles which wrongly export/import other version of
> org.osgi.service.blueprint.
> From karaf console
> packages:imports |grep org.osgi.service.blueprint
> or
> packages:exports |grep org.osgi.service.blueprint
> may give you more hints. I guess most likely you install other blueprint
> implementation other than the aries one.
>
> Freeman****
>
> On Wed, Nov 23, 2011 at 2:36 PM, XiLai Dai <xl...@talend.com> wrote:****
>
> Hello,****
>
> There is no any osgi dependencies in the pom.xml file!  If
> OSGI-INF/blueprint/*.xml included into bundle, the
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” will be generated; if
> remove OSGI-INF/blueprint/*.xml, then
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” was gone.****
>
>  ****
>
> How to control this meta info? ****
>
> I’ve tried adding this into the pom.xml****
>
> <!--Import-Package>****
>
> !org.osgi.service.blueprint****
>
>           </Import-Package-->****
>
> But not works.****
>
>  ****
>
> Thanks.****
>
> Xilai****
>
> *From:* Freeman Fang [mailto:freeman.fang@gmail.com]
> *Sent:* Wednesday, November 23, 2011 1:37 PM****
>
>
> *To:* user@karaf.apache.org
> *Subject:* Re: Package uses conflict: Import-Package:
> org.osgi.service.blueprint****
>
>  ****
>
> Hi,****
>
>  ****
>
> maven-bundle-plugin basically just analyze the dependency in pom.xml and
> generate OSGi meta-data header in MANIFEST.MF accordingly, you need check
> if your dependency introduce this package import.****
>
> Btw, you can configure the maven-bundle-plugin to totally control the OSGi
> meta-data header.****
>
>  ****
>
> Freeman****
>
>  ****
>
> On 2011-11-23, at 下午1:27, XiLai Dai wrote:****
>
> ** **
>
> Thanks Freeman for your clear reply!****
>
>  ****
>
> BTW, I’ve run another test with the same bundle which just removed the
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from MANIFEST.MF, then,
> it has been installed into Karaf successfully.****
>
> So, maybe it’s a problem from maven-bundle-plugin, it should not generate
> the unexpected “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into
> MANIFEST.MF.****
>
>  ****
>
> Thanks.****
>
> Xilai****
>
> *From:* Freeman Fang [mailto:freeman.fang@gmail.com<fr...@gmail.com>
> ]
> *Sent:* Wednesday, November 23, 2011 11:52 AM
> *To:* user@karaf.apache.org
> *Subject:* Re: Package uses conflict: Import-Package:
> org.osgi.service.blueprint****
>
>  ****
>
> Hi,****
>
>  ****
>
> This kind of "Package uses conflict" comes from the scenario
> like, let's say, ****
>
> bundle A import-package org.osgi.service.blueprint;
> version="[1.0.0,2.0.0)", bundle A also import-package x.y.z****
>
> bunde B export-package  x.y.z with "use" directive like
> uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)"" ****
>
> Let's say bundle B already get resolved and started.****
>
> When resolve bundle A, it will use export-package x.y.z from bundle B, but
>  as bundle B export-package  x.y.z uses:="oorg.osgi.service.blueprint;
> version="[2.0.0,3.0.0)" and bundle B get resolved to
> import org.osgi.service.blueprint; version="[2.0.0,3.0.0), so it's not meet
> bundle A's restriction which need org.osgi.service.blueprint;
> version="[1.0.0,2.0.0)(notice the version mismatch between the two), then
> you see such exception.****
>
>  ****
>
> The root cause is that you install some bundles which need
> different org.osgi.service.blueprint versions, also those bundles has
> dependency with each other, you need figure it out from your bundles and
> fix it.****
>
>  ****
>
> Freeman****
>
> On 2011-11-23, at 上午11:36, XiLai Dai wrote:****
>
>
>
> ****
>
> Hello,
>
> We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build
> with maven-bundle-plugin.
> The META-INF/ MANIFEST.MF contains:
> ......
> Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...
>
> When install this bundle into Karaf 2.2.4, got error:
> Reason: Package uses conflict: Im port-Package:
> org.osgi.service.blueprint; version="[1.0.0,2.0.0)"
>
> Why it complains there has conflict?
>
> Thanks.
> Xilai****
>
>  ****
>
> ---------------------------------------------****
>
> Freeman Fang****
>
>  ****
>
> FuseSource****
>
> Email:f <de...@fusesource.com>fang@fusesource.com****
>
> Web: fusesource.com****
>
> Twitter: freemanfang****
>
> Blog: http://freemanfang.blogspot.com****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
> ---------------------------------------------****
>
> Freeman Fang****
>
>  ****
>
> FuseSource****
>
> Email:f <de...@fusesource.com>fang@fusesource.com****
>
> Web: fusesource.com****
>
> Twitter: freemanfang****
>
> Blog: http://freemanfang.blogspot.com****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
> ** **
>

RE: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by XiLai Dai <xl...@talend.com>.
Thanks much!
But unfortunately, seems there is only Aries implementation for blueprint in my Karaf container  ☹
-----------------------------------------------
karaf@trun> packages:imports | grep org.osgi.service.blueprint
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.container; version="1.0.1"
Apache Aries Blueprint Bundle (9): org.osgi.service.blueprint.reflect; version="1.0.1"
karaf@trun> packages:exports |grep org.osgi.service.blueprint
     9 org.osgi.service.blueprint; version="1.0.1"
     9 org.osgi.service.blueprint.container; version="1.0.1"
     9 org.osgi.service.blueprint.reflect; version="1.0.1"
----------------------------------------------------

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com]
Sent: Wednesday, November 23, 2011 3:27 PM
To: user@karaf.apache.org
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,
I've run a quick test on a blueprint bundle.
The configuration like
         <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <configuration>
                    <instructions>
                        ...
                           <Import-Package>!org.osgi.service.blueprint</Import-Package>
                     </instructions>
                </configuration>
            </plugin>
works for me.

Notice in your configuration you just comment out the Import-Package, so that configuration won't take effect.

However, I don't think you should change this OSGi header of this bundle, as it's correct behavior to generate org.osgi.service.blueprint;version="[1.0.0,2.0.0)" header when it's a blueprint bundle. As I mentioned previously you need figure out other bundles which wrongly export/import other version of org.osgi.service.blueprint.
From karaf console
packages:imports |grep org.osgi.service.blueprint
or
packages:exports |grep org.osgi.service.blueprint
may give you more hints. I guess most likely you install other blueprint implementation other than the aries one.

Freeman
On Wed, Nov 23, 2011 at 2:36 PM, XiLai Dai <xl...@talend.com>> wrote:
Hello,
There is no any osgi dependencies in the pom.xml file!  If OSGI-INF/blueprint/*.xml included into bundle, the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” will be generated; if remove OSGI-INF/blueprint/*.xml, then “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” was gone.

How to control this meta info?
I’ve tried adding this into the pom.xml
<!--Import-Package>
!org.osgi.service.blueprint
          </Import-Package-->
But not works.

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com<ma...@gmail.com>]
Sent: Wednesday, November 23, 2011 1:37 PM

To: user@karaf.apache.org<ma...@karaf.apache.org>
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

maven-bundle-plugin basically just analyze the dependency in pom.xml and generate OSGi meta-data header in MANIFEST.MF accordingly, you need check if your dependency introduce this package import.
Btw, you can configure the maven-bundle-plugin to totally control the OSGi meta-data header.

Freeman

On 2011-11-23, at 下午1:27, XiLai Dai wrote:

Thanks Freeman for your clear reply!

BTW, I’ve run another test with the same bundle which just removed the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from MANIFEST.MF, then, it has been installed into Karaf successfully.
So, maybe it’s a problem from maven-bundle-plugin, it should not generate the unexpected “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into MANIFEST.MF.

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com]
Sent: Wednesday, November 23, 2011 11:52 AM
To: user@karaf.apache.org<ma...@karaf.apache.org>
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

This kind of "Package uses conflict" comes from the scenario like, let's say,
bundle A import-package org.osgi.service.blueprint; version="[1.0.0,2.0.0)", bundle A also import-package x.y.z
bunde B export-package  x.y.z with "use" directive like uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)""
Let's say bundle B already get resolved and started.
When resolve bundle A, it will use export-package x.y.z from bundle B, but  as bundle B export-package  x.y.z uses:="oorg.osgi.service.blueprint; version="[2.0.0,3.0.0)" and bundle B get resolved to import org.osgi.service.blueprint; version="[2.0.0,3.0.0), so it's not meet bundle A's restriction which need org.osgi.service.blueprint; version="[1.0.0,2.0.0)(notice the version mismatch between the two), then you see such exception.

The root cause is that you install some bundles which need different org.osgi.service.blueprint versions, also those bundles has dependency with each other, you need figure it out from your bundles and fix it.

Freeman
On 2011-11-23, at 上午11:36, XiLai Dai wrote:


Hello,

We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build with maven-bundle-plugin.
The META-INF/ MANIFEST.MF contains:
......
Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...

When install this bundle into Karaf 2.2.4, got error:
Reason: Package uses conflict: Im port-Package: org.osgi.service.blueprint; version="[1.0.0,2.0.0)"

Why it complains there has conflict?

Thanks.
Xilai

---------------------------------------------
Freeman Fang

FuseSource
Email:f<ma...@fusesource.com>
Web: fusesource.com<http://fusesource.com/>
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com










---------------------------------------------
Freeman Fang

FuseSource
Email:f<ma...@fusesource.com>
Web: fusesource.com<http://fusesource.com/>
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com











Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by Freeman Fang <fr...@gmail.com>.
Hi,
I've run a quick test on a blueprint bundle.
The configuration like
         <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <configuration>
                    <instructions>
                        ...

<Import-Package>!org.osgi.service.blueprint</Import-Package>
                     </instructions>
                </configuration>
            </plugin>
works for me.

Notice in your configuration you just comment out the Import-Package, so
that configuration won't take effect.

However, I don't think you should change this OSGi header of this bundle,
as it's correct behavior to generate
org.osgi.service.blueprint;version="[1.0.0,2.0.0)" header when it's a
blueprint bundle. As I mentioned previously you need figure out other
bundles which wrongly export/import other version of
org.osgi.service.blueprint.
>From karaf console
packages:imports |grep org.osgi.service.blueprint
or
packages:exports |grep org.osgi.service.blueprint
may give you more hints. I guess most likely you install other blueprint
implementation other than the aries one.

Freeman

On Wed, Nov 23, 2011 at 2:36 PM, XiLai Dai <xl...@talend.com> wrote:

>  Hello,****
>
> There is no any osgi dependencies in the pom.xml file!  If
> OSGI-INF/blueprint/*.xml included into bundle, the
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” will be generated; if
> remove OSGI-INF/blueprint/*.xml, then
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” was gone.****
>
> ** **
>
> How to control this meta info? ****
>
> I’ve tried adding this into the pom.xml****
>
> <!--Import-Package>****
>
> !org.osgi.service.blueprint****
>
>           </Import-Package-->****
>
> But not works.****
>
> ** **
>
> Thanks.****
>
> Xilai****
>
> *From:* Freeman Fang [mailto:freeman.fang@gmail.com]
> *Sent:* Wednesday, November 23, 2011 1:37 PM
>
> *To:* user@karaf.apache.org
> *Subject:* Re: Package uses conflict: Import-Package:
> org.osgi.service.blueprint****
>
> ** **
>
> Hi,****
>
> ** **
>
> maven-bundle-plugin basically just analyze the dependency in pom.xml and
> generate OSGi meta-data header in MANIFEST.MF accordingly, you need check
> if your dependency introduce this package import.****
>
> Btw, you can configure the maven-bundle-plugin to totally control the OSGi
> meta-data header.****
>
> ** **
>
> Freeman****
>
> ** **
>
> On 2011-11-23, at 下午1:27, XiLai Dai wrote:****
>
>
>
> ****
>
> Thanks Freeman for your clear reply!****
>
>  ****
>
> BTW, I’ve run another test with the same bundle which just removed the
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from MANIFEST.MF, then,
> it has been installed into Karaf successfully.****
>
> So, maybe it’s a problem from maven-bundle-plugin, it should not generate
> the unexpected “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into
> MANIFEST.MF.****
>
>  ****
>
> Thanks.****
>
> Xilai****
>
> *From:* Freeman Fang [mailto:freeman.fang@gmail.com<fr...@gmail.com>
> ]
> *Sent:* Wednesday, November 23, 2011 11:52 AM
> *To:* user@karaf.apache.org
> *Subject:* Re: Package uses conflict: Import-Package:
> org.osgi.service.blueprint****
>
>  ****
>
> Hi,****
>
>  ****
>
> This kind of "Package uses conflict" comes from the scenario
> like, let's say, ****
>
> bundle A import-package org.osgi.service.blueprint;
> version="[1.0.0,2.0.0)", bundle A also import-package x.y.z****
>
> bunde B export-package  x.y.z with "use" directive like
> uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)"" ****
>
> Let's say bundle B already get resolved and started.****
>
> When resolve bundle A, it will use export-package x.y.z from bundle B, but
>  as bundle B export-package  x.y.z uses:="oorg.osgi.service.blueprint;
> version="[2.0.0,3.0.0)" and bundle B get resolved to
> import org.osgi.service.blueprint; version="[2.0.0,3.0.0), so it's not meet
> bundle A's restriction which need org.osgi.service.blueprint;
> version="[1.0.0,2.0.0)(notice the version mismatch between the two), then
> you see such exception.****
>
>  ****
>
> The root cause is that you install some bundles which need
> different org.osgi.service.blueprint versions, also those bundles has
> dependency with each other, you need figure it out from your bundles and
> fix it.****
>
>  ****
>
> Freeman****
>
> On 2011-11-23, at 上午11:36, XiLai Dai wrote:****
>
>
>
>
> ****
>
> Hello,
>
> We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build
> with maven-bundle-plugin.
> The META-INF/ MANIFEST.MF contains:
> ......
> Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...
>
> When install this bundle into Karaf 2.2.4, got error:
> Reason: Package uses conflict: Im port-Package:
> org.osgi.service.blueprint; version="[1.0.0,2.0.0)"
>
> Why it complains there has conflict?
>
> Thanks.
> Xilai****
>
>  ****
>
> ---------------------------------------------****
>
> Freeman Fang****
>
>  ****
>
> FuseSource****
>
> Email:f <de...@fusesource.com>fang@fusesource.com****
>
> Web: fusesource.com****
>
> Twitter: freemanfang****
>
> Blog: http://freemanfang.blogspot.com****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
>  ****
>
> ** **
>
> ---------------------------------------------****
>
> Freeman Fang****
>
> ** **
>
> FuseSource****
>
> Email:f <de...@fusesource.com>fang@fusesource.com****
>
> Web: fusesource.com****
>
> Twitter: freemanfang****
>
> Blog: http://freemanfang.blogspot.com****
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>

RE: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by XiLai Dai <xl...@talend.com>.
Hello,
There is no any osgi dependencies in the pom.xml file!  If OSGI-INF/blueprint/*.xml included into bundle, the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” will be generated; if remove OSGI-INF/blueprint/*.xml, then “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” was gone.

How to control this meta info?
I’ve tried adding this into the pom.xml
<!--Import-Package>
!org.osgi.service.blueprint
          </Import-Package-->
But not works.

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com]
Sent: Wednesday, November 23, 2011 1:37 PM
To: user@karaf.apache.org
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

maven-bundle-plugin basically just analyze the dependency in pom.xml and generate OSGi meta-data header in MANIFEST.MF accordingly, you need check if your dependency introduce this package import.
Btw, you can configure the maven-bundle-plugin to totally control the OSGi meta-data header.

Freeman

On 2011-11-23, at 下午1:27, XiLai Dai wrote:


Thanks Freeman for your clear reply!

BTW, I’ve run another test with the same bundle which just removed the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from MANIFEST.MF, then, it has been installed into Karaf successfully.
So, maybe it’s a problem from maven-bundle-plugin, it should not generate the unexpected “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into MANIFEST.MF.

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com]
Sent: Wednesday, November 23, 2011 11:52 AM
To: user@karaf.apache.org<ma...@karaf.apache.org>
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

This kind of "Package uses conflict" comes from the scenario like, let's say,
bundle A import-package org.osgi.service.blueprint; version="[1.0.0,2.0.0)", bundle A also import-package x.y.z
bunde B export-package  x.y.z with "use" directive like uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)""
Let's say bundle B already get resolved and started.
When resolve bundle A, it will use export-package x.y.z from bundle B, but  as bundle B export-package  x.y.z uses:="oorg.osgi.service.blueprint; version="[2.0.0,3.0.0)" and bundle B get resolved to import org.osgi.service.blueprint; version="[2.0.0,3.0.0), so it's not meet bundle A's restriction which need org.osgi.service.blueprint; version="[1.0.0,2.0.0)(notice the version mismatch between the two), then you see such exception.

The root cause is that you install some bundles which need different org.osgi.service.blueprint versions, also those bundles has dependency with each other, you need figure it out from your bundles and fix it.

Freeman
On 2011-11-23, at 上午11:36, XiLai Dai wrote:



Hello,

We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build with maven-bundle-plugin.
The META-INF/ MANIFEST.MF contains:
......
Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...

When install this bundle into Karaf 2.2.4, got error:
Reason: Package uses conflict: Im port-Package: org.osgi.service.blueprint; version="[1.0.0,2.0.0)"

Why it complains there has conflict?

Thanks.
Xilai

---------------------------------------------
Freeman Fang

FuseSource
Email:f<ma...@fusesource.com>
Web: fusesource.com<http://fusesource.com/>
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com










---------------------------------------------
Freeman Fang

FuseSource
Email:f<ma...@fusesource.com>
Web: fusesource.com<http://fusesource.com/>
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com










Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

maven-bundle-plugin basically just analyze the dependency in pom.xml  
and generate OSGi meta-data header in MANIFEST.MF accordingly, you  
need check if your dependency introduce this package import.
Btw, you can configure the maven-bundle-plugin to totally control the  
OSGi meta-data header.

Freeman

On 2011-11-23, at 下午1:27, XiLai Dai wrote:

> Thanks Freeman for your clear reply!
>
> BTW, I’ve run another test with the same bundle which just removed  
> the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from  
> MANIFEST.MF, then, it has been installed into Karaf successfully.
> So, maybe it’s a problem from maven-bundle-plugin, it should not  
> generate the unexpected  
> “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into  
> MANIFEST.MF.
>
> Thanks.
> Xilai
> From: Freeman Fang [mailto:freeman.fang@gmail.com]
> Sent: Wednesday, November 23, 2011 11:52 AM
> To: user@karaf.apache.org
> Subject: Re: Package uses conflict: Import-Package:  
> org.osgi.service.blueprint
>
> Hi,
>
> This kind of "Package uses conflict" comes from the scenario like,  
> let's say,
> bundle A import-package org.osgi.service.blueprint;  
> version="[1.0.0,2.0.0)", bundle A also import-package x.y.z
> bunde B export-package  x.y.z with "use" directive like  
> uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)""
> Let's say bundle B already get resolved and started.
> When resolve bundle A, it will use export-package x.y.z from bundle  
> B, but  as bundle B export-package  x.y.z  
> uses:="oorg.osgi.service.blueprint; version="[2.0.0,3.0.0)" and  
> bundle B get resolved to import org.osgi.service.blueprint;  
> version="[2.0.0,3.0.0), so it's not meet bundle A's restriction  
> which need org.osgi.service.blueprint; version="[1.0.0,2.0.0)(notice  
> the version mismatch between the two), then you see such exception.
>
> The root cause is that you install some bundles which need different  
> org.osgi.service.blueprint versions, also those bundles has  
> dependency with each other, you need figure it out from your bundles  
> and fix it.
>
> Freeman
> On 2011-11-23, at 上午11:36, XiLai Dai wrote:
>
>
> Hello,
>
> We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and  
> build with maven-bundle-plugin.
> The META-INF/ MANIFEST.MF contains:
> ......
> Import- 
> Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...
>
> When install this bundle into Karaf 2.2.4, got error:
> Reason: Package uses conflict: Im port-Package:  
> org.osgi.service.blueprint; version="[1.0.0,2.0.0)"
>
> Why it complains there has conflict?
>
> Thanks.
> Xilai
>
> ---------------------------------------------
> Freeman Fang
>
> FuseSource
> Email:ffang@fusesource.com
> Web: fusesource.com
> Twitter: freemanfang
> Blog: http://freemanfang.blogspot.com
>
>
>
>
>
>
>
>
>

---------------------------------------------
Freeman Fang

FuseSource
Email:ffang@fusesource.com
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com










RE: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by XiLai Dai <xl...@talend.com>.
Thanks Freeman for your clear reply!

BTW, I’ve run another test with the same bundle which just removed the “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” from MANIFEST.MF, then, it has been installed into Karaf successfully.
So, maybe it’s a problem from maven-bundle-plugin, it should not generate the unexpected “org.osgi.service.blueprint;version="[1.0.0,2.0.0)” into MANIFEST.MF.

Thanks.
Xilai
From: Freeman Fang [mailto:freeman.fang@gmail.com]
Sent: Wednesday, November 23, 2011 11:52 AM
To: user@karaf.apache.org
Subject: Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Hi,

This kind of "Package uses conflict" comes from the scenario like, let's say,
bundle A import-package org.osgi.service.blueprint; version="[1.0.0,2.0.0)", bundle A also import-package x.y.z
bunde B export-package  x.y.z with "use" directive like uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)""
Let's say bundle B already get resolved and started.
When resolve bundle A, it will use export-package x.y.z from bundle B, but  as bundle B export-package  x.y.z uses:="oorg.osgi.service.blueprint; version="[2.0.0,3.0.0)" and bundle B get resolved to import org.osgi.service.blueprint; version="[2.0.0,3.0.0), so it's not meet bundle A's restriction which need org.osgi.service.blueprint; version="[1.0.0,2.0.0)(notice the version mismatch between the two), then you see such exception.

The root cause is that you install some bundles which need different org.osgi.service.blueprint versions, also those bundles has dependency with each other, you need figure it out from your bundles and fix it.

Freeman
On 2011-11-23, at 上午11:36, XiLai Dai wrote:


Hello,

We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and build with maven-bundle-plugin.
The META-INF/ MANIFEST.MF contains:
......
Import-Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...

When install this bundle into Karaf 2.2.4, got error:
Reason: Package uses conflict: Im port-Package: org.osgi.service.blueprint; version="[1.0.0,2.0.0)"

Why it complains there has conflict?

Thanks.
Xilai

---------------------------------------------
Freeman Fang

FuseSource
Email:f<ma...@fusesource.com>
Web: fusesource.com<http://fusesource.com/>
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com










Re: Package uses conflict: Import-Package: org.osgi.service.blueprint

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

This kind of "Package uses conflict" comes from the scenario like,  
let's say,
bundle A import-package org.osgi.service.blueprint;  
version="[1.0.0,2.0.0)", bundle A also import-package x.y.z
bunde B export-package  x.y.z with "use" directive like  
uses:="org.osgi.service.blueprint; version="[2.0.0,3.0.0)""
Let's say bundle B already get resolved and started.
When resolve bundle A, it will use export-package x.y.z from bundle B,  
but  as bundle B export-package  x.y.z  
uses:="oorg.osgi.service.blueprint; version="[2.0.0,3.0.0)" and bundle  
B get resolved to import org.osgi.service.blueprint;  
version="[2.0.0,3.0.0), so it's not meet bundle A's restriction which  
need org.osgi.service.blueprint; version="[1.0.0,2.0.0)(notice the  
version mismatch between the two), then you see such exception.

The root cause is that you install some bundles which need different  
org.osgi.service.blueprint versions, also those bundles has dependency  
with each other, you need figure it out from your bundles and fix it.

Freeman
On 2011-11-23, at 上午11:36, XiLai Dai wrote:

> Hello,
>
> We have a bundle with blueprint (OSGI-INF/blueprint/xxx.xml) and  
> build with maven-bundle-plugin.
> The META-INF/ MANIFEST.MF contains:
> ......
> Import- 
> Package: ...,org.osgi.service.blueprint;version="[1.0.0,2.0.0)",...
>
> When install this bundle into Karaf 2.2.4, got error:
> Reason: Package uses conflict: Im port-Package:  
> org.osgi.service.blueprint; version="[1.0.0,2.0.0)"
>
> Why it complains there has conflict?
>
> Thanks.
> Xilai

---------------------------------------------
Freeman Fang

FuseSource
Email:ffang@fusesource.com
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com