azkaban-aplcache

Adding missing datasource singleton annoataion (#1490) Both

9/21/2017 8:06:42 PM

Details

diff --git a/azkaban-db/src/main/java/azkaban/db/DatabaseOperator.java b/azkaban-db/src/main/java/azkaban/db/DatabaseOperator.java
index b776ca1..ba3d922 100644
--- a/azkaban-db/src/main/java/azkaban/db/DatabaseOperator.java
+++ b/azkaban-db/src/main/java/azkaban/db/DatabaseOperator.java
@@ -21,7 +21,6 @@ import static java.util.Objects.requireNonNull;
 import java.sql.Connection;
 import java.sql.SQLException;
 import javax.inject.Inject;
-import javax.inject.Singleton;
 import org.apache.commons.dbutils.DbUtils;
 import org.apache.commons.dbutils.QueryRunner;
 import org.apache.commons.dbutils.ResultSetHandler;
@@ -34,7 +33,6 @@ import org.apache.log4j.Logger;
  *
  * @see org.apache.commons.dbutils.QueryRunner
  */
-@Singleton
 public class DatabaseOperator {
 
   private static final Logger logger = Logger.getLogger(DatabaseOperator.class);
diff --git a/azkaban-db/src/main/java/azkaban/db/H2FileDataSource.java b/azkaban-db/src/main/java/azkaban/db/H2FileDataSource.java
index c1fac0b..5d45b79 100644
--- a/azkaban-db/src/main/java/azkaban/db/H2FileDataSource.java
+++ b/azkaban-db/src/main/java/azkaban/db/H2FileDataSource.java
@@ -19,8 +19,9 @@ import azkaban.utils.Props;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import javax.inject.Inject;
+import javax.inject.Singleton;
 
-
+@Singleton
 public class H2FileDataSource extends AzkabanDataSource {
 
   @Inject
diff --git a/azkaban-db/src/main/java/azkaban/db/MySQLDataSource.java b/azkaban-db/src/main/java/azkaban/db/MySQLDataSource.java
index c12de73..7f22f9f 100644
--- a/azkaban-db/src/main/java/azkaban/db/MySQLDataSource.java
+++ b/azkaban-db/src/main/java/azkaban/db/MySQLDataSource.java
@@ -21,9 +21,11 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 import javax.inject.Inject;
+import javax.inject.Singleton;
 import org.apache.commons.dbcp2.BasicDataSource;
 import org.apache.log4j.Logger;
 
+@Singleton
 public class MySQLDataSource extends AzkabanDataSource {
 
   private static final Logger logger = Logger.getLogger(MySQLDataSource.class);
diff --git a/azkaban-web-server/src/test/java/azkaban/webapp/AzkabanWebServerTest.java b/azkaban-web-server/src/test/java/azkaban/webapp/AzkabanWebServerTest.java
index 5898ca7..3a73439 100644
--- a/azkaban-web-server/src/test/java/azkaban/webapp/AzkabanWebServerTest.java
+++ b/azkaban-web-server/src/test/java/azkaban/webapp/AzkabanWebServerTest.java
@@ -28,6 +28,7 @@ import azkaban.AzkabanCommonModule;
 import azkaban.database.AzkabanDatabaseSetup;
 import azkaban.database.AzkabanDatabaseUpdater;
 import azkaban.db.DatabaseOperator;
+import azkaban.db.H2FileDataSource;
 import azkaban.executor.ActiveExecutingFlowsDao;
 import azkaban.executor.AlerterHolder;
 import azkaban.executor.ExecutionFlowDao;
@@ -128,6 +129,7 @@ public class AzkabanWebServerTest {
     executorLoader.updateExecutor(executor);
 
     assertNotNull(injector.getInstance(ExecutionFlowDao.class));
+    assertNotNull(injector.getInstance(DatabaseOperator.class));
 
     //Test if triggermanager is singletonly guiced. If not, the below test will fail.
     assertSingleton(ExecutorLoader.class, injector);
@@ -135,7 +137,6 @@ public class AzkabanWebServerTest {
     assertSingleton(ProjectLoader.class, injector);
     assertSingleton(ProjectManager.class, injector);
     assertSingleton(Storage.class, injector);
-    assertSingleton(DatabaseOperator.class, injector);
     assertSingleton(TriggerLoader.class, injector);
     assertSingleton(TriggerManager.class, injector);
     assertSingleton(AlerterHolder.class, injector);
@@ -148,6 +149,7 @@ public class AzkabanWebServerTest {
     assertSingleton(ActiveExecutingFlowsDao.class, injector);
     assertSingleton(FetchActiveFlowDao.class, injector);
     assertSingleton(AzkabanWebServer.class, injector);
+    assertSingleton(H2FileDataSource.class, injector);
 
     SERVICE_PROVIDER.unsetInjector();
   }