Improve whitespace handling in oracle jdbc url parser (#12512)
This commit is contained in:
parent
e3dc096ac3
commit
ca44975c3b
|
@ -530,10 +530,12 @@ public enum JdbcConnectionUrlParser {
|
||||||
},
|
},
|
||||||
|
|
||||||
ORACLE_AT() {
|
ORACLE_AT() {
|
||||||
|
private final Pattern descriptionPattern = Pattern.compile("@\\s*\\(\\s*description");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@CanIgnoreReturnValue
|
@CanIgnoreReturnValue
|
||||||
DbInfo.Builder doParse(String jdbcUrl, DbInfo.Builder builder) {
|
DbInfo.Builder doParse(String jdbcUrl, DbInfo.Builder builder) {
|
||||||
if (jdbcUrl.contains("@(description")) {
|
if (descriptionPattern.matcher(jdbcUrl).find()) {
|
||||||
return ORACLE_AT_DESCRIPTION.doParse(jdbcUrl, builder);
|
return ORACLE_AT_DESCRIPTION.doParse(jdbcUrl, builder);
|
||||||
}
|
}
|
||||||
String user;
|
String user;
|
||||||
|
@ -565,7 +567,7 @@ public enum JdbcConnectionUrlParser {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This parser can locate incorrect data if multiple addresses are defined but not everything is
|
* This parser can locate incorrect data if multiple addresses are defined but not everything is
|
||||||
* defined in the first block. (It would locate data from subsequent address blocks.
|
* defined in the first block. It would locate data from subsequent address blocks.
|
||||||
*/
|
*/
|
||||||
ORACLE_AT_DESCRIPTION() {
|
ORACLE_AT_DESCRIPTION() {
|
||||||
private final Pattern hostPattern = Pattern.compile("\\(\\s*host\\s*=\\s*([^ )]+)\\s*\\)");
|
private final Pattern hostPattern = Pattern.compile("\\(\\s*host\\s*=\\s*([^ )]+)\\s*\\)");
|
||||||
|
|
|
@ -559,7 +559,7 @@ class JdbcConnectionUrlParserTest {
|
||||||
.setPort(666)
|
.setPort(666)
|
||||||
.setName("orclsn")
|
.setName("orclsn")
|
||||||
.build(),
|
.build(),
|
||||||
arg("jdbc:oracle:thin:@(description = (connect_timeout=90)(retry_count=20)(retry_delay=3) (transport_connect_timeout=3000) (address_list = (load_balance = on) (failover = on) (address = (protocol = tcp)(host = orcl.host1)(port = 1521)) (address = (protocol = tcp)(host = orcl.host2)(port = 1521)) (address = (protocol = tcp)(host = orcl.host3)(port = 1521)) (address = (protocol = tcp)(host = orcl.host4)(port = 1521)) ) (connect_data = (server = dedicated) (service_name = orclsn)))")
|
arg("jdbc:oracle:thin:@ ( description = (connect_timeout=90)(retry_count=20)(retry_delay=3) (transport_connect_timeout=3000) (address_list = (load_balance = on) (failover = on) (address = (protocol = tcp)(host = orcl.host1 )(port = 1521 )) (address = (protocol = tcp)(host = orcl.host2)(port = 1521)) (address = (protocol = tcp)(host = orcl.host3)(port = 1521)) (address = (protocol = tcp)(host = orcl.host4)(port = 1521)) ) (connect_data = (server = dedicated) (service_name = orclsn)))")
|
||||||
.setShortUrl("oracle:thin://orcl.host1:1521")
|
.setShortUrl("oracle:thin://orcl.host1:1521")
|
||||||
.setSystem("oracle")
|
.setSystem("oracle")
|
||||||
.setSubtype("thin")
|
.setSubtype("thin")
|
||||||
|
|
Loading…
Reference in New Issue