Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions jooby-ebean/src/test/java/org/jooby/ebean/EbeanbyTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

import io.ebean.EbeanServer;
import io.ebean.config.ContainerConfig;
import io.ebean.config.ServerConfig;
import com.google.common.collect.Sets;
import com.google.inject.Binder;
import com.google.inject.Key;
Expand All @@ -33,6 +30,9 @@
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import io.ebean.EbeanServer;
import io.ebean.config.ContainerConfig;
import io.ebean.config.ServerConfig;
import javaslang.control.Try.CheckedRunnable;

@RunWith(PowerMockRunner.class)
Expand Down Expand Up @@ -275,8 +275,10 @@ private Block props(final String dataSourceClassName, final String url, final St
.setProperty("dataSource.url", url))
.andReturn(null);

expect(properties.containsKey("dataSourceClassName")).andReturn(hasDataSourceClassName);
if (!hasDataSourceClassName) {
if (hasDataSourceClassName) {
expect(properties.getProperty("dataSourceClassName")).andReturn(dataSourceClassName);
} else {
expect(properties.getProperty("dataSourceClassName")).andReturn(null);
expect(properties.getProperty("dataSource.dataSourceClassName"))
.andReturn(dataSourceClassName);
expect(properties.setProperty("dataSourceClassName", dataSourceClassName)).andReturn(null);
Expand Down
6 changes: 4 additions & 2 deletions jooby-hbm/src/test/java/org/jooby/hbm/HbmTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -949,8 +949,10 @@ private Block props(final String dataSourceClassName, final String url, final St
.setProperty("dataSource.url", url))
.andReturn(null);

expect(properties.containsKey("dataSourceClassName")).andReturn(hasDataSourceClassName);
if (!hasDataSourceClassName) {
if (hasDataSourceClassName) {
expect(properties.getProperty("dataSourceClassName")).andReturn(dataSourceClassName);
} else {
expect(properties.getProperty("dataSourceClassName")).andReturn(null);
expect(properties.getProperty("dataSource.dataSourceClassName"))
.andReturn(dataSourceClassName);
expect(properties.setProperty("dataSourceClassName", dataSourceClassName)).andReturn(null);
Expand Down
6 changes: 4 additions & 2 deletions jooby-hbm4/src/test/java/org/jooby/hbm/HbmTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -302,8 +302,10 @@ private Block props(final String dataSourceClassName, final String url, final St
.setProperty("dataSource.url", url))
.andReturn(null);

expect(properties.containsKey("dataSourceClassName")).andReturn(hasDataSourceClassName);
if (!hasDataSourceClassName) {
if (hasDataSourceClassName) {
expect(properties.getProperty("dataSourceClassName")).andReturn(dataSourceClassName);
} else {
expect(properties.getProperty("dataSourceClassName")).andReturn(null);
expect(properties.getProperty("dataSource.dataSourceClassName"))
.andReturn(dataSourceClassName);
expect(properties.setProperty("dataSourceClassName", dataSourceClassName)).andReturn(null);
Expand Down
11 changes: 9 additions & 2 deletions jooby-jdbc/src/main/java/org/jooby/jdbc/Jdbc.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@

import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.common.base.Throwables;
import com.google.inject.Binder;
import com.typesafe.config.Config;
Expand Down Expand Up @@ -437,9 +438,15 @@ private HikariConfig hikariConfig(final String url, final String key, final Stri

$hikari.entrySet().forEach(entry -> dumper.accept("", entry));

if (!props.containsKey("dataSourceClassName")) {
String dataSourceClassName = props.getProperty("dataSourceClassName");
if (Strings.isNullOrEmpty(dataSourceClassName)) {
// adjust dataSourceClassName when missing
props.setProperty("dataSourceClassName", props.getProperty("dataSource.dataSourceClassName"));
dataSourceClassName = props.getProperty("dataSource.dataSourceClassName");
props.setProperty("dataSourceClassName", dataSourceClassName);
}
if (Strings.isNullOrEmpty(dataSourceClassName)) {
// Hack old drivers without a setUrl method (pgsql)
props.put("jdbcUrl", url);
}
// remove dataSourceClassName under dataSource
props.remove("dataSource.dataSourceClassName");
Expand Down
8 changes: 6 additions & 2 deletions jooby-jdbc/src/main/resources/org/jooby/jdbc/jdbc.conf
Original file line number Diff line number Diff line change
Expand Up @@ -90,15 +90,19 @@ databases {
# url => jdbc:pgsql://<server>[:<port>]/<database>
###############################################################################################
pgsql {
dataSourceClassName = com.impossibl.postgres.jdbc.PGDataSource
# empty bc dataSource.setUrl missing
# dataSourceClassName = com.impossibl.postgres.jdbc.PGDataSource
dataSourceClassName = ""
}

###############################################################################################
# postgresql
# url => jdbc:postgresql://host:port/database
###############################################################################################
postgresql {
dataSourceClassName = org.postgresql.ds.PGSimpleDataSource
# empty bc dataSource.setUrl missing
# dataSourceClassName = org.postgresql.ds.PGSimpleDataSource
dataSourceClassName = ""
}

###############################################################################################
Expand Down
24 changes: 18 additions & 6 deletions jooby-jdbc/src/test/java/org/jooby/jdbc/JdbcTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -457,15 +457,20 @@ public void oracle() throws Exception {
@Test
public void pgsql() throws Exception {
Config config = ConfigFactory.parseResources(getClass(), "jdbc.conf");
String url = "jdbc:pgsql://server/database";
Config dbconf = config.withValue("db",
ConfigValueFactory.fromAnyRef("jdbc:pgsql://server/database"));
ConfigValueFactory.fromAnyRef(url));

new MockUnit(Env.class, Config.class, Binder.class)
.expect(props("com.impossibl.postgres.jdbc.PGDataSource", "jdbc:pgsql://server/database",
.expect(props("", "jdbc:pgsql://server/database",
"pgsql.database", null, "", false))
.expect(hikariConfig())
.expect(hikariDataSource())
.expect(serviceKey("database"))
.expect(unit -> {
Properties props = unit.get(Properties.class);
expect(props.put("jdbcUrl", url)).andReturn(null);
})
.expect(onStop)
.run(unit -> {
new Jdbc().configure(unit.get(Env.class), dbconf, unit.get(Binder.class));
Expand All @@ -475,15 +480,20 @@ public void pgsql() throws Exception {
@Test
public void postgresql() throws Exception {
Config config = ConfigFactory.parseResources(getClass(), "jdbc.conf");
String url = "jdbc:postgresql://server/database";
Config dbconf = config.withValue("db",
ConfigValueFactory.fromAnyRef("jdbc:postgresql://server/database"));
ConfigValueFactory.fromAnyRef(url));

new MockUnit(Env.class, Config.class, Binder.class)
.expect(props("org.postgresql.ds.PGSimpleDataSource", "jdbc:postgresql://server/database",
.expect(props("", "jdbc:postgresql://server/database",
"postgresql.database", null, "", false))
.expect(hikariConfig())
.expect(hikariDataSource())
.expect(serviceKey("database"))
.expect(unit -> {
Properties props = unit.get(Properties.class);
expect(props.put("jdbcUrl", url)).andReturn(null);
})
.expect(onStop)
.run(unit -> {
new Jdbc().configure(unit.get(Env.class), dbconf, unit.get(Binder.class));
Expand Down Expand Up @@ -628,8 +638,10 @@ private Block props(final String dataSourceClassName, final String url, final St
.andReturn(null);
}

expect(properties.containsKey("dataSourceClassName")).andReturn(hasDataSourceClassName);
if (!hasDataSourceClassName) {
if (hasDataSourceClassName) {
expect(properties.getProperty("dataSourceClassName")).andReturn(dataSourceClassName);
} else {
expect(properties.getProperty("dataSourceClassName")).andReturn(null);
expect(properties.getProperty("dataSource.dataSourceClassName"))
.andReturn(dataSourceClassName);
expect(properties.setProperty("dataSourceClassName", dataSourceClassName)).andReturn(null);
Expand Down
6 changes: 4 additions & 2 deletions jooby-jooq/src/test/java/org/jooby/jooq/jOOQTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,10 @@ private Block props(final String dataSourceClassName, final String url, final St
.setProperty("dataSource.url", url))
.andReturn(null);

expect(properties.containsKey("dataSourceClassName")).andReturn(hasDataSourceClassName);
if (!hasDataSourceClassName) {
if (hasDataSourceClassName) {
expect(properties.getProperty("dataSourceClassName")).andReturn(dataSourceClassName);
} else {
expect(properties.getProperty("dataSourceClassName")).andReturn(null);
expect(properties.getProperty("dataSource.dataSourceClassName"))
.andReturn(dataSourceClassName);
expect(properties.setProperty("dataSourceClassName", dataSourceClassName)).andReturn(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -361,8 +361,10 @@ private Block props(final String dataSourceClassName, final String url, final St
.setProperty("dataSource.url", url))
.andReturn(null);

expect(properties.containsKey("dataSourceClassName")).andReturn(hasDataSourceClassName);
if (!hasDataSourceClassName) {
if (hasDataSourceClassName) {
expect(properties.getProperty("dataSourceClassName")).andReturn(dataSourceClassName);
} else {
expect(properties.getProperty("dataSourceClassName")).andReturn(null);
expect(properties.getProperty("dataSource.dataSourceClassName"))
.andReturn(dataSourceClassName);
expect(properties.setProperty("dataSourceClassName", dataSourceClassName)).andReturn(null);
Expand Down
2 changes: 1 addition & 1 deletion jooby-requery/src/main/java/org/jooby/requery/Requery.java
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ public void configure(final Env env, final Config conf, final Binder binder) {
env.onStart(registry -> {
DataSource ds = Optional.ofNullable(this.dataSource)
.map(Provider::get)
.orElseGet(() -> registry.require("db", DataSource.class));
.orElseGet(() -> registry.require(DataSource.class));
schema(conf, schema, schema -> new SchemaModifier(ds, model).createTables(schema));

ConfigurationBuilder builder = new ConfigurationBuilder(ds, model);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ private Block dataSource(final Key<DataSource> dbkey) {
DataSource ds = unit.get(DataSource.class);

Registry registry = unit.get(Registry.class);
expect(registry.require("db", DataSource.class)).andReturn(ds);
expect(registry.require(DataSource.class)).andReturn(ds);
};
}
}
6 changes: 4 additions & 2 deletions jooby-rxjava-jdbc/src/test/java/org/jooby/rx/RxJdbcTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,10 @@ private Block props(final String dataSourceClassName, final String url, final St
.setProperty("dataSource.url", url))
.andReturn(null);

expect(properties.containsKey("dataSourceClassName")).andReturn(hasDataSourceClassName);
if (!hasDataSourceClassName) {
if (hasDataSourceClassName) {
expect(properties.getProperty("dataSourceClassName")).andReturn(dataSourceClassName);
} else {
expect(properties.getProperty("dataSourceClassName")).andReturn(null);
expect(properties.getProperty("dataSource.dataSourceClassName"))
.andReturn(dataSourceClassName);
expect(properties.setProperty("dataSourceClassName", dataSourceClassName)).andReturn(null);
Expand Down