This is the master repository for the CloudOpting platform orchestrator
This is a Spring Boot application subdivided into different modules
The following tables explains the modules and the subdivision
|bpmn-component||This component contains the BPMN engine, the processes and the related classes of the Activiti BPMN engine|
|cloud-component||This component contains the classes that interact with the cloud environment and use the JClouds library|
|database-component||This component contains the classes to save entities on the database, that will be PostgreSQL|
|docker-component||This component contains the classes to talk REST to the python component that interact with docker (NOTE: the docker python component will be in a separate repository from this one)|
|rest-component||This component contains the Spring Boot REST entrypoint for all the platform features|
|storage-component||This component contains the jackrabbit classes to help manage the storage of files|
|tosca-component||This component contains the TOSCA parser thsat manages all the interactions with the TOSCA world|
|wordpress-component||This component contains the code necessary to interact through API with wordpress for the public view of the catalogue|
Development environment configuration
The following description helps setting up a CentOS 7 development environment.
Java 1.8 is needed (OpenJDK can work for the moment, no quirks have discovered to require SUN java)
yum install java-1.8.0-openjdk-devel
In this way you get JDK and not only JRE.
Setup of Eclipse environment
Is adviced to start from Sprint Tool Suite environment, but if preferred also a simple eclipse environment can do the job (you have to install the STS plugin yourselves: Here is a list of useful plugin is adviced to have installed in the Eclipse environment:
- Activiti plugin
With Eclipse you will than import the GitHub repository:
- Open the GIT perspective
- Clone the repo from CloudOpting account
- you will find the cloned repo in the home/git folder (typically)
Now is time to import the project using maven import
- point to the main pom.xml in the cloudopting-manager and import the project from it
- all the modules will get imported
Fast deploy with docker-compose
Build the war file (in the Dockerfile folder):
To deploy the development environment:
docker-compose -f prod-compose.yml up
To deploy the production environment:
docker-compose -f dev-compose.yml up
Service Publishing Process
The workflow below explains the deployment process the is run by the Activiti engine
As can be seen there is a core component represente by the CloudOpting manager that is the element implemented in this repository.
This application is coded in java.
The framework used is Spring and in particular Sprint-boot since it is a headless application.
It has a BPMN engine embedded, and the project opted for Activiti
Other libraries used are: