diff --git a/apps/dashboard-app/src/test/resources/dashboard.conf b/apps/dashboard-app/src/test/resources/dashboard.conf index c64d3f28c..189eea6f5 100644 --- a/apps/dashboard-app/src/test/resources/dashboard.conf +++ b/apps/dashboard-app/src/test/resources/dashboard.conf @@ -1,65 +1,65 @@ shrine { - problem { + dashboard { database { dataSourceFrom = "testDataSource" slickProfileClassName = "slick.driver.H2Driver$" createTablesOnStart = true // For testing without JNDI testDataSource { //typical test settings for unit tests driverClassName = "org.h2.Driver" url = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1" } } } authenticate { usersource { //Bogus security for testing type = "ConfigUserSource" //Must be ConfigUserSource (for isolated testing) or PmUserSource (for everything else) researcher { username = "ben" password = "kapow" } steward { username = "dave" password = "kablam" } qep{ username = "qep" password = "trustme" } admin{ username = "keith" password = "shh!" } } } dashboard { happyBaseUrl = "classpath://resources/testhappy" statusBaseUrl = "classpath://resources/teststatus" database { dataSourceFrom = "testDataSource" slickProfileClassName = "slick.driver.H2Driver$" createTablesOnStart = true // For testing without JNDI testDataSource { //typical test settings for unit tests driverClassName = "org.h2.Driver" url = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1" } } } keystore { file = "shrine.keystore" password = "chiptesting" privateKeyAlias = "test-cert" keyStoreType = "JKS" caCertAliases = [carra ca] } } \ No newline at end of file diff --git a/commons/data-commons/src/main/resources/reference.conf b/commons/data-commons/src/main/resources/reference.conf index c20786fb4..ea14ea6b8 100644 --- a/commons/data-commons/src/main/resources/reference.conf +++ b/commons/data-commons/src/main/resources/reference.conf @@ -1,30 +1,30 @@ shrine { - problem { + dashboard { database { dataSourceFrom = "JNDI" //Can be JNDI or testDataSource . Use testDataSource for tests, JNDI everywhere else jndiDataSourceName = "java:comp/env/jdbc/shrineDB" //or leave out for tests slickProfileClassName = "slick.driver.MySQLDriver$" // Can be // slick.driver.H2Driver$ // slick.driver.MySQLDriver$ // slick.driver.PostgresDriver$ // slick.driver.SQLServerDriver$ // slick.driver.JdbcDriver$ // freeslick.OracleProfile$ // freeslick.MSSQLServerProfile$ // // (Yes, with the $ on the end) // For testing without JNDI // testDataSource { //typical test settings for unit tests //driverClassName = "org.h2.Driver" //url = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1" //H2 embedded in-memory for unit tests //url = "jdbc:h2:~/stewardTest.h2" //H2 embedded on disk at ~/test // } createTablesOnStart = false //for testing with H2 in memory, when not running unit tests. Set to false normally } } } diff --git a/commons/data-commons/src/main/scala/net/shrine/problem/ProblemConfigSource.scala b/commons/data-commons/src/main/scala/net/shrine/problem/ProblemConfigSource.scala index 23ea23962..c823e3ff1 100644 --- a/commons/data-commons/src/main/scala/net/shrine/problem/ProblemConfigSource.scala +++ b/commons/data-commons/src/main/scala/net/shrine/problem/ProblemConfigSource.scala @@ -1,18 +1,18 @@ package net.shrine.problem import com.typesafe.config.{ConfigValue, ConfigValueFactory} import net.shrine.config.ConfigSource /** * Source of typesafe config for the problems database * * @author ty * @since 7/22/16 */ object ProblemConfigSource extends ConfigSource { - override val configName: String = "problem" + override val configName: String = "dashboard" // Makes it so constructing a problem in this context won't log it to the connector // Does not stop you from constructing the connector and using it manually var turnOffConnector = false } diff --git a/commons/data-commons/src/main/scala/net/shrine/slick/TestableDataSourceCreator.scala b/commons/data-commons/src/main/scala/net/shrine/slick/TestableDataSourceCreator.scala index ac32919a3..921b42b33 100644 --- a/commons/data-commons/src/main/scala/net/shrine/slick/TestableDataSourceCreator.scala +++ b/commons/data-commons/src/main/scala/net/shrine/slick/TestableDataSourceCreator.scala @@ -1,67 +1,67 @@ package net.shrine.slick import java.io.PrintWriter -import java.sql.{DriverManager, Connection} +import java.sql.{Connection, DriverManager} +import java.util.function.BiConsumer import java.util.logging.Logger import javax.naming.InitialContext import javax.sql.DataSource import com.typesafe.config.Config import net.shrine.config.ConfigExtensions /** * @author david * @since 1/26/16 */ object TestableDataSourceCreator { def dataSource(config:Config):DataSource = { val dataSourceFrom = config.getString("dataSourceFrom") if(dataSourceFrom == "JNDI") { val jndiDataSourceName = config.getString("jndiDataSourceName") val initialContext:InitialContext = new InitialContext() - initialContext.lookup(jndiDataSourceName).asInstanceOf[DataSource] } else if (dataSourceFrom == "testDataSource") { val testDataSourceConfig = config.getConfig("testDataSource") val driverClassName = testDataSourceConfig.getString("driverClassName") val url = testDataSourceConfig.getString("url") case class Credentials(username: String,password:String) def configToCredentials(config:Config) = new Credentials(config.getString("username"),config.getString("password")) val credentials: Option[Credentials] = testDataSourceConfig.getOptionConfigured("credentials",configToCredentials) //Creating an instance of the driver register it. (!) From a previous epoch, but it works. Class.forName(driverClassName).newInstance() object TestDataSource extends DataSource { override def getConnection: Connection = { credentials.fold(DriverManager.getConnection(url))(credentials => DriverManager.getConnection(url,credentials.username,credentials.password)) } override def getConnection(username: String, password: String): Connection = { DriverManager.getConnection(url, username, password) } //unused methods override def unwrap[T](iface: Class[T]): T = ??? override def isWrapperFor(iface: Class[_]): Boolean = ??? override def setLogWriter(out: PrintWriter): Unit = ??? override def getLoginTimeout: Int = ??? override def setLoginTimeout(seconds: Int): Unit = ??? override def getParentLogger: Logger = ??? override def getLogWriter: PrintWriter = ??? } TestDataSource } else throw new IllegalArgumentException(s"dataSourceFrom config value must be either JNDI or testDataSource, not $dataSourceFrom") } }