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

   ## JIRA Ticket
   https://issues.apache.org/jira/browse/TIKA-4583
   
   ## Summary
   This PR implements an Apache Ignite-based ConfigStore for distributed 
configuration storage in Tika Pipes clustering deployments.
   
   ## Changes
   - Added `init()` method to `ConfigStore` interface for initialization support
   - Created new Maven sub-module: `tika-ignite-config-store`
   - Implemented `IgniteConfigStore` using Apache Ignite distributed cache
   - Supports both REPLICATED and PARTITIONED cache modes
   - Thread-safe implementation with comprehensive error handling
   - Added test suite for IgniteConfigStore (tests currently skipped due to 
Ignite setup complexity)
   - Updated parent pom.xml to include new module
   - Added comprehensive README with usage examples and configuration options
   
   ## Testing
   - Module compiles successfully with `mvn clean install -DskipTests`
   - All checkstyle and forbidden-apis checks pass
   - Manual testing of ConfigStore interface implementation
   - Tests are present but skipped pending proper Ignite test environment setup
   
   ## Review Focus Areas
   - **ConfigStore interface**: Added `init()` method with default 
implementation
   - **IgniteConfigStore implementation**: Main distributed config store class
   - **Thread safety**: Uses Ignite's thread-safe cache operations
   - **Error handling**: Throws IllegalStateException if not initialized
   - **Documentation**: Comprehensive README with examples
   
   ## Files to Review
   **Critical:**
   - 
`tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/config/ConfigStore.java`
 - Interface with new init() method
   - 
`tika-pipes/tika-ignite-config-store/src/main/java/org/apache/tika/pipes/ignite/IgniteConfigStore.java`
 - Main implementation
   
   **Supporting:**
   - `tika-pipes/tika-ignite-config-store/pom.xml` - Module dependencies
   - `tika-pipes/tika-ignite-config-store/README.md` - Usage documentation
   - `tika-pipes/pom.xml` - Parent pom module addition
   
   ## Testing Instructions
   ```bash
   cd tika-pipes
   mvn clean install -DskipTests -pl tika-pipes-core,tika-ignite-config-store
   ```
   
   ## Notes
   - Part of TIKA-4547: Enable distributed state management for Tika Pipes 
clustering
   - This implementation provides the foundation for sharing 
Fetcher/Emitter/PipesIterator configs across multiple servers
   - Tests are included but currently skipped due to Ignite requiring full 
cluster setup for testing


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to