Package de.scoopgmbh.copper.persistent

Examples of de.scoopgmbh.copper.persistent.PersistentScottyEngine


    logger.info("running testAsnychResponse");
    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(60, 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());

  }
View Full Code Here


    logger.info("running testFailOnDuplicateInsert");
    final String DATA = createTestData(50);
    final ConfigurableApplicationContext context = createContext(dsContext);
    cleanDB(context.getBean(DataSource.class));
    context.getBean(DatabaseDialect.class).setRemoveWhenFinished(false);
    final PersistentScottyEngine engine = context.getBean(PersistentScottyEngine.class);
    engine.startup();
    try {
      WorkflowInstanceDescr<String> desc = new WorkflowInstanceDescr<String>(PersistentUnitTestWorkflow_NAME, DATA, "DUPLICATE#ID", 1, null);
      engine.run(desc);
      engine.run(desc);
      org.junit.Assert.fail("expected an DuplicateIdException");
    }
    catch(DuplicateIdException e) {
      // ok
    }
    finally {
      closeContext(context);
    }
    assertEquals(EngineState.STOPPED,engine.getEngineState());
    assertEquals(0,engine.getNumberOfWorkflowInstances());

 
View Full Code Here

    logger.info("running testAsnychResponse");
    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(60, 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());

  }
View Full Code Here

    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("de.scoopgmbh.copper.test.persistent.DBMockAdapterUsingPersistentUnitTestWorkflow", null);
          }
          return null;
        }
      }.run();

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

  }
View Full Code Here

    logger.info("running testWithConnectionBulkInsert");
    final int NUMB = 50;
    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());

      final List<Workflow<?>> list = new ArrayList<Workflow<?>>();
      for (int i=0; i<NUMB; i++) {
        WorkflowFactory<?> wfFactory = engine.createWorkflowFactory(PersistentUnitTestWorkflow_NAME);
        Workflow<?> wf = wfFactory.newInstance();
        list.add(wf);
      }

      new RetryingTransaction<Void>(ds) {
        @Override
        protected Void execute() throws Exception {
          engine.run(list,getConnection());
          return null;
        }
      }.run();

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

  }
View Full Code Here

    assumeFalse(skipTests());
    logger.info("running testTimeouts");
    final int NUMB = 10;
    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("de.scoopgmbh.copper.test.persistent.TimingOutPersistentUnitTestWorkflow", null);
      }

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

  }
View Full Code Here

  public void testErrorHandlingInCoreEngine(String dsContext) throws Exception {
    assumeFalse(skipTests());
    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>("de.scoopgmbh.copper.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());
  }
View Full Code Here

  public void testErrorHandlingInCoreEngine_restartAll(String dsContext) throws Exception {
    assumeFalse(skipTests());
    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>("de.scoopgmbh.copper.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());
  }
View Full Code Here

    assumeFalse(skipTests());
    logger.info("running testParentChildWorkflow");
    final int NUMB = 20;
    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("de.scoopgmbh.copper.test.persistent.subworkflow.TestParentWorkflow",null);
      }

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

    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(60, 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());
  }
View Full Code Here

TOP

Related Classes of de.scoopgmbh.copper.persistent.PersistentScottyEngine

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.