@BeforeClass public static void setup() throws MalformedURLException { testWrkInst = new WorkflowInstance(); testWrkFlw = new Workflow(); testTask = new WorkflowTask(); testCond = new WorkflowCondition(); Metadata sharedContext = new Metadata(); // to check if the path already exists and to delete if it does exist if (new File(catalogPath).exists()) { try { FileUtils.deleteDirectory(new File(catalogPath)); } catch (IOException e) { fail(e.getMessage()); } } repo = new LuceneWorkflowInstanceRepository(catalogPath, stdPgSz); testWrkFlw.setName("test.getMetadataWorkflow"); testWrkFlw.setId("test.id"); List tasks = new Vector(); List conds = new Vector(); testCond.setConditionId("test.cond.id"); testCond.setConditionInstanceClassName("test.class"); testCond.setConditionName("test.cond.name"); testCond.setOrder(1); conds.add(testCond); testTask.setTaskConfig(new WorkflowTaskConfiguration()); testTask.setTaskId("test.task.id"); testTask.setConditions(conds); testTask.setOrder(1); testTask.setTaskInstanceClassName("test.class"); testTask.setTaskName("test.task.name"); tasks.add(testTask); testWrkFlw.setTasks(tasks); testWrkInst.setCurrentTaskId("test.task"); testWrkInst.setStatus("STARTED"); testWrkInst.setWorkflow(testWrkFlw); sharedContext.addMetadata("key1", "val1"); sharedContext.addMetadata("key1", "val2"); sharedContext.addMetadata("key1", "val3"); sharedContext.addMetadata("key2", "val4"); sharedContext.addMetadata("key2", "val5"); testWrkInst.setSharedContext(sharedContext); startXmlRpcWorkflowManager(); startWorkflow(); fmc = new XmlRpcWorkflowManagerClient(new URL("http://localhost:" + WM_PORT)); }
@Test public void testAddWorkflow() throws RepositoryException { DataSourceWorkflowRepository repo = new DataSourceWorkflowRepository(ds); Workflow w = new Workflow(); w.setId("50"); w.setName("Manual"); WorkflowTask t = new WorkflowTask(); t.setTaskId("1"); List<WorkflowTask> l = new ArrayList<WorkflowTask>(); l.add(t); w.setTasks(l); String workflow = repo.addWorkflow(w); assertThat(workflow, notNullValue()); assertThat(workflow, equalTo("50")); // TODO GET WORKFLOW }
public Workflow getWorkflowByName(String workflowName, boolean getTasks) throws RepositoryException { Connection conn = null; Statement statement = null; ResultSet rs = null; Workflow workflow = null; try { conn = dataSource.getConnection(); statement = conn.createStatement(); String getWorkflowSql = "SELECT * from workflows WHERE workflow_name = '" + workflowName + "'"; LOG.log(Level.FINE, "getWorkflowByName: Executing: " + getWorkflowSql); rs = statement.executeQuery(getWorkflowSql); while (rs.next()) { workflow = DbStructFactory.getWorkflow(rs); if (getTasks) { workflow.setTasks(getTasksByWorkflowId(workflow.getId())); } } } catch (Exception e) { e.printStackTrace(); LOG.log(Level.WARNING, "Exception getting workflow. Message: " + e.getMessage()); try { conn.rollback(); } catch (SQLException e2) { LOG.log( Level.SEVERE, "Unable to rollback getWorkflowByName transaction. Message: " + e2.getMessage()); } throw new RepositoryException(e.getMessage()); } finally { if (rs != null) { try { rs.close(); } catch (SQLException ignore) { } rs = null; } if (statement != null) { try { statement.close(); } catch (SQLException ignore) { } statement = null; } if (conn != null) { try { conn.close(); } catch (SQLException ignore) { } conn = null; } } return workflow; }
public List getWorkflowsForEvent(String eventName, boolean getTasks) throws RepositoryException { Connection conn = null; Statement statement = null; ResultSet rs = null; List workflows = null; try { conn = dataSource.getConnection(); statement = conn.createStatement(); String getWorkflowSql = "SELECT * from workflows, event_workflow_map WHERE event_workflow_map.workflow_id = workflows.workflow_id " + "AND event_workflow_map.event_name = '" + eventName + "'"; LOG.log(Level.FINE, "getWorkflowsForEvent: Executing: " + getWorkflowSql); rs = statement.executeQuery(getWorkflowSql); workflows = new Vector(); while (rs.next()) { Workflow workflow = DbStructFactory.getWorkflow(rs); if (getTasks) { workflow.setTasks(getTasksByWorkflowId(workflow.getId())); } workflows.add(workflow); } if (workflows.size() == 0) { workflows = null; } } catch (Exception e) { e.printStackTrace(); LOG.log(Level.WARNING, "Exception getting workflows for event. Message: " + e.getMessage()); try { conn.rollback(); } catch (SQLException e2) { LOG.log( Level.SEVERE, "Unable to rollback getWorkflowsForEvent transaction. Message: " + e2.getMessage()); } throw new RepositoryException(e.getMessage()); } finally { if (rs != null) { try { rs.close(); } catch (SQLException ignore) { } rs = null; } if (statement != null) { try { statement.close(); } catch (SQLException ignore) { } statement = null; } if (conn != null) { try { conn.close(); } catch (SQLException ignore) { } conn = null; } } return workflows; }