[ 
https://issues.apache.org/jira/browse/TIKA-4587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18047527#comment-18047527
 ] 

ASF GitHub Bot commented on TIKA-4587:
--------------------------------------

nddipiazza opened a new pull request, #2481:
URL: https://github.com/apache/tika/pull/2481

   ## Description
   
   This PR adds development mode support for tika-grpc, enabling rapid plugin 
development without building plugin ZIPs.
   
   ## Changes
   
   - **Added dev profile to tika-grpc/pom.xml**:
     - Sets `tika.plugin.dev.mode=true` system property to enable PF4J 
development mode
     - Includes all plugin modules as dependencies to make their classes 
available at runtime
     - Accepts configurable config file path via `-Dconfig.file` parameter
   
   - **Created run-dev.sh convenience script**:
     - Easy launching of tika-grpc in development mode
     - Supports custom config file as argument
   
   - **Renamed test-config.json to test-dev-config.json**:
     - For clarity that it's meant for development mode
   
   ## Usage
   
   ```bash
   # Build first
   mvn clean install -DskipTests
   
   # Then run in dev mode
   cd tika-grpc
   ./run-dev.sh                           # Uses test-dev-config.json
   ./run-dev.sh my-custom-config.json     # Uses custom config
   ```
   
   ## Benefits
   
   - Plugins load from `target/classes` directories instead of requiring ZIP 
packaging
   - Faster development cycle - no need to rebuild plugin ZIPs
   - All plugin dependencies available on classpath via exec plugin
   - Works with existing TikaPluginManager development mode support
   
   ## Testing
   
   Tested with all 13 plugins configured in test-dev-config.json. Server starts 
successfully on port 50052 with plugins loaded and functional.
   
   Fixes: TIKA-4587




> 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
>            Priority: Minor
>
> 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