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

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

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

   ## Summary
   Adds public API to PipesClient for dynamically managing fetchers and 
emitters at runtime through PipesServer's ConfigStore.
   
   ## Changes
   
   ### Protocol Enhancements
   - Extended PipesClient.COMMANDS enum with 8 new commands:
     - SAVE_FETCHER, DELETE_FETCHER, LIST_FETCHERS, GET_FETCHER
     - SAVE_EMITTER, DELETE_EMITTER, LIST_EMITTERS, GET_EMITTER
   
   ### PipesClient API
   Added public methods:
   - `saveFetcher(ExtensionConfig)` - Create/update fetcher
   - `deleteFetcher(String)` - Remove fetcher
   - `listFetchers()` - List all fetcher IDs
   - `getFetcherConfig(String)` - Get fetcher configuration
   - Same methods for emitters
   
   ### PipesServer Handlers
   Implemented request handlers for all 8 commands with proper error handling 
and serialization.
   
   ### Core Infrastructure  
   - Added `deleteComponent()` and `getComponentConfig()` to 
AbstractComponentManager
   - Added wrapper methods to FetcherManager and EmitterManager
   - Added `remove()` method to ConfigStore interface and implementations
   
   ## Benefits
   - Users can add/modify fetchers and emitters without restarting
   - Supports multi-tenant scenarios with isolated configs
   - Enables programmatic configuration
   - Maintains backwards compatibility with static config
   
   ## Testing
   - All existing tests pass
   - No breaking changes
   - Ready for integration testing
   
   ## JIRA
   https://issues.apache.org/jira/browse/TIKA-4595




> Add dynamic fetcher management API to PipesClient
> -------------------------------------------------
>
>                 Key: TIKA-4595
>                 URL: https://issues.apache.org/jira/browse/TIKA-4595
>             Project: Tika
>          Issue Type: New Feature
>          Components: tika-pipes
>            Reporter: Nicholas DiPiazza
>            Priority: Major
>
> h2. Overview
> Add API to PipesClient for dynamically creating, updating, and deleting 
> fetchers at runtime through PipesServer's ConfigStore.
> h2. Current State
> * PipesServer already has ConfigStore infrastructure
> * FetcherManager and EmitterManager support runtime modifications
> * But PipesClient has no API to expose these capabilities to users
> h2. Desired Architecture
> {noformat}
> PipesClient API
>     ↓
> PipesServer (forked process)
>     ↓
> ConfigStore (memory, Ignite, etc.)
> {noformat}
> h2. Requirements
> # PipesClient provides public API for fetcher CRUD operations
> # All operations are sent to PipesServer via socket protocol  
> # PipesServer handles requests and updates ConfigStore
> # Static fetchers from tika-config.xml/json loaded at startup
> # Dynamic fetchers managed through ConfigStore
> # Both static and dynamic fetchers available for use
> h2. Benefits
> * Users can add/modify fetchers without restarting
> * Supports multi-tenant scenarios with isolated fetcher configs
> * Enables programmatic fetcher configuration
> * Maintains backwards compatibility with static config
> h2. Implementation Tasks
> See linked sub-tasks for detailed implementation steps.



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

Reply via email to