This website and its associated repositories, are deprecated and no longer supported by the OSGi Alliance. Please visit https://enroute.osgi.org for the latest supported version of OSGi enRoute.
This enRoute v2 archive site is kept for those who do not intend to use the latest version of OSGi enRoute. If you are new to OSGi enRoute, then please start with the latest OSGi enRoute.
If you pay attention to warnings (and you should!) then you should have noticed that we’re having a number of private references warning. A private reference warning means that an exported package uses a type from a private package in its public API. The implication is that that API is not possible to use since the needed types are private.
Unfortunately, many libraries are badly designed and the types referred are actually just part of a private API. It is one of the reasons why it is sometimes worth to not use external JARs.
However, in this case we need to export more packages than org.dom4j.*
. The warnings in the Problems
view in Eclipse provide you with the following information:
Export org.dom4j.datatype, has 1, private references [org.relaxng.datatype]
This means that the org.dom4j.datatype
uses types from org.relaxng.datatype
in its public API. We will therefore have to export org.relaxng.datatype
as well. Looking at the warnings we have the following private references
org.relaxng.datatype
org.gjt.xpp
You could investigate if they are really needed (they could be superpackages) for your purpose but let’s add them to the exports.
Export-Package: \
org.dom4j.*, \
org.relaxng.datatype, \
org.gjt.xpp
In this case we were lucky, adding them to the export list gets rid of the private reference warnings.