[
https://issues.apache.org/jira/browse/COMPRESS-552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17296822#comment-17296822
]
Stefan Bodewig commented on COMPRESS-552:
-----------------------------------------
I'd prefer a solution that doesn't require a compile time dependency on OSGi.
Checking the classloader looks good, we could iterate the super interfaces and
classes until the classname matches without performing an instanceof check.
We've already got a single PAX Exam test which only asserts Compress can be
loaded as a bundle (this is easier to break, than I would have thought). I'll
try to figure out whether this can be used to verify a certain check works when
run inside of the bundle. We'll see.
> OSGI check broken - try to load class BundleEvent always fails
> --------------------------------------------------------------
>
> Key: COMPRESS-552
> URL: https://issues.apache.org/jira/browse/COMPRESS-552
> Project: Commons Compress
> Issue Type: Bug
> Components: Compressors
> Affects Versions: 1.20
> Reporter: Björn Michael
> Priority: Major
>
> There is a check for running in OSGI env. in {{ZstdUtils}}, {{BrotliUtils}},
> {{LZMAUtils}} and {{XZUtils}} like this:
> {code:java}
> static {
> cachedZstdAvailability = CachedAvailability.DONT_CACHE;
> try {
> Class.forName("org.osgi.framework.BundleEvent");
> } catch (final Exception ex) { // NOSONAR
> setCacheZstdAvailablity(true);
> }
> }
> {code}
> Loading the class {{org.osgi.framework.BundleEvent}} always fails because
> {{Import-Package}} directive for {{org.osgi.framework}} is missing in
> _MANIFEST.MF_. Or it requires another more sophisticated approaches
> ([https://stackoverflow.com/q/5879040/1061929]).
> Tested with Eclipse 4.14 (org.eclipse.osgi_3.15.100.v20191114-1701.jar)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)