You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2022/04/09 10:51:58 UTC
[shardingsphere] branch master updated: Refactor XADataSourceDefinition to impl StatelessTypedSPI (#16697)
This is an automated email from the ASF dual-hosted git repository.
panjuan 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 40b6ea92a07 Refactor XADataSourceDefinition to impl StatelessTypedSPI (#16697)
40b6ea92a07 is described below
commit 40b6ea92a07884d374f50c7b4bcc7afcd7e728c2
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Apr 9 18:51:52 2022 +0800
Refactor XADataSourceDefinition to impl StatelessTypedSPI (#16697)
---
.../jta/datasource/properties/XADataSourceDefinition.java | 4 ++--
.../properties/XADataSourceDefinitionFactory.java | 14 ++++----------
.../properties/dialect/H2XADataSourceDefinition.java | 8 ++++----
.../properties/dialect/MariaDBXADataSourceDefinition.java | 12 ++++++------
.../properties/dialect/MySQLXADataSourceDefinition.java | 8 ++++----
.../dialect/OpenGaussXADataSourceDefinition.java | 8 ++++----
.../properties/dialect/OracleXADataSourceDefinition.java | 8 ++++----
.../dialect/PostgreSQLXADataSourceDefinition.java | 8 ++++----
.../dialect/SQLServerXADataSourceDefinition.java | 8 ++++----
9 files changed, 36 insertions(+), 42 deletions(-)
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/XADataSourceDefinition.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/propert [...]
index c91ae17def8..cc917824d74 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/XADataSourceDefinition.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/XADataSourceDefinition.java
@@ -17,14 +17,14 @@
package org.apache.shardingsphere.transaction.xa.jta.datasource.properties;
-import org.apache.shardingsphere.infra.database.type.DatabaseTypeAwareSPI;
+import org.apache.shardingsphere.spi.type.typed.StatelessTypedSPI;
import java.util.Collection;
/**
* XA data source definition.
*/
-public interface XADataSourceDefinition extends DatabaseTypeAwareSPI {
+public interface XADataSourceDefinition extends StatelessTypedSPI {
/**
* Get XA driver class names.
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/XADataSourceDefinitionFactory.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/ [...]
index 63eb098ae26..d101472e220 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/XADataSourceDefinitionFactory.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/XADataSourceDefinitionFactory.java
@@ -19,12 +19,9 @@ package org.apache.shardingsphere.transaction.xa.jta.datasource.properties;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.ServiceLoader;
+import org.apache.shardingsphere.spi.ShardingSphereServiceLoader;
+import org.apache.shardingsphere.spi.type.typed.TypedSPIRegistry;
/**
* XA data source definition factory.
@@ -32,11 +29,8 @@ import java.util.ServiceLoader;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class XADataSourceDefinitionFactory {
- private static final Map<DatabaseType, XADataSourceDefinition> XA_DATA_SOURCE_DEFINITIONS = new HashMap<>();
-
static {
- ServiceLoader.load(XADataSourceDefinition.class)
- .forEach(each -> XA_DATA_SOURCE_DEFINITIONS.put(DatabaseTypeRegistry.getActualDatabaseType(each.getDatabaseType()), each));
+ ShardingSphereServiceLoader.register(XADataSourceDefinition.class);
}
/**
@@ -46,6 +40,6 @@ public final class XADataSourceDefinitionFactory {
* @return XA data source definition
*/
public static XADataSourceDefinition getXADataSourceDefinition(final DatabaseType databaseType) {
- return XA_DATA_SOURCE_DEFINITIONS.get(databaseType);
+ return TypedSPIRegistry.getRegisteredService(XADataSourceDefinition.class, databaseType.getName());
}
}
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/H2XADataSourceDefinition.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasour [...]
index e83195ef0fb..9402c85c963 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/H2XADataSourceDefinition.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/H2XADataSourceDefinition.java
@@ -28,12 +28,12 @@ import java.util.Collections;
public final class H2XADataSourceDefinition implements XADataSourceDefinition {
@Override
- public String getDatabaseType() {
- return "H2";
+ public Collection<String> getXADriverClassName() {
+ return Collections.singletonList("org.h2.jdbcx.JdbcDataSource");
}
@Override
- public Collection<String> getXADriverClassName() {
- return Collections.singletonList("org.h2.jdbcx.JdbcDataSource");
+ public String getType() {
+ return "H2";
}
}
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/MariaDBXADataSourceDefinition.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/dat [...]
index 1efc4a5eb67..8779b7d1a4e 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/MariaDBXADataSourceDefinition.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/MariaDBXADataSourceDefinition.java
@@ -26,14 +26,14 @@ import java.util.Collections;
* XA data source definition for MariaDB.
*/
public final class MariaDBXADataSourceDefinition implements XADataSourceDefinition {
-
- @Override
- public String getDatabaseType() {
- return "MariaDB";
- }
-
+
@Override
public Collection<String> getXADriverClassName() {
return Collections.singletonList("org.mariadb.jdbc.MariaDbDataSource");
}
+
+ @Override
+ public String getType() {
+ return "MariaDB";
+ }
}
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/MySQLXADataSourceDefinition.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datas [...]
index 602af8d2753..a714f741563 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/MySQLXADataSourceDefinition.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/MySQLXADataSourceDefinition.java
@@ -28,12 +28,12 @@ import java.util.Collection;
public final class MySQLXADataSourceDefinition implements XADataSourceDefinition {
@Override
- public String getDatabaseType() {
- return "MySQL";
+ public Collection<String> getXADriverClassName() {
+ return Arrays.asList("com.mysql.jdbc.jdbc2.optional.MysqlXADataSource", "com.mysql.cj.jdbc.MysqlXADataSource");
}
@Override
- public Collection<String> getXADriverClassName() {
- return Arrays.asList("com.mysql.jdbc.jdbc2.optional.MysqlXADataSource", "com.mysql.cj.jdbc.MysqlXADataSource");
+ public String getType() {
+ return "MySQL";
}
}
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/OpenGaussXADataSourceDefinition.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/d [...]
index 73372f1848f..ce32f73a7bd 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/OpenGaussXADataSourceDefinition.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/OpenGaussXADataSourceDefinition.java
@@ -28,12 +28,12 @@ import java.util.Collections;
public final class OpenGaussXADataSourceDefinition implements XADataSourceDefinition {
@Override
- public String getDatabaseType() {
- return "openGauss";
+ public Collection<String> getXADriverClassName() {
+ return Collections.singletonList("org.opengauss.xa.PGXADataSource");
}
@Override
- public Collection<String> getXADriverClassName() {
- return Collections.singletonList("org.opengauss.xa.PGXADataSource");
+ public String getType() {
+ return "openGauss";
}
}
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/OracleXADataSourceDefinition.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/data [...]
index 7855e9b138c..2d35ae64928 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/OracleXADataSourceDefinition.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/OracleXADataSourceDefinition.java
@@ -28,12 +28,12 @@ import java.util.Collections;
public final class OracleXADataSourceDefinition implements XADataSourceDefinition {
@Override
- public String getDatabaseType() {
- return "Oracle";
+ public Collection<String> getXADriverClassName() {
+ return Collections.singletonList("oracle.jdbc.xa.client.OracleXADataSource");
}
@Override
- public Collection<String> getXADriverClassName() {
- return Collections.singletonList("oracle.jdbc.xa.client.OracleXADataSource");
+ public String getType() {
+ return "Oracle";
}
}
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/PostgreSQLXADataSourceDefinition.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/ [...]
index 52d24135570..dea5080ccef 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/PostgreSQLXADataSourceDefinition.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/PostgreSQLXADataSourceDefinition.java
@@ -28,12 +28,12 @@ import java.util.Collections;
public final class PostgreSQLXADataSourceDefinition implements XADataSourceDefinition {
@Override
- public String getDatabaseType() {
- return "PostgreSQL";
+ public Collection<String> getXADriverClassName() {
+ return Collections.singletonList("org.postgresql.xa.PGXADataSource");
}
@Override
- public Collection<String> getXADriverClassName() {
- return Collections.singletonList("org.postgresql.xa.PGXADataSource");
+ public String getType() {
+ return "PostgreSQL";
}
}
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/SQLServerXADataSourceDefinition.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/d [...]
index 4474b3f4802..675de1f196e 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/SQLServerXADataSourceDefinition.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-type/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/properties/dialect/SQLServerXADataSourceDefinition.java
@@ -28,13 +28,13 @@ import java.util.Collections;
public final class SQLServerXADataSourceDefinition implements XADataSourceDefinition {
@Override
- public String getDatabaseType() {
- return "SQLServer";
+ public Collection<String> getXADriverClassName() {
+ return Collections.singletonList("com.microsoft.sqlserver.jdbc.SQLServerXADataSource");
}
@Override
- public Collection<String> getXADriverClassName() {
- return Collections.singletonList("com.microsoft.sqlserver.jdbc.SQLServerXADataSource");
+ public String getType() {
+ return "SQLServer";
}
}