Skip to content

Commit eee9f5e

Browse files
committed
[#8965] Apply SharedTestLifeCycle to ElasticSearch
1 parent 504d876 commit eee9f5e

File tree

8 files changed

+136
-105
lines changed

8 files changed

+136
-105
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.navercorp.pinpoint.plugin.elasticsearch;
2+
3+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycle;
4+
import org.apache.logging.log4j.LogManager;
5+
import org.apache.logging.log4j.Logger;
6+
import org.junit.Assume;
7+
import org.testcontainers.DockerClientFactory;
8+
import org.testcontainers.elasticsearch.ElasticsearchContainer;
9+
10+
import java.util.Properties;
11+
12+
public class ESServer implements SharedTestLifeCycle {
13+
private final Logger logger = LogManager.getLogger(getClass());
14+
15+
public ElasticsearchContainer elasticsearchContainer;
16+
17+
public ESServer() {
18+
}
19+
20+
@Override
21+
public Properties beforeAll() {
22+
Assume.assumeTrue("Docker not enabled", DockerClientFactory.instance().isDockerAvailable());
23+
logger.info("ElasticsearchContainer start");
24+
25+
elasticsearchContainer = ESServerContainerFactory.newESServerContainerFactory(logger.getName());
26+
elasticsearchContainer.start();
27+
28+
Properties properties = new Properties();
29+
30+
Integer port = elasticsearchContainer.getMappedPort(ESServerContainerFactory.DEFAULT_PORT);
31+
properties.setProperty("PORT", port.toString());
32+
33+
return properties;
34+
}
35+
36+
37+
@Override
38+
public void afterAll() {
39+
logger.info("ElasticsearchContainer stop");
40+
if (elasticsearchContainer != null) {
41+
elasticsearchContainer.stop();
42+
}
43+
}
44+
}

plugins-it/elasticsearch-7.16-it/src/test/java/com/navercorp/pinpoint/plugin/elasticsearch/ElasticsearchITBase.java

Lines changed: 14 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,11 @@
1515
* limitations under the License.
1616
*/
1717

18-
import com.navercorp.pinpoint.test.plugin.shared.AfterSharedClass;
19-
import com.navercorp.pinpoint.test.plugin.shared.BeforeSharedClass;
18+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestBeforeAllResult;
2019
import org.apache.logging.log4j.LogManager;
2120
import org.apache.logging.log4j.Logger;
22-
import org.junit.Assume;
23-
import org.testcontainers.DockerClientFactory;
24-
import org.testcontainers.elasticsearch.ElasticsearchContainer;
21+
22+
import java.util.Properties;
2523

2624
/**
2725
* @author Roy Kim
@@ -31,54 +29,25 @@ public abstract class ElasticsearchITBase {
3129

3230
protected static final Logger logger = LogManager.getLogger(ElasticsearchITBase.class);
3331

34-
public static ElasticsearchContainer elasticsearchContainer;
35-
36-
protected static int SERVER_PORT;
37-
protected static String SERVER_HOST;
38-
protected static String ELASTICSEARCH_ADDRESS;
39-
40-
public static int getServerPort() {
41-
return SERVER_PORT;
42-
}
43-
44-
public static void setServerPort(int serverPort) {
45-
SERVER_PORT = serverPort;
46-
}
47-
48-
public static String getServerHost() {
49-
return SERVER_HOST;
50-
}
32+
protected static int ES_PORT;
5133

52-
public static void setServerHost(String serverHost) {
53-
SERVER_HOST = serverHost;
34+
public String getEsHost() {
35+
return "127.0.0.1";
5436
}
5537

56-
public static String getElasticsearchAddress() {
57-
return ELASTICSEARCH_ADDRESS;
38+
public int getEsPort() {
39+
return ES_PORT;
5840
}
5941

60-
public static void setElasticsearchAddress(String elasticsearchAddress) {
61-
ELASTICSEARCH_ADDRESS = elasticsearchAddress;
42+
public String getEsAddress() {
43+
return getEsHost() + ":" + ES_PORT;
6244
}
6345

64-
@BeforeSharedClass
65-
public static void sharedSetUp() {
66-
Assume.assumeTrue("Docker not enabled", DockerClientFactory.instance().isDockerAvailable());
67-
68-
elasticsearchContainer = ESServerContainerFactory.newESServerContainerFactory(logger.getName());
69-
elasticsearchContainer.start();
70-
71-
setServerPort(elasticsearchContainer.getMappedPort(ESServerContainerFactory.DEFAULT_PORT));
72-
setServerHost(elasticsearchContainer.getHost());
73-
setElasticsearchAddress(elasticsearchContainer.getHttpHostAddress());
74-
75-
}
46+
@SharedTestBeforeAllResult
47+
public static void setBeforeAllResult(Properties beforeAllResult) {
48+
logger.info("ElasticsearchContainer properties:{}", beforeAllResult);
7649

77-
@AfterSharedClass
78-
public static void sharedTearDown() {
79-
if (elasticsearchContainer != null) {
80-
elasticsearchContainer.stop();
81-
}
50+
ES_PORT = Integer.parseInt(beforeAllResult.getProperty("PORT"));
8251
}
8352

8453
}

plugins-it/elasticsearch-7.16-it/src/test/java/com/navercorp/pinpoint/plugin/elasticsearch/ElasticsearchIT_7_16_x_IT.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.navercorp.pinpoint.test.plugin.JvmVersion;
2626
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
2727
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
28+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
2829
import org.apache.http.HttpHost;
2930
import org.elasticsearch.action.index.IndexRequest;
3031
import org.elasticsearch.client.RequestOptions;
@@ -43,18 +44,18 @@
4344

4445
@RunWith(PinpointPluginTestSuite.class)
4546
@PinpointAgent(AgentPath.PATH)
46-
@Dependency({"org.elasticsearch.client:elasticsearch-rest-high-level-client:[7.16.0,7.max]",
47+
@Dependency({"org.elasticsearch.client:elasticsearch-rest-high-level-client:[7.16.0]",
4748
TestcontainersOption.ELASTICSEARCH})
4849
@JvmVersion(8)
50+
@SharedTestLifeCycleClass(ESServer.class)
4951
public class ElasticsearchIT_7_16_x_IT extends ElasticsearchITBase {
5052

51-
private static RestHighLevelClient restHighLevelClient;
53+
private RestHighLevelClient restHighLevelClient;
5254

5355
@Before
5456
public void setup() {
5557
restHighLevelClient = new RestHighLevelClient(
56-
RestClient.builder(
57-
new HttpHost(getServerHost(), getServerPort(), "http")));
58+
RestClient.builder(new HttpHost(getEsHost(), getEsPort(), "http")));
5859
}
5960

6061
@After
@@ -94,7 +95,7 @@ private void testIndexV70UP(PluginTestVerifier verifier) throws IOException {
9495
throw new AssertionError(e);
9596
}
9697

97-
verifier.verifyTrace(event(ElasticsearchConstants.ELASTICSEARCH_EXECUTOR.getName(), index, null, ELASTICSEARCH_ADDRESS, "ElasticSearch"
98+
verifier.verifyTrace(event(ElasticsearchConstants.ELASTICSEARCH_EXECUTOR.getName(), index, null, getEsAddress(), "ElasticSearch"
9899
, new ExpectedAnnotation(ElasticsearchConstants.ARGS_DSL_ANNOTATION_KEY.getName(), indexRequest.toString())
99100
));
100101
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.navercorp.pinpoint.plugin.elasticsearch;
2+
3+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycle;
4+
import org.apache.logging.log4j.LogManager;
5+
import org.apache.logging.log4j.Logger;
6+
import org.junit.Assume;
7+
import org.testcontainers.DockerClientFactory;
8+
import org.testcontainers.elasticsearch.ElasticsearchContainer;
9+
10+
import java.util.Properties;
11+
12+
public class ESServer implements SharedTestLifeCycle {
13+
private final Logger logger = LogManager.getLogger(getClass());
14+
15+
public ElasticsearchContainer elasticsearchContainer;
16+
17+
public ESServer() {
18+
}
19+
20+
@Override
21+
public Properties beforeAll() {
22+
Assume.assumeTrue("Docker not enabled", DockerClientFactory.instance().isDockerAvailable());
23+
logger.info("ElasticsearchContainer start");
24+
25+
elasticsearchContainer = ESServerContainerFactory.newESServerContainerFactory(logger.getName());
26+
elasticsearchContainer.start();
27+
28+
Properties properties = new Properties();
29+
30+
Integer port = elasticsearchContainer.getMappedPort(ESServerContainerFactory.DEFAULT_PORT);
31+
properties.setProperty("PORT", port.toString());
32+
return properties;
33+
}
34+
35+
36+
@Override
37+
public void afterAll() {
38+
logger.info("ElasticsearchContainer stop");
39+
if (elasticsearchContainer != null) {
40+
elasticsearchContainer.stop();
41+
}
42+
}
43+
}

plugins-it/elasticsearch-it/src/test/java/com/navercorp/pinpoint/plugin/elasticsearch/ElasticsearchITBase.java

Lines changed: 14 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,11 @@
1515
* limitations under the License.
1616
*/
1717

18-
import com.navercorp.pinpoint.test.plugin.shared.AfterSharedClass;
19-
import com.navercorp.pinpoint.test.plugin.shared.BeforeSharedClass;
18+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestBeforeAllResult;
2019
import org.apache.logging.log4j.LogManager;
2120
import org.apache.logging.log4j.Logger;
22-
import org.junit.Assume;
23-
import org.testcontainers.DockerClientFactory;
24-
import org.testcontainers.elasticsearch.ElasticsearchContainer;
21+
22+
import java.util.Properties;
2523

2624
/**
2725
* @author Roy Kim
@@ -31,56 +29,25 @@ public abstract class ElasticsearchITBase {
3129

3230
protected static final Logger logger = LogManager.getLogger(ElasticsearchITBase.class);
3331

34-
public static ElasticsearchContainer elasticsearchContainer;
35-
36-
37-
protected static int SERVER_PORT;
38-
protected static String SERVER_HOST;
39-
protected static String ELASTICSEARCH_ADDRESS;
40-
41-
public static int getServerPort() {
42-
return SERVER_PORT;
43-
}
44-
45-
public static void setServerPort(int serverPort) {
46-
SERVER_PORT = serverPort;
47-
}
48-
49-
public static String getServerHost() {
50-
return SERVER_HOST;
51-
}
32+
protected static int ES_PORT;
5233

53-
public static void setServerHost(String serverHost) {
54-
SERVER_HOST = serverHost;
34+
public String getEsHost() {
35+
return "127.0.0.1";
5536
}
5637

57-
public static String getElasticsearchAddress() {
58-
return ELASTICSEARCH_ADDRESS;
38+
public int getEsPort() {
39+
return ES_PORT;
5940
}
6041

61-
public static void setElasticsearchAddress(String elasticsearchAddress) {
62-
ELASTICSEARCH_ADDRESS = elasticsearchAddress;
42+
public String getEsAddress() {
43+
return getEsHost() + ":" + ES_PORT;
6344
}
6445

65-
@BeforeSharedClass
66-
public static void sharedSetUp() {
67-
Assume.assumeTrue("Docker not enabled", DockerClientFactory.instance().isDockerAvailable());
68-
69-
elasticsearchContainer = ESServerContainerFactory.newESServerContainerFactory(logger.getName());
70-
elasticsearchContainer.start();
71-
72-
setServerPort(elasticsearchContainer.getMappedPort(ESServerContainerFactory.DEFAULT_PORT));
73-
setServerHost(elasticsearchContainer.getHost());
74-
setElasticsearchAddress(elasticsearchContainer.getHttpHostAddress());
46+
@SharedTestBeforeAllResult
47+
public static void setBeforeAllResult(Properties beforeAllResult) {
48+
logger.info("ElasticsearchContainer properties:{}", beforeAllResult);
7549

50+
ES_PORT = Integer.parseInt(beforeAllResult.getProperty("PORT"));
7651
}
7752

78-
@AfterSharedClass
79-
public static void sharedTearDown() {
80-
if (elasticsearchContainer != null) {
81-
elasticsearchContainer.stop();
82-
}
83-
}
84-
85-
8653
}

plugins-it/elasticsearch-it/src/test/java/com/navercorp/pinpoint/plugin/elasticsearch/ElasticsearchIT_6_0_x_IT.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.navercorp.pinpoint.test.plugin.JvmVersion;
2525
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
2626
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
27+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
2728
import org.apache.http.Header;
2829
import org.apache.http.HttpHost;
2930
import org.elasticsearch.action.index.IndexRequest;
@@ -46,15 +47,16 @@
4647
@Dependency({"org.elasticsearch.client:elasticsearch-rest-high-level-client:[6.0.0,6.3.0)",
4748
TestcontainersOption.ELASTICSEARCH})
4849
@JvmVersion(8)
50+
@SharedTestLifeCycleClass(ESServer.class)
4951
public class ElasticsearchIT_6_0_x_IT extends ElasticsearchITBase {
5052

51-
private static RestHighLevelClient restHighLevelClient;
53+
private RestHighLevelClient restHighLevelClient;
5254

5355
@Before
5456
public void setup() {
5557
restHighLevelClient = new RestHighLevelClient(
5658
RestClient.builder(
57-
new HttpHost(getServerHost(), getServerPort(), "http")));
59+
new HttpHost(getEsHost(), getEsPort(), "http")));
5860
}
5961

6062
@After
@@ -110,7 +112,7 @@ private void testIndexV60UP(PluginTestVerifier verifier) throws IOException {
110112
throw new AssertionError(e);
111113
}
112114

113-
verifier.verifyTrace(event(ElasticsearchConstants.ELASTICSEARCH_EXECUTOR.getName(), index, null, getElasticsearchAddress(), "ElasticSearch"
115+
verifier.verifyTrace(event(ElasticsearchConstants.ELASTICSEARCH_EXECUTOR.getName(), index, null, getEsAddress(), "ElasticSearch"
114116
, new ExpectedAnnotation(ElasticsearchConstants.ARGS_DSL_ANNOTATION_KEY.getName(), indexRequest.toString())
115117
));
116118
}

plugins-it/elasticsearch-it/src/test/java/com/navercorp/pinpoint/plugin/elasticsearch/ElasticsearchIT_6_4_x_IT.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.navercorp.pinpoint.test.plugin.JvmVersion;
2525
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
2626
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
27+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
2728
import org.apache.http.HttpHost;
2829
import org.elasticsearch.action.index.IndexRequest;
2930
import org.elasticsearch.client.RequestOptions;
@@ -45,15 +46,16 @@
4546
@Dependency({"org.elasticsearch.client:elasticsearch-rest-high-level-client:[6.4.0,6.9.9)",
4647
TestcontainersOption.ELASTICSEARCH})
4748
@JvmVersion(8)
48-
public class ElasticsearchIT_6_4_x_IT extends ElasticsearchITBase {
49+
@SharedTestLifeCycleClass(ESServer.class)
50+
public class ElasticsearchIT_6_4_x_IT extends ElasticsearchITBase {
4951

5052
private static RestHighLevelClient restHighLevelClient;
5153

5254
@Before
5355
public void setup() {
5456
restHighLevelClient = new RestHighLevelClient(
5557
RestClient.builder(
56-
new HttpHost(getServerHost(), getServerPort(), "http")));
58+
new HttpHost(getEsHost(), getEsPort(), "http")));
5759
}
5860

5961
@After
@@ -91,7 +93,7 @@ private void testIndexV64UP(PluginTestVerifier verifier) throws IOException {
9193
throw new AssertionError(e);
9294
}
9395

94-
verifier.verifyTrace(event(ElasticsearchConstants.ELASTICSEARCH_EXECUTOR.getName(), index, null, getElasticsearchAddress(), "ElasticSearch"
96+
verifier.verifyTrace(event(ElasticsearchConstants.ELASTICSEARCH_EXECUTOR.getName(), index, null, getEsAddress(), "ElasticSearch"
9597
, new ExpectedAnnotation(ElasticsearchConstants.ARGS_DSL_ANNOTATION_KEY.getName(), indexRequest.toString())
9698
));
9799
}

0 commit comments

Comments
 (0)