Nicholas DiPiazza created TIKA-4587:
---------------------------------------

             Summary: Add pf4j development mode support to TikaPluginManager
                 Key: TIKA-4587
                 URL: https://issues.apache.org/jira/browse/TIKA-4587
             Project: Tika
          Issue Type: Improvement
          Components: tika-pipes
            Reporter: Nicholas DiPiazza


h2. Problem

Currently, TikaPluginManager requires plugins to be packaged as ZIP files in 
the configured plugin-roots directories. This adds friction to plugin 
development since developers must rebuild and repackage plugins as ZIPs to test 
changes.

h2. Solution

Add support for pf4j's development mode which allows loading plugins directly 
from unpackaged directories (e.g., target/classes). This would enable faster 
development iteration by eliminating the ZIP packaging step during development.

h2. Implementation Approach

* Add a way to configure RuntimeMode (DEVELOPMENT vs DEPLOYMENT) in 
TikaPluginManager
* When in DEVELOPMENT mode, allow plugin-roots to point to unpackaged plugin 
directories
* Configure via environment variable (TIKA_PLUGIN_DEV_MODE) or system property 
(tika.plugin.dev.mode)
* Skip ZIP extraction when in development mode
* Default to DEPLOYMENT mode for backward compatibility

h2. Benefits

* Faster plugin development cycle - no need to rebuild ZIP files during 
development
* Easier debugging of plugin code
* Consistent with pf4j best practices

h2. References

* pf4j development mode docs: https://pf4j.org/doc/development-mode.html
* Pull request: https://github.com/apache/tika/pull/new/pf4j-development-mode



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to