JAMES-2470 Enable Tika container to be reused across classes
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1f51b69d Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1f51b69d Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1f51b69d Branch: refs/heads/master Commit: 1f51b69dd778724592b0a1030add9ce2d5f6c31f Parents: ddf6a53 Author: benwa <btell...@linagora.com> Authored: Thu Jul 26 10:01:08 2018 +0700 Committer: benwa <btell...@linagora.com> Committed: Mon Jul 30 13:51:28 2018 +0700 ---------------------------------------------------------------------- mailbox/elasticsearch/pom.xml | 12 +++++ .../ElasticSearchIntegrationTest.java | 4 +- .../json/IndexableMessageTest.java | 4 +- .../json/MessageToElasticSearchJsonTest.java | 4 +- .../james/mailbox/tika/TikaContainer.java | 2 +- .../tika/TikaContainerSingletonRule.java | 56 ++++++++++++++++++++ 6 files changed, 75 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/1f51b69d/mailbox/elasticsearch/pom.xml ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/pom.xml b/mailbox/elasticsearch/pom.xml index 22263b5..f2a2efd 100644 --- a/mailbox/elasticsearch/pom.xml +++ b/mailbox/elasticsearch/pom.xml @@ -172,4 +172,16 @@ </dependency> </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <reuseForks>true</reuseForks> + </configuration> + </plugin> + </plugins> + </build> + </project> http://git-wip-us.apache.org/repos/asf/james-project/blob/1f51b69d/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java index f237799..c6225c9 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java @@ -44,7 +44,7 @@ import org.apache.james.mailbox.model.SearchQuery; import org.apache.james.mailbox.store.StoreMessageIdManager; import org.apache.james.mailbox.store.search.AbstractMessageSearchIndexTest; import org.apache.james.mailbox.tika.TikaConfiguration; -import org.apache.james.mailbox.tika.TikaContainer; +import org.apache.james.mailbox.tika.TikaContainerSingletonRule; import org.apache.james.mailbox.tika.TikaHttpClientImpl; import org.apache.james.mailbox.tika.TikaTextExtractor; import org.apache.james.metrics.api.NoopMetricFactory; @@ -70,7 +70,7 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest public RuleChain ruleChain = RuleChain.outerRule(temporaryFolder).around(embeddedElasticSearch); @ClassRule - public static TikaContainer tika = new TikaContainer(); + public static TikaContainerSingletonRule tika = TikaContainerSingletonRule.rule; private TikaTextExtractor textExtractor; @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/1f51b69d/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java index 5119130..67535ff 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java @@ -33,6 +33,7 @@ import javax.mail.Flags; import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.elasticsearch.IndexAttachments; +import org.apache.james.mailbox.tika.TikaContainerSingletonRule; import org.apache.james.mailbox.extractor.ParsedContent; import org.apache.james.mailbox.extractor.TextExtractor; import org.apache.james.mailbox.inmemory.InMemoryMessageId; @@ -44,7 +45,6 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage; import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder; import org.apache.james.mailbox.store.mail.model.impl.SimpleProperty; import org.apache.james.mailbox.tika.TikaConfiguration; -import org.apache.james.mailbox.tika.TikaContainer; import org.apache.james.mailbox.tika.TikaHttpClientImpl; import org.apache.james.mailbox.tika.TikaTextExtractor; import org.apache.james.metrics.api.NoopMetricFactory; @@ -61,7 +61,7 @@ public class IndexableMessageTest { public static final MessageUid MESSAGE_UID = MessageUid.of(154); @ClassRule - public static TikaContainer tika = new TikaContainer(); + public static TikaContainerSingletonRule tika = TikaContainerSingletonRule.rule; private TikaTextExtractor textExtractor; http://git-wip-us.apache.org/repos/asf/james-project/blob/1f51b69d/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java index a7d1943..9529e60 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java @@ -36,6 +36,7 @@ import org.apache.james.mailbox.FlagsBuilder; import org.apache.james.mailbox.MailboxSession.User; import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.elasticsearch.IndexAttachments; +import org.apache.james.mailbox.tika.TikaContainerSingletonRule; import org.apache.james.mailbox.extractor.TextExtractor; import org.apache.james.mailbox.mock.MockMailboxSession; import org.apache.james.mailbox.model.MessageId; @@ -46,7 +47,6 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage; import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder; import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage; import org.apache.james.mailbox.tika.TikaConfiguration; -import org.apache.james.mailbox.tika.TikaContainer; import org.apache.james.mailbox.tika.TikaHttpClientImpl; import org.apache.james.mailbox.tika.TikaTextExtractor; import org.apache.james.metrics.api.NoopMetricFactory; @@ -73,7 +73,7 @@ public class MessageToElasticSearchJsonTest { private PropertyBuilder propertyBuilder; @ClassRule - public static TikaContainer tika = new TikaContainer(); + public static TikaContainerSingletonRule tika = TikaContainerSingletonRule.rule; @Before public void setUp() throws Exception { http://git-wip-us.apache.org/repos/asf/james-project/blob/1f51b69d/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainer.java ---------------------------------------------------------------------- diff --git a/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainer.java b/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainer.java index ec6b776..c2f23dc 100644 --- a/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainer.java +++ b/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainer.java @@ -47,7 +47,7 @@ public class TikaContainer extends ExternalResource { start(); } - public void start() throws Exception { + public void start() { tika.start(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/1f51b69d/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainerSingletonRule.java ---------------------------------------------------------------------- diff --git a/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainerSingletonRule.java b/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainerSingletonRule.java new file mode 100644 index 0000000..1fefb78 --- /dev/null +++ b/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaContainerSingletonRule.java @@ -0,0 +1,56 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ + +package org.apache.james.mailbox.tika; + +import org.junit.rules.TestRule; +import org.junit.runner.Description; +import org.junit.runners.model.Statement; + +public class TikaContainerSingletonRule implements TestRule { + + public static final TikaContainerSingletonRule rule = new TikaContainerSingletonRule(new TikaContainer()); + + private final TikaContainer tikaContainer; + + private TikaContainerSingletonRule(TikaContainer tikaContainer) { + this.tikaContainer = tikaContainer; + this.tikaContainer.start(); + } + + @Override + public Statement apply(Statement statement, Description description) { + return statement; + } + + public String getIp() { + return tikaContainer.getIp(); + } + + public int getPort() { + return tikaContainer.getPort(); + } + + public int getTimeoutInMillis() { + return tikaContainer.getTimeoutInMillis(); + } + + // Cleanup will be performed by test container resource reaper + +} --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org