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

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

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

   ## Summary
   This PR upgrades Apache Ignite from 2.16.0 to 3.1.0 in the 
tika-pipes-config-store-ignite module.
   
   ## Changes Made
   
   ### Core Upgrade
   - **Upgraded dependencies**: ignite-core 2.16.0 → ignite-runner 3.1.0
   - **Migrated configuration**: From IgniteConfiguration API to HOCON-based 
config files
   - **Updated API usage**: Migrated from IgniteCache to new KeyValueView API
   - **Fixed DTO mapping**: Updated ExtensionConfigDTO to use Ignite 3.x Mapper 
annotations
   
   ### Server & Integration
   - **Simplified IgniteStoreServer**: Removed async complexity, now 
synchronous embedded mode
   - **Fixed EmitHandler**: Added null check for NO_EMIT scenario to prevent NPE
   - **Updated gRPC proto**: Added emitter_id field to FetchAndParseRequest
   - **Updated TikaGrpcServerImpl**: Proper lifecycle management for 
IgniteStoreServer
   
   ### Testing & CI
   - **Added e2e tests to parent build**: tika-e2e-tests module now integrated
   - **Local server mode for CI**: Tests run without Docker by default (faster, 
more reliable)
   - **Fixed resource leaks**: Proper gRPC channel cleanup in tests
   - **Added JVM flags**: Required --add-opens flags for Java 17+ compatibility
   - **Disabled enforcer**: For e2e tests due to Ignite 3.x transitive 
dependency conflicts
   
   ## Test Results
   ✅ **11/11 unit tests passing** in tika-pipes-config-store-ignite  
   ✅ **E2E test passing** - processes documents successfully  
   ✅ **No resource leaks** - proper cleanup verified  
   ✅ **BUILD SUCCESS** locally
   
   ## Breaking Changes
   None - API remains backward compatible from user perspective
   
   ## CI Configuration
   Tests use local server mode by default:
   - Property: `tika.e2e.useLocalServer=true`
   - Override with `-Dtika.e2e.useLocalServer=false` to use Docker
   
   Fixes apache/tika#TIKA-4606




> Upgrade Ignite config store to Ignite 3.x with Calcite SQL engine
> -----------------------------------------------------------------
>
>                 Key: TIKA-4606
>                 URL: https://issues.apache.org/jira/browse/TIKA-4606
>             Project: Tika
>          Issue Type: Improvement
>            Reporter: Nicholas DiPiazza
>            Assignee: Nicholas DiPiazza
>            Priority: Major
>
> h2. Overview
> Upgrade the tika-pipes-config-store-ignite module from Apache Ignite 2.17.0 
> (which uses H2 1.4.x) to Apache Ignite 3.x (which uses Apache Calcite SQL 
> engine).
> h2. Current State
> * Module: *tika-pipes-config-store-ignite*
> * Ignite Version: 2.17.0
> * SQL Engine: H2 1.4.197 (embedded)
> * Location: {{tika-pipes/tika-pipes-config-store-ignite/}}
> h2. Goals
> # Upgrade to Apache Ignite 3.x (latest stable release)
> # Replace H2 SQL engine with Calcite-based SQL engine
> # Maintain all existing functionality for config store
> # Update API calls to match Ignite 3.x breaking changes
> # Ensure backward compatibility for stored configurations (if possible)
> h2. Benefits
> * Modern SQL engine with Apache Calcite
> * Better performance and query optimization
> * Active maintenance and future support
> * Improved SQL feature set
> * No dependency on old H2 1.4.x (2018)
> h2. Breaking Changes to Address
> * Ignite 3.x has major API changes from 2.x
> * Configuration format changes
> * Cache API differences
> * SQL query API updates
> * Client connection changes
> h2. Implementation Steps
> # Research Ignite 3.x API changes and migration guide
> # Update Maven dependencies to Ignite 3.x
> # Refactor {{IgniteConfigStore}} to use new Ignite 3.x API
> # Update {{IgniteStoreServer}} for new connection model
> # Modify SQL queries if needed for Calcite compatibility
> # Update configuration handling
> # Update tests to work with Ignite 3.x
> # Test backward compatibility with existing configs
> # Update documentation
> h2. Acceptance Criteria
> * Ignite upgraded to version 3.x (latest stable)
> * Uses Calcite SQL engine instead of H2
> * All existing tests pass
> * Config store functionality preserved
> * No H2 dependencies remain
> * Documentation updated
> h2. References
> * Apache Ignite 3.x: https://ignite.apache.org/docs/3.0.0/
> * Ignite 3.x Migration Guide
> * Apache Calcite: https://calcite.apache.org/
> * Current module: {{tika-pipes/tika-pipes-config-store-ignite/}}



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

Reply via email to