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
commit 470b1d7db4a7a13d28ad83f590583d85ff62e585 Author: Nicholas DiPiazza <[email protected]> AuthorDate: Sun Dec 28 10:40:32 2025 -0600 Handle 'file' ConfigStore type as built-in (not plugin) - Added direct handling for 'file' type in ConfigStoreFactory.createConfigStore() - File-based store is in core, not a plugin, so needs special handling - Avoids ClassNotFoundException when trying to load 'file' as a class name - Also added remove() method to IgniteConfigStore for interface compliance --- .../apache/tika/pipes/core/config/ConfigStoreFactory.java | 13 +++++++++++++ .../org/apache/tika/pipes/ignite/IgniteConfigStore.java | 9 +++++++++ 2 files changed, 22 insertions(+) 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 1393ace0b..7c57b6da3 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,6 +58,19 @@ public interface ConfigStoreFactory extends TikaExtensionFactory<ConfigStore> { return store; } + // Handle file type directly since it's in core (not a plugin) + if ("file".equalsIgnoreCase(configStoreType)) { + LOG.info("Creating FileBasedConfigStore"); + FileBasedConfigStoreFactory factory = new FileBasedConfigStoreFactory(); + try { + ExtensionConfig config = extensionConfig != null ? extensionConfig : + new ExtensionConfig(configStoreType, configStoreType, "{}"); + return factory.buildExtension(config); + } catch (IOException e) { + throw new TikaConfigException("Failed to create FileBasedConfigStore", e); + } + } + Map<String, ConfigStoreFactory> factoryMap = loadAllConfigStoreFactoryExtensions(pluginManager); ConfigStoreFactory factory = factoryMap.get(configStoreType); diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-ignite/src/main/java/org/apache/tika/pipes/ignite/IgniteConfigStore.java b/tika-pipes/tika-pipes-plugins/tika-pipes-ignite/src/main/java/org/apache/tika/pipes/ignite/IgniteConfigStore.java index e2f8a6c74..cd65fb858 100644 --- a/tika-pipes/tika-pipes-plugins/tika-pipes-ignite/src/main/java/org/apache/tika/pipes/ignite/IgniteConfigStore.java +++ b/tika-pipes/tika-pipes-plugins/tika-pipes-ignite/src/main/java/org/apache/tika/pipes/ignite/IgniteConfigStore.java @@ -155,6 +155,15 @@ public class IgniteConfigStore implements ConfigStore { return cache.size(); } + @Override + public ExtensionConfig remove(String id) { + if (cache == null) { + throw new IllegalStateException("IgniteConfigStore not initialized. Call init() first."); + } + ExtensionConfigDTO removed = cache.getAndRemove(id); + return removed != null ? removed.toExtensionConfig() : null; + } + public void close() { if (ignite != null && autoClose) { LOG.info("Closing IgniteConfigStore");
