Search in sources :

Example 1 with TypeRef

use of io.bootique.type.TypeRef in project bootique-jdbc by bootique.

the class ManagedDataSourceFactoryProxyIT method testFactory_MultiLevel.

@Test
public void testFactory_MultiLevel() {
    BQRuntime runtime = testFactory.app("-c", "classpath:io/bootique/jdbc/factory-type.yml").autoLoadModules().module(b -> JdbcModule.extend(b).addFactoryType(ManagedDataSourceFactoryX1.class).addFactoryType(ManagedDataSourceFactoryX2.class).addFactoryType(ManagedDataSourceFactoryX3.class).addFactoryType(ManagedDataSourceFactoryX4.class)).createRuntime();
    ConfigurationFactory configFactory = runtime.getInstance(ConfigurationFactory.class);
    Map<String, ManagedDataSourceFactory> configs = configFactory.config(new TypeRef<Map<String, ManagedDataSourceFactory>>() {
    }, configPrefix);
    assertTrue(configs.get("ds1") instanceof ManagedDataSourceFactoryX4);
    assertTrue(configs.get("ds2") instanceof ManagedDataSourceFactoryX1);
    DataSourceFactory factory = runtime.getInstance(DataSourceFactory.class);
    DataSource ds1 = factory.forName("ds1");
    assertNotNull(ds1);
    DataSource ds2 = factory.forName("ds2");
    assertNotNull(ds2);
}
Also used : JdbcModule(io.bootique.jdbc.JdbcModule) ConfigurationFactory(io.bootique.config.ConfigurationFactory) Assert.assertNotNull(org.junit.Assert.assertNotNull) BQRuntime(io.bootique.BQRuntime) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) BQTestFactory(io.bootique.test.junit.BQTestFactory) Injector(com.google.inject.Injector) TypeRef(io.bootique.type.TypeRef) JsonTypeName(com.fasterxml.jackson.annotation.JsonTypeName) BootiqueException(io.bootique.BootiqueException) Rule(org.junit.Rule) Map(java.util.Map) DataSource(javax.sql.DataSource) Optional(java.util.Optional) Assert.fail(org.junit.Assert.fail) ProvisionException(com.google.inject.ProvisionException) DataSourceFactory(io.bootique.jdbc.DataSourceFactory) Mockito.mock(org.mockito.Mockito.mock) DataSourceFactory(io.bootique.jdbc.DataSourceFactory) BQRuntime(io.bootique.BQRuntime) DataSource(javax.sql.DataSource) ConfigurationFactory(io.bootique.config.ConfigurationFactory) Map(java.util.Map) Test(org.junit.Test)

Example 2 with TypeRef

use of io.bootique.type.TypeRef in project bootique-jdbc by bootique.

the class ManagedDataSourceFactoryProxyIT method testFactories_Hierarchical.

@Test
public void testFactories_Hierarchical() {
    BQRuntime runtime = testFactory.app("-c", "classpath:io/bootique/jdbc/factories-type.yml").autoLoadModules().module(b -> JdbcModule.extend(b).addFactoryType(ManagedDataSourceFactoryX1.class).addFactoryType(ManagedDataSourceFactoryX2.class).addFactoryType(ManagedDataSourceFactoryX3.class).addFactoryType(ManagedDataSourceFactoryX33.class).addFactoryType(ManagedDataSourceFactoryY1.class).addFactoryType(ManagedDataSourceFactoryY2.class)).createRuntime();
    ConfigurationFactory configFactory = runtime.getInstance(ConfigurationFactory.class);
    Map<String, ManagedDataSourceFactory> configs = configFactory.config(new TypeRef<Map<String, ManagedDataSourceFactory>>() {
    }, configPrefix);
    assertTrue(configs.get("ds1") instanceof ManagedDataSourceFactoryX33);
    assertTrue(configs.get("ds2") instanceof ManagedDataSourceFactoryY2);
    DataSourceFactory factory = runtime.getInstance(DataSourceFactory.class);
    DataSource ds1 = factory.forName("ds1");
    assertNotNull(ds1);
    DataSource ds2 = factory.forName("ds2");
    assertNotNull(ds2);
}
Also used : JdbcModule(io.bootique.jdbc.JdbcModule) ConfigurationFactory(io.bootique.config.ConfigurationFactory) Assert.assertNotNull(org.junit.Assert.assertNotNull) BQRuntime(io.bootique.BQRuntime) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) BQTestFactory(io.bootique.test.junit.BQTestFactory) Injector(com.google.inject.Injector) TypeRef(io.bootique.type.TypeRef) JsonTypeName(com.fasterxml.jackson.annotation.JsonTypeName) BootiqueException(io.bootique.BootiqueException) Rule(org.junit.Rule) Map(java.util.Map) DataSource(javax.sql.DataSource) Optional(java.util.Optional) Assert.fail(org.junit.Assert.fail) ProvisionException(com.google.inject.ProvisionException) DataSourceFactory(io.bootique.jdbc.DataSourceFactory) Mockito.mock(org.mockito.Mockito.mock) DataSourceFactory(io.bootique.jdbc.DataSourceFactory) BQRuntime(io.bootique.BQRuntime) DataSource(javax.sql.DataSource) ConfigurationFactory(io.bootique.config.ConfigurationFactory) Map(java.util.Map) Test(org.junit.Test)

Example 3 with TypeRef

use of io.bootique.type.TypeRef in project bootique-jdbc by bootique.

the class ManagedDataSourceFactoryProxyIT method testFactory_MultilevelNoType.

@Test
public void testFactory_MultilevelNoType() {
    BQRuntime runtime = testFactory.app("-c", "classpath:io/bootique/jdbc/factory-notype.yml").autoLoadModules().module(b -> JdbcModule.extend(b).addFactoryType(ManagedDataSourceFactoryX1.class).addFactoryType(ManagedDataSourceFactoryX2.class).addFactoryType(ManagedDataSourceFactoryX3.class)).createRuntime();
    ConfigurationFactory configFactory = runtime.getInstance(ConfigurationFactory.class);
    Map<String, ManagedDataSourceFactory> configs = configFactory.config(new TypeRef<Map<String, ManagedDataSourceFactory>>() {
    }, configPrefix);
    assertTrue(configs.get("ds1") instanceof ManagedDataSourceFactoryProxy);
    assertTrue(configs.get("ds2") instanceof ManagedDataSourceFactoryProxy);
    DataSourceFactory factory = runtime.getInstance(DataSourceFactory.class);
    DataSource ds1 = factory.forName("ds1");
    assertNotNull(ds1);
    DataSource ds2 = factory.forName("ds2");
    assertNotNull(ds2);
}
Also used : JdbcModule(io.bootique.jdbc.JdbcModule) ConfigurationFactory(io.bootique.config.ConfigurationFactory) Assert.assertNotNull(org.junit.Assert.assertNotNull) BQRuntime(io.bootique.BQRuntime) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) BQTestFactory(io.bootique.test.junit.BQTestFactory) Injector(com.google.inject.Injector) TypeRef(io.bootique.type.TypeRef) JsonTypeName(com.fasterxml.jackson.annotation.JsonTypeName) BootiqueException(io.bootique.BootiqueException) Rule(org.junit.Rule) Map(java.util.Map) DataSource(javax.sql.DataSource) Optional(java.util.Optional) Assert.fail(org.junit.Assert.fail) ProvisionException(com.google.inject.ProvisionException) DataSourceFactory(io.bootique.jdbc.DataSourceFactory) Mockito.mock(org.mockito.Mockito.mock) DataSourceFactory(io.bootique.jdbc.DataSourceFactory) BQRuntime(io.bootique.BQRuntime) ConfigurationFactory(io.bootique.config.ConfigurationFactory) Map(java.util.Map) DataSource(javax.sql.DataSource) Test(org.junit.Test)

Example 4 with TypeRef

use of io.bootique.type.TypeRef in project bootique-jdbc by bootique.

the class ManagedDataSourceFactoryProxyIT method testFactory_Hierarchical.

@Test
public void testFactory_Hierarchical() {
    BQRuntime runtime = testFactory.app("-c", "classpath:io/bootique/jdbc/factory-type.yml").autoLoadModules().module(b -> JdbcModule.extend(b).addFactoryType(ManagedDataSourceFactoryX1.class).addFactoryType(ManagedDataSourceFactoryX2.class).addFactoryType(ManagedDataSourceFactoryX3.class).addFactoryType(ManagedDataSourceFactoryX33.class).addFactoryType(ManagedDataSourceFactoryX4.class).addFactoryType(ManagedDataSourceFactoryX44.class)).createRuntime();
    ConfigurationFactory configFactory = runtime.getInstance(ConfigurationFactory.class);
    Map<String, ManagedDataSourceFactory> configs = configFactory.config(new TypeRef<Map<String, ManagedDataSourceFactory>>() {
    }, configPrefix);
    assertTrue(configs.get("ds1") instanceof ManagedDataSourceFactoryX4);
    assertTrue(configs.get("ds2") instanceof ManagedDataSourceFactoryX1);
    DataSourceFactory factory = runtime.getInstance(DataSourceFactory.class);
    DataSource ds1 = factory.forName("ds1");
    assertNotNull(ds1);
    DataSource ds2 = factory.forName("ds2");
    assertNotNull(ds2);
}
Also used : JdbcModule(io.bootique.jdbc.JdbcModule) ConfigurationFactory(io.bootique.config.ConfigurationFactory) Assert.assertNotNull(org.junit.Assert.assertNotNull) BQRuntime(io.bootique.BQRuntime) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) BQTestFactory(io.bootique.test.junit.BQTestFactory) Injector(com.google.inject.Injector) TypeRef(io.bootique.type.TypeRef) JsonTypeName(com.fasterxml.jackson.annotation.JsonTypeName) BootiqueException(io.bootique.BootiqueException) Rule(org.junit.Rule) Map(java.util.Map) DataSource(javax.sql.DataSource) Optional(java.util.Optional) Assert.fail(org.junit.Assert.fail) ProvisionException(com.google.inject.ProvisionException) DataSourceFactory(io.bootique.jdbc.DataSourceFactory) Mockito.mock(org.mockito.Mockito.mock) DataSourceFactory(io.bootique.jdbc.DataSourceFactory) BQRuntime(io.bootique.BQRuntime) DataSource(javax.sql.DataSource) ConfigurationFactory(io.bootique.config.ConfigurationFactory) Map(java.util.Map) Test(org.junit.Test)

Aggregations

JsonTypeName (com.fasterxml.jackson.annotation.JsonTypeName)4 Injector (com.google.inject.Injector)4 ProvisionException (com.google.inject.ProvisionException)4 BQRuntime (io.bootique.BQRuntime)4 BootiqueException (io.bootique.BootiqueException)4 ConfigurationFactory (io.bootique.config.ConfigurationFactory)4 DataSourceFactory (io.bootique.jdbc.DataSourceFactory)4 JdbcModule (io.bootique.jdbc.JdbcModule)4 BQTestFactory (io.bootique.test.junit.BQTestFactory)4 TypeRef (io.bootique.type.TypeRef)4 Map (java.util.Map)4 Optional (java.util.Optional)4 DataSource (javax.sql.DataSource)4 Assert.assertNotNull (org.junit.Assert.assertNotNull)4 Assert.assertTrue (org.junit.Assert.assertTrue)4 Assert.fail (org.junit.Assert.fail)4 Rule (org.junit.Rule)4 Test (org.junit.Test)4 Mockito.mock (org.mockito.Mockito.mock)4