azkaban-aplcache

refactor MysqlDataSource (#1188)

6/8/2017 8:50:27 PM

Details

diff --git a/azkaban-common/src/main/java/azkaban/AzkabanCommonModule.java b/azkaban-common/src/main/java/azkaban/AzkabanCommonModule.java
index 9c14c2a..f6742c1 100644
--- a/azkaban-common/src/main/java/azkaban/AzkabanCommonModule.java
+++ b/azkaban-common/src/main/java/azkaban/AzkabanCommonModule.java
@@ -123,7 +123,7 @@ public class AzkabanCommonModule extends AbstractModule {
     final String password = props.getString("mysql.password");
     final int numConnections = props.getInt("mysql.numconnections");
 
-    return MySQLDataSource.getInstance(host, port, database, user, password, numConnections);
+    return new MySQLDataSource(host, port, database, user, password, numConnections);
   }
 
   @Inject
diff --git a/azkaban-db/src/main/java/azkaban/db/MySQLDataSource.java b/azkaban-db/src/main/java/azkaban/db/MySQLDataSource.java
index 676f1e1..8fd716d 100644
--- a/azkaban-db/src/main/java/azkaban/db/MySQLDataSource.java
+++ b/azkaban-db/src/main/java/azkaban/db/MySQLDataSource.java
@@ -25,10 +25,7 @@ public class MySQLDataSource extends AzkabanDataSource {
 
   private static final Logger logger = Logger.getLogger(MySQLDataSource.class);
 
-  private static volatile MySQLDataSource instance = null;
-
-  // TODO kunkun-tang: have guice inject working here
-  private MySQLDataSource(final String host, final int port, final String dbName,
+  public MySQLDataSource(final String host, final int port, final String dbName,
       final String user, final String password, final int numConnections) {
     super();
 
@@ -45,22 +42,6 @@ public class MySQLDataSource extends AzkabanDataSource {
   }
 
   /**
-   * Get a singleton object for MySQL BasicDataSource
-   */
-  public static MySQLDataSource getInstance(final String host, final int port, final String dbName,
-      final String user, final String password, final int numConnections) {
-    if (instance == null) {
-      synchronized (MySQLDataSource.class) {
-        if (instance == null) {
-          logger.info("Instantiating MetricReportManager");
-          instance = new MySQLDataSource(host, port, dbName, user, password, numConnections);
-        }
-      }
-    }
-    return instance;
-  }
-
-  /**
    * This method overrides {@link BasicDataSource#getConnection()}, in order to have retry logics.
    */
   @Override