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)

Reply via email to