terrymanu commented on a change in pull request #2949: 4.0.0-RC2 does not support Oracle 12C connection configuration #2911 URL: https://github.com/apache/incubator-shardingsphere/pull/2949#discussion_r324965814
########## File path: sharding-core/sharding-core-common/src/main/java/org/apache/shardingsphere/core/metadata/datasource/dialect/OracleDataSourceMetaData.java ########## @@ -32,24 +32,30 @@ */ @Getter public final class OracleDataSourceMetaData implements DataSourceMetaData { - + private static final int DEFAULT_PORT = 1521; - + private final String hostName; - + private final int port; - + private final String schemaName; - - private final Pattern pattern = Pattern.compile("jdbc:oracle:(thin|oci|kprb):@(//)?([\\w\\-\\.]+):?([0-9]*)[:/]([\\w\\-]+)", Pattern.CASE_INSENSITIVE); - + private final Pattern pattern = Pattern.compile("jdbc:oracle:(thin|oci|kprb):@(//)?([\\w\\-\\.]+):?([0-9]*)[:/]([\\w\\-\\.]+)", Pattern.CASE_INSENSITIVE); public OracleDataSourceMetaData(final String url) { Matcher matcher = pattern.matcher(url); - if (!matcher.find()) { + if(matcher.find()){ + hostName = matcher.group(3); + port = Strings.isNullOrEmpty(matcher.group(4)) ? DEFAULT_PORT : Integer.valueOf(matcher.group(4)); + schemaName = matcher.group(5); + }else if(url.contains("HOST") && url.contains("PORT") && url.contains("SERVICE_NAME")){ + String tmp = url.substring(url.indexOf("HOST")); + hostName = tmp.substring(5,tmp.indexOf(")")); + tmp = url.substring(url.indexOf("PORT")); + port = Integer.valueOf(tmp.substring(5,tmp.indexOf(")"))); + tmp = url.substring(url.indexOf("SERVICE_NAME")); + schemaName = tmp.substring("SERVICE_NAME".length()+1,tmp.indexOf(")")); + } else{ Review comment: Please use checkstyle to check code format here ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services