Skip to content

Commit 5dc6a14

Browse files
authored
Add support for Intersystems IRIS jdbc driver (#7607)
* Support Intersystems IRIS jdbc driver * use .lenght
1 parent 2cbbb43 commit 5dc6a14

File tree

4 files changed

+23
-0
lines changed

4 files changed

+23
-0
lines changed

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/jdbc/JDBCConnectionUrlParser.java

+14
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,20 @@ DBInfo.Builder doParse(String jdbcUrl, DBInfo.Builder builder) {
781781
}
782782
return GENERIC_URL_LIKE.doParse(url, builder);
783783
}
784+
},
785+
786+
IRIS("iris") {
787+
@Override
788+
DBInfo.Builder doParse(String jdbcUrl, DBInfo.Builder builder) {
789+
String url = jdbcUrl;
790+
int firstSlash = url.indexOf('/', "jdbc://iris:/".length());
791+
int nextSlash = url.indexOf('/', firstSlash + 1);
792+
if (nextSlash > firstSlash) {
793+
// strip the options and preserve only the url like part
794+
url = url.substring(0, nextSlash);
795+
}
796+
return GENERIC_URL_LIKE.doParse(url, builder);
797+
}
784798
};
785799

786800
private static final Map<String, JDBCConnectionUrlParser> typeParsers = new HashMap<>();

dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DefaultConnectionInstrumentation.java

+2
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public class DefaultConnectionInstrumentation extends AbstractConnectionInstrume
4141
"com.sap.db.jdbc.ConnectionSapDB",
4242
// IBM Informix
4343
"com.informix.jdbc.IfmxConnection",
44+
// Intersystems IRIS
45+
"com.intersystems.jdbc.IRISConnection",
4446
// for testing purposes
4547
"test.TestConnection"
4648
};

dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/PreparedStatementInstrumentation.java

+3
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@ public final class PreparedStatementInstrumentation extends AbstractPreparedStat
117117
"software.aws.rds.jdbc.mysql.shading.com.mysql.cj.JdbcCallableStatement",
118118
// IBM Informix
119119
"com.informix.jdbc.IfxPreparedStatement",
120+
// Intersystems IRIS
121+
"com.intersystems.jdbc.IRISPreparedStatement",
122+
"com.intersystems.jdbc.IRISCallableStatement",
120123
// for testing purposes
121124
"test.TestPreparedStatement"
122125
};

dd-java-agent/instrumentation/jdbc/src/test/groovy/JDBCConnectionUrlParserTest.groovy

+4
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,10 @@ class JDBCConnectionUrlParserTest extends AgentTestRunner {
200200

201201
// redshift
202202
"jdbc:redshift://redshift-cluster-1.c7arcolffyvk.us-east-2.redshift.amazonaws.com:5439/dev" | null | "redshift" | null | null | "redshift-cluster-1.c7arcolffyvk.us-east-2.redshift.amazonaws.com" | 5439 | "redshift-cluster-1" | "dev"
203+
// Intersys IRIS
204+
"jdbc:IRIS://dbhostname:1972/namespace" | null | "iris" | null | null | "dbhostname" | 1972 | null | "namespace"
205+
"jdbc:IRIS://dbhostname:1972/namespace/+myjdbc.log" | null | "iris" | null | null | "dbhostname" | 1972 | null | "namespace"
206+
"jdbc:IRIS://dbhostname:1972/namespace/::false" | null | "iris" | null | null | "dbhostname" | 1972 | null | "namespace"
203207

204208
expected = new DBInfo.Builder().type(type).subtype(subtype).user(user).instance(instance).db(db).host(host).port(port).build()
205209
}

0 commit comments

Comments
 (0)