Example usage for org.springframework.context ConfigurableApplicationContext getBean

List of usage examples for org.springframework.context ConfigurableApplicationContext getBean

Introduction

In this page you can find the example usage for org.springframework.context ConfigurableApplicationContext getBean.

Prototype

Object getBean(String name) throws BeansException;

Source Link

Document

Return an instance, which may be shared or independent, of the specified bean.

Usage

From source file:org.copperengine.core.test.persistent.BasePersistentWorkflowTest.java

public void testAsynchResponse(String dsContext) throws Exception {
    assumeFalse(skipTests());/*from w  w w . java2 s . co  m*/
    logger.info("running testAsynchResponse");
    final int NUMB = 50;
    final String DATA = createTestData(50);
    final ConfigurableApplicationContext context = createContext(dsContext);
    cleanDB(context.getBean(DataSource.class));
    final PersistentScottyEngine engine = context.getBean(PersistentScottyEngine.class);
    engine.startup();
    final BackChannelQueue backChannelQueue = context.getBean(BackChannelQueue.class);
    try {
        assertEquals(EngineState.STARTED, engine.getEngineState());

        for (int i = 0; i < NUMB; i++) {
            engine.run(PersistentUnitTestWorkflow_NAME, DATA);
        }

        for (int i = 0; i < NUMB; i++) {
            WorkflowResult x = backChannelQueue.dequeue(DEQUEUE_TIMEOUT, TimeUnit.SECONDS);
            assertNotNull(x);
            assertNotNull(x.getResult());
            assertNotNull(x.getResult().toString().length() == DATA.length());
            assertNull(x.getException());
        }
    } finally {
        closeContext(context);
    }
    assertEquals(EngineState.STOPPED, engine.getEngineState());
    assertEquals(0, engine.getNumberOfWorkflowInstances());

}

From source file:org.copperengine.core.test.persistent.BasePersistentWorkflowTest.java

public void testAsynchResponseLargeData(String dsContext, int dataSize) throws Exception {
    assumeFalse(skipTests());//from  www .  j a va2  s . c o m
    logger.info("running testAsynchResponse");
    final int NUMB = 20;
    final String DATA = createTestData(dataSize);
    final ConfigurableApplicationContext context = createContext(dsContext);
    cleanDB(context.getBean(DataSource.class));
    final PersistentScottyEngine engine = context.getBean(PersistentScottyEngine.class);
    engine.startup();
    final BackChannelQueue backChannelQueue = context.getBean(BackChannelQueue.class);
    try {
        assertEquals(EngineState.STARTED, engine.getEngineState());

        for (int i = 0; i < NUMB; i++) {
            engine.run(PersistentUnitTestWorkflow_NAME, DATA);
        }

        for (int i = 0; i < NUMB; i++) {
            WorkflowResult x = backChannelQueue.dequeue(DEQUEUE_TIMEOUT, TimeUnit.SECONDS);
            assertNotNull(x);
            assertNotNull(x.getResult());
            assertNotNull(x.getResult().toString().length() == DATA.length());
            assertNull(x.getException());
        }
    } finally {
        closeContext(context);
    }
    assertEquals(EngineState.STOPPED, engine.getEngineState());
    assertEquals(0, engine.getNumberOfWorkflowInstances());

}

From source file:org.copperengine.core.test.persistent.BasePersistentWorkflowTest.java

public void testErrorHandlingWithWaitHook(String dsContext) throws Exception {
    assumeFalse(skipTests());// w ww  .  ja  v a  2 s .  c o  m
    final ConfigurableApplicationContext context = createContext(dsContext);
    cleanDB(context.getBean(DataSource.class));
    final PersistentScottyEngine engine = context.getBean(PersistentScottyEngine.class);
    try {
        engine.startup();
        final WorkflowInstanceDescr<Serializable> wfInstanceDescr = new WorkflowInstanceDescr<Serializable>(
                "org.copperengine.core.test.persistent.ErrorWaitHookUnitTestWorkflow");
        wfInstanceDescr.setId(engine.createUUID());
        engine.run(wfInstanceDescr, null);
        Thread.sleep(2500);
        // check
        new RetryingTransaction<Void>(context.getBean(DataSource.class)) {
            @Override
            protected Void execute() throws Exception {
                Statement stmt = createStatement(getConnection());
                ResultSet rs = stmt.executeQuery("select * from COP_WORKFLOW_INSTANCE_ERROR");
                assertTrue(rs.next());
                assertEquals(wfInstanceDescr.getId(), rs.getString("WORKFLOW_INSTANCE_ID"));
                assertNotNull(rs.getString("EXCEPTION"));
                assertFalse(rs.next());
                rs.close();
                stmt.close();
                return null;
            }
        }.run();
    } finally {
        closeContext(context);
    }
    assertEquals(EngineState.STOPPED, engine.getEngineState());
    assertEquals(0, engine.getNumberOfWorkflowInstances());
}

From source file:org.copperengine.core.test.persistent.BasePersistentWorkflowTest.java

public void testAutoCommit(String dsContext) throws Exception {
    assumeFalse(skipTests());/*from w  w  w.j  a  v  a 2s  .c o m*/
    logger.info("running testAutoCommit");
    final ConfigurableApplicationContext context = createContext(dsContext);
    try {
        DataSource ds = context.getBean(DataSource.class);
        new RetryingTransaction<Void>(ds) {
            @Override
            protected Void execute() throws Exception {
                assertFalse(getConnection().getAutoCommit());
                return null;
            }
        };
    } finally {
        closeContext(context);
    }
}

From source file:org.copperengine.core.test.persistent.BasePersistentWorkflowTest.java

public void testNotifyWithoutEarlyResponseHandling(String dsContext) throws Exception {
    assumeFalse(skipTests());/*from   ww w  . ja va2  s .co m*/
    logger.info("running testNotifyWithoutEarlyResponseHandling");
    final ConfigurableApplicationContext context = createContext(dsContext);
    cleanDB(context.getBean(DataSource.class));
    final PersistentScottyEngine engine = context.getBean(PersistentScottyEngine.class);
    try {
        engine.startup();
        new RetryingTransaction<Void>(context.getBean(DataSource.class)) {
            @Override
            protected Void execute() throws Exception {
                try {
                    Response<?> response = new Response<String>("CID#withEarlyResponse", "TEST", null);
                    engine.notify(response, getConnection());
                    Statement stmt = createStatement(getConnection());
                    ResultSet rs = stmt.executeQuery("select * from COP_RESPONSE");
                    assertTrue(rs.next());
                    assertEquals(response.getCorrelationId(), rs.getString("CORRELATION_ID"));
                    assertFalse(rs.next());
                    getConnection().rollback();

                    response = new Response<String>("CID#withoutEarlyResponse", "TEST", null);
                    response.setEarlyResponseHandling(false);
                    engine.notify(response, getConnection());
                    rs = stmt.executeQuery("select * from COP_RESPONSE");
                    assertFalse(rs.next());
                    rs.close();
                    stmt.close();
                    getConnection().rollback();
                } catch (Exception e) {
                    logger.error("testNotifyWithoutEarlyResponseHandling failed", e);
                    throw e;
                }
                return null;
            }
        }.run();
    } finally {
        closeContext(context);
    }
    assertEquals(EngineState.STOPPED, engine.getEngineState());
    assertEquals(0, engine.getNumberOfWorkflowInstances());

}

From source file:org.copperengine.core.test.persistent.BasePersistentWorkflowTest.java

public void testErrorKeepWorkflowInstanceInDB(String dsContext) throws Exception {
    assumeFalse(skipTests());/*w w w.  j av  a2 s  . co  m*/
    logger.info("running testErrorKeepWorkflowInstanceInDB");
    final int NUMB = 20;
    final String DATA = createTestData(50);
    final ConfigurableApplicationContext context = createContext(dsContext);
    cleanDB(context.getBean(DataSource.class));
    final PersistentScottyEngine engine = context.getBean(PersistentScottyEngine.class);
    final ScottyDBStorageInterface dbStorageInterface = context.getBean(ScottyDBStorageInterface.class);
    dbStorageInterface.setRemoveWhenFinished(false);
    engine.startup();
    final BackChannelQueue backChannelQueue = context.getBean(BackChannelQueue.class);
    try {
        assertEquals(EngineState.STARTED, engine.getEngineState());

        for (int i = 0; i < NUMB; i++) {
            engine.run(PersistentUnitTestWorkflow_NAME, DATA);
        }

        for (int i = 0; i < NUMB; i++) {
            WorkflowResult x = backChannelQueue.dequeue(DEQUEUE_TIMEOUT, TimeUnit.SECONDS);
            assertNotNull(x);
            assertNotNull(x.getResult());
            assertNotNull(x.getResult().toString().length() == DATA.length());
            assertNull(x.getException());
        }

        new RetryingTransaction<Void>(context.getBean(DataSource.class)) {
            @Override
            protected Void execute() throws Exception {
                Statement stmt = createStatement(getConnection());
                ResultSet rs = stmt.executeQuery("select count(*) from COP_WORKFLOW_INSTANCE");
                assertTrue(rs.next());
                int x = rs.getInt(1);
                assertEquals(NUMB, x);
                rs.close();
                stmt.close();
                return null;
            }
        }.run();

    } finally {
        closeContext(context);
    }
    assertEquals(EngineState.STOPPED, engine.getEngineState());
    assertEquals(0, engine.getNumberOfWorkflowInstances());
}

From source file:org.copperengine.core.test.persistent.BasePersistentWorkflowTest.java

public void testCompressedAuditTrail(String dsContext) throws Exception {
    assumeFalse(skipTests());/*  www  . j a v a2  s . c  o m*/
    logger.info("running testCompressedAuditTrail");
    final int NUMB = 20;
    final String DATA = createTestData(50);
    final ConfigurableApplicationContext context = createContext(dsContext);
    context.getBean(BatchingAuditTrail.class).setMessagePostProcessor(new CompressedBase64PostProcessor());
    cleanDB(context.getBean(DataSource.class));
    final PersistentScottyEngine engine = context.getBean(PersistentScottyEngine.class);
    engine.startup();
    final BackChannelQueue backChannelQueue = context.getBean(BackChannelQueue.class);
    try {
        assertEquals(EngineState.STARTED, engine.getEngineState());

        for (int i = 0; i < NUMB; i++) {
            engine.run(PersistentUnitTestWorkflow_NAME, DATA);
        }

        for (int i = 0; i < NUMB; i++) {
            WorkflowResult x = backChannelQueue.dequeue(DEQUEUE_TIMEOUT, TimeUnit.SECONDS);
            assertNotNull(x);
            assertNotNull(x.getResult());
            assertNotNull(x.getResult().toString().length() == DATA.length());
            assertNull(x.getException());
        }
        Thread.sleep(1000);

        new RetryingTransaction<Void>(context.getBean(DataSource.class)) {
            @Override
            protected Void execute() throws Exception {
                Statement stmt = createStatement(getConnection());
                ResultSet rs = stmt.executeQuery(
                        "select unique message from (select dbms_lob.substr(long_message, 4000, 1 ) message from COP_AUDIT_TRAIL_EVENT) order by 1 asc");
                assertTrue(rs.next());
                // logger.info("\""+new CompressedBase64PostProcessor().deserialize(rs.getString(1))+"\"");
                // System.out.println(new CompressedBase64PostProcessor().deserialize(rs.getString(1)));
                assertEquals("finished", new CompressedBase64PostProcessor().deserialize(rs.getString(1)));
                assertTrue(rs.next());
                assertEquals("foo successfully called",
                        new CompressedBase64PostProcessor().deserialize(rs.getString(1)));
                // System.out.println(new CompressedBase64PostProcessor().deserialize(rs.getString(1)));
                assertFalse(rs.next());
                rs.close();
                stmt.close();
                return null;
            }
        }.run();

    } catch (Exception e) {
        logger.error("testCompressedAuditTrail failed", e);
        throw e;
    } finally {
        closeContext(context);
    }
    assertEquals(EngineState.STOPPED, engine.getEngineState());
    assertEquals(0, engine.getNumberOfWorkflowInstances());

}

From source file:org.copperengine.core.test.persistent.BasePersistentWorkflowTest.java

public void testWithConnection(String dsContext) throws Exception {
    assumeFalse(skipTests());//from   w  ww. j  a  v a 2 s  .co m
    logger.info("running testWithConnection");
    final int NUMB = 20;
    final ConfigurableApplicationContext context = createContext(dsContext);
    final DataSource ds = context.getBean(DataSource.class);
    cleanDB(ds);
    final PersistentScottyEngine engine = context.getBean(PersistentScottyEngine.class);
    engine.startup();
    final BackChannelQueue backChannelQueue = context.getBean(BackChannelQueue.class);
    try {
        assertEquals(EngineState.STARTED, engine.getEngineState());

        new RetryingTransaction<Void>(ds) {
            @Override
            protected Void execute() throws Exception {
                for (int i = 0; i < NUMB; i++) {
                    engine.run(new WorkflowInstanceDescr<Serializable>(
                            "org.copperengine.core.test.persistent.DBMockAdapterUsingPersistentUnitTestWorkflow"),
                            getConnection());
                }
                return null;
            }
        }.run();

        for (int i = 0; i < NUMB; i++) {
            WorkflowResult x = backChannelQueue.dequeue(DEQUEUE_TIMEOUT, TimeUnit.SECONDS);
            assertNotNull(x);
            assertNull(x.getResult());
            assertNull(x.getException());
        }
    } finally {
        closeContext(context);
    }
    assertEquals(EngineState.STOPPED, engine.getEngineState());
    assertEquals(0, engine.getNumberOfWorkflowInstances());

}

From source file:org.copperengine.core.test.persistent.BasePersistentWorkflowTest.java

public void testErrorHandlingInCoreEngine(String dsContext) throws Exception {
    assumeFalse(skipTests());//from  www  . ja v a2  s .c om
    final ConfigurableApplicationContext context = createContext(dsContext);
    cleanDB(context.getBean(DataSource.class));
    final PersistentScottyEngine engine = context.getBean(PersistentScottyEngine.class);
    try {
        engine.startup();
        final WorkflowInstanceDescr<Serializable> wfInstanceDescr = new WorkflowInstanceDescr<Serializable>(
                "org.copperengine.core.test.persistent.ExceptionThrowingPersistentUnitTestWorkflow");
        wfInstanceDescr.setId(engine.createUUID());
        engine.run(wfInstanceDescr);
        Thread.sleep(5000);
        // check
        new RetryingTransaction<Void>(context.getBean(DataSource.class)) {
            @Override
            protected Void execute() throws Exception {
                Statement stmt = createStatement(getConnection());
                ResultSet rs = stmt.executeQuery("select * from COP_WORKFLOW_INSTANCE_ERROR");
                assertTrue(rs.next());
                assertEquals(wfInstanceDescr.getId(), rs.getString("WORKFLOW_INSTANCE_ID"));
                assertNotNull(rs.getString("EXCEPTION"));
                assertFalse(rs.next());
                rs.close();
                stmt.close();
                return null;
            }
        }.run();
        engine.restart(wfInstanceDescr.getId());
        Thread.sleep(5000);
        new RetryingTransaction<Void>(context.getBean(DataSource.class)) {
            @Override
            protected Void execute() throws Exception {
                Statement stmt = createStatement(getConnection());
                ResultSet rs = stmt.executeQuery("select * from COP_WORKFLOW_INSTANCE_ERROR");
                assertTrue(rs.next());
                assertEquals(wfInstanceDescr.getId(), rs.getString("WORKFLOW_INSTANCE_ID"));
                assertNotNull(rs.getString("EXCEPTION"));
                assertTrue(rs.next());
                assertEquals(wfInstanceDescr.getId(), rs.getString("WORKFLOW_INSTANCE_ID"));
                assertNotNull(rs.getString("EXCEPTION"));
                assertFalse(rs.next());
                rs.close();
                stmt.close();
                return null;
            }
        }.run();
    } finally {
        closeContext(context);
    }
    assertEquals(EngineState.STOPPED, engine.getEngineState());
    assertEquals(0, engine.getNumberOfWorkflowInstances());
}

From source file:org.copperengine.core.test.persistent.BasePersistentWorkflowTest.java

public void testErrorHandlingInCoreEngine_restartAll(String dsContext) throws Exception {
    assumeFalse(skipTests());/*  www. ja va  2  s .  c o m*/
    final ConfigurableApplicationContext context = createContext(dsContext);
    cleanDB(context.getBean(DataSource.class));
    final PersistentScottyEngine engine = context.getBean(PersistentScottyEngine.class);
    try {
        engine.startup();
        final WorkflowInstanceDescr<Serializable> wfInstanceDescr = new WorkflowInstanceDescr<Serializable>(
                "org.copperengine.core.test.persistent.ExceptionThrowingPersistentUnitTestWorkflow");
        wfInstanceDescr.setId(engine.createUUID());
        engine.run(wfInstanceDescr);
        Thread.sleep(5000);
        // check
        new RetryingTransaction<Void>(context.getBean(DataSource.class)) {
            @Override
            protected Void execute() throws Exception {
                Statement stmt = createStatement(getConnection());
                ResultSet rs = stmt.executeQuery("select * from COP_WORKFLOW_INSTANCE_ERROR");
                assertTrue(rs.next());
                assertEquals(wfInstanceDescr.getId(), rs.getString("WORKFLOW_INSTANCE_ID"));
                assertNotNull(rs.getString("EXCEPTION"));
                assertFalse(rs.next());
                rs.close();
                stmt.close();
                return null;
            }
        }.run();
        engine.restartAll();
        Thread.sleep(5000);
        new RetryingTransaction<Void>(context.getBean(DataSource.class)) {
            @Override
            protected Void execute() throws Exception {
                Statement stmt = createStatement(getConnection());
                ResultSet rs = stmt.executeQuery("select * from COP_WORKFLOW_INSTANCE_ERROR");
                assertTrue(rs.next());
                assertEquals(wfInstanceDescr.getId(), rs.getString("WORKFLOW_INSTANCE_ID"));
                assertNotNull(rs.getString("EXCEPTION"));
                assertTrue(rs.next());
                assertEquals(wfInstanceDescr.getId(), rs.getString("WORKFLOW_INSTANCE_ID"));
                assertNotNull(rs.getString("EXCEPTION"));
                assertFalse(rs.next());
                rs.close();
                stmt.close();
                return null;
            }
        }.run();
    } finally {
        closeContext(context);
    }
    assertEquals(EngineState.STOPPED, engine.getEngineState());
    assertEquals(0, engine.getNumberOfWorkflowInstances());
}