Skip to content

Commit e787630

Browse files
committed
[pinpoint-apm#8965] Apply SharedTestLifeCycle to HttpWebServer
1 parent 8462707 commit e787630

File tree

7 files changed

+127
-77
lines changed

7 files changed

+127
-77
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/plugins-it-utils/src/main/java/com/navercorp/pinpoint/pluginit/utils/WebServer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import fi.iki.elonen.NanoHTTPD;
2121

22+
import java.io.IOException;
2223
import java.util.List;
2324
import java.util.Map;
2425

@@ -48,7 +49,7 @@ public Response serve(IHTTPSession session) {
4849
}
4950

5051

51-
public static WebServer newTestWebServer() throws Exception {
52+
public static WebServer newTestWebServer() throws IOException {
5253

5354
final int port = SocketUtils.findAvailableTcpPort(21000);
5455
final WebServer webServer = new WebServer(LOCAL_HOST, port);
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.navercorp.pinpoint.plugin.spring.web;
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/spring-it/src/test/java/com/navercorp/pinpoint/plugin/spring/web/RestTemplateIT.java

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,17 @@
2626
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
2727
import com.navercorp.pinpoint.test.plugin.PinpointConfig;
2828
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
29-
import com.navercorp.pinpoint.test.plugin.shared.AfterSharedClass;
30-
import com.navercorp.pinpoint.test.plugin.shared.BeforeSharedClass;
31-
29+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestBeforeAllResult;
30+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
3231
import org.junit.Test;
3332
import org.junit.runner.RunWith;
3433
import org.springframework.http.client.AbstractClientHttpRequest;
3534
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
3635
import org.springframework.http.client.Netty4ClientHttpRequestFactory;
3736
import org.springframework.web.client.RestTemplate;
3837

38+
import java.util.Properties;
39+
3940
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.annotation;
4041
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.event;
4142

@@ -49,32 +50,19 @@
4950
WebServer.VERSION, PluginITConstants.VERSION})
5051
@PinpointConfig("pinpoint-disabled-plugin-test.config")
5152
@ImportPlugin({"com.navercorp.pinpoint:pinpoint-resttemplate-plugin"})
53+
@SharedTestLifeCycleClass(HttpWebServer.class)
5254
public class RestTemplateIT {
5355

54-
private static WebServer webServer;
55-
56-
// ---------- For @BeforeSharedClass, @AfterSharedClass //
57-
private static String CALL_URL;
58-
59-
public static String getCallUrl() {
60-
return CALL_URL;
56+
private static String ADDRESS;
57+
@SharedTestBeforeAllResult
58+
public static void setBeforeAllResult(Properties beforeAllResult) {
59+
ADDRESS = beforeAllResult.getProperty("ADDRESS");
6160
}
6261

63-
public static void setCallUrl(String callUrl) {
64-
CALL_URL = callUrl;
65-
}
66-
// ---------- //
67-
68-
@BeforeSharedClass
69-
public static void sharedSetUp() throws Exception {
70-
webServer = WebServer.newTestWebServer();
71-
setCallUrl(webServer.getCallHttpUrl());
62+
public static String getCallUrl() {
63+
return ADDRESS;
7264
}
7365

74-
@AfterSharedClass
75-
public static void sharedTearDown() throws Exception {
76-
webServer = WebServer.cleanup(webServer);
77-
}
7866

7967
@Test
8068
public void test1() throws Exception {

0 commit comments

Comments
 (0)