it is not a bug. They do that feature in BND to allow service providers to export their APIs as well. Me, I find this creates more problems by accidentally including classes you didn't mean to (like in your case) than the case where you export and package something from another bundle. This is specially problematic when you run your bundles exploded (before BND has the chance to create the jar by bringing the external classes, so you get a bunch of ClassNotFoundException since the manifest has the export-packages but they bytecode is not there) If you want more details check this http://stackoverflow.com/questions/23368960/exporting-api-from-implementation-bundle
Alejandro Endo | Software Designer/Concepteur de logiciels From: Konstantine Kougios <[email protected]> To: Neil Bartlett <[email protected]>, "[email protected]" <[email protected]>, Date: 2014-09-12 12:29 PM Subject: Re: bundle B can't see changes of classes of bundle A I found the issue, it was a problem in one of my bundle?s pom file, it did <Export-Package> a root level package and this made maven include ALL classes for that package into the jar (not only the ones of the bundle but classes from other bundles)! Is that to be considered a bug of maven-bundle-plugin or just my bad? Thanks, Kostas From: Neil Bartlett <[email protected]<mailto:[email protected]>> Date: Friday, 12 September 2014 16:58 To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>>, Konstantine Kougios <[email protected]<mailto:[email protected] >> Subject: Re: bundle B can't see changes of classes of bundle A How do you perform the bundle update? If you do not refresh packages, then bundle B will remain wired to the old version of bundle A? this is true even if you uninstall bundle A. After any mutation of the set of installed bundles, it is essential to perform a package refresh. Regards, Neil On 12 September 2014 at 16:52:36, Konstantine Kougios ([email protected]<mailto:[email protected]>) wrote: So lets say I modify the toString method of a class in A. Then B when using the toString(), it gets the old value (the one before A was modified) Also, I can uninstall A but B still works! And I?ve verified B.jar doesn?t include A classes or A.jar. Thanks, Kostas From: Neil Bartlett <[email protected]<mailto:[email protected]>> Date: Friday, 12 September 2014 16:49 To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>>, Konstantine Kougios <[email protected]<mailto:[email protected] >> Subject: Re: bundle B can't see changes of classes of bundle A Can you be more specific about what this phrase means: ?bundle doesn?t see the change?? It?s best to describe exactly what behaviour you expected, then how the actual behaviour differed from that. Kind regards, Neil On 12 September 2014 at 16:03:16, Konstantine Kougios ([email protected]<mailto:[email protected]>) wrote: Hi, I am trying to sort out a very weird issue for a few hours now. I got 2 bundles, A and B. A has a class JsonObject and B has tests that run on the server (via sling-junit). So when I change a class in A and deploy it via mvn/mvn-sling-plugin , my B bundle doesn?t see the change. If I refresh B or stop/start B, again it doesn?t see the change of JsonObject. Only a mvn clean install fixes the issue. I?ve checked both bundle jar files to see if there are duplicate classes or maybe B includes A.jar, but no, the jars seem proper. Any ideas? Thanks, Kostas DISCLAIMER: Privileged and/or Confidential information may be contained in this message. If you are not the addressee of this message, you may not copy, use or deliver this message to anyone. In such event, you should destroy the message and kindly notify the sender by reply e-mail. It is understood that opinions or conclusions that do not relate to the official business of the company are neither given nor endorsed by the company. Thank You.

