You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/05/31 01:53:44 UTC
[05/14] james-project git commit: MAILBOX-338 Allow to disable Tika
MAILBOX-338 Allow to disable Tika
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ed4166a5
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ed4166a5
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ed4166a5
Branch: refs/heads/master
Commit: ed4166a52565746b4a183e4db2529738ac5823a9
Parents: 64b2c28
Author: benwa <bt...@linagora.com>
Authored: Sun May 27 13:54:17 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu May 31 08:53:16 2018 +0700
----------------------------------------------------------------------
mailbox/tika/pom.xml | 20 +++-
.../james/mailbox/tika/TikaConfiguration.java | 106 ++++++++++++++++---
.../mailbox/tika/CachingTextExtractorTest.java | 11 +-
.../mailbox/TikaConfigurationReader.java | 30 ++++--
.../modules/mailbox/TikaMailboxModule.java | 31 +++---
.../mailbox/TikaConfigurationReaderTest.java | 87 +++++++++++----
6 files changed, 221 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/ed4166a5/mailbox/tika/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/tika/pom.xml b/mailbox/tika/pom.xml
index 8d78433..f926a35 100644
--- a/mailbox/tika/pom.xml
+++ b/mailbox/tika/pom.xml
@@ -72,11 +72,6 @@
<artifactId>commons-configuration</artifactId>
</dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
@@ -91,6 +86,21 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.platform</groupId>
+ <artifactId>junit-platform-launcher</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/james-project/blob/ed4166a5/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaConfiguration.java
----------------------------------------------------------------------
diff --git a/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaConfiguration.java b/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaConfiguration.java
index e7994b7..113c1e9 100644
--- a/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaConfiguration.java
+++ b/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaConfiguration.java
@@ -22,19 +22,18 @@ package org.apache.james.mailbox.tika;
import java.time.Duration;
import java.util.Objects;
import java.util.Optional;
+import java.util.concurrent.TimeUnit;
import org.apache.james.util.Port;
import com.google.common.base.Preconditions;
+import com.google.common.primitives.Ints;
public class TikaConfiguration {
- public static Builder builder() {
- return new Builder();
- }
-
public static class Builder {
-
+ private Optional<Boolean> isEnabled;
+ private Optional<Boolean> isCacheEnabled;
private Optional<String> host;
private Optional<Integer> port;
private Optional<Integer> timeoutInMillis;
@@ -42,6 +41,8 @@ public class TikaConfiguration {
private Optional<Long> cacheWeightInBytes;
private Builder() {
+ isEnabled = Optional.empty();
+ isCacheEnabled = Optional.empty();
host = Optional.empty();
port = Optional.empty();
timeoutInMillis = Optional.empty();
@@ -49,8 +50,47 @@ public class TikaConfiguration {
cacheWeightInBytes = Optional.empty();
}
+ public Builder enable(Optional<Boolean> isEnabled) {
+ Preconditions.checkNotNull(isEnabled);
+ this.isEnabled = isEnabled;
+ return this;
+ }
+
+ public Builder enabled() {
+ this.isEnabled = Optional.of(true);
+ return this;
+ }
+
+ public Builder disabled() {
+ this.isEnabled = Optional.of(false);
+ return this;
+ }
+
+ public Builder cacheEnable(Optional<Boolean> isEnabled) {
+ Preconditions.checkNotNull(isEnabled);
+ this.isCacheEnabled = isEnabled;
+ return this;
+ }
+
+ public Builder cacheEnabled() {
+ this.isCacheEnabled = Optional.of(true);
+ return this;
+ }
+
+ public Builder cacheDisabled() {
+ this.isCacheEnabled = Optional.of(false);
+ return this;
+ }
+
public Builder host(String host) {
- this.host = Optional.ofNullable(host);
+ Preconditions.checkNotNull(host);
+ this.host = Optional.of(host);
+ return this;
+ }
+
+ public Builder host(Optional<String> host) {
+ Preconditions.checkNotNull(host);
+ this.host = host;
return this;
}
@@ -59,11 +99,23 @@ public class TikaConfiguration {
return this;
}
+ public Builder port(Optional<Integer> port) {
+ Preconditions.checkNotNull(port);
+ this.port = port;
+ return this;
+ }
+
public Builder timeoutInMillis(int timeoutInMillis) {
this.timeoutInMillis = Optional.of(timeoutInMillis);
return this;
}
+ public Builder timeoutInMillis(Optional<Integer> timeoutInMillis) {
+ Preconditions.checkNotNull(timeoutInMillis);
+ this.timeoutInMillis = timeoutInMillis;
+ return this;
+ }
+
public Builder cacheEvictionPeriod(Duration duration) {
this.cacheEvictionPeriod = Optional.of(duration);
return this;
@@ -85,26 +137,41 @@ public class TikaConfiguration {
}
public TikaConfiguration build() {
- Preconditions.checkState(host.isPresent(), "'host' is mandatory");
- Preconditions.checkState(port.isPresent(), "'port' is mandatory");
- Preconditions.checkState(timeoutInMillis.isPresent(), "'timeoutInMillis' is mandatory");
- Port.assertValid(port.get());
-
- return new TikaConfiguration(host.get(), port.get(), timeoutInMillis.get(),
+ port.ifPresent(Port::assertValid);
+
+ return new TikaConfiguration(
+ isEnabled.orElse(DEFAULT_DISABLED),
+ isCacheEnabled.orElse(DEFAULT_DISABLED),
+ host.orElse(DEFAULT_HOST),
+ port.orElse(DEFAULT_PORT),
+ timeoutInMillis.orElse(DEFAULT_TIMEOUT_IN_MS),
cacheEvictionPeriod.orElse(DEFAULT_CACHE_EVICTION_PERIOD),
cacheWeightInBytes.orElse(DEFAULT_CACHE_LIMIT_100_MB));
}
}
+
public static final long DEFAULT_CACHE_LIMIT_100_MB = 1024L * 1024L * 100L;
public static final Duration DEFAULT_CACHE_EVICTION_PERIOD = Duration.ofDays(1);
+ public static final boolean DEFAULT_DISABLED = false;
+ public static final String DEFAULT_HOST = "127.0.0.1";
+ public static final int DEFAULT_PORT = 9998;
+ public static final int DEFAULT_TIMEOUT_IN_MS = Ints.checkedCast(TimeUnit.SECONDS.toMillis(30));
+
+ public static Builder builder() {
+ return new Builder();
+ }
+ private final boolean enabled;
+ private final boolean cacheEnabled;
private final String host;
private final int port;
private final int timeoutInMillis;
private final Duration cacheEvictionPeriod;
private final long cacheWeightInBytes;
- private TikaConfiguration(String host, int port, int timeoutInMillis, Duration cacheEvictionPeriod, long cacheWeightInBytes) {
+ private TikaConfiguration(boolean enabled, boolean cacheEnabled, String host, int port, int timeoutInMillis, Duration cacheEvictionPeriod, long cacheWeightInBytes) {
+ this.enabled = enabled;
+ this.cacheEnabled = cacheEnabled;
this.host = host;
this.port = port;
this.timeoutInMillis = timeoutInMillis;
@@ -112,6 +179,14 @@ public class TikaConfiguration {
this.cacheWeightInBytes = cacheWeightInBytes;
}
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ public boolean isCacheEnabled() {
+ return cacheEnabled;
+ }
+
public String getHost() {
return host;
}
@@ -137,7 +212,8 @@ public class TikaConfiguration {
if (o instanceof TikaConfiguration) {
TikaConfiguration that = (TikaConfiguration) o;
- return Objects.equals(this.port, that.port)
+ return Objects.equals(this.enabled, that.enabled)
+ && Objects.equals(this.port, that.port)
&& Objects.equals(this.timeoutInMillis, that.timeoutInMillis)
&& Objects.equals(this.cacheWeightInBytes, that.cacheWeightInBytes)
&& Objects.equals(this.host, that.host)
@@ -148,7 +224,7 @@ public class TikaConfiguration {
@Override
public final int hashCode() {
- return Objects.hash(host, port, timeoutInMillis, cacheEvictionPeriod, cacheWeightInBytes);
+ return Objects.hash(enabled, host, port, timeoutInMillis, cacheEvictionPeriod, cacheWeightInBytes);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/ed4166a5/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java b/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java
index 54e743f..e34f95c 100644
--- a/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java
+++ b/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java
@@ -36,19 +36,20 @@ import java.util.function.Supplier;
import org.apache.james.mailbox.extractor.ParsedContent;
import org.apache.james.mailbox.extractor.TextExtractor;
import org.apache.james.metrics.api.NoopMetricFactory;
-import org.junit.Before;
-import org.junit.Test;
-import org.testcontainers.shaded.com.google.common.collect.ImmutableMap;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import com.google.common.collect.ImmutableMap;
public class CachingTextExtractorTest {
public static final ParsedContent RESULT = new ParsedContent("content", ImmutableMap.of());
public static final Supplier<InputStream> INPUT_STREAM_1 = () -> new ByteArrayInputStream("content1".getBytes(StandardCharsets.UTF_8));
- private TextExtractor textExtractor;
+ private CachingTextExtractor textExtractor;
private TextExtractor wrappedTextExtractor;
- @Before
+ @BeforeEach
public void setUp() throws Exception {
wrappedTextExtractor = mock(TextExtractor.class);
textExtractor = new CachingTextExtractor(wrappedTextExtractor,
http://git-wip-us.apache.org/repos/asf/james-project/blob/ed4166a5/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
index 13ca0cd..6907330 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
@@ -21,7 +21,6 @@ package org.apache.james.modules.mailbox;
import java.time.Duration;
import java.util.Optional;
-import java.util.concurrent.TimeUnit;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.james.mailbox.tika.TikaConfiguration;
@@ -29,19 +28,32 @@ import org.apache.james.util.Size;
import org.apache.james.util.TimeConverter;
import com.github.fge.lambdas.Throwing;
-import com.google.common.primitives.Ints;
public class TikaConfigurationReader {
+ public static final String TIKA_ENABLED = "tika.enabled";
+ public static final String TIKA_CACHE_ENABLED = "tika.cache.enabled";
public static final String TIKA_HOST = "tika.host";
public static final String TIKA_PORT = "tika.port";
public static final String TIKA_TIMEOUT_IN_MS = "tika.timeoutInMillis";
- public static final String DEFAULT_HOST = "127.0.0.1";
- public static final int DEFAULT_PORT = 9998;
public static final String TIKA_CACHE_EVICTION_PERIOD = "tika.cache.eviction.period";
public static final String TIKA_CACHE_WEIGHT_MAX = "tika.cache.weight.max";
- public static final int DEFAULT_TIMEOUT_IN_MS = Ints.checkedCast(TimeUnit.SECONDS.toMillis(30));
public static TikaConfiguration readTikaConfiguration(PropertiesConfiguration configuration) {
+ Optional<Boolean> enabled = Optional.ofNullable(
+ configuration.getBoolean(TIKA_ENABLED, null));
+
+ Optional<Boolean> cacheEnabled = Optional.ofNullable(
+ configuration.getBoolean(TIKA_CACHE_ENABLED, null));
+
+ Optional<String> host = Optional.ofNullable(
+ configuration.getString(TIKA_HOST, null));
+
+ Optional<Integer> port = Optional.ofNullable(
+ configuration.getInteger(TIKA_PORT, null));
+
+ Optional<Integer> timeoutInMillis = Optional.ofNullable(
+ configuration.getInteger(TIKA_TIMEOUT_IN_MS, null));
+
Optional<Duration> cacheEvictionPeriod = Optional.ofNullable(
configuration.getString(TIKA_CACHE_EVICTION_PERIOD,
null))
@@ -54,9 +66,11 @@ public class TikaConfigurationReader {
.map(Size::asBytes);
return TikaConfiguration.builder()
- .host(configuration.getString(TIKA_HOST, DEFAULT_HOST))
- .port(configuration.getInt(TIKA_PORT, DEFAULT_PORT))
- .timeoutInMillis(configuration.getInt(TIKA_TIMEOUT_IN_MS, DEFAULT_TIMEOUT_IN_MS))
+ .enable(enabled)
+ .host(host)
+ .port(port)
+ .timeoutInMillis(timeoutInMillis)
+ .cacheEnable(cacheEnabled)
.cacheEvictionPeriod(cacheEvictionPeriod)
.cacheWeightInBytes(cacheWeight)
.build();
http://git-wip-us.apache.org/repos/asf/james-project/blob/ed4166a5/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaMailboxModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaMailboxModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaMailboxModule.java
index b5421f6..08bcfa5 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaMailboxModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaMailboxModule.java
@@ -19,10 +19,6 @@
package org.apache.james.modules.mailbox;
-import static org.apache.james.modules.mailbox.TikaConfigurationReader.DEFAULT_HOST;
-import static org.apache.james.modules.mailbox.TikaConfigurationReader.DEFAULT_PORT;
-import static org.apache.james.modules.mailbox.TikaConfigurationReader.DEFAULT_TIMEOUT_IN_MS;
-
import java.io.FileNotFoundException;
import java.net.URISyntaxException;
@@ -31,6 +27,7 @@ import javax.inject.Singleton;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.james.mailbox.extractor.TextExtractor;
+import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
import org.apache.james.mailbox.tika.CachingTextExtractor;
import org.apache.james.mailbox.tika.TikaConfiguration;
import org.apache.james.mailbox.tika.TikaHttpClient;
@@ -71,22 +68,30 @@ public class TikaMailboxModule extends AbstractModule {
return TikaConfigurationReader.readTikaConfiguration(configuration);
} catch (FileNotFoundException e) {
- LOGGER.warn("Could not find {} configuration file. Using {}:{} as contact point", TIKA_CONFIGURATION_NAME, DEFAULT_HOST, DEFAULT_PORT);
+ LOGGER.warn("Could not find {} configuration file. Disabling Tika.", TIKA_CONFIGURATION_NAME);
return TikaConfiguration.builder()
- .host(DEFAULT_HOST)
- .port(DEFAULT_PORT)
- .timeoutInMillis(DEFAULT_TIMEOUT_IN_MS)
- .build();
+ .disabled()
+ .build();
}
}
@Provides
@Singleton
private TextExtractor provideTextExtractor(TikaTextExtractor textExtractor, TikaConfiguration configuration, MetricFactory metricFactory) {
- return new CachingTextExtractor(
- textExtractor,
- configuration.getCacheEvictionPeriod(),
- configuration.getCacheWeightInBytes(), metricFactory);
+ if (configuration.isEnabled() && configuration.isCacheEnabled()) {
+ LOGGER.info("Tika cache has been enabled.");
+ return new CachingTextExtractor(
+ textExtractor,
+ configuration.getCacheEvictionPeriod(),
+ configuration.getCacheWeightInBytes(), metricFactory);
+ }
+ if (configuration.isEnabled()) {
+ return textExtractor;
+ }
+ LOGGER.info("Tika text extraction has been disabled." +
+ " Using DefaultTextExtractor instead. " +
+ "No complex extraction will be done.");
+ return new DefaultTextExtractor();
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/ed4166a5/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/TikaConfigurationReaderTest.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/TikaConfigurationReaderTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/TikaConfigurationReaderTest.java
index 484c8f0..c66df2d 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/TikaConfigurationReaderTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/TikaConfigurationReaderTest.java
@@ -34,16 +34,19 @@ public class TikaConfigurationReaderTest {
public void readTikaConfigurationShouldAcceptMandatoryValues() throws Exception {
PropertiesConfiguration configuration = new PropertiesConfiguration();
configuration.load(new StringReader(
+ "tika.enabled=true\n" +
"tika.host=172.0.0.5\n" +
- "tika.port=889\n" +
- "tika.timeoutInMillis=500\n"));
+ "tika.port=889\n" +
+ "tika.timeoutInMillis=500\n"));
assertThat(TikaConfigurationReader.readTikaConfiguration(configuration))
.isEqualTo(
TikaConfiguration.builder()
+ .enabled()
.host("172.0.0.5")
.port(889)
.timeoutInMillis(500)
+ .cacheDisabled()
.cacheWeightInBytes(100L * 1024L *1024L)
.cacheEvictionPeriod(Duration.ofDays(1))
.build());
@@ -53,12 +56,14 @@ public class TikaConfigurationReaderTest {
public void readTikaConfigurationShouldReturnDefaultOnMissingHost() throws Exception {
PropertiesConfiguration configuration = new PropertiesConfiguration();
configuration.load(new StringReader(
- "tika.port=889\n" +
- "tika.timeoutInMillis=500\n"));
+ "tika.enabled=true\n" +
+ "tika.port=889\n" +
+ "tika.timeoutInMillis=500\n"));
assertThat(TikaConfigurationReader.readTikaConfiguration(configuration))
.isEqualTo(
TikaConfiguration.builder()
+ .enabled()
.host("127.0.0.1")
.port(889)
.timeoutInMillis(500)
@@ -69,12 +74,14 @@ public class TikaConfigurationReaderTest {
public void readTikaConfigurationShouldReturnDefaultOnMissingPort() throws Exception {
PropertiesConfiguration configuration = new PropertiesConfiguration();
configuration.load(new StringReader(
+ "tika.enabled=true\n" +
"tika.host=172.0.0.5\n" +
- "tika.timeoutInMillis=500\n"));
+ "tika.timeoutInMillis=500\n"));
assertThat(TikaConfigurationReader.readTikaConfiguration(configuration))
.isEqualTo(
TikaConfiguration.builder()
+ .enabled()
.host("172.0.0.5")
.port(9998)
.timeoutInMillis(500)
@@ -85,31 +92,46 @@ public class TikaConfigurationReaderTest {
public void readTikaConfigurationShouldReturnDefaultOnMissingTimeout() throws Exception {
PropertiesConfiguration configuration = new PropertiesConfiguration();
configuration.load(new StringReader(
+ "tika.enabled=true\n" +
"tika.host=172.0.0.5\n" +
- "tika.port=889\n"));
+ "tika.port=889\n"));
assertThat(TikaConfigurationReader.readTikaConfiguration(configuration))
.isEqualTo(
TikaConfiguration.builder()
+ .enabled()
.host("172.0.0.5")
.port(889)
.timeoutInMillis(30 * 1000)
.build());
}
+ @Test
+ public void tikaShouldBeDisabledByDefault() throws Exception {
+ PropertiesConfiguration configuration = new PropertiesConfiguration();
+ configuration.load(new StringReader(""));
+
+ assertThat(TikaConfigurationReader.readTikaConfiguration(configuration))
+ .isEqualTo(
+ TikaConfiguration.builder()
+ .disabled()
+ .build());
+ }
@Test
public void readTikaConfigurationShouldParseUnitForCacheEvictionPeriod() throws Exception {
PropertiesConfiguration configuration = new PropertiesConfiguration();
configuration.load(new StringReader(
+ "tika.enabled=true\n" +
"tika.host=172.0.0.5\n" +
- "tika.port=889\n" +
- "tika.timeoutInMillis=500\n" +
- "tika.cache.eviction.period=2H"));
+ "tika.port=889\n" +
+ "tika.timeoutInMillis=500\n" +
+ "tika.cache.eviction.period=2H"));
assertThat(TikaConfigurationReader.readTikaConfiguration(configuration))
.isEqualTo(
TikaConfiguration.builder()
+ .enabled()
.host("172.0.0.5")
.port(889)
.timeoutInMillis(500)
@@ -121,14 +143,16 @@ public class TikaConfigurationReaderTest {
public void readTikaConfigurationShouldDefaultToSecondWhenMissingUnitForCacheEvitionPeriod() throws Exception {
PropertiesConfiguration configuration = new PropertiesConfiguration();
configuration.load(new StringReader(
+ "tika.enabled=true\n" +
"tika.host=172.0.0.5\n" +
- "tika.port=889\n" +
- "tika.timeoutInMillis=500\n" +
- "tika.cache.eviction.period=3600"));
+ "tika.port=889\n" +
+ "tika.timeoutInMillis=500\n" +
+ "tika.cache.eviction.period=3600"));
assertThat(TikaConfigurationReader.readTikaConfiguration(configuration))
.isEqualTo(
TikaConfiguration.builder()
+ .enabled()
.host("172.0.0.5")
.port(889)
.timeoutInMillis(500)
@@ -140,14 +164,16 @@ public class TikaConfigurationReaderTest {
public void readTikaConfigurationShouldParseUnitForCacheWeightMax() throws Exception {
PropertiesConfiguration configuration = new PropertiesConfiguration();
configuration.load(new StringReader(
+ "tika.enabled=true\n" +
"tika.host=172.0.0.5\n" +
- "tika.port=889\n" +
- "tika.timeoutInMillis=500\n" +
- "tika.cache.weight.max=200M"));
+ "tika.port=889\n" +
+ "tika.timeoutInMillis=500\n" +
+ "tika.cache.weight.max=200M"));
assertThat(TikaConfigurationReader.readTikaConfiguration(configuration))
.isEqualTo(
TikaConfiguration.builder()
+ .enabled()
.host("172.0.0.5")
.port(889)
.timeoutInMillis(500)
@@ -159,14 +185,39 @@ public class TikaConfigurationReaderTest {
public void readTikaConfigurationShouldDefaultToByteAsSizeUnit() throws Exception {
PropertiesConfiguration configuration = new PropertiesConfiguration();
configuration.load(new StringReader(
+ "tika.enabled=true\n" +
+ "tika.host=172.0.0.5\n" +
+ "tika.port=889\n" +
+ "tika.timeoutInMillis=500\n" +
+ "tika.cache.weight.max=1520000"));
+
+ assertThat(TikaConfigurationReader.readTikaConfiguration(configuration))
+ .isEqualTo(
+ TikaConfiguration.builder()
+ .enabled()
+ .host("172.0.0.5")
+ .port(889)
+ .timeoutInMillis(500)
+ .cacheWeightInBytes(1520000)
+ .build());
+ }
+
+ @Test
+ public void readTikaConfigurationShouldEnableCacheWhenConfigured() throws Exception {
+ PropertiesConfiguration configuration = new PropertiesConfiguration();
+ configuration.load(new StringReader(
+ "tika.enabled=true\n" +
+ "tika.cache.enabled=true\n" +
"tika.host=172.0.0.5\n" +
- "tika.port=889\n" +
- "tika.timeoutInMillis=500\n" +
- "tika.cache.weight.max=1520000"));
+ "tika.port=889\n" +
+ "tika.timeoutInMillis=500\n" +
+ "tika.cache.weight.max=1520000"));
assertThat(TikaConfigurationReader.readTikaConfiguration(configuration))
.isEqualTo(
TikaConfiguration.builder()
+ .enabled()
+ .cacheEnabled()
.host("172.0.0.5")
.port(889)
.timeoutInMillis(500)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org