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

Reply via email to