Move MongodbModule into a modules package
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/db18f3c5 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/db18f3c5 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/db18f3c5 Branch: refs/heads/master Commit: db18f3c55cd5cfba1d3692bc6e2c356670bd94c0 Parents: e8e0af5 Author: Howard M. Lewis Ship <[email protected]> Authored: Mon Apr 22 17:08:48 2013 -0700 Committer: Howard M. Lewis Ship <[email protected]> Committed: Mon Apr 22 17:08:48 2013 -0700 ---------------------------------------------------------------------- tapestry-mongodb/build.gradle | 2 +- .../apache/tapestry5/mongodb/MongodbModule.java | 123 -------------- .../tapestry5/mongodb/modules/MongodbModule.java | 126 +++++++++++++++ .../src/test/groovy/MongoDBSpec.groovy | 2 +- 4 files changed, 128 insertions(+), 125 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/db18f3c5/tapestry-mongodb/build.gradle ---------------------------------------------------------------------- diff --git a/tapestry-mongodb/build.gradle b/tapestry-mongodb/build.gradle index 3019266..af87f4d 100644 --- a/tapestry-mongodb/build.gradle +++ b/tapestry-mongodb/build.gradle @@ -19,6 +19,6 @@ test { jar { manifest { - attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.mongodb.MongodbModule' + attributes 'Tapestry-Module-Classes': 'org.apache.tapestry5.mongodb.modules.MongodbModule' } } http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/db18f3c5/tapestry-mongodb/src/main/java/org/apache/tapestry5/mongodb/MongodbModule.java ---------------------------------------------------------------------- diff --git a/tapestry-mongodb/src/main/java/org/apache/tapestry5/mongodb/MongodbModule.java b/tapestry-mongodb/src/main/java/org/apache/tapestry5/mongodb/MongodbModule.java deleted file mode 100644 index a7d53bd..0000000 --- a/tapestry-mongodb/src/main/java/org/apache/tapestry5/mongodb/MongodbModule.java +++ /dev/null @@ -1,123 +0,0 @@ -package org.apache.tapestry5.mongodb; - -import com.mongodb.ReadPreference; -import com.mongodb.WriteConcern; -import org.apache.tapestry5.internal.mongodb.MongoDBImpl; -import org.apache.tapestry5.internal.mongodb.MongoDBSourceImpl; -import org.apache.tapestry5.ioc.Configuration; -import org.apache.tapestry5.ioc.MappedConfiguration; -import org.apache.tapestry5.ioc.ScopeConstants; -import org.apache.tapestry5.ioc.ServiceBinder; -import org.apache.tapestry5.ioc.annotations.Scope; -import org.apache.tapestry5.ioc.annotations.Symbol; -import org.apache.tapestry5.ioc.services.Coercion; -import org.apache.tapestry5.ioc.services.CoercionTuple; -import org.apache.tapestry5.ioc.services.PerthreadManager; -import org.slf4j.Logger; - -/** - * Defines services which are responsible for MongoDB initializations and connections. - */ -public class MongodbModule -{ - public static void bind(ServiceBinder binder) - { - binder.bind(MongoDBSource.class, MongoDBSourceImpl.class); - } - - public static void contributeFactoryDefaults(MappedConfiguration<String, String> configuration) - { - configuration.add(MongoDBSymbols.CONNECTIONS_PER_HOSTS, "10"); - configuration.add(MongoDBSymbols.WRITE_CONCERN, "ACKNOWLEDGED"); - configuration.add(MongoDBSymbols.READ_PREFERENCE, "PRIMARY"); - configuration.add(MongoDBSymbols.CONSISTENT_REQUEST, "false"); - - // Authentication (Mongo in secure mode) - - configuration.add(MongoDBSymbols.SECURE_MODE, "false"); - configuration.add(MongoDBSymbols.DB_USERNAME, ""); - configuration.add(MongoDBSymbols.DB_PASSWORD, ""); - } - - @Scope(ScopeConstants.PERTHREAD) - public static MongoDB buildMongoDB(Logger logger, final MongoDBSource mongoDBSource, - PerthreadManager perthreadManager, - @Symbol(MongoDBSymbols.DEFAULT_DB_NAME) String defaultDbName, - @Symbol(MongoDBSymbols.CONSISTENT_REQUEST) boolean consistentRequest, - @Symbol(MongoDBSymbols.SECURE_MODE) boolean secureMode, - @Symbol(MongoDBSymbols.DB_USERNAME) String dbUsername, - @Symbol(MongoDBSymbols.DB_PASSWORD) String dbPassword) - { - final MongoDBImpl mongoDB = new MongoDBImpl(logger, mongoDBSource, - defaultDbName, consistentRequest, secureMode, dbUsername, dbPassword); - - perthreadManager.addThreadCleanupListener(mongoDB); - - return mongoDB; - } - - /** - * Contribute coercions for {@link WriteConcern} and {@link ReadPreference} to have them from - * {@link org.apache.tapestry5.ioc.annotations.Symbol} - * - * @param configuration lets help the {@link org.apache.tapestry5.ioc.services.TypeCoercer} service - */ - public static void contributeTypeCoercer(Configuration<CoercionTuple> configuration) - { - configuration.add(new CoercionTuple(String.class, WriteConcern.class, - new Coercion<String, WriteConcern>() { - @Override - public WriteConcern coerce(String input) - { - if (input.equalsIgnoreCase("FSYNC_SAFE")) - { - return WriteConcern.FSYNC_SAFE; - } - else if (input.equalsIgnoreCase("JOURNAL_SAFE")) - { - return WriteConcern.JOURNAL_SAFE; - } - else if (input.equalsIgnoreCase("MAJORITY")) - { - return WriteConcern.MAJORITY; - } - else if (input.equalsIgnoreCase("NONE")) - { - return WriteConcern.NONE; - } - else if (input.equalsIgnoreCase("REPLICAS_SAFE")) - { - return WriteConcern.REPLICAS_SAFE; - } - else if (input.equalsIgnoreCase("SAFE")) - { - return WriteConcern.SAFE; - } - else if (input.equalsIgnoreCase("NORMAL")) - { - return WriteConcern.NORMAL; - } - else // WriteConcern.ACKNOWLEDGED IS OUR DEFAULT - { - return WriteConcern.ACKNOWLEDGED; - } - } - } - )); - - configuration.add(new CoercionTuple(String.class, ReadPreference.class, new Coercion<String, ReadPreference>() { - @Override - public ReadPreference coerce(String input) - { - if (input.equalsIgnoreCase("SECONDARY")) - { - return ReadPreference.secondary(); - } - else // PRIMARY IS OUR DEFAULT - { - return ReadPreference.primary(); - } - } - })); - } -} http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/db18f3c5/tapestry-mongodb/src/main/java/org/apache/tapestry5/mongodb/modules/MongodbModule.java ---------------------------------------------------------------------- diff --git a/tapestry-mongodb/src/main/java/org/apache/tapestry5/mongodb/modules/MongodbModule.java b/tapestry-mongodb/src/main/java/org/apache/tapestry5/mongodb/modules/MongodbModule.java new file mode 100644 index 0000000..70d3004 --- /dev/null +++ b/tapestry-mongodb/src/main/java/org/apache/tapestry5/mongodb/modules/MongodbModule.java @@ -0,0 +1,126 @@ +package org.apache.tapestry5.mongodb.modules; + +import com.mongodb.ReadPreference; +import com.mongodb.WriteConcern; +import org.apache.tapestry5.internal.mongodb.MongoDBImpl; +import org.apache.tapestry5.internal.mongodb.MongoDBSourceImpl; +import org.apache.tapestry5.ioc.Configuration; +import org.apache.tapestry5.ioc.MappedConfiguration; +import org.apache.tapestry5.ioc.ScopeConstants; +import org.apache.tapestry5.ioc.ServiceBinder; +import org.apache.tapestry5.ioc.annotations.Scope; +import org.apache.tapestry5.ioc.annotations.Symbol; +import org.apache.tapestry5.ioc.services.Coercion; +import org.apache.tapestry5.ioc.services.CoercionTuple; +import org.apache.tapestry5.ioc.services.PerthreadManager; +import org.apache.tapestry5.mongodb.MongoDB; +import org.apache.tapestry5.mongodb.MongoDBSource; +import org.apache.tapestry5.mongodb.MongoDBSymbols; +import org.slf4j.Logger; + +/** + * Defines services which are responsible for MongoDB initializations and connections. + */ +public class MongodbModule +{ + public static void bind(ServiceBinder binder) + { + binder.bind(MongoDBSource.class, MongoDBSourceImpl.class); + } + + public static void contributeFactoryDefaults(MappedConfiguration<String, String> configuration) + { + configuration.add(MongoDBSymbols.CONNECTIONS_PER_HOSTS, "10"); + configuration.add(MongoDBSymbols.WRITE_CONCERN, "ACKNOWLEDGED"); + configuration.add(MongoDBSymbols.READ_PREFERENCE, "PRIMARY"); + configuration.add(MongoDBSymbols.CONSISTENT_REQUEST, "false"); + + // Authentication (Mongo in secure mode) + + configuration.add(MongoDBSymbols.SECURE_MODE, "false"); + configuration.add(MongoDBSymbols.DB_USERNAME, ""); + configuration.add(MongoDBSymbols.DB_PASSWORD, ""); + } + + @Scope(ScopeConstants.PERTHREAD) + public static MongoDB buildMongoDB(Logger logger, final MongoDBSource mongoDBSource, + PerthreadManager perthreadManager, + @Symbol(MongoDBSymbols.DEFAULT_DB_NAME) String defaultDbName, + @Symbol(MongoDBSymbols.CONSISTENT_REQUEST) boolean consistentRequest, + @Symbol(MongoDBSymbols.SECURE_MODE) boolean secureMode, + @Symbol(MongoDBSymbols.DB_USERNAME) String dbUsername, + @Symbol(MongoDBSymbols.DB_PASSWORD) String dbPassword) + { + final MongoDBImpl mongoDB = new MongoDBImpl(logger, mongoDBSource, + defaultDbName, consistentRequest, secureMode, dbUsername, dbPassword); + + perthreadManager.addThreadCleanupListener(mongoDB); + + return mongoDB; + } + + /** + * Contribute coercions for {@link WriteConcern} and {@link ReadPreference} to have them from + * {@link org.apache.tapestry5.ioc.annotations.Symbol} + * + * @param configuration lets help the {@link org.apache.tapestry5.ioc.services.TypeCoercer} service + */ + public static void contributeTypeCoercer(Configuration<CoercionTuple> configuration) + { + configuration.add(new CoercionTuple(String.class, WriteConcern.class, + new Coercion<String, WriteConcern>() { + @Override + public WriteConcern coerce(String input) + { + if (input.equalsIgnoreCase("FSYNC_SAFE")) + { + return WriteConcern.FSYNC_SAFE; + } + else if (input.equalsIgnoreCase("JOURNAL_SAFE")) + { + return WriteConcern.JOURNAL_SAFE; + } + else if (input.equalsIgnoreCase("MAJORITY")) + { + return WriteConcern.MAJORITY; + } + else if (input.equalsIgnoreCase("NONE")) + { + return WriteConcern.NONE; + } + else if (input.equalsIgnoreCase("REPLICAS_SAFE")) + { + return WriteConcern.REPLICAS_SAFE; + } + else if (input.equalsIgnoreCase("SAFE")) + { + return WriteConcern.SAFE; + } + else if (input.equalsIgnoreCase("NORMAL")) + { + return WriteConcern.NORMAL; + } + else // WriteConcern.ACKNOWLEDGED IS OUR DEFAULT + { + return WriteConcern.ACKNOWLEDGED; + } + } + } + )); + + configuration.add(new CoercionTuple(String.class, ReadPreference.class, new Coercion<String, ReadPreference>() { + @Override + public ReadPreference coerce(String input) + { + if (input.equalsIgnoreCase("SECONDARY")) + { + return ReadPreference.secondary(); + } + else // PRIMARY IS OUR DEFAULT + { + return ReadPreference.primary(); + } + } + })); + } +} http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/db18f3c5/tapestry-mongodb/src/test/groovy/MongoDBSpec.groovy ---------------------------------------------------------------------- diff --git a/tapestry-mongodb/src/test/groovy/MongoDBSpec.groovy b/tapestry-mongodb/src/test/groovy/MongoDBSpec.groovy index 196bc54..b297049 100644 --- a/tapestry-mongodb/src/test/groovy/MongoDBSpec.groovy +++ b/tapestry-mongodb/src/test/groovy/MongoDBSpec.groovy @@ -11,7 +11,7 @@ import org.apache.tapestry5.ioc.RegistryBuilder import org.apache.tapestry5.ioc.modules.TapestryIOCModule import org.apache.tapestry5.mongodb.MongoDB import org.apache.tapestry5.mongodb.MongoDBSource -import org.apache.tapestry5.mongodb.MongodbModule +import org.apache.tapestry5.mongodb.modules.MongodbModule import org.jongo.Jongo import org.jongo.MongoCollection import spock.lang.AutoCleanup
