Skip to content

Commit 3f6a3c0

Browse files
authored
Merge pull request #19803 from elastic/fix/transportClientTests
Fix PreBuiltTransportClientTests to run and pass
2 parents e08f11d + f1110f6 commit 3f6a3c0

File tree

4 files changed

+35
-10
lines changed

4 files changed

+35
-10
lines changed

client/transport/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ dependencies {
3434
compile "org.elasticsearch.plugin:percolator-client:${version}"
3535
testCompile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}"
3636
testCompile "junit:junit:${versions.junit}"
37+
testCompile "org.hamcrest:hamcrest-all:${versions.hamcrest}"
3738
}
3839

3940
dependencyLicenses {

client/transport/src/main/java/org/elasticsearch/transport/client/PreBuiltTransportClient.java

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919

2020
package org.elasticsearch.transport.client;
2121

22+
import io.netty.util.ThreadDeathWatcher;
23+
import io.netty.util.concurrent.GlobalEventExecutor;
24+
import org.apache.lucene.util.IOUtils;
2225
import org.elasticsearch.client.transport.TransportClient;
2326
import org.elasticsearch.common.network.NetworkModule;
2427
import org.elasticsearch.common.settings.Setting;
@@ -34,6 +37,7 @@
3437
import java.util.Collection;
3538
import java.util.Collections;
3639
import java.util.List;
40+
import java.util.concurrent.TimeUnit;
3741

3842
/**
3943
* A builder to create an instance of {@link TransportClient}
@@ -79,13 +83,28 @@ public List<Setting<?>> getSettings() {
7983

8084
@Override
8185
public Settings additionalSettings() {
82-
return Settings.builder()
83-
.put(NetworkModule.TRANSPORT_TYPE_KEY, Netty4Plugin.NETTY_TRANSPORT_NAME)
84-
.put(NetworkModule.HTTP_TYPE_KEY, Netty4Plugin.NETTY_HTTP_TRANSPORT_NAME)
85-
.put("netty.assert.buglevel", true)
86+
return Settings.builder().put("netty.assert.buglevel", true)
8687
.build();
8788
}
8889

8990
}
9091

92+
@Override
93+
public void close() {
94+
super.close();
95+
if (NetworkModule.TRANSPORT_TYPE_SETTING.exists(settings) == false
96+
|| NetworkModule.TRANSPORT_TYPE_SETTING.get(settings).equals(Netty4Plugin.NETTY_TRANSPORT_NAME)) {
97+
try {
98+
GlobalEventExecutor.INSTANCE.awaitInactivity(5, TimeUnit.SECONDS);
99+
} catch (InterruptedException e) {
100+
Thread.currentThread().interrupt();
101+
}
102+
try {
103+
ThreadDeathWatcher.awaitInactivity(5, TimeUnit.SECONDS);
104+
} catch (InterruptedException e) {
105+
Thread.currentThread().interrupt();
106+
}
107+
}
108+
}
109+
91110
}

client/transport/src/test/java/org/elasticsearch/transport/client/PreBuiltTransportClientTests.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,13 @@
2727
import org.elasticsearch.percolator.PercolatorPlugin;
2828
import org.elasticsearch.plugins.Plugin;
2929
import org.elasticsearch.script.mustache.MustachePlugin;
30-
import org.elasticsearch.transport.Netty3Plugin;
30+
import org.elasticsearch.transport.Netty4Plugin;
3131
import org.junit.Test;
3232

3333
import java.util.Arrays;
3434

3535
import static org.junit.Assert.assertEquals;
36+
import static org.junit.Assert.assertTrue;
3637
import static org.junit.Assert.fail;
3738

3839
public class PreBuiltTransportClientTests extends RandomizedTest {
@@ -41,7 +42,8 @@ public class PreBuiltTransportClientTests extends RandomizedTest {
4142
public void testPluginInstalled() {
4243
try (TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)) {
4344
Settings settings = client.settings();
44-
assertEquals(Netty3Plugin.NETTY_TRANSPORT_NAME, NetworkModule.HTTP_DEFAULT_TYPE_SETTING.get(settings));
45+
assertEquals(Netty4Plugin.NETTY_TRANSPORT_NAME, NetworkModule.HTTP_DEFAULT_TYPE_SETTING.get(settings));
46+
assertEquals(Netty4Plugin.NETTY_TRANSPORT_NAME, NetworkModule.TRANSPORT_DEFAULT_TYPE_SETTING.get(settings));
4547
}
4648
}
4749

@@ -54,7 +56,8 @@ public void testInstallPluginTwice() {
5456
new PreBuiltTransportClient(Settings.EMPTY, plugin);
5557
fail("exception expected");
5658
} catch (IllegalArgumentException ex) {
57-
assertEquals("plugin is already installed", ex.getMessage());
59+
assertTrue("Expected message to start with [plugin already exists: ] but was instead [" + ex.getMessage() + "]",
60+
ex.getMessage().startsWith("plugin already exists: "));
5861
}
5962
}
6063
}

core/src/main/java/org/elasticsearch/common/network/NetworkModule.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import org.elasticsearch.common.ParseField;
3434
import org.elasticsearch.common.inject.AbstractModule;
3535
import org.elasticsearch.common.inject.util.Providers;
36-
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
3736
import org.elasticsearch.common.io.stream.NamedWriteableRegistry.Entry;
3837
import org.elasticsearch.common.io.stream.Writeable;
3938
import org.elasticsearch.common.settings.Setting;
@@ -57,9 +56,12 @@ public class NetworkModule extends AbstractModule {
5756
public static final String TRANSPORT_SERVICE_TYPE_KEY = "transport.service.type";
5857
public static final String HTTP_TYPE_KEY = "http.type";
5958
public static final String LOCAL_TRANSPORT = "local";
59+
public static final String HTTP_TYPE_DEFAULT_KEY = "http.type.default";
60+
public static final String TRANSPORT_TYPE_DEFAULT_KEY = "transport.type.default";
6061

61-
public static final Setting<String> TRANSPORT_DEFAULT_TYPE_SETTING = Setting.simpleString("transport.type.default", Property.NodeScope);
62-
public static final Setting<String> HTTP_DEFAULT_TYPE_SETTING = Setting.simpleString("http.type.default", Property.NodeScope);
62+
public static final Setting<String> TRANSPORT_DEFAULT_TYPE_SETTING = Setting.simpleString(TRANSPORT_TYPE_DEFAULT_KEY,
63+
Property.NodeScope);
64+
public static final Setting<String> HTTP_DEFAULT_TYPE_SETTING = Setting.simpleString(HTTP_TYPE_DEFAULT_KEY, Property.NodeScope);
6365
public static final Setting<String> HTTP_TYPE_SETTING = Setting.simpleString(HTTP_TYPE_KEY, Property.NodeScope);
6466
public static final Setting<Boolean> HTTP_ENABLED = Setting.boolSetting("http.enabled", true, Property.NodeScope);
6567
public static final Setting<String> TRANSPORT_SERVICE_TYPE_SETTING =

0 commit comments

Comments
 (0)