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

Bryan Pendleton commented on DERBY-6069:
----------------------------------------

I'm a bit wary about increasing the exports significantly. I guess I'm a bit 
confused about what
the basic issue is. Note that there are some very similar discussions in 
DERBY-1945, and
in DERBY-4120. For example, regarding the double-exporting of certain packages, 
see:

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

Also note that, as discussed in DERBY-4120 and in DERBY-4574, we've
struggled for years trying to figure out what classes should be exported, and 
why, and we've
also noted that we've been unable to write clean regression tests for this 
behavior because we've
never got a clear explanation of what classes and packages we want or need to 
export.

So exporting too much is a problem (because we start to get certain packages 
exported
multiple times, by different jars), and exporting too little is a problem 
(because applications
can't get access to the desired classes).

But it definitely seems like at least part of the changes that were done for 
DERBY-4120 were
in error (introducing the duplicate exports), and should be revised.

But I fear the work needs to involve somebody who is quite familiar with the 
OSGI mechanisms,
because when I did that earlier work I was just taking suggestions from people 
trying to
use those mechanisms, and I both (a) didn't understand what was the right 
change to make,
and (b) didn't like the fact that we had no way to test if I was making the 
right change or not.

Just some notes of caution from an old greybeard :)

                
> 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

Reply via email to