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

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

Introduction

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

Prototype

@Override
public void afterPropertiesSet() 

Source Link

Document

Verifies parameters, sets the parameters on SimpleJdbcCallOperations and ensures the appropriate SqlParameterSourceFactory is defined when ProcedureParameter are passed in.

Usage

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

@Test
public void testStoredProcExecutorWithNullProcedureName() {

    DataSource datasource = mock(DataSource.class);

    try {//  ww w  .  j av a2  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();//from   w  w w. ja  va2  s  .co m
    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();/*from  w  ww  . j a  v a 2  s  . 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();/*from  w w  w  . j av a  2  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 <= 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();/*from  w  ww. ja  va 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 <= 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());

}