1111import static org .assertj .core .api .Assertions .assertThat ;
1212
1313import com .google .common .collect .ImmutableMap ;
14+ import com .google .common .collect .Maps ;
1415import com .mchange .v2 .c3p0 .ComboPooledDataSource ;
1516import com .zaxxer .hikari .HikariConfig ;
1617import com .zaxxer .hikari .HikariDataSource ;
@@ -67,42 +68,38 @@ class JdbcInstrumentationTest {
6768 @ RegisterExtension
6869 static final InstrumentationExtension testing = AgentInstrumentationExtension .create ();
6970
70- private static String dbName ;
71- private static String dbNameLower ;
72- private static Map <String , String > jdbcUrls ;
73- private static Map <String , String > jdbcDriverClassNames ;
74- private static Map <String , String > jdbcUserNames ;
75- private static Properties connectionProps ;
71+ @ SuppressWarnings ("deprecation" ) // TODO DbIncubatingAttributes.DB_CONNECTION_STRING deprecation
72+ static final AttributeKey <String > DB_CONNECTION_STRING =
73+ DbIncubatingAttributes .DB_CONNECTION_STRING ;
74+
75+ private static final String dbName = "jdbcUnitTest" ;
76+ private static final String dbNameLower = dbName .toLowerCase (Locale .ROOT );
77+ private static final Map <String , String > jdbcUrls =
78+ ImmutableMap .of (
79+ "h2" , "jdbc:h2:mem:" + dbName ,
80+ "derby" , "jdbc:derby:memory:" + dbName ,
81+ "hsqldb" , "jdbc:hsqldb:mem:" + dbName );
82+ private static final Map <String , String > jdbcDriverClassNames =
83+ ImmutableMap .of (
84+ "h2" , "org.h2.Driver" ,
85+ "derby" , "org.apache.derby.jdbc.EmbeddedDriver" ,
86+ "hsqldb" , "org.hsqldb.jdbc.JDBCDriver" );
87+ private static final Map <String , String > jdbcUserNames = Maps .newHashMap ();
88+ private static final Properties connectionProps = new Properties ();
7689 // JDBC Connection pool name (i.e. HikariCP) -> Map<dbName, Datasource>
77- private static Map <String , Map <String , DataSource >> cpDatasources ;
90+ private static final Map <String , Map <String , DataSource >> cpDatasources = Maps . newHashMap () ;
7891
79- @ BeforeAll
80- static void setUp () {
81- dbName = "jdbcUnitTest" ;
82- dbNameLower = dbName .toLowerCase (Locale .ROOT );
83- jdbcUrls =
84- ImmutableMap .of (
85- "h2" , "jdbc:h2:mem:" + dbName ,
86- "derby" , "jdbc:derby:memory:" + dbName ,
87- "hsqldb" , "jdbc:hsqldb:mem:" + dbName );
88-
89- jdbcDriverClassNames =
90- ImmutableMap .of (
91- "h2" , "org.h2.Driver" ,
92- "derby" , "org.apache.derby.jdbc.EmbeddedDriver" ,
93- "hsqldb" , "org.hsqldb.jdbc.JDBCDriver" );
94-
95- jdbcUserNames = new HashMap <>();
92+ static {
9693 jdbcUserNames .put ("derby" , "APP" );
9794 jdbcUserNames .put ("h2" , null );
9895 jdbcUserNames .put ("hsqldb" , "SA" );
9996
100- connectionProps = new Properties ();
10197 connectionProps .put ("databaseName" , "someDb" );
10298 connectionProps .put ("OPEN_NEW" , "true" ); // So H2 doesn't complain about username/password.
99+ }
103100
104- cpDatasources = new HashMap <>();
105-
101+ @ BeforeAll
102+ static void setUp () {
106103 prepareConnectionPoolDatasources ();
107104 }
108105
@@ -354,6 +351,7 @@ public void testBasicStatement(
354351 String table )
355352 throws SQLException {
356353 Statement statement = connection .createStatement ();
354+ cleanup .deferCleanup (statement );
357355 ResultSet resultSet = testing .runWithSpan ("parent" , () -> statement .executeQuery (query ));
358356
359357 resultSet .next ();
@@ -376,12 +374,10 @@ public void testBasicStatement(
376374 val .satisfiesAnyOf (
377375 v -> assertThat (v ).isEqualTo (username ),
378376 v -> assertThat (v ).isNull ())),
379- equalTo (getDbConnectionStringKey () , url ),
377+ equalTo (DB_CONNECTION_STRING , url ),
380378 equalTo (DbIncubatingAttributes .DB_STATEMENT , sanitizedQuery ),
381379 equalTo (DbIncubatingAttributes .DB_OPERATION , "SELECT" ),
382380 equalTo (DbIncubatingAttributes .DB_SQL_TABLE , table ))));
383- statement .close ();
384- connection .close ();
385381 }
386382
387383 static Stream <Arguments > preparedStatementStream () throws SQLException {
@@ -505,7 +501,7 @@ void testPreparedStatementExecute(
505501 val .satisfiesAnyOf (
506502 v -> assertThat (v ).isEqualTo (username ),
507503 v -> assertThat (v ).isNull ())),
508- equalTo (getDbConnectionStringKey () , url ),
504+ equalTo (DB_CONNECTION_STRING , url ),
509505 equalTo (DbIncubatingAttributes .DB_STATEMENT , sanitizedQuery ),
510506 equalTo (DbIncubatingAttributes .DB_OPERATION , "SELECT" ),
511507 equalTo (DbIncubatingAttributes .DB_SQL_TABLE , table ))));
@@ -550,7 +546,7 @@ void testPreparedStatementQuery(
550546 val .satisfiesAnyOf (
551547 v -> assertThat (v ).isEqualTo (username ),
552548 v -> assertThat (v ).isNull ())),
553- equalTo (getDbConnectionStringKey () , url ),
549+ equalTo (DB_CONNECTION_STRING , url ),
554550 equalTo (DbIncubatingAttributes .DB_STATEMENT , sanitizedQuery ),
555551 equalTo (DbIncubatingAttributes .DB_OPERATION , "SELECT" ),
556552 equalTo (DbIncubatingAttributes .DB_SQL_TABLE , table ))));
@@ -595,7 +591,7 @@ void testPreparedCall(
595591 val .satisfiesAnyOf (
596592 v -> assertThat (v ).isEqualTo (username ),
597593 v -> assertThat (v ).isNull ())),
598- equalTo (getDbConnectionStringKey () , url ),
594+ equalTo (DB_CONNECTION_STRING , url ),
599595 equalTo (DbIncubatingAttributes .DB_STATEMENT , sanitizedQuery ),
600596 equalTo (DbIncubatingAttributes .DB_OPERATION , "SELECT" ),
601597 equalTo (DbIncubatingAttributes .DB_SQL_TABLE , table ))));
@@ -739,7 +735,7 @@ void testStatementUpdate(
739735 val .satisfiesAnyOf (
740736 v -> assertThat (v ).isEqualTo (username ),
741737 v -> assertThat (v ).isNull ())),
742- equalTo (getDbConnectionStringKey () , url ),
738+ equalTo (DB_CONNECTION_STRING , url ),
743739 equalTo (DbIncubatingAttributes .DB_STATEMENT , query ),
744740 equalTo (DbIncubatingAttributes .DB_OPERATION , "CREATE TABLE" ),
745741 equalTo (DbIncubatingAttributes .DB_SQL_TABLE , table ))));
@@ -845,11 +841,12 @@ void testPreparedStatementUpdate(
845841 equalTo (DbIncubatingAttributes .DB_NAME , dbNameLower ),
846842 satisfies (
847843 DbIncubatingAttributes .DB_USER ,
848- val ->
849- val .satisfiesAnyOf (
850- v -> assertThat (v ).isEqualTo (username ),
851- v -> assertThat (v ).isNull ())),
852- equalTo (getDbConnectionStringKey (), url ),
844+ val -> {
845+ if (username != null ) {
846+ val .isEqualTo (username );
847+ }
848+ }),
849+ equalTo (DB_CONNECTION_STRING , url ),
853850 equalTo (DbIncubatingAttributes .DB_STATEMENT , query ),
854851 equalTo (DbIncubatingAttributes .DB_OPERATION , "CREATE TABLE" ),
855852 equalTo (DbIncubatingAttributes .DB_SQL_TABLE , table ))));
@@ -959,11 +956,12 @@ void testConnectionConstructorThrowing(
959956 equalTo (DbIncubatingAttributes .DB_NAME , dbNameLower ),
960957 satisfies (
961958 DbIncubatingAttributes .DB_USER ,
962- val ->
963- val .satisfiesAnyOf (
964- v -> assertThat (v ).isEqualTo (username ),
965- v -> assertThat (v ).isNull ())),
966- equalTo (getDbConnectionStringKey (), url ),
959+ val -> {
960+ if (username != null ) {
961+ val .isEqualTo (username );
962+ }
963+ }),
964+ equalTo (DB_CONNECTION_STRING , url ),
967965 equalTo (DbIncubatingAttributes .DB_STATEMENT , sanitizedQuery ),
968966 equalTo (DbIncubatingAttributes .DB_OPERATION , "SELECT" ),
969967 equalTo (DbIncubatingAttributes .DB_SQL_TABLE , table ))));
@@ -1040,7 +1038,7 @@ void testGetConnection(
10401038 v1 -> assertThat (v1 ).isEqualTo (user ),
10411039 v1 -> assertThat (v1 ).isNull ())),
10421040 equalTo (DbIncubatingAttributes .DB_NAME , "jdbcunittest" ),
1043- equalTo (getDbConnectionStringKey () , connectionString ))));
1041+ equalTo (DB_CONNECTION_STRING , connectionString ))));
10441042 if (recursive ) {
10451043 assertions .add (
10461044 span ->
@@ -1060,17 +1058,12 @@ void testGetConnection(
10601058 v -> assertThat (v ).isEqualTo (user ),
10611059 v -> assertThat (v ).isNull ())),
10621060 equalTo (DbIncubatingAttributes .DB_NAME , "jdbcunittest" ),
1063- equalTo (getDbConnectionStringKey () , connectionString )));
1061+ equalTo (DB_CONNECTION_STRING , connectionString )));
10641062 }
10651063 trace .hasSpansSatisfyingExactly (assertions );
10661064 });
10671065 }
10681066
1069- @ SuppressWarnings ("deprecation" ) // TODO DbIncubatingAttributes.DB_CONNECTION_STRING deprecation
1070- AttributeKey <String > getDbConnectionStringKey () {
1071- return DbIncubatingAttributes .DB_CONNECTION_STRING ;
1072- }
1073-
10741067 @ ParameterizedTest
10751068 @ DisplayName ("test getClientInfo exception" )
10761069 @ ValueSource (strings = "testing 123" )
@@ -1100,7 +1093,7 @@ void testGetClientInfoException(String query) throws SQLException {
11001093 .hasAttributesSatisfying (
11011094 equalTo (DbIncubatingAttributes .DB_SYSTEM , "other_sql" ),
11021095 equalTo (DbIncubatingAttributes .DB_STATEMENT , "testing ?" ),
1103- equalTo (getDbConnectionStringKey () , "testdb://localhost" ),
1096+ equalTo (DB_CONNECTION_STRING , "testdb://localhost" ),
11041097 equalTo (ServerAttributes .SERVER_ADDRESS , "localhost" ))));
11051098 }
11061099
@@ -1182,7 +1175,7 @@ void testProduceProperSpanName(
11821175 .hasAttributesSatisfying (
11831176 equalTo (DbIncubatingAttributes .DB_SYSTEM , "other_sql" ),
11841177 equalTo (DbIncubatingAttributes .DB_NAME , databaseName ),
1185- equalTo (getDbConnectionStringKey () , "testdb://localhost" ),
1178+ equalTo (DB_CONNECTION_STRING , "testdb://localhost" ),
11861179 equalTo (DbIncubatingAttributes .DB_STATEMENT , sanitizedQuery ),
11871180 equalTo (DbIncubatingAttributes .DB_OPERATION , operation ),
11881181 equalTo (DbIncubatingAttributes .DB_SQL_TABLE , table ),
@@ -1232,7 +1225,7 @@ void testConnectionCached(String connectionPoolName) throws SQLException {
12321225 equalTo (DbIncubatingAttributes .DB_SYSTEM , "hsqldb" ),
12331226 equalTo (DbIncubatingAttributes .DB_NAME , dbNameLower ),
12341227 equalTo (DbIncubatingAttributes .DB_USER , "SA" ),
1235- equalTo (getDbConnectionStringKey () , "hsqldb:mem:" ),
1228+ equalTo (DB_CONNECTION_STRING , "hsqldb:mem:" ),
12361229 equalTo (
12371230 DbIncubatingAttributes .DB_STATEMENT ,
12381231 "SELECT ? FROM INFORMATION_SCHEMA.SYSTEM_USERS" ),
@@ -1305,7 +1298,7 @@ void testHandleRecursiveStatements(
13051298 .hasParent (trace .getSpan (0 ))
13061299 .hasAttributesSatisfying (
13071300 equalTo (DbIncubatingAttributes .DB_SYSTEM , "other_sql" ),
1308- equalTo (getDbConnectionStringKey () , "testdb://localhost" ),
1301+ equalTo (DB_CONNECTION_STRING , "testdb://localhost" ),
13091302 equalTo (DbIncubatingAttributes .DB_STATEMENT , "SELECT * FROM table" ),
13101303 equalTo (DbIncubatingAttributes .DB_OPERATION , "SELECT" ),
13111304 equalTo (DbIncubatingAttributes .DB_SQL_TABLE , "table" ),
0 commit comments