[CURATOR-464] update classifier and document accordingly#362
Merged
Randgalt merged 1 commit intoapache:masterfrom Apr 20, 2020
Merged
[CURATOR-464] update classifier and document accordingly#362Randgalt merged 1 commit intoapache:masterfrom
Randgalt merged 1 commit intoapache:masterfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up changes of #355, to address the remaining concerns raised inside.
Why do we need ant and build helper plugins. Can't install-file from the install plugin be used?
There's some slight difference between. The helper plugin attaches a new artifact to the project, and this info could be consumed by any execution of plugins afterwards. For instance, the install plugin is not explicitly told to install another file, and yet it does so by learning there's more than 1 artifact in this project. If nobody else consumes that info, the goal
attach-artifactandinstall-filecould work interchangeably.I tried to engage
install-file, on the other hand, and it didn't work well. The primary problem would be it doesn't support conditional install, so I would have to configureinstall-filein concrete projects when necessary. This kind of asymmetry, thatshadeis configured globally in parent project whileinstall-fileis configured in concrete projects, does concern me, compared withattach-artifactbased approach.If I understand the need correctly this only needs to be done on the curator-client module right? That's where the shading happens. Or is that you need versions of the other modules that don't refer to the shaded Guava? Will that actually work? That code is all compiled assuming a particular version of Guava. I guess if OSGI-Curator users use the right version of Guava it would work.
This change is required for projects consuming relocated guava packages, so it would be more than curator-client only. The root cause of CURATOR-464, from my perspective, would be the shade plugin not working on OSGi headers in manifest, or at least the package relocation part doesn't work. The relocation does 1) relocate the guava packages inside curator-client and 2) change the byte code so imports of guava packages become imports of relocated guava packages, but it fails to update the import/export-package headers in manifest. For this reason, some class-not-found error is raised in OSGi runtime when all import-package headers are fulfilled, because what's required and what's claimed required are different.
The version of imported packages wouldn't be a big concern, as it usually covers a major release if not manually specified. Even if some conflict, say different versions of same artifact are required by different bundles, that's where OSGi runtime could play its role to wire packages of different versions properly. I'm attaching the reformatted import-package header from curator-framework, where the version of imported package could be found.
I'm not convinced that original is the right prefix for the unshaded JAR. Is there a standard prefix for these things? I'd appreciate it if you'd search around and show some other projects that are doing this and show what prefixes they use.
It's renamed into osgi, essentially same as #360.
We should update the website docs (see /src/site) to detail these additional JARs. That should be part of this PR.
Good point. I've tried to compose some in this change, but please feel free to update it if anything.