Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static final String mongoServer = Play.application().configuration().getString("application.mongo.db.server");
- static final String mongoDBname = Play.application().configuration().getString("application.mongo.db.dbname");
- static final String mongoUsername = Play.application().configuration().getString("application.mongo.db.username");
- static final String mongoPassword = Play.application().configuration().getString("application.mongo.db.password");
- static final int connectionPerHost = Play.application().configuration().getInt("application.mongo.db.connections");
- static final int connectionIdleTime = Play.application().configuration().getInt("application.mongo.db.idletime");
- private MongoTemplate _mongoTemplate;
- private static MongoClient _mongo;
- public MongoTemplate getContext() {
- if(_mongoTemplate == null)
- openDbConnection();
- if(_mongo == null || _mongoTemplate == null)
- Logger.error("DatabaseConnection::openDbConnection - Unable to get context. How is this possible?");
- return _mongoTemplate;
- }
- private static synchronized void createMongo() {
- if(_mongo == null) {
- Logger.debug("DatabaseConnection::openDbConnection - Opening a new connection");
- MongoClientOptions options = new MongoClientOptions.Builder().connectionsPerHost(connectionPerHost)
- .cursorFinalizerEnabled(true).maxConnectionIdleTime(connectionIdleTime).build();
- MongoCredential credential = MongoCredential.createMongoCRCredential(mongoUsername, mongoDBname, mongoPassword.toCharArray());
- ServerAddress addr = null;
- try {
- addr = new ServerAddress(mongoServer);
- } catch (UnknownHostException e) {
- Logger.error("Error Connecting to Mongo: Wrong Server??", e);
- e.printStackTrace();
- }
- _mongo = new MongoClient(addr, Arrays.asList(credential), options);
- }
- }
- private boolean openDbConnection() {
- try {
- if(_mongo == null) createMongo();
- // TODO: Connection Pooling
- _mongoTemplate = new MongoTemplate(_mongo, mongoDBname); //new MongoTemplate(dbFactory, converter);
- return true;
- } catch (Exception e) {
- Logger.error("Error Opening Connection:", e);
- e.printStackTrace();
- }
- return false;
- }
- private boolean closeDbConnection() {
- try {
- _mongoTemplate = null;
- return true;
- } catch (Exception ex) {
- Logger.error("Error Closing", ex);
- }
- return false;
- }
- @Override
- protected void finalize() throws Throwable {
- closeDbConnection();
- super.finalize();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement