Skip to content

Commit 944ea53

Browse files
committed
[pinpoint-apm#8965] Apply SharedTestLifeCycle to HttpWebServer
1 parent 182fc7d commit 944ea53

File tree

13 files changed

+186
-121
lines changed

13 files changed

+186
-121
lines changed

plugins-it/cxf-it/src/test/java/com/navercorp/pinpoint/plugin/cxf/CxfClientIT.java

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,29 @@
1818

1919
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifier;
2020
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifierHolder;
21-
2221
import com.navercorp.pinpoint.pluginit.utils.AgentPath;
2322
import com.navercorp.pinpoint.pluginit.utils.PluginITConstants;
2423
import com.navercorp.pinpoint.pluginit.utils.WebServer;
2524
import com.navercorp.pinpoint.test.plugin.Dependency;
25+
import com.navercorp.pinpoint.test.plugin.ImportPlugin;
2626
import com.navercorp.pinpoint.test.plugin.JvmVersion;
2727
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
2828
import com.navercorp.pinpoint.test.plugin.PinpointConfig;
2929
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
30-
import com.navercorp.pinpoint.test.plugin.ImportPlugin;
31-
import com.navercorp.pinpoint.test.plugin.shared.AfterSharedClass;
32-
import com.navercorp.pinpoint.test.plugin.shared.BeforeSharedClass;
33-
30+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestBeforeAllResult;
31+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
3432
import org.apache.cxf.interceptor.LoggingInInterceptor;
3533
import org.apache.cxf.interceptor.LoggingMessage;
3634
import org.apache.cxf.interceptor.LoggingOutInterceptor;
3735
import org.apache.cxf.interceptor.MessageSenderInterceptor;
3836
import org.apache.cxf.jaxrs.client.ClientConfiguration;
3937
import org.apache.cxf.jaxrs.client.WebClient;
4038
import org.apache.cxf.message.Message;
41-
import org.junit.AfterClass;
42-
import org.junit.BeforeClass;
4339
import org.junit.Test;
4440
import org.junit.runner.RunWith;
4541

42+
import java.util.Properties;
43+
4644
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.annotation;
4745
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.event;
4846

@@ -53,35 +51,24 @@
5351
@Dependency({"org.apache.cxf:cxf-rt-rs-client:[3.0.0][3.0.16][3.1.0][3.1.16],[3.2.1,)", WebServer.VERSION, PluginITConstants.VERSION})
5452
@ImportPlugin({"com.navercorp.pinpoint:pinpoint-cxf-plugin", "com.navercorp.pinpoint:pinpoint-jdk-http-plugin"})
5553
@PinpointConfig("cxf/pinpoint-cxf-test.config")
54+
@SharedTestLifeCycleClass(HttpWebServer.class)
5655
public class CxfClientIT {
5756

58-
private static WebServer webServer;
59-
6057
private static String ADDRESS;
6158

62-
public static String getADDRESS() {
63-
return ADDRESS;
64-
}
65-
66-
public static void setADDRESS(String ADDRESS) {
67-
CxfClientIT.ADDRESS = ADDRESS;
59+
@SharedTestBeforeAllResult
60+
public static void setBeforeAllResult(Properties beforeAllResult) {
61+
ADDRESS = beforeAllResult.getProperty("ADDRESS");
6862
}
6963

70-
@BeforeSharedClass
71-
public static void BeforeClass() throws Exception {
72-
webServer = WebServer.newTestWebServer();
73-
setADDRESS(webServer.getCallHttpUrl());
74-
}
75-
76-
@AfterSharedClass
77-
public static void AfterClass() {
78-
webServer = WebServer.cleanup(webServer);
64+
public String getAddress() {
65+
return ADDRESS;
7966
}
8067

8168
@Test
8269
public void test() throws Exception {
8370

84-
String address = getADDRESS();
71+
String address = getAddress();
8572

8673
String json = "{\"id\" : 12345, \"name\" : \"victor\"}";
8774

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.navercorp.pinpoint.plugin.cxf;
2+
3+
import com.navercorp.pinpoint.pluginit.utils.WebServer;
4+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycle;
5+
6+
import java.util.Properties;
7+
8+
public class HttpWebServer implements SharedTestLifeCycle {
9+
private WebServer webServer;
10+
11+
@Override
12+
public Properties beforeAll() {
13+
try {
14+
webServer = WebServer.newTestWebServer();
15+
16+
Properties properties = new Properties();
17+
properties.setProperty("ADDRESS", webServer.getCallHttpUrl());
18+
properties.setProperty("HOST_PORT", webServer.getHostAndPort());
19+
return properties;
20+
} catch (Exception e) {
21+
throw new RuntimeException("webserver start error", e);
22+
}
23+
}
24+
25+
@Override
26+
public void afterAll() {
27+
webServer = WebServer.cleanup(webServer);
28+
}
29+
}

plugins-it/httpclient3-it/src/test/java/com/navercorp/pinpoint/plugin/httpclient3/HttpClientIT.java

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,27 @@
1515
*/
1616
package com.navercorp.pinpoint.plugin.httpclient3;
1717

18+
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifier;
19+
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifierHolder;
1820
import com.navercorp.pinpoint.pluginit.utils.AgentPath;
1921
import com.navercorp.pinpoint.pluginit.utils.PluginITConstants;
2022
import com.navercorp.pinpoint.pluginit.utils.WebServer;
23+
import com.navercorp.pinpoint.test.plugin.Dependency;
2124
import com.navercorp.pinpoint.test.plugin.ImportPlugin;
2225
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
26+
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
27+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestBeforeAllResult;
28+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
2329
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
2430
import org.apache.commons.httpclient.HostConfiguration;
2531
import org.apache.commons.httpclient.HttpClient;
2632
import org.apache.commons.httpclient.NameValuePair;
2733
import org.apache.commons.httpclient.methods.GetMethod;
2834
import org.apache.commons.httpclient.params.HttpMethodParams;
29-
import org.junit.AfterClass;
30-
import org.junit.BeforeClass;
3135
import org.junit.Test;
3236
import org.junit.runner.RunWith;
3337

34-
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifier;
35-
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifierHolder;
36-
import com.navercorp.pinpoint.test.plugin.Dependency;
37-
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
38-
import com.navercorp.pinpoint.test.plugin.shared.AfterSharedClass;
39-
import com.navercorp.pinpoint.test.plugin.shared.BeforeSharedClass;
38+
import java.util.Properties;
4039

4140
/**
4241
* @author jaehong.kim
@@ -45,32 +44,20 @@
4544
@PinpointAgent(AgentPath.PATH)
4645
@ImportPlugin("com.navercorp.pinpoint:pinpoint-httpclient3-plugin")
4746
@Dependency({ "commons-httpclient:commons-httpclient:[3.0],[3.0.1],[3.1]", WebServer.VERSION, PluginITConstants.VERSION})
47+
@SharedTestLifeCycleClass(HttpWebServer.class)
4848
public class HttpClientIT {
4949

50-
private static com.navercorp.pinpoint.pluginit.utils.WebServer webServer;
51-
52-
// ---------- For @BeforeSharedClass, @AfterSharedClass //
53-
private static String CALL_URL;
50+
private static String ADDRESS;
5451

55-
public static String getCallUrl() {
56-
return CALL_URL;
52+
@SharedTestBeforeAllResult
53+
public static void setBeforeAllResult(Properties beforeAllResult) {
54+
ADDRESS = beforeAllResult.getProperty("ADDRESS");
5755
}
5856

59-
public static void setCallUrl(String callUrl) {
60-
CALL_URL = callUrl;
57+
public String getAddress() {
58+
return ADDRESS;
6159
}
62-
// ---------- //
6360

64-
@BeforeSharedClass
65-
public static void sharedSetUp() throws Exception {
66-
webServer = WebServer.newTestWebServer();
67-
setCallUrl(webServer.getCallHttpUrl());
68-
}
69-
70-
@AfterSharedClass
71-
public static void AfterClass() {
72-
webServer = WebServer.cleanup(webServer);
73-
}
7461

7562
private static final long CONNECTION_TIMEOUT = 10000;
7663
private static final int SO_TIMEOUT = 10000;
@@ -81,7 +68,7 @@ public void test() {
8168
client.getParams().setConnectionManagerTimeout(CONNECTION_TIMEOUT);
8269
client.getParams().setSoTimeout(SO_TIMEOUT);
8370

84-
GetMethod method = new GetMethod(getCallUrl());
71+
GetMethod method = new GetMethod(getAddress());
8572

8673
// Provide custom retry handler is necessary
8774
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false));
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.navercorp.pinpoint.plugin.httpclient3;
2+
3+
import com.navercorp.pinpoint.pluginit.utils.WebServer;
4+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycle;
5+
6+
import java.util.Properties;
7+
8+
public class HttpWebServer implements SharedTestLifeCycle {
9+
private WebServer webServer;
10+
11+
@Override
12+
public Properties beforeAll() {
13+
try {
14+
webServer = WebServer.newTestWebServer();
15+
16+
Properties properties = new Properties();
17+
properties.setProperty("ADDRESS", webServer.getCallHttpUrl());
18+
properties.setProperty("HOST_PORT", webServer.getHostAndPort());
19+
return properties;
20+
} catch (Exception e) {
21+
throw new RuntimeException("webserver start error", e);
22+
}
23+
}
24+
25+
@Override
26+
public void afterAll() {
27+
webServer = WebServer.cleanup(webServer);
28+
}
29+
}

plugins-it/httpclient4-it/src/test/java/com/navercorp/pinpoint/plugin/httpclient4/CloaeableHttpClientIT.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
2626
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
2727

28+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
2829
import org.apache.http.HttpClientConnection;
2930
import org.apache.http.HttpEntity;
3031
import org.apache.http.HttpRequest;
@@ -55,14 +56,15 @@
5556
@ImportPlugin("com.navercorp.pinpoint:pinpoint-httpclient4-plugin")
5657
@Dependency({"org.apache.httpcomponents:httpclient:[4.3],[4.3.1],[4.3.2],[4.3.3],[4.3.4],[4.3.6],[4.4],[4.4.1],[4.5],[4.5.1],[4.5.2],[4.5.3],[4.5.4],[4.3.5]",
5758
WebServer.VERSION, PluginITConstants.VERSION})
59+
@SharedTestLifeCycleClass(HttpWebServer.class)
5860
public class CloaeableHttpClientIT extends HttpClientITBase {
5961

6062
@Test
6163
public void test() throws Exception {
62-
HttpGet httpget = new HttpGet(getCallUrl());
64+
HttpGet httpget = new HttpGet(getAddress());
6365

6466
try (CloseableHttpClient httpclient = HttpClients.createDefault();
65-
CloseableHttpResponse response = httpclient.execute(httpget)) {
67+
CloseableHttpResponse response = httpclient.execute(httpget)) {
6668

6769
HttpEntity entity = response.getEntity();
6870
EntityUtils.consume(entity);

plugins-it/httpclient4-it/src/test/java/com/navercorp/pinpoint/plugin/httpclient4/ClosableAsyncHttpClientIT.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
2727
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
2828

29+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
2930
import org.apache.http.Consts;
3031
import org.apache.http.HttpResponse;
3132
import org.apache.http.NameValuePair;
@@ -57,6 +58,7 @@
5758
@ImportPlugin("com.navercorp.pinpoint:pinpoint-httpclient4-plugin")
5859
@Dependency({"org.apache.httpcomponents:httpasyncclient:[4.0],[4.0.1],[4.0.2],[4.1],[4.1.1],[4.1.2],[4.1.3]",
5960
WebServer.VERSION, PluginITConstants.VERSION})
61+
@SharedTestLifeCycleClass(HttpWebServer.class)
6062
public class ClosableAsyncHttpClientIT extends HttpClientITBase {
6163

6264
@Test
@@ -65,7 +67,7 @@ public void test() throws Exception {
6567
httpClient.start();
6668

6769
try {
68-
HttpPost httpRequest = new HttpPost(getCallUrl());
70+
HttpPost httpRequest = new HttpPost(getAddress());
6971

7072
List<NameValuePair> params = new ArrayList<>();
7173
params.add(new BasicNameValuePair("param1", "value1"));
@@ -86,7 +88,7 @@ public void test() throws Exception {
8688

8789
verifier.verifyTrace(event("HTTP_CLIENT_4_INTERNAL", CloseableHttpAsyncClient.class.getMethod("execute", HttpUriRequest.class, FutureCallback.class)));
8890
final String destinationId = getHostPort();
89-
final String httpUrl = getCallUrl();
91+
final String httpUrl = getAddress();
9092
verifier.verifyTrace(async(
9193
event("HTTP_CLIENT_4", Class.forName("org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl").getMethod("start"), null, null, destinationId,
9294
annotation("http.url", httpUrl),

plugins-it/httpclient4-it/src/test/java/com/navercorp/pinpoint/plugin/httpclient4/DefaultHttpRequestRetryHandlerModifierIT.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,24 @@
1616

1717
package com.navercorp.pinpoint.plugin.httpclient4;
1818

19-
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.*;
20-
import static org.junit.Assert.*;
21-
22-
import java.io.IOException;
23-
19+
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifier;
20+
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifierHolder;
2421
import com.navercorp.pinpoint.pluginit.utils.AgentPath;
25-
import com.navercorp.pinpoint.pluginit.utils.PluginITConstants;
22+
import com.navercorp.pinpoint.test.plugin.Dependency;
2623
import com.navercorp.pinpoint.test.plugin.ImportPlugin;
2724
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
25+
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
2826
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
2927
import org.apache.http.protocol.BasicHttpContext;
3028
import org.apache.http.protocol.HttpContext;
3129
import org.junit.Test;
3230
import org.junit.runner.RunWith;
3331

34-
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifier;
35-
import com.navercorp.pinpoint.bootstrap.plugin.test.PluginTestVerifierHolder;
36-
import com.navercorp.pinpoint.test.plugin.Dependency;
37-
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
32+
import java.io.IOException;
33+
34+
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.annotation;
35+
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.event;
36+
import static org.junit.Assert.assertTrue;
3837

3938
@RunWith(PinpointPluginTestSuite.class)
4039
@PinpointAgent(AgentPath.PATH)

plugins-it/httpclient4-it/src/test/java/com/navercorp/pinpoint/plugin/httpclient4/HttpClientIT.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
2626
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
2727

28+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
2829
import org.apache.http.HttpClientConnection;
2930
import org.apache.http.HttpRequest;
3031
import org.apache.http.client.HttpClient;
@@ -55,13 +56,14 @@
5556
@ImportPlugin("com.navercorp.pinpoint:pinpoint-httpclient4-plugin")
5657
@Dependency({"org.apache.httpcomponents:httpclient:[4.0],[4.0.1],[4.0.2],[4.0.3],[4.1],[4.1.1],[4.1.2],[4.1.3],[4.2],[4.2.1],[4.2.2],[4.2.3],[4.2.4],[4.2.4],[4.2.6],[4.3.3]",
5758
WebServer.VERSION, PluginITConstants.VERSION})
59+
@SharedTestLifeCycleClass(HttpWebServer.class)
5860
public class HttpClientIT extends HttpClientITBase {
5961

6062
@Test
6163
public void test() throws Exception {
6264
HttpClient httpClient = new DefaultHttpClient();
6365
try {
64-
HttpPost post = new HttpPost(getCallUrl());
66+
HttpPost post = new HttpPost(getAddress());
6567
post.addHeader("Content-Type", "application/json;charset=UTF-8");
6668

6769
ResponseHandler<String> responseHandler = new BasicResponseHandler();

0 commit comments

Comments
 (0)