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();
}