Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,14 @@ public final class ConnectionProperties {
private final String schema;

private final Properties queryProperties;

/**
* Change catalog.
*
* @param catalog to be changed catalog
* @return connection properties
*/
public ConnectionProperties changeCatalog(final String catalog) {
return new ConnectionProperties(hostname, port, null == catalog ? this.catalog : catalog, schema, queryProperties);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* limitations under the License.
*/

package org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard;
package org.apache.shardingsphere.database.connector.core.jdbcurl.parser;

import com.google.common.base.Splitter;
import com.google.common.base.Strings;
Expand Down Expand Up @@ -67,7 +67,7 @@ public final class StandardJdbcUrlParser {
* @param defaultPort default port
* @return parsed JDBC URL
*/
public StandardJdbcUrl parse(final String jdbcUrl, final int defaultPort) {
public ConnectionProperties parse(final String jdbcUrl, final int defaultPort) {
Matcher matcher = CONNECTION_URL_PATTERN.matcher(jdbcUrl);
ShardingSpherePreconditions.checkState(matcher.matches(), () -> new UnrecognizedDatabaseURLException(jdbcUrl, CONNECTION_URL_PATTERN.pattern().replaceAll("%", "%%")));
String authority = matcher.group(AUTHORITY_GROUP_KEY);
Expand All @@ -76,11 +76,11 @@ public StandardJdbcUrl parse(final String jdbcUrl, final int defaultPort) {
String database = matcher.group(PATH_GROUP_KEY);
String schema = queryProperties.getProperty(SCHEMA_KEY);
if (authority.isEmpty()) {
return new StandardJdbcUrl("", defaultPort, database, schema, queryProperties);
return new ConnectionProperties("", defaultPort, database, schema, queryProperties);
}
Matcher hostMatcher = HOST_PORT_PATTERN_PATTERN.matcher(authority);
ShardingSpherePreconditions.checkState(hostMatcher.find(), () -> new UnrecognizedDatabaseURLException(jdbcUrl, CONNECTION_URL_PATTERN.pattern().replaceAll("%", "%%")));
return new StandardJdbcUrl(parseHostname(hostMatcher), parsePort(hostMatcher, defaultPort), database, schema, queryProperties);
return new ConnectionProperties(parseHostname(hostMatcher), parsePort(hostMatcher, defaultPort), database, schema, queryProperties);
}

private String parseHostname(final Matcher hostMatcher) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* limitations under the License.
*/

package org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard;
package org.apache.shardingsphere.database.connector.core.jdbcurl.parser;

import org.apache.shardingsphere.database.connector.core.exception.UnrecognizedDatabaseURLException;
import org.apache.shardingsphere.infra.util.props.PropertiesBuilder;
Expand All @@ -41,10 +41,10 @@ class StandardJdbcUrlParserTest {
@ArgumentsSource(TestCaseArgumentsProvider.class)
void assertParse(final String name, final String actualURL, final int defaultPort,
final String expectedHostname, final int expectedPort, final String expectedDatabaseName, final String expectedSchemaName, final Properties expectedQueryProps) {
StandardJdbcUrl actual = new StandardJdbcUrlParser().parse(actualURL, defaultPort);
ConnectionProperties actual = new StandardJdbcUrlParser().parse(actualURL, defaultPort);
assertThat(actual.getHostname(), is(expectedHostname));
assertThat(actual.getPort(), is(expectedPort));
assertThat(actual.getDatabase(), is(expectedDatabaseName));
assertThat(actual.getCatalog(), is(expectedDatabaseName));
assertThat(actual.getSchema(), is(expectedSchemaName));
assertThat(actual.getQueryProperties(), is(expectedQueryProps));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionProperties;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionPropertiesParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrlParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.StandardJdbcUrlParser;

import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@

import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionProperties;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionPropertiesParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrl;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrlParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.StandardJdbcUrlParser;

/**
* Connection properties parser of ClickHouse.
Expand All @@ -31,8 +30,7 @@ public final class ClickHouseConnectionPropertiesParser implements ConnectionPro

@Override
public ConnectionProperties parse(final String url, final String username, final String catalog) {
StandardJdbcUrl standardJdbcUrl = new StandardJdbcUrlParser().parse(url, DEFAULT_PORT);
return new ConnectionProperties(standardJdbcUrl.getHostname(), standardJdbcUrl.getPort(), standardJdbcUrl.getDatabase(), standardJdbcUrl.getSchema(), standardJdbcUrl.getQueryProperties());
return new StandardJdbcUrlParser().parse(url, DEFAULT_PORT);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@

import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionProperties;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionPropertiesParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrl;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrlParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.StandardJdbcUrlParser;

/**
* Connection properties parser of MySQL.
Expand All @@ -31,9 +30,7 @@ public final class MySQLConnectionPropertiesParser implements ConnectionProperti

@Override
public ConnectionProperties parse(final String url, final String username, final String catalog) {
StandardJdbcUrl standardJdbcUrl = new StandardJdbcUrlParser().parse(url, DEFAULT_PORT);
return new ConnectionProperties(standardJdbcUrl.getHostname(), standardJdbcUrl.getPort(),
null == catalog ? standardJdbcUrl.getDatabase() : catalog, standardJdbcUrl.getSchema(), standardJdbcUrl.getQueryProperties());
return new StandardJdbcUrlParser().parse(url, DEFAULT_PORT).changeCatalog(catalog);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@

import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionProperties;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionPropertiesParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrl;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrlParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.StandardJdbcUrlParser;

/**
* Connection properties parser of openGauss.
Expand All @@ -31,8 +30,7 @@ public final class OpenGaussConnectionPropertiesParser implements ConnectionProp

@Override
public ConnectionProperties parse(final String url, final String username, final String catalog) {
StandardJdbcUrl standardJdbcUrl = new StandardJdbcUrlParser().parse(url, DEFAULT_PORT);
return new ConnectionProperties(standardJdbcUrl.getHostname(), standardJdbcUrl.getPort(), standardJdbcUrl.getDatabase(), standardJdbcUrl.getSchema(), standardJdbcUrl.getQueryProperties());
return new StandardJdbcUrlParser().parse(url, DEFAULT_PORT);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@

import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionProperties;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionPropertiesParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrl;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrlParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.StandardJdbcUrlParser;

/**
* Connection properties parser of PostgreSQL.
Expand All @@ -31,8 +30,7 @@ public final class PostgreSQLConnectionPropertiesParser implements ConnectionPro

@Override
public ConnectionProperties parse(final String url, final String username, final String catalog) {
StandardJdbcUrl standardJdbcUrl = new StandardJdbcUrlParser().parse(url, DEFAULT_PORT);
return new ConnectionProperties(standardJdbcUrl.getHostname(), standardJdbcUrl.getPort(), standardJdbcUrl.getDatabase(), standardJdbcUrl.getSchema(), standardJdbcUrl.getQueryProperties());
return new StandardJdbcUrlParser().parse(url, DEFAULT_PORT);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@

import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionProperties;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionPropertiesParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrl;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrlParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.StandardJdbcUrlParser;

/**
* Connection properties parser of Presto.
Expand All @@ -31,8 +30,7 @@ public final class PrestoConnectionPropertiesParser implements ConnectionPropert

@Override
public ConnectionProperties parse(final String url, final String username, final String catalog) {
StandardJdbcUrl standardJdbcUrl = new StandardJdbcUrlParser().parse(url, DEFAULT_PORT);
return new ConnectionProperties(standardJdbcUrl.getHostname(), standardJdbcUrl.getPort(), standardJdbcUrl.getDatabase(), standardJdbcUrl.getSchema(), standardJdbcUrl.getQueryProperties());
return new StandardJdbcUrlParser().parse(url, DEFAULT_PORT);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import org.apache.shardingsphere.data.pipeline.api.PipelineDataSourceConfiguration;
import org.apache.shardingsphere.data.pipeline.spi.JdbcQueryPropertiesExtension;
import org.apache.shardingsphere.database.connector.core.jdbcurl.appender.JdbcUrlAppender;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrlParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.StandardJdbcUrlParser;
import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import org.apache.shardingsphere.database.connector.core.type.DatabaseTypeFactory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import org.apache.shardingsphere.data.pipeline.api.PipelineDataSourceConfiguration;
import org.apache.shardingsphere.data.pipeline.spi.JdbcQueryPropertiesExtension;
import org.apache.shardingsphere.database.connector.core.jdbcurl.appender.JdbcUrlAppender;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrlParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.StandardJdbcUrlParser;
import org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import org.apache.shardingsphere.database.connector.core.type.DatabaseTypeFactory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,9 @@

package org.apache.shardingsphere.test.infra.fixture.connector;

import com.google.common.base.Strings;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionProperties;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.ConnectionPropertiesParser;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrl;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.standard.StandardJdbcUrlParser;

import java.util.Properties;
import org.apache.shardingsphere.database.connector.core.jdbcurl.parser.StandardJdbcUrlParser;

/**
* Mocked connection properties parser.
Expand All @@ -32,9 +28,7 @@ public final class MockedConnectionPropertiesParser implements ConnectionPropert

@Override
public ConnectionProperties parse(final String url, final String username, final String catalog) {
StandardJdbcUrl standardJdbcUrl = new StandardJdbcUrlParser().parse(url, -1);
return new ConnectionProperties(
standardJdbcUrl.getHostname(), standardJdbcUrl.getPort(), Strings.isNullOrEmpty(catalog) ? standardJdbcUrl.getDatabase() : catalog, standardJdbcUrl.getSchema(), new Properties());
return new StandardJdbcUrlParser().parse(url, -1).changeCatalog(catalog);
}

@Override
Expand Down