Note these instruction refers to current master branch. The release-1.0.0 branch have development issues that have only been fixed in master branch.
DCAE Controller Overview
DCAE Controller LF GIT repositories
- dcae/controller
- dcae/operation/utils
- dcae/controller/analytics
- dcae/demo
SOMF - Sirius Operational Management Framework
SOMF is a model-driven framework for building controllers. SOMF Is using the Eclipse Modeling Framework (EMF) for data modeling.
LF SOMF repositories
- ncomp/maven - contains a few maven related artifacts
- ncomp/utils - contains Java utilities and libraries that are used across DCAE Controller projects
- ncomp/core - contains core models
- ncomp/sirius/manager - contains the core SOMF implementation
- ncomp/docker - contains SOMF adaptor used to communicate with Docker Engine API
- ncomp/openstack- contains SOMF adaptor used to communicate with OpenStack API
- ncomp/cdap- contains SOMF adaptor used to communicate with CDAP API+
Development Setup
GIT repositories and build order
- ncomp/maven
- ncomp/utils
- dcae/operation/utils
- ncomp/core
- ncomp/sirius/manager
- ncomp/cdap
- ncomp/docker
- ncomp/openstack
- dcae/controller
- dcae/controller/analytics
- dcae/demo
Eclipse Setup
Since DCAE Controller/SOMF is build on top of EMF developement is tightly tied to using Eclipse IDE with specific plugin installed. This section describe the process to setup a developement Eclipse.
- Install Neon.3 Java Developer Version http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/neon3
- Install software from Neon update site
- Eclipse Plug-in Development Environment 3.12.2.v20161124-1400
- EMF - Eclipse Modeling Framework Xcore SDK 1.4.0.v20160526-0606
- Install software from Eclipse Market Place
- YEdit Feature 1.0.20.201509041456-RELEASE
- Install Groovy from http://dist.springsource.org/snapshot/GRECLIPSE/e4.6/
- Groovy-Eclipse Feature 2.9.2.xx-201703131833-e46
- Groovy-Eclipse M2E integration 2.9.2.xx-201703131833-e46
- Groovy Compiler 2.4 Feature 2.9.2.xx-201703131833-e46
Import Eclipse Projects
The GIT repositories include the Eclipse Project Metadata (e.g., .project, .classpath, and etc files) and thus can be importing into a workspace using the "Import Projects" → "Import existing Eclipse projects". Only the projects that need to be worked on need to be in the workspace.
Working on DCAE Controller projects
There are 2 projects for most features.
- A model project which contains the data model using XCORE file. These projects always have a name (and artifactId) that ends in
-model
.This file is located on thesrc/main/xcore
directory. And the project is setup so Eclipse will update automatically the generated Java code in thesrc/main/xcore-gen
directory. This project is a straight EMF type project and contain very little SOMF specifics. - A SOMF project which contains SOMF generated code and implementation of the APIs that the model defines.
- SOMF generator class
Generator.java
under thesrc/main/java
folder. It contains the defined customization for creating the SOMF implementation. Running this class will generate new contents in the two generated folders. src/main/sirius-gen
folder contains generated Java code for implementing Client and Server side functions.src/main/server-gen
folder contains generated Bash and Groovy scripts for implementing Client and Server side functions.- SOMF provider
*Provider.java
Java classes under thesrc/main/java
folder. These implements the operation/methods that are defined in the model.
- SOMF generator class