@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)); }
/* * (non-Javadoc) * * @see org.apache.oodt.cas.workflow.repository.WorkflowRepository#getWorkflowTaskById(java.lang.String) */ public WorkflowTask getWorkflowTaskById(String taskId) throws RepositoryException { Connection conn = null; Statement statement = null; ResultSet rs = null; WorkflowTask task = null; try { conn = dataSource.getConnection(); statement = conn.createStatement(); String getTaskSql = "SELECT * FROM workflow_tasks WHERE workflow_task_id = " + taskId; LOG.log(Level.FINE, "getWorkflowTaskById: Executing: " + getTaskSql); rs = statement.executeQuery(getTaskSql); while (rs.next()) { // get an instance of the class name task = DbStructFactory.getWorkflowTask(rs, false); task.setConditions(getConditionsByTaskId(task.getTaskId())); task.setTaskConfig(getConfigurationByTaskId(task.getTaskId())); } } catch (Exception e) { e.printStackTrace(); LOG.log(Level.WARNING, "Exception getting task by id. Message: " + e.getMessage()); try { conn.rollback(); } catch (SQLException e2) { LOG.log( Level.SEVERE, "Unable to rollback getWorkflowTaskById 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 task; }
public List getTasksByWorkflowName(String workflowName) throws RepositoryException { Connection conn = null; Statement statement = null; ResultSet rs = null; List tasks = null; try { conn = dataSource.getConnection(); statement = conn.createStatement(); String getTasksSql = "SELECT workflow_tasks.*, workflow_task_map.task_order " + "FROM workflow_tasks, workflow_task_map, workflows " + "WHERE workflow_task_map.workflow_task_id = workflow_tasks.workflow_task_id " + "AND workflow_task_map.workflow_id = workflows.workflow_id " + "AND workflows.workflow_name = '" + workflowName + "' " + "ORDER BY workflow_task_map.task_order"; LOG.log(Level.FINE, "getTasksByWorkflowName: Executing: " + getTasksSql); rs = statement.executeQuery(getTasksSql); tasks = new Vector(); while (rs.next()) { // get an instance of the class name WorkflowTask task = DbStructFactory.getWorkflowTask(rs, true); if (task != null) { task.setConditions(getConditionsByTaskId(task.getTaskId())); task.setTaskConfig(getConfigurationByTaskId(task.getTaskId())); tasks.add(task); } } if (tasks.size() == 0) { tasks = null; } } catch (Exception e) { e.printStackTrace(); LOG.log(Level.WARNING, "Exception getting tasks for workflow. Message: " + e.getMessage()); try { conn.rollback(); } catch (SQLException e2) { LOG.log( Level.SEVERE, "Unable to rollback getTasksByWorkflowName 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 tasks; }