t5721654 opened a new issue #2268: 
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource Deprecated
URL: https://github.com/apache/incubator-shardingsphere/issues/2268
 
 
   -----------------------------
   public final class XADataSourceFactory {
       
       private static final Map<DatabaseType, String> XA_DRIVER_CLASS_NAMES = 
new HashMap<>(DatabaseType.values().length, 1);
       
       static {
           XA_DRIVER_CLASS_NAMES.put(DatabaseType.H2, 
"org.h2.jdbcx.JdbcDataSource");
           XA_DRIVER_CLASS_NAMES.put(DatabaseType.MySQL, 
"com.mysql.jdbc.jdbc2.optional.MysqlXADataSource");
           XA_DRIVER_CLASS_NAMES.put(DatabaseType.PostgreSQL, 
"org.postgresql.xa.PGXADataSource");
           XA_DRIVER_CLASS_NAMES.put(DatabaseType.Oracle, 
"oracle.jdbc.xa.client.OracleXADataSource");
           XA_DRIVER_CLASS_NAMES.put(DatabaseType.SQLServer, 
"com.microsoft.sqlserver.jdbc.SQLServerXADataSource");
       }
   
   --------------------------------------------
   Mysql - com.mysql.jdbc.jdbc2.optional.MysqlXADataSource  is deprecated in 
latest mysql-connector-java!!   and not any messages shows when convert 
dataSource to transactionDataSource failed! 
   
   -----------------------
   
   public final class XADataSourceConverter implements 
TransactionalDataSourceConverter {
       
       private final XATransactionManager xaTransactionManager = 
XATransactionManagerSPILoader.getInstance().getTransactionManager();
       
       @Override
       public TransactionType getType() {
           return TransactionType.XA;
       }
       
       @Override
       public Map<String, DataSource> convert(final DatabaseType databaseType, 
final Map<String, DataSource> dataSourceMap) {
           Map<String, DataSource> result = new HashMap<>(dataSourceMap.size(), 
1);
           try {
               for (Entry<String, DataSource> entry : dataSourceMap.entrySet()) 
{
                   DataSourceParameter parameter = 
DataSourceSwapperRegistry.getSwapper(entry.getValue().getClass()).swap(entry.getValue());
                   DataSource dataSource = 
xaTransactionManager.wrapDataSource(databaseType, 
XADataSourceFactory.build(databaseType), entry.getKey(), parameter);
                   result.put(entry.getKey(), dataSource);
               }
               return result;
           } catch (final Exception ex) {
               return result;
           }
       }
   } 

----------------------------------------------------------------
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:
[email protected]


With regards,
Apache Git Services

Reply via email to