This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit acba82e8a59e3fff3ba4afebcb2d9f91136c35ca
Author: Nikita Timofeev <stari...@gmail.com>
AuthorDate: Fri Jul 1 19:19:46 2022 +0300

    CAY-2737 Cayenne 4.3: cleanup deprecated code
---
 .../dbsync/reverse/configuration/ToolsModule.java  | 53 +++++++++++++++++++---
 .../org/apache/cayenne/tools/DbGenerateTask.java   | 28 ++++++++----
 .../org/apache/cayenne/tools/DbGeneratorMojo.java  | 29 ++++++++----
 3 files changed, 85 insertions(+), 25 deletions(-)

diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
index 32d729701..357ed0a27 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
@@ -45,19 +45,39 @@ import 
org.apache.cayenne.configuration.xml.XMLDataMapLoader;
 import org.apache.cayenne.configuration.xml.XMLReaderProvider;
 import org.apache.cayenne.dba.JdbcPkGenerator;
 import org.apache.cayenne.dba.PkGenerator;
+import org.apache.cayenne.dba.db2.DB2Adapter;
+import org.apache.cayenne.dba.db2.DB2PkGenerator;
 import org.apache.cayenne.dba.db2.DB2Sniffer;
+import org.apache.cayenne.dba.derby.DerbyAdapter;
+import org.apache.cayenne.dba.derby.DerbyPkGenerator;
 import org.apache.cayenne.dba.derby.DerbySniffer;
 import org.apache.cayenne.dba.firebird.FirebirdSniffer;
+import org.apache.cayenne.dba.frontbase.FrontBaseAdapter;
+import org.apache.cayenne.dba.frontbase.FrontBasePkGenerator;
 import org.apache.cayenne.dba.frontbase.FrontBaseSniffer;
+import org.apache.cayenne.dba.h2.H2Adapter;
+import org.apache.cayenne.dba.h2.H2PkGenerator;
 import org.apache.cayenne.dba.h2.H2Sniffer;
 import org.apache.cayenne.dba.hsqldb.HSQLDBSniffer;
+import org.apache.cayenne.dba.ingres.IngresAdapter;
+import org.apache.cayenne.dba.ingres.IngresPkGenerator;
 import org.apache.cayenne.dba.ingres.IngresSniffer;
 import org.apache.cayenne.dba.mariadb.MariaDBSniffer;
+import org.apache.cayenne.dba.mysql.MySQLAdapter;
+import org.apache.cayenne.dba.mysql.MySQLPkGenerator;
 import org.apache.cayenne.dba.mysql.MySQLSniffer;
+import org.apache.cayenne.dba.oracle.Oracle8Adapter;
+import org.apache.cayenne.dba.oracle.OracleAdapter;
+import org.apache.cayenne.dba.oracle.OraclePkGenerator;
 import org.apache.cayenne.dba.oracle.OracleSniffer;
+import org.apache.cayenne.dba.postgres.PostgresAdapter;
+import org.apache.cayenne.dba.postgres.PostgresPkGenerator;
 import org.apache.cayenne.dba.postgres.PostgresSniffer;
 import org.apache.cayenne.dba.sqlite.SQLiteSniffer;
+import org.apache.cayenne.dba.sqlserver.SQLServerAdapter;
 import org.apache.cayenne.dba.sqlserver.SQLServerSniffer;
+import org.apache.cayenne.dba.sybase.SybaseAdapter;
+import org.apache.cayenne.dba.sybase.SybasePkGenerator;
 import org.apache.cayenne.dba.sybase.SybaseSniffer;
 import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Binder;
@@ -116,15 +136,36 @@ public class ToolsModule implements Module {
         
binder.bind(BatchTranslatorFactory.class).to(DefaultBatchTranslatorFactory.class);
         binder.bind(JdbcEventLogger.class).to(Slf4jJdbcEventLogger.class);
 
-        
ServerModule.contributeAdapterDetectors(binder).add(FirebirdSniffer.class)
-                
.add(FrontBaseSniffer.class).add(IngresSniffer.class).add(SQLiteSniffer.class).add(DB2Sniffer.class)
-                
.add(H2Sniffer.class).add(HSQLDBSniffer.class).add(SybaseSniffer.class).add(DerbySniffer.class)
-                
.add(SQLServerSniffer.class).add(OracleSniffer.class).add(PostgresSniffer.class)
-                .add(MySQLSniffer.class).add(MariaDBSniffer.class);
+        ServerModule.contributeAdapterDetectors(binder)
+                .add(FirebirdSniffer.class)
+                .add(FrontBaseSniffer.class)
+                .add(IngresSniffer.class)
+                .add(SQLiteSniffer.class)
+                .add(DB2Sniffer.class)
+                .add(H2Sniffer.class)
+                .add(HSQLDBSniffer.class)
+                .add(SybaseSniffer.class)
+                .add(DerbySniffer.class)
+                .add(SQLServerSniffer.class)
+                .add(OracleSniffer.class)
+                .add(PostgresSniffer.class)
+                .add(MySQLSniffer.class)
+                .add(MariaDBSniffer.class);
 
         
binder.bind(PkGeneratorFactoryProvider.class).to(PkGeneratorFactoryProvider.class);
         binder.bind(PkGenerator.class).to(JdbcPkGenerator.class);
-        ServerModule.contributePkGenerators(binder);
+        ServerModule.contributePkGenerators(binder)
+                .put(DB2Adapter.class.getName(), DB2PkGenerator.class)
+                .put(DerbyAdapter.class.getName(), DerbyPkGenerator.class)
+                .put(FrontBaseAdapter.class.getName(), 
FrontBasePkGenerator.class)
+                .put(H2Adapter.class.getName(), H2PkGenerator.class)
+                .put(IngresAdapter.class.getName(), IngresPkGenerator.class)
+                .put(MySQLAdapter.class.getName(), MySQLPkGenerator.class)
+                .put(OracleAdapter.class.getName(), OraclePkGenerator.class)
+                .put(Oracle8Adapter.class.getName(), OraclePkGenerator.class)
+                .put(PostgresAdapter.class.getName(), 
PostgresPkGenerator.class)
+                .put(SQLServerAdapter.class.getName(), SybasePkGenerator.class)
+                .put(SybaseAdapter.class.getName(), SybasePkGenerator.class);
 
         binder.bind(DbAdapterFactory.class).to(DefaultDbAdapterFactory.class);
         binder.bind(DataSourceFactory.class).to(DriverDataSourceFactory.class);
diff --git 
a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbGenerateTask.java
 
b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbGenerateTask.java
index fd1b4cced..2049c01fd 100644
--- 
a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbGenerateTask.java
+++ 
b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbGenerateTask.java
@@ -22,9 +22,14 @@ package org.apache.cayenne.tools;
 import groovy.lang.Closure;
 import org.apache.cayenne.access.DbGenerator;
 import org.apache.cayenne.configuration.DataMapLoader;
+import org.apache.cayenne.configuration.DataNodeDescriptor;
+import org.apache.cayenne.configuration.server.DataSourceFactory;
+import org.apache.cayenne.configuration.server.DbAdapterFactory;
+import org.apache.cayenne.configuration.server.PkGeneratorFactoryProvider;
 import org.apache.cayenne.datasource.DataSourceBuilder;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.JdbcAdapter;
+import org.apache.cayenne.dba.PkGenerator;
 import org.apache.cayenne.dbsync.DbSyncModule;
 import org.apache.cayenne.dbsync.reverse.configuration.ToolsModule;
 import org.apache.cayenne.di.AdhocObjectFactory;
@@ -92,8 +97,10 @@ public class DbGenerateTask extends BaseCayenneTask {
         Injector injector = DIBootstrap.createInjector(new DbSyncModule(), new 
ToolsModule(getLogger()));
 
         try {
-            DbGenerator generator = createGenerator(loadDataMap(injector));
-            generator.runGenerator(createDataSource());
+            DataSource realDataSource = createDataSource();
+            DataMap dataMap = loadDataMap(injector);
+            DbGenerator generator = createGenerator(dataMap, injector, 
realDataSource);
+            generator.runGenerator(realDataSource);
         } catch (Exception ex) {
             Throwable th = Util.unwindException(ex);
             String message = "Error generating database";
@@ -106,8 +113,10 @@ public class DbGenerateTask extends BaseCayenneTask {
         }
     }
 
-    DbGenerator createGenerator(DataMap dataMap) {
-        DbGenerator generator = new DbGenerator(createDbAdapter(), dataMap, 
NoopJdbcEventLogger.getInstance());
+    DbGenerator createGenerator(DataMap dataMap, Injector injector, DataSource 
realDataSource) throws Exception {
+        DbAdapter dbAdapter = createDbAdapter(injector, realDataSource);
+
+        DbGenerator generator = new DbGenerator(dbAdapter, dataMap, 
NoopJdbcEventLogger.getInstance());
         generator.setShouldCreateFKConstraints(createFK);
         generator.setShouldCreatePKSupport(createPK);
         generator.setShouldCreateTables(createTables);
@@ -116,13 +125,12 @@ public class DbGenerateTask extends BaseCayenneTask {
         return generator;
     }
 
-    DbAdapter createDbAdapter() {
-        Injector injector = DIBootstrap.createInjector(new DbSyncModule(), new 
ToolsModule(getLogger()));
-        AdhocObjectFactory objectFactory = 
injector.getInstance(AdhocObjectFactory.class);
+    DbAdapter createDbAdapter(Injector injector, DataSource realDataSource) 
throws Exception {
+        DbAdapterFactory adapterFactory = 
injector.getInstance(DbAdapterFactory.class);
+        DataNodeDescriptor nodeDescriptor = new DataNodeDescriptor();
+        nodeDescriptor.setAdapterType(adapter);
 
-        return (adapter == null)
-                ? objectFactory.newInstance(DbAdapter.class, 
JdbcAdapter.class.getName())
-                : objectFactory.newInstance(DbAdapter.class, adapter);
+        return adapterFactory.createAdapter(nodeDescriptor, realDataSource);
     }
 
     DataSource createDataSource() {
diff --git 
a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbGeneratorMojo.java
 
b/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbGeneratorMojo.java
index 22426e216..8aac55caf 100644
--- 
a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbGeneratorMojo.java
+++ 
b/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbGeneratorMojo.java
@@ -21,6 +21,8 @@ package org.apache.cayenne.tools;
 
 import org.apache.cayenne.access.DbGenerator;
 import org.apache.cayenne.configuration.DataMapLoader;
+import org.apache.cayenne.configuration.DataNodeDescriptor;
+import org.apache.cayenne.configuration.server.DbAdapterFactory;
 import org.apache.cayenne.datasource.DriverDataSource;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.JdbcAdapter;
@@ -46,6 +48,7 @@ import org.apache.maven.plugins.annotations.Parameter;
 
 import java.io.File;
 import java.sql.Driver;
+import javax.sql.DataSource;
 
 /**
  * Maven mojo that generates database schema based on Cayenne mapping.
@@ -126,7 +129,6 @@ public class DbGeneratorMojo extends AbstractMojo {
 
         Injector injector = DIBootstrap.createInjector(new DbSyncModule(), new 
ToolsModule(logger),
                 binder -> binder.bind(ClassLoaderManager.class).toInstance(new 
MavenPluginClassLoaderManager(project)));
-        AdhocObjectFactory objectFactory = 
injector.getInstance(AdhocObjectFactory.class);
 
         logger.info(String.format("connection settings - [driver: %s, url: %s, 
username: %s]",
                 dataSource.getDriver(), dataSource.getUrl(), 
dataSource.getUsername()));
@@ -136,23 +138,23 @@ public class DbGeneratorMojo extends AbstractMojo {
                 dropTables, dropPK, createTables, createPK, createFK));
 
         try {
-            final DbAdapter adapterInst = (adapter == null) ?
-                    objectFactory.newInstance(DbAdapter.class, 
JdbcAdapter.class.getName()) :
-                    objectFactory.newInstance(DbAdapter.class, adapter);
+            // load driver taking custom CLASSPATH into account...
+            DriverDataSource driverDataSource = new DriverDataSource(
+                    (Driver) 
Class.forName(dataSource.getDriver()).getDeclaredConstructor().newInstance(),
+                    dataSource.getUrl(), dataSource.getUsername(), 
dataSource.getPassword()
+            );
+
+            final DbAdapter dbAdapter = createDbAdapter(injector, 
driverDataSource);
 
             // Load the data map and run the db generator.
             DataMap dataMap = loadDataMap(injector);
-            DbGenerator generator = new DbGenerator(adapterInst, dataMap, 
NoopJdbcEventLogger.getInstance());
+            DbGenerator generator = new DbGenerator(dbAdapter, dataMap, 
NoopJdbcEventLogger.getInstance());
             generator.setShouldCreateFKConstraints(createFK);
             generator.setShouldCreatePKSupport(createPK);
             generator.setShouldCreateTables(createTables);
             generator.setShouldDropPKSupport(dropPK);
             generator.setShouldDropTables(dropTables);
 
-            // load driver taking custom CLASSPATH into account...
-            DriverDataSource driverDataSource = new DriverDataSource((Driver) 
Class.forName(dataSource.getDriver()).newInstance(),
-                    dataSource.getUrl(), dataSource.getUsername(), 
dataSource.getPassword());
-
             generator.runGenerator(driverDataSource);
         } catch (Exception ex) {
             Throwable th = Util.unwindException(ex);
@@ -165,6 +167,15 @@ public class DbGeneratorMojo extends AbstractMojo {
         }
     }
 
+    private DbAdapter createDbAdapter(Injector injector, DataSource 
dataSource) throws Exception {
+        DbAdapterFactory adapterFactory = 
injector.getInstance(DbAdapterFactory.class);
+
+        DataNodeDescriptor nodeDescriptor = new DataNodeDescriptor();
+        nodeDescriptor.setAdapterType(adapter);
+
+        return adapterFactory.createAdapter(nodeDescriptor, dataSource);
+    }
+
     /**
      * Loads and returns DataMap based on <code>map</code> attribute.
      */

Reply via email to