Skip to content

Commit 43e96f3

Browse files
committed
[pinpoint-apm#8965] Apply SharedTestLifeCycle to MariaDB
1 parent 49ded0b commit 43e96f3

File tree

8 files changed

+80
-54
lines changed

8 files changed

+80
-54
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.navercorp.pinpoint.plugin.jdbc;
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.containers.MariaDBContainer;
9+
import org.testcontainers.containers.output.OutputFrame;
10+
11+
import java.util.Properties;
12+
import java.util.function.Consumer;
13+
14+
public class MariaDBServer implements SharedTestLifeCycle {
15+
private final Logger logger = LogManager.getLogger(getClass());
16+
private MariaDBContainer mariaDB;
17+
18+
public static final String DATABASE_NAME = "test";
19+
public static final String USERNAME = "root";
20+
public static final String PASSWORD = "";
21+
22+
@Override
23+
public Properties beforeAll() {
24+
Assume.assumeTrue("Docker not enabled", DockerClientFactory.instance().isDockerAvailable());
25+
26+
mariaDB = new MariaDBContainer();
27+
mariaDB.withLogConsumer(new Consumer<OutputFrame>() {
28+
@Override
29+
public void accept(OutputFrame outputFrame) {
30+
logger.info(outputFrame.getUtf8String());
31+
}
32+
});
33+
mariaDB.withDatabaseName(DATABASE_NAME);
34+
mariaDB.withUsername(USERNAME);
35+
mariaDB.withPassword(PASSWORD);
36+
mariaDB.withInitScript("jdbc/mariadb/init.sql");
37+
// mariaDB.withUrlParam("noAccessToProcedureBodies", "true");
38+
mariaDB.start();
39+
40+
int port = mariaDB.getMappedPort(3306);
41+
Properties properties = new Properties();
42+
properties.setProperty("JDBC_URL", mariaDB.getJdbcUrl());
43+
properties.setProperty("URL", mariaDB.getHost() + ":" + port);
44+
45+
return properties;
46+
}
47+
48+
@Override
49+
public void afterAll() {
50+
if (mariaDB != null) {
51+
mariaDB.stop();
52+
}
53+
}
54+
}

plugins-it/mariadb-jdbc-it/src/test/java/com/navercorp/pinpoint/plugin/jdbc/MariaDB_1_3_x_IT.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,23 @@
2323
import com.navercorp.pinpoint.pluginit.jdbc.JDBCDriverClass;
2424
import com.navercorp.pinpoint.pluginit.jdbc.JDBCTestConstants;
2525
import com.navercorp.pinpoint.pluginit.utils.AgentPath;
26-
2726
import com.navercorp.pinpoint.pluginit.utils.TestcontainersOption;
2827
import com.navercorp.pinpoint.test.plugin.Dependency;
2928
import com.navercorp.pinpoint.test.plugin.ImportPlugin;
3029
import com.navercorp.pinpoint.test.plugin.JvmVersion;
3130
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
3231
import com.navercorp.pinpoint.test.plugin.PinpointLogLocationConfig;
3332
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
33+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
3434
import org.junit.Test;
3535
import org.junit.runner.RunWith;
3636

3737
import java.lang.reflect.Method;
3838

39-
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.*;
39+
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.args;
40+
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.cachedArgs;
41+
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.event;
42+
import static com.navercorp.pinpoint.bootstrap.plugin.test.Expectations.sql;
4043

4144
/**
4245
* @author HyunGil Jeong
@@ -48,6 +51,7 @@
4851
@ImportPlugin("com.navercorp.pinpoint:pinpoint-mariadb-jdbc-driver-plugin")
4952
@Dependency({"org.mariadb.jdbc:mariadb-java-client:[1.3.0,1.3.max]",
5053
JDBCTestConstants.VERSION, TestcontainersOption.TEST_CONTAINER, TestcontainersOption.MARIADB})
54+
@SharedTestLifeCycleClass(MariaDBServer.class)
5155
public class MariaDB_1_3_x_IT extends MariaDB_IT_Base {
5256

5357
// see CallableParameterMetaData#queryMetaInfos

plugins-it/mariadb-jdbc-it/src/test/java/com/navercorp/pinpoint/plugin/jdbc/MariaDB_1_4_x_to_1_6_0_IT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
3131
import com.navercorp.pinpoint.test.plugin.PinpointLogLocationConfig;
3232
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
33+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
3334
import org.junit.Test;
3435
import org.junit.runner.RunWith;
3536

@@ -50,6 +51,7 @@
5051
@ImportPlugin("com.navercorp.pinpoint:pinpoint-mariadb-jdbc-driver-plugin")
5152
@Dependency({ "org.mariadb.jdbc:mariadb-java-client:[1.4.min,1.6.min)",
5253
JDBCTestConstants.VERSION, TestcontainersOption.TEST_CONTAINER, TestcontainersOption.MARIADB})
54+
@SharedTestLifeCycleClass(MariaDBServer.class)
5355
public class MariaDB_1_4_x_to_1_6_0_IT extends MariaDB_IT_Base {
5456

5557
// see CallableParameterMetaData#queryMetaInfos

plugins-it/mariadb-jdbc-it/src/test/java/com/navercorp/pinpoint/plugin/jdbc/MariaDB_1_6_x_to_1_8_0_IT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
3131
import com.navercorp.pinpoint.test.plugin.PinpointLogLocationConfig;
3232
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
33+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
3334
import org.junit.Test;
3435
import org.junit.runner.RunWith;
3536

@@ -62,6 +63,7 @@
6263
@ImportPlugin("com.navercorp.pinpoint:pinpoint-mariadb-jdbc-driver-plugin")
6364
@Dependency({ "org.mariadb.jdbc:mariadb-java-client:[1.6.0,1.8.0)",
6465
JDBCTestConstants.VERSION, TestcontainersOption.TEST_CONTAINER, TestcontainersOption.MARIADB})
66+
@SharedTestLifeCycleClass(MariaDBServer.class)
6567
public class MariaDB_1_6_x_to_1_8_0_IT extends MariaDB_IT_Base {
6668

6769
// see CallableParameterMetaData#queryMetaInfos

plugins-it/mariadb-jdbc-it/src/test/java/com/navercorp/pinpoint/plugin/jdbc/MariaDB_1_8_0_to_2_0_0_IT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
3131
import com.navercorp.pinpoint.test.plugin.PinpointLogLocationConfig;
3232
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
33+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
3334
import org.junit.Test;
3435
import org.junit.runner.RunWith;
3536

@@ -57,6 +58,7 @@
5758
@ImportPlugin("com.navercorp.pinpoint:pinpoint-mariadb-jdbc-driver-plugin")
5859
@Dependency({ "org.mariadb.jdbc:mariadb-java-client:[1.8.0,2.min)",
5960
JDBCTestConstants.VERSION, TestcontainersOption.TEST_CONTAINER, TestcontainersOption.MARIADB})
61+
@SharedTestLifeCycleClass(MariaDBServer.class)
6062
public class MariaDB_1_8_0_to_2_0_0_IT extends MariaDB_IT_Base {
6163

6264
// see CallableParameterMetaData#queryMetaInfos

plugins-it/mariadb-jdbc-it/src/test/java/com/navercorp/pinpoint/plugin/jdbc/MariaDB_2_0_1_to_2_4_0_IT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
3232
import com.navercorp.pinpoint.test.plugin.PinpointLogLocationConfig;
3333
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
34+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
3435
import org.junit.Test;
3536
import org.junit.runner.RunWith;
3637

@@ -51,6 +52,7 @@
5152
@ImportPlugin("com.navercorp.pinpoint:pinpoint-mariadb-jdbc-driver-plugin")
5253
@Dependency({ "org.mariadb.jdbc:mariadb-java-client:[2.0.1,2.4.min)",
5354
JDBCTestConstants.VERSION, TestcontainersOption.TEST_CONTAINER, TestcontainersOption.MARIADB})
55+
@SharedTestLifeCycleClass(MariaDBServer.class)
5456
public class MariaDB_2_0_1_to_2_4_0_IT extends MariaDB_IT_Base {
5557

5658
// see CallableParameterMetaData#queryMetaInfos

plugins-it/mariadb-jdbc-it/src/test/java/com/navercorp/pinpoint/plugin/jdbc/MariaDB_2_4_x_IT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.navercorp.pinpoint.test.plugin.PinpointAgent;
3131
import com.navercorp.pinpoint.test.plugin.PinpointLogLocationConfig;
3232
import com.navercorp.pinpoint.test.plugin.PinpointPluginTestSuite;
33+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestLifeCycleClass;
3334
import org.junit.Assert;
3435
import org.junit.Test;
3536
import org.junit.runner.RunWith;
@@ -58,6 +59,7 @@
5859
@Dependency({ "org.mariadb.jdbc:mariadb-java-client:[2.4.0,2.max)",
5960
JDBCTestConstants.VERSION, TestcontainersOption.TEST_CONTAINER, TestcontainersOption.MARIADB})
6061
@ImportPlugin("com.navercorp.pinpoint:pinpoint-mariadb-jdbc-driver-plugin")
62+
@SharedTestLifeCycleClass(MariaDBServer.class)
6163
public class MariaDB_2_4_x_IT extends MariaDB_IT_Base {
6264

6365
// see CallableParameterMetaData#queryMetaInfos

plugins-it/mariadb-jdbc-it/src/test/java/com/navercorp/pinpoint/plugin/jdbc/MariaDB_IT_Base.java

Lines changed: 10 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,11 @@
1919
import com.navercorp.pinpoint.pluginit.jdbc.DriverManagerUtils;
2020
import com.navercorp.pinpoint.pluginit.jdbc.DriverProperties;
2121
import com.navercorp.pinpoint.pluginit.jdbc.JDBCDriverClass;
22-
import com.navercorp.pinpoint.test.plugin.shared.AfterSharedClass;
23-
import com.navercorp.pinpoint.test.plugin.shared.BeforeSharedClass;
24-
22+
import com.navercorp.pinpoint.test.plugin.shared.SharedTestBeforeAllResult;
2523
import org.apache.logging.log4j.LogManager;
2624
import org.apache.logging.log4j.Logger;
2725
import org.junit.After;
28-
import org.junit.Assume;
2926
import org.junit.Before;
30-
import org.testcontainers.DockerClientFactory;
31-
import org.testcontainers.containers.MariaDBContainer;
32-
import org.testcontainers.containers.output.OutputFrame;
3327

3428
import java.sql.CallableStatement;
3529
import java.sql.Connection;
@@ -40,7 +34,7 @@
4034
import java.sql.SQLException;
4135
import java.sql.Statement;
4236
import java.sql.Types;
43-
import java.util.function.Consumer;
37+
import java.util.Properties;
4438

4539
import static org.junit.Assert.assertEquals;
4640
import static org.junit.Assert.fail;
@@ -50,7 +44,7 @@
5044
*/
5145
public abstract class MariaDB_IT_Base {
5246
private static final Logger logger = LogManager.getLogger(MariaDB_IT_Base.class);
53-
protected static final String DATABASE_NAME = "test";
47+
protected static final String DATABASE_NAME = MariaDBServer.DATABASE_NAME;
5448

5549
// for Statement
5650
protected static final String STATEMENT_QUERY = "SELECT count(1) FROM playground";
@@ -66,64 +60,28 @@ public abstract class MariaDB_IT_Base {
6660
protected static final int CALLABLE_STATMENT_OUTPUT_PARAM_TYPE = Types.INTEGER;
6761

6862
protected static DriverProperties driverProperties;
69-
// @Rule
70-
public static MariaDBContainer mariaDB = new MariaDBContainer();
7163

72-
protected static final String USERNAME = "root";
73-
protected static final String PASSWORD = "";
64+
protected static final String USERNAME = MariaDBServer.USERNAME;
65+
protected static final String PASSWORD = MariaDBServer.PASSWORD;
7466

7567
protected static final String DB_TYPE = "MARIADB";
7668
protected static final String DB_EXECUTE_QUERY = "MARIADB_EXECUTE_QUERY";
7769

78-
// ---------- For @BeforeSharedClass, @AfterSharedClass //
79-
// for shared test'
8070
protected static String JDBC_URL;
8171
protected static String URL;
8272

83-
public static String getJdbcUrl() {
73+
public String getJdbcUrl() {
8474
return JDBC_URL;
8575
}
8676

87-
public static void setJdbcUrl(String jdbcUrl) {
88-
JDBC_URL = jdbcUrl;
89-
}
90-
9177
public static String getURL() {
9278
return URL;
9379
}
9480

95-
public static void setURL(String URL) {
96-
MariaDB_IT_Base.URL = URL;
97-
}
98-
// ---------- //
99-
100-
@BeforeSharedClass
101-
public static void sharedSetUp() throws Exception {
102-
Assume.assumeTrue("Docker not enabled", DockerClientFactory.instance().isDockerAvailable());
103-
104-
mariaDB.withLogConsumer(new Consumer<OutputFrame>() {
105-
@Override
106-
public void accept(OutputFrame outputFrame) {
107-
logger.info(outputFrame.getUtf8String());
108-
}
109-
});
110-
mariaDB.withDatabaseName(DATABASE_NAME);
111-
mariaDB.withUsername(USERNAME);
112-
mariaDB.withPassword(PASSWORD);
113-
mariaDB.withInitScript("jdbc/mariadb/init.sql");
114-
// mariaDB.withUrlParam("noAccessToProcedureBodies", "true");
115-
mariaDB.start();
116-
117-
setJdbcUrl(mariaDB.getJdbcUrl());
118-
int port = mariaDB.getMappedPort(3306);
119-
setURL(mariaDB.getHost() + ":" + port);
120-
}
121-
122-
@AfterSharedClass
123-
public static void sharedTearDown() throws Exception {
124-
if (mariaDB != null) {
125-
mariaDB.stop();
126-
}
81+
@SharedTestBeforeAllResult
82+
public static void setBeforeAllResult(Properties beforeAllResult) {
83+
JDBC_URL = beforeAllResult.getProperty("JDBC_URL");
84+
URL = beforeAllResult.getProperty("URL");
12785
}
12886

12987
abstract JDBCDriverClass getJDBCDriverClass();

0 commit comments

Comments
 (0)