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 52b14c551 Add Ignite as built-in ConfigStore type
52b14c551 is described below

commit 52b14c5519972eea5863c15737ccb07d64771c95
Author: Nicholas DiPiazza <[email protected]>
AuthorDate: Sun Dec 28 16:21:28 2025 -0600

    Add Ignite as built-in ConfigStore type
    
    - Handle 'ignite' type directly in ConfigStoreFactory
    - Load IgniteConfigStoreFactory via reflection
    - Works in forked PipesServer without plugin system
    - Matches pattern used for 'file' type
    - Fixes: ClassNotFoundException: ignite in forked process
---
 .../tika/pipes/core/config/ConfigStoreFactory.java      | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git 
a/tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/config/ConfigStoreFactory.java
 
b/tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/config/ConfigStoreFactory.java
index 7c57b6da3..ff60ff7c9 100644
--- 
a/tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/config/ConfigStoreFactory.java
+++ 
b/tika-pipes/tika-pipes-core/src/main/java/org/apache/tika/pipes/core/config/ConfigStoreFactory.java
@@ -58,7 +58,7 @@ public interface ConfigStoreFactory extends 
TikaExtensionFactory<ConfigStore> {
             return store;
         }
         
-        // Handle file type directly since it's in core (not a plugin)
+        // Handle built-in types directly (not plugins)
         if ("file".equalsIgnoreCase(configStoreType)) {
             LOG.info("Creating FileBasedConfigStore");
             FileBasedConfigStoreFactory factory = new 
FileBasedConfigStoreFactory();
@@ -71,6 +71,21 @@ public interface ConfigStoreFactory extends 
TikaExtensionFactory<ConfigStore> {
             }
         }
         
+        if ("ignite".equalsIgnoreCase(configStoreType)) {
+            LOG.info("Creating IgniteConfigStore");
+            try {
+                Class<?> factoryClass = 
Class.forName("org.apache.tika.pipes.ignite.IgniteConfigStoreFactory");
+                ConfigStoreFactory factory = (ConfigStoreFactory) 
factoryClass.getDeclaredConstructor().newInstance();
+                ExtensionConfig config = extensionConfig != null ? 
extensionConfig :
+                    new ExtensionConfig(configStoreType, configStoreType, 
"{}");
+                return factory.buildExtension(config);
+            } catch (ClassNotFoundException e) {
+                throw new TikaConfigException("Ignite ConfigStore requested 
but tika-pipes-ignite not on classpath", e);
+            } catch (Exception e) {
+                throw new TikaConfigException("Failed to create 
IgniteConfigStore", e);
+            }
+        }
+        
         Map<String, ConfigStoreFactory> factoryMap = 
loadAllConfigStoreFactoryExtensions(pluginManager);
 
         ConfigStoreFactory factory = factoryMap.get(configStoreType);

Reply via email to