db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Müller (JIRA) <j...@apache.org>
Subject [jira] [Commented] (DERBY-6069) Derby doesn't export the version number in its OSGI exported packages
Date Wed, 27 Mar 2013 18:57:16 GMT

    [ https://issues.apache.org/jira/browse/DERBY-6069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13615631#comment-13615631
] 

Christian Müller commented on DERBY-6069:
-----------------------------------------

It's a bit complicated... :-)

In OSGI you can define dependencies to bundles or packages. You can define (coarse grained)
dependencies to bundles like:
Require-Bundle: derby;bundle-version="10.8.3000000.1405108"

which will probably work. However, the recommended way is to define (fine grain) dependencies
to packages your bundle depend on:
Import-Package: org.apache.derby.jdbc;version=10.8.3

At present, derby use the following Export-Package syntax:
Export-Package: org.apache.derby.jdbc

which is in OSGI the same as
Export-Package: org.apache.derby.jdbc;version="0.0.0"

and this will not resolve the Spring JDBC's (and others) Import-Package declaration (which
is by the way "translated" into "version 10.8.3 and all later").

I don't have a good use case in mind where it make sense to have different version numbers
for you package exports and for your bundle. However, the spec allows this and because of
this, you have to explicitly define the version numbers for your package exports. This can
not be derive from the bundle version.

These links could be useful:
http://wiki.osgi.org/wiki/Bundle-Version
http://wiki.osgi.org/wiki/Require-Bundle
http://wiki.osgi.org/wiki/Export-Package
http://wiki.osgi.org/wiki/Import-Package

Best,
Christian
                
> Derby doesn't export the version number in its OSGI exported packages
> ---------------------------------------------------------------------
>
>                 Key: DERBY-6069
>                 URL: https://issues.apache.org/jira/browse/DERBY-6069
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.9.1.0, 10.8.3.0
>            Reporter: Christian Müller
>              Labels: osgi
>         Attachments: MANIFEST.MF
>
>
> Derby doesn't export the version number in its OSGI exported packages. See the following
exports:
> {noformat}
> karaf@root> headers 259
> Apache Derby 10.8 (259)
> -----------------------
> Manifest-Version = 1.0
> Ant-Version = Apache Ant 1.7.0
> Class-Path = derbyLocale_cs.jar derbyLocale_de_DE.jar derbyLocale_es.jar derbyLocale_fr.jar
derbyLocale_hu.jar derbyLocale_it.jar derbyLocal
> e_ja_JP.jar derbyLocale_ko_KR.jar derbyLocale_pl.jar derbyLocale_pt_BR.jar derbyLocale_ru.jar
derbyLocale_zh_CN.jar derbyLocale_zh_TW.jar
> Sealed = true
> Created-By = 2.4 (IBM Corporation)
> Bundle-Vendor = Apache Software Foundation
> Bundle-Activator = org.apache.derby.osgi.EmbeddedActivator
> Bundle-Name = Apache Derby 10.8
> Bundle-SymbolicName = derby
> Bundle-Version = 10.8.3000000.1405108
> Bundle-ManifestVersion = 2
> DynamicImport-Package =
>         *
> Export-Package =
>         org.apache.derby.authentication,
>         org.apache.derby.database,
>         org.apache.derby.io,
>         org.apache.derby.jdbc,
>         org.apache.derby.vti
> {noformat}
> {noformat}
> karaf@root> headers 250
> Apache Derby 10.9 (250)
> -----------------------
> Manifest-Version = 1.0
> Ant-Version = Apache Ant 1.7.1
> Class-Path = derbyLocale_cs.jar derbyLocale_de_DE.jar derbyLocale_es.jar derbyLocale_fr.jar
derbyLocale_hu.jar derbyLocale_it.jar derbyLocal
> e_ja_JP.jar derbyLocale_ko_KR.jar derbyLocale_pl.jar derbyLocale_pt_BR.jar derbyLocale_ru.jar
derbyLocale_zh_CN.jar derbyLocale_zh_TW.jar
> Sealed = true
> Created-By = 20.6-b01-415 (Apple Inc.)
> Bundle-Vendor = Apache Software Foundation
> Bundle-Activator = org.apache.derby.osgi.EmbeddedActivator
> Bundle-Name = Apache Derby 10.9
> Bundle-SymbolicName = derby
> Bundle-Version = 10.9.1000000.1344872
> Bundle-ManifestVersion = 2
> DynamicImport-Package =
>         *
> Export-Package =
>         org.apache.derby.authentication,
>         org.apache.derby.database,
>         org.apache.derby.io,
>         org.apache.derby.jdbc,
>         org.apache.derby.vti
> {noformat}
> This leads to problems, if other bundles imports derby packages with a specific version
or version range (like spring-jdbc do):
> {noformat}
> karaf@root> headers 251
> Spring JDBC (251)
> -----------------
> Manifest-Version = 1.0
> ...
> Import-Package =
>         ...
>         org.apache.derby.impl.io;resolution:=optional;version="[10.5.0, 11.0.0)",
>         org.apache.derby.jdbc;resolution:=optional;version="[10.5.0, 11.0.0)",
> ...
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message