You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by do...@apache.org on 2021/02/05 05:33:34 UTC
[shardingsphere] branch master updated: Rename
EmbeddedDatabaseResource to EmbeddedDatabase (#9339)
This is an automated email from the ASF dual-hosted git repository.
dongzonglei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new fb83702 Rename EmbeddedDatabaseResource to EmbeddedDatabase (#9339)
fb83702 is described below
commit fb83702945ce39679276efb4df37eb9e5fa98fb6
Author: Liang Zhang <te...@163.com>
AuthorDate: Fri Feb 5 13:33:07 2021 +0800
Rename EmbeddedDatabaseResource to EmbeddedDatabase (#9339)
* Remove useless codes
* Add EmbeddedDatabaseResourceFactory
* Rename EmbeddedDatabase
---
.../test/integration/env/EnvironmentPath.java | 2 +-
.../env/IntegrationTestEnvironment.java | 4 +-
.../env/database/DatabaseEnvironmentManager.java | 59 +++++++---------------
.../EmbeddedDatabase.java} | 10 ++--
.../EmbeddedDatabaseDistributionProperties.java | 2 +-
.../database/embedded/EmbeddedDatabaseFactory.java | 46 +++++++++++++++++
.../type/MySQLEmbeddedDatabase.java} | 10 ++--
7 files changed, 77 insertions(+), 56 deletions(-)
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/EnvironmentPath.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/EnvironmentPath.java
index 540a1b2..32fe23b 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/EnvironmentPath.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/EnvironmentPath.java
@@ -42,7 +42,7 @@ public final class EnvironmentPath {
private static final String RULES_CONFIG_FILE = "rules.yaml";
private static final String AUTHORITY_FILE = "authority.xml";
-
+
/**
* Assert scenario directory existed.
*
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/IntegrationTestEnvironment.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/IntegrationTestEnvironment.java
index db1835d..430c50b 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/IntegrationTestEnvironment.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/IntegrationTestEnvironment.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.test.integration.env.database.DatabaseEnvironmentManager;
-import org.apache.shardingsphere.test.integration.env.database.EmbeddedDatabaseDistributionProperties;
+import org.apache.shardingsphere.test.integration.env.database.embedded.EmbeddedDatabaseDistributionProperties;
import org.apache.shardingsphere.test.integration.env.datasource.DataSourceEnvironment;
import org.apache.shardingsphere.test.integration.env.props.DatabaseScenarioProperties;
import org.apache.shardingsphere.test.integration.env.props.EnvironmentProperties;
@@ -139,7 +139,7 @@ public final class IntegrationTestEnvironment {
private void createEmbeddedDatabases(final DatabaseType databaseType,
final Map<String, DataSourceEnvironment> dataSourceEnvs, final EmbeddedDatabaseDistributionProperties embeddedDatabaseProps) {
for (Entry<String, DataSourceEnvironment> entry : dataSourceEnvs.entrySet()) {
- DatabaseEnvironmentManager.createEmbeddedDatabaseResource(databaseType, entry.getKey(), embeddedDatabaseProps, entry.getValue().getPort());
+ DatabaseEnvironmentManager.createEmbeddedDatabase(databaseType, entry.getKey(), embeddedDatabaseProps, entry.getValue().getPort());
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/DatabaseEnvironmentManager.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/DatabaseEnvironmentManager.java
index c57cdea..bcccc91 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/DatabaseEnvironmentManager.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/DatabaseEnvironmentManager.java
@@ -21,10 +21,11 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
-import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.test.integration.env.EnvironmentPath;
import org.apache.shardingsphere.test.integration.env.IntegrationTestEnvironment;
-import org.apache.shardingsphere.test.integration.env.database.type.MySQLEmbeddedDatabaseResource;
+import org.apache.shardingsphere.test.integration.env.database.embedded.EmbeddedDatabaseDistributionProperties;
+import org.apache.shardingsphere.test.integration.env.database.embedded.EmbeddedDatabase;
+import org.apache.shardingsphere.test.integration.env.database.embedded.EmbeddedDatabaseFactory;
import org.apache.shardingsphere.test.integration.env.datasource.builder.ActualDataSourceBuilder;
import org.h2.tools.RunScript;
@@ -37,18 +38,18 @@ import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;
+import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
- * Schema environment manager.
+ * Database environment manager.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class DatabaseEnvironmentManager {
- private static final ConcurrentMap<String, EmbeddedDatabaseResource> DATABASE_RESOURCE_CACHE = new ConcurrentHashMap<>();
+ private static final Map<String, EmbeddedDatabase> EMBEDDED_DATABASES_CACHE = new ConcurrentHashMap<>();
private static final Lock DATABASE_RESOURCE_LOCK = new ReentrantLock();
@@ -114,56 +115,30 @@ public final class DatabaseEnvironmentManager {
}
/**
- * Create embedded database resource.
+ * Create embedded database.
*
* @param databaseType database type
* @param scenario scenario
* @param embeddedDatabaseProps embedded database distribution properties
* @param port port
*/
- public static void createEmbeddedDatabaseResource(final DatabaseType databaseType, final String scenario, final EmbeddedDatabaseDistributionProperties embeddedDatabaseProps, final int port) {
- if (null == databaseType) {
- return;
- }
- String databaseTypeName = databaseType.getName();
- String embeddedDatabaseResourceKey = String.join("_", databaseTypeName, scenario);
- EmbeddedDatabaseResource embeddedDatabaseResource = DATABASE_RESOURCE_CACHE.get(embeddedDatabaseResourceKey);
- if (null != embeddedDatabaseResource) {
+ public static void createEmbeddedDatabase(final DatabaseType databaseType, final String scenario, final EmbeddedDatabaseDistributionProperties embeddedDatabaseProps, final int port) {
+ String embeddedDatabaseKey = String.join("_", databaseType.getName(), scenario);
+ EmbeddedDatabase embeddedDatabase = EMBEDDED_DATABASES_CACHE.get(embeddedDatabaseKey);
+ if (null != embeddedDatabase) {
return;
}
+ DATABASE_RESOURCE_LOCK.lock();
try {
- DATABASE_RESOURCE_LOCK.lock();
- embeddedDatabaseResource = DATABASE_RESOURCE_CACHE.get(embeddedDatabaseResourceKey);
- if (null != embeddedDatabaseResource) {
+ embeddedDatabase = EMBEDDED_DATABASES_CACHE.get(embeddedDatabaseKey);
+ if (null != embeddedDatabase) {
return;
}
- if (databaseType instanceof MySQLDatabaseType) {
- embeddedDatabaseResource = new MySQLEmbeddedDatabaseResource(embeddedDatabaseProps, port);
- } else {
- // TODO return default database resource
- embeddedDatabaseResource = new EmbeddedDatabaseResource() {
-
- @Override
- public void start() {
- }
-
- @Override
- public void stop() {
- }
- };
- }
- embeddedDatabaseResource.start();
- DATABASE_RESOURCE_CACHE.put(embeddedDatabaseResourceKey, embeddedDatabaseResource);
+ embeddedDatabase = EmbeddedDatabaseFactory.newInstance(databaseType, embeddedDatabaseProps, port);
+ embeddedDatabase.start();
+ EMBEDDED_DATABASES_CACHE.put(embeddedDatabaseKey, embeddedDatabase);
} finally {
DATABASE_RESOURCE_LOCK.unlock();
}
}
-
- /**
- * Drop embedded database resource.
- */
- public static void dropEmbeddedDatabaseResource() {
- DATABASE_RESOURCE_CACHE.values().forEach(EmbeddedDatabaseResource::stop);
- DATABASE_RESOURCE_CACHE.clear();
- }
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/EmbeddedDatabaseResource.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/EmbeddedDatabase.java
similarity index 80%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/EmbeddedDatabaseResource.java
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/EmbeddedDatabase.java
index e01cfb7..50d645b 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/EmbeddedDatabaseResource.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/EmbeddedDatabase.java
@@ -15,20 +15,20 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.integration.env.database;
+package org.apache.shardingsphere.test.integration.env.database.embedded;
/**
- * Embedded database resource.
+ * Embedded database.
*/
-public interface EmbeddedDatabaseResource {
+public interface EmbeddedDatabase {
/**
- * Start embedded database resource.
+ * Start embedded database.
*/
void start();
/**
- * Stop embedded database resource.
+ * Stop embedded database.
*/
void stop();
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/EmbeddedDatabaseDistributionProperties.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/EmbeddedDatabaseDistributionProperties.java
similarity index 96%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/EmbeddedDatabaseDistributionProperties.java
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/EmbeddedDatabaseDistributionProperties.java
index 07299df..5980210 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/EmbeddedDatabaseDistributionProperties.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/EmbeddedDatabaseDistributionProperties.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.integration.env.database;
+package org.apache.shardingsphere.test.integration.env.database.embedded;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/EmbeddedDatabaseFactory.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/EmbeddedDatabaseFactory.java
new file mode 100644
index 0000000..a9face2
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/EmbeddedDatabaseFactory.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.test.integration.env.database.embedded;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
+import org.apache.shardingsphere.test.integration.env.database.embedded.type.MySQLEmbeddedDatabase;
+
+/**
+ * Embedded database factory.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class EmbeddedDatabaseFactory {
+
+ /**
+ * Create new instance of embedded database.
+ *
+ * @param databaseType database type
+ * @param embeddedDatabaseProps embedded database properties
+ * @param port database access port
+ * @return instance of embedded database
+ */
+ public static EmbeddedDatabase newInstance(final DatabaseType databaseType, final EmbeddedDatabaseDistributionProperties embeddedDatabaseProps, final int port) {
+ if (databaseType instanceof MySQLDatabaseType) {
+ return new MySQLEmbeddedDatabase(embeddedDatabaseProps, port);
+ }
+ throw new UnsupportedOperationException(String.format("Unsupported embedded database type: `%s`", databaseType.getName()));
+ }
+}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/type/MySQLEmbeddedDatabaseResource.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/type/MySQLEmbeddedDatabase.java
similarity index 88%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/type/MySQLEmbeddedDatabaseResource.java
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/type/MySQLEmbeddedDatabase.java
index af59375..a256dcb 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/type/MySQLEmbeddedDatabaseResource.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/env/database/embedded/type/MySQLEmbeddedDatabase.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.integration.env.database.type;
+package org.apache.shardingsphere.test.integration.env.database.embedded.type;
import com.wix.mysql.EmbeddedMysql;
import com.wix.mysql.config.Charset;
@@ -25,16 +25,16 @@ import com.wix.mysql.distribution.Version;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
-import org.apache.shardingsphere.test.integration.env.database.EmbeddedDatabaseDistributionProperties;
-import org.apache.shardingsphere.test.integration.env.database.EmbeddedDatabaseResource;
+import org.apache.shardingsphere.test.integration.env.database.embedded.EmbeddedDatabaseDistributionProperties;
+import org.apache.shardingsphere.test.integration.env.database.embedded.EmbeddedDatabase;
import java.io.File;
/**
- * Embedded database resource for MySQL.
+ * Embedded database for MySQL.
*/
@RequiredArgsConstructor
-public final class MySQLEmbeddedDatabaseResource implements EmbeddedDatabaseResource {
+public final class MySQLEmbeddedDatabase implements EmbeddedDatabase {
private final EmbeddedDatabaseDistributionProperties embeddedDatabaseProps;