Using Kurator-Akka to develop workflows by configuration with yaml
This is developer documentation on how to build Kurator-Akka. See also the FP-Akka: User Documentation
For further information, see the README files in each of the projects.
You will need to have git, maven, java, and python installed to build kurator-akka.
cd into a directory you want to hang the kurator projects off of, and clone the following three projects:
git clone https://opensource.ncsa.illinois.edu/bitbucket/scm/kurator/kurator-jython.git git clone https://github.com/kurator-org/kurator-akka.git git clone https://github.com/kurator-org/kurator-validation.git
Then build kurator-akka and kurator-validation
cd kurator-akka mvn install cd kurator-validation mvn install
The kurator-akka project contains the framework for running kurator workflows written in yaml with code written in java or python. The kurator-validation project contains domain specific kurator components for quality control of biodiversity data. kurator-jython is a hack for integration of python code in Kurator-Akka workflows using jython.
You can also build the kurator-web web UI with:
git clone https://gitub.com/kurator-org/kurator-web.git
mvn package play2:run
By default, the web UI is then accessible at http://localhost:9000/
Some more information is available in the README files for each of the projects
Adding New Actor Code
Actors may be (among others).
- Java classes that extend org.kurator.akka.AkkaActor and implement an onData(Object value) method.
- Java classes that are wrapped with org.kurator.akka.PojoActor
- Python classes that wrapped with org.kurator.akka.PythonClassActor.
Actors get yaml definitions that give them an ID, type, and class as defined in actors.yaml
Those IDs for actors are linked together into workflows in yaml workflow definition files.
We do not yet have a framework for adding new actor code as dependencies outside of a build of the framework (where generic actors go in kurator-akka and biodiversity domain buisness logic actors go in kurator-validation), but we intend to do this.