diff --git a/framework/src/main/java/fr/pilato/elasticsearch/crawler/fs/framework/FsCrawlerUtil.java b/framework/src/main/java/fr/pilato/elasticsearch/crawler/fs/framework/FsCrawlerUtil.java index f14ad5993..0ba8e8906 100644 --- a/framework/src/main/java/fr/pilato/elasticsearch/crawler/fs/framework/FsCrawlerUtil.java +++ b/framework/src/main/java/fr/pilato/elasticsearch/crawler/fs/framework/FsCrawlerUtil.java @@ -53,6 +53,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.TimeZone; public class FsCrawlerUtil { @@ -316,6 +317,21 @@ public static void copyResourceFile(String source, Path target) throws IOExcepti FileUtils.copyInputStreamToFile(resource, target.toFile()); } + /** + * Read a property file from the class loader + * @param resource Resource name + * @return The properties loaded + */ + public static Properties readPropertiesFromClassLoader(String resource) { + Properties properties = new Properties(); + try { + properties.load(FsCrawlerUtil.class.getClassLoader().getResourceAsStream(resource)); + } catch (IOException e) { + throw new RuntimeException(e); + } + return properties; + } + /** * Copy files from a source to a target * under a _default sub directory. diff --git a/framework/src/main/java/fr/pilato/elasticsearch/crawler/fs/framework/Version.java b/framework/src/main/java/fr/pilato/elasticsearch/crawler/fs/framework/Version.java index f67790d34..6847897ec 100644 --- a/framework/src/main/java/fr/pilato/elasticsearch/crawler/fs/framework/Version.java +++ b/framework/src/main/java/fr/pilato/elasticsearch/crawler/fs/framework/Version.java @@ -19,20 +19,16 @@ package fr.pilato.elasticsearch.crawler.fs.framework; -import java.io.IOException; import java.util.Properties; +import static fr.pilato.elasticsearch.crawler.fs.framework.FsCrawlerUtil.readPropertiesFromClassLoader; + public class Version { private final static String FSCRAWLER_PROPERTIES = "fscrawler.properties"; public static final Properties properties; static { - properties = new Properties(); - try { - properties.load(Version.class.getClassLoader().getResourceAsStream(FSCRAWLER_PROPERTIES)); - } catch (IOException e) { - throw new RuntimeException(e); - } + properties = readPropertiesFromClassLoader(FSCRAWLER_PROPERTIES); } public static String getVersion() { diff --git a/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/AbstractFsCrawlerITCase.java b/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/AbstractFsCrawlerITCase.java index baeef3c9d..c9b87f53e 100644 --- a/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/AbstractFsCrawlerITCase.java +++ b/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/AbstractFsCrawlerITCase.java @@ -137,8 +137,6 @@ FsCrawlerImpl startCrawler(final String jobName, Fs fs, Elasticsearch elasticsea throws Exception { logger.info(" --> starting crawler [{}]", jobName); - // TODO do this rarely() createIndex(jobName); - crawler = new FsCrawlerImpl( metadataDir, FsSettings.builder(jobName).setElasticsearch(elasticsearch).setFs(fs).setServer(server).setRest(rest).build(), diff --git a/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/AbstractITCase.java b/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/AbstractITCase.java index 926e9c550..8684d38cc 100644 --- a/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/AbstractITCase.java +++ b/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/AbstractITCase.java @@ -72,6 +72,7 @@ import static fr.pilato.elasticsearch.crawler.fs.framework.FsCrawlerUtil.copyDefaultResources; import static fr.pilato.elasticsearch.crawler.fs.framework.FsCrawlerUtil.copyDirs; +import static fr.pilato.elasticsearch.crawler.fs.framework.FsCrawlerUtil.readPropertiesFromClassLoader; import static fr.pilato.elasticsearch.crawler.fs.framework.FsCrawlerUtil.unzip; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; @@ -235,8 +236,7 @@ public static void startElasticsearchRestClient() throws IOException { } catch (ConnectException e) { staticLogger.debug("No local node running. We need to start a Docker instance."); // We start an elasticsearch Docker instance - Properties props = new Properties(); - props.load(AbstractITCase.class.getResourceAsStream("/elasticsearch.version.properties")); + Properties props = readPropertiesFromClassLoader("elasticsearch.version.properties"); container = ElasticsearchContainerSingleton.getInstance(props.getProperty("version"), testClusterUser, testClusterPass); diff --git a/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/ElasticsearchClientIT.java b/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/ElasticsearchClientIT.java index 1f02e1eda..53368fe1b 100644 --- a/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/ElasticsearchClientIT.java +++ b/integration-tests/src/test/java/fr/pilato/elasticsearch/crawler/fs/test/integration/ElasticsearchClientIT.java @@ -34,7 +34,9 @@ import java.io.IOException; import java.util.Collection; import java.util.Collections; +import java.util.Properties; +import static fr.pilato.elasticsearch.crawler.fs.framework.FsCrawlerUtil.readPropertiesFromClassLoader; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.iterableWithSize; @@ -140,7 +142,11 @@ public void testFindVersion() throws IOException { Version version = elasticsearchClient.info().getVersion(); logger.info("Current elasticsearch version: [{}]", version); - // TODO if we store in a property file the elasticsearch version we are running tests against we can add some assertions + // If we did not use an external URL but the docker instance we can test for sure that the version is the expected one + if (System.getProperty("tests.cluster.host") == null) { + Properties properties = readPropertiesFromClassLoader("elasticsearch.version.properties"); + assertThat(version.toString(), is(properties.getProperty("version"))); + } } @Test diff --git a/tika/src/test/java/fr/pilato/elasticsearch/crawler/fs/tika/DocParserTestCase.java b/tika/src/test/java/fr/pilato/elasticsearch/crawler/fs/tika/DocParserTestCase.java index 64ac38b85..80c539f53 100644 --- a/tika/src/test/java/fr/pilato/elasticsearch/crawler/fs/tika/DocParserTestCase.java +++ b/tika/src/test/java/fr/pilato/elasticsearch/crawler/fs/tika/DocParserTestCase.java @@ -21,11 +21,10 @@ import fr.pilato.elasticsearch.crawler.fs.test.framework.AbstractFSCrawlerTestCase; -import java.io.IOException; import java.io.InputStream; public class DocParserTestCase extends AbstractFSCrawlerTestCase { - InputStream getBinaryContent(String filename) throws IOException { + InputStream getBinaryContent(String filename) { return getClass().getResourceAsStream("/documents/" + filename); } }