Repository: cayenne Updated Branches: refs/heads/master 22f6bd256 -> 1ace4e728
CAY-2165 Explicit "contribution" API for easier expansion of DI collections and maps * exposing all collections from ServerModule Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/50bee840 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/50bee840 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/50bee840 Branch: refs/heads/master Commit: 50bee8408d9cd5d8cc0f82448488c1a322c56f6f Parents: 22f6bd2 Author: Andrus Adamchik <and...@objectstyle.com> Authored: Sun Dec 11 14:49:30 2016 +0300 Committer: Andrus Adamchik <and...@objectstyle.com> Committed: Sun Dec 11 15:36:48 2016 +0300 ---------------------------------------------------------------------- .../configuration/rop/client/ClientModule.java | 3 +- .../cayenne/java8/CayenneJava8Module.java | 3 +- .../apache/cayenne/joda/CayenneJodaModule.java | 3 +- .../postcommit/PostCommitModuleBuilder.java | 14 ++- .../apache/cayenne/configuration/Constants.java | 12 +++ .../configuration/server/ServerModule.java | 100 +++++++++++++++---- .../server/ServerRuntimeBuilder.java | 16 +-- .../server/DataDomainProviderTest.java | 14 +-- .../server/DefaultDbAdapterFactoryTest.java | 20 ++-- .../unit/di/server/ServerCaseModule.java | 8 +- .../tools/configuration/ToolsModule.java | 10 +- 11 files changed, 132 insertions(+), 71 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/cayenne-client/src/main/java/org/apache/cayenne/configuration/rop/client/ClientModule.java ---------------------------------------------------------------------- diff --git a/cayenne-client/src/main/java/org/apache/cayenne/configuration/rop/client/ClientModule.java b/cayenne-client/src/main/java/org/apache/cayenne/configuration/rop/client/ClientModule.java index b74d482..519a1d3 100644 --- a/cayenne-client/src/main/java/org/apache/cayenne/configuration/rop/client/ClientModule.java +++ b/cayenne-client/src/main/java/org/apache/cayenne/configuration/rop/client/ClientModule.java @@ -27,6 +27,7 @@ import org.apache.cayenne.configuration.Constants; import org.apache.cayenne.configuration.DefaultRuntimeProperties; import org.apache.cayenne.configuration.ObjectContextFactory; import org.apache.cayenne.configuration.RuntimeProperties; +import org.apache.cayenne.configuration.server.ServerModule; import org.apache.cayenne.di.Binder; import org.apache.cayenne.di.Module; import org.apache.cayenne.event.DefaultEventManager; @@ -56,7 +57,7 @@ public class ClientModule implements Module { public void configure(Binder binder) { // expose user-provided ROP properties as the main properties map - binder.<String> bindMap(Constants.PROPERTIES_MAP).putAll(properties); + ServerModule.contributeProperties(binder).putAll(properties); binder.bind(ObjectContextFactory.class).to(CayenneContextFactory.class); binder.bind(ROPSerializationService.class).toProvider(ClientHessianSerializationServiceProvider.class); http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java ---------------------------------------------------------------------- diff --git a/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java b/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java index 7a565a6..251718e 100644 --- a/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java +++ b/cayenne-java8/src/main/java/org/apache/cayenne/java8/CayenneJava8Module.java @@ -19,7 +19,6 @@ package org.apache.cayenne.java8; -import org.apache.cayenne.configuration.Constants; import org.apache.cayenne.configuration.server.ServerModule; import org.apache.cayenne.di.Binder; import org.apache.cayenne.di.Module; @@ -34,7 +33,7 @@ public class CayenneJava8Module implements Module { @Override public void configure(Binder binder) { - ServerModule.contributeDefaultExtendedTypes(binder) + ServerModule.contributeDefaultTypes(binder) .add(new LocalDateType()) .add(new LocalTimeType()) .add(new LocalDateTimeType()); http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/cayenne-joda/src/main/java/org/apache/cayenne/joda/CayenneJodaModule.java ---------------------------------------------------------------------- diff --git a/cayenne-joda/src/main/java/org/apache/cayenne/joda/CayenneJodaModule.java b/cayenne-joda/src/main/java/org/apache/cayenne/joda/CayenneJodaModule.java index 0d88053..0821b68 100644 --- a/cayenne-joda/src/main/java/org/apache/cayenne/joda/CayenneJodaModule.java +++ b/cayenne-joda/src/main/java/org/apache/cayenne/joda/CayenneJodaModule.java @@ -21,7 +21,6 @@ package org.apache.cayenne.joda; * ************************************************************** */ -import org.apache.cayenne.configuration.Constants; import org.apache.cayenne.configuration.server.ServerModule; import org.apache.cayenne.di.Binder; import org.apache.cayenne.di.Module; @@ -43,7 +42,7 @@ public class CayenneJodaModule implements Module { @Override public void configure(Binder binder) { - ServerModule.contributeDefaultExtendedTypes(binder) + ServerModule.contributeDefaultTypes(binder) .add(new DateTimeType()) .add(new LocalDateType()) .add(new LocalTimeType()) http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/postcommit/PostCommitModuleBuilder.java ---------------------------------------------------------------------- diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/postcommit/PostCommitModuleBuilder.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/postcommit/PostCommitModuleBuilder.java index 7c1eb5d..daf81c5 100644 --- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/postcommit/PostCommitModuleBuilder.java +++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/postcommit/PostCommitModuleBuilder.java @@ -18,10 +18,7 @@ ****************************************************************/ package org.apache.cayenne.lifecycle.postcommit; -import java.util.Collection; -import java.util.HashSet; - -import org.apache.cayenne.configuration.Constants; +import org.apache.cayenne.configuration.server.ServerModule; import org.apache.cayenne.di.Binder; import org.apache.cayenne.di.ListBuilder; import org.apache.cayenne.di.Module; @@ -34,6 +31,9 @@ import org.apache.cayenne.tx.TransactionFilter; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.util.Collection; +import java.util.HashSet; + /** * A builder of a module that integrates {@link PostCommitFilter} and * {@link PostCommitListener} in Cayenne. @@ -133,11 +133,9 @@ public class PostCommitModuleBuilder { binder.bind(PostCommitFilter.class).to(PostCommitFilter.class); if (excludeFromTransaction) { - binder.bindList(Constants.SERVER_DOMAIN_FILTERS_LIST).add(PostCommitFilter.class) - .after(TransactionFilter.class); + ServerModule.contributeDomainFilters(binder).add(PostCommitFilter.class).after(TransactionFilter.class); } else { - binder.bindList(Constants.SERVER_DOMAIN_FILTERS_LIST).add(PostCommitFilter.class) - .before(TransactionFilter.class); + ServerModule.contributeDomainFilters(binder).add(PostCommitFilter.class).before(TransactionFilter.class); } } }; http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java index 6742863..53f3de7 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java @@ -18,6 +18,8 @@ ****************************************************************/ package org.apache.cayenne.configuration; +import org.apache.cayenne.di.Binder; + /** * Defines the names of runtime properties and DI collections used in DI modules * used to configure server and client runtime. @@ -31,6 +33,8 @@ public interface Constants { /** * A DI container key for the Map<String, String> storing properties * used by built-in Cayenne service. + * + * @see org.apache.cayenne.configuration.server.ServerModule#contributeProperties(Binder). */ public static final String PROPERTIES_MAP = "cayenne.properties"; @@ -44,6 +48,8 @@ public interface Constants { /** * A DI container key for the List<DataChannelFilter> storing * DataDomain filters. + * + * @see org.apache.cayenne.configuration.server.ServerModule#contributeDomainFilters(Binder). */ public static final String SERVER_DOMAIN_FILTERS_LIST = "cayenne.server.domain_filters"; @@ -56,18 +62,24 @@ public interface Constants { /** * A DI container key for the List<ExtendedType> storing default * adapter-agnostic ExtendedTypes. + * + * @see org.apache.cayenne.configuration.server.ServerModule#contributeDefaultTypes(Binder). */ public static final String SERVER_DEFAULT_TYPES_LIST = "cayenne.server.default_types"; /** * A DI container key for the List<ExtendedType> storing a * user-provided ExtendedTypes. + * + * @see org.apache.cayenne.configuration.server.ServerModule#contributeUserTypes(Binder). */ public static final String SERVER_USER_TYPES_LIST = "cayenne.server.user_types"; /** * A DI container key for the List<ExtendedTypeFactory> storing * default and user-provided ExtendedTypeFactories. + * + * @see org.apache.cayenne.configuration.server.ServerModule#contributeTypeFactories(Binder). */ public static final String SERVER_TYPE_FACTORIES_LIST = "cayenne.server.type_factories"; http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java index 5f188de..8042949 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java @@ -19,6 +19,7 @@ package org.apache.cayenne.configuration.server; import org.apache.cayenne.DataChannel; +import org.apache.cayenne.DataChannelFilter; import org.apache.cayenne.access.DataDomain; import org.apache.cayenne.access.DefaultObjectMapRetainStrategy; import org.apache.cayenne.access.ObjectMapRetainStrategy; @@ -63,12 +64,7 @@ import org.apache.cayenne.dba.postgres.PostgresSniffer; import org.apache.cayenne.dba.sqlite.SQLiteSniffer; import org.apache.cayenne.dba.sqlserver.SQLServerSniffer; import org.apache.cayenne.dba.sybase.SybaseSniffer; -import org.apache.cayenne.di.AdhocObjectFactory; -import org.apache.cayenne.di.Binder; -import org.apache.cayenne.di.ClassLoaderManager; -import org.apache.cayenne.di.Key; -import org.apache.cayenne.di.ListBuilder; -import org.apache.cayenne.di.Module; +import org.apache.cayenne.di.*; import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory; import org.apache.cayenne.di.spi.DefaultClassLoaderManager; import org.apache.cayenne.event.DefaultEventManager; @@ -100,24 +96,88 @@ public class ServerModule implements Module { protected String[] configurationLocations; /** - * Provides access to a DI collection builder for default adapter-agnostic {@link ExtendedType}'s. + * Provides access to a DI collection builder for String locations that allows downstream modules to + * "contribute" their own Cayenne project locations. + * + * @param binder DI binder passed to the module during injector startup. + * @return ListBuilder for String locations. + * @since 4.0 + */ + public static ListBuilder<String> contributeProjectLocations(Binder binder) { + return binder.bindList(Constants.SERVER_PROJECT_LOCATIONS_LIST); + } + + /** + * Provides access to a DI collection builder for {@link DataChannelFilter}'s that allows downstream modules to + * "contribute" their own DataDomain filters + * + * @param binder DI binder passed to the module during injector startup. + * @return ListBuilder for DataChannelFilter. + * @since 4.0 + */ + public static ListBuilder<DataChannelFilter> contributeDomainFilters(Binder binder) { + return binder.bindList(Constants.SERVER_DOMAIN_FILTERS_LIST); + } + + /** + * Provides access to a DI collection builder for {@link DbAdapterDetector}'s that allows downstream modules to + * "contribute" their own adapter detectors. + * + * @param binder DI binder passed to the module during injector startup. + * @return ListBuilder for DbAdapterDetectors. + * @since 4.0 + */ + public static ListBuilder<DbAdapterDetector> contributeAdapterDetectors(Binder binder) { + return binder.bindList(Constants.SERVER_ADAPTER_DETECTORS_LIST); + } + + /** + * Provides access to a DI map builder for runtime properties that allows downstream modules to + * "contribute" their own properties. + * + * @param binder DI binder passed to the module during injector startup. + * @return MapBuilder for properties. + * @since 4.0 + */ + public static MapBuilder<String> contributeProperties(Binder binder) { + return binder.bindMap(Constants.PROPERTIES_MAP); + } + + /** + * Provides access to a DI collection builder for {@link ExtendedTypeFactory}'s that allows downstream modules to + * "contribute" their own factories. + * + * @param binder DI binder passed to the module during injector startup. + * @return ListBuilder for ExtendedTypes. + * @since 4.0 + */ + public static ListBuilder<ExtendedTypeFactory> contributeTypeFactories(Binder binder) { + return binder.bindList(Constants.SERVER_TYPE_FACTORIES_LIST); + } + + /** + * Provides access to a DI collection builder for default adapter-agnostic {@link ExtendedType}'s that allows + * downstream modules to "contribute" their own types. "Default" types are loaded before adapter-provided or "user" + * types, so they may be overridden by those. * * @param binder DI binder passed to the module during injector startup. * @return ListBuilder for ExtendedTypes. * @since 4.0 */ - public static ListBuilder<ExtendedType> contributeDefaultExtendedTypes(Binder binder) { + public static ListBuilder<ExtendedType> contributeDefaultTypes(Binder binder) { return binder.bindList(Constants.SERVER_DEFAULT_TYPES_LIST); } /** - * Provides access to a DI collection builder for user-provided {@link ExtendedType}'s. + * Provides access to a DI collection builder for {@link ExtendedType}'s that allows downstream modules to "contribute" + * their own types. Unlike "default" types (see {@link #contributeDefaultTypes(Binder)}), "user" types are loaded + * after the adapter-provided types and can override those. * * @param binder DI binder passed to the module during injector startup. * @return ListBuilder for ExtendedTypes. * @since 4.0 */ - public static ListBuilder<ExtendedType> contributeUserExtendedTypes(Binder binder) { + public static ListBuilder<ExtendedType> contributeUserTypes(Binder binder) { return binder.bindList(Constants.SERVER_USER_TYPES_LIST); } @@ -137,40 +197,38 @@ public class ServerModule implements Module { public void configure(Binder binder) { // configure global stack properties - binder.bindMap(Constants.PROPERTIES_MAP).put(Constants.SERVER_MAX_ID_QUALIFIER_SIZE_PROPERTY, - String.valueOf(DEFAULT_MAX_ID_QUALIFIER_SIZE)); + contributeProperties(binder) + .put(Constants.SERVER_MAX_ID_QUALIFIER_SIZE_PROPERTY, String.valueOf(DEFAULT_MAX_ID_QUALIFIER_SIZE)); binder.bind(JdbcEventLogger.class).to(CommonsJdbcEventLogger.class); binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class); // configure known DbAdapter detectors in reverse order of popularity. - // Users can - // add their own to install custom adapters automatically + // Users can add their own to install custom adapters automatically - binder.bindList(Constants.SERVER_ADAPTER_DETECTORS_LIST).add(FirebirdSniffer.class).add(OpenBaseSniffer.class) + contributeAdapterDetectors(binder).add(FirebirdSniffer.class).add(OpenBaseSniffer.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); // configure a filter chain with only one TransactionFilter as default - binder.bindList(Constants.SERVER_DOMAIN_FILTERS_LIST) - .add(TransactionFilter.class); + contributeDomainFilters(binder).add(TransactionFilter.class); // configure extended types - contributeDefaultExtendedTypes(binder).add(new VoidType()).add(new BigDecimalType()) + contributeDefaultTypes(binder).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()); - contributeUserExtendedTypes(binder); - binder.bindList(Constants.SERVER_TYPE_FACTORIES_LIST); + contributeUserTypes(binder); + contributeTypeFactories(binder); // configure explicit configurations - ListBuilder<Object> locationsListBuilder = binder.bindList(Constants.SERVER_PROJECT_LOCATIONS_LIST); + ListBuilder<String> locationsListBuilder = contributeProjectLocations(binder); for (String location : configurationLocations) { locationsListBuilder.add(location); } http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java index f1a447b..1c067cd 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java @@ -18,14 +18,6 @@ ****************************************************************/ package org.apache.cayenne.configuration.server; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.LinkedHashSet; -import java.util.List; - -import javax.sql.DataSource; - import org.apache.cayenne.access.DataDomain; import org.apache.cayenne.configuration.Constants; import org.apache.cayenne.datasource.DataSourceBuilder; @@ -33,6 +25,9 @@ import org.apache.cayenne.di.Binder; import org.apache.cayenne.di.MapBuilder; import org.apache.cayenne.di.Module; +import javax.sql.DataSource; +import java.util.*; + /** * A convenience class to assemble custom ServerRuntime. It allows to easily * configure custom modules, multiple config locations, or quickly create a @@ -226,8 +221,7 @@ public class ServerRuntimeBuilder { prepend(new Module() { @Override public void configure(Binder binder) { - binder.bindMap(Constants.PROPERTIES_MAP).put(Constants.SERVER_DOMAIN_NAME_PROPERTY, - finalNameOverride); + ServerModule.contributeProperties(binder).put(Constants.SERVER_DOMAIN_NAME_PROPERTY, finalNameOverride); } }); } @@ -250,7 +244,7 @@ public class ServerRuntimeBuilder { @Override public void configure(Binder binder) { binder.bind(DataDomain.class).toProvider(SyntheticNodeDataDomainProvider.class); - MapBuilder<Object> props = binder.bindMap(Constants.PROPERTIES_MAP) + MapBuilder<String> props = ServerModule.contributeProperties(binder) .put(Constants.JDBC_DRIVER_PROPERTY, jdbcDriver).put(Constants.JDBC_URL_PROPERTY, jdbcUrl); if (jdbcUser != null) { http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java index aa85465..1828a0c 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java @@ -141,20 +141,20 @@ public class DataDomainProviderTest { binder.bind(ClassLoaderManager.class).toInstance(classLoaderManager); binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class); - binder.bindMap(Constants.PROPERTIES_MAP); + ServerModule.contributeProperties(binder); - binder.bindList(Constants.SERVER_ADAPTER_DETECTORS_LIST).add(FirebirdSniffer.class) + ServerModule.contributeAdapterDetectors(binder).add(FirebirdSniffer.class) .add(OpenBaseSniffer.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); - binder.bindList(Constants.SERVER_DOMAIN_FILTERS_LIST); - binder.bindList(Constants.SERVER_PROJECT_LOCATIONS_LIST).add(testConfigName); + ServerModule.contributeDomainFilters(binder); + ServerModule.contributeProjectLocations(binder).add(testConfigName); // configure extended types - ServerModule.contributeDefaultExtendedTypes(binder); - ServerModule.contributeUserExtendedTypes(binder); - binder.bindList(Constants.SERVER_TYPE_FACTORIES_LIST); + ServerModule.contributeDefaultTypes(binder); + ServerModule.contributeUserTypes(binder); + ServerModule.contributeTypeFactories(binder); binder.bind(EventManager.class).toInstance(eventManager); binder.bind(EntitySorter.class).toInstance(new AshwoodEntitySorter()); http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/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 d2f8dc3..d03e2e3 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 @@ -80,7 +80,7 @@ public class DefaultDbAdapterFactoryTest { Module testModule = new Module() { public void configure(Binder binder) { - binder.bindMap(Constants.PROPERTIES_MAP); + ServerModule.contributeProperties(binder); binder.bind(JdbcEventLogger.class).to(CommonsJdbcEventLogger.class); binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); @@ -107,10 +107,10 @@ public class DefaultDbAdapterFactoryTest { Module testModule = new Module() { public void configure(Binder binder) { - binder.bindMap(Constants.PROPERTIES_MAP); - ServerModule.contributeDefaultExtendedTypes(binder); - ServerModule.contributeUserExtendedTypes(binder); - binder.bindList(Constants.SERVER_TYPE_FACTORIES_LIST); + ServerModule.contributeProperties(binder); + ServerModule.contributeDefaultTypes(binder); + ServerModule.contributeUserTypes(binder); + ServerModule.contributeTypeFactories(binder); binder.bind(JdbcEventLogger.class).to(CommonsJdbcEventLogger.class); binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); @@ -144,10 +144,10 @@ public class DefaultDbAdapterFactoryTest { Module testModule = new Module() { public void configure(Binder binder) { - binder.bindMap(Constants.PROPERTIES_MAP); - ServerModule.contributeDefaultExtendedTypes(binder); - ServerModule.contributeUserExtendedTypes(binder); - binder.bindList(Constants.SERVER_TYPE_FACTORIES_LIST); + ServerModule.contributeProperties(binder); + ServerModule.contributeDefaultTypes(binder); + ServerModule.contributeUserTypes(binder); + ServerModule.contributeTypeFactories(binder); binder.bind(JdbcEventLogger.class).to(CommonsJdbcEventLogger.class); binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); @@ -191,7 +191,7 @@ public class DefaultDbAdapterFactoryTest { Module testModule = new Module() { public void configure(Binder binder) { - binder.bindMap(Constants.PROPERTIES_MAP); + ServerModule.contributeProperties(binder); binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); binder.bind(JdbcEventLogger.class).to(CommonsJdbcEventLogger.class); http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java index c4475dd..aa01c07 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java @@ -155,10 +155,10 @@ public class ServerCaseModule implements Module { IngresUnitDbAdapter.class.getName()).put( SQLiteAdapter.class.getName(), SQLiteUnitDbAdapter.class.getName()); - binder.bindMap(Constants.PROPERTIES_MAP); + ServerModule.contributeProperties(binder); // configure extended types - ServerModule.contributeDefaultExtendedTypes(binder) + ServerModule.contributeDefaultTypes(binder) .add(new VoidType()) .add(new BigDecimalType()) .add(new BigIntegerType()) @@ -178,8 +178,8 @@ public class ServerCaseModule implements Module { .add(new CalendarType<GregorianCalendar>(GregorianCalendar.class)) .add(new CalendarType<Calendar>(Calendar.class)) .add(new UUIDType()); - binder.bindList(Constants.SERVER_USER_TYPES_LIST); - binder.bindList(Constants.SERVER_TYPE_FACTORIES_LIST); + ServerModule.contributeUserTypes(binder); + ServerModule.contributeTypeFactories(binder); binder.bind(SchemaBuilder.class).to(SchemaBuilder.class); binder.bind(JdbcEventLogger.class).to(CommonsJdbcEventLogger.class); http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bee840/cayenne-tools/src/main/java/org/apache/cayenne/tools/configuration/ToolsModule.java ---------------------------------------------------------------------- diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/configuration/ToolsModule.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/configuration/ToolsModule.java index ef8b048..7abe3b0 100644 --- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/configuration/ToolsModule.java +++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/configuration/ToolsModule.java @@ -78,11 +78,11 @@ public class ToolsModule implements Module { binder.bind(Log.class).toInstance(logger); // configure empty global stack properties - binder.bindMap(Constants.PROPERTIES_MAP); + ServerModule.contributeProperties(binder); - ServerModule.contributeDefaultExtendedTypes(binder); - ServerModule.contributeUserExtendedTypes(binder); - binder.bindList(Constants.SERVER_TYPE_FACTORIES_LIST); + ServerModule.contributeDefaultTypes(binder); + ServerModule.contributeUserTypes(binder); + ServerModule.contributeTypeFactories(binder); binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class); @@ -93,7 +93,7 @@ public class ToolsModule implements Module { binder.bind(BatchTranslatorFactory.class).to(DefaultBatchTranslatorFactory.class); binder.bind(JdbcEventLogger.class).to(CommonsJdbcEventLogger.class); - binder.bindList(Constants.SERVER_ADAPTER_DETECTORS_LIST).add(FirebirdSniffer.class).add(OpenBaseSniffer.class) + ServerModule.contributeAdapterDetectors(binder).add(FirebirdSniffer.class).add(OpenBaseSniffer.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)