Example usage for org.springframework.integration.jdbc StoredProcExecutor setBeanFactory

List of usage examples for org.springframework.integration.jdbc StoredProcExecutor setBeanFactory

Introduction

In this page you can find the example usage for org.springframework.integration.jdbc StoredProcExecutor setBeanFactory.

Prototype

@Override
public void setBeanFactory(BeanFactory beanFactory) 

Source Link

Document

Allows to set the optional BeanFactory which is used to add a org.springframework.expression.BeanResolver to the org.springframework.expression.spel.support.StandardEvaluationContext .

Usage

From source file:org.springframework.integration.jdbc.StoredProcExecutorTests.java

@Test
public void testStoredProcExecutorWithNullProcedureName() {

    DataSource datasource = mock(DataSource.class);

    try {/*from ww  w .ja  v  a 2 s  .c om*/
        StoredProcExecutor storedProcExecutor = new StoredProcExecutor(datasource);
        storedProcExecutor.setBeanFactory(mock(BeanFactory.class));
        storedProcExecutor.afterPropertiesSet();
    } catch (IllegalArgumentException e) {
        assertEquals(
                "You must either provide a " + "Stored Procedure Name or a Stored Procedure Name Expression.",
                e.getMessage());
        return;
    }

    fail("Exception expected.");
}

From source file:org.springframework.integration.jdbc.StoredProcExecutorTests.java

@Test
public void testGetStoredProcedureNameExpressionAsString() throws Exception {

    DataSource datasource = mock(DataSource.class);
    StoredProcExecutor storedProcExecutor = new StoredProcExecutor(datasource);

    final ExpressionFactoryBean efb = new ExpressionFactoryBean("headers['stored_procedure_name']");
    efb.afterPropertiesSet();/*  w ww  .  j a va 2s  .  com*/
    final Expression expression = efb.getObject();

    storedProcExecutor.setStoredProcedureNameExpression(expression);
    storedProcExecutor.setBeanFactory(mock(BeanFactory.class));
    storedProcExecutor.afterPropertiesSet();

    assertEquals("headers['stored_procedure_name']",
            storedProcExecutor.getStoredProcedureNameExpressionAsString());
}

From source file:org.springframework.integration.jdbc.StoredProcExecutorTests.java

@Test
public void testGetStoredProcedureNameExpressionAsString2() throws Exception {

    DataSource datasource = mock(DataSource.class);
    StoredProcExecutor storedProcExecutor = new StoredProcExecutor(datasource);

    storedProcExecutor.setStoredProcedureName("123");
    storedProcExecutor.setBeanFactory(mock(BeanFactory.class));
    storedProcExecutor.afterPropertiesSet();

    assertEquals("123", storedProcExecutor.getStoredProcedureName());
    assertEquals("123", storedProcExecutor.getStoredProcedureNameExpressionAsString());
}

From source file:org.springframework.integration.jdbc.StoredProcExecutorTests.java

@Test
public void testStoredProcExecutorWithNonResolvingExpression() throws Exception {

    final DataSource datasource = mock(DataSource.class);

    final StoredProcExecutor storedProcExecutor = new StoredProcExecutor(datasource);

    final ExpressionFactoryBean efb = new ExpressionFactoryBean("headers['stored_procedure_name']");
    efb.afterPropertiesSet();/*www  .j  a  v  a2s.co  m*/
    final Expression expression = efb.getObject();

    storedProcExecutor.setStoredProcedureNameExpression(expression);
    storedProcExecutor.setBeanFactory(mock(BeanFactory.class));

    storedProcExecutor.afterPropertiesSet();

    this.mockTheOperationsCache(storedProcExecutor);

    //This should work

    storedProcExecutor.executeStoredProcedure(
            MessageBuilder.withPayload("test").setHeader("stored_procedure_name", "123").build());

    //This should cause an exception

    try {
        storedProcExecutor.executeStoredProcedure(
                MessageBuilder.withPayload("test").setHeader("some_other_header", "123").build());
    } catch (IllegalArgumentException e) {
        assertEquals(
                "Unable to resolve Stored Procedure/Function name for the provided Expression 'headers['stored_procedure_name']'.",
                e.getMessage());
        return;
    }

    fail("IllegalArgumentException expected.");

}

From source file:org.springframework.integration.jdbc.StoredProcExecutorTests.java

@Test
public void testStoredProcExecutorJdbcCallOperationsCache() throws Exception {

    final DataSource datasource = mock(DataSource.class);

    final StoredProcExecutor storedProcExecutor = new StoredProcExecutor(datasource);

    final ExpressionFactoryBean efb = new ExpressionFactoryBean("headers['stored_procedure_name']");
    efb.afterPropertiesSet();// w  w  w.j a  v a  2s.c  o  m
    final Expression expression = efb.getObject();

    storedProcExecutor.setStoredProcedureNameExpression(expression);
    storedProcExecutor.setBeanFactory(mock(BeanFactory.class));

    storedProcExecutor.afterPropertiesSet();

    this.mockTheOperationsCache(storedProcExecutor);

    for (int i = 1; i <= 3; i++) {
        storedProcExecutor.executeStoredProcedure(
                MessageBuilder.withPayload("test").setHeader("stored_procedure_name", "123").build());
    }

    final CacheStats stats = (CacheStats) storedProcExecutor.getJdbcCallOperationsCacheStatistics();
    LOGGER.info(stats);
    LOGGER.info(stats.totalLoadTime() / 1000 / 1000);

    assertEquals(stats.hitCount(), 2);
    assertEquals(stats.missCount(), 1);
    assertEquals(stats.loadCount(), 1);

}

From source file:org.springframework.integration.jdbc.StoredProcExecutorTests.java

@Test
public void testSetJdbcCallOperationsCacheSize() throws Exception {

    final DataSource datasource = mock(DataSource.class);

    final StoredProcExecutor storedProcExecutor = new StoredProcExecutor(datasource);

    storedProcExecutor.setJdbcCallOperationsCacheSize(0);

    final ExpressionFactoryBean efb = new ExpressionFactoryBean("headers['stored_procedure_name']");
    efb.afterPropertiesSet();/*  w  w w.  j ava2  s. c o  m*/
    final Expression expression = efb.getObject();

    storedProcExecutor.setStoredProcedureNameExpression(expression);
    storedProcExecutor.setBeanFactory(mock(BeanFactory.class));

    storedProcExecutor.afterPropertiesSet();

    this.mockTheOperationsCache(storedProcExecutor);

    for (int i = 1; i <= 10; i++) {
        storedProcExecutor.executeStoredProcedure(
                MessageBuilder.withPayload("test").setHeader("stored_procedure_name", "123").build());
    }

    final CacheStats stats = (CacheStats) storedProcExecutor.getJdbcCallOperationsCacheStatistics();
    LOGGER.info(stats);
    assertEquals("Expected a cache misscount of 10", 10, stats.missCount());

}