You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Yuri (JIRA)" <ji...@apache.org> on 2011/04/15 18:50:05 UTC
[jira] [Created] (FELIX-2918) Missing package in Import-Package
causes NoClassDefFoundError at runtime
Missing package in Import-Package causes NoClassDefFoundError at runtime
------------------------------------------------------------------------
Key: FELIX-2918
URL: https://issues.apache.org/jira/browse/FELIX-2918
Project: Felix
Issue Type: Bug
Components: Maven Bundle Plugin
Affects Versions: maven-bundle-plugin-2.3.4
Environment: OSX Snow Leopard, Maven3, Java6, Guice/Peaberry
Reporter: Yuri
Priority: Minor
I have an issue where I get a NoClassDefFoundError while starting my multi-project bundles. This exception is thrown while Peaberry is creating an proxy for a multiple() import. Aside from the Peaberry specifics, the multiple() import is loading the service interface, it's implementation and dependencies until it hits this error. After taking a closer look and comparing the bundle giving me grief to another similar (wrt dependencies) one that was working fine, I noticed two differences in the Manifest: a missing package in the Import-Package and the same package missing from the uses directive in the Export-Package. Basically, maven-bundle-plugin was not "seeing" the missing package when auto generating the manifest.
The scenario, in more detail, is as follows.
Bundle A (the one with the missing package in the manifest) imports packages from bundle E:
BUNDLE A (package a):
--------
interface a.AS extends e.ES<a.AS,a.AW>{}
interface a.AW extends e.EW<a.AS,a.AW>{}
BUNDLE E (packages e and b):
--------
interface e.EW<S extends e.ES<S,W>, W extends e.EW<S,W>> extends b.AD, b.AH{}
interface b.AD{} // THIS IS THE NoClassDefFoundError CLASS
interface b.AH{}
I then ran my mvn3 build with maven-bundle-plugin v2.3.4 and attached a
debugger to it. I then stopped in the aQute.lib.osgi.Analyzer line
1684 (t.addAll(clazz.getReferred());) for class a.AS. I was expecting
to see packages a (for a.AS and the two generic parameters a.AS and
a.AW, which happens to be in the same package), e (for e.ES interface,
and the two generic parameters a.ES and e.EW, which happens to be in
the same package) and b (b.AD and b.AH). However, I didn't see the
package b there.
So it seems that BND is not analyzing dependencies of dependencies and the reason my other module worked was because there was an unrelated, direct dependency to package b somewhere else, forcing the package to be added to the Manifest.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (FELIX-2918) Missing package in Import-Package
causes NoClassDefFoundError at runtime
Posted by "Peter Kriens (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/FELIX-2918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13020920#comment-13020920 ]
Peter Kriens commented on FELIX-2918:
-------------------------------------
I think the problem is caused by improper dynamic loading in Guice and not bnd.
Why do you expect to see package b in the analysis of A? A has no reference to package b whatsoever, look in the class file.
a.AS -> e.ES -> b.AD. Therefore A should import e but not more.
If you look at the class file for AS you will not find any reference of AD nor AH because these are referenced by EW and ES. To make it more clear, I simplified the example a bit:
A: package a;
public class A implements B {}
B: package b;
public interface B extends C {}
C: package c;
public interface C {}
It is clear here that A should not import C. It is likely that the Guice code tries to load the interfaces through the same class loader but it must follow the rules and use the loader of interface B to load interface C and not as it seems to do now, the loader of class A.
If you can verify this, please close the bug otherwise please try to make a minimal example and send it to me..
> Missing package in Import-Package causes NoClassDefFoundError at runtime
> ------------------------------------------------------------------------
>
> Key: FELIX-2918
> URL: https://issues.apache.org/jira/browse/FELIX-2918
> Project: Felix
> Issue Type: Bug
> Components: Maven Bundle Plugin
> Affects Versions: maven-bundle-plugin-2.3.4
> Environment: OSX Snow Leopard, Maven3, Java6, Guice/Peaberry
> Reporter: Yuri
> Priority: Minor
>
> I have an issue where I get a NoClassDefFoundError while starting my multi-project bundles. This exception is thrown while Peaberry is creating an proxy for a multiple() import. Aside from the Peaberry specifics, the multiple() import is loading the service interface, it's implementation and dependencies until it hits this error. After taking a closer look and comparing the bundle giving me grief to another similar (wrt dependencies) one that was working fine, I noticed two differences in the Manifest: a missing package in the Import-Package and the same package missing from the uses directive in the Export-Package. Basically, maven-bundle-plugin was not "seeing" the missing package when auto generating the manifest.
> The scenario, in more detail, is as follows.
> Bundle A (the one with the missing package in the manifest) imports packages from bundle E:
> BUNDLE A (package a):
> --------
> interface a.AS extends e.ES<a.AS,a.AW>{}
> interface a.AW extends e.EW<a.AS,a.AW>{}
> BUNDLE E (packages e and b):
> --------
> interface e.EW<S extends e.ES<S,W>, W extends e.EW<S,W>> extends b.AD, b.AH{}
> interface b.AD{} // THIS IS THE NoClassDefFoundError CLASS
> interface b.AH{}
> I then ran my mvn3 build with maven-bundle-plugin v2.3.4 and attached a
> debugger to it. I then stopped in the aQute.lib.osgi.Analyzer line
> 1684 (t.addAll(clazz.getReferred());) for class a.AS. I was expecting
> to see packages a (for a.AS and the two generic parameters a.AS and
> a.AW, which happens to be in the same package), e (for e.ES interface,
> and the two generic parameters a.ES and e.EW, which happens to be in
> the same package) and b (b.AD and b.AH). However, I didn't see the
> package b there.
> So it seems that BND is not analyzing dependencies of dependencies and the reason my other module worked was because there was an unrelated, direct dependency to package b somewhere else, forcing the package to be added to the Manifest.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (FELIX-2918) Missing package in Import-Package
causes NoClassDefFoundError at runtime
Posted by "Yuri (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/FELIX-2918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13043995#comment-13043995 ]
Yuri commented on FELIX-2918:
-----------------------------
Sorry it took so long, but I finally got some time to put together a simplified test case. You can find it here: https://github.com/ydewit/FELIX-2918
It turns out that the issue is with erased types. Since maven-bundle-plugin is generating the dependencies from compiled bytecode, all erased dependencies are not visible. Of course, this is not an issue when using the MANIFEST.MF at runtime with a OSGi framework and most likely the expected behavior since those erased dependencies are never used there. However, this was a source of a bit of pain because I was trying to use the MANIFEST.MF at development-time in Eclipse PDE. I was trying to use maven-bundle-plugin to generate a MANIFEST.MF that would include all source code package dependencies so it could be used seamlessly by Eclipse PDE (in the same way that mvn eclipse:eclipse solves this problem for non-osgi apps and JDT).
So it's not really an issue with maven-bundle-plugin or BND, but a question of how to integrate Maven and Eclipse when developing OSGi apps. There are some options here (Tycho, Buckminster, PDE Build, etc), but I like the maven-centric approach and just wish I could reuse the tooling around Eclipse PDE without having to manually duplicate metadata.
> Missing package in Import-Package causes NoClassDefFoundError at runtime
> ------------------------------------------------------------------------
>
> Key: FELIX-2918
> URL: https://issues.apache.org/jira/browse/FELIX-2918
> Project: Felix
> Issue Type: Bug
> Components: Maven Bundle Plugin
> Affects Versions: maven-bundle-plugin-2.3.4
> Environment: OSX Snow Leopard, Maven3, Java6, Guice/Peaberry
> Reporter: Yuri
> Priority: Minor
>
> I have an issue where I get a NoClassDefFoundError while starting my multi-project bundles. This exception is thrown while Peaberry is creating an proxy for a multiple() import. Aside from the Peaberry specifics, the multiple() import is loading the service interface, it's implementation and dependencies until it hits this error. After taking a closer look and comparing the bundle giving me grief to another similar (wrt dependencies) one that was working fine, I noticed two differences in the Manifest: a missing package in the Import-Package and the same package missing from the uses directive in the Export-Package. Basically, maven-bundle-plugin was not "seeing" the missing package when auto generating the manifest.
> The scenario, in more detail, is as follows.
> Bundle A (the one with the missing package in the manifest) imports packages from bundle E:
> BUNDLE A (package a):
> --------
> interface a.AS extends e.ES<a.AS,a.AW>{}
> interface a.AW extends e.EW<a.AS,a.AW>{}
> BUNDLE E (packages e and b):
> --------
> interface e.EW<S extends e.ES<S,W>, W extends e.EW<S,W>> extends b.AD, b.AH{}
> interface b.AD{} // THIS IS THE NoClassDefFoundError CLASS
> interface b.AH{}
> I then ran my mvn3 build with maven-bundle-plugin v2.3.4 and attached a
> debugger to it. I then stopped in the aQute.lib.osgi.Analyzer line
> 1684 (t.addAll(clazz.getReferred());) for class a.AS. I was expecting
> to see packages a (for a.AS and the two generic parameters a.AS and
> a.AW, which happens to be in the same package), e (for e.ES interface,
> and the two generic parameters a.ES and e.EW, which happens to be in
> the same package) and b (b.AD and b.AH). However, I didn't see the
> package b there.
> So it seems that BND is not analyzing dependencies of dependencies and the reason my other module worked was because there was an unrelated, direct dependency to package b somewhere else, forcing the package to be added to the Manifest.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (FELIX-2918) Missing package in Import-Package
causes NoClassDefFoundError at runtime
Posted by "Stuart McCulloch (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/FELIX-2918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13021115#comment-13021115 ]
Stuart McCulloch commented on FELIX-2918:
-----------------------------------------
Actually I mis-spoke about the multiple() case in Peaberry - it does in fact create thin proxies around the individual elements, so there could potentially be an issue with the ImportProxyClassLoader (although it does delegate to the classloader of the type being proxied, so it should still find the same dependent types). I think we really need a testcase to analyze this further though. Note it doesn't have to be minimal, just as long as it's something I can test locally (even binary bundles are ok) - feel free to email it directly to me (mcculls) if you don't want to attach it to the issue.
> Missing package in Import-Package causes NoClassDefFoundError at runtime
> ------------------------------------------------------------------------
>
> Key: FELIX-2918
> URL: https://issues.apache.org/jira/browse/FELIX-2918
> Project: Felix
> Issue Type: Bug
> Components: Maven Bundle Plugin
> Affects Versions: maven-bundle-plugin-2.3.4
> Environment: OSX Snow Leopard, Maven3, Java6, Guice/Peaberry
> Reporter: Yuri
> Priority: Minor
>
> I have an issue where I get a NoClassDefFoundError while starting my multi-project bundles. This exception is thrown while Peaberry is creating an proxy for a multiple() import. Aside from the Peaberry specifics, the multiple() import is loading the service interface, it's implementation and dependencies until it hits this error. After taking a closer look and comparing the bundle giving me grief to another similar (wrt dependencies) one that was working fine, I noticed two differences in the Manifest: a missing package in the Import-Package and the same package missing from the uses directive in the Export-Package. Basically, maven-bundle-plugin was not "seeing" the missing package when auto generating the manifest.
> The scenario, in more detail, is as follows.
> Bundle A (the one with the missing package in the manifest) imports packages from bundle E:
> BUNDLE A (package a):
> --------
> interface a.AS extends e.ES<a.AS,a.AW>{}
> interface a.AW extends e.EW<a.AS,a.AW>{}
> BUNDLE E (packages e and b):
> --------
> interface e.EW<S extends e.ES<S,W>, W extends e.EW<S,W>> extends b.AD, b.AH{}
> interface b.AD{} // THIS IS THE NoClassDefFoundError CLASS
> interface b.AH{}
> I then ran my mvn3 build with maven-bundle-plugin v2.3.4 and attached a
> debugger to it. I then stopped in the aQute.lib.osgi.Analyzer line
> 1684 (t.addAll(clazz.getReferred());) for class a.AS. I was expecting
> to see packages a (for a.AS and the two generic parameters a.AS and
> a.AW, which happens to be in the same package), e (for e.ES interface,
> and the two generic parameters a.ES and e.EW, which happens to be in
> the same package) and b (b.AD and b.AH). However, I didn't see the
> package b there.
> So it seems that BND is not analyzing dependencies of dependencies and the reason my other module worked was because there was an unrelated, direct dependency to package b somewhere else, forcing the package to be added to the Manifest.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (FELIX-2918) Missing package in Import-Package
causes NoClassDefFoundError at runtime
Posted by "Yuri (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/FELIX-2918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13021081#comment-13021081 ]
Yuri commented on FELIX-2918:
-----------------------------
Peter, the behavior you describe above makes sense and I guess the problem then is in either Guice or Peaberry. As soon as we confirm that this is a Guice or Peaberry issue I will close the bug.
Stuart, I am currently using maven-bundle-plugin v2.3.4, Guice v3.0 and Peaberry v1.2-SNAPSHOT. And the issue happened with a multiple() import. So is it likely that the problem is with the non-proxied Iterable implementation? Now that there is some clarity on the issue, I will take the time to create a minimal test. How much effort do you envision for having a proxied Iterable?
> Missing package in Import-Package causes NoClassDefFoundError at runtime
> ------------------------------------------------------------------------
>
> Key: FELIX-2918
> URL: https://issues.apache.org/jira/browse/FELIX-2918
> Project: Felix
> Issue Type: Bug
> Components: Maven Bundle Plugin
> Affects Versions: maven-bundle-plugin-2.3.4
> Environment: OSX Snow Leopard, Maven3, Java6, Guice/Peaberry
> Reporter: Yuri
> Priority: Minor
>
> I have an issue where I get a NoClassDefFoundError while starting my multi-project bundles. This exception is thrown while Peaberry is creating an proxy for a multiple() import. Aside from the Peaberry specifics, the multiple() import is loading the service interface, it's implementation and dependencies until it hits this error. After taking a closer look and comparing the bundle giving me grief to another similar (wrt dependencies) one that was working fine, I noticed two differences in the Manifest: a missing package in the Import-Package and the same package missing from the uses directive in the Export-Package. Basically, maven-bundle-plugin was not "seeing" the missing package when auto generating the manifest.
> The scenario, in more detail, is as follows.
> Bundle A (the one with the missing package in the manifest) imports packages from bundle E:
> BUNDLE A (package a):
> --------
> interface a.AS extends e.ES<a.AS,a.AW>{}
> interface a.AW extends e.EW<a.AS,a.AW>{}
> BUNDLE E (packages e and b):
> --------
> interface e.EW<S extends e.ES<S,W>, W extends e.EW<S,W>> extends b.AD, b.AH{}
> interface b.AD{} // THIS IS THE NoClassDefFoundError CLASS
> interface b.AH{}
> I then ran my mvn3 build with maven-bundle-plugin v2.3.4 and attached a
> debugger to it. I then stopped in the aQute.lib.osgi.Analyzer line
> 1684 (t.addAll(clazz.getReferred());) for class a.AS. I was expecting
> to see packages a (for a.AS and the two generic parameters a.AS and
> a.AW, which happens to be in the same package), e (for e.ES interface,
> and the two generic parameters a.ES and e.EW, which happens to be in
> the same package) and b (b.AD and b.AH). However, I didn't see the
> package b there.
> So it seems that BND is not analyzing dependencies of dependencies and the reason my other module worked was because there was an unrelated, direct dependency to package b somewhere else, forcing the package to be added to the Manifest.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (FELIX-2918) Missing package in Import-Package
causes NoClassDefFoundError at runtime
Posted by "Yuri (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/FELIX-2918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13027290#comment-13027290 ]
Yuri commented on FELIX-2918:
-----------------------------
Stuart, I am trying to get my build setup working first. Once I am back focusing on Peaberry/Guice I will then get you a test case for this ticket.
> Missing package in Import-Package causes NoClassDefFoundError at runtime
> ------------------------------------------------------------------------
>
> Key: FELIX-2918
> URL: https://issues.apache.org/jira/browse/FELIX-2918
> Project: Felix
> Issue Type: Bug
> Components: Maven Bundle Plugin
> Affects Versions: maven-bundle-plugin-2.3.4
> Environment: OSX Snow Leopard, Maven3, Java6, Guice/Peaberry
> Reporter: Yuri
> Priority: Minor
>
> I have an issue where I get a NoClassDefFoundError while starting my multi-project bundles. This exception is thrown while Peaberry is creating an proxy for a multiple() import. Aside from the Peaberry specifics, the multiple() import is loading the service interface, it's implementation and dependencies until it hits this error. After taking a closer look and comparing the bundle giving me grief to another similar (wrt dependencies) one that was working fine, I noticed two differences in the Manifest: a missing package in the Import-Package and the same package missing from the uses directive in the Export-Package. Basically, maven-bundle-plugin was not "seeing" the missing package when auto generating the manifest.
> The scenario, in more detail, is as follows.
> Bundle A (the one with the missing package in the manifest) imports packages from bundle E:
> BUNDLE A (package a):
> --------
> interface a.AS extends e.ES<a.AS,a.AW>{}
> interface a.AW extends e.EW<a.AS,a.AW>{}
> BUNDLE E (packages e and b):
> --------
> interface e.EW<S extends e.ES<S,W>, W extends e.EW<S,W>> extends b.AD, b.AH{}
> interface b.AD{} // THIS IS THE NoClassDefFoundError CLASS
> interface b.AH{}
> I then ran my mvn3 build with maven-bundle-plugin v2.3.4 and attached a
> debugger to it. I then stopped in the aQute.lib.osgi.Analyzer line
> 1684 (t.addAll(clazz.getReferred());) for class a.AS. I was expecting
> to see packages a (for a.AS and the two generic parameters a.AS and
> a.AW, which happens to be in the same package), e (for e.ES interface,
> and the two generic parameters a.ES and e.EW, which happens to be in
> the same package) and b (b.AD and b.AH). However, I didn't see the
> package b there.
> So it seems that BND is not analyzing dependencies of dependencies and the reason my other module worked was because there was an unrelated, direct dependency to package b somewhere else, forcing the package to be added to the Manifest.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (FELIX-2918) Missing package in Import-Package
causes NoClassDefFoundError at runtime
Posted by "Stuart McCulloch (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/FELIX-2918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13020969#comment-13020969 ]
Stuart McCulloch commented on FELIX-2918:
-----------------------------------------
FWIW, Guice 3.0 does not do any dynamic loading unless you are using some sort of AOP such as method interception - and even then it should use the appropriate class loader as described above. Similarly the Peaberry generated proxy (which proxies a single type) should use the appropriate class loader - but the description also mentions using the "multiple()" service injection, in which case a proxy is never created since it just provides an implementation of the Iterable API..
Yuri, can you repeat your test with Guice 3.0 if you haven't already? Also if you could attach/send some sort of testcase that we could run locally that would be very useful.
> Missing package in Import-Package causes NoClassDefFoundError at runtime
> ------------------------------------------------------------------------
>
> Key: FELIX-2918
> URL: https://issues.apache.org/jira/browse/FELIX-2918
> Project: Felix
> Issue Type: Bug
> Components: Maven Bundle Plugin
> Affects Versions: maven-bundle-plugin-2.3.4
> Environment: OSX Snow Leopard, Maven3, Java6, Guice/Peaberry
> Reporter: Yuri
> Priority: Minor
>
> I have an issue where I get a NoClassDefFoundError while starting my multi-project bundles. This exception is thrown while Peaberry is creating an proxy for a multiple() import. Aside from the Peaberry specifics, the multiple() import is loading the service interface, it's implementation and dependencies until it hits this error. After taking a closer look and comparing the bundle giving me grief to another similar (wrt dependencies) one that was working fine, I noticed two differences in the Manifest: a missing package in the Import-Package and the same package missing from the uses directive in the Export-Package. Basically, maven-bundle-plugin was not "seeing" the missing package when auto generating the manifest.
> The scenario, in more detail, is as follows.
> Bundle A (the one with the missing package in the manifest) imports packages from bundle E:
> BUNDLE A (package a):
> --------
> interface a.AS extends e.ES<a.AS,a.AW>{}
> interface a.AW extends e.EW<a.AS,a.AW>{}
> BUNDLE E (packages e and b):
> --------
> interface e.EW<S extends e.ES<S,W>, W extends e.EW<S,W>> extends b.AD, b.AH{}
> interface b.AD{} // THIS IS THE NoClassDefFoundError CLASS
> interface b.AH{}
> I then ran my mvn3 build with maven-bundle-plugin v2.3.4 and attached a
> debugger to it. I then stopped in the aQute.lib.osgi.Analyzer line
> 1684 (t.addAll(clazz.getReferred());) for class a.AS. I was expecting
> to see packages a (for a.AS and the two generic parameters a.AS and
> a.AW, which happens to be in the same package), e (for e.ES interface,
> and the two generic parameters a.ES and e.EW, which happens to be in
> the same package) and b (b.AD and b.AH). However, I didn't see the
> package b there.
> So it seems that BND is not analyzing dependencies of dependencies and the reason my other module worked was because there was an unrelated, direct dependency to package b somewhere else, forcing the package to be added to the Manifest.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Closed] (FELIX-2918) Missing package in Import-Package
causes NoClassDefFoundError at runtime
Posted by "Yuri (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/FELIX-2918?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yuri closed FELIX-2918.
-----------------------
Resolution: Not A Problem
See last comment.
> Missing package in Import-Package causes NoClassDefFoundError at runtime
> ------------------------------------------------------------------------
>
> Key: FELIX-2918
> URL: https://issues.apache.org/jira/browse/FELIX-2918
> Project: Felix
> Issue Type: Bug
> Components: Maven Bundle Plugin
> Affects Versions: maven-bundle-plugin-2.3.4
> Environment: OSX Snow Leopard, Maven3, Java6, Guice/Peaberry
> Reporter: Yuri
> Priority: Minor
>
> I have an issue where I get a NoClassDefFoundError while starting my multi-project bundles. This exception is thrown while Peaberry is creating an proxy for a multiple() import. Aside from the Peaberry specifics, the multiple() import is loading the service interface, it's implementation and dependencies until it hits this error. After taking a closer look and comparing the bundle giving me grief to another similar (wrt dependencies) one that was working fine, I noticed two differences in the Manifest: a missing package in the Import-Package and the same package missing from the uses directive in the Export-Package. Basically, maven-bundle-plugin was not "seeing" the missing package when auto generating the manifest.
> The scenario, in more detail, is as follows.
> Bundle A (the one with the missing package in the manifest) imports packages from bundle E:
> BUNDLE A (package a):
> --------
> interface a.AS extends e.ES<a.AS,a.AW>{}
> interface a.AW extends e.EW<a.AS,a.AW>{}
> BUNDLE E (packages e and b):
> --------
> interface e.EW<S extends e.ES<S,W>, W extends e.EW<S,W>> extends b.AD, b.AH{}
> interface b.AD{} // THIS IS THE NoClassDefFoundError CLASS
> interface b.AH{}
> I then ran my mvn3 build with maven-bundle-plugin v2.3.4 and attached a
> debugger to it. I then stopped in the aQute.lib.osgi.Analyzer line
> 1684 (t.addAll(clazz.getReferred());) for class a.AS. I was expecting
> to see packages a (for a.AS and the two generic parameters a.AS and
> a.AW, which happens to be in the same package), e (for e.ES interface,
> and the two generic parameters a.ES and e.EW, which happens to be in
> the same package) and b (b.AD and b.AH). However, I didn't see the
> package b there.
> So it seems that BND is not analyzing dependencies of dependencies and the reason my other module worked was because there was an unrelated, direct dependency to package b somewhere else, forcing the package to be added to the Manifest.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira