Hi,

usually the maven-bundle-plugin is pretty good in analyzing the byte code
and therefore capable of finding all needed exports/imports.
For exports you usually just do a <export-package>"!package.not.needed,
*</export-package> where you want to make sure that you don't export one of
the packages. Another way to mark those is to add those packages to the
private-packages.
For Imports you'd usually only append those packages that you know of
because of reflection, inside some other file like xml.
For example, you have a class that does load classes dynamically, those
need to be added because the maven-bundle-plugin isn't capable of finding
those.
For this you'd usually just do a <import-package>*,
package.needed.desperately</import-package>

regards, Achim


2014-06-19 8:40 GMT+02:00 Laci Gaspar <[email protected]>:

>  hmm... I followed your advice and deleted all the import and export
> configurations and now it works. Thanks.
>
> In what cases do I have to use the import / export configurations?
>
> regards,
> Laci
>
>
> On 18.06.2014 15:39, Kevin Carr wrote:
>
> In my experience, it is usually better to leave configuration empty, and
> let the bnd process figure things out for you.
>
> Occasionally you have to help it, but this sounds like it out pretty
> simple requirement.
> On Jun 18, 2014 8:36 AM, "Laci Gaspar" <[email protected]> wrote:
>
>> Hi
>> There's something I haven't quite understood yet in OSGI, it seems.
>>
>> I have two bundles (A and B) and bundle A uses a class from bundle B.
>> In my pom file of bundle A I specify in the maven-bundle-plugin
>> ...
>>                         <import-Package>
>>                             javax.xml.bind,
>>                             javax.xml.bind.annotation,
>>                             javax.xml.bind.annotation.adapters,
>>                             com.my.package
>> ...
>>
>> In the pom file of bundle b I say:
>> ...
>>                          <Export-Package>
>>                             com.my.package,
>> ...
>>
>> In karaf I can see with exports / imports that the configuration in the
>> poms is there.
>>
>> But when I call my web service (in bundle A) I get:
>> org.apache.cxf.interceptor.Fault: com/my/package/HospitalServiceType
>> ...
>> Caused by: java.lang.ClassNotFoundException:
>> com.my.package.HospitalServiceType not found by <bundle B>
>>
>> Please enlighten me.
>> Regards,
>> Laci
>>
>>
>


-- 

Apache Member
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
blog <http://notizblog.nierbeck.de/>

Software Architect / Project Manager / Scrum Master

Reply via email to