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