Merge branch 'master' into feature/query-refactoring
Conflicts: core/src/test/java/org/elasticsearch/common/io/streams/BytesStreamsTests.java core/src/test/java/org/elasticsearch/search/highlight/HighlighterSearchIT.java core/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java core/src/test/java/org/elasticsearch/test/transport/AssertingLocalTransport.java
This commit is contained in:
commit
4cceb08a0b
|
@ -73,9 +73,7 @@ mvn test "-Dtests.method=*esi*"
|
|||
|
||||
You can also filter tests by certain annotations ie:
|
||||
|
||||
* `@Slow` - tests that are know to take a long time to execute
|
||||
* `@Nightly` - tests that only run in nightly builds (disabled by default)
|
||||
* `@Integration` - integration tests
|
||||
* `@Backwards` - backwards compatibility tests (disabled by default)
|
||||
* `@AwaitsFix` - tests that are waiting for a bugfix (disabled by default)
|
||||
* `@BadApple` - tests that are known to fail randomly (disabled by default)
|
||||
|
@ -83,15 +81,15 @@ You can also filter tests by certain annotations ie:
|
|||
Those annotation names can be combined into a filter expression like:
|
||||
|
||||
------------------------------------------------
|
||||
mvn test -Dtests.filter="@nightly and not @slow"
|
||||
mvn test -Dtests.filter="@nightly and not @backwards"
|
||||
------------------------------------------------
|
||||
|
||||
to run all nightly test but not the ones that are slow. `tests.filter` supports
|
||||
to run all nightly test but not the ones that are backwards tests. `tests.filter` supports
|
||||
the boolean operators `and, or, not` and grouping ie:
|
||||
|
||||
|
||||
---------------------------------------------------------------
|
||||
mvn test -Dtests.filter="@nightly and not(@slow or @backwards)"
|
||||
mvn test -Dtests.filter="@nightly and not(@badapple or @backwards)"
|
||||
---------------------------------------------------------------
|
||||
|
||||
=== Seed and repetitions.
|
||||
|
@ -147,7 +145,6 @@ Default value provided below in [brackets].
|
|||
mvn test -Dtests.nightly=[false] - nightly test group (@Nightly)
|
||||
mvn test -Dtests.weekly=[false] - weekly tests (@Weekly)
|
||||
mvn test -Dtests.awaitsfix=[false] - known issue (@AwaitsFix)
|
||||
mvn test -Dtests.slow=[true] - slow tests (@Slow)
|
||||
------------------------------------------------------------------
|
||||
|
||||
=== Load balancing and caches.
|
||||
|
@ -248,6 +245,21 @@ $ curl -O https://download.elasticsearch.org/elasticsearch/elasticsearch/elastic
|
|||
$ tar -xzf elasticsearch-1.2.1.tar.gz
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
== Running integration tests
|
||||
|
||||
To run the integration tests:
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
mvn verify
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
Note that this will also run the unit tests first. If you want to just
|
||||
run the integration tests only (because you are debugging them):
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
mvn verify -Dskip.unit.tests
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
== Testing the REST layer
|
||||
|
||||
The available integration tests make use of the java API to communicate with
|
||||
|
@ -261,10 +273,10 @@ The REST tests are run automatically when executing the maven test command. To r
|
|||
REST tests use the following command:
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
mvn test -Dtests.filter="@Rest"
|
||||
mvn verify -Dtests.filter="@Rest"
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
`ElasticsearchRestTests` is the executable test class that runs all the
|
||||
`RestNIT` are the executable test classes that runs all the
|
||||
yaml suites available within the `rest-api-spec` folder.
|
||||
|
||||
The REST tests support all the options provided by the randomized runner, plus the following:
|
||||
|
@ -321,3 +333,12 @@ ES_CLEAN_BEFORE_TEST=true bats 30_deb_package.bats
|
|||
The current mode of execution is to copy all the packages that should be tested
|
||||
into one directory, then copy the bats files into the same directory and run
|
||||
those.
|
||||
|
||||
== Coverage analysis
|
||||
|
||||
To run tests instrumented with jacoco and produce a coverage report in
|
||||
`target/site/jacoco/`:
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
mvn -Dtests.coverage test jacoco:report
|
||||
---------------------------------------------------------------------------
|
||||
|
|
118
core/pom.xml
118
core/pom.xml
|
@ -16,11 +16,6 @@
|
|||
<name>Elasticsearch Core</name>
|
||||
<description>Elasticsearch - Open Source, Distributed, RESTful Search Engine</description>
|
||||
|
||||
|
||||
<properties>
|
||||
<skip.integ.tests>true</skip.integ.tests>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.hamcrest</groupId>
|
||||
|
@ -297,119 +292,6 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<shadedArtifactAttached>true</shadedArtifactAttached>
|
||||
<shadedClassifierName>shaded</shadedClassifierName>
|
||||
<shadeTestJar>false</shadeTestJar>
|
||||
<minimizeJar>true</minimizeJar>
|
||||
<promoteTransitiveDependencies>true</promoteTransitiveDependencies>
|
||||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||
<artifactSet>
|
||||
<includes>
|
||||
<include>com.google.guava:guava</include>
|
||||
<include>com.carrotsearch:hppc</include>
|
||||
<include>com.fasterxml.jackson.core:jackson-core</include>
|
||||
<include>com.fasterxml.jackson.dataformat:jackson-dataformat-smile</include>
|
||||
<include>com.fasterxml.jackson.dataformat:jackson-dataformat-yaml</include>
|
||||
<include>com.fasterxml.jackson.dataformat:jackson-dataformat-cbor</include>
|
||||
<include>joda-time:joda-time</include>
|
||||
<include>org.joda:joda-convert</include>
|
||||
<include>io.netty:netty</include>
|
||||
<include>com.ning:compress-lzf</include>
|
||||
<include>com.github.spullara.mustache.java:compiler</include>
|
||||
<include>com.tdunning:t-digest</include>
|
||||
<include>org.apache.commons:commons-lang3</include>
|
||||
<include>commons-cli:commons-cli</include>
|
||||
<include>com.twitter:jsr166e</include>
|
||||
</includes>
|
||||
</artifactSet>
|
||||
<transformers>
|
||||
<!-- copy over MANIFEST.MF from unshaded jar, but mark jar as shaded too -->
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||
<manifestEntries>
|
||||
<X-Build-Shaded>true</X-Build-Shaded>
|
||||
</manifestEntries>
|
||||
</transformer>
|
||||
</transformers>
|
||||
<relocations>
|
||||
<relocation>
|
||||
<pattern>com.google.common</pattern>
|
||||
<shadedPattern>org.elasticsearch.common</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>com.carrotsearch.hppc</pattern>
|
||||
<shadedPattern>org.elasticsearch.common.hppc</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>com.twitter.jsr166e</pattern>
|
||||
<shadedPattern>org.elasticsearch.common.util.concurrent.jsr166e</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>com.fasterxml.jackson</pattern>
|
||||
<shadedPattern>org.elasticsearch.common.jackson</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>org.joda.time</pattern>
|
||||
<shadedPattern>org.elasticsearch.common.joda.time</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>org.jboss.netty</pattern>
|
||||
<shadedPattern>org.elasticsearch.common.netty</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>com.ning.compress</pattern>
|
||||
<shadedPattern>org.elasticsearch.common.compress</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>com.github.mustachejava</pattern>
|
||||
<shadedPattern>org.elasticsearch.common.mustache</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>com.tdunning.math.stats</pattern>
|
||||
<shadedPattern>org.elasticsearch.common.stats</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>org.apache.commons.lang</pattern>
|
||||
<shadedPattern>org.elasticsearch.common.lang</shadedPattern>
|
||||
</relocation>
|
||||
<relocation>
|
||||
<pattern>org.apache.commons.cli</pattern>
|
||||
<shadedPattern>org.elasticsearch.common.cli.commons</shadedPattern>
|
||||
</relocation>
|
||||
</relocations>
|
||||
<filters>
|
||||
<filter>
|
||||
<artifact>*:*</artifact>
|
||||
<excludes>
|
||||
<exclude>META-INF/license/**</exclude>
|
||||
<exclude>META-INF/*</exclude>
|
||||
<exclude>META-INF/maven/**</exclude>
|
||||
<exclude>LICENSE</exclude>
|
||||
<exclude>NOTICE</exclude>
|
||||
<exclude>/*.txt</exclude>
|
||||
<exclude>build.properties</exclude>
|
||||
</excludes>
|
||||
</filter>
|
||||
<filter>
|
||||
<artifact>io.netty:netty</artifact>
|
||||
<includes>
|
||||
<include>org/jboss/netty/**</include>
|
||||
</includes>
|
||||
</filter>
|
||||
</filters>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
|
|
|
@ -222,7 +222,7 @@ public class Bootstrap {
|
|||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
public static void main(String[] args) throws Throwable {
|
||||
BootstrapCLIParser bootstrapCLIParser = new BootstrapCLIParser();
|
||||
CliTool.ExitStatus status = bootstrapCLIParser.execute(args);
|
||||
|
||||
|
@ -239,28 +239,16 @@ public class Bootstrap {
|
|||
foreground = false;
|
||||
}
|
||||
|
||||
String stage = "Settings";
|
||||
Tuple<Settings, Environment> tuple = initialSettings(foreground);
|
||||
Settings settings = tuple.v1();
|
||||
Environment environment = tuple.v2();
|
||||
|
||||
Settings settings = null;
|
||||
Environment environment = null;
|
||||
try {
|
||||
Tuple<Settings, Environment> tuple = initialSettings(foreground);
|
||||
settings = tuple.v1();
|
||||
environment = tuple.v2();
|
||||
|
||||
if (environment.pidFile() != null) {
|
||||
stage = "Pid";
|
||||
PidFile.create(environment.pidFile(), true);
|
||||
}
|
||||
|
||||
stage = "Logging";
|
||||
setupLogging(settings, environment);
|
||||
} catch (Exception e) {
|
||||
String errorMessage = buildErrorMessage(stage, e);
|
||||
sysError(errorMessage, true);
|
||||
System.exit(3);
|
||||
if (environment.pidFile() != null) {
|
||||
PidFile.create(environment.pidFile(), true);
|
||||
}
|
||||
|
||||
setupLogging(settings, environment);
|
||||
|
||||
if (System.getProperty("es.max-open-files", "false").equals("true")) {
|
||||
ESLogger logger = Loggers.getLogger(Bootstrap.class);
|
||||
logger.info("max_open_files [{}]", ProcessProbe.getInstance().getMaxFileDescriptorCount());
|
||||
|
@ -272,7 +260,6 @@ public class Bootstrap {
|
|||
logger.warn("jvm uses the client vm, make sure to run `java` with the server vm for best performance by adding `-server` to the command line");
|
||||
}
|
||||
|
||||
stage = "Initialization";
|
||||
try {
|
||||
if (!foreground) {
|
||||
Loggers.disableConsoleLogging();
|
||||
|
@ -284,7 +271,6 @@ public class Bootstrap {
|
|||
|
||||
INSTANCE.setup(true, settings, environment);
|
||||
|
||||
stage = "Startup";
|
||||
INSTANCE.start();
|
||||
|
||||
if (!foreground) {
|
||||
|
@ -295,14 +281,9 @@ public class Bootstrap {
|
|||
if (INSTANCE.node != null) {
|
||||
logger = Loggers.getLogger(Bootstrap.class, INSTANCE.node.settings().get("name"));
|
||||
}
|
||||
String errorMessage = buildErrorMessage(stage, e);
|
||||
if (foreground) {
|
||||
sysError(errorMessage, true);
|
||||
Loggers.disableConsoleLogging();
|
||||
}
|
||||
logger.error("Exception", e);
|
||||
|
||||
System.exit(3);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -323,38 +304,4 @@ public class Bootstrap {
|
|||
System.err.flush();
|
||||
}
|
||||
}
|
||||
|
||||
private static String buildErrorMessage(String stage, Throwable e) {
|
||||
StringBuilder errorMessage = new StringBuilder("{").append(Version.CURRENT).append("}: ");
|
||||
errorMessage.append(stage).append(" Failed ...\n");
|
||||
if (e instanceof CreationException) {
|
||||
CreationException createException = (CreationException) e;
|
||||
Set<String> seenMessages = newHashSet();
|
||||
int counter = 1;
|
||||
for (Message message : createException.getErrorMessages()) {
|
||||
String detailedMessage;
|
||||
if (message.getCause() == null) {
|
||||
detailedMessage = message.getMessage();
|
||||
} else {
|
||||
detailedMessage = ExceptionsHelper.detailedMessage(message.getCause(), true, 0);
|
||||
}
|
||||
if (detailedMessage == null) {
|
||||
detailedMessage = message.getMessage();
|
||||
}
|
||||
if (seenMessages.contains(detailedMessage)) {
|
||||
continue;
|
||||
}
|
||||
seenMessages.add(detailedMessage);
|
||||
errorMessage.append("").append(counter++).append(") ").append(detailedMessage);
|
||||
}
|
||||
} else {
|
||||
errorMessage.append("- ").append(ExceptionsHelper.detailedMessage(e, true, 0));
|
||||
}
|
||||
if (Loggers.getLogger(Bootstrap.class).isDebugEnabled()) {
|
||||
errorMessage.append("\n").append(ExceptionsHelper.stackTrace(e));
|
||||
}
|
||||
return errorMessage.toString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ package org.elasticsearch.bootstrap;
|
|||
*/
|
||||
public class Elasticsearch extends Bootstrap {
|
||||
|
||||
public static void main(String[] args) {
|
||||
public static void main(String[] args) throws Throwable {
|
||||
Bootstrap.main(args);
|
||||
}
|
||||
}
|
|
@ -25,7 +25,7 @@ package org.elasticsearch.bootstrap;
|
|||
*/
|
||||
public class ElasticsearchF {
|
||||
|
||||
public static void main(String[] args) {
|
||||
public static void main(String[] args) throws Throwable {
|
||||
System.setProperty("es.foreground", "yes");
|
||||
Bootstrap.main(args);
|
||||
}
|
||||
|
|
|
@ -47,8 +47,11 @@ import java.util.jar.Manifest;
|
|||
public class JarHell {
|
||||
|
||||
/** Simple driver class, can be used eg. from builds. Returns non-zero on jar-hell */
|
||||
@SuppressForbidden(reason = "command line tool")
|
||||
public static void main(String args[]) throws Exception {
|
||||
System.out.println("checking for jar hell...");
|
||||
checkJarHell();
|
||||
System.out.println("no jar hell found");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -116,14 +116,15 @@ final class Security {
|
|||
|
||||
/** returns dynamic Permissions to configured paths */
|
||||
static Permissions createPermissions(Environment environment) throws IOException {
|
||||
// TODO: improve test infra so we can reduce permissions where read/write
|
||||
// is not really needed...
|
||||
Permissions policy = new Permissions();
|
||||
// read-only dirs
|
||||
addPath(policy, environment.binFile(), "read,readlink");
|
||||
addPath(policy, environment.libFile(), "read,readlink");
|
||||
addPath(policy, environment.pluginsFile(), "read,readlink");
|
||||
addPath(policy, environment.configFile(), "read,readlink");
|
||||
// read-write dirs
|
||||
addPath(policy, environment.tmpFile(), "read,readlink,write,delete");
|
||||
addPath(policy, environment.homeFile(), "read,readlink,write,delete");
|
||||
addPath(policy, environment.configFile(), "read,readlink,write,delete");
|
||||
addPath(policy, environment.logsFile(), "read,readlink,write,delete");
|
||||
addPath(policy, environment.pluginsFile(), "read,readlink,write,delete");
|
||||
for (Path path : environment.dataFiles()) {
|
||||
addPath(policy, path, "read,readlink,write,delete");
|
||||
}
|
||||
|
@ -134,7 +135,8 @@ final class Security {
|
|||
addPath(policy, path, "read,readlink,write,delete");
|
||||
}
|
||||
if (environment.pidFile() != null) {
|
||||
addPath(policy, environment.pidFile().getParent(), "read,readlink,write,delete");
|
||||
// we just need permission to remove the file if its elsewhere.
|
||||
policy.add(new FilePermission(environment.pidFile().toString(), "delete"));
|
||||
}
|
||||
return policy;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
package org.elasticsearch.common.util.concurrent;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import org.elasticsearch.common.Priority;
|
||||
import org.elasticsearch.common.unit.TimeValue;
|
||||
|
||||
|
@ -161,8 +162,10 @@ public class PrioritizedEsThreadPoolExecutor extends EsThreadPoolExecutor {
|
|||
|
||||
private Runnable runnable;
|
||||
private final long insertionOrder;
|
||||
private volatile ScheduledFuture<?> timeoutFuture;
|
||||
private volatile boolean started = false;
|
||||
|
||||
// these two variables are protected by 'this'
|
||||
private ScheduledFuture<?> timeoutFuture;
|
||||
private boolean started = false;
|
||||
|
||||
TieBreakingPrioritizedRunnable(PrioritizedRunnable runnable, long insertionOrder) {
|
||||
this(runnable, runnable.priority(), insertionOrder);
|
||||
|
@ -176,10 +179,12 @@ public class PrioritizedEsThreadPoolExecutor extends EsThreadPoolExecutor {
|
|||
|
||||
@Override
|
||||
public void run() {
|
||||
// make the task as stared. This is needed for synchronization with the timeout handling
|
||||
// see #scheduleTimeout()
|
||||
started = true;
|
||||
FutureUtils.cancel(timeoutFuture);
|
||||
synchronized (this) {
|
||||
// make the task as stared. This is needed for synchronization with the timeout handling
|
||||
// see #scheduleTimeout()
|
||||
started = true;
|
||||
FutureUtils.cancel(timeoutFuture);
|
||||
}
|
||||
runAndClean(runnable);
|
||||
}
|
||||
|
||||
|
@ -193,17 +198,20 @@ public class PrioritizedEsThreadPoolExecutor extends EsThreadPoolExecutor {
|
|||
}
|
||||
|
||||
public void scheduleTimeout(ScheduledExecutorService timer, final Runnable timeoutCallback, TimeValue timeValue) {
|
||||
timeoutFuture = timer.schedule(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (remove(TieBreakingPrioritizedRunnable.this)) {
|
||||
runAndClean(timeoutCallback);
|
||||
}
|
||||
synchronized (this) {
|
||||
if (timeoutFuture != null) {
|
||||
throw new IllegalStateException("scheduleTimeout may only be called once");
|
||||
}
|
||||
if (started == false) {
|
||||
timeoutFuture = timer.schedule(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (remove(TieBreakingPrioritizedRunnable.this)) {
|
||||
runAndClean(timeoutCallback);
|
||||
}
|
||||
}
|
||||
}, timeValue.nanos(), TimeUnit.NANOSECONDS);
|
||||
}
|
||||
}, timeValue.nanos(), TimeUnit.NANOSECONDS);
|
||||
if (started) {
|
||||
// if the actual action already it might have missed the setting of the future. Clean it ourselves.
|
||||
FutureUtils.cancel(timeoutFuture);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -45,8 +45,6 @@ public class Environment {
|
|||
|
||||
private final Settings settings;
|
||||
|
||||
private final Path homeFile;
|
||||
|
||||
private final Path[] dataFiles;
|
||||
|
||||
private final Path[] dataWithClusterFiles;
|
||||
|
@ -57,6 +55,12 @@ public class Environment {
|
|||
|
||||
private final Path pluginsFile;
|
||||
|
||||
/** location of bin/, used by plugin manager */
|
||||
private final Path binFile;
|
||||
|
||||
/** location of lib/, */
|
||||
private final Path libFile;
|
||||
|
||||
private final Path logsFile;
|
||||
|
||||
/** Path to the PID file (can be null if no PID file is configured) **/
|
||||
|
@ -83,6 +87,7 @@ public class Environment {
|
|||
|
||||
public Environment(Settings settings) {
|
||||
this.settings = settings;
|
||||
final Path homeFile;
|
||||
if (settings.get("path.home") != null) {
|
||||
homeFile = PathUtils.get(cleanPath(settings.get("path.home")));
|
||||
} else {
|
||||
|
@ -133,6 +138,9 @@ public class Environment {
|
|||
} else {
|
||||
pidFile = null;
|
||||
}
|
||||
|
||||
binFile = homeFile.resolve("bin");
|
||||
libFile = homeFile.resolve("lib");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -142,13 +150,6 @@ public class Environment {
|
|||
return this.settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* The home of the installation.
|
||||
*/
|
||||
public Path homeFile() {
|
||||
return homeFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* The data location.
|
||||
*/
|
||||
|
@ -236,6 +237,14 @@ public class Environment {
|
|||
return pluginsFile;
|
||||
}
|
||||
|
||||
public Path binFile() {
|
||||
return binFile;
|
||||
}
|
||||
|
||||
public Path libFile() {
|
||||
return libFile;
|
||||
}
|
||||
|
||||
public Path logsFile() {
|
||||
return logsFile;
|
||||
}
|
||||
|
|
|
@ -140,8 +140,8 @@ public class Node implements Releasable {
|
|||
|
||||
if (logger.isDebugEnabled()) {
|
||||
Environment env = tuple.v2();
|
||||
logger.debug("using home [{}], config [{}], data [{}], logs [{}], plugins [{}]",
|
||||
env.homeFile(), env.configFile(), Arrays.toString(env.dataFiles()), env.logsFile(), env.pluginsFile());
|
||||
logger.debug("using config [{}], data [{}], logs [{}], plugins [{}]",
|
||||
env.configFile(), Arrays.toString(env.dataFiles()), env.logsFile(), env.pluginsFile());
|
||||
}
|
||||
|
||||
this.pluginsService = new PluginsService(tuple.v1(), tuple.v2());
|
||||
|
|
|
@ -32,6 +32,7 @@ import org.apache.lucene.util.Counter;
|
|||
import org.elasticsearch.action.percolate.PercolateShardRequest;
|
||||
import org.elasticsearch.action.search.SearchType;
|
||||
import org.elasticsearch.cache.recycler.PageCacheRecycler;
|
||||
import org.elasticsearch.client.Client;
|
||||
import org.elasticsearch.common.*;
|
||||
import org.elasticsearch.common.collect.ImmutableOpenMap;
|
||||
import org.elasticsearch.common.lease.Releasables;
|
||||
|
@ -58,7 +59,7 @@ import org.elasticsearch.search.aggregations.SearchContextAggregations;
|
|||
import org.elasticsearch.search.dfs.DfsSearchResult;
|
||||
import org.elasticsearch.search.fetch.FetchSearchResult;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.fielddata.FieldDataFieldsContext;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhaseContext;
|
||||
import org.elasticsearch.search.fetch.innerhits.InnerHitsContext;
|
||||
import org.elasticsearch.search.fetch.script.ScriptFieldsContext;
|
||||
import org.elasticsearch.search.fetch.source.FetchSourceContext;
|
||||
|
@ -116,6 +117,7 @@ public class PercolateContext extends SearchContext {
|
|||
private SearchContextAggregations aggregations;
|
||||
private QuerySearchResult querySearchResult;
|
||||
private Sort sort;
|
||||
private final Map<String, FetchSubPhaseContext> subPhaseContexts = new HashMap<>();
|
||||
|
||||
public PercolateContext(PercolateShardRequest request, SearchShardTarget searchShardTarget, IndexShard indexShard,
|
||||
IndexService indexService, PageCacheRecycler pageCacheRecycler,
|
||||
|
@ -282,6 +284,15 @@ public class PercolateContext extends SearchContext {
|
|||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <SubPhaseContext extends FetchSubPhaseContext> SubPhaseContext getFetchSubPhaseContext(FetchSubPhase.ContextFactory<SubPhaseContext> contextFactory) {
|
||||
String subPhaseName = contextFactory.getName();
|
||||
if (subPhaseContexts.get(subPhaseName) == null) {
|
||||
subPhaseContexts.put(subPhaseName, contextFactory.newContextInstance());
|
||||
}
|
||||
return (SubPhaseContext) subPhaseContexts.get(subPhaseName);
|
||||
}
|
||||
|
||||
// Unused:
|
||||
@Override
|
||||
public void preProcess() {
|
||||
|
@ -378,16 +389,6 @@ public class PercolateContext extends SearchContext {
|
|||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasFieldDataFields() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldDataFieldsContext fieldDataFields() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasScriptFields() {
|
||||
throw new UnsupportedOperationException();
|
||||
|
|
|
@ -462,7 +462,7 @@ public class PluginManager {
|
|||
}
|
||||
|
||||
Path binDir(Environment env) {
|
||||
return env.homeFile().resolve("bin").resolve(name);
|
||||
return env.binFile().resolve(name);
|
||||
}
|
||||
|
||||
Path configDir(Environment env) {
|
||||
|
|
|
@ -42,6 +42,8 @@ import org.elasticsearch.rest.*;
|
|||
import org.elasticsearch.rest.action.support.RestActionListener;
|
||||
import org.elasticsearch.rest.action.support.RestResponseListener;
|
||||
import org.elasticsearch.rest.action.support.RestTable;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.DateTimeZone;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
@ -112,6 +114,9 @@ public class RestIndicesAction extends AbstractCatAction {
|
|||
table.addCell("docs.count", "alias:dc,docsCount;text-align:right;desc:available docs");
|
||||
table.addCell("docs.deleted", "alias:dd,docsDeleted;text-align:right;desc:deleted docs");
|
||||
|
||||
table.addCell("creation.date", "alias:cd;default:false;desc:index creation date (millisecond value)");
|
||||
table.addCell("creation.date.string", "alias:cds;default:false;desc:index creation date (as string)");
|
||||
|
||||
table.addCell("store.size", "sibling:pri;alias:ss,storeSize;text-align:right;desc:store size of primaries & replicas");
|
||||
table.addCell("pri.store.size", "text-align:right;desc:store size of primaries");
|
||||
|
||||
|
@ -320,6 +325,9 @@ public class RestIndicesAction extends AbstractCatAction {
|
|||
table.addCell(indexStats == null ? null : indexStats.getPrimaries().getDocs().getCount());
|
||||
table.addCell(indexStats == null ? null : indexStats.getPrimaries().getDocs().getDeleted());
|
||||
|
||||
table.addCell(indexMetaData.creationDate());
|
||||
table.addCell(new DateTime(indexMetaData.creationDate(), DateTimeZone.getDefault()));
|
||||
|
||||
table.addCell(indexStats == null ? null : indexStats.getTotal().getStore().size());
|
||||
table.addCell(indexStats == null ? null : indexStats.getPrimaries().getStore().size());
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ import org.elasticsearch.search.aggregations.AggregationModule;
|
|||
import org.elasticsearch.search.controller.SearchPhaseController;
|
||||
import org.elasticsearch.search.dfs.DfsPhase;
|
||||
import org.elasticsearch.search.fetch.FetchPhase;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhaseModule;
|
||||
import org.elasticsearch.search.fetch.explain.ExplainFetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.fielddata.FieldDataFieldsFetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.innerhits.InnerHitsFetchSubPhase;
|
||||
|
@ -63,7 +64,8 @@ public class SearchModule extends AbstractModule implements SpawnModules {
|
|||
new HighlightModule(),
|
||||
new SuggestModule(),
|
||||
new FunctionScoreModule(),
|
||||
new AggregationModule());
|
||||
new AggregationModule(),
|
||||
new FetchSubPhaseModule());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -73,14 +75,6 @@ public class SearchModule extends AbstractModule implements SpawnModules {
|
|||
bind(SearchPhaseController.class).asEagerSingleton();
|
||||
|
||||
bind(FetchPhase.class).asEagerSingleton();
|
||||
bind(ExplainFetchSubPhase.class).asEagerSingleton();
|
||||
bind(FieldDataFieldsFetchSubPhase.class).asEagerSingleton();
|
||||
bind(ScriptFieldsFetchSubPhase.class).asEagerSingleton();
|
||||
bind(FetchSourceSubPhase.class).asEagerSingleton();
|
||||
bind(VersionFetchSubPhase.class).asEagerSingleton();
|
||||
bind(MatchedQueriesFetchSubPhase.class).asEagerSingleton();
|
||||
bind(HighlightPhase.class).asEagerSingleton();
|
||||
bind(InnerHitsFetchSubPhase.class).asEagerSingleton();
|
||||
|
||||
bind(SearchServiceTransportAction.class).asEagerSingleton();
|
||||
bind(MoreLikeThisFetchService.class).asEagerSingleton();
|
||||
|
|
|
@ -22,6 +22,7 @@ import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
|||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregatorFactory;
|
||||
import org.elasticsearch.search.aggregations.support.AggregationContext;
|
||||
import org.elasticsearch.search.aggregations.support.AggregationPath;
|
||||
import org.elasticsearch.search.aggregations.support.AggregationPath.PathElement;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
@ -162,40 +163,79 @@ public class AggregatorFactories {
|
|||
for (PipelineAggregatorFactory factory : pipelineAggregatorFactories) {
|
||||
pipelineAggregatorFactoriesMap.put(factory.getName(), factory);
|
||||
}
|
||||
Set<String> aggFactoryNames = new HashSet<>();
|
||||
Map<String, AggregatorFactory> aggFactoriesMap = new HashMap<>();
|
||||
for (AggregatorFactory aggFactory : aggFactories) {
|
||||
aggFactoryNames.add(aggFactory.name);
|
||||
aggFactoriesMap.put(aggFactory.name, aggFactory);
|
||||
}
|
||||
List<PipelineAggregatorFactory> orderedPipelineAggregatorrs = new LinkedList<>();
|
||||
List<PipelineAggregatorFactory> unmarkedFactories = new ArrayList<PipelineAggregatorFactory>(pipelineAggregatorFactories);
|
||||
Set<PipelineAggregatorFactory> temporarilyMarked = new HashSet<PipelineAggregatorFactory>();
|
||||
while (!unmarkedFactories.isEmpty()) {
|
||||
PipelineAggregatorFactory factory = unmarkedFactories.get(0);
|
||||
resolvePipelineAggregatorOrder(aggFactoryNames, pipelineAggregatorFactoriesMap, orderedPipelineAggregatorrs, unmarkedFactories, temporarilyMarked, factory);
|
||||
resolvePipelineAggregatorOrder(aggFactoriesMap, pipelineAggregatorFactoriesMap, orderedPipelineAggregatorrs,
|
||||
unmarkedFactories, temporarilyMarked, factory);
|
||||
}
|
||||
return orderedPipelineAggregatorrs;
|
||||
}
|
||||
|
||||
private void resolvePipelineAggregatorOrder(Set<String> aggFactoryNames, Map<String, PipelineAggregatorFactory> pipelineAggregatorFactoriesMap,
|
||||
private void resolvePipelineAggregatorOrder(Map<String, AggregatorFactory> aggFactoriesMap,
|
||||
Map<String, PipelineAggregatorFactory> pipelineAggregatorFactoriesMap,
|
||||
List<PipelineAggregatorFactory> orderedPipelineAggregators, List<PipelineAggregatorFactory> unmarkedFactories, Set<PipelineAggregatorFactory> temporarilyMarked,
|
||||
PipelineAggregatorFactory factory) {
|
||||
if (temporarilyMarked.contains(factory)) {
|
||||
throw new IllegalStateException("Cyclical dependancy found with pipeline aggregator [" + factory.getName() + "]");
|
||||
throw new IllegalArgumentException("Cyclical dependancy found with pipeline aggregator [" + factory.getName() + "]");
|
||||
} else if (unmarkedFactories.contains(factory)) {
|
||||
temporarilyMarked.add(factory);
|
||||
String[] bucketsPaths = factory.getBucketsPaths();
|
||||
for (String bucketsPath : bucketsPaths) {
|
||||
List<String> bucketsPathElements = AggregationPath.parse(bucketsPath).getPathElementsAsStringList();
|
||||
String firstAggName = bucketsPathElements.get(0);
|
||||
if (bucketsPath.equals("_count") || bucketsPath.equals("_key") || aggFactoryNames.contains(firstAggName)) {
|
||||
List<AggregationPath.PathElement> bucketsPathElements = AggregationPath.parse(bucketsPath).getPathElements();
|
||||
String firstAggName = bucketsPathElements.get(0).name;
|
||||
if (bucketsPath.equals("_count") || bucketsPath.equals("_key")) {
|
||||
continue;
|
||||
} else if (aggFactoriesMap.containsKey(firstAggName)) {
|
||||
AggregatorFactory aggFactory = aggFactoriesMap.get(firstAggName);
|
||||
for (int i = 1; i < bucketsPathElements.size(); i++) {
|
||||
PathElement pathElement = bucketsPathElements.get(i);
|
||||
String aggName = pathElement.name;
|
||||
if ((i == bucketsPathElements.size() - 1) && (aggName.equalsIgnoreCase("_key") || aggName.equals("_count"))) {
|
||||
break;
|
||||
} else {
|
||||
// Check the non-pipeline sub-aggregator
|
||||
// factories
|
||||
AggregatorFactory[] subFactories = aggFactory.factories.factories;
|
||||
boolean foundSubFactory = false;
|
||||
for (AggregatorFactory subFactory : subFactories) {
|
||||
if (aggName.equals(subFactory.name)) {
|
||||
aggFactory = subFactory;
|
||||
foundSubFactory = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Check the pipeline sub-aggregator factories
|
||||
if (!foundSubFactory && (i == bucketsPathElements.size() - 1)) {
|
||||
List<PipelineAggregatorFactory> subPipelineFactories = aggFactory.factories.pipelineAggregatorFactories;
|
||||
for (PipelineAggregatorFactory subFactory : subPipelineFactories) {
|
||||
if (aggName.equals(subFactory.name())) {
|
||||
foundSubFactory = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!foundSubFactory) {
|
||||
throw new IllegalArgumentException("No aggregation [" + aggName + "] found for path [" + bucketsPath
|
||||
+ "]");
|
||||
}
|
||||
}
|
||||
}
|
||||
continue;
|
||||
} else {
|
||||
PipelineAggregatorFactory matchingFactory = pipelineAggregatorFactoriesMap.get(firstAggName);
|
||||
if (matchingFactory != null) {
|
||||
resolvePipelineAggregatorOrder(aggFactoryNames, pipelineAggregatorFactoriesMap, orderedPipelineAggregators, unmarkedFactories,
|
||||
resolvePipelineAggregatorOrder(aggFactoriesMap, pipelineAggregatorFactoriesMap, orderedPipelineAggregators,
|
||||
unmarkedFactories,
|
||||
temporarilyMarked, matchingFactory);
|
||||
} else {
|
||||
throw new IllegalStateException("No aggregation found for path [" + bucketsPath + "]");
|
||||
throw new IllegalArgumentException("No aggregation found for path [" + bucketsPath + "]");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ public abstract class PipelineAggregatorFactory {
|
|||
|
||||
/**
|
||||
* Constructs a new pipeline aggregator factory.
|
||||
*
|
||||
*
|
||||
* @param name
|
||||
* The aggregation name
|
||||
* @param type
|
||||
|
@ -49,10 +49,14 @@ public abstract class PipelineAggregatorFactory {
|
|||
this.bucketsPaths = bucketsPaths;
|
||||
}
|
||||
|
||||
public String name() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the state of this factory (makes sure the factory is properly
|
||||
* configured)
|
||||
*
|
||||
*
|
||||
* @param pipelineAggregatorFactories
|
||||
* @param factories
|
||||
* @param parent
|
||||
|
@ -66,7 +70,7 @@ public abstract class PipelineAggregatorFactory {
|
|||
|
||||
/**
|
||||
* Creates the pipeline aggregator
|
||||
*
|
||||
*
|
||||
* @param context
|
||||
* The aggregation context
|
||||
* @param parent
|
||||
|
@ -77,7 +81,7 @@ public abstract class PipelineAggregatorFactory {
|
|||
* with <tt>0</tt> as a bucket ordinal. Some factories can take
|
||||
* advantage of this in order to return more optimized
|
||||
* implementations.
|
||||
*
|
||||
*
|
||||
* @return The created aggregator
|
||||
*/
|
||||
public final PipelineAggregator create() throws IOException {
|
||||
|
|
|
@ -45,6 +45,7 @@ import org.elasticsearch.index.mapper.DocumentMapper;
|
|||
import org.elasticsearch.index.mapper.MappedFieldType;
|
||||
import org.elasticsearch.index.mapper.internal.SourceFieldMapper;
|
||||
import org.elasticsearch.index.mapper.object.ObjectMapper;
|
||||
import org.elasticsearch.index.query.functionscore.ScoreFunctionParser;
|
||||
import org.elasticsearch.search.SearchHit;
|
||||
import org.elasticsearch.search.SearchHitField;
|
||||
import org.elasticsearch.search.SearchParseElement;
|
||||
|
@ -83,13 +84,10 @@ public class FetchPhase implements SearchPhase {
|
|||
private final FetchSubPhase[] fetchSubPhases;
|
||||
|
||||
@Inject
|
||||
public FetchPhase(HighlightPhase highlightPhase, ScriptFieldsFetchSubPhase scriptFieldsPhase,
|
||||
MatchedQueriesFetchSubPhase matchedQueriesPhase, ExplainFetchSubPhase explainPhase, VersionFetchSubPhase versionPhase,
|
||||
FetchSourceSubPhase fetchSourceSubPhase, FieldDataFieldsFetchSubPhase fieldDataFieldsFetchSubPhase,
|
||||
InnerHitsFetchSubPhase innerHitsFetchSubPhase) {
|
||||
public FetchPhase(Set<FetchSubPhase> fetchSubPhases, InnerHitsFetchSubPhase innerHitsFetchSubPhase) {
|
||||
innerHitsFetchSubPhase.setFetchPhase(this);
|
||||
this.fetchSubPhases = new FetchSubPhase[]{scriptFieldsPhase, matchedQueriesPhase, explainPhase, highlightPhase,
|
||||
fetchSourceSubPhase, versionPhase, fieldDataFieldsFetchSubPhase, innerHitsFetchSubPhase};
|
||||
this.fetchSubPhases = fetchSubPhases.toArray(new FetchSubPhase[fetchSubPhases.size() + 1]);
|
||||
this.fetchSubPhases[fetchSubPhases.size()] = innerHitsFetchSubPhase;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -114,4 +114,23 @@ public interface FetchSubPhase {
|
|||
boolean hitsExecutionNeeded(SearchContext context);
|
||||
|
||||
void hitsExecute(SearchContext context, InternalSearchHit[] hits);
|
||||
|
||||
/**
|
||||
* This interface is in the fetch phase plugin mechanism.
|
||||
* Whenever a new search is executed we create a new {@link SearchContext} that holds individual contexts for each {@link org.elasticsearch.search.fetch.FetchSubPhase}.
|
||||
* Fetch phases that use the plugin mechanism must provide a ContextFactory to the SearchContext that creates the fetch phase context and also associates them with a name.
|
||||
* See {@link SearchContext#getFetchSubPhaseContext(FetchSubPhase.ContextFactory)}
|
||||
*/
|
||||
public interface ContextFactory<SubPhaseContext extends FetchSubPhaseContext> {
|
||||
|
||||
/**
|
||||
* The name of the context.
|
||||
*/
|
||||
public String getName();
|
||||
|
||||
/**
|
||||
* Creates a new instance of a FetchSubPhaseContext that holds all information a FetchSubPhase needs to execute on hits.
|
||||
*/
|
||||
public SubPhaseContext newContextInstance();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch 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.elasticsearch.search.fetch;
|
||||
|
||||
/**
|
||||
* All configuration and context needed by the FetchSubPhase to execute on hits.
|
||||
* The only required information in this base class is whether or not the sub phase needs to be run at all.
|
||||
* It can be extended by FetchSubPhases to hold information the phase needs to execute on hits.
|
||||
* See {@link org.elasticsearch.search.fetch.FetchSubPhase.ContextFactory} and also {@link org.elasticsearch.search.fetch.fielddata.FieldDataFieldsContext} for an example.
|
||||
*/
|
||||
public class FetchSubPhaseContext {
|
||||
|
||||
// This is to store if the FetchSubPhase should be executed at all.
|
||||
private boolean hitExecutionNeeded = false;
|
||||
|
||||
/**
|
||||
* Set if this phase should be executed at all.
|
||||
*/
|
||||
void setHitExecutionNeeded(boolean hitExecutionNeeded) {
|
||||
this.hitExecutionNeeded = hitExecutionNeeded;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if this phase be executed at all.
|
||||
*/
|
||||
public boolean hitExecutionNeeded() {
|
||||
return hitExecutionNeeded;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch 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.elasticsearch.search.fetch;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.elasticsearch.common.inject.AbstractModule;
|
||||
import org.elasticsearch.common.inject.multibindings.Multibinder;
|
||||
import org.elasticsearch.search.fetch.explain.ExplainFetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.fielddata.FieldDataFieldsFetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.innerhits.InnerHitsFetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.matchedqueries.MatchedQueriesFetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.script.ScriptFieldsFetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.source.FetchSourceSubPhase;
|
||||
import org.elasticsearch.search.fetch.version.VersionFetchSubPhase;
|
||||
import org.elasticsearch.search.highlight.HighlightPhase;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Module for registering fetch sub phases. Fetch phases are executed when the document is finally
|
||||
* retrieved from the shard. To implement a new fetch phase one needs to implement the following classes and interfaces
|
||||
* <p/>
|
||||
* <ul>
|
||||
* <li> {@link FetchSubPhaseParseElement} </li>
|
||||
* <li> {@link FetchSubPhase} </li>
|
||||
* <li> {@link FetchSubPhaseContext} </li>
|
||||
* </ul>
|
||||
* <p/>
|
||||
* The FetchSubPhase must then be registered with this module with {@link FetchSubPhaseModule#registerFetchSubPhase(Class<? extends FetchSubPhase>)}.
|
||||
* See {@link FieldDataFieldsFetchSubPhase} for an example.
|
||||
*/
|
||||
public class FetchSubPhaseModule extends AbstractModule {
|
||||
|
||||
private List<Class<? extends FetchSubPhase>> fetchSubPhases = Lists.newArrayList();
|
||||
|
||||
public FetchSubPhaseModule() {
|
||||
registerFetchSubPhase(ExplainFetchSubPhase.class);
|
||||
registerFetchSubPhase(FieldDataFieldsFetchSubPhase.class);
|
||||
registerFetchSubPhase(ScriptFieldsFetchSubPhase.class);
|
||||
registerFetchSubPhase(FetchSourceSubPhase.class);
|
||||
registerFetchSubPhase(VersionFetchSubPhase.class);
|
||||
registerFetchSubPhase(MatchedQueriesFetchSubPhase.class);
|
||||
registerFetchSubPhase(HighlightPhase.class);
|
||||
}
|
||||
|
||||
public void registerFetchSubPhase(Class<? extends FetchSubPhase> subPhase) {
|
||||
fetchSubPhases.add(subPhase);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
Multibinder<FetchSubPhase> parserMapBinder = Multibinder.newSetBinder(binder(), FetchSubPhase.class);
|
||||
for (Class<? extends FetchSubPhase> clazz : fetchSubPhases) {
|
||||
parserMapBinder.addBinding().to(clazz);
|
||||
}
|
||||
bind(InnerHitsFetchSubPhase.class).asEagerSingleton();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* Licensed to Elasticsearch under one or more contributor
|
||||
* license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright
|
||||
* ownership. Elasticsearch 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.elasticsearch.search.fetch;
|
||||
|
||||
import org.elasticsearch.common.xcontent.XContentParser;
|
||||
import org.elasticsearch.search.SearchParseElement;
|
||||
import org.elasticsearch.search.internal.SearchContext;
|
||||
|
||||
/**
|
||||
* A parse element for a {@link org.elasticsearch.search.fetch.FetchSubPhase} that is used when parsing a search request.
|
||||
*/
|
||||
public abstract class FetchSubPhaseParseElement<SubPhaseContext extends FetchSubPhaseContext> implements SearchParseElement {
|
||||
|
||||
@Override
|
||||
final public void parse(XContentParser parser, SearchContext context) throws Exception {
|
||||
SubPhaseContext fetchSubPhaseContext = context.getFetchSubPhaseContext(getContextFactory());
|
||||
// this is to make sure that the SubFetchPhase knows it should execute
|
||||
fetchSubPhaseContext.setHitExecutionNeeded(true);
|
||||
innerParse(parser, fetchSubPhaseContext, context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implement the actual parsing here.
|
||||
*/
|
||||
protected abstract void innerParse(XContentParser parser, SubPhaseContext fetchSubPhaseContext, SearchContext searchContext) throws Exception;
|
||||
|
||||
/**
|
||||
* Return the ContextFactory for this FetchSubPhase.
|
||||
*/
|
||||
protected abstract FetchSubPhase.ContextFactory<SubPhaseContext> getContextFactory();
|
||||
}
|
|
@ -19,13 +19,14 @@
|
|||
package org.elasticsearch.search.fetch.fielddata;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhaseContext;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* All the required context to pull a field from the field data cache.
|
||||
*/
|
||||
public class FieldDataFieldsContext {
|
||||
public class FieldDataFieldsContext extends FetchSubPhaseContext {
|
||||
|
||||
public static class FieldDataField {
|
||||
private final String name;
|
||||
|
|
|
@ -27,6 +27,7 @@ import org.elasticsearch.index.mapper.MappedFieldType;
|
|||
import org.elasticsearch.search.SearchHitField;
|
||||
import org.elasticsearch.search.SearchParseElement;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhaseContext;
|
||||
import org.elasticsearch.search.internal.InternalSearchHit;
|
||||
import org.elasticsearch.search.internal.InternalSearchHitField;
|
||||
import org.elasticsearch.search.internal.SearchContext;
|
||||
|
@ -43,6 +44,20 @@ import java.util.Map;
|
|||
*/
|
||||
public class FieldDataFieldsFetchSubPhase implements FetchSubPhase {
|
||||
|
||||
public static final String[] NAMES = {"fielddata_fields", "fielddataFields"};
|
||||
public static final ContextFactory<FieldDataFieldsContext> CONTEXT_FACTORY = new ContextFactory<FieldDataFieldsContext>() {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return NAMES[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldDataFieldsContext newContextInstance() {
|
||||
return new FieldDataFieldsContext();
|
||||
}
|
||||
};
|
||||
|
||||
@Inject
|
||||
public FieldDataFieldsFetchSubPhase() {
|
||||
}
|
||||
|
@ -66,12 +81,12 @@ public class FieldDataFieldsFetchSubPhase implements FetchSubPhase {
|
|||
|
||||
@Override
|
||||
public boolean hitExecutionNeeded(SearchContext context) {
|
||||
return context.hasFieldDataFields();
|
||||
return context.getFetchSubPhaseContext(CONTEXT_FACTORY).hitExecutionNeeded();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hitExecute(SearchContext context, HitContext hitContext) {
|
||||
for (FieldDataFieldsContext.FieldDataField field : context.fieldDataFields().fields()) {
|
||||
for (FieldDataFieldsContext.FieldDataField field : context.getFetchSubPhaseContext(CONTEXT_FACTORY).fields()) {
|
||||
if (hitContext.hit().fieldsOrNull() == null) {
|
||||
hitContext.hit().fields(new HashMap<String, SearchHitField>(2));
|
||||
}
|
||||
|
|
|
@ -20,12 +20,15 @@ package org.elasticsearch.search.fetch.fielddata;
|
|||
|
||||
import org.elasticsearch.common.xcontent.XContentParser;
|
||||
import org.elasticsearch.search.SearchParseElement;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhaseContext;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhaseParseElement;
|
||||
import org.elasticsearch.search.internal.SearchContext;
|
||||
|
||||
/**
|
||||
* Parses field name values from the {@code fielddata_fields} parameter in a
|
||||
* search request.
|
||||
*
|
||||
* <p/>
|
||||
* <pre>
|
||||
* {
|
||||
* "query": {...},
|
||||
|
@ -33,20 +36,26 @@ import org.elasticsearch.search.internal.SearchContext;
|
|||
* }
|
||||
* </pre>
|
||||
*/
|
||||
public class FieldDataFieldsParseElement implements SearchParseElement {
|
||||
public class FieldDataFieldsParseElement extends FetchSubPhaseParseElement<FieldDataFieldsContext> {
|
||||
|
||||
@Override
|
||||
public void parse(XContentParser parser, SearchContext context) throws Exception {
|
||||
protected void innerParse(XContentParser parser, FieldDataFieldsContext fieldDataFieldsContext, SearchContext searchContext) throws Exception {
|
||||
XContentParser.Token token = parser.currentToken();
|
||||
if (token == XContentParser.Token.START_ARRAY) {
|
||||
while (parser.nextToken() != XContentParser.Token.END_ARRAY) {
|
||||
String fieldName = parser.text();
|
||||
context.fieldDataFields().add(new FieldDataFieldsContext.FieldDataField(fieldName));
|
||||
fieldDataFieldsContext.add(new FieldDataFieldsContext.FieldDataField(fieldName));
|
||||
}
|
||||
} else if (token == XContentParser.Token.VALUE_STRING) {
|
||||
String fieldName = parser.text();
|
||||
context.fieldDataFields().add(new FieldDataFieldsContext.FieldDataField(fieldName));
|
||||
} else {
|
||||
fieldDataFieldsContext.add(new FieldDataFieldsContext.FieldDataField(fieldName));
|
||||
} else {
|
||||
throw new IllegalStateException("Expected either a VALUE_STRING or an START_ARRAY but got " + token);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected FetchSubPhase.ContextFactory getContextFactory() {
|
||||
return FieldDataFieldsFetchSubPhase.CONTEXT_FACTORY;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,7 +53,8 @@ import org.elasticsearch.search.SearchShardTarget;
|
|||
import org.elasticsearch.search.aggregations.SearchContextAggregations;
|
||||
import org.elasticsearch.search.dfs.DfsSearchResult;
|
||||
import org.elasticsearch.search.fetch.FetchSearchResult;
|
||||
import org.elasticsearch.search.fetch.fielddata.FieldDataFieldsContext;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhaseContext;
|
||||
import org.elasticsearch.search.fetch.innerhits.InnerHitsContext;
|
||||
import org.elasticsearch.search.fetch.script.ScriptFieldsContext;
|
||||
import org.elasticsearch.search.fetch.source.FetchSourceContext;
|
||||
|
@ -99,7 +100,6 @@ public class DefaultSearchContext extends SearchContext {
|
|||
private boolean explain;
|
||||
private boolean version = false; // by default, we don't return versions
|
||||
private List<String> fieldNames;
|
||||
private FieldDataFieldsContext fieldDataFields;
|
||||
private ScriptFieldsContext scriptFields;
|
||||
private FetchSourceContext fetchSourceContext;
|
||||
private int from = -1;
|
||||
|
@ -126,11 +126,13 @@ public class DefaultSearchContext extends SearchContext {
|
|||
private volatile long lastAccessTime = -1;
|
||||
private InnerHitsContext innerHitsContext;
|
||||
|
||||
private final Map<String, FetchSubPhaseContext> subPhaseContexts = new HashMap<>();
|
||||
|
||||
public DefaultSearchContext(long id, ShardSearchRequest request, SearchShardTarget shardTarget,
|
||||
Engine.Searcher engineSearcher, IndexService indexService, IndexShard indexShard,
|
||||
ScriptService scriptService, PageCacheRecycler pageCacheRecycler,
|
||||
BigArrays bigArrays, Counter timeEstimateCounter, ParseFieldMatcher parseFieldMatcher,
|
||||
TimeValue timeout
|
||||
Engine.Searcher engineSearcher, IndexService indexService, IndexShard indexShard,
|
||||
ScriptService scriptService, PageCacheRecycler pageCacheRecycler,
|
||||
BigArrays bigArrays, Counter timeEstimateCounter, ParseFieldMatcher parseFieldMatcher,
|
||||
TimeValue timeout
|
||||
) {
|
||||
super(parseFieldMatcher);
|
||||
this.id = id;
|
||||
|
@ -302,6 +304,16 @@ public class DefaultSearchContext extends SearchContext {
|
|||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <SubPhaseContext extends FetchSubPhaseContext> SubPhaseContext getFetchSubPhaseContext(FetchSubPhase.ContextFactory<SubPhaseContext> contextFactory) {
|
||||
String subPhaseName = contextFactory.getName();
|
||||
if (subPhaseContexts.get(subPhaseName) == null) {
|
||||
subPhaseContexts.put(subPhaseName, contextFactory.newContextInstance());
|
||||
}
|
||||
return (SubPhaseContext) subPhaseContexts.get(subPhaseName);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SearchContextHighlight highlight() {
|
||||
return highlight;
|
||||
|
@ -338,19 +350,6 @@ public class DefaultSearchContext extends SearchContext {
|
|||
this.rescore.add(rescore);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasFieldDataFields() {
|
||||
return fieldDataFields != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldDataFieldsContext fieldDataFields() {
|
||||
if (fieldDataFields == null) {
|
||||
fieldDataFields = new FieldDataFieldsContext();
|
||||
}
|
||||
return this.fieldDataFields;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasScriptFields() {
|
||||
return scriptFields != null;
|
||||
|
|
|
@ -45,7 +45,8 @@ import org.elasticsearch.search.SearchShardTarget;
|
|||
import org.elasticsearch.search.aggregations.SearchContextAggregations;
|
||||
import org.elasticsearch.search.dfs.DfsSearchResult;
|
||||
import org.elasticsearch.search.fetch.FetchSearchResult;
|
||||
import org.elasticsearch.search.fetch.fielddata.FieldDataFieldsContext;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhaseContext;
|
||||
import org.elasticsearch.search.fetch.innerhits.InnerHitsContext;
|
||||
import org.elasticsearch.search.fetch.script.ScriptFieldsContext;
|
||||
import org.elasticsearch.search.fetch.source.FetchSourceContext;
|
||||
|
@ -209,16 +210,6 @@ public abstract class FilteredSearchContext extends SearchContext {
|
|||
in.addRescore(rescore);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasFieldDataFields() {
|
||||
return in.hasFieldDataFields();
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldDataFieldsContext fieldDataFields() {
|
||||
return in.fieldDataFields();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasScriptFields() {
|
||||
return in.hasScriptFields();
|
||||
|
@ -628,4 +619,9 @@ public abstract class FilteredSearchContext extends SearchContext {
|
|||
public void copyContextAndHeadersFrom(HasContextAndHeaders other) {
|
||||
in.copyContextAndHeadersFrom(other);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <SubPhaseContext extends FetchSubPhaseContext> SubPhaseContext getFetchSubPhaseContext(FetchSubPhase.ContextFactory<SubPhaseContext> contextFactory) {
|
||||
return in.getFetchSubPhaseContext(contextFactory);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,8 @@ import org.elasticsearch.search.SearchShardTarget;
|
|||
import org.elasticsearch.search.aggregations.SearchContextAggregations;
|
||||
import org.elasticsearch.search.dfs.DfsSearchResult;
|
||||
import org.elasticsearch.search.fetch.FetchSearchResult;
|
||||
import org.elasticsearch.search.fetch.fielddata.FieldDataFieldsContext;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhase;
|
||||
import org.elasticsearch.search.fetch.FetchSubPhaseContext;
|
||||
import org.elasticsearch.search.fetch.innerhits.InnerHitsContext;
|
||||
import org.elasticsearch.search.fetch.script.ScriptFieldsContext;
|
||||
import org.elasticsearch.search.fetch.source.FetchSourceContext;
|
||||
|
@ -163,6 +164,8 @@ public abstract class SearchContext implements Releasable, HasContextAndHeaders
|
|||
|
||||
public abstract SearchContext aggregations(SearchContextAggregations aggregations);
|
||||
|
||||
public abstract <SubPhaseContext extends FetchSubPhaseContext> SubPhaseContext getFetchSubPhaseContext(FetchSubPhase.ContextFactory<SubPhaseContext> contextFactory);
|
||||
|
||||
public abstract SearchContextHighlight highlight();
|
||||
|
||||
public abstract void highlight(SearchContextHighlight highlight);
|
||||
|
@ -182,10 +185,6 @@ public abstract class SearchContext implements Releasable, HasContextAndHeaders
|
|||
|
||||
public abstract void addRescore(RescoreSearchContext rescore);
|
||||
|
||||
public abstract boolean hasFieldDataFields();
|
||||
|
||||
public abstract FieldDataFieldsContext fieldDataFields();
|
||||
|
||||
public abstract boolean hasScriptFields();
|
||||
|
||||
public abstract ScriptFieldsContext scriptFields();
|
||||
|
|
|
@ -30,7 +30,6 @@ import org.elasticsearch.index.query.ParsedQuery;
|
|||
import org.elasticsearch.search.Scroll;
|
||||
import org.elasticsearch.search.aggregations.SearchContextAggregations;
|
||||
import org.elasticsearch.search.fetch.FetchSearchResult;
|
||||
import org.elasticsearch.search.fetch.fielddata.FieldDataFieldsContext;
|
||||
import org.elasticsearch.search.fetch.innerhits.InnerHitsContext;
|
||||
import org.elasticsearch.search.fetch.script.ScriptFieldsContext;
|
||||
import org.elasticsearch.search.fetch.source.FetchSourceContext;
|
||||
|
@ -62,7 +61,6 @@ public class SubSearchContext extends FilteredSearchContext {
|
|||
private int docsIdsToLoadSize;
|
||||
|
||||
private List<String> fieldNames;
|
||||
private FieldDataFieldsContext fieldDataFields;
|
||||
private ScriptFieldsContext scriptFields;
|
||||
private FetchSourceContext fetchSourceContext;
|
||||
private SearchContextHighlight highlight;
|
||||
|
@ -132,19 +130,6 @@ public class SubSearchContext extends FilteredSearchContext {
|
|||
throw new UnsupportedOperationException("Not supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasFieldDataFields() {
|
||||
return fieldDataFields != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldDataFieldsContext fieldDataFields() {
|
||||
if (fieldDataFields == null) {
|
||||
fieldDataFields = new FieldDataFieldsContext();
|
||||
}
|
||||
return this.fieldDataFields;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasScriptFields() {
|
||||
return scriptFields != null;
|
||||
|
|
|
@ -24,7 +24,7 @@ import org.apache.lucene.analysis.MockTokenizer;
|
|||
import org.apache.lucene.analysis.TokenStream;
|
||||
import org.apache.lucene.analysis.Tokenizer;
|
||||
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -33,7 +33,7 @@ import static org.hamcrest.Matchers.equalTo;
|
|||
/**
|
||||
*/
|
||||
|
||||
public class TruncateTokenFilterTests extends ElasticsearchTestCase {
|
||||
public class TruncateTokenFilterTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void simpleTest() throws IOException {
|
||||
|
|
|
@ -24,7 +24,7 @@ import org.apache.lucene.analysis.MockTokenizer;
|
|||
import org.apache.lucene.analysis.TokenStream;
|
||||
import org.apache.lucene.analysis.Tokenizer;
|
||||
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -33,7 +33,7 @@ import static org.hamcrest.Matchers.equalTo;
|
|||
|
||||
/**
|
||||
*/
|
||||
public class UniqueTokenFilterTests extends ElasticsearchTestCase {
|
||||
public class UniqueTokenFilterTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void simpleTest() throws IOException {
|
||||
|
|
|
@ -41,7 +41,7 @@ import org.apache.lucene.search.similarities.DefaultSimilarity;
|
|||
import org.apache.lucene.search.similarities.Similarity;
|
||||
import org.apache.lucene.store.Directory;
|
||||
import org.apache.lucene.util.TestUtil;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -56,7 +56,7 @@ import static org.hamcrest.Matchers.equalTo;
|
|||
|
||||
/**
|
||||
*/
|
||||
public class BlendedTermQueryTest extends ElasticsearchTestCase {
|
||||
public class BlendedTermQueryTest extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testBooleanQuery() throws IOException {
|
||||
|
|
|
@ -21,7 +21,7 @@ package org.apache.lucene.search.postingshighlight;
|
|||
import org.apache.lucene.search.highlight.DefaultEncoder;
|
||||
import org.apache.lucene.search.highlight.SimpleHTMLEncoder;
|
||||
import org.apache.lucene.util.BytesRef;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
|
@ -29,7 +29,7 @@ import static org.hamcrest.CoreMatchers.notNullValue;
|
|||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
|
||||
|
||||
public class CustomPassageFormatterTests extends ElasticsearchTestCase {
|
||||
public class CustomPassageFormatterTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testSimpleFormat() {
|
||||
|
|
|
@ -28,12 +28,12 @@ import org.apache.lucene.search.*;
|
|||
import org.apache.lucene.search.highlight.DefaultEncoder;
|
||||
import org.apache.lucene.store.Directory;
|
||||
import org.elasticsearch.search.highlight.HighlightUtils;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
|
||||
public class CustomPostingsHighlighterTests extends ElasticsearchTestCase {
|
||||
public class CustomPostingsHighlighterTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testCustomPostingsHighlighter() throws Exception {
|
||||
|
|
|
@ -20,7 +20,7 @@ under the License.
|
|||
package org.apache.lucene.search.postingshighlight;
|
||||
|
||||
import org.elasticsearch.search.highlight.HighlightUtils;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.text.BreakIterator;
|
||||
|
@ -30,7 +30,7 @@ import java.util.Locale;
|
|||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
|
||||
public class CustomSeparatorBreakIteratorTests extends ElasticsearchTestCase {
|
||||
public class CustomSeparatorBreakIteratorTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testBreakOnCustomSeparator() throws Exception {
|
||||
|
|
|
@ -21,12 +21,12 @@ package org.apache.lucene.util;
|
|||
|
||||
import org.elasticsearch.common.geo.GeoDistance;
|
||||
import org.elasticsearch.common.unit.DistanceUnit;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.hamcrest.number.IsCloseTo.closeTo;
|
||||
|
||||
public class SloppyMathTests extends ElasticsearchTestCase {
|
||||
public class SloppyMathTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testAccuracy() {
|
||||
|
|
|
@ -40,7 +40,7 @@ import org.elasticsearch.index.query.TestQueryParsingException;
|
|||
import org.elasticsearch.rest.RestStatus;
|
||||
import org.elasticsearch.search.SearchParseException;
|
||||
import org.elasticsearch.search.SearchShardTarget;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.test.TestSearchContext;
|
||||
import org.elasticsearch.test.VersionUtils;
|
||||
import org.elasticsearch.test.hamcrest.ElasticsearchAssertions;
|
||||
|
@ -55,7 +55,7 @@ import java.nio.file.NoSuchFileException;
|
|||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public class ElasticsearchExceptionTests extends ElasticsearchTestCase {
|
||||
public class ESExceptionTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testStatus() {
|
|
@ -62,7 +62,7 @@ import org.elasticsearch.search.SearchShardTarget;
|
|||
import org.elasticsearch.search.internal.SearchContext;
|
||||
import org.elasticsearch.search.warmer.IndexWarmerMissingException;
|
||||
import org.elasticsearch.snapshots.SnapshotException;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.test.TestSearchContext;
|
||||
import org.elasticsearch.test.VersionUtils;
|
||||
import org.elasticsearch.test.hamcrest.ElasticsearchAssertions;
|
||||
|
@ -81,7 +81,7 @@ import java.nio.file.attribute.BasicFileAttributes;
|
|||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class ExceptionSerializationTests extends ElasticsearchTestCase {
|
||||
public class ExceptionSerializationTests extends ESTestCase {
|
||||
|
||||
public void testExceptionRegistration()
|
||||
throws ClassNotFoundException, IOException, URISyntaxException {
|
||||
|
|
|
@ -24,10 +24,11 @@ import com.google.common.collect.Sets;
|
|||
import junit.framework.TestCase;
|
||||
|
||||
import org.apache.lucene.util.LuceneTestCase;
|
||||
import org.elasticsearch.common.SuppressForbidden;
|
||||
import org.elasticsearch.common.io.PathUtils;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ElasticsearchTokenStreamTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.test.ESTokenStreamTestCase;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -41,9 +42,9 @@ import java.util.HashSet;
|
|||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Simple class that ensures that all subclasses concrete of ElasticsearchTestCase end with either Test | Tests
|
||||
* Simple class that ensures that all subclasses concrete of ESTestCase end with either Test | Tests
|
||||
*/
|
||||
public class NamingConventionTests extends ElasticsearchTestCase {
|
||||
public class NamingConventionTests extends ESTestCase {
|
||||
|
||||
// see https://github.com/elasticsearch/elasticsearch/issues/9945
|
||||
public void testNamingConventions()
|
||||
|
@ -51,6 +52,7 @@ public class NamingConventionTests extends ElasticsearchTestCase {
|
|||
final Set<Class> notImplementing = new HashSet<>();
|
||||
final Set<Class> pureUnitTest = new HashSet<>();
|
||||
final Set<Class> missingSuffix = new HashSet<>();
|
||||
final Set<Class> integTestsInDisguise = new HashSet<>();
|
||||
String[] packages = {"org.elasticsearch", "org.apache.lucene"};
|
||||
for (final String packageName : packages) {
|
||||
final String path = "/" + packageName.replace('.', '/');
|
||||
|
@ -76,12 +78,19 @@ public class NamingConventionTests extends ElasticsearchTestCase {
|
|||
Class<?> clazz = loadClass(filename);
|
||||
if (Modifier.isAbstract(clazz.getModifiers()) == false && Modifier.isInterface(clazz.getModifiers()) == false) {
|
||||
if (clazz.getName().endsWith("Tests") ||
|
||||
clazz.getName().endsWith("IT") ||
|
||||
clazz.getName().endsWith("Test")) { // don't worry about the ones that match the pattern
|
||||
|
||||
if (ESIntegTestCase.class.isAssignableFrom(clazz)) {
|
||||
integTestsInDisguise.add(clazz);
|
||||
}
|
||||
if (isTestCase(clazz) == false) {
|
||||
notImplementing.add(clazz);
|
||||
}
|
||||
} else if (clazz.getName().endsWith("IT")) {
|
||||
if (isTestCase(clazz) == false) {
|
||||
notImplementing.add(clazz);
|
||||
}
|
||||
// otherwise fine
|
||||
} else if (isTestCase(clazz)) {
|
||||
missingSuffix.add(clazz);
|
||||
} else if (junit.framework.Test.class.isAssignableFrom(clazz) || hasTestAnnotation(clazz)) {
|
||||
|
@ -107,7 +116,7 @@ public class NamingConventionTests extends ElasticsearchTestCase {
|
|||
}
|
||||
|
||||
private boolean isTestCase(Class<?> clazz) {
|
||||
return ElasticsearchTestCase.class.isAssignableFrom(clazz) || ElasticsearchTestCase.class.isAssignableFrom(clazz) || ElasticsearchTokenStreamTestCase.class.isAssignableFrom(clazz) || LuceneTestCase.class.isAssignableFrom(clazz);
|
||||
return LuceneTestCase.class.isAssignableFrom(clazz);
|
||||
}
|
||||
|
||||
private Class<?> loadClass(String filename) throws ClassNotFoundException {
|
||||
|
@ -140,31 +149,34 @@ public class NamingConventionTests extends ElasticsearchTestCase {
|
|||
assertTrue(pureUnitTest.remove(PlainUnitTheSecond.class));
|
||||
|
||||
String classesToSubclass = Joiner.on(',').join(
|
||||
ElasticsearchTestCase.class.getSimpleName(),
|
||||
ElasticsearchTestCase.class.getSimpleName(),
|
||||
ElasticsearchTokenStreamTestCase.class.getSimpleName(),
|
||||
ESTestCase.class.getSimpleName(),
|
||||
ESTestCase.class.getSimpleName(),
|
||||
ESTokenStreamTestCase.class.getSimpleName(),
|
||||
LuceneTestCase.class.getSimpleName());
|
||||
assertTrue("Not all subclasses of " + ElasticsearchTestCase.class.getSimpleName() +
|
||||
assertTrue("Not all subclasses of " + ESTestCase.class.getSimpleName() +
|
||||
" match the naming convention. Concrete classes must end with [Test|Tests]: " + missingSuffix.toString(),
|
||||
missingSuffix.isEmpty());
|
||||
assertTrue("Pure Unit-Test found must subclass one of [" + classesToSubclass +"] " + pureUnitTest.toString(),
|
||||
pureUnitTest.isEmpty());
|
||||
assertTrue("Classes ending with Test|Tests] must subclass [" + classesToSubclass +"] " + notImplementing.toString(),
|
||||
notImplementing.isEmpty());
|
||||
assertTrue("Subclasses of ESIntegTestCase should end with IT as they are integration tests: " + integTestsInDisguise, integTestsInDisguise.isEmpty());
|
||||
}
|
||||
|
||||
/*
|
||||
* Some test the test classes
|
||||
*/
|
||||
|
||||
@SuppressForbidden(reason = "Ignoring test the tester")
|
||||
@Ignore
|
||||
public static final class NotImplementingTests {}
|
||||
@SuppressForbidden(reason = "Ignoring test the tester")
|
||||
@Ignore
|
||||
public static final class NotImplementingTest {}
|
||||
|
||||
public static final class WrongName extends ElasticsearchTestCase {}
|
||||
public static final class WrongName extends ESTestCase {}
|
||||
|
||||
public static final class WrongNameTheSecond extends ElasticsearchTestCase {}
|
||||
public static final class WrongNameTheSecond extends ESTestCase {}
|
||||
|
||||
public static final class PlainUnit extends TestCase {}
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ package org.elasticsearch;
|
|||
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
||||
import org.elasticsearch.common.lucene.Lucene;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.test.VersionUtils;
|
||||
import org.hamcrest.Matchers;
|
||||
import org.junit.Test;
|
||||
|
@ -39,7 +39,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
|
|||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.sameInstance;
|
||||
|
||||
public class VersionTests extends ElasticsearchTestCase {
|
||||
public class VersionTests extends ESTestCase {
|
||||
|
||||
public void testMavenVersion() {
|
||||
// maven sets this property to ensure that the latest version
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
package org.elasticsearch.action;
|
||||
|
||||
import org.apache.lucene.util.LuceneTestCase.Slow;
|
||||
import org.elasticsearch.action.admin.indices.alias.Alias;
|
||||
import org.elasticsearch.action.admin.indices.analyze.AnalyzeAction;
|
||||
import org.elasticsearch.action.admin.indices.analyze.AnalyzeRequest;
|
||||
|
@ -92,9 +91,9 @@ import org.elasticsearch.common.unit.TimeValue;
|
|||
import org.elasticsearch.index.query.QueryBuilders;
|
||||
import org.elasticsearch.script.Script;
|
||||
import org.elasticsearch.search.action.SearchServiceTransportAction;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.Scope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase.Scope;
|
||||
import org.elasticsearch.threadpool.ThreadPool;
|
||||
import org.elasticsearch.transport.Transport;
|
||||
import org.elasticsearch.transport.TransportChannel;
|
||||
|
@ -123,8 +122,7 @@ import static org.hamcrest.Matchers.hasItem;
|
|||
import static org.hamcrest.Matchers.instanceOf;
|
||||
|
||||
@ClusterScope(scope = Scope.SUITE, numClientNodes = 1, minNumDataNodes = 2)
|
||||
@Slow
|
||||
public class IndicesRequestTests extends ElasticsearchIntegrationTest {
|
||||
public class IndicesRequestIT extends ESIntegTestCase {
|
||||
|
||||
private final List<String> indices = new ArrayList<>();
|
||||
|
|
@ -24,7 +24,7 @@ import org.elasticsearch.action.index.IndexResponse;
|
|||
import org.elasticsearch.client.Client;
|
||||
import org.elasticsearch.client.transport.TransportClient;
|
||||
import org.elasticsearch.cluster.node.DiscoveryNode;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
@ -32,7 +32,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
|||
|
||||
/**
|
||||
*/
|
||||
public class ListenerActionTests extends ElasticsearchIntegrationTest {
|
||||
public class ListenerActionIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void verifyThreadedListeners() throws Throwable {
|
|
@ -22,7 +22,7 @@ package org.elasticsearch.action;
|
|||
import org.elasticsearch.action.support.IndicesOptions;
|
||||
import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
||||
import org.elasticsearch.common.io.stream.StreamInput;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -30,7 +30,7 @@ import java.io.IOException;
|
|||
import static org.elasticsearch.test.VersionUtils.randomVersion;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
|
||||
public class OriginalIndicesTests extends ElasticsearchTestCase {
|
||||
public class OriginalIndicesTests extends ESTestCase {
|
||||
|
||||
private static final IndicesOptions[] indicesOptionsValues = new IndicesOptions[]{
|
||||
IndicesOptions.lenientExpandOpen() , IndicesOptions.strictExpand(), IndicesOptions.strictExpandOpen(),
|
||||
|
|
|
@ -28,8 +28,8 @@ import org.elasticsearch.action.search.ShardSearchFailure;
|
|||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.common.util.concurrent.EsRejectedExecutionException;
|
||||
import org.elasticsearch.index.query.QueryBuilders;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Locale;
|
||||
|
@ -40,8 +40,8 @@ import static org.hamcrest.Matchers.equalTo;
|
|||
|
||||
/**
|
||||
*/
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 2)
|
||||
public class RejectionActionTests extends ElasticsearchIntegrationTest {
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 2)
|
||||
public class RejectionActionIT extends ESIntegTestCase {
|
||||
|
||||
@Override
|
||||
protected Settings nodeSettings(int nodeOrdinal) {
|
|
@ -18,13 +18,12 @@
|
|||
*/
|
||||
package org.elasticsearch.action.admin;
|
||||
|
||||
import org.apache.lucene.util.LuceneTestCase.Slow;
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.admin.cluster.node.hotthreads.NodeHotThreads;
|
||||
import org.elasticsearch.action.admin.cluster.node.hotthreads.NodesHotThreadsRequestBuilder;
|
||||
import org.elasticsearch.action.admin.cluster.node.hotthreads.NodesHotThreadsResponse;
|
||||
import org.elasticsearch.common.unit.TimeValue;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Map;
|
||||
|
@ -32,15 +31,17 @@ import java.util.concurrent.CountDownLatch;
|
|||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import static org.elasticsearch.index.query.QueryBuilders.*;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.andQuery;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.notQuery;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount;
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.CoreMatchers.notNullValue;
|
||||
import static org.hamcrest.Matchers.lessThan;
|
||||
|
||||
/**
|
||||
*/
|
||||
@Slow
|
||||
public class HotThreadsTest extends ElasticsearchIntegrationTest {
|
||||
public class HotThreadsIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testHotThreadsDontFail() throws ExecutionException, InterruptedException {
|
|
@ -23,8 +23,8 @@ import org.elasticsearch.action.admin.cluster.repositories.get.GetRepositoriesRe
|
|||
import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryResponse;
|
||||
import org.elasticsearch.cluster.metadata.MetaData;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
|
@ -37,8 +37,8 @@ import static org.hamcrest.Matchers.hasSize;
|
|||
*
|
||||
* The @ClusterScope TEST is needed because this class updates the cluster setting "cluster.blocks.read_only".
|
||||
*/
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class RepositoryBlocksTests extends ElasticsearchIntegrationTest {
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class RepositoryBlocksIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testPutRepositoryWithBlocks() {
|
|
@ -20,7 +20,6 @@ package org.elasticsearch.action.admin.cluster.snapshots;
|
|||
|
||||
import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryResponse;
|
||||
import org.elasticsearch.action.admin.cluster.snapshots.create.CreateSnapshotResponse;
|
||||
import org.elasticsearch.action.admin.cluster.snapshots.delete.DeleteSnapshotResponse;
|
||||
import org.elasticsearch.action.admin.cluster.snapshots.get.GetSnapshotsResponse;
|
||||
import org.elasticsearch.action.admin.cluster.snapshots.restore.RestoreSnapshotResponse;
|
||||
import org.elasticsearch.action.admin.cluster.snapshots.status.SnapshotsStatusResponse;
|
||||
|
@ -28,8 +27,8 @@ import org.elasticsearch.cluster.metadata.IndexMetaData;
|
|||
import org.elasticsearch.cluster.metadata.MetaData;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.rest.RestStatus;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -45,8 +44,8 @@ import static org.hamcrest.Matchers.hasSize;
|
|||
*
|
||||
* The @ClusterScope TEST is needed because this class updates the cluster setting "cluster.blocks.read_only".
|
||||
*/
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class SnapshotBlocksTests extends ElasticsearchIntegrationTest {
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class SnapshotBlocksIT extends ESIntegTestCase {
|
||||
|
||||
protected static final String INDEX_NAME = "test-blocks-1";
|
||||
protected static final String OTHER_INDEX_NAME = "test-blocks-2";
|
|
@ -23,7 +23,7 @@ import org.elasticsearch.Version;
|
|||
import org.elasticsearch.action.support.IndicesOptions;
|
||||
import org.elasticsearch.common.io.stream.StreamInput;
|
||||
import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.test.VersionUtils;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -32,7 +32,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
|
|||
/**
|
||||
* Unit tests for the {@link ClusterStateRequest}.
|
||||
*/
|
||||
public class ClusterStateRequestTest extends ElasticsearchTestCase {
|
||||
public class ClusterStateRequestTest extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testSerialization() throws Exception {
|
||||
|
|
|
@ -26,20 +26,20 @@ import org.elasticsearch.client.Requests;
|
|||
import org.elasticsearch.common.Priority;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.index.store.Store;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.hamcrest.Matchers;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import static org.elasticsearch.common.settings.Settings.settingsBuilder;
|
||||
import static org.elasticsearch.test.ElasticsearchIntegrationTest.*;
|
||||
import static org.elasticsearch.test.ESIntegTestCase.*;
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
|
||||
@ClusterScope(scope = Scope.SUITE, numDataNodes = 1, numClientNodes = 0)
|
||||
public class ClusterStatsTests extends ElasticsearchIntegrationTest {
|
||||
public class ClusterStatsIT extends ESIntegTestCase {
|
||||
|
||||
private void assertCounts(ClusterStatsNodes.Counts counts, int total, int masterOnly, int dataOnly, int masterData, int client) {
|
||||
assertThat(counts.getTotal(), Matchers.equalTo(total));
|
|
@ -19,16 +19,16 @@
|
|||
|
||||
package org.elasticsearch.action.admin.cluster.tasks;
|
||||
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.*;
|
||||
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class PendingTasksBlocksTests extends ElasticsearchIntegrationTest {
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class PendingTasksBlocksIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testPendingTasksWithBlocks() {
|
|
@ -19,8 +19,8 @@
|
|||
|
||||
package org.elasticsearch.action.admin.indices.cache.clear;
|
||||
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -30,8 +30,8 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBloc
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class ClearIndicesCacheBlocksTests extends ElasticsearchIntegrationTest {
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class ClearIndicesCacheBlocksIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testClearIndicesCacheWithBlocks() {
|
|
@ -25,9 +25,9 @@ import org.elasticsearch.cluster.metadata.IndexMetaData;
|
|||
import org.elasticsearch.cluster.metadata.MetaData;
|
||||
import org.elasticsearch.common.collect.ImmutableOpenMap;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.Scope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase.Scope;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -38,7 +38,7 @@ import static org.hamcrest.Matchers.*;
|
|||
import static org.hamcrest.core.IsNull.notNullValue;
|
||||
|
||||
@ClusterScope(scope = Scope.TEST)
|
||||
public class CreateIndexTests extends ElasticsearchIntegrationTest{
|
||||
public class CreateIndexIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testCreationDate_Given() {
|
|
@ -19,12 +19,11 @@
|
|||
|
||||
package org.elasticsearch.action.admin.indices.create;
|
||||
|
||||
import org.elasticsearch.action.index.IndexRequestBuilderTest;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||
import org.elasticsearch.rest.NoOpClient;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
@ -34,7 +33,7 @@ import java.io.IOException;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class CreateIndexRequestBuilderTest extends ElasticsearchTestCase {
|
||||
public class CreateIndexRequestBuilderTest extends ESTestCase {
|
||||
|
||||
private static final String KEY = "my.settings.key";
|
||||
private static final String VALUE = "my.settings.value";
|
||||
|
|
|
@ -19,14 +19,14 @@
|
|||
|
||||
package org.elasticsearch.action.admin.indices.delete;
|
||||
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBlocked;
|
||||
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class DeleteIndexBlocksTests extends ElasticsearchIntegrationTest{
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class DeleteIndexBlocksIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testDeleteIndexWithBlocks() {
|
|
@ -19,8 +19,8 @@
|
|||
|
||||
package org.elasticsearch.action.admin.indices.flush;
|
||||
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -30,8 +30,8 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBloc
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class FlushBlocksTests extends ElasticsearchIntegrationTest {
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class FlushBlocksIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testFlushWithBlocks() {
|
|
@ -20,7 +20,6 @@
|
|||
package org.elasticsearch.action.admin.indices.get;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.elasticsearch.ResourceNotFoundException;
|
||||
import org.elasticsearch.action.admin.indices.alias.Alias;
|
||||
import org.elasticsearch.action.admin.indices.get.GetIndexRequest.Feature;
|
||||
import org.elasticsearch.cluster.metadata.AliasMetaData;
|
||||
|
@ -29,7 +28,7 @@ import org.elasticsearch.common.collect.ImmutableOpenMap;
|
|||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.index.IndexNotFoundException;
|
||||
import org.elasticsearch.search.warmer.IndexWarmersMetaData.Entry;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -41,8 +40,8 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcke
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBlocked;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
||||
@ElasticsearchIntegrationTest.SuiteScopeTest
|
||||
public class GetIndexTests extends ElasticsearchIntegrationTest {
|
||||
@ESIntegTestCase.SuiteScopeTestCase
|
||||
public class GetIndexIT extends ESIntegTestCase {
|
||||
|
||||
private static final String[] allFeatures = { "_alias", "_aliases", "_mapping", "_mappings", "_settings", "_warmer", "_warmers" };
|
||||
|
|
@ -20,9 +20,9 @@
|
|||
package org.elasticsearch.action.admin.indices.mapping.put;
|
||||
|
||||
import org.elasticsearch.action.ActionRequestValidationException;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
|
||||
public class PutMappingRequestTests extends ElasticsearchTestCase {
|
||||
public class PutMappingRequestTests extends ESTestCase {
|
||||
|
||||
public void testValidation() {
|
||||
PutMappingRequest r = new PutMappingRequest("myindex");
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
|
||||
package org.elasticsearch.action.admin.indices.optimize;
|
||||
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -30,8 +30,8 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBloc
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class OptimizeBlocksTests extends ElasticsearchIntegrationTest {
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class OptimizeBlocksIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testOptimizeWithBlocks() {
|
|
@ -20,8 +20,8 @@
|
|||
package org.elasticsearch.action.admin.indices.refresh;
|
||||
|
||||
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -31,8 +31,8 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBloc
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class RefreshBlocksTests extends ElasticsearchIntegrationTest {
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class RefreshBlocksIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testRefreshWithBlocks() {
|
|
@ -19,8 +19,8 @@
|
|||
|
||||
package org.elasticsearch.action.admin.indices.segments;
|
||||
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -29,8 +29,8 @@ import static org.elasticsearch.cluster.metadata.IndexMetaData.*;
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBlocked;
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures;
|
||||
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class IndicesSegmentsBlocksTests extends ElasticsearchIntegrationTest {
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class IndicesSegmentsBlocksIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testIndicesSegmentsWithBlocks() {
|
|
@ -22,13 +22,13 @@ package org.elasticsearch.action.admin.indices.segments;
|
|||
import org.elasticsearch.action.support.IndicesOptions;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.index.engine.Segment;
|
||||
import org.elasticsearch.test.ElasticsearchSingleNodeTest;
|
||||
import org.elasticsearch.test.ESSingleNodeTestCase;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class IndicesSegmentsRequestTests extends ElasticsearchSingleNodeTest {
|
||||
public class IndicesSegmentsRequestTests extends ESSingleNodeTestCase {
|
||||
|
||||
@Before
|
||||
public void setupIndex() {
|
||||
|
|
|
@ -24,7 +24,6 @@ import com.carrotsearch.hppc.cursors.IntObjectCursor;
|
|||
import com.carrotsearch.hppc.cursors.ObjectCursor;
|
||||
import com.google.common.base.Predicate;
|
||||
import org.apache.lucene.index.CorruptIndexException;
|
||||
import org.elasticsearch.action.admin.indices.shards.IndicesShardStoresResponse;
|
||||
import org.elasticsearch.action.index.IndexRequestBuilder;
|
||||
import org.elasticsearch.client.Requests;
|
||||
import org.elasticsearch.cluster.ClusterState;
|
||||
|
@ -36,7 +35,7 @@ import org.elasticsearch.common.settings.Settings;
|
|||
import org.elasticsearch.index.IndexService;
|
||||
import org.elasticsearch.index.shard.IndexShard;
|
||||
import org.elasticsearch.indices.IndicesService;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.junit.annotations.TestLogging;
|
||||
import org.elasticsearch.test.store.MockFSDirectoryService;
|
||||
import org.junit.Test;
|
||||
|
@ -48,8 +47,8 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcke
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoTimeout;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
||||
@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class IndicesShardStoreRequestTests extends ElasticsearchIntegrationTest {
|
||||
@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class IndicesShardStoreRequestIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testEmpty() {
|
|
@ -20,17 +20,15 @@
|
|||
package org.elasticsearch.action.admin.indices.shards;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.apache.lucene.index.CorruptIndexException;
|
||||
import org.apache.lucene.util.CollectionUtil;
|
||||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.action.admin.indices.shards.IndicesShardStoresResponse;
|
||||
import org.elasticsearch.cluster.node.DiscoveryNode;
|
||||
import org.elasticsearch.common.bytes.BytesReference;
|
||||
import org.elasticsearch.common.collect.ImmutableOpenIntMap;
|
||||
import org.elasticsearch.common.collect.ImmutableOpenMap;
|
||||
import org.elasticsearch.common.transport.DummyTransportAddress;
|
||||
import org.elasticsearch.common.xcontent.*;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.transport.NodeDisconnectedException;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -39,7 +37,7 @@ import java.util.*;
|
|||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public class IndicesShardStoreResponseTest extends ElasticsearchTestCase {
|
||||
public class IndicesShardStoreResponseTest extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testBasicSerialization() throws Exception {
|
||||
|
|
|
@ -21,16 +21,16 @@ package org.elasticsearch.action.admin.indices.stats;
|
|||
|
||||
import org.elasticsearch.cluster.block.ClusterBlockException;
|
||||
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.*;
|
||||
|
||||
@ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class IndicesStatsBlocksTests extends ElasticsearchIntegrationTest {
|
||||
@ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class IndicesStatsBlocksIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testIndicesStatsWithBlocks() {
|
|
@ -24,12 +24,12 @@ import org.elasticsearch.common.xcontent.XContentFactory;
|
|||
import org.elasticsearch.index.engine.CommitStats;
|
||||
import org.elasticsearch.index.engine.SegmentsStats;
|
||||
import org.elasticsearch.index.translog.Translog;
|
||||
import org.elasticsearch.test.ElasticsearchSingleNodeTest;
|
||||
import org.elasticsearch.test.ESSingleNodeTestCase;
|
||||
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
||||
public class IndicesStatsTests extends ElasticsearchSingleNodeTest {
|
||||
public class IndicesStatsTests extends ESSingleNodeTestCase {
|
||||
|
||||
public void testSegmentStatsEmptyIndex() {
|
||||
createIndex("test");
|
||||
|
|
|
@ -19,13 +19,13 @@
|
|||
package org.elasticsearch.action.admin.indices.warmer.put;
|
||||
|
||||
import org.elasticsearch.action.ActionRequestValidationException;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.Matchers.hasSize;
|
||||
|
||||
public class PutWarmerRequestTests extends ElasticsearchTestCase {
|
||||
public class PutWarmerRequestTests extends ESTestCase {
|
||||
|
||||
@Test // issue 4196
|
||||
public void testThatValidationWithoutSpecifyingSearchRequestFails() {
|
||||
|
|
|
@ -23,12 +23,12 @@ package org.elasticsearch.action.bulk;
|
|||
import com.google.common.base.Charsets;
|
||||
|
||||
import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.elasticsearch.common.io.Streams.copyToStringFromClasspath;
|
||||
|
||||
public class BulkIntegrationTests extends ElasticsearchIntegrationTest {
|
||||
public class BulkIntegrationIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testBulkIndexCreatesMapping() throws Exception {
|
|
@ -20,13 +20,13 @@
|
|||
package org.elasticsearch.action.bulk;
|
||||
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.ClusterScope;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest.Scope;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||
import org.elasticsearch.test.ESIntegTestCase.Scope;
|
||||
import org.junit.Test;
|
||||
|
||||
@ClusterScope(scope = Scope.TEST, numDataNodes = 0)
|
||||
public class BulkProcessorClusterSettingsTests extends ElasticsearchIntegrationTest {
|
||||
public class BulkProcessorClusterSettingsIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testBulkProcessorAutoCreateRestrictions() throws Exception {
|
|
@ -32,7 +32,7 @@ import org.elasticsearch.common.settings.Settings;
|
|||
import org.elasticsearch.common.unit.ByteSizeUnit;
|
||||
import org.elasticsearch.common.unit.ByteSizeValue;
|
||||
import org.elasticsearch.common.unit.TimeValue;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -47,7 +47,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
||||
public class BulkProcessorTests extends ElasticsearchIntegrationTest {
|
||||
public class BulkProcessorIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testThatBulkProcessorCountIsCorrect() throws InterruptedException {
|
|
@ -30,7 +30,7 @@ import org.elasticsearch.client.Requests;
|
|||
import org.elasticsearch.common.Strings;
|
||||
import org.elasticsearch.common.bytes.BytesArray;
|
||||
import org.elasticsearch.script.Script;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -42,7 +42,7 @@ import static org.hamcrest.Matchers.equalTo;
|
|||
import static org.hamcrest.Matchers.instanceOf;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
|
||||
public class BulkRequestTests extends ElasticsearchTestCase {
|
||||
public class BulkRequestTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testSimpleBulk1() throws Exception {
|
||||
|
|
|
@ -29,7 +29,7 @@ import org.elasticsearch.common.xcontent.XContentFactory;
|
|||
import org.elasticsearch.common.xcontent.XContentHelper;
|
||||
import org.elasticsearch.common.xcontent.XContentType;
|
||||
import org.elasticsearch.index.query.QueryBuilders;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
@ -39,7 +39,7 @@ import java.io.IOException;
|
|||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
|
||||
public class CountRequestBuilderTests extends ElasticsearchTestCase {
|
||||
public class CountRequestBuilderTests extends ESTestCase {
|
||||
|
||||
private static Client client;
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ import org.elasticsearch.action.support.QuerySourceBuilder;
|
|||
import org.elasticsearch.common.xcontent.XContentHelper;
|
||||
import org.elasticsearch.index.query.QueryBuilders;
|
||||
import org.elasticsearch.search.internal.SearchContext;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Map;
|
||||
|
@ -34,7 +34,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
|
|||
import static org.hamcrest.CoreMatchers.notNullValue;
|
||||
import static org.hamcrest.CoreMatchers.nullValue;
|
||||
|
||||
public class CountRequestTests extends ElasticsearchTestCase {
|
||||
public class CountRequestTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testToSearchRequest() {
|
||||
|
|
|
@ -24,12 +24,12 @@ import org.elasticsearch.action.search.SearchResponse;
|
|||
import org.elasticsearch.action.search.ShardSearchFailure;
|
||||
import org.elasticsearch.search.internal.InternalSearchHits;
|
||||
import org.elasticsearch.search.internal.InternalSearchResponse;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
|
||||
public class CountResponseTests extends ElasticsearchTestCase {
|
||||
public class CountResponseTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testFromSearchResponse() {
|
||||
|
|
|
@ -21,14 +21,14 @@ package org.elasticsearch.action.fieldstats;
|
|||
|
||||
import org.elasticsearch.common.bytes.BytesArray;
|
||||
import org.elasticsearch.common.io.Streams;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
|
||||
import static org.elasticsearch.action.fieldstats.IndexConstraint.Comparison.*;
|
||||
import static org.elasticsearch.action.fieldstats.IndexConstraint.Property.MAX;
|
||||
import static org.elasticsearch.action.fieldstats.IndexConstraint.Property.MIN;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public class FieldStatsRequestTest extends ElasticsearchTestCase {
|
||||
public class FieldStatsRequestTest extends ESTestCase {
|
||||
|
||||
public void testFieldsParsing() throws Exception {
|
||||
byte[] data = Streams.copyToBytesFromClasspath("/org/elasticsearch/action/fieldstats/fieldstats-index-constraints-request.json");
|
||||
|
|
|
@ -23,7 +23,7 @@ import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
|||
import org.elasticsearch.common.io.stream.StreamInput;
|
||||
import org.elasticsearch.index.VersionType;
|
||||
import org.elasticsearch.search.fetch.source.FetchSourceContext;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -31,7 +31,7 @@ import java.io.IOException;
|
|||
import static org.elasticsearch.test.VersionUtils.randomVersion;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
|
||||
public class MultiGetShardRequestTests extends ElasticsearchTestCase {
|
||||
public class MultiGetShardRequestTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testSerialization() throws IOException {
|
||||
|
|
|
@ -24,7 +24,7 @@ import org.elasticsearch.common.xcontent.XContentFactory;
|
|||
import org.elasticsearch.common.xcontent.XContentHelper;
|
||||
import org.elasticsearch.common.xcontent.XContentType;
|
||||
import org.elasticsearch.rest.NoOpClient;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
@ -33,7 +33,7 @@ import java.io.ByteArrayOutputStream;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class IndexRequestBuilderTest extends ElasticsearchTestCase {
|
||||
public class IndexRequestBuilderTest extends ESTestCase {
|
||||
|
||||
private static final String EXPECTED_SOURCE = "{\"SomeKey\":\"SomeValue\"}";
|
||||
private NoOpClient testClient;
|
||||
|
|
|
@ -18,13 +18,13 @@
|
|||
*/
|
||||
package org.elasticsearch.action.index;
|
||||
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
/**
|
||||
*/
|
||||
public class IndexRequestTests extends ElasticsearchTestCase {
|
||||
public class IndexRequestTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testIndexRequestOpTypeFromString() throws Exception {
|
||||
|
|
|
@ -22,7 +22,7 @@ package org.elasticsearch.action.indexedscripts.get;
|
|||
import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
||||
import org.elasticsearch.common.io.stream.StreamInput;
|
||||
import org.elasticsearch.index.VersionType;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -30,7 +30,7 @@ import java.io.IOException;
|
|||
import static org.elasticsearch.test.VersionUtils.randomVersion;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
|
||||
public class GetIndexedScriptRequestTests extends ElasticsearchTestCase {
|
||||
public class GetIndexedScriptRequestTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testGetIndexedScriptRequestSerialization() throws IOException {
|
||||
|
|
|
@ -22,7 +22,7 @@ import org.elasticsearch.action.support.IndicesOptions;
|
|||
import org.elasticsearch.common.collect.MapBuilder;
|
||||
import org.elasticsearch.common.io.Streams;
|
||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Map;
|
||||
|
@ -31,7 +31,7 @@ import static org.hamcrest.Matchers.*;
|
|||
|
||||
/**
|
||||
*/
|
||||
public class MultiPercolatorRequestTests extends ElasticsearchTestCase {
|
||||
public class MultiPercolatorRequestTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testParseBulkRequests() throws Exception {
|
||||
|
|
|
@ -24,7 +24,7 @@ import org.elasticsearch.common.io.Streams;
|
|||
import org.elasticsearch.common.xcontent.ToXContent;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -34,7 +34,7 @@ import static org.hamcrest.Matchers.nullValue;
|
|||
|
||||
/**
|
||||
*/
|
||||
public class MultiSearchRequestTests extends ElasticsearchTestCase {
|
||||
public class MultiSearchRequestTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void simpleAdd() throws Exception {
|
||||
|
|
|
@ -28,7 +28,7 @@ import org.elasticsearch.common.xcontent.XContentHelper;
|
|||
import org.elasticsearch.common.xcontent.XContentType;
|
||||
import org.elasticsearch.index.query.QueryBuilders;
|
||||
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
@ -38,7 +38,7 @@ import java.io.IOException;
|
|||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
|
||||
public class SearchRequestBuilderTests extends ElasticsearchTestCase {
|
||||
public class SearchRequestBuilderTests extends ESTestCase {
|
||||
|
||||
private static Client client;
|
||||
|
||||
|
|
|
@ -22,13 +22,13 @@ package org.elasticsearch.action.support;
|
|||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
||||
import org.elasticsearch.common.io.stream.StreamInput;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.elasticsearch.test.VersionUtils.randomVersion;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
|
||||
public class IndicesOptionsTests extends ElasticsearchTestCase {
|
||||
public class IndicesOptionsTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testSerialization() throws Exception {
|
||||
|
|
|
@ -20,7 +20,7 @@ package org.elasticsearch.action.support;
|
|||
|
||||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.common.util.concurrent.AbstractRunnable;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.threadpool.ThreadPool;
|
||||
import org.elasticsearch.transport.Transports;
|
||||
|
||||
|
@ -28,7 +28,7 @@ import java.util.concurrent.CountDownLatch;
|
|||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
public class ListenableActionFutureTests extends ElasticsearchTestCase {
|
||||
public class ListenableActionFutureTests extends ESTestCase {
|
||||
|
||||
public void testListenerIsCallableFromNetworkThreads() throws Throwable {
|
||||
ThreadPool threadPool = new ThreadPool("testListenerIsCallableFromNetworkThreads");
|
||||
|
|
|
@ -26,7 +26,7 @@ import org.elasticsearch.action.ActionRequest;
|
|||
import org.elasticsearch.action.ActionRequestValidationException;
|
||||
import org.elasticsearch.action.ActionResponse;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -39,7 +39,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
|
||||
public class TransportActionFilterChainTests extends ElasticsearchTestCase {
|
||||
public class TransportActionFilterChainTests extends ESTestCase {
|
||||
|
||||
private AtomicInteger counter;
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ import org.elasticsearch.index.shard.IndexShardNotStartedException;
|
|||
import org.elasticsearch.index.shard.IndexShardState;
|
||||
import org.elasticsearch.index.shard.ShardId;
|
||||
import org.elasticsearch.rest.RestStatus;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.test.cluster.TestClusterService;
|
||||
import org.elasticsearch.test.transport.CapturingTransport;
|
||||
import org.elasticsearch.threadpool.ThreadPool;
|
||||
|
@ -80,7 +80,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||
import static org.elasticsearch.cluster.metadata.IndexMetaData.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
||||
public class ShardReplicationTests extends ElasticsearchTestCase {
|
||||
public class ShardReplicationTests extends ESTestCase {
|
||||
|
||||
private static ThreadPool threadPool;
|
||||
|
||||
|
|
|
@ -40,8 +40,7 @@ import org.elasticsearch.action.admin.indices.alias.Alias;
|
|||
import org.elasticsearch.common.inject.internal.Join;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.index.*;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
@ -50,7 +49,7 @@ import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public abstract class AbstractTermVectorsTests extends ElasticsearchIntegrationTest {
|
||||
public abstract class AbstractTermVectorsTestCase extends ESIntegTestCase {
|
||||
|
||||
protected static class TestFieldSetting {
|
||||
final public String name;
|
|
@ -29,7 +29,7 @@ import org.elasticsearch.common.settings.Settings;
|
|||
import org.elasticsearch.common.xcontent.ToXContent;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.hamcrest.Matchers;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -38,7 +38,7 @@ import java.io.IOException;
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public class GetTermVectorsCheckDocFreqTests extends ElasticsearchIntegrationTest {
|
||||
public class GetTermVectorsCheckDocFreqIT extends ESIntegTestCase {
|
||||
|
||||
@Override
|
||||
protected int numberOfShards() {
|
|
@ -20,12 +20,14 @@
|
|||
package org.elasticsearch.action.termvectors;
|
||||
|
||||
import com.carrotsearch.hppc.ObjectIntHashMap;
|
||||
|
||||
import org.apache.lucene.analysis.payloads.PayloadHelper;
|
||||
import org.apache.lucene.document.FieldType;
|
||||
import org.apache.lucene.index.*;
|
||||
import org.apache.lucene.index.DirectoryReader;
|
||||
import org.apache.lucene.index.Fields;
|
||||
import org.apache.lucene.index.PostingsEnum;
|
||||
import org.apache.lucene.index.Terms;
|
||||
import org.apache.lucene.index.TermsEnum;
|
||||
import org.apache.lucene.util.BytesRef;
|
||||
import org.apache.lucene.util.LuceneTestCase.Slow;
|
||||
import org.elasticsearch.ElasticsearchException;
|
||||
import org.elasticsearch.action.ActionFuture;
|
||||
import org.elasticsearch.action.admin.indices.alias.Alias;
|
||||
|
@ -42,17 +44,25 @@ import org.hamcrest.Matcher;
|
|||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
import static org.elasticsearch.common.settings.Settings.settingsBuilder;
|
||||
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertThrows;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.lessThan;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
import static org.hamcrest.Matchers.nullValue;
|
||||
|
||||
@Slow
|
||||
public class GetTermVectorsTests extends AbstractTermVectorsTests {
|
||||
public class GetTermVectorsIT extends AbstractTermVectorsTestCase {
|
||||
|
||||
@Test
|
||||
public void testNoSuchDoc() throws Exception {
|
|
@ -33,20 +33,20 @@ import java.io.IOException;
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
||||
public class MultiTermVectorsTests extends AbstractTermVectorsTests {
|
||||
public class MultiTermVectorsIT extends AbstractTermVectorsTestCase {
|
||||
|
||||
@Test
|
||||
public void testDuelESLucene() throws Exception {
|
||||
AbstractTermVectorsTests.TestFieldSetting[] testFieldSettings = getFieldSettings();
|
||||
AbstractTermVectorsTestCase.TestFieldSetting[] testFieldSettings = getFieldSettings();
|
||||
createIndexBasedOnFieldSettings("test", "alias", testFieldSettings);
|
||||
//we generate as many docs as many shards we have
|
||||
TestDoc[] testDocs = generateTestDocs("test", testFieldSettings);
|
||||
|
||||
DirectoryReader directoryReader = indexDocsWithLucene(testDocs);
|
||||
AbstractTermVectorsTests.TestConfig[] testConfigs = generateTestConfigs(20, testDocs, testFieldSettings);
|
||||
AbstractTermVectorsTestCase.TestConfig[] testConfigs = generateTestConfigs(20, testDocs, testFieldSettings);
|
||||
|
||||
MultiTermVectorsRequestBuilder requestBuilder = client().prepareMultiTermVectors();
|
||||
for (AbstractTermVectorsTests.TestConfig test : testConfigs) {
|
||||
for (AbstractTermVectorsTestCase.TestConfig test : testConfigs) {
|
||||
requestBuilder.add(getRequestForConfig(test).request());
|
||||
}
|
||||
|
|
@ -42,7 +42,7 @@ import org.elasticsearch.index.mapper.MapperParsingException;
|
|||
import org.elasticsearch.index.mapper.core.TypeParsers;
|
||||
import org.elasticsearch.index.mapper.internal.AllFieldMapper;
|
||||
import org.elasticsearch.rest.action.termvectors.RestTermVectorsAction;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.hamcrest.Matchers;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -56,7 +56,7 @@ import java.util.Set;
|
|||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public class TermVectorsUnitTests extends ElasticsearchTestCase {
|
||||
public class TermVectorsUnitTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void streamResponse() throws Exception {
|
||||
|
|
|
@ -28,7 +28,7 @@ import org.elasticsearch.common.xcontent.XContentHelper;
|
|||
import org.elasticsearch.index.get.GetResult;
|
||||
import org.elasticsearch.script.Script;
|
||||
import org.elasticsearch.script.ScriptService.ScriptType;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Map;
|
||||
|
@ -38,7 +38,7 @@ import static org.hamcrest.Matchers.*;
|
|||
import static org.hamcrest.Matchers.instanceOf;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
|
||||
public class UpdateRequestTests extends ElasticsearchTestCase {
|
||||
public class UpdateRequestTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testUpdateRequest() throws Exception {
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
package org.elasticsearch.aliases;
|
||||
|
||||
import org.apache.lucene.util.LuceneTestCase.Slow;
|
||||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.action.ActionRequestValidationException;
|
||||
import org.elasticsearch.action.admin.indices.alias.Alias;
|
||||
|
@ -46,7 +45,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilders;
|
|||
import org.elasticsearch.search.aggregations.bucket.global.Global;
|
||||
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -58,18 +57,31 @@ import java.util.concurrent.TimeUnit;
|
|||
import static com.google.common.collect.Sets.newHashSet;
|
||||
import static org.elasticsearch.client.Requests.createIndexRequest;
|
||||
import static org.elasticsearch.client.Requests.indexRequest;
|
||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.*;
|
||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.INDEX_METADATA_BLOCK;
|
||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.INDEX_READ_ONLY_BLOCK;
|
||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_BLOCKS_METADATA;
|
||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_BLOCKS_READ;
|
||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_BLOCKS_WRITE;
|
||||
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_READ_ONLY;
|
||||
import static org.elasticsearch.common.settings.Settings.settingsBuilder;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.*;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.hasChildQuery;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.hasParentQuery;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.rangeQuery;
|
||||
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
||||
import static org.elasticsearch.test.hamcrest.CollectionAssertions.hasKey;
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBlocked;
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount;
|
||||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse;
|
||||
import static org.hamcrest.Matchers.containsInAnyOrder;
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.lessThan;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
import static org.hamcrest.Matchers.nullValue;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Slow
|
||||
public class IndexAliasesTests extends ElasticsearchIntegrationTest {
|
||||
public class IndexAliasesIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void testAliases() throws Exception {
|
|
@ -31,7 +31,7 @@ import org.elasticsearch.common.logging.ESLogger;
|
|||
import org.elasticsearch.common.logging.Loggers;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.common.unit.TimeValue;
|
||||
import org.elasticsearch.test.ElasticsearchAllocationTestCase;
|
||||
import org.elasticsearch.test.ESAllocationTestCase;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
|
@ -48,9 +48,9 @@ public class ClusterAllocationRerouteBenchmark {
|
|||
final int numReplicas = 2;
|
||||
final int numberOfNodes = 30;
|
||||
final int numberOfTags = 2;
|
||||
AllocationService strategy = ElasticsearchAllocationTestCase.createAllocationService(Settings.builder()
|
||||
.put("cluster.routing.allocation.awareness.attributes", "tag")
|
||||
.build(), new Random(1));
|
||||
AllocationService strategy = ESAllocationTestCase.createAllocationService(Settings.builder()
|
||||
.put("cluster.routing.allocation.awareness.attributes", "tag")
|
||||
.build(), new Random(1));
|
||||
|
||||
MetaData.Builder mb = MetaData.builder();
|
||||
for (int i = 1; i <= numIndices; i++) {
|
||||
|
@ -64,7 +64,7 @@ public class ClusterAllocationRerouteBenchmark {
|
|||
RoutingTable routingTable = rb.build();
|
||||
DiscoveryNodes.Builder nb = DiscoveryNodes.builder();
|
||||
for (int i = 1; i <= numberOfNodes; i++) {
|
||||
nb.put(ElasticsearchAllocationTestCase.newNode("node" + i, numberOfTags == 0 ? ImmutableMap.<String, String>of() : ImmutableMap.of("tag", "tag_" + (i % numberOfTags))));
|
||||
nb.put(ESAllocationTestCase.newNode("node" + i, numberOfTags == 0 ? ImmutableMap.<String, String>of() : ImmutableMap.of("tag", "tag_" + (i % numberOfTags))));
|
||||
}
|
||||
ClusterState initialClusterState = ClusterState.builder(ClusterName.DEFAULT).metaData(metaData).routingTable(routingTable).nodes(nb).build();
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ import org.elasticsearch.action.index.IndexRequestBuilder;
|
|||
import org.elasticsearch.action.index.IndexResponse;
|
||||
import org.elasticsearch.cluster.block.ClusterBlockException;
|
||||
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -35,8 +35,8 @@ import java.util.HashMap;
|
|||
import static org.elasticsearch.common.settings.Settings.settingsBuilder;
|
||||
import static org.hamcrest.Matchers.notNullValue;
|
||||
|
||||
@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST)
|
||||
public class SimpleBlocksTests extends ElasticsearchIntegrationTest {
|
||||
@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST)
|
||||
public class SimpleBlocksIT extends ESIntegTestCase {
|
||||
|
||||
@Test
|
||||
public void verifyIndexAndClusterReadOnly() throws Exception {
|
|
@ -20,12 +20,12 @@
|
|||
package org.elasticsearch.bootstrap;
|
||||
|
||||
import org.apache.lucene.util.Constants;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public class JNANativesTests extends ElasticsearchTestCase {
|
||||
public class JNANativesTests extends ESTestCase {
|
||||
|
||||
@Test
|
||||
public void testMlockall() {
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
package org.elasticsearch.bootstrap;
|
||||
|
||||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
|
@ -33,7 +33,7 @@ import java.util.jar.Manifest;
|
|||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
public class JarHellTests extends ElasticsearchTestCase {
|
||||
public class JarHellTests extends ESTestCase {
|
||||
|
||||
URL makeJar(Path dir, String name, Manifest manifest, String... files) throws IOException {
|
||||
Path jarpath = dir.resolve(name);
|
||||
|
|
|
@ -20,17 +20,20 @@
|
|||
package org.elasticsearch.bootstrap;
|
||||
|
||||
import org.apache.lucene.util.Constants;
|
||||
import org.elasticsearch.common.io.PathUtils;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.env.Environment;
|
||||
import org.elasticsearch.test.ElasticsearchTestCase;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
|
||||
import java.io.FilePermission;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.security.PermissionCollection;
|
||||
import java.security.Permissions;
|
||||
import java.util.Set;
|
||||
|
||||
public class SecurityTests extends ElasticsearchTestCase {
|
||||
public class SecurityTests extends ESTestCase {
|
||||
|
||||
/** test generated permissions */
|
||||
public void testGeneratedPermissions() throws Exception {
|
||||
|
@ -53,26 +56,28 @@ public class SecurityTests extends ElasticsearchTestCase {
|
|||
}
|
||||
|
||||
// the fake es home
|
||||
assertTrue(permissions.implies(new FilePermission(esHome.toString(), "read")));
|
||||
assertNoPermissions(esHome, permissions);
|
||||
// its parent
|
||||
assertFalse(permissions.implies(new FilePermission(path.toString(), "read")));
|
||||
assertNoPermissions(esHome.getParent(), permissions);
|
||||
// some other sibling
|
||||
assertFalse(permissions.implies(new FilePermission(path.resolve("other").toString(), "read")));
|
||||
assertNoPermissions(esHome.getParent().resolve("other"), permissions);
|
||||
// double check we overwrote java.io.tmpdir correctly for the test
|
||||
assertFalse(permissions.implies(new FilePermission(realTmpDir.toString(), "read")));
|
||||
assertNoPermissions(PathUtils.get(realTmpDir), permissions);
|
||||
}
|
||||
|
||||
/** test generated permissions for all configured paths */
|
||||
public void testEnvironmentPaths() throws Exception {
|
||||
Path path = createTempDir();
|
||||
// make a fake ES home and ensure we only grant permissions to that.
|
||||
Path esHome = path.resolve("esHome");
|
||||
|
||||
Settings.Builder settingsBuilder = Settings.builder();
|
||||
settingsBuilder.put("path.home", path.resolve("home").toString());
|
||||
settingsBuilder.put("path.conf", path.resolve("conf").toString());
|
||||
settingsBuilder.put("path.plugins", path.resolve("plugins").toString());
|
||||
settingsBuilder.putArray("path.data", path.resolve("data1").toString(), path.resolve("data2").toString());
|
||||
settingsBuilder.put("path.logs", path.resolve("logs").toString());
|
||||
settingsBuilder.put("pidfile", path.resolve("test.pid").toString());
|
||||
settingsBuilder.put("path.home", esHome.resolve("home").toString());
|
||||
settingsBuilder.put("path.conf", esHome.resolve("conf").toString());
|
||||
settingsBuilder.put("path.plugins", esHome.resolve("plugins").toString());
|
||||
settingsBuilder.putArray("path.data", esHome.resolve("data1").toString(), esHome.resolve("data2").toString());
|
||||
settingsBuilder.put("path.logs", esHome.resolve("logs").toString());
|
||||
settingsBuilder.put("pidfile", esHome.resolve("test.pid").toString());
|
||||
Settings settings = settingsBuilder.build();
|
||||
|
||||
Path fakeTmpDir = createTempDir();
|
||||
|
@ -87,30 +92,39 @@ public class SecurityTests extends ElasticsearchTestCase {
|
|||
System.setProperty("java.io.tmpdir", realTmpDir);
|
||||
}
|
||||
|
||||
// the fake es home
|
||||
assertNoPermissions(esHome, permissions);
|
||||
// its parent
|
||||
assertNoPermissions(esHome.getParent(), permissions);
|
||||
// some other sibling
|
||||
assertNoPermissions(esHome.getParent().resolve("other"), permissions);
|
||||
// double check we overwrote java.io.tmpdir correctly for the test
|
||||
assertNoPermissions(PathUtils.get(realTmpDir), permissions);
|
||||
|
||||
// check that all directories got permissions:
|
||||
// homefile: this is needed unless we break out rules for "lib" dir.
|
||||
// TODO: make read-only
|
||||
assertTrue(permissions.implies(new FilePermission(environment.homeFile().toString(), "read,readlink,write,delete")));
|
||||
// config file
|
||||
// TODO: make read-only
|
||||
assertTrue(permissions.implies(new FilePermission(environment.configFile().toString(), "read,readlink,write,delete")));
|
||||
// plugins: r/w, TODO: can this be minimized?
|
||||
assertTrue(permissions.implies(new FilePermission(environment.pluginsFile().toString(), "read,readlink,write,delete")));
|
||||
|
||||
// bin file: ro
|
||||
assertExactPermissions(new FilePermission(environment.binFile().toString(), "read,readlink"), permissions);
|
||||
// lib file: ro
|
||||
assertExactPermissions(new FilePermission(environment.libFile().toString(), "read,readlink"), permissions);
|
||||
// config file: ro
|
||||
assertExactPermissions(new FilePermission(environment.configFile().toString(), "read,readlink"), permissions);
|
||||
// plugins: ro
|
||||
assertExactPermissions(new FilePermission(environment.pluginsFile().toString(), "read,readlink"), permissions);
|
||||
|
||||
// data paths: r/w
|
||||
for (Path dataPath : environment.dataFiles()) {
|
||||
assertTrue(permissions.implies(new FilePermission(dataPath.toString(), "read,readlink,write,delete")));
|
||||
assertExactPermissions(new FilePermission(dataPath.toString(), "read,readlink,write,delete"), permissions);
|
||||
}
|
||||
for (Path dataPath : environment.dataWithClusterFiles()) {
|
||||
assertTrue(permissions.implies(new FilePermission(dataPath.toString(), "read,readlink,write,delete")));
|
||||
assertExactPermissions(new FilePermission(dataPath.toString(), "read,readlink,write,delete"), permissions);
|
||||
}
|
||||
// logs: r/w
|
||||
assertTrue(permissions.implies(new FilePermission(environment.logsFile().toString(), "read,readlink,write,delete")));
|
||||
assertExactPermissions(new FilePermission(environment.logsFile().toString(), "read,readlink,write,delete"), permissions);
|
||||
// temp dir: r/w
|
||||
assertTrue(permissions.implies(new FilePermission(fakeTmpDir.toString(), "read,readlink,write,delete")));
|
||||
// double check we overwrote java.io.tmpdir correctly for the test
|
||||
assertFalse(permissions.implies(new FilePermission(realTmpDir.toString(), "read")));
|
||||
// PID file: r/w
|
||||
assertTrue(permissions.implies(new FilePermission(environment.pidFile().toString(), "read,readlink,write,delete")));
|
||||
assertExactPermissions(new FilePermission(fakeTmpDir.toString(), "read,readlink,write,delete"), permissions);
|
||||
// PID file: delete only (for the shutdown hook)
|
||||
assertExactPermissions(new FilePermission(environment.pidFile().toString(), "delete"), permissions);
|
||||
}
|
||||
|
||||
public void testEnsureExists() throws IOException {
|
||||
|
@ -226,9 +240,40 @@ public class SecurityTests extends ElasticsearchTestCase {
|
|||
}
|
||||
Permissions permissions = new Permissions();
|
||||
Security.addPath(permissions, link, "read");
|
||||
assertTrue(permissions.implies(new FilePermission(link.toString(), "read")));
|
||||
assertTrue(permissions.implies(new FilePermission(link.resolve("foo").toString(), "read")));
|
||||
assertTrue(permissions.implies(new FilePermission(target.toString(), "read")));
|
||||
assertTrue(permissions.implies(new FilePermission(target.resolve("foo").toString(), "read")));
|
||||
assertExactPermissions(new FilePermission(link.toString(), "read"), permissions);
|
||||
assertExactPermissions(new FilePermission(link.resolve("foo").toString(), "read"), permissions);
|
||||
assertExactPermissions(new FilePermission(target.toString(), "read"), permissions);
|
||||
assertExactPermissions(new FilePermission(target.resolve("foo").toString(), "read"), permissions);
|
||||
}
|
||||
|
||||
/**
|
||||
* checks exact file permissions, meaning those and only those for that path.
|
||||
*/
|
||||
static void assertExactPermissions(FilePermission expected, PermissionCollection actual) {
|
||||
String target = expected.getName(); // see javadocs
|
||||
Set<String> permissionSet = asSet(expected.getActions().split(","));
|
||||
boolean read = permissionSet.remove("read");
|
||||
boolean readlink = permissionSet.remove("readlink");
|
||||
boolean write = permissionSet.remove("write");
|
||||
boolean delete = permissionSet.remove("delete");
|
||||
boolean execute = permissionSet.remove("execute");
|
||||
assertTrue("unrecognized permission: " + permissionSet, permissionSet.isEmpty());
|
||||
assertEquals(read, actual.implies(new FilePermission(target, "read")));
|
||||
assertEquals(readlink, actual.implies(new FilePermission(target, "readlink")));
|
||||
assertEquals(write, actual.implies(new FilePermission(target, "write")));
|
||||
assertEquals(delete, actual.implies(new FilePermission(target, "delete")));
|
||||
assertEquals(execute, actual.implies(new FilePermission(target, "execute")));
|
||||
}
|
||||
|
||||
/**
|
||||
* checks that this path has no permissions
|
||||
*/
|
||||
static void assertNoPermissions(Path path, PermissionCollection actual) {
|
||||
String target = path.toString();
|
||||
assertFalse(actual.implies(new FilePermission(target, "read")));
|
||||
assertFalse(actual.implies(new FilePermission(target, "readlink")));
|
||||
assertFalse(actual.implies(new FilePermission(target, "write")));
|
||||
assertFalse(actual.implies(new FilePermission(target, "delete")));
|
||||
assertFalse(actual.implies(new FilePermission(target, "execute")));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ import org.elasticsearch.action.count.CountResponse;
|
|||
import org.elasticsearch.action.search.SearchPhaseExecutionException;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -35,7 +35,7 @@ import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public class BroadcastActionsTests extends ElasticsearchIntegrationTest {
|
||||
public class BroadcastActionsIT extends ESIntegTestCase {
|
||||
|
||||
@Override
|
||||
protected int maximumNumberOfReplicas() {
|
|
@ -24,8 +24,8 @@ import org.apache.lucene.util.TestUtil;
|
|||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.action.admin.indices.analyze.AnalyzeResponse;
|
||||
import org.elasticsearch.indices.analysis.PreBuiltAnalyzers;
|
||||
import org.elasticsearch.test.ElasticsearchBackwardsCompatIntegrationTest;
|
||||
import org.elasticsearch.test.ElasticsearchIntegrationTest;
|
||||
import org.elasticsearch.test.ESBackcompatTestCase;
|
||||
import org.elasticsearch.test.ESIntegTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -38,8 +38,8 @@ import java.util.regex.Pattern;
|
|||
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
@ElasticsearchIntegrationTest.ClusterScope(numDataNodes = 0, scope = ElasticsearchIntegrationTest.Scope.SUITE, numClientNodes = 0, transportClientRatio = 0.0)
|
||||
public class BasicAnalysisBackwardCompatibilityTests extends ElasticsearchBackwardsCompatIntegrationTest {
|
||||
@ESIntegTestCase.ClusterScope(numDataNodes = 0, scope = ESIntegTestCase.Scope.SUITE, numClientNodes = 0, transportClientRatio = 0.0)
|
||||
public class BasicAnalysisBackwardCompatibilityIT extends ESBackcompatTestCase {
|
||||
|
||||
// This pattern match characters with Line_Break = Complex_Content.
|
||||
final static Pattern complexUnicodeChars = Pattern.compile("[\u17B4\u17B5\u17D3\u17CB-\u17D1\u17DD\u1036\u17C6\u1A74\u1038\u17C7\u0E4E\u0E47-\u0E4D\u0EC8-\u0ECD\uAABF\uAAC1\u1037\u17C8-\u17CA\u1A75-\u1A7C\u1AA8-\u1AAB\uAADE\uAADF\u1AA0-\u1AA6\u1AAC\u1AAD\u109E\u109F\uAA77-\uAA79\u0E46\u0EC6\u17D7\u1AA7\uA9E6\uAA70\uAADD\u19DA\u0E01-\u0E3A\u0E40-\u0E45\u0EDE\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0EDF\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAB\u0EDC\u0EDD\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\uAA80-\uAABE\uAAC0\uAAC2\uAADB\uAADC\u1000\u1075\u1001\u1076\u1002\u1077\uAA60\uA9E9\u1003\uA9E0\uA9EA\u1004\u105A\u1005\u1078\uAA61\u1006\uA9E1\uAA62\uAA7E\u1007\uAA63\uA9EB\u1079\uAA72\u1008\u105B\uA9E2\uAA64\uA9EC\u1061\uAA7F\u1009\u107A\uAA65\uA9E7\u100A\u100B\uAA66\u100C\uAA67\u100D\uAA68\uA9ED\u100E\uAA69\uA9EE\u100F\u106E\uA9E3\uA9EF\u1010-\u1012\u107B\uA9FB\u1013\uAA6A\uA9FC\u1014\u107C\uAA6B\u105E\u1015\u1016\u107D\u107E\uAA6F\u108E\uA9E8\u1017\u107F\uA9FD\u1018\uA9E4\uA9FE\u1019\u105F\u101A\u103B\u101B\uAA73\uAA7A\u103C\u101C\u1060\u101D\u103D\u1082\u1080\u1050\u1051\u1065\u101E\u103F\uAA6C\u101F\u1081\uAA6D\u103E\uAA6E\uAA71\u1020\uA9FA\u105C\u105D\u106F\u1070\u1066\u1021-\u1026\u1052-\u1055\u1027-\u102A\u102C\u102B\u1083\u1072\u109C\u102D\u1071\u102E\u1033\u102F\u1073\u1074\u1030\u1056-\u1059\u1031\u1084\u1035\u1085\u1032\u109D\u1034\u1062\u1067\u1068\uA9E5\u1086\u1039\u103A\u1063\u1064\u1069-\u106D\u1087\u108B\u1088\u108C\u108D\u1089\u108A\u108F\u109A\u109B\uAA7B-\uAA7D\uAA74-\uAA76\u1780-\u17A2\u17DC\u17A3-\u17B3\u17B6-\u17C5\u17D2\u1950-\u196D\u1970-\u1974\u1980-\u199C\u19DE\u19DF\u199D-\u19AB\u19B0-\u19C9\u1A20-\u1A26\u1A58\u1A59\u1A27-\u1A3B\u1A5A\u1A5B\u1A3C-\u1A46\u1A54\u1A47-\u1A4C\u1A53\u1A6B\u1A55-\u1A57\u1A5C-\u1A5E\u1A4D-\u1A52\u1A61\u1A6C\u1A62-\u1A6A\u1A6E\u1A6F\u1A73\u1A70-\u1A72\u1A6D\u1A60]");
|
|
@ -46,7 +46,6 @@ import org.elasticsearch.cluster.metadata.IndexMetaData;
|
|||
import org.elasticsearch.cluster.routing.IndexRoutingTable;
|
||||
import org.elasticsearch.cluster.routing.IndexShardRoutingTable;
|
||||
import org.elasticsearch.cluster.routing.ShardRouting;
|
||||
import org.elasticsearch.cluster.routing.allocation.decider.EnableAllocationDecider;
|
||||
import org.elasticsearch.common.collect.ImmutableOpenMap;
|
||||
import org.elasticsearch.common.regex.Regex;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
|
@ -59,7 +58,7 @@ import org.elasticsearch.index.mapper.internal.FieldNamesFieldMapper;
|
|||
import org.elasticsearch.index.query.QueryBuilders;
|
||||
import org.elasticsearch.search.SearchHit;
|
||||
import org.elasticsearch.search.sort.SortOrder;
|
||||
import org.elasticsearch.test.ElasticsearchBackwardsCompatIntegrationTest;
|
||||
import org.elasticsearch.test.ESBackcompatTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -76,7 +75,7 @@ import static org.hamcrest.Matchers.*;
|
|||
|
||||
/**
|
||||
*/
|
||||
public class BasicBackwardsCompatibilityTest extends ElasticsearchBackwardsCompatIntegrationTest {
|
||||
public class BasicBackwardsCompatibilityIT extends ESBackcompatTestCase {
|
||||
|
||||
/**
|
||||
* Basic test using Index & Realtime Get with external versioning. This test ensures routing works correctly across versions.
|
|
@ -29,7 +29,7 @@ import org.elasticsearch.cluster.block.ClusterBlockLevel;
|
|||
import org.elasticsearch.cluster.block.ClusterBlocks;
|
||||
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.test.ElasticsearchBackwardsCompatIntegrationTest;
|
||||
import org.elasticsearch.test.ESBackcompatTestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -38,7 +38,7 @@ import java.util.Map;
|
|||
import static org.elasticsearch.cluster.metadata.IndexMetaData.*;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public class ClusterStateBackwardsCompatTests extends ElasticsearchBackwardsCompatIntegrationTest {
|
||||
public class ClusterStateBackwardsCompatIT extends ESBackcompatTestCase {
|
||||
|
||||
@Test
|
||||
public void testClusterState() throws Exception {
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue