mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-07 05:28:34 +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
444 lines
18 KiB
XML
444 lines
18 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>
|
|
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>elasticsearch-plugin</artifactId>
|
|
<version>2.0.0-beta1-SNAPSHOT</version>
|
|
<packaging>pom</packaging>
|
|
<name>Elasticsearch Plugin POM</name>
|
|
<inceptionYear>2009</inceptionYear>
|
|
<description>A parent project for Elasticsearch plugins</description>
|
|
|
|
<parent>
|
|
<groupId>org.elasticsearch</groupId>
|
|
<artifactId>elasticsearch-parent</artifactId>
|
|
<version>2.0.0-beta1-SNAPSHOT</version>
|
|
</parent>
|
|
|
|
<properties>
|
|
<elasticsearch.assembly.descriptor>${elasticsearch.tools.directory}/plugin-metadata/plugin-assembly.xml</elasticsearch.assembly.descriptor>
|
|
<elasticsearch.assembly.appendId>false</elasticsearch.assembly.appendId>
|
|
<elasticsearch.plugin.jvm>true</elasticsearch.plugin.jvm>
|
|
<elasticsearch.plugin.isolated>true</elasticsearch.plugin.isolated>
|
|
<elasticsearch.plugin.site>false</elasticsearch.plugin.site>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<!-- elasticsearch and its test framework -->
|
|
<dependency>
|
|
<groupId>org.hamcrest</groupId>
|
|
<artifactId>hamcrest-all</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-test-framework</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<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>
|
|
|
|
<!-- typical layout for plugins -->
|
|
<build>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<filtering>true</filtering>
|
|
<includes>
|
|
<include>**/*.properties</include>
|
|
</includes>
|
|
</resource>
|
|
</resources>
|
|
|
|
<testResources>
|
|
<testResource>
|
|
<directory>src/test/java</directory>
|
|
<includes>
|
|
<include>**/*.json</include>
|
|
<include>**/*.txt</include>
|
|
</includes>
|
|
</testResource>
|
|
<testResource>
|
|
<directory>src/test/resources</directory>
|
|
<excludes>
|
|
<exclude>elasticsearch.yml</exclude>
|
|
<exclude>**/*.properties</exclude>
|
|
</excludes>
|
|
</testResource>
|
|
<testResource>
|
|
<directory>src/test/resources</directory>
|
|
<filtering>true</filtering>
|
|
<includes>
|
|
<include>elasticsearch.yml</include>
|
|
<include>**/*.properties</include>
|
|
</includes>
|
|
</testResource>
|
|
<!-- REST API specification and test suites -->
|
|
<testResource>
|
|
<directory>${project.basedir}/rest-api-spec</directory>
|
|
<targetPath>rest-api-spec</targetPath>
|
|
<includes>
|
|
<include>api/*.json</include>
|
|
<include>test/**/*.yaml</include>
|
|
</includes>
|
|
</testResource>
|
|
<!-- REST API specifications copied from main Elasticsearch specs
|
|
because they are required to execute the REST tests in plugins -->
|
|
<testResource>
|
|
<directory>${elasticsearch.tools.directory}/rest-api-spec</directory>
|
|
<targetPath>rest-api-spec</targetPath>
|
|
<includes>
|
|
<!-- required by the test framework -->
|
|
<include>api/info.json</include>
|
|
<include>api/cluster.health.json</include>
|
|
<include>api/cluster.state.json</include>
|
|
<!-- used in plugin REST tests -->
|
|
<include>api/index.json</include>
|
|
<include>api/get.json</include>
|
|
<include>api/update.json</include>
|
|
<include>api/search.json</include>
|
|
<include>api/indices.analyze.json</include>
|
|
<include>api/indices.create.json</include>
|
|
<include>api/indices.refresh.json</include>
|
|
<include>api/nodes.info.json</include>
|
|
<include>api/count.json</include>
|
|
</includes>
|
|
</testResource>
|
|
<!-- shared test resources like log4j.properties -->
|
|
<testResource>
|
|
<directory>${elasticsearch.tools.directory}/shared-test-resources</directory>
|
|
<filtering>false</filtering>
|
|
</testResource>
|
|
</testResources>
|
|
|
|
<plugins>
|
|
<!-- integration tests -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<executions>
|
|
<!-- start up external cluster -->
|
|
<execution>
|
|
<id>integ-setup</id>
|
|
<phase>pre-integration-test</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<skip>${skip.integ.tests}</skip>
|
|
<target>
|
|
<ant antfile="${elasticsearch.integ.antfile}" target="start-external-cluster-with-plugin">
|
|
<property name="tests.jvm.argline" value="${tests.jvm.argline}"/>
|
|
</ant>
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
<!-- shut down external cluster -->
|
|
<execution>
|
|
<id>integ-teardown</id>
|
|
<phase>post-integration-test</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<skip>${skip.integ.tests}</skip>
|
|
<target>
|
|
<ant antfile="${elasticsearch.integ.antfile}" target="stop-external-cluster"/>
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<configuration>
|
|
<appendAssemblyId>${elasticsearch.assembly.appendId}</appendAssemblyId>
|
|
<outputDirectory>${project.build.directory}/releases/</outputDirectory>
|
|
<descriptors>
|
|
<descriptor>${elasticsearch.assembly.descriptor}</descriptor>
|
|
</descriptors>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>single</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>enforce-plugin-classname</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireProperty>
|
|
<property>elasticsearch.plugin.classname</property>
|
|
</requireProperty>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<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>
|
|
<artifactItems>
|
|
<artifactItem>
|
|
<groupId>org.elasticsearch.distribution.zip</groupId>
|
|
<artifactId>elasticsearch</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
<type>zip</type>
|
|
<overWrite>true</overWrite>
|
|
</artifactItem>
|
|
</artifactItems>
|
|
<useBaseVersion>true</useBaseVersion>
|
|
<outputDirectory>${integ.deps}</outputDirectory>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>com.carrotsearch.randomizedtesting</groupId>
|
|
<artifactId>junit4-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>integ-tests</id>
|
|
<configuration>
|
|
<!-- currently only 1 cpu works, because integ tests don't make "unique" test directories? -->
|
|
<parallelism>1</parallelism>
|
|
<systemProperties>
|
|
<!-- use external cluster -->
|
|
<tests.cluster>127.0.0.1:${integ.transport.port}</tests.cluster>
|
|
</systemProperties>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
|
|
<modules>
|
|
<module>analysis-kuromoji</module>
|
|
<module>analysis-smartcn</module>
|
|
<module>analysis-stempel</module>
|
|
<module>analysis-phonetic</module>
|
|
<module>analysis-icu</module>
|
|
<module>cloud-gce</module>
|
|
<module>cloud-azure</module>
|
|
<module>cloud-aws</module>
|
|
<module>delete-by-query</module>
|
|
<module>lang-python</module>
|
|
<module>lang-javascript</module>
|
|
<module>mapper-size</module>
|
|
<module>jvm-example</module>
|
|
<module>site-example</module>
|
|
</modules>
|
|
</project>
|