mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-09 22:45:04 +00:00
the default classloader. It had all kinds of leniency in how the classname was found, and simply cannot work with plugins having isolated classloaders. This change removes that method. Some of the uses of it were for custom extension points, like custom repository or discovery types. A lot were just there to plugin mock implementations for tests. For the settings that were legitimate, all now support plugins adding the given setting via onModule. For those that were specific to tests for mocks, they now use Classes.loadClass (a helper around Class.forName). This is a temporary measure until (in a future PR) tests can change the implementation via package private statics. I also removed a number of unnecessary intermediate modules, added a "jvm-example" plugin that can be filled in in the future as a smoke test for breaking plugins, and gave some documentation to "spawn" modules interface. closes #12643 closes #12656
443 lines
15 KiB
XML
443 lines
15 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>org.elasticsearch.qa</groupId>
|
|
<artifactId>elasticsearch-qa</artifactId>
|
|
<version>2.0.0-beta1-SNAPSHOT</version>
|
|
</parent>
|
|
|
|
<!--
|
|
This test unzips elasticsearch, installs each plugin,
|
|
starts elasticsearch, verifies loaded plugin count.
|
|
|
|
"expected plugin count" is computed from plugins/,
|
|
currently any folder having a pom.xml file.
|
|
|
|
our yaml file uses property filtering to populate it.
|
|
-->
|
|
|
|
<artifactId>smoke-test-plugins</artifactId>
|
|
<name>QA: Smoke Test Plugins</name>
|
|
<description>Loads up all of our plugins</description>
|
|
|
|
<properties>
|
|
<skip.unit.tests>true</skip.unit.tests>
|
|
<elasticsearch.integ.antfile>${project.basedir}/integration-tests.xml</elasticsearch.integ.antfile>
|
|
<tests.rest.suite>smoke_test_plugins</tests.rest.suite>
|
|
<tests.rest.load_packaged>false</tests.rest.load_packaged>
|
|
</properties>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.elasticsearch</groupId>
|
|
<artifactId>elasticsearch</artifactId>
|
|
<type>test-jar</type>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- Provided dependencies by elasticsearch itself -->
|
|
<dependency>
|
|
<groupId>org.elasticsearch</groupId>
|
|
<artifactId>elasticsearch</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-core</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-backward-codecs</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-analyzers-common</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-queries</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-memory</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-highlighter</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-queryparser</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-suggest</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-join</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-spatial</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-expressions</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.spatial4j</groupId>
|
|
<artifactId>spatial4j</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.vividsolutions</groupId>
|
|
<artifactId>jts</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.github.spullara.mustache.java</groupId>
|
|
<artifactId>compiler</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.guava</groupId>
|
|
<artifactId>guava</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.carrotsearch</groupId>
|
|
<artifactId>hppc</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>joda-time</groupId>
|
|
<artifactId>joda-time</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.joda</groupId>
|
|
<artifactId>joda-convert</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-core</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
<artifactId>jackson-dataformat-smile</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
<artifactId>jackson-dataformat-yaml</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
<artifactId>jackson-dataformat-cbor</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.ning</groupId>
|
|
<artifactId>compress-lzf</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.tdunning</groupId>
|
|
<artifactId>t-digest</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-lang3</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-cli</groupId>
|
|
<artifactId>commons-cli</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.codehaus.groovy</groupId>
|
|
<artifactId>groovy-all</artifactId>
|
|
<classifier>indy</classifier>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>log4j</groupId>
|
|
<artifactId>log4j</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>log4j</groupId>
|
|
<artifactId>apache-log4j-extras</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>net.java.dev.jna</groupId>
|
|
<artifactId>jna</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- Required by the REST test framework -->
|
|
<!-- TODO: remove this dependency when we will have a REST Test module -->
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpclient</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>integ-setup-dependencies</id>
|
|
<phase>pre-integration-test</phase>
|
|
<goals>
|
|
<goal>copy</goal>
|
|
</goals>
|
|
<configuration>
|
|
<skip>${skip.integ.tests}</skip>
|
|
<useBaseVersion>true</useBaseVersion>
|
|
<outputDirectory>${integ.deps}/plugins</outputDirectory>
|
|
|
|
<artifactItems>
|
|
<!-- elasticsearch distribution -->
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.distribution.zip</groupId>
|
|
<artifactId>elasticsearch</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
<outputDirectory>${integ.deps}</outputDirectory>
|
|
</artifactItem>
|
|
|
|
<!-- plugins -->
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-analysis-kuromoji</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-analysis-smartcn</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-analysis-stempel</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-analysis-phonetic</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-analysis-icu</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-cloud-gce</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-cloud-azure</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-cloud-aws</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-delete-by-query</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-lang-python</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-lang-javascript</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-mapper-size</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-site-example</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-jvm-example</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
|
|
</artifactItems>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- integration tests -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>count-expected-plugins</id>
|
|
<phase>validate</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<target>
|
|
<property name="plugins.dir" location="${project.basedir}/../../plugins"/>
|
|
<resourcecount property="expected.plugin.count">
|
|
<fileset dir="${plugins.dir}" includes="*/pom.xml"/>
|
|
</resourcecount>
|
|
<echo>Found ${expected.plugin.count} plugins in ${plugins.dir}</echo>
|
|
</target>
|
|
<exportAntProperties>true</exportAntProperties>
|
|
</configuration>
|
|
</execution>
|
|
<!-- start up external cluster -->
|
|
<execution>
|
|
<id>integ-setup</id>
|
|
<phase>pre-integration-test</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<target>
|
|
<ant antfile="${elasticsearch.integ.antfile}" target="start-external-cluster-with-plugins">
|
|
<property name="tests.jvm.argline" value="${tests.jvm.argline}"/>
|
|
<property name="plugins.dir" value="${plugins.dir}"/>
|
|
<property name="expected.plugin.count" value="${expected.plugin.count}"/>
|
|
</ant>
|
|
</target>
|
|
<skip>${skip.integ.tests}</skip>
|
|
</configuration>
|
|
</execution>
|
|
<!-- shut down external cluster -->
|
|
<execution>
|
|
<id>integ-teardown</id>
|
|
<phase>post-integration-test</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<target>
|
|
<ant antfile="${elasticsearch.integ.antfile}" target="stop-external-cluster"/>
|
|
</target>
|
|
<skip>${skip.integ.tests}</skip>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>ant-contrib</groupId>
|
|
<artifactId>ant-contrib</artifactId>
|
|
<version>1.0b3</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>ant</groupId>
|
|
<artifactId>ant</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.ant</groupId>
|
|
<artifactId>ant-nodeps</artifactId>
|
|
<version>1.8.1</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
</project>
|