This is an automated email from the ASF dual-hosted git repository.

tballison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/main by this push:
     new 054689a786 tika-server no longer requires a server block in the config 
file (#3459)
054689a786 is described below

commit 054689a7866c067b201ad7a4adcea3675ae1dc78
Author: Tim Allison <[email protected]>
AuthorDate: Fri Oct 30 16:29:36 2026 -0400

    tika-server no longer requires a server block in the config file (#3459)
---
 CHANGES.txt                                            |  4 ++++
 .../org/apache/tika/server/core/TikaServerConfig.java  |  3 ++-
 .../apache/tika/server/core/TikaServerConfigTest.java  | 18 ++++++++++++++++++
 3 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 106325cfad..9e4065c753 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -15,6 +15,10 @@ Release 4.3.0 - ???
 
   SERVER, PIPES AND OPERATIONS
 
+   * tika-server no longer requires a "server" block in its config file; an 
absent block
+     means the server defaults, as "server": {} did. A tika-app config, or the 
documented
+     Docker example { "text-recognizers": [] }, now works as is (TIKA-XXXX).
+
    * The tika-server full and tika-grpc Docker images no longer install
      ttf-mscorefonts-installer, which downloaded Microsoft's fonts from 
SourceForge
      at build time; non-embedded Verdana, Georgia, Trebuchet, Impact, Comic 
Sans and
diff --git 
a/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerConfig.java
 
b/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerConfig.java
index 712674ae90..4d405f9915 100644
--- 
a/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerConfig.java
+++ 
b/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/TikaServerConfig.java
@@ -198,7 +198,8 @@ public class TikaServerConfig {
         });
         TikaServerConfig tikaServerConfig = 
tikaJsonConfig.deserialize("server", TikaServerConfig.class);
         if (tikaServerConfig == null) {
-            throw new TikaConfigException("Couldn't find 'server' element");
+            // no "server" block: same as {}, so a tika-app config works as is
+            tikaServerConfig = new TikaServerConfig();
         }
         PipesConfig pipesConfig = tikaJsonConfig.deserialize("pipes", 
PipesConfig.class);
         if (pipesConfig != null) {
diff --git 
a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerConfigTest.java
 
b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerConfigTest.java
index d2fda79c6c..dd91063835 100644
--- 
a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerConfigTest.java
+++ 
b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerConfigTest.java
@@ -79,6 +79,24 @@ public class TikaServerConfigTest extends TikaTest {
     }
 
     /** Documented defaults: 1 GiB request cap, 5 min transfer deadlines, 2 
min idle, derived in-flight budget, 60s /async queue pause. */
+    @Test
+    public void testNoServerBlockMeansDefaults(@TempDir Path dir) throws 
Exception {
+        Path path = dir.resolve("tika-config.json");
+        Files.writeString(path, "{ \"parsers\": [ { \"default-parser\": {} } ] 
}");
+        Options options = new Options();
+        options.addOption("c", true, "");
+        options.addOption("p", true, "");
+        CommandLine line = new DefaultParser().parse(options,
+                new String[]{"-c", path.toString(), "-p", "9876"});
+        TikaServerConfig config = TikaServerConfig.load(line, null);
+        TikaServerConfig defaults = new TikaServerConfig();
+        assertEquals(9876, config.getPort());
+        assertEquals(defaults.getHost(), config.getHost());
+        assertEquals(defaults.getMaxRequestSizeBytes(), 
config.getMaxRequestSizeBytes());
+        assertFalse(config.isAllowPipes());
+        assertEquals(path.toAbsolutePath(), config.getConfigPath());
+    }
+
     @Test
     public void testDocumentedDefaults() {
         TikaServerConfig config = new TikaServerConfig();

Reply via email to