java类org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration的实例源码

TracingJdbcEventListenerTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 31 收藏 0 点赞 0 评论 0
@Before
public void init() {
    dbUrl = "h2:mem:testdb-" + new Random().nextInt();
    EnvironmentTestUtils.addEnvironment(context,
            "spring.datasource.initialize:false",
            "spring.datasource.url:jdbc:" + dbUrl);
    context.setClassLoader(new HidePackagesClassLoader("com.vladmihalcea.flexypool", "net.ttddyy.dsproxy"));
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            TraceAutoConfiguration.class,
            SleuthLogAutoConfiguration.class,
            SleuthListenerAutoConfiguration.class,
            SavingSpanReporterConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    dataSource = context.getBean(DataSource.class);
    spanReporter = context.getBean(CollectingSpanReporter.class);
}
TracingQueryExecutionListenerTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 31 收藏 0 点赞 0 评论 0
@Before
public void init() {
    dbUrl = "h2:mem:testdb-" + new Random().nextInt();
    EnvironmentTestUtils.addEnvironment(context,
            "spring.datasource.initialize:false",
            "spring.datasource.url:jdbc:" + dbUrl);
    context.setClassLoader(new HidePackagesClassLoader("com.vladmihalcea.flexypool", "com.p6spy"));
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            SavingSpanReporterConfiguration.class,
            TraceAutoConfiguration.class,
            SleuthLogAutoConfiguration.class,
            SleuthListenerAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    dataSource = context.getBean(DataSource.class);
    spanReporter = context.getBean(CollectingSpanReporter.class);
}
SleuthListenerAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 34 收藏 0 点赞 0 评论 0
@Test
public void testAddsDatasourceProxyListener() {
    context.setClassLoader(new HidePackagesClassLoader("com.vladmihalcea.flexypool", "com.p6spy"));
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            TraceAutoConfiguration.class,
            SleuthLogAutoConfiguration.class,
            SleuthListenerAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    ProxyDataSource proxyDataSource = (ProxyDataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource();
    ChainListener chainListener = proxyDataSource.getProxyConfig().getQueryListener();
    assertThat(chainListener.getListeners()).extracting("class").contains(TracingQueryExecutionListener.class);
}
DataSourceDecoratorAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 35 收藏 0 点赞 0 评论 0
@Test
public void testDecoratedHikariSpecificPropertiesIsSet() throws Exception {
    EnvironmentTestUtils.addEnvironment(context,
            "spring.datasource.type:" + HikariDataSource.class.getName(),
            "spring.datasource.hikari.catalog:test_catalog");
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();
    DataSource dataSource = context.getBean(DataSource.class);
    assertThat(dataSource).isNotNull();
    assertThat(dataSource).isInstanceOf(DecoratedDataSource.class);
    DataSource realDataSource = ((DecoratedDataSource) dataSource).getRealDataSource();
    assertThat(realDataSource).isInstanceOf(HikariDataSource.class);
    assertThat(((HikariDataSource) realDataSource).getCatalog()).isEqualTo("test_catalog");
}
DataSourceDecoratorAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 41 收藏 0 点赞 0 评论 0
@Test
public void testCustomDataSourceDecoratorApplied() throws Exception {
    System.setProperty(PropertyLoader.PROPERTIES_FILE_PATH, "db/decorator/flexy-pool.properties");
    context.register(TestDataSourceDecoratorConfiguration.class,
            DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    assertThat(dataSource).isNotNull();

    DataSource customDataSource = ((DecoratedDataSource) dataSource).getDecoratedDataSource();
    assertThat(customDataSource).isInstanceOf(CustomDataSourceProxy.class);

    DataSource realDataSource = ((DecoratedDataSource) dataSource).getRealDataSource();
    assertThat(realDataSource).isInstanceOf(org.apache.tomcat.jdbc.pool.DataSource.class);

    assertThatDataSourceDecoratingChain(dataSource).containsExactly(CustomDataSourceProxy.class, P6DataSource.class, ProxyDataSource.class, FlexyPoolDataSource.class);
}
DataSourceDecoratorAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 38 收藏 0 点赞 0 评论 0
@Test
public void testDecoratingCanBeDisabledForSpecificBeans() throws Exception {
    EnvironmentTestUtils.addEnvironment(context,
            "decorator.datasource.exclude-beans:secondDataSource");
    context.register(TestMultiDataSourceConfiguration.class,
            DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean("dataSource", DataSource.class);
    assertThat(dataSource).isInstanceOf(DecoratedDataSource.class);

    DataSource secondDataSource = context.getBean("secondDataSource", DataSource.class);
    assertThat(secondDataSource).isInstanceOf(BasicDataSource.class);
}
FlexyPoolConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 36 收藏 0 点赞 0 评论 0
@Test
public void testDecoratingHikariDataSourceWithDefaultStrategies() throws Exception {
    EnvironmentTestUtils.addEnvironment(context,
            "spring.datasource.type:" + HikariDataSource.class.getName());
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    assertDataSourceOfType(dataSource, HikariDataSource.class);
    FlexyPoolDataSource<HikariDataSource> flexyPoolDataSource = assertDataSourceOfType(dataSource, HikariDataSource.class);
    IncrementPoolOnTimeoutConnectionAcquiringStrategy strategy1 =
            findStrategy(flexyPoolDataSource, IncrementPoolOnTimeoutConnectionAcquiringStrategy.class);
    assertThat(strategy1).isNotNull();
    assertThat(strategy1).hasFieldOrPropertyWithValue("maxOverflowPoolSize", 15);
    assertThat(strategy1).hasFieldOrPropertyWithValue("timeoutMillis", 500);

    RetryConnectionAcquiringStrategy strategy2 =
            findStrategy(flexyPoolDataSource, RetryConnectionAcquiringStrategy.class);
    assertThat(strategy2).isNotNull();
    assertThat(strategy2).hasFieldOrPropertyWithValue("retryAttempts", 2);
}
FlexyPoolConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 37 收藏 0 点赞 0 评论 0
@Test
public void testDecoratingHikariDataSourceWithCustomPropertyStrategies() throws Exception {
    EnvironmentTestUtils.addEnvironment(context,
            "spring.datasource.type:" + HikariDataSource.class.getName(),
            "decorator.datasource.flexy-pool.acquiring-strategy.increment-pool.max-overflow-pool-size:15",
            "decorator.datasource.flexy-pool.acquiring-strategy.increment-pool.timeout-millis:500",
            "decorator.datasource.flexy-pool.acquiring-strategy.retry.attempts:5");
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class,
            HikariConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    FlexyPoolDataSource<HikariDataSource> flexyPoolDataSource = assertDataSourceOfType(dataSource, HikariDataSource.class);
    IncrementPoolOnTimeoutConnectionAcquiringStrategy strategy1 =
            findStrategy(flexyPoolDataSource, IncrementPoolOnTimeoutConnectionAcquiringStrategy.class);
    assertThat(strategy1).isNotNull();
    assertThat(strategy1).hasFieldOrPropertyWithValue("maxOverflowPoolSize", 35);
    assertThat(strategy1).hasFieldOrPropertyWithValue("timeoutMillis", 10000);

    RetryConnectionAcquiringStrategy strategy2 =
            findStrategy(flexyPoolDataSource, RetryConnectionAcquiringStrategy.class);
    assertThat(strategy2).isNotNull();
    assertThat(strategy2).hasFieldOrPropertyWithValue("retryAttempts", 5);
}
SecurityAutoConfigurationTests.java 文件源码 项目:https-github.com-g0t4-jenkins2-course-spring-boot 阅读 38 收藏 0 点赞 0 评论 0
@Test
public void testJpaCoexistsHappily() throws Exception {
    this.context = new AnnotationConfigWebApplicationContext();
    this.context.setServletContext(new MockServletContext());
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.datasource.url:jdbc:hsqldb:mem:testsecdb");
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.datasource.initialize:false");
    this.context.register(EntityConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class,
            DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
            SecurityAutoConfiguration.class, ServerPropertiesAutoConfiguration.class);
    // This can fail if security @Conditionals force early instantiation of the
    // HibernateJpaAutoConfiguration (e.g. the EntityManagerFactory is not found)
    this.context.refresh();
    assertThat(this.context.getBean(JpaTransactionManager.class)).isNotNull();
}
CustomHibernateJpaAutoConfigurationTests.java 文件源码 项目:https-github.com-g0t4-jenkins2-course-spring-boot 阅读 29 收藏 0 点赞 0 评论 0
@Test
public void testDefaultDdlAutoForMySql() throws Exception {
    // Set up environment so we get a MySQL database but don't require server to be
    // running...
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.datasource.driverClassName:com.mysql.jdbc.Driver",
            "spring.datasource.url:jdbc:mysql://localhost/nonexistent",
            "spring.datasource.initialize:false", "spring.jpa.database:MYSQL");
    this.context.register(TestConfiguration.class, DataSourceAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class,
            HibernateJpaAutoConfiguration.class);
    this.context.refresh();
    JpaProperties bean = this.context.getBean(JpaProperties.class);
    DataSource dataSource = this.context.getBean(DataSource.class);
    String actual = bean.getHibernateProperties(dataSource)
            .get("hibernate.hbm2ddl.auto");
    // Default is generic and safe
    assertThat(actual).isNull();
}
ProcessEngineAutoConfigurationTest.java 文件源码 项目:flowable-engine 阅读 45 收藏 0 点赞 0 评论 0
@Test
public void processEngineWithJpaEntityManager() throws Exception {
    AnnotationConfigApplicationContext context = this.context(DataSourceAutoConfiguration.class,
            HibernateJpaAutoConfiguration.class, JpaProcessEngineAutoConfiguration.JpaConfiguration.class);
    Assert.assertNotNull("entityManagerFactory should not be null", context.getBean(EntityManagerFactory.class));
    Assert.assertNotNull("the processEngine should not be null!", context.getBean(ProcessEngine.class));
    SpringProcessEngineConfiguration configuration = context.getBean(SpringProcessEngineConfiguration.class);
    Assert.assertNotNull("the " + SpringProcessEngineConfiguration.class.getName() + " should not be null", configuration);
    Assert.assertNotNull(configuration.getJpaEntityManagerFactory());
}
SecurityAutoConfigurationTests.java 文件源码 项目:spring-boot-concourse 阅读 45 收藏 0 点赞 0 评论 0
@Test
public void testJpaCoexistsHappily() throws Exception {
    this.context = new AnnotationConfigWebApplicationContext();
    this.context.setServletContext(new MockServletContext());
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.datasource.url:jdbc:hsqldb:mem:testsecdb");
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.datasource.initialize:false");
    this.context.register(EntityConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class,
            DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
            SecurityAutoConfiguration.class, ServerPropertiesAutoConfiguration.class);
    // This can fail if security @Conditionals force early instantiation of the
    // HibernateJpaAutoConfiguration (e.g. the EntityManagerFactory is not found)
    this.context.refresh();
    assertThat(this.context.getBean(JpaTransactionManager.class)).isNotNull();
}
CustomHibernateJpaAutoConfigurationTests.java 文件源码 项目:spring-boot-concourse 阅读 33 收藏 0 点赞 0 评论 0
@Test
public void testDefaultDdlAutoForMySql() throws Exception {
    // Set up environment so we get a MySQL database but don't require server to be
    // running...
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.datasource.driverClassName:com.mysql.jdbc.Driver",
            "spring.datasource.url:jdbc:mysql://localhost/nonexistent",
            "spring.datasource.initialize:false", "spring.jpa.database:MYSQL");
    this.context.register(TestConfiguration.class, DataSourceAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class,
            HibernateJpaAutoConfiguration.class);
    this.context.refresh();
    JpaProperties bean = this.context.getBean(JpaProperties.class);
    DataSource dataSource = this.context.getBean(DataSource.class);
    String actual = bean.getHibernateProperties(dataSource)
            .get("hibernate.hbm2ddl.auto");
    // Default is generic and safe
    assertThat(actual).isNull();
}
SecurityAutoConfigurationTests.java 文件源码 项目:contestparser 阅读 33 收藏 0 点赞 0 评论 0
@Test
public void testJpaCoexistsHappily() throws Exception {
    this.context = new AnnotationConfigWebApplicationContext();
    this.context.setServletContext(new MockServletContext());
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.datasource.url:jdbc:hsqldb:mem:testsecdb");
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.datasource.initialize:false");
    this.context.register(EntityConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class,
            DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
            SecurityAutoConfiguration.class, ServerPropertiesAutoConfiguration.class);
    // This can fail if security @Conditionals force early instantiation of the
    // HibernateJpaAutoConfiguration (e.g. the EntityManagerFactory is not found)
    this.context.refresh();
    assertNotNull(this.context.getBean(JpaTransactionManager.class));
}
CustomHibernateJpaAutoConfigurationTests.java 文件源码 项目:contestparser 阅读 26 收藏 0 点赞 0 评论 0
@Test
public void testDefaultDdlAutoForMySql() throws Exception {
    // Set up environment so we get a MySQL database but don't require server to be
    // running...
    EnvironmentTestUtils.addEnvironment(this.context,
            "spring.datasource.driverClassName:com.mysql.jdbc.Driver",
            "spring.datasource.url:jdbc:mysql://localhost/nonexistent",
            "spring.datasource.initialize:false", "spring.jpa.database:MYSQL");
    this.context.register(TestConfiguration.class, DataSourceAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class,
            HibernateJpaAutoConfiguration.class);
    this.context.refresh();
    JpaProperties bean = this.context.getBean(JpaProperties.class);
    DataSource dataSource = this.context.getBean(DataSource.class);
    String actual = bean.getHibernateProperties(dataSource)
            .get("hibernate.hbm2ddl.auto");
    // Default is generic and safe
    assertThat(actual, nullValue());
}
SleuthListenerAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 34 收藏 0 点赞 0 评论 0
@Test
public void testAddsP6SpyListener() {
    context.setClassLoader(new HidePackagesClassLoader("com.vladmihalcea.flexypool", "net.ttddyy.dsproxy"));
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            TraceAutoConfiguration.class,
            SleuthLogAutoConfiguration.class,
            SleuthListenerAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    JdbcEventListenerFactory jdbcEventListenerFactory = context.getBean(JdbcEventListenerFactory.class);
    CompoundJdbcEventListener jdbcEventListener = (CompoundJdbcEventListener) jdbcEventListenerFactory.createJdbcEventListener();
    assertThat(jdbcEventListener.getEventListeners()).extracting("class").contains(TracingJdbcEventListener.class);
}
SleuthListenerAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 32 收藏 0 点赞 0 评论 0
@Test
public void testDoesNotAddP6SpyListenerIfNoTracer() {
    context.setClassLoader(new HidePackagesClassLoader("com.vladmihalcea.flexypool", "net.ttddyy.dsproxy"));
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            SleuthListenerAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    JdbcEventListenerFactory jdbcEventListenerFactory = context.getBean(JdbcEventListenerFactory.class);
    CompoundJdbcEventListener jdbcEventListener = (CompoundJdbcEventListener) jdbcEventListenerFactory.createJdbcEventListener();
    assertThat(jdbcEventListener.getEventListeners()).extracting("class").doesNotContain(TracingJdbcEventListener.class);
}
SleuthListenerAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 31 收藏 0 点赞 0 评论 0
@Test
public void testDoesntAddDatasourceProxyListenerIfNoTracer() {
    context.setClassLoader(new HidePackagesClassLoader("com.vladmihalcea.flexypool", "com.p6spy"));
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            SleuthListenerAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    ProxyDataSource proxyDataSource = (ProxyDataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource();
    ChainListener chainListener = proxyDataSource.getProxyConfig().getQueryListener();
    assertThat(chainListener.getListeners()).extracting("class").doesNotContain(TracingQueryExecutionListener.class);
}
P6SpyConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 34 收藏 0 点赞 0 评论 0
@Test
public void testCustomListeners() throws Exception {
    context.register(CustomListenerConfiguration.class,
            DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    JdbcEventListenerFactory jdbcEventListenerFactory = context.getBean(JdbcEventListenerFactory.class);
    GetCountingListener getCountingListener = context.getBean(GetCountingListener.class);
    ClosingCountingListener closingCountingListener = context.getBean(ClosingCountingListener.class);
    P6DataSource p6DataSource = (P6DataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource();
    assertThat(p6DataSource).extracting("jdbcEventListenerFactory").containsOnly(jdbcEventListenerFactory);

    CompoundJdbcEventListener jdbcEventListener = (CompoundJdbcEventListener) jdbcEventListenerFactory.createJdbcEventListener();

    assertThat(jdbcEventListener.getEventListeners()).contains(getCountingListener, closingCountingListener);
    assertThat(getCountingListener.connectionCount).isEqualTo(0);

    Connection connection1 = p6DataSource.getConnection();

    assertThat(getCountingListener.connectionCount).isEqualTo(1);
    assertThat(closingCountingListener.connectionCount).isEqualTo(0);

    Connection connection2 = p6DataSource.getConnection();

    assertThat(getCountingListener.connectionCount).isEqualTo(2);

    connection1.close();

    assertThat(closingCountingListener.connectionCount).isEqualTo(1);

    connection2.close();

    assertThat(closingCountingListener.connectionCount).isEqualTo(2);
}
ProxyDataSourceConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 28 收藏 0 点赞 0 评论 0
@Test
public void testRegisterLogAndSlowQueryLogByDefaultToSlf4j() throws Exception {
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    ProxyDataSource proxyDataSource = (ProxyDataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource();
    ChainListener chainListener = proxyDataSource.getProxyConfig().getQueryListener();
    assertThat(chainListener.getListeners()).extracting("class").contains(SLF4JSlowQueryListener.class);
    assertThat(chainListener.getListeners()).extracting("class").contains(SLF4JQueryLoggingListener.class);
}
ProxyDataSourceConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 36 收藏 0 点赞 0 评论 0
@Test
public void testRegisterLogAndSlowQueryLogUsingSlf4j() throws Exception {
    EnvironmentTestUtils.addEnvironment(context,
            "decorator.datasource.datasource-proxy.logging:slf4j");
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    ProxyDataSource proxyDataSource = (ProxyDataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource();
    ChainListener chainListener = proxyDataSource.getProxyConfig().getQueryListener();
    assertThat(chainListener.getListeners()).extracting("class").contains(SLF4JSlowQueryListener.class);
    assertThat(chainListener.getListeners()).extracting("class").contains(SLF4JQueryLoggingListener.class);
}
ProxyDataSourceConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 31 收藏 0 点赞 0 评论 0
@Test
public void testRegisterLogAndSlowQueryLogUsingJUL() throws Exception {
    EnvironmentTestUtils.addEnvironment(context,
            "decorator.datasource.datasourceProxy.logging:jul");
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    ProxyDataSource proxyDataSource = (ProxyDataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource();
    ChainListener chainListener = proxyDataSource.getProxyConfig().getQueryListener();
    assertThat(chainListener.getListeners()).extracting("class").contains(JULSlowQueryListener.class);
    assertThat(chainListener.getListeners()).extracting("class").contains(JULQueryLoggingListener.class);
}
ProxyDataSourceConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 33 收藏 0 点赞 0 评论 0
@Test
public void testRegisterLogAndSlowQueryLogUsingApacheCommons() throws Exception {
    EnvironmentTestUtils.addEnvironment(context,
            "decorator.datasource.datasourceProxy.logging:commons");
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    ProxyDataSource proxyDataSource = (ProxyDataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource();
    ChainListener chainListener = proxyDataSource.getProxyConfig().getQueryListener();
    assertThat(chainListener.getListeners()).extracting("class").contains(CommonsSlowQueryListener.class);
    assertThat(chainListener.getListeners()).extracting("class").contains(CommonsQueryLoggingListener.class);
}
ProxyDataSourceConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 29 收藏 0 点赞 0 评论 0
@Test
public void testCustomParameterAndQueryTransformer() throws Exception {
    context.register(CustomParameterAndQueryTransformerConfiguration.class,
            DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    ProxyDataSource proxyDataSource = (ProxyDataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource();
    ParameterTransformer parameterTransformer = context.getBean(ParameterTransformer.class);
    QueryTransformer queryTransformer = context.getBean(QueryTransformer.class);
    assertThat(proxyDataSource.getProxyConfig().getParameterTransformer()).isSameAs(parameterTransformer);
    assertThat(proxyDataSource.getProxyConfig().getQueryTransformer()).isSameAs(queryTransformer);
}
ProxyDataSourceConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 35 收藏 0 点赞 0 评论 0
@Test
public void testCustomListeners() throws Exception {
    context.register(CustomListenerConfiguration.class,
            DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    ProxyDataSource proxyDataSource = (ProxyDataSource) ((DecoratedDataSource) dataSource).getDecoratedDataSource();
    QueryExecutionListener queryExecutionListener = context.getBean(QueryExecutionListener.class);

    ChainListener chainListener = proxyDataSource.getProxyConfig().getQueryListener();
    assertThat(chainListener.getListeners()).contains(queryExecutionListener);
}
DataSourceDecoratorAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 33 收藏 0 点赞 0 评论 0
@Test
public void testDecoratingInDefaultOrder() throws Exception {
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);

    assertThatDataSourceDecoratingChain(dataSource).containsExactly(P6DataSource.class, ProxyDataSource.class, FlexyPoolDataSource.class);
}
DataSourceDecoratorAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 29 收藏 0 点赞 0 评论 0
@Test
public void testNoDecoratingForExcludeBeans() throws Exception {
    EnvironmentTestUtils.addEnvironment(context,
            "decorator.datasource.exclude-beans:dataSource");
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);

    assertThat(dataSource).isInstanceOf(org.apache.tomcat.jdbc.pool.DataSource.class);
}
DataSourceDecoratorAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 40 收藏 0 点赞 0 评论 0
@Test
public void testDecoratingWhenDefaultProxyProviderNotAvailable() throws Exception {
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.setClassLoader(new HidePackagesClassLoader("com.vladmihalcea.flexypool"));
    context.refresh();
    DataSource dataSource = context.getBean(DataSource.class);

    assertThat(((DecoratedDataSource) dataSource).getRealDataSource()).isInstanceOf(org.apache.tomcat.jdbc.pool.DataSource.class);
    assertThatDataSourceDecoratingChain(dataSource).containsExactly(P6DataSource.class, ProxyDataSource.class);
}
DataSourceDecoratorAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 43 收藏 0 点赞 0 评论 0
@Test
public void testDefaultDataSourceIsDecorated() throws Exception {
    context.register(TestDataSourceConfiguration.class,
            DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();
    DataSource dataSource = context.getBean(DataSource.class);
    assertThat(dataSource).isInstanceOf(DecoratedDataSource.class);
    DataSource realDataSource = ((DecoratedDataSource) dataSource).getRealDataSource();
    assertThat(realDataSource).isInstanceOf(BasicDataSource.class);
}
DataSourceDecoratorAutoConfigurationTests.java 文件源码 项目:spring-boot-data-source-decorator 阅读 29 收藏 0 点赞 0 评论 0
@Test
public void testDecoratingCanBeDisabled() throws Exception {
    EnvironmentTestUtils.addEnvironment(context,
            "decorator.datasource.enabled:false");
    context.register(DataSourceAutoConfiguration.class,
            DataSourceDecoratorAutoConfiguration.class,
            PropertyPlaceholderAutoConfiguration.class);
    context.refresh();

    DataSource dataSource = context.getBean(DataSource.class);
    assertThat(dataSource).isInstanceOf(org.apache.tomcat.jdbc.pool.DataSource.class);
}


问题


面经


文章

微信
公众号

扫码关注公众号