[
https://issues.apache.org/jira/browse/TIKA-4597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nicholas DiPiazza closed TIKA-4597.
-----------------------------------
Resolution: Duplicate
> Implement fetcher management request handlers in PipesServer
> ------------------------------------------------------------
>
> Key: TIKA-4597
> URL: https://issues.apache.org/jira/browse/TIKA-4597
> Project: Tika
> Issue Type: Task
> Components: tika-pipes
> Reporter: Nicholas DiPiazza
> Priority: Major
>
> h2. Goal
> Implement server-side request handlers for fetcher management operations.
> h2. Implementation
> h3. Location
> Add new methods to PipesServer class or create a new ConfigManagementHandler
> class.
> h3. Required Methods
> *saveFetcher(ExtensionConfig config)*
> {code:java}
> private void handleSaveFetcher(DataInputStream input, DataOutputStream
> output) throws IOException {
> // Read ExtensionConfig from input
> ObjectInputStream ois = new ObjectInputStream(input);
> ExtensionConfig config = (ExtensionConfig) ois.readObject();
>
> try {
> fetcherManager.saveFetcher(config);
> output.writeByte(SUCCESS);
> output.writeUTF("Fetcher saved successfully");
> } catch (Exception e) {
> output.writeByte(ERROR);
> output.writeUTF(ExceptionUtils.getStackTrace(e));
> }
> output.flush();
> }
> {code}
> *deleteFetcher(String fetcherId)*
> {code:java}
> private void handleDeleteFetcher(DataInputStream input, DataOutputStream
> output) throws IOException {
> String fetcherId = input.readUTF();
>
> try {
> fetcherManager.deleteFetcher(fetcherId);
> output.writeByte(SUCCESS);
> output.writeUTF("Fetcher deleted successfully");
> } catch (Exception e) {
> output.writeByte(ERROR);
> output.writeUTF(ExceptionUtils.getStackTrace(e));
> }
> output.flush();
> }
> {code}
> *listFetchers()*
> *getFetcher(String fetcherId)*
> h3. Integration with Main Loop
> Update PipesServer.mainLoop() to handle new command types:
> {code:java}
> switch (command) {
> case SAVE_FETCHER:
> handleSaveFetcher(input, output);
> break;
> case DELETE_FETCHER:
> handleDeleteFetcher(input, output);
> break;
> // ... existing cases
> }
> {code}
> h2. Error Handling
> * Validate input before processing
> * Return clear error messages
> * Log all operations
> * Handle concurrent access properly
> h2. Testing
> * Unit tests for each handler method
> * Integration tests with real socket communication
> * Concurrent access tests
--
This message was sent by Atlassian Jira
(v8.20.10#820010)