You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2011/10/08 18:38:37 UTC
svn commit: r1180406 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src:
main/java/org/apache/cayenne/access/types/
main/java/org/apache/cayenne/configuration/
main/java/org/apache/cayenne/configuration/server/
main/java/org/apache/cayen...
Author: aadamchik
Date: Sat Oct 8 16:38:36 2011
New Revision: 1180406
URL: http://svn.apache.org/viewvc?rev=1180406&view=rev
Log:
CAY-1603 Improve custom ExtendedType registration API
Dzmitry's patch
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/EnumTypeFactory.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/VoidType.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/ToolModule.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2Adapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBNoSchemaAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextExtrasTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/types/ExtendedTypeMapTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactoryTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/EnumTypeFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/EnumTypeFactory.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/EnumTypeFactory.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/EnumTypeFactory.java Sat Oct 8 16:38:36 2011
@@ -26,7 +26,7 @@ import org.apache.cayenne.ExtendedEnumer
*
* @since 3.0
*/
-class EnumTypeFactory implements ExtendedTypeFactory {
+public class EnumTypeFactory implements ExtendedTypeFactory {
@SuppressWarnings("unchecked")
public ExtendedType getType(Class<?> objectClass) {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java Sat Oct 8 16:38:36 2011
@@ -19,9 +19,7 @@
package org.apache.cayenne.access.types;
-import java.util.Calendar;
import java.util.Collection;
-import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -70,42 +68,10 @@ public class ExtendedTypeMap {
this.extendedTypeFactories = new CopyOnWriteArrayList<ExtendedTypeFactory>();
this.internalTypeFactories = new CopyOnWriteArrayList<ExtendedTypeFactory>();
- initDefaultTypes();
initDefaultFactories();
}
/**
- * Registers default extended types. This method is called from constructor.
- */
- protected void initDefaultTypes() {
- registerType(new VoidType());
-
- registerType(new BigDecimalType());
- registerType(new BigIntegerType());
- registerType(new BooleanType());
- registerType(new ByteArrayType(false, true));
- registerType(new ByteType(false));
- registerType(new CharType(false, true));
- registerType(new DateType());
- registerType(new DoubleType());
- registerType(new FloatType());
- registerType(new IntegerType());
- registerType(new LongType());
- registerType(new ShortType(false));
- registerType(new TimeType());
- registerType(new TimestampType());
-
- registerType(new UtilDateType());
-
- // TODO: andrus 9/1/2006 - maybe use ExtendedTypeFactory to handle all calendar
- // subclasses at once
- registerType(new CalendarType<GregorianCalendar>(GregorianCalendar.class));
- registerType(new CalendarType<Calendar>(Calendar.class));
-
- registerType(new UUIDType());
- }
-
- /**
* Registers default factories for creating enum types and serializable types. Note
* that user-defined factories are consulted before any default factory.
*
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/VoidType.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/VoidType.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/VoidType.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/types/VoidType.java Sat Oct 8 16:38:36 2011
@@ -29,7 +29,7 @@ import java.sql.ResultSet;
*
* @since 1.2
*/
-class VoidType implements ExtendedType {
+public class VoidType implements ExtendedType {
public String getClassName() {
return Void.TYPE.getName();
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/ToolModule.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/ToolModule.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/ToolModule.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/ToolModule.java Sat Oct 8 16:38:36 2011
@@ -20,6 +20,7 @@ package org.apache.cayenne.configuration
import org.apache.cayenne.access.jdbc.BatchQueryBuilderFactory;
import org.apache.cayenne.access.jdbc.DefaultBatchQueryBuilderFactory;
+import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.di.AdhocObjectFactory;
import org.apache.cayenne.di.Binder;
import org.apache.cayenne.di.Module;
@@ -38,6 +39,10 @@ public void configure(Binder binder) {
// configure empty global stack properties
binder.bindMap(DefaultRuntimeProperties.PROPERTIES_MAP);
+
+ binder.bindList(JdbcAdapter.DEFAULT_EXTENDED_TYPE_LIST);
+ binder.bindList(JdbcAdapter.USER_EXTENDED_TYPE_LIST);
+ binder.bindList(JdbcAdapter.EXTENDED_TYPE_FACTORY_LIST);
binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);
binder.bind(RuntimeProperties.class).to(DefaultRuntimeProperties.class);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java Sat Oct 8 16:38:36 2011
@@ -18,6 +18,9 @@
****************************************************************/
package org.apache.cayenne.configuration.server;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
import org.apache.cayenne.DataChannel;
import org.apache.cayenne.access.DataDomain;
import org.apache.cayenne.access.DefaultObjectMapRetainStrategy;
@@ -26,6 +29,24 @@ import org.apache.cayenne.access.dbsync.
import org.apache.cayenne.access.dbsync.SkipSchemaUpdateStrategy;
import org.apache.cayenne.access.jdbc.BatchQueryBuilderFactory;
import org.apache.cayenne.access.jdbc.DefaultBatchQueryBuilderFactory;
+import org.apache.cayenne.access.types.BigDecimalType;
+import org.apache.cayenne.access.types.BigIntegerType;
+import org.apache.cayenne.access.types.BooleanType;
+import org.apache.cayenne.access.types.ByteArrayType;
+import org.apache.cayenne.access.types.ByteType;
+import org.apache.cayenne.access.types.CalendarType;
+import org.apache.cayenne.access.types.CharType;
+import org.apache.cayenne.access.types.DateType;
+import org.apache.cayenne.access.types.DoubleType;
+import org.apache.cayenne.access.types.FloatType;
+import org.apache.cayenne.access.types.IntegerType;
+import org.apache.cayenne.access.types.LongType;
+import org.apache.cayenne.access.types.ShortType;
+import org.apache.cayenne.access.types.TimeType;
+import org.apache.cayenne.access.types.TimestampType;
+import org.apache.cayenne.access.types.UUIDType;
+import org.apache.cayenne.access.types.UtilDateType;
+import org.apache.cayenne.access.types.VoidType;
import org.apache.cayenne.ashwood.AshwoodEntitySorter;
import org.apache.cayenne.cache.MapQueryCacheProvider;
import org.apache.cayenne.cache.QueryCache;
@@ -42,6 +63,7 @@ import org.apache.cayenne.configuration.
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.configuration.XMLDataChannelDescriptorLoader;
import org.apache.cayenne.configuration.XMLDataMapLoader;
+import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.dba.db2.DB2Sniffer;
import org.apache.cayenne.dba.derby.DerbySniffer;
import org.apache.cayenne.dba.frontbase.FrontBaseSniffer;
@@ -124,6 +146,31 @@ public class ServerModule implements Mod
// configure an empty filter chain
binder.bindList(DataDomainProvider.FILTERS_LIST);
+
+ // configure extended types
+ binder
+ .bindList(JdbcAdapter.DEFAULT_EXTENDED_TYPE_LIST)
+ .add(new VoidType())
+ .add(new BigDecimalType())
+ .add(new BigIntegerType())
+ .add(new BooleanType())
+ .add(new ByteArrayType(false, true))
+ .add(new ByteType(false))
+ .add(new CharType(false, true))
+ .add(new DateType())
+ .add(new DoubleType())
+ .add(new FloatType())
+ .add(new IntegerType())
+ .add(new LongType())
+ .add(new ShortType(false))
+ .add(new TimeType())
+ .add(new TimestampType())
+ .add(new UtilDateType())
+ .add(new CalendarType<GregorianCalendar>(GregorianCalendar.class))
+ .add(new CalendarType<Calendar>(Calendar.class))
+ .add(new UUIDType());
+ binder.bindList(JdbcAdapter.USER_EXTENDED_TYPE_LIST);
+ binder.bindList(JdbcAdapter.EXTENDED_TYPE_FACTORY_LIST);
// configure explicit configurations
ListBuilder<Object> locationsListBuilder = binder
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java Sat Oct 8 16:38:36 2011
@@ -26,6 +26,7 @@ import java.sql.Types;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.DataNode;
@@ -35,6 +36,7 @@ import org.apache.cayenne.access.jdbc.Jd
import org.apache.cayenne.access.trans.QualifierTranslator;
import org.apache.cayenne.access.trans.QueryAssembler;
import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.di.Inject;
@@ -59,6 +61,10 @@ public class JdbcAdapter implements DbAd
// defines if database uses case-insensitive collation
public final static String CI_PROPERTY = "cayenne.runtime.db.collation.assume.ci";
+
+ public static final String DEFAULT_EXTENDED_TYPE_LIST = "org.apache.cayenne.dba.JdbcAdapter.defaultExtendedTypes";
+ public static final String USER_EXTENDED_TYPE_LIST = "org.apache.cayenne.dba.JdbcAdapter.userExtendedTypes";
+ public static final String EXTENDED_TYPE_FACTORY_LIST = "org.apache.cayenne.dba.JdbcAdapter.extendedTypeFactories";
final static String DEFAULT_IDENTIFIERS_START_QUOTE = "\"";
final static String DEFAULT_IDENTIFIERS_END_QUOTE = "\"";
@@ -74,6 +80,10 @@ public class JdbcAdapter implements DbAd
protected String identifiersStartQuote;
protected String identifiersEndQuote;
+
+ protected List<ExtendedType> defaultExtendedTypes;
+ protected List<ExtendedType> userExtendedTypes;
+ protected List<ExtendedTypeFactory> extendedTypeFactories;
protected ResourceLocator resourceLocator;
protected RuntimeProperties runtimeProperties;
@@ -104,7 +114,15 @@ public class JdbcAdapter implements DbAd
/**
* Creates new JdbcAdapter with a set of default parameters.
*/
- public JdbcAdapter(@Inject RuntimeProperties runtimeProperties) {
+ public JdbcAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+
+ this.defaultExtendedTypes = defaultExtendedTypes;
+ this.userExtendedTypes = userExtendedTypes;
+ this.extendedTypeFactories = extendedTypeFactories;
+
// init defaults
this.setSupportsBatchUpdates(false);
this.setSupportsUniqueConstraints(true);
@@ -117,7 +135,7 @@ public class JdbcAdapter implements DbAd
this.ejbqlTranslatorFactory = createEJBQLTranslatorFactory();
this.typesHandler = TypesHandler.getHandler(findResource("/types.xml"));
this.extendedTypes = new ExtendedTypeMap();
- this.configureExtendedTypes(extendedTypes);
+ this.initExtendedTypes();
initIdentifiersQuotes();
}
@@ -173,6 +191,22 @@ public class JdbcAdapter implements DbAd
protected void configureExtendedTypes(ExtendedTypeMap map) {
// noop... subclasses may override to install custom types
}
+
+ protected void initExtendedTypes() {
+ for (ExtendedType type : defaultExtendedTypes) {
+ extendedTypes.registerType(type);
+ }
+
+ // loading adapter specific extended types
+ configureExtendedTypes(extendedTypes);
+
+ for (ExtendedType type: userExtendedTypes) {
+ extendedTypes.registerType(type);
+ }
+ for (ExtendedTypeFactory typeFactory : extendedTypeFactories) {
+ extendedTypes.addFactory(typeFactory);
+ }
+ }
/**
* Creates and returns a primary key generator. This factory method should be
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java Sat Oct 8 16:38:36 2011
@@ -23,6 +23,7 @@ import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Iterator;
+import java.util.List;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.trans.QualifierTranslator;
@@ -30,6 +31,8 @@ import org.apache.cayenne.access.trans.Q
import org.apache.cayenne.access.types.BooleanType;
import org.apache.cayenne.access.types.ByteArrayType;
import org.apache.cayenne.access.types.CharType;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -57,8 +60,11 @@ import org.apache.cayenne.merge.MergerFa
*/
public class DB2Adapter extends JdbcAdapter {
- public DB2Adapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public DB2Adapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
setSupportsGeneratedKeys(true);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/derby/DerbyAdapter.java Sat Oct 8 16:38:36 2011
@@ -23,12 +23,15 @@ package org.apache.cayenne.dba.derby;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.List;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.trans.QualifierTranslator;
import org.apache.cayenne.access.trans.QueryAssembler;
import org.apache.cayenne.access.types.ByteType;
import org.apache.cayenne.access.types.CharType;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.access.types.ShortType;
import org.apache.cayenne.configuration.RuntimeProperties;
@@ -66,8 +69,11 @@ public class DerbyAdapter extends JdbcAd
static final String FOR_BIT_DATA_SUFFIX = " FOR BIT DATA";
- public DerbyAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public DerbyAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
setSupportsGeneratedKeys(true);
setSupportsBatchUpdates(true);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java Sat Oct 8 16:38:36 2011
@@ -23,9 +23,12 @@ import java.sql.Types;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.DataNode;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -60,8 +63,11 @@ import org.apache.cayenne.query.SQLActio
// what to do about it.
public class FrontBaseAdapter extends JdbcAdapter {
- public FrontBaseAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public FrontBaseAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
setSupportsBatchUpdates(true);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2Adapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2Adapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2Adapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2Adapter.java Sat Oct 8 16:38:36 2011
@@ -19,6 +19,10 @@
package org.apache.cayenne.dba.h2;
+import java.util.List;
+
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.di.Inject;
@@ -29,8 +33,11 @@ import org.apache.cayenne.merge.MergerFa
* @since 3.0
*/
public class H2Adapter extends JdbcAdapter {
- public H2Adapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public H2Adapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
setSupportsGeneratedKeys(true);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapter.java Sat Oct 8 16:38:36 2011
@@ -22,9 +22,12 @@ package org.apache.cayenne.dba.hsqldb;
import java.sql.Types;
import java.util.Collection;
import java.util.Iterator;
+import java.util.List;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.DataNode;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
@@ -51,8 +54,11 @@ import org.apache.cayenne.query.SQLActio
*/
public class HSQLDBAdapter extends JdbcAdapter {
- public HSQLDBAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public HSQLDBAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
}
/**
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBNoSchemaAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBNoSchemaAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBNoSchemaAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBNoSchemaAdapter.java Sat Oct 8 16:38:36 2011
@@ -21,7 +21,10 @@ package org.apache.cayenne.dba.hsqldb;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.map.DbEntity;
@@ -33,8 +36,11 @@ import org.apache.cayenne.map.DbEntity;
*/
public class HSQLDBNoSchemaAdapter extends HSQLDBAdapter {
- public HSQLDBNoSchemaAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public HSQLDBNoSchemaAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
}
/**
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java Sat Oct 8 16:38:36 2011
@@ -20,11 +20,14 @@
package org.apache.cayenne.dba.ingres;
import java.util.Iterator;
+import java.util.List;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.trans.QualifierTranslator;
import org.apache.cayenne.access.trans.QueryAssembler;
import org.apache.cayenne.access.trans.TrimmingQualifierTranslator;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -50,8 +53,11 @@ import org.apache.cayenne.map.DbEntity;
public class IngresAdapter extends JdbcAdapter {
public static final String TRIM_FUNCTION = "TRIM";
- public IngresAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public IngresAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
}
@Override
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java Sat Oct 8 16:38:36 2011
@@ -36,6 +36,8 @@ import org.apache.cayenne.access.trans.Q
import org.apache.cayenne.access.trans.QueryAssembler;
import org.apache.cayenne.access.types.ByteArrayType;
import org.apache.cayenne.access.types.CharType;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -79,8 +81,11 @@ public class MySQLAdapter extends JdbcAd
protected String storageEngine;
protected boolean supportsFkConstraints;
- public MySQLAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public MySQLAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
// init defaults
this.storageEngine = DEFAULT_STORAGE_ENGINE;
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java Sat Oct 8 16:38:36 2011
@@ -24,6 +24,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Types;
import java.util.Iterator;
+import java.util.List;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.DataNode;
@@ -31,6 +32,8 @@ import org.apache.cayenne.access.trans.Q
import org.apache.cayenne.access.trans.QueryAssembler;
import org.apache.cayenne.access.types.ByteType;
import org.apache.cayenne.access.types.CharType;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -62,8 +65,11 @@ import org.apache.cayenne.query.SQLActio
*/
public class OpenBaseAdapter extends JdbcAdapter {
- public OpenBaseAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public OpenBaseAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
// init defaults
this.setSupportsUniqueConstraints(false);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java Sat Oct 8 16:38:36 2011
@@ -21,10 +21,13 @@ package org.apache.cayenne.dba.oracle;
import java.lang.reflect.Method;
import java.net.URL;
+import java.util.List;
import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.QualifierTranslator;
import org.apache.cayenne.access.trans.QueryAssembler;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.query.Query;
@@ -44,8 +47,11 @@ public class Oracle8Adapter extends Orac
initOracle8DriverInformation();
}
- public Oracle8Adapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public Oracle8Adapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
}
private static void initOracle8DriverInformation() {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java Sat Oct 8 16:38:36 2011
@@ -37,6 +37,7 @@ import org.apache.cayenne.access.trans.Q
import org.apache.cayenne.access.types.ByteArrayType;
import org.apache.cayenne.access.types.ByteType;
import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.access.types.ShortType;
import org.apache.cayenne.configuration.RuntimeProperties;
@@ -154,8 +155,11 @@ public class OracleAdapter extends JdbcA
return oracleCursorType;
}
- public OracleAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public OracleAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
// enable batch updates by default
setSupportsBatchUpdates(true);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java Sat Oct 8 16:38:36 2011
@@ -23,12 +23,15 @@ import java.sql.Types;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.QualifierTranslator;
import org.apache.cayenne.access.trans.QueryAssembler;
import org.apache.cayenne.access.types.CharType;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.QuotingStrategy;
@@ -59,8 +62,11 @@ import org.apache.cayenne.query.SQLActio
*/
public class PostgresAdapter extends JdbcAdapter {
- public PostgresAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public PostgresAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
setSupportsBatchUpdates(true);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java Sat Oct 8 16:38:36 2011
@@ -21,8 +21,11 @@ package org.apache.cayenne.dba.sqlite;
import java.util.Calendar;
import java.util.Collection;
import java.util.GregorianCalendar;
+import java.util.List;
import org.apache.cayenne.access.DataNode;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -50,8 +53,11 @@ import org.apache.cayenne.query.SQLActio
// check http://cwiki.apache.org/CAY/sqliteadapter.html for current limitations.
public class SQLiteAdapter extends JdbcAdapter {
- public SQLiteAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public SQLiteAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
this.setSupportsUniqueConstraints(false);
this.setSupportsGeneratedKeys(true);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java Sat Oct 8 16:38:36 2011
@@ -19,9 +19,13 @@
package org.apache.cayenne.dba.sqlserver;
+import java.util.List;
+
import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.QualifierTranslator;
import org.apache.cayenne.access.trans.QueryAssembler;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.sybase.SybaseAdapter;
import org.apache.cayenne.di.Inject;
@@ -79,8 +83,11 @@ public class SQLServerAdapter extends Sy
public static final String TRIM_FUNCTION = "RTRIM";
- public SQLServerAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public SQLServerAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
// TODO: i wonder if Sybase supports generated keys...
// in this case we need to move this to the super.
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/sybase/SybaseAdapter.java Sat Oct 8 16:38:36 2011
@@ -22,11 +22,14 @@ package org.apache.cayenne.dba.sybase;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.List;
import org.apache.cayenne.access.jdbc.EJBQLTranslatorFactory;
import org.apache.cayenne.access.types.ByteArrayType;
import org.apache.cayenne.access.types.ByteType;
import org.apache.cayenne.access.types.CharType;
+import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeFactory;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.access.types.ShortType;
import org.apache.cayenne.configuration.RuntimeProperties;
@@ -43,8 +46,11 @@ public class SybaseAdapter extends JdbcA
final static String MYSQL_QUOTE_SQL_IDENTIFIERS_CHAR_START = "[";
final static String MYSQL_QUOTE_SQL_IDENTIFIERS_CHAR_END = "]";
- public SybaseAdapter(@Inject RuntimeProperties runtimeProperties) {
- super(runtimeProperties);
+ public SybaseAdapter(@Inject RuntimeProperties runtimeProperties,
+ @Inject(DEFAULT_EXTENDED_TYPE_LIST) List<ExtendedType> defaultExtendedTypes,
+ @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> userExtendedTypes,
+ @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> extendedTypeFactories) {
+ super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, extendedTypeFactories);
}
/**
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextExtrasTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextExtrasTest.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextExtrasTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextExtrasTest.java Sat Oct 8 16:38:36 2011
@@ -31,10 +31,10 @@ import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.PersistenceState;
import org.apache.cayenne.Persistent;
-import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.dba.JdbcPkGenerator;
import org.apache.cayenne.dba.PkGenerator;
+import org.apache.cayenne.di.AdhocObjectFactory;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.log.JdbcEventLogger;
import org.apache.cayenne.map.DbAttribute;
@@ -60,7 +60,7 @@ public class DataContextExtrasTest exten
protected JdbcEventLogger logger;
@Inject
- protected RuntimeProperties runtimeProperties;
+ protected AdhocObjectFactory objectFactory;
protected TableHelper tArtist;
protected TableHelper tPainting;
@@ -238,7 +238,10 @@ public class DataContextExtrasTest exten
// setup mockup PK generator that will blow on PK request
// to emulate an exception
- PkGenerator newGenerator = new JdbcPkGenerator(new JdbcAdapter(runtimeProperties)) {
+ JdbcAdapter jdbcAdapter = objectFactory.newInstance(
+ JdbcAdapter.class,
+ JdbcAdapter.class.getName());
+ PkGenerator newGenerator = new JdbcPkGenerator(jdbcAdapter) {
@Override
public Object generatePk(DataNode node, DbAttribute pk) throws Exception {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/types/ExtendedTypeMapTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/types/ExtendedTypeMapTest.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/types/ExtendedTypeMapTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/types/ExtendedTypeMapTest.java Sat Oct 8 16:38:36 2011
@@ -94,7 +94,7 @@ public class ExtendedTypeMapTest extends
}
public void testRegisteredTypeName() throws Exception {
- ExtendedTypeMap map = new TstTypeMap();
+ ExtendedTypeMap map = new ExtendedTypeMap();
ExtendedType tstType = new MockExtendedType();
assertNotNull(map.getRegisteredTypeNames());
@@ -106,12 +106,4 @@ public class ExtendedTypeMapTest extends
assertEquals(1, map.getRegisteredTypeNames().length);
assertEquals(tstType.getClassName(), map.getRegisteredTypeNames()[0]);
}
-
- class TstTypeMap extends ExtendedTypeMap {
-
- @Override
- protected void initDefaultTypes() {
- // noop to avoid any default types
- }
- }
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java Sat Oct 8 16:38:36 2011
@@ -23,8 +23,6 @@ import static org.mockito.Mockito.mock;
import java.util.Collection;
import java.util.Collections;
-import javax.sql.DataSource;
-
import junit.framework.TestCase;
import org.apache.cayenne.ConfigurationException;
@@ -49,7 +47,7 @@ import org.apache.cayenne.configuration.
import org.apache.cayenne.configuration.DefaultRuntimeProperties;
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.configuration.mock.MockDataSourceFactory;
-import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.dba.db2.DB2Sniffer;
import org.apache.cayenne.dba.derby.DerbySniffer;
import org.apache.cayenne.dba.frontbase.FrontBaseSniffer;
@@ -88,8 +86,6 @@ public class DataDomainProviderTest exte
final String testConfigName = "testConfig";
final DataChannelDescriptor testDescriptor = new DataChannelDescriptor();
- final DbAdapter mockAdapter = mock(DbAdapter.class);
-
DataMap map1 = new DataMap("map1");
testDescriptor.getDataMaps().add(map1);
@@ -156,6 +152,12 @@ public class DataDomainProviderTest exte
.add(new MySQLSniffer(objectFactory));
binder.bindList(DataDomainProvider.FILTERS_LIST);
binder.bindList(DataDomainProvider.LOCATIONS_LIST).add(testConfigName);
+
+ // configure extended types
+ binder.bindList(JdbcAdapter.DEFAULT_EXTENDED_TYPE_LIST);
+ binder.bindList(JdbcAdapter.USER_EXTENDED_TYPE_LIST);
+ binder.bindList(JdbcAdapter.EXTENDED_TYPE_FACTORY_LIST);
+
binder.bind(EventManager.class).toInstance(eventManager);
binder.bind(EntitySorter.class).toInstance(new AshwoodEntitySorter());
binder.bind(ResourceLocator.class).toInstance(locator);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactoryTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactoryTest.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactoryTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactoryTest.java Sat Oct 8 16:38:36 2011
@@ -35,6 +35,7 @@ import org.apache.cayenne.configuration.
import org.apache.cayenne.configuration.RuntimeProperties;
import org.apache.cayenne.dba.AutoAdapter;
import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.dba.sybase.SybaseAdapter;
import org.apache.cayenne.di.AdhocObjectFactory;
import org.apache.cayenne.di.Binder;
@@ -97,6 +98,10 @@ public class DefaultDbAdapterFactoryTest
public void configure(Binder binder) {
binder.bindMap(DefaultRuntimeProperties.PROPERTIES_MAP);
+ binder.bindList(JdbcAdapter.DEFAULT_EXTENDED_TYPE_LIST);
+ binder.bindList(JdbcAdapter.USER_EXTENDED_TYPE_LIST);
+ binder.bindList(JdbcAdapter.EXTENDED_TYPE_FACTORY_LIST);
+
binder.bind(JdbcEventLogger.class).to(CommonsJdbcEventLogger.class);
binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);
binder.bind(RuntimeProperties.class).to(DefaultRuntimeProperties.class);
@@ -132,6 +137,10 @@ public class DefaultDbAdapterFactoryTest
public void configure(Binder binder) {
binder.bindMap(DefaultRuntimeProperties.PROPERTIES_MAP);
+ binder.bindList(JdbcAdapter.DEFAULT_EXTENDED_TYPE_LIST);
+ binder.bindList(JdbcAdapter.USER_EXTENDED_TYPE_LIST);
+ binder.bindList(JdbcAdapter.EXTENDED_TYPE_FACTORY_LIST);
+
binder.bind(JdbcEventLogger.class).to(CommonsJdbcEventLogger.class);
binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);
binder.bind(RuntimeProperties.class).to(DefaultRuntimeProperties.class);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java?rev=1180406&r1=1180405&r2=1180406&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java Sat Oct 8 16:38:36 2011
@@ -18,6 +18,9 @@
****************************************************************/
package org.apache.cayenne.unit.di.server;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
import javax.sql.DataSource;
import org.apache.cayenne.ObjectContext;
@@ -26,6 +29,24 @@ import org.apache.cayenne.access.DataNod
import org.apache.cayenne.access.DefaultObjectMapRetainStrategy;
import org.apache.cayenne.access.ObjectMapRetainStrategy;
import org.apache.cayenne.access.jdbc.BatchQueryBuilderFactory;
+import org.apache.cayenne.access.types.BigDecimalType;
+import org.apache.cayenne.access.types.BigIntegerType;
+import org.apache.cayenne.access.types.BooleanType;
+import org.apache.cayenne.access.types.ByteArrayType;
+import org.apache.cayenne.access.types.ByteType;
+import org.apache.cayenne.access.types.CalendarType;
+import org.apache.cayenne.access.types.CharType;
+import org.apache.cayenne.access.types.DateType;
+import org.apache.cayenne.access.types.DoubleType;
+import org.apache.cayenne.access.types.FloatType;
+import org.apache.cayenne.access.types.IntegerType;
+import org.apache.cayenne.access.types.LongType;
+import org.apache.cayenne.access.types.ShortType;
+import org.apache.cayenne.access.types.TimeType;
+import org.apache.cayenne.access.types.TimestampType;
+import org.apache.cayenne.access.types.UUIDType;
+import org.apache.cayenne.access.types.UtilDateType;
+import org.apache.cayenne.access.types.VoidType;
import org.apache.cayenne.configuration.DefaultObjectStoreFactory;
import org.apache.cayenne.configuration.DefaultRuntimeProperties;
import org.apache.cayenne.configuration.ObjectStoreFactory;
@@ -121,6 +142,31 @@ public class ServerCaseModule implements
SQLiteAdapter.class.getName(),
SQLiteUnitDbAdapter.class.getName());
binder.bindMap(DefaultRuntimeProperties.PROPERTIES_MAP);
+
+ // configure extended types
+ binder
+ .bindList(JdbcAdapter.DEFAULT_EXTENDED_TYPE_LIST)
+ .add(new VoidType())
+ .add(new BigDecimalType())
+ .add(new BigIntegerType())
+ .add(new BooleanType())
+ .add(new ByteArrayType(false, true))
+ .add(new ByteType(false))
+ .add(new CharType(false, true))
+ .add(new DateType())
+ .add(new DoubleType())
+ .add(new FloatType())
+ .add(new IntegerType())
+ .add(new LongType())
+ .add(new ShortType(false))
+ .add(new TimeType())
+ .add(new TimestampType())
+ .add(new UtilDateType())
+ .add(new CalendarType<GregorianCalendar>(GregorianCalendar.class))
+ .add(new CalendarType<Calendar>(Calendar.class))
+ .add(new UUIDType());
+ binder.bindList(JdbcAdapter.USER_EXTENDED_TYPE_LIST);
+ binder.bindList(JdbcAdapter.EXTENDED_TYPE_FACTORY_LIST);
binder.bind(SchemaBuilder.class).to(SchemaBuilder.class);
binder.bind(JdbcEventLogger.class).to(CommonsJdbcEventLogger.class);