[
https://issues.apache.org/jira/browse/FELIX-676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sahoo updated FELIX-676:
------------------------
Attachment: dynamic-import-mandatory-attr.zip
Unzip. Read README
> Mandatory attribute matching not working for DynamicImport-Package
> -------------------------------------------------------------------
>
> Key: FELIX-676
> URL: https://issues.apache.org/jira/browse/FELIX-676
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: felix-1.0.4
> Environment: NA
> Reporter: Sahoo
> Fix For: felix-1.2.0
>
> Attachments: dynamic-import-mandatory-attr.zip
>
>
> Section #3.8.2 of R4 spec says the following:
> /All mandatory arbitrary attributes (as specified by the exporter, see
> Mandatory Attributes on page 45) must be specified in the dynamic import
> definition and match./
> I suspect it is *not* working in Felix yet. I am using Felix v1.0.4.
> Mandatory attributes are considered while resolving static imports, but not
> for dynamic imports. I have two bundles that have identical contents, except
> that bundle #10 uses regular import, where as bundle #11 uses dynamic import.
> They both are trying to load a class foo.A. Package foo is exported by bundle
> #12 and it has a mandatory attribute defined like this:
> /
> Export-Package = foo;password=foo;mandatory:=password/
> As shown below, when I start bundle #10, I get resolution error, where as
> bundle #11 happily wires to bundle #12.
> -> start 10
> org.osgi.framework.BundleException: Unresolved package in bundle 10: package;
> (package=foo)
> -> start 11
> DEBUG: WIRE: 11.0 -> org.osgi.framework -> 0
> DEBUG: WIRE: 12.0 -> foo -> 12.0
> DEBUG: WIRE: 11.0 -> foo -> 12.0
> class foo.A is loaded by 12.0
> The diff between manifest files of bundle #10 and #11 is supplied below:
> diff dynamic-importer/target/classes/META-INF/MANIFEST.MF
> static-importer/target/classes/META-INF/MANIFEST.MF
> 5,6c5,6
> < Import-Package: org.osgi.framework;version="1.3"
> < Bnd-LastModified: 1218274803828
> ---
> > Import-Package: foo,org.osgi.framework;version="1.3"
> > Bnd-LastModified: 1218274805799
> 8c8
> < Bundle-Name: dynamic-importer
> ---
> > Bundle-Name: static-importer
> 12,13c12,13
> < Bundle-SymbolicName: sahoo.dynamic-import-mandatory-attr.dynamic-impor
> < ter
> ---
> > Bundle-SymbolicName: sahoo.dynamic-import-mandatory-attr.static-import
> > er
> 15d14
> < DynamicImport-Package: *
> I am attaching a simple test case demonstrating the same.
> I suspect it has to do with the way filters are used to match requirements
> with capabilities. The filter is not aware of mandatory attributes, so it
> matches even when they are not specified.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.