Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GERONIMO-6560 make use of geronimo-osgi-locator for loading service loader implementations in OSGi environment #5

Closed
wants to merge 1 commit into from
Closed

Conversation

stefanseifert
Copy link
Member

No description provided.

@@ -28,6 +28,9 @@
import javax.json.stream.JsonGeneratorFactory;
import javax.json.stream.JsonParser;
import javax.json.stream.JsonParserFactory;

import org.apache.geronimo.osgi.locator.ProviderLocator;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you care updating it to do it by reflection? I'd like to keep that dependency running without osgi-locator if possible

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the required classes are embedded in the jar file (via maven-bundle-plugin) - so the resulting jar file does no longer have a dependency to geronimo-osgi-locator - neither in OSGi nor in maven.
it's the same pattern as used by geronimo-jaxrs_1.1_spec for example.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

then please ensure it is shaded in another package. issue is several spec jars have all the same classes and it can lead to issues in some classloading environments.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

although i've solved this successful in other osgi bundles using maven-shade-plugin it does not work very well in this case - because one of the located classes is used as Bundle-Activator, and relocating the class breaks the magic of the bundle plugin generating the correct imports. after some puzzling i got it working: https://github.com/stefanseifert/geronimo-specs/blob/feature/GERONIMO-6560-json10-osgi-shade/geronimo-json_1.0_spec/pom.xml
but the solution is quite hacky and fragile - i advice against using it.

i would propose that we either use the original PR without relocating the classes (as in jaxrs) - or completely drop the support for geronimo osgi-support (which is older than the release of the osgi r5 spec, which is already old), ans switch for this spec jar and johnzon to an osgi-compatible way with capabilities. i've never tried it out, but in my understanding no special embedded classes are required in this case. aries spyfly has to be used then.

@rmannibucau
Copy link
Contributor

personally I'm fine dropping it and relying on r5 spec if it is fine for karaf case

@stefanseifert
Copy link
Member Author

superseded by #6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants