<groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> <version>7.0.22</version> has dependenca to apache-juli MANIFEST: org.apache.juli.logging;version="[6.0.18, 7.0.0)" BUT in POM: <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-juli</artifactId> <version>7.0.22</version> <scope>compile</scope> </dependency> WHY????????
Correcting component
Bug or not a bug?
*** Bug 52429 has been marked as a duplicate of this bug. ***
this MANIFEST: org.apache.juli.logging;version="[6.0.18, 7.0.0)" would indicate that the component can use juli versions from 6.0.18 and up, as well as 7.0.0 and up. not being that familiar with OSGi, what's the issue here? submit a patch
(In reply to comment #4) > this > MANIFEST: > org.apache.juli.logging;version="[6.0.18, 7.0.0)" > > would indicate that the component can use juli versions from 6.0.18 and up, as > well as 7.0.0 and up. not being that familiar with OSGi, what's the issue here? > submit a patch From my math knowledge I would read the above range as "not including 7.0.0". That is 6.9.99 is OK, but 7.0.0 is not. As some stackoverflow answer hinted, the version ranges are documented "in section 3.2.6 of the OSGi Core Specification." I think you just mean ">= 6.0.18" here. From section 3.2.6 it reads that such a range is written just as "6.0.18". (In Apache Ivy I would write "[6.0.18,)", but it is not a valid syntax in OSGi).
[6.0.18, 7.0.0) means all versions from including 6.0.18 to except 7.0.0 - not including versions under 6.0.18 or above 7.0.0. To fix this issue, you have to change the MANIFEST: MANIFEST: org.apache.juli.logging;version="[7.0.0, 7.1.0)" OR org.apache.juli.logging;version="[7.0.0, 8.0.0)" Please refet to my last post in Bug 52381 Regards Pancho
(In reply to comment #6) > [6.0.18, 7.0.0) means all versions from including 6.0.18 to except 7.0.0 - not > including versions under 6.0.18 or above 7.0.0. > > To fix this issue, you have to change the MANIFEST: > > MANIFEST: > org.apache.juli.logging;version="[7.0.0, 7.1.0)" > > OR > > org.apache.juli.logging;version="[7.0.0, 8.0.0)" > > Please refet to my last post in Bug 52381 > > Regards > Pancho aren't you excluding version 6.0.18+ here?
(In reply to comment #7) Yes, because ... tomcat-jdbc in the version 7.0.22 has a dependency in the pom file to tomcat-juli in the version 7.0.22 ... soo MANIFEST: Import-Package: org.apache.juli.logging;version="[7.0.0, 7.1.0)" > (In reply to comment #6) > > [6.0.18, 7.0.0) means all versions from including 6.0.18 to except 7.0.0 - not > > including versions under 6.0.18 or above 7.0.0. > > > > To fix this issue, you have to change the MANIFEST: > > > > MANIFEST: > > org.apache.juli.logging;version="[7.0.0, 7.1.0)" > > > > OR > > > > org.apache.juli.logging;version="[7.0.0, 8.0.0)" > > > > Please refet to my last post in Bug 52381 > > > > Regards > > Pancho > > aren't you excluding version 6.0.18+ here?
(In reply to comment #8) > (In reply to comment #7) > > Yes, because ... tomcat-jdbc in the version 7.0.22 has a dependency in the pom > file to tomcat-juli in the version 7.0.22 ... soo > > MANIFEST: > Import-Package: org.apache.juli.logging;version="[7.0.0, 7.1.0)" > > > > (In reply to comment #6) > > > [6.0.18, 7.0.0) means all versions from including 6.0.18 to except 7.0.0 - not > > > including versions under 6.0.18 or above 7.0.0. > > > > > > To fix this issue, you have to change the MANIFEST: > > > > > > MANIFEST: > > > org.apache.juli.logging;version="[7.0.0, 7.1.0)" > > > > > > OR > > > > > > org.apache.juli.logging;version="[7.0.0, 8.0.0)" > > > > > > Please refet to my last post in Bug 52381 > > > > > > Regards > > > Pancho > > > > aren't you excluding version 6.0.18+ here? what's in the POM is not really related to what should be in an OSGI manifest though. Nothing should prevent you from dropping this library into a container running Tomcat 6
> > what's in the POM is not really related to what should be in an OSGI manifest > though. Nothing should prevent you from dropping this library into a container > running Tomcat 6 Of course it is to 100% related in an OSGI container, like Karaf! If you need version 7 of library A to run version 7 of library B. And ... is Apache Tomcat an OSGI container? I think no. So the imports and the exports in the MANIFEST are only relevant in an OSGI continer, but they must be the same like these in the pom file or in the build.xml. You can not build with version 7 and want to run with version 6 .. or?
yes, the jdbc-pool library can be built on tomcat 7 and you can drop that into a Tomcat 6 container, and it will work just fine against the tomcat 6 juli library
Ok, i undestand ... i am not that familiar with the build and run dependencies of the tomcat libraries. Please correct me if i am wrong: tomcat-jdbc in the version 7.0.22 can/should run with tomcat-juli in the version 6.0.18 but has a compile dependency to tomcat-juli in the version 7.0.22. The fix of this issue will be than: tomcat-jdbc MANIFEST: Import-Package: org.apache.juli.logging;version="[6.0, 7.1)" OR may be Import-Package: org.apache.juli.logging;version="[6.0, 8.0)" But be careful with that version range. This means tomcat-jdbc can run with all versions in [6.0.0, 7.1.0) of tomcat-juli.
.22. > > The fix of this issue will be than: > tomcat-jdbc MANIFEST: > Import-Package: org.apache.juli.logging;version="[6.0, 7.1)" > OR may be > Import-Package: org.apache.juli.logging;version="[6.0, 8.0)" > > But be careful with that version range. This means tomcat-jdbc can run with all > versions in [6.0.0, 7.1.0) of tomcat-juli. and that is correct. it can run with all versions of 6. so, can we get a patch or correct manifest, attached to this bug, and then we can get that taken care of
(In reply to comment #13) > .22. > > > > The fix of this issue will be than: > > tomcat-jdbc MANIFEST: > > Import-Package: org.apache.juli.logging;version="[6.0, 7.1)" > > OR may be > > Import-Package: org.apache.juli.logging;version="[6.0, 8.0)" > > > > But be careful with that version range. This means tomcat-jdbc can run with all > > versions in [6.0.0, 7.1.0) of tomcat-juli. > > and that is correct. it can run with all versions of 6. > so, can we get a patch or correct manifest, attached to this bug, and then we > can get that taken care of Hi Filip, how are you building your manifest files? I hope automatically? It´s enough to change the version range of tomcat-juli in the tomcat-jdbc MANIFEST. The problem is if I provide you a static correct tomcat-jdbc MANIFEST file for the version 7.0.22 ... perhaps it is not compatible with another versions of tomcat-jdbc ... should I?
Hi, i recommend reading this whitepaper to understand the versioning in OSGI: http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf
Requested correct manifest was not provided. Closing bug.
Created attachment 29897 [details] Updated dependency on Juli, allow versions 7.0.x Could this be fixed? I would like to use tomcat-jdbc in an OSGi environment and currently the version restriction [6.0.18, 7.1.0) on juli.logging forces me to install a version 6 of tomcat-juli.
Just realize there is another problem when trying to use tomcat-jdbc under OSGi: Juli is not a bundle. So the version restriction in tomcat-jdbc's MANIFEST does not really make sense, as Juli does not export its packages with a version.
Original issue should have been fixed by r1455973, r1456080 Issue in comment 18 still remains.
(In reply to comment #19) > Original issue should have been fixed by r1455973, r1456080 Fixed in trunk and 7.0.x and will be included in 7.0.39 onwards. > Issue in comment 18 still remains. There is another bug report for this issue - 52381. I'm proposing to close this one.