This is an automated email from the ASF dual-hosted git repository.
ndipiazza pushed a commit to branch file-based-config-store
in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/file-based-config-store by
this push:
new b941d73ab Move Ignite dependencies directly into tika-grpc
b941d73ab is described below
commit b941d73abf8203c26910a3d8a99cc6df52878c33
Author: Nicholas DiPiazza <[email protected]>
AuthorDate: Sun Dec 28 15:42:07 2025 -0600
Move Ignite dependencies directly into tika-grpc
- Made tika-pipes-ignite a required (non-optional) dependency of tika-grpc
- Added ignite.version and h2.version properties
- Removed reflection-based classloader lookup
- Direct instantiation of IgniteStoreServer
- Avoids all PF4J plugin classloader issues
- Ignite classes now on main classpath
---
tika-grpc/pom.xml | 3 +-
.../apache/tika/pipes/grpc/TikaGrpcServerImpl.java | 35 ++++------------------
2 files changed, 7 insertions(+), 31 deletions(-)
diff --git a/tika-grpc/pom.xml b/tika-grpc/pom.xml
index 88d919936..e0b72a877 100644
--- a/tika-grpc/pom.xml
+++ b/tika-grpc/pom.xml
@@ -38,6 +38,8 @@
<asarkar-grpc-test.version>2.0.0</asarkar-grpc-test.version>
<awaitility.version>4.3.0</awaitility.version>
<j2objc-annotations.version>3.1</j2objc-annotations.version>
+ <ignite.version>2.17.0</ignite.version>
+ <h2.version>1.4.197</h2.version>
</properties>
<dependencyManagement>
@@ -232,7 +234,6 @@
<groupId>org.apache.tika</groupId>
<artifactId>tika-pipes-ignite</artifactId>
<version>${project.version}</version>
- <optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
diff --git
a/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java
b/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java
index 64a8d554b..b5e8de57d 100644
--- a/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java
+++ b/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java
@@ -154,40 +154,15 @@ class TikaGrpcServerImpl extends TikaGrpc.TikaImplBase {
String cacheMode = params.has("cacheMode") ?
params.get("cacheMode").asText() : "REPLICATED";
String instanceName = params.has("igniteInstanceName") ?
params.get("igniteInstanceName").asText() : "TikaIgniteServer";
- // Find the Ignite plugin's classloader
- ClassLoader igniteClassLoader = null;
- for (org.pf4j.PluginWrapper plugin : pluginManager.getPlugins()) {
- if (plugin.getPluginId().contains("ignite") ||
-
plugin.getDescriptor().getPluginClass().contains("ignite")) {
- igniteClassLoader = plugin.getPluginClassLoader();
- LOG.info("Found Ignite plugin: {}", plugin.getPluginId());
- break;
- }
- }
-
- if (igniteClassLoader == null) {
- LOG.warn("Ignite plugin not found - skipping embedded server
startup");
- return;
- }
-
- // Load classes from plugin classloader
- Class<?> serverClass =
Class.forName("org.apache.tika.pipes.ignite.server.IgniteStoreServer",
- true, igniteClassLoader);
- Class<?> cacheModeClass =
Class.forName("org.apache.ignite.cache.CacheMode",
- true, igniteClassLoader);
- Object cacheModeEnum = Enum.valueOf((Class<Enum>) cacheModeClass,
cacheMode);
-
- Object server = serverClass
- .getConstructor(String.class, cacheModeClass, String.class)
- .newInstance(cacheName, cacheModeEnum, instanceName);
+ // Direct instantiation - no reflection needed
+ org.apache.ignite.cache.CacheMode mode =
org.apache.ignite.cache.CacheMode.valueOf(cacheMode);
+ org.apache.tika.pipes.ignite.server.IgniteStoreServer server =
+ new
org.apache.tika.pipes.ignite.server.IgniteStoreServer(cacheName, mode,
instanceName);
- serverClass.getMethod("startAsync").invoke(server);
+ server.startAsync();
LOG.info("Embedded Ignite server started successfully");
- } catch (ClassNotFoundException e) {
- LOG.warn("Ignite server class not found - skipping embedded server
startup. " +
- "Make sure tika-pipes-ignite plugin is loaded.");
} catch (Exception e) {
LOG.error("Failed to start embedded Ignite server", e);
throw new RuntimeException("Failed to start Ignite server", e);