You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/04/18 09:59:18 UTC
[14/19] cayenne git commit: Refactoring PKs - Refactoring
Refactoring PKs - Refactoring
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/b2f80261
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/b2f80261
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/b2f80261
Branch: refs/heads/master
Commit: b2f80261b32667cbf5ccdf9707f40c04994535a3
Parents: dbd75f9
Author: Aleksey Pleshkanev <pr...@hotmail.com>
Authored: Sun Apr 15 20:23:19 2018 +0300
Committer: Aleksey Pleshkanev <pr...@hotmail.com>
Committed: Sun Apr 15 20:23:19 2018 +0300
----------------------------------------------------------------------
.../server/DefaultDbAdapterFactory.java | 12 ++-
.../org/apache/cayenne/dba/db2/DB2Sniffer.java | 16 +---
.../apache/cayenne/dba/derby/DerbySniffer.java | 13 +--
.../cayenne/dba/firebird/FirebirdSniffer.java | 16 +---
.../cayenne/dba/frontbase/FrontBaseSniffer.java | 16 +---
.../org/apache/cayenne/dba/h2/H2Sniffer.java | 15 +---
.../cayenne/dba/hsqldb/HSQLDBSniffer.java | 13 +--
.../cayenne/dba/ingres/IngresSniffer.java | 15 +---
.../apache/cayenne/dba/mysql/MySQLSniffer.java | 11 +--
.../cayenne/dba/openbase/OpenBaseSniffer.java | 16 +---
.../cayenne/dba/oracle/OracleSniffer.java | 13 +--
.../cayenne/dba/postgres/PostgresSniffer.java | 16 +---
.../cayenne/dba/sqlite/SQLiteSniffer.java | 16 +---
.../cayenne/dba/sqlserver/SQLServerSniffer.java | 12 ---
.../cayenne/dba/sybase/SybaseSniffer.java | 22 +----
.../server/DefaultDbAdapterFactoryTest.java | 91 +++++++++++++++++++-
16 files changed, 120 insertions(+), 193 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
index f528ea5..b3d1605 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
@@ -22,6 +22,7 @@ import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.List;
+import java.util.Objects;
import javax.sql.DataSource;
@@ -31,6 +32,7 @@ import org.apache.cayenne.configuration.DataNodeDescriptor;
import org.apache.cayenne.dba.AutoAdapter;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.JdbcAdapter;
+import org.apache.cayenne.dba.PkGenerator;
import org.apache.cayenne.di.AdhocObjectFactory;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.di.Injector;
@@ -39,7 +41,7 @@ import org.apache.cayenne.log.JdbcEventLogger;
/**
* A factory of DbAdapters that either loads user-provided adapter or guesses
* the adapter type from the database metadata.
- *
+ *
* @since 3.1
*/
public class DefaultDbAdapterFactory implements DbAdapterFactory {
@@ -53,6 +55,9 @@ public class DefaultDbAdapterFactory implements DbAdapterFactory {
@Inject
protected AdhocObjectFactory objectFactory;
+ @Inject
+ protected PkGeneratorFactoryProvider pkGeneratorProvider;
+
protected List<DbAdapterDetector> detectors;
public DefaultDbAdapterFactory(@Inject(Constants.SERVER_ADAPTER_DETECTORS_LIST) List<DbAdapterDetector> detectors) {
@@ -79,7 +84,10 @@ public class DefaultDbAdapterFactory implements DbAdapterFactory {
}
if (adapterType != null) {
- return objectFactory.newInstance(DbAdapter.class, adapterType);
+ JdbcAdapter dbAdapter = objectFactory.newInstance(DbAdapter.class, adapterType);
+ PkGenerator pkGenerator = pkGeneratorProvider.get(dbAdapter);
+ dbAdapter.setPkGenerator(pkGenerator);
+ return dbAdapter;
} else {
return new AutoAdapter(() -> detectAdapter(dataSource), jdbcEventLogger);
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2Sniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2Sniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2Sniffer.java
index fc946f8..727b4dd 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2Sniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2Sniffer.java
@@ -38,12 +38,8 @@ public class DB2Sniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
- public DB2Sniffer(@Inject AdhocObjectFactory objectFactory,
- @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
+ public DB2Sniffer(@Inject AdhocObjectFactory objectFactory) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -53,16 +49,8 @@ public class DB2Sniffer implements DbAdapterDetector {
return null;
}
- JdbcAdapter adapter = objectFactory.newInstance(
+ return objectFactory.<JdbcAdapter>newInstance(
DbAdapter.class,
DB2Adapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/derby/DerbySniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/derby/DerbySniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/derby/DerbySniffer.java
index 7370714..a07c2ab 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/derby/DerbySniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/derby/DerbySniffer.java
@@ -40,12 +40,9 @@ public class DerbySniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
public DerbySniffer(@Inject AdhocObjectFactory objectFactory,
@Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -55,16 +52,8 @@ public class DerbySniffer implements DbAdapterDetector {
return null;
}
- JdbcAdapter adapter = objectFactory.newInstance(
+ return objectFactory.<JdbcAdapter>newInstance(
DbAdapter.class,
DerbyAdapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/firebird/FirebirdSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/firebird/FirebirdSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/firebird/FirebirdSniffer.java
index 6c69d94..9e674c2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/firebird/FirebirdSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/firebird/FirebirdSniffer.java
@@ -35,12 +35,8 @@ public class FirebirdSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
- public FirebirdSniffer(@Inject AdhocObjectFactory objectFactory,
- @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
+ public FirebirdSniffer(@Inject AdhocObjectFactory objectFactory) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -50,16 +46,8 @@ public class FirebirdSniffer implements DbAdapterDetector {
return null;
}
- JdbcAdapter adapter = objectFactory.newInstance(
+ return objectFactory.<JdbcAdapter>newInstance(
DbAdapter.class,
FirebirdAdapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseSniffer.java
index 57a10a6..900f5d2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseSniffer.java
@@ -38,12 +38,8 @@ public class FrontBaseSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
- public FrontBaseSniffer(@Inject AdhocObjectFactory objectFactory,
- @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
+ public FrontBaseSniffer(@Inject AdhocObjectFactory objectFactory) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -53,16 +49,8 @@ public class FrontBaseSniffer implements DbAdapterDetector {
return null;
}
- JdbcAdapter adapter = objectFactory.newInstance(
+ return objectFactory.<JdbcAdapter>newInstance(
DbAdapter.class,
FrontBaseAdapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/h2/H2Sniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/h2/H2Sniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/h2/H2Sniffer.java
index bb898d3..1e2204a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/h2/H2Sniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/h2/H2Sniffer.java
@@ -38,12 +38,8 @@ public class H2Sniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
- public H2Sniffer(@Inject AdhocObjectFactory objectFactory,
- @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
+ public H2Sniffer(@Inject AdhocObjectFactory objectFactory) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -53,16 +49,9 @@ public class H2Sniffer implements DbAdapterDetector {
return null;
}
- JdbcAdapter adapter = objectFactory.newInstance(
+ return objectFactory.<JdbcAdapter>newInstance(
DbAdapter.class,
H2Adapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBSniffer.java
index e098407..bb9954e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBSniffer.java
@@ -40,12 +40,9 @@ public class HSQLDBSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
public HSQLDBSniffer(@Inject AdhocObjectFactory objectFactory,
@Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -58,16 +55,8 @@ public class HSQLDBSniffer implements DbAdapterDetector {
boolean supportsSchema = md.getDriverMajorVersion() < 1
|| md.getDriverMajorVersion() == 1 && md.getDriverMinorVersion() <= 8;
- JdbcAdapter adapter = supportsSchema
+ return supportsSchema
? objectFactory.newInstance(DbAdapter.class, HSQLDBAdapter.class.getName())
: objectFactory.newInstance(DbAdapter.class, HSQLDBNoSchemaAdapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSniffer.java
index 267791d..20c0279 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSniffer.java
@@ -40,12 +40,9 @@ public class IngresSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
- public IngresSniffer(@Inject AdhocObjectFactory objectFactory,
- @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
+ public IngresSniffer(@Inject AdhocObjectFactory objectFactory) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -55,16 +52,8 @@ public class IngresSniffer implements DbAdapterDetector {
return null;
}
- JdbcAdapter adapter = objectFactory.newInstance(
+ return objectFactory.<JdbcAdapter>newInstance(
DbAdapter.class,
IngresAdapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSniffer.java
index 72e84b8..c62d9e2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSniffer.java
@@ -41,12 +41,8 @@ public class MySQLSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
- public MySQLSniffer(@Inject AdhocObjectFactory objectFactory,
- @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
+ public MySQLSniffer(@Inject AdhocObjectFactory objectFactory) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -81,11 +77,6 @@ public class MySQLSniffer implements DbAdapterDetector {
MySQLAdapter adapter = objectFactory.newInstance(MySQLAdapter.class, MySQLAdapter.class.getName());
adapter.setStorageEngine(adapterStorageEngine);
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSniffer.java
index 495e195..7f5e2b0 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSniffer.java
@@ -40,12 +40,8 @@ public class OpenBaseSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
- public OpenBaseSniffer(@Inject AdhocObjectFactory objectFactory,
- @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
+ public OpenBaseSniffer(@Inject AdhocObjectFactory objectFactory) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -55,17 +51,9 @@ public class OpenBaseSniffer implements DbAdapterDetector {
return null;
}
- JdbcAdapter adapter = objectFactory.newInstance(
+ return objectFactory.<JdbcAdapter>newInstance(
DbAdapter.class,
OpenBaseAdapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSniffer.java
index be94401..ff5ae37 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSniffer.java
@@ -38,12 +38,9 @@ public class OracleSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
public OracleSniffer(@Inject AdhocObjectFactory objectFactory,
@Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -53,16 +50,8 @@ public class OracleSniffer implements DbAdapterDetector {
return null;
}
- JdbcAdapter adapter = md.getDriverMajorVersion() <= 8
+ return md.getDriverMajorVersion() <= 8
? objectFactory.newInstance(DbAdapter.class, Oracle8Adapter.class.getName())
: objectFactory.newInstance(DbAdapter.class, OracleAdapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSniffer.java
index 66d36f7..b6b6073 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSniffer.java
@@ -38,12 +38,8 @@ public class PostgresSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
- public PostgresSniffer(@Inject AdhocObjectFactory objectFactory,
- @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
+ public PostgresSniffer(@Inject AdhocObjectFactory objectFactory) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -53,16 +49,8 @@ public class PostgresSniffer implements DbAdapterDetector {
return null;
}
- JdbcAdapter adapter = objectFactory.newInstance(
+ return objectFactory.newInstance(
DbAdapter.class,
PostgresAdapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSniffer.java
index 5094122..3a33b64 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSniffer.java
@@ -39,12 +39,8 @@ public class SQLiteSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
- public SQLiteSniffer(@Inject AdhocObjectFactory objectFactory,
- @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
+ public SQLiteSniffer(@Inject AdhocObjectFactory objectFactory) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -54,16 +50,8 @@ public class SQLiteSniffer implements DbAdapterDetector {
return null;
}
- JdbcAdapter adapter = objectFactory.newInstance(
+ return objectFactory.<JdbcAdapter>newInstance(
DbAdapter.class,
SQLiteAdapter.class.getName());
-
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
- return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSniffer.java
index f2b45fd..e00d6a7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSniffer.java
@@ -39,12 +39,9 @@ public class SQLServerSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
public SQLServerSniffer(@Inject AdhocObjectFactory objectFactory,
@Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
@@ -61,24 +58,15 @@ public class SQLServerSniffer implements DbAdapterDetector {
// detect whether generated keys are supported
boolean generatedKeys = false;
- PkGenerator pkGenerator = null;
try {
generatedKeys = md.supportsGetGeneratedKeys();
- if (generatedKeys) {
- pkGenerator = pkGeneratorProvider.get(adapter);
-
- }
} catch (Throwable th) {
// catch exceptions resulting from incomplete JDBC3 implementation
// ** we have to catch Throwable, as unimplemented methods would result in
// "AbstractMethodError".
}
adapter.setSupportsGeneratedKeys(generatedKeys);
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
-
return adapter;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSniffer.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSniffer.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSniffer.java
index 5ad7270..38f0e05 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSniffer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/sybase/SybaseSniffer.java
@@ -40,38 +40,22 @@ public class SybaseSniffer implements DbAdapterDetector {
protected AdhocObjectFactory objectFactory;
- protected PkGeneratorFactoryProvider pkGeneratorProvider;
-
- public SybaseSniffer(@Inject AdhocObjectFactory objectFactory,
- @Inject PkGeneratorFactoryProvider pkGeneratorProvider) {
+ public SybaseSniffer(@Inject AdhocObjectFactory objectFactory) {
this.objectFactory = objectFactory;
- this.pkGeneratorProvider = Objects.requireNonNull(pkGeneratorProvider, "Null pkGeneratorProvider");
}
@Override
public DbAdapter createAdapter(DatabaseMetaData md) throws SQLException {
// JTDS driver returns "sql server" for Sybase, so need to handle it differently
String driver = md.getDriverName();
- JdbcAdapter adapter;
if (driver != null && driver.toLowerCase().startsWith("jtds")) {
String url = md.getURL();
- adapter = url != null && url.toLowerCase().startsWith("jdbc:jtds:sybase:")
+ return url != null && url.toLowerCase().startsWith("jdbc:jtds:sybase:")
? objectFactory.newInstance(DbAdapter.class, SybaseAdapter.class.getName()) : null;
} else {
String dbName = md.getDatabaseProductName();
- adapter = dbName != null && dbName.toUpperCase().contains("ADAPTIVE SERVER")
+ return dbName != null && dbName.toUpperCase().contains("ADAPTIVE SERVER")
? objectFactory.newInstance(DbAdapter.class, SybaseAdapter.class.getName()) : null;
}
-
- if (adapter != null) {
- PkGenerator pkGenerator = pkGeneratorProvider.get(adapter);
-
- if (pkGenerator != null) {
- adapter.setPkGenerator(pkGenerator);
- }
- return adapter;
- } else {
- return null;
- }
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/b2f80261/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactoryTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactoryTest.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactoryTest.java
index 1e80301..6cf2f13 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactoryTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactoryTest.java
@@ -29,7 +29,30 @@ import org.apache.cayenne.configuration.DefaultRuntimeProperties;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.AutoAdapter;
import org.apache.cayenne.dba.DbAdapter;
+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.derby.DerbyAdapter;
+import org.apache.cayenne.dba.derby.DerbyPkGenerator;
+import org.apache.cayenne.dba.frontbase.FrontBaseAdapter;
+import org.apache.cayenne.dba.frontbase.FrontBasePkGenerator;
+import org.apache.cayenne.dba.h2.H2Adapter;
+import org.apache.cayenne.dba.h2.H2PkGenerator;
+import org.apache.cayenne.dba.ingres.IngresAdapter;
+import org.apache.cayenne.dba.ingres.IngresPkGenerator;
+import org.apache.cayenne.dba.mysql.MySQLAdapter;
+import org.apache.cayenne.dba.mysql.MySQLPkGenerator;
+import org.apache.cayenne.dba.openbase.OpenBaseAdapter;
+import org.apache.cayenne.dba.openbase.OpenBasePkGenerator;
+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.postgres.PostgresAdapter;
+import org.apache.cayenne.dba.postgres.PostgresPkGenerator;
+import org.apache.cayenne.dba.sqlserver.SQLServerAdapter;
import org.apache.cayenne.dba.sybase.SybaseAdapter;
+import org.apache.cayenne.dba.sybase.SybasePkGenerator;
import org.apache.cayenne.di.AdhocObjectFactory;
import org.apache.cayenne.di.ClassLoaderManager;
import org.apache.cayenne.di.DIBootstrap;
@@ -78,7 +101,22 @@ public class DefaultDbAdapterFactoryTest {
Module testModule = binder -> {
ServerModule.contributeProperties(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(OpenBaseAdapter.class.getName(), OpenBasePkGenerator.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(PkGenerator.class).to(JdbcPkGenerator.class);
+ binder.bind(PkGeneratorFactoryProvider.class).to(PkGeneratorFactoryProvider.class);
binder.bind(JdbcEventLogger.class).to(Slf4jJdbcEventLogger.class);
binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class);
binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);
@@ -105,7 +143,22 @@ public class DefaultDbAdapterFactoryTest {
ServerModule.contributeDefaultTypes(binder);
ServerModule.contributeUserTypes(binder);
ServerModule.contributeTypeFactories(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(OpenBaseAdapter.class.getName(), OpenBasePkGenerator.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(PkGenerator.class).to(JdbcPkGenerator.class);
+ binder.bind(PkGeneratorFactoryProvider.class).to(PkGeneratorFactoryProvider.class);
binder.bind(JdbcEventLogger.class).to(Slf4jJdbcEventLogger.class);
binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class);
binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);
@@ -142,7 +195,22 @@ public class DefaultDbAdapterFactoryTest {
ServerModule.contributeDefaultTypes(binder);
ServerModule.contributeUserTypes(binder);
ServerModule.contributeTypeFactories(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(OpenBaseAdapter.class.getName(), OpenBasePkGenerator.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(PkGenerator.class).to(JdbcPkGenerator.class);
+ binder.bind(PkGeneratorFactoryProvider.class).to(PkGeneratorFactoryProvider.class);
binder.bind(JdbcEventLogger.class).to(Slf4jJdbcEventLogger.class);
binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class);
binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);
@@ -186,7 +254,22 @@ public class DefaultDbAdapterFactoryTest {
Module testModule = binder -> {
ServerModule.contributeProperties(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(OpenBaseAdapter.class.getName(), OpenBasePkGenerator.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(PkGenerator.class).to(JdbcPkGenerator.class);
+ binder.bind(PkGeneratorFactoryProvider.class).to(PkGeneratorFactoryProvider.class);
binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class);
binder.bind(JdbcEventLogger.class).to(Slf4jJdbcEventLogger.class);
binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);