Advertisement
Guest User

Untitled

a guest
Mar 2nd, 2015
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. static final String mongoServer = Play.application().configuration().getString("application.mongo.db.server");
  2. static final String mongoDBname = Play.application().configuration().getString("application.mongo.db.dbname");
  3. static final String mongoUsername = Play.application().configuration().getString("application.mongo.db.username");
  4. static final String mongoPassword = Play.application().configuration().getString("application.mongo.db.password");
  5. static final int connectionPerHost = Play.application().configuration().getInt("application.mongo.db.connections");
  6. static final int connectionIdleTime = Play.application().configuration().getInt("application.mongo.db.idletime");
  7.  
  8. private MongoTemplate _mongoTemplate;
  9. private static MongoClient _mongo;
  10.  
  11. public MongoTemplate getContext() {
  12. if(_mongoTemplate == null)
  13. openDbConnection();
  14. if(_mongo == null || _mongoTemplate == null)
  15. Logger.error("DatabaseConnection::openDbConnection - Unable to get context. How is this possible?");
  16. return _mongoTemplate;
  17. }
  18.  
  19. private static synchronized void createMongo() {
  20. if(_mongo == null) {
  21. Logger.debug("DatabaseConnection::openDbConnection - Opening a new connection");
  22. MongoClientOptions options = new MongoClientOptions.Builder().connectionsPerHost(connectionPerHost)
  23. .cursorFinalizerEnabled(true).maxConnectionIdleTime(connectionIdleTime).build();
  24. MongoCredential credential = MongoCredential.createMongoCRCredential(mongoUsername, mongoDBname, mongoPassword.toCharArray());
  25. ServerAddress addr = null;
  26. try {
  27. addr = new ServerAddress(mongoServer);
  28. } catch (UnknownHostException e) {
  29. Logger.error("Error Connecting to Mongo: Wrong Server??", e);
  30. e.printStackTrace();
  31. }
  32. _mongo = new MongoClient(addr, Arrays.asList(credential), options);
  33. }
  34. }
  35.  
  36. private boolean openDbConnection() {
  37. try {
  38. if(_mongo == null) createMongo();
  39. // TODO: Connection Pooling
  40. _mongoTemplate = new MongoTemplate(_mongo, mongoDBname); //new MongoTemplate(dbFactory, converter);
  41. return true;
  42. } catch (Exception e) {
  43. Logger.error("Error Opening Connection:", e);
  44. e.printStackTrace();
  45. }
  46. return false;
  47. }
  48.  
  49. private boolean closeDbConnection() {
  50. try {
  51. _mongoTemplate = null;
  52. return true;
  53. } catch (Exception ex) {
  54. Logger.error("Error Closing", ex);
  55. }
  56. return false;
  57. }
  58.  
  59. @Override
  60. protected void finalize() throws Throwable {
  61. closeDbConnection();
  62. super.finalize();
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement