TIKA-4581: Fix packaging issues and allow plugin-roots override #2486
+298
−120
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.
Problem
Users had to include
plugin-rootsin tika-config.json file, which made Docker deployments less flexible. Additionally, several plugin packaging issues prevented proper plugin loading.Solutions
1. Added --plugin-roots CLI parameter
Added
--plugin-rootscommand-line parameter that overrides config file.Usage:
2. Fixed plugin assembly descriptors
Fixed MANIFEST.MF packaging for 3 plugins (az-blob, gcs, jdbc) that were failing with "Cannot find the manifest path" errors.
Root cause: Assembly descriptors tried to include MANIFEST.MF from
classes/directory, but it only exists in the JAR.Solution: Use
<dependencySet>with<unpack>to extract MANIFEST.MF from the project JAR.3. Fixed GCS plugin.properties
Corrected plugin class reference:
org.apache.tika.pipes.emitter.gcs.GCSEmitterPluginorg.apache.tika.pipes.plugin.gcs.GCSPipesPluginResults
✅ All 13 plugins now load successfully in tika-grpc-docker
✅ Flexible Docker/Kubernetes deployments
✅ Backward compatible
Testing
Verified with tika-grpc-docker that all plugins resolve and start: