Details
diff --git a/azkaban-common/src/main/java/azkaban/AzkabanCommonModule.java b/azkaban-common/src/main/java/azkaban/AzkabanCommonModule.java
index 8dfc10d..1fbf5b8 100644
--- a/azkaban-common/src/main/java/azkaban/AzkabanCommonModule.java
+++ b/azkaban-common/src/main/java/azkaban/AzkabanCommonModule.java
@@ -19,7 +19,6 @@ package azkaban;
import azkaban.db.AzkabanDataSource;
import azkaban.db.DatabaseOperator;
import azkaban.db.DatabaseOperatorImpl;
-
import azkaban.db.H2FileDataSource;
import azkaban.db.MySQLDataSource;
import azkaban.executor.ExecutorLoader;
@@ -37,8 +36,12 @@ import com.google.inject.Inject;
import com.google.inject.Provides;
import com.google.inject.Scopes;
import com.google.inject.Singleton;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
@@ -47,6 +50,8 @@ import org.apache.commons.dbutils.QueryRunner;
* structuring of Guice components.
*/
public class AzkabanCommonModule extends AbstractModule {
+ private static final Logger logger = LoggerFactory.getLogger(AzkabanCommonModule.class);
+
private final AzkabanCommonModuleConfig config;
public AzkabanCommonModule(Props props) {
@@ -91,7 +96,9 @@ public class AzkabanCommonModule extends AbstractModule {
if(databaseType.equals("h2")) {
String path = props.getString("h2.path");
- return new H2FileDataSource(path);
+ Path h2DbPath = Paths.get(path).toAbsolutePath();
+ logger.info("h2 DB path: " + h2DbPath);
+ return new H2FileDataSource(h2DbPath);
}
int port = props.getInt("mysql.port");
String host = props.getString("mysql.host");
diff --git a/azkaban-common/src/main/java/azkaban/database/DataSourceUtils.java b/azkaban-common/src/main/java/azkaban/database/DataSourceUtils.java
index 5c37361..650a9dc 100644
--- a/azkaban-common/src/main/java/azkaban/database/DataSourceUtils.java
+++ b/azkaban-common/src/main/java/azkaban/database/DataSourceUtils.java
@@ -16,15 +16,10 @@
package azkaban.database;
-import java.sql.SQLException;
-
-import org.apache.commons.dbutils.DbUtils;
-import org.apache.log4j.Logger;
-
-import java.sql.PreparedStatement;
-import java.sql.Connection;
-
import azkaban.utils.Props;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import org.apache.log4j.Logger;
public class DataSourceUtils {
@@ -79,7 +74,9 @@ public class DataSourceUtils {
numConnections);
} else if (databaseType.equals("h2")) {
String path = props.getString("h2.path");
- dataSource = getH2DataSource(path);
+ Path h2DbPath = Paths.get(path).toAbsolutePath();
+ logger.info("h2 DB path: " + h2DbPath);
+ dataSource = getH2DataSource(h2DbPath);
}
return dataSource;
@@ -108,7 +105,7 @@ public class DataSourceUtils {
* @param file
* @return
*/
- public static AzkabanDataSource getH2DataSource(String file) {
+ public static AzkabanDataSource getH2DataSource(Path file) {
return new EmbeddedH2BasicDataSource(file);
}
@@ -158,7 +155,7 @@ public class DataSourceUtils {
*
*/
public static class EmbeddedH2BasicDataSource extends AzkabanDataSource {
- private EmbeddedH2BasicDataSource(String filePath) {
+ private EmbeddedH2BasicDataSource(Path filePath) {
super();
String url = "jdbc:h2:file:" + filePath;
setDriverClassName("org.h2.Driver");
diff --git a/azkaban-db/src/main/java/azkaban/db/H2FileDataSource.java b/azkaban-db/src/main/java/azkaban/db/H2FileDataSource.java
index 98e361f..1e671de 100644
--- a/azkaban-db/src/main/java/azkaban/db/H2FileDataSource.java
+++ b/azkaban-db/src/main/java/azkaban/db/H2FileDataSource.java
@@ -15,8 +15,12 @@
*/
package azkaban.db;
+import java.nio.file.Path;
+
+
public class H2FileDataSource extends AzkabanDataSource {
- public H2FileDataSource(String filePath) {
+
+ public H2FileDataSource(Path filePath) {
super();
String url = "jdbc:h2:file:" + filePath;
setDriverClassName("org.h2.Driver");