Nicholas DiPiazza created TIKA-4596:
---------------------------------------
Summary: Extend PipesClient/PipesServer socket protocol for
fetcher management
Key: TIKA-4596
URL: https://issues.apache.org/jira/browse/TIKA-4596
Project: Tika
Issue Type: Task
Components: tika-pipes
Reporter: Nicholas DiPiazza
h2. Goal
Extend the socket communication protocol between PipesClient and PipesServer to
support fetcher management commands.
h2. New Commands Needed
Add to PipesClient.COMMANDS enum:
* SAVE_FETCHER - Create or update a fetcher
* DELETE_FETCHER - Remove a fetcher
* LIST_FETCHERS - Get available fetcher IDs
* GET_FETCHER - Get specific fetcher configuration
h2. Protocol Design
h3. SAVE_FETCHER
# Client sends: SAVE_FETCHER command byte
# Client sends: ExtensionConfig serialized object
# Server processes: Calls fetcherManager.saveFetcher(config)
# Server responds: Success/failure status + any error message
# Client receives: ACK
h3. DELETE_FETCHER
# Client sends: DELETE_FETCHER command byte
# Client sends: Fetcher ID string
# Server processes: Calls fetcherManager.deleteFetcher(id)
# Server responds: Success/failure status
# Client receives: ACK
h3. LIST_FETCHERS
# Client sends: LIST_FETCHERS command byte
# Server processes: Calls fetcherManager.getSupported()
# Server responds: List of fetcher IDs
# Client receives: ACK
h3. GET_FETCHER
# Client sends: GET_FETCHER command byte
# Client sends: Fetcher ID string
# Server processes: Calls fetcherManager.getConfig(id)
# Server responds: ExtensionConfig or null
# Client receives: ACK
h2. Implementation Notes
* Reuse existing socket communication patterns
* Follow error handling conventions from existing commands
* Ensure thread safety
* Add appropriate logging
h2. Testing
* Unit tests for each command
* Integration tests for client-server communication
* Error handling tests
--
This message was sent by Atlassian Jira
(v8.20.10#820010)