[
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)