Added classes for parsing Galaxy workflow metadata
- Added first incomplete versions of the WorkflowDefinitionParser, GalaxyWorkflowMetadata, GalaxyWorkflowStep, and GalaxyStepInput classes.
- GalaxyWorkflowEngineTest: started work on a new test for the runWorkflow method.
Expanded Galaxy configuration parsing
- Expanded parsing of Galaxy workflow definitions, tools configuration, and tool definitions.
- Added some Galaxy workflow and tool configuration data for testing.
- Added new GalaxyStepOutput and GalaxyStepPosition classes.
Expanded Galaxy configuration parsing
- Expanded parsing of Galaxy tool definitions.
- Added new ToolMetadata and ToolReference classes.
- Use tool references (tool ID and version) instead of just tool IDs.
Expanded Galaxy configuration parsing
- Used logger.info and logger.trace instead of println statements.
- Set log level to info (instead of trace).
Expanded Galaxy configuration parsing
- Added the GalaxyWorkflowEngineMetadata class as the access point for Galaxy workflow and tool metadata.
- Add tool metadata to the workflow steps (in the GalaxyWorkflowMetadata.addToolsMetadata and GalaxyWorkflowStep.addToolsMetadata methods).
- Moved the parse package to the galaxy.metadata package and renamed it to parsers.
- Renamed the ToolDefinitionParser class to GalaxyToolMetadataParser.
- Pass the toolsDirectory parameter to the ToolDefinitionParser.parseToolsConfiguration method.
- Renamed the ToolMetadata class to GalaxyToolMetadata and added fields to store the metadata.
- Added the GalaxyToolParameterMetadata class to store data about tool parameters.
- Moved the tool_conf.xml file to the tools subdirectory.
Expanded Galaxy configuration parsing
- Added the GalaxyWorkflowEngineMetadataTest class with a first unit test for the GalaxyWorkflowEngineMetadata class.
- Fixed two errors in the the GalaxyWorkflowEngineMetadata class.
- Added extra checks in the GalaxyWorkflowStep.addToolsMetadata method to prevent null pointer exceptions.
Galaxy configuration parsing and Javadocs
- Added the GalaxyWorkflowMetadata.getParameters method.
- Split the unit test in the GalaxyWorkflowEngineMetadataTest class in two tests.
- Added Javadocs in several classes and the package-info.java file for the galaxy.metadata package.
Javadocs and issue: support subset of Galaxy workflow/tool functionality
- Decide whether the Workflow Runner will only support a subset of all Galaxy workflow and tool functionality:
  * Some functionality might not yet be supported by the Galaxy API and/or blend4j.
  * Some functionality (like conditional parameters) could be too complicated to be supported by Workflow Runner version 1 (and/or tranSMART workflow plugin version 1).
Javadocs and JSR-305 added
- added many Javadocs.
- GalaxyWorkflowStep: reduced cyclomatic complexity.
- GalaxyWorkflowMetadataParser: removed unnecessary object creation in method readWorkflow.
- pom.xml: added dependency for JSR-305 annotations (like @NonNull and @Nullable) for Findbugs.
Unit tests for GalaxyConfiguration
- added own implementation to read properties (instead of using blend4j) to improve testability.
- added possibility to set the properties file path (instead of using the default path).
- added first two unit tests for the GalaxyConfiguration class.
Unit tests for GalaxyConfiguration and GalaxyWorkflowStep
- added more unit tests for the GalaxyConfiguration class.
- GalaxyConfiguration: refactored loading properties and added the resetStaticFields method.
- added first unit tests for the GalaxyWorkflowStep class.
- added Empty.properties, HistoryName.properties, and All.properties files as test resources.
Unit tests for GalaxyWorkflowStep and parsing of input connections
- added more unit tests for the GalaxyWorkflowStep class.
- added the GalaxyStepInputConnection to store input connections.
- added parsing of input connections to the GalaxyWorkflowStep class.
- moved the getJsonString and getJsonLong methods from the GalaxyWorkflowStep class to the new JsonUtilities class.
Fixed GalaxyConfiguration bug and added unit tests
- GalaxyConfiguration: fixed bug in initialization of the properties file path.
- added a unit test for the HistogramExample class.
- the histogram example now returns result (for testing purposes).
- modified/added DemonstrationWorkflowEngine unit tests.
- added unit tests for the MolgenisWorkflowEngine class.
Started using Guice for dependency injection
- renamed class WorkflowEngineFactory to DefaultWorkflowEngineFactory.
- added the WorkflowEngineFactory interface.
- added the Guice 3.0 dependency to the Maven pom.xml file.
- added the DefaultGuiceModule class to configure Guice binding.
- added the DummyWorkflowEngineFactory, DummyWorkflowEngine, and DummyWorkflow classes for testing.
- used Guice in the HistogramExample class.
- renamed class DefaultWorkflow to BaseWorkflow.
Expanded use of Guice and fixed tool state error
- use Guice for dependency injection at several locations (DefaultGuiceModule and TestGuiceModule).
- fixed error in the GalaxyWorkflowStep.getToolStateValue method: both longs and doubles are now recognized.
- added WorkflowEngine.configure method without parameter to use the default settings.
Added unit tests for two workflow examples
- added the ConcatenateExampleTest and RandomLinesExampleTest classes.
- made the example classes return whether the workflow ran successfully.
- added two Galaxy workflow definition files: rna-seq-dge.ga and RemoveTopAndLeft.ga (and updated the GalaxyWorkflowEngineMetadataTest.testGetWorkflows method).
- worked on the RemoveTopAndLeftExample class, but this is still failing.
Added histogram example with Swing GUI
- started on an example to replicate (most) of the Galaxy web interface for the histogram workflow with a Swing application to showcase the library.
Improved histogram example with Swing GUI
- HistogramGuiExample: improved layout management.
- fixed error in the DemonstrationWorkflowEngine and DemonstrationWorkflowEngineTest classes: use WorkflowInput[12] instead of input[12].
- fixed error in pom.xml: use examples.ConcatenateExample as the main class for the jar instead of the v1.WorkflowRunner class.
GalaxyWorkflow.ensureWorkflowIsOnServer unit test
- added a unit test for the GalaxyWorkflow.ensureWorkflowIsOnServer method.
- let the GalaxyWorkflow.ensureWorkflowIsOnServer method return a result.
- split off the GalaxyWorkflow.isWorkflowOnServer method from the GalaxyWorkflow.ensureWorkflowIsOnServer method.
- added an example input file for the RemoveTopAndLeft workflow.
Another GalaxyWorkflow.ensureWorkflowIsOnServer unit test
- added a second unit test for the GalaxyWorkflow.ensureWorkflowIsOnServer method, where the workflow is not yet on the Galaxy server and has to be imported.