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