Hi Peter,

Dynamic Imports are subtracted from the referred set, but this only
works when there are no wildcards. Do you use wildcards?

The seem to be subtracted from the Import-Package configuration and
ultimately be missing when checking for the completeness of the
import.

If not, can you send me a test bundle?

Attached is a pom using Richards Bundle Plugin based on bnd. The has a
DynamicImport-Package for the org.apache.commons.logging package.

Running this through mvn with enabled debug output yields the
following (excerpt):

-------------8<-------------
[DEBUG] Configuring mojo
'org.apache.felix:maven-bundle-plugin:0.8.0-SNAPSHOT:bundle' -->
[DEBUG]   (f) baseDir = s:\src\osgi\apache-commons-osgi\commons-digester-osgi
[DEBUG]   (f) buildDirectory =
s:\src\osgi\apache-commons-osgi\commons-digester-osgi\target
[DEBUG]   (f) instructions =
{DynamicImport-Package=org.apache.commons.logging.impl,
Export-Package=org.apache.commons.digester;
                       org.apache.commons.digester.parser;
                       org.apache.commons.digester.plugins;
                       org.apache.commons.digester.plugins.strategies;
                       org.apache.commons.digester.substitution;
                       org.apache.commons.digester.xmlrules;
                           version="1.7", Import-Package=*, Private-Package=*}
[DEBUG]   (f) outputDirectory =
s:\src\osgi\apache-commons-osgi\commons-digester-osgi\target\classes
[DEBUG]   (f) project = [EMAIL PROTECTED]
[DEBUG] -- end configuration --
[INFO] [bundle:bundle]
[ERROR] Unresolved references to [org.apache.commons.logging.impl] by
class(es) on the Bundle-Classpath[Jar:dot]:
[org/apache/commons/digester/plugins/LogUtils.class]
org.apache.maven.plugin.MojoFailureException: Found errors, see log
       at 
org.apache.felix.tools.maven2.bundleplugin.BundlePlugin.execute(BundlePlugin.java:150)
       at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:412)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:534)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:475)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:454)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:273)
       at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:140)
       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)
       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
       at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
       at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
-------------8<-------------


Many Thanks and Regards
Felix


Here is the pom:
<project>
   <modelVersion>4.0.0</modelVersion>
   <parent>
       <groupId>com.day.osgi.apache</groupId>
       <artifactId>apache-commons-osgi</artifactId>
       <version>1</version>
   </parent>

   <artifactId>commons-digester-osgi</artifactId>
   <version>1.7</version>
   <packaging>bundle</packaging>

   <name>Commons Digester packaged as an OSGi Bundle</name>
   <description>OSGi Bundle of Commons Digester</description>

   <dependencies>
       <dependency>
           <groupId>commons-digester</groupId>
           <artifactId>commons-digester</artifactId>
           <version>${version}</version>
           <exclusions>
               <exclusion>
                  <groupId>commons-beanutils</groupId>
                  <artifactId>commons-beanutils</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>commons-collections</groupId>
                  <artifactId>commons-collections</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>commons-logging</groupId>
                  <artifactId>commons-logging</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>xml-apis</groupId>
                  <artifactId>xml-apis</artifactId>
               </exclusion>
            </exclusions>
       </dependency>
   </dependencies>

   <build>
       <plugins>
           <plugin>
               <groupId>org.apache.felix</groupId>
               <artifactId>maven-bundle-plugin</artifactId>
               <version>0.8.0-SNAPSHOT</version>
               <extensions>true</extensions>
               <configuration>
                   <instructions>
                     <Export-Package>
                       org.apache.commons.digester;
                       org.apache.commons.digester.parser;
                       org.apache.commons.digester.plugins;
                       org.apache.commons.digester.plugins.strategies;
                       org.apache.commons.digester.substitution;
                       org.apache.commons.digester.xmlrules;
                           version="${version}"
                     </Export-Package>
                     <Import-Package>*</Import-Package>
                     <DynamicImport-Package>
                       org.apache.commons.logging.impl
                     </DynamicImport-Package>
                     <Private-Package>*</Private-Package>
                   </instructions>
               </configuration>
           </plugin>
       </plugins>
   </build>
</project>

Reply via email to