aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/BPMN_Project_Deployment_Strategy.rst35
-rw-r--r--docs/BPMN_Subprocess_Process_Flows.rst32
-rw-r--r--docs/Camunda_Cockpit_Community_Edition.rst44
-rw-r--r--docs/Camunda_Modeler.rst19
-rw-r--r--docs/Configure_git_and_gerrit.rst92
-rw-r--r--docs/Install_Docker.rst85
-rw-r--r--docs/SO_API_v0.1.pdfbin0 -> 524355 bytes
-rw-r--r--docs/SO_R1_Interface.rst17
-rw-r--r--docs/UUI-SO_API_Specification_v0.1.docxbin0 -> 61243 bytes
-rw-r--r--docs/Working_with_SO_Docker.rst208
-rw-r--r--docs/Workspace_and_Development_Tools.rst107
-rw-r--r--docs/developer_information.rst20
-rw-r--r--docs/images/Camunda_Cockpit_Enterprise_1.pngbin0 -> 7230 bytes
-rw-r--r--docs/images/Configure_git_1.pngbin0 -> 1271 bytes
-rw-r--r--docs/images/Configure_git_2.pngbin0 -> 22979 bytes
-rw-r--r--docs/images/Configure_git_3.pngbin0 -> 21978 bytes
-rw-r--r--docs/images/SO_R1_1.pngbin0 -> 29837 bytes
-rw-r--r--docs/images/bpmn_project_structure_1.pngbin0 -> 27787 bytes
-rw-r--r--docs/images/bpmn_project_structure_2.pngbin0 -> 33254 bytes
-rw-r--r--docs/images/bpmn_project_structure_3.pngbin0 -> 60388 bytes
-rw-r--r--docs/images/bpmn_project_structure_4.pngbin0 -> 23978 bytes
-rw-r--r--docs/images/bpmn_project_structure_5.pngbin0 -> 64518 bytes
-rw-r--r--docs/images/camunda_modeler_1.pngbin0 -> 82589 bytes
23 files changed, 659 insertions, 0 deletions
diff --git a/docs/BPMN_Project_Deployment_Strategy.rst b/docs/BPMN_Project_Deployment_Strategy.rst
new file mode 100644
index 0000000000..50f48363ed
--- /dev/null
+++ b/docs/BPMN_Project_Deployment_Strategy.rst
@@ -0,0 +1,35 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+BPMN Project Deployment Strategy
+==================================
+
+Single Application with Embedded Process Engine
+------------------------------------------------
+
+Deployment in SO is currently limited to a single process application: MSOInfrastructureBPMN. The WAR file for this application contains everything needed to execute the infrastructure process flows, including:
+
+ * BPMN process flows, java classes, groovy scripts, and resource files from MSOInfrastructureBPMN itself.
+
+ * BPMN process flows, java classes, groovy scripts, and resource files from other SO projects, like MSOCommonBPMN and MSOCoreBPMN.
+
+ * An embedded Camunda Process Engine to execute the flows.
+
+The process application exposes a REST endpoint to the API Handler(s) for receiving flow execution requests.
+
+Development is required in SO to be able to support one a more versatile deployment strategy, probably one of the following:
+
+Shared Process Engine
+----------------------
+
+The Camunda Process Engine is created and manged as a Wildfly module. This single engine is shared by all process applications.
+
+Multiple Applications, each with an Embedded Process Engine
+-------------------------------------------------------------
+
+More than one application could be deployed, each having its own embedded process engine.
+
+
+
+
diff --git a/docs/BPMN_Subprocess_Process_Flows.rst b/docs/BPMN_Subprocess_Process_Flows.rst
new file mode 100644
index 0000000000..cf2da40e87
--- /dev/null
+++ b/docs/BPMN_Subprocess_Process_Flows.rst
@@ -0,0 +1,32 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+BPMN Subprocess Process Flows
+==============================
+
+Characteristics
+----------------
+
+**Invoked by other flows**
+
+ A BPMN Call_Activity_ provides the mechanism to invoke subprocess flows. The Called Element attribute of the Call Activity specifies the name of the subprocess to execute.
+
+.. _Call_Activity: https://docs.camunda.org/manual/7.7/reference/bpmn20/subprocesses/call-activity/
+
+**Input and Output variable mapping**
+
+ In the modeler, you can specify a list of "In Mappings". With this, you can map execution variables from the calling flow to the subprocess. The subprocess always has its own copy of each variable. To transfer values back to the calling flow, you specify "Out Mappings".
+
+**May throw MSOWorkflowException**
+
+ The current best practice for reporting errors from subprocess is described here:
+
+ * The subprocess should create a WorkflowException object and store it in an execution called WorkflowException.
+ * The WorkflowException object contains an error code and an error message.
+ * The subprocess should then throw an MSOWorkflowException BPMN event which may be handled by the calling flow.
+
+Example: VnfAdapterRestV1.bpmn
+-------------------------------
+
+.. image:: images/BPMN_Subprocess_process_flows_1.png
diff --git a/docs/Camunda_Cockpit_Community_Edition.rst b/docs/Camunda_Cockpit_Community_Edition.rst
new file mode 100644
index 0000000000..a9379decc9
--- /dev/null
+++ b/docs/Camunda_Cockpit_Community_Edition.rst
@@ -0,0 +1,44 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+Camunda Cockpit Community Edition
+=================================
+
+On a deployed instance of SO, you can use the Camunda_Cockpit to view BPMN 2.0 workflow definitions in the deployment.
+
+.. _Camunda_Cockpit: https://camunda.org/features/cockpit/
+
+Unfortunately, the Community Edition of Camunda included with SO is not fully featured. It cannot be used to inspect running and completed process instances. For that, the Enterprise Edition is required.
+
+Logging In
+-----------
+
+Because port 8080 on the docker host machine is forwarded to port 8080 in the SO docker container you can log into the cockpit by browsing to this URL:
+
+ http://*dockerhost*:8080/camunda/app/admin/default/#/login
+
+ Where dockerhost is the docker host system.
+
+If you can use a browser on the docker host system, then use a localhost address:
+
+ http://localhost:8080/camunda/app/admin/default/#/login
+
+The user is "admin" and the password is the same as the jboss admin password, which is not displayed here.
+
+.. image:: images/Camunda_Cockpit_1.png
+
+Viewing Process Definitions
+---------------------------
+
+Use the drop-down menu next to the home icon and select the "Cockpit" option:
+
+.. image:: images/Camunda_Cockpit_2.png
+
+The number of deployed process definitions should be displayed. Click on it.
+
+.. image:: images/Camunda_Cockpit_3.png
+
+Now you should see an actual list of deployed process definitions. You can click on any of them to view them.
+
+.. image:: images/Camunda_Cockpit_4.png
diff --git a/docs/Camunda_Modeler.rst b/docs/Camunda_Modeler.rst
new file mode 100644
index 0000000000..e2ff06d595
--- /dev/null
+++ b/docs/Camunda_Modeler.rst
@@ -0,0 +1,19 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+Camunda Modeler
+=================
+
+The Camunda_Modeler_ is the editor for BPMN 2.0 process flows. It is a standalone application. NOTE: the Camunda eclipse plugin is no longer supported and should not be used.
+
+.. _Camunda_Modeler: https://docs.camunda.org/manual/latest/modeler/camunda-modeler/
+
+.. image:: images/camunda_modeler_1.png
+
+Modeler Templates
+------------------
+
+Some work has already been done in MSO to develop templates_ for "building block" subprocess flows. When a template is provided for a BPMN element, the modeler displays a custom form for inputting parameters. This significantly simplifies flow construction and reduces the chance of making mistakes.
+
+.. _templates: https://docs.camunda.org/manual/7.7/modeler/camunda-modeler/element-templates/ \ No newline at end of file
diff --git a/docs/Configure_git_and_gerrit.rst b/docs/Configure_git_and_gerrit.rst
new file mode 100644
index 0000000000..ccd0785b98
--- /dev/null
+++ b/docs/Configure_git_and_gerrit.rst
@@ -0,0 +1,92 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+Configure git and gerrit
+========================
+
+Basics
+------
+The recommended version of git is 2.7.4 or later. Check the installed version in the Ubuntu VM:
+
+.. code-block:: bash
+
+ git --version
+
+Create an SSH key to user with gerrit. Use no passphrase.
+
+.. code-block:: bash
+
+ ssh-keygen -t rsa
+
+Enter your SSH public key (id_rsa) into gerrit:
+ Browse to https://gerrit.onap.org
+ Log in
+ Open the menu next to your name (under the green search button)
+
+.. image:: images/Configure_git_1.png
+
+ Select "Settings"
+ In the "Settings" sidebar, click "SSH Public Keys"`
+ Click "Add Key..."
+ Paste the entire contents of $HOME/.ssh/id_rsa.pub into the text area and click "Add".
+
+.. image:: images/Configure_git_2.png
+
+Install the git-review package.
+
+.. code-block:: bash
+
+ sudo apt update
+ sudo apt install git-review
+
+Create $HOME/.gitconfig (replace highlighted values with your own information):
+ [user]
+
+ name = FirstName LastName
+
+ email = you@yourcompany.com
+
+ [core]
+
+ autocrlf = false
+
+ [merge]
+
+ tool = vimdiff
+
+ [gitreview]
+
+ username = YourLinuxFoundationId
+
+**If you're behind a corporate firewall and your proxy server has SOCKS support...**
+
+You may be able to use the SSH protocol with git, which is preferred versus HTTP. This method is known to work in the AT&T corporate network.
+Install the socat package, which allows you to tunnel SSH connections through a proxy that supports SOCKS:
+
+.. code-block:: bash
+
+ sudo apt update
+ sudo apt install socat
+
+Create (or append to) $HOME/.ssh/config (replace highlighted values with your information)
+
+ Host gerrit.onap.org
+
+ User userid
+
+ Hostname gerrit.onap.org
+
+ ProxyCommand socat - PROXY:host:%h:%p,proxyport=port
+
+ IdentityFile /home/userid/.ssh/id_rsa
+
+ ServerAliveInterval 10
+
+Verify that you have connectivity to gerrit through the proxy. Answer "yes" to continue connecting, if prompted.
+
+.. code-block:: bash
+
+ ssh -p 29418 gerrit.onap.org
+
+.. image:: images/Configure_git_3.png \ No newline at end of file
diff --git a/docs/Install_Docker.rst b/docs/Install_Docker.rst
new file mode 100644
index 0000000000..5712691dbf
--- /dev/null
+++ b/docs/Install_Docker.rst
@@ -0,0 +1,85 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+Install Docker
+===============
+
+Make sure curl is installed on the Ubuntu VM:
+
+.. code-block:: bash
+
+ sudo apt update
+ sudo apt install curl
+
+If you are behind a corporate firewall (replace "proxyhost:port" with your actual proxy information)
+ https_proxy="https://*proxyhost:port*" curl -fsSL https://apt.dockerproject.org/gpg | sudo apt-key add -
+
+Otherwise:
+ curl -fsSL https://apt.dockerproject.org/gpg | sudo apt-key add -
+Expected Response:
+ OK
+Add the docker package repository:
+ sudo apt-add-repository "deb https://apt.dockerproject.org/repo ubuntu-xenial main"
+
+Install packages:
+
+.. code-block:: bash
+
+ sudo apt update
+ sudo apt-cache policy docker-engine
+ sudo apt install docker-engine
+ sudo apt install docker-compose
+
+If you are behind a corporate firewall, you will need to configure proxy settings for docker so that images may be obtained from internet repositories. In the commands shown here, replace *"proxyhost:port"*, *"yourdomain1.com"*, and *"yourdomain2.com"* with appropriate values.
+
+ Make the docker configuration directory:
+
+.. code-block:: bash
+
+ sudo mkdir -p /etc/systemd/system/docker.service.d
+
+ Edit (create) this file:
+
+.. code-block:: bash
+
+ sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf
+
+ Add these lines:
+
+ [Service]
+
+ Environment="HTTP_PROXY=https://*proxyhost:port*"
+
+ Environment="HTTPS_PROXY=https://*proxyhost:port*"
+
+ Environment="NO_PROXY=localhost,127.0.0.1,.yourdomain1.com,.yourdomain2.com"
+
+ Restart docker:
+
+.. code-block:: bash
+
+ sudo systemctl daemon-reload
+ sudo systemctl restart docker
+
+Add yourself to the docker user group (replace "userid" with your user ID):
+
+.. code-block:: bash
+
+ sudo usermod -a -G docker *userid*
+
+Log out and log back in so that the user group change will takeeffect.
+
+Verify that you can connect to docker as yourself (i.e. not as root):
+
+.. code-block:: bash
+
+ docker ps
+
+Verify that you can download and run the hello-world container
+
+.. code-block:: bash
+
+ docker run hello-world
+
+.. image:: images/Docker_install_1.png \ No newline at end of file
diff --git a/docs/SO_API_v0.1.pdf b/docs/SO_API_v0.1.pdf
new file mode 100644
index 0000000000..42fdc5fe3d
--- /dev/null
+++ b/docs/SO_API_v0.1.pdf
Binary files differ
diff --git a/docs/SO_R1_Interface.rst b/docs/SO_R1_Interface.rst
new file mode 100644
index 0000000000..41e127d225
--- /dev/null
+++ b/docs/SO_R1_Interface.rst
@@ -0,0 +1,17 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+SO R1 Interfaces
+================
+
+.. image:: images/SO_R1_1.png
+
+Service Orchestrator in R1 uses interfaces from both the MSO seed code and as well as new interfaces between the new components of ONAP.
+The below documentation of the SO APIs and are reviewed in the architecture committee meeting on 22/08/2017.
+
+See :download:`SO_API_v0.1.pdf`
+
+The interface between UUi and SO for the E2E VoLTE service:
+
+See :download:`UUI-SO_API_Specification_v0.1.docx` \ No newline at end of file
diff --git a/docs/UUI-SO_API_Specification_v0.1.docx b/docs/UUI-SO_API_Specification_v0.1.docx
new file mode 100644
index 0000000000..d68cccf4d3
--- /dev/null
+++ b/docs/UUI-SO_API_Specification_v0.1.docx
Binary files differ
diff --git a/docs/Working_with_SO_Docker.rst b/docs/Working_with_SO_Docker.rst
new file mode 100644
index 0000000000..ee958efa41
--- /dev/null
+++ b/docs/Working_with_SO_Docker.rst
@@ -0,0 +1,208 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+Working with SO Docker
+======================
+
+Verify that docker images are built
+------------------------------------
+
+.. code-block:: bash
+
+ docker images openecomp/mso
+
+ *Example Output:*
+
+ REPOSITORY TAG IMAGE ID CREATED SIZE
+
+ openecomp/mso 1.1-SNAPSHOT-latest 419e9d8a17e8 3 minutes ago 1.62GB
+
+ openecomp/mso 1.1.0-SNAPSHOT-STAGING-20170926T2015 419e9d8a17e8 3 minutes ago 1.62GB
+
+ openecomp/mso latest 419e9d8a17e8 3 minutes ago 1.62GB
+
+Start the mariadb container
+----------------------------
+
+.. code-block:: bash
+
+ cd $HOME/onap/workspace/SO/docker-config
+
+ MTU=1500 docker-compose up mariadb
+
+*Example Output:*
+
+.. code-block:: bash
+
+ . . . many lines omitted . . .
+ mariadb_1 | Version: '10.1.11-MariaDB-1~jessie-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution
+
+Log into the mariadb container and run the mysql client program
+---------------------------------------------------------------
+
+.. code-block:: bash
+
+ docker exec -it dockerconfig_mariadb_1 /bin/bash
+ mysql -uroot -ppassword
+
+Start the mso container
+-----------------------
+
+.. code-block:: bash
+
+ cd $HOME/onap/workspace/SO/docker-config
+
+ MTU=1500 docker-compose up mso
+
+*Example Output:*
+
+.. code-block:: bash
+
+ . . . many lines omitted . . .
+ mso_1 | 20:59:31,586 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 10.1.0.Final
+ (WildFly Core 2.2.0.Final) started in 59937ms - Started 2422 of 2747 services (604 services are lazy, passive or
+ on-demand)
+
+Log into the mso container
+--------------------------
+
+.. code-block:: bash
+
+ docker exec -it dockerconfig_mso_1 /bin/bash
+
+Inspect a docker image
+----------------------
+
+This command shows interesting information about the structure of the mso image. Note that an image is NOT a running container. It is the template that a container is created from.
+
+.. code-block:: bash
+
+ docker inspect openecomp/mso
+ Example Output:
+
+ [
+ {
+ "Id": "sha256:419e9d8a17e8d7e876dfc36c1f3ed946bccbb29aa6faa6cd8e32fbc77c0ef6e5",
+ "RepoTags": [
+ "openecomp/mso:1.1-SNAPSHOT-latest",
+ "openecomp/mso:1.1.0-SNAPSHOT-STAGING-20170926T2015",
+ "openecomp/mso:latest"
+ ],
+ "RepoDigests": [],
+ "Parent": "sha256:70f1ba3d6289411fce96ba78755a3fd6055a370d33464553d72c753889b12693",
+ "Comment": "",
+ "Created": "2017-09-26T20:40:10.179358574Z",
+ "Container": "284aa05909390a3c0ffc1ec6d0f6e2071799d56b08369707505897bc73d2ea30",
+ "ContainerConfig": {
+ "Hostname": "6397aa10f0c4",
+ "Domainname": "",
+ "User": "root",
+ "AttachStdin": false,
+ "AttachStdout": false,
+ "AttachStderr": false,
+ "ExposedPorts": {
+ "8080/tcp": {}
+ },
+ "Tty": false,
+ "OpenStdin": false,
+ "StdinOnce": false,
+ "Env": [
+ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
+ "HTTP_PROXY=",
+ "HTTPS_PROXY=",
+ "http_proxy=",
+ "https_proxy=",
+ "JBOSS_HOME=/opt/jboss",
+ "CHEF_REPO_NAME=chef-repo",
+ "CHEF_CONFIG_NAME=mso-config"
+ ],
+ "Cmd": [
+ "/bin/sh",
+ "-c",
+ "#(nop) ",
+ "CMD [\"/opt/mso/scripts/start-jboss-server.sh\"]"
+ ],
+ "ArgsEscaped": true,
+ "Image": "sha256:70f1ba3d6289411fce96ba78755a3fd6055a370d33464553d72c753889b12693",
+ "Volumes": {
+ "/shared": {}
+ },
+ "WorkingDir": "",
+ "Entrypoint": null,
+ "OnBuild": [],
+ "Labels": {
+ "Description": "This image contains the ONAP SO",
+ "Version": "1.0"
+ }
+ },
+ "DockerVersion": "17.05.0-ce",
+ "Author": "\"The ONAP Team\"",
+ "Config": {
+ "Hostname": "6397aa10f0c4",
+ "Domainname": "",
+ "User": "root",
+ "AttachStdin": false,
+ "AttachStdout": false,
+ "AttachStderr": false,
+ "ExposedPorts": {
+ "8080/tcp": {}
+ },
+ "Tty": false,
+ "OpenStdin": false,
+ "StdinOnce": false,
+ "Env": [
+ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
+ "HTTP_PROXY=",
+ "HTTPS_PROXY=",
+ "http_proxy=",
+ "https_proxy=",
+ "JBOSS_HOME=/opt/jboss",
+ "CHEF_REPO_NAME=chef-repo",
+ "CHEF_CONFIG_NAME=mso-config"
+ ],
+ "Cmd": [
+ "/opt/mso/scripts/start-jboss-server.sh"
+ ],
+ "ArgsEscaped": true,
+ "Image": "sha256:70f1ba3d6289411fce96ba78755a3fd6055a370d33464553d72c753889b12693",
+ "Volumes": {
+ "/shared": {}
+ },
+ "WorkingDir": "",
+ "Entrypoint": null,
+ "OnBuild": [],
+ "Labels": {
+ "Description": "This image contains the ONAP SO",
+ "Version": "1.0"
+ }
+ },
+ "Architecture": "amd64",
+ "Os": "linux",
+ "Size": 1616881263,
+ "VirtualSize": 1616881263,
+ "GraphDriver": {
+ "Data": null,
+ "Name": "aufs"
+ },
+ "RootFS": {
+ "Type": "layers",
+ "Layers": [
+ "sha256:a2022691bf950a72f9d2d84d557183cb9eee07c065a76485f1695784855c5193",
+ "sha256:ae620432889d2553535199dbdd8ba5a264ce85fcdcd5a430974d81fc27c02b45",
+ . . . many lines omitted . . .
+ "sha256:0f9e9dacce9191617e979f05e32ee782b1632e07130fd7fee19b0b2d635aa006",
+ "sha256:84572c6389f8ae41150e14a8f1a28a70720de91ab1032f8755b5449dc04449c9"
+ ]
+ }
+ }
+]
+
+Log into the mso image
+-----------------------
+
+This command allows you to inspect the files inside the mso image. Note that an image is NOT a running container. It is the template that a container is created from.
+
+.. code-block:: bash
+
+ docker run -it --entrypoint=/bin/bash openecomp/mso -i
diff --git a/docs/Workspace_and_Development_Tools.rst b/docs/Workspace_and_Development_Tools.rst
new file mode 100644
index 0000000000..2012a20b09
--- /dev/null
+++ b/docs/Workspace_and_Development_Tools.rst
@@ -0,0 +1,107 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+Workspace and Development Tools
+===============================
+
+We recognize that there are different ways to set up a workspace and different tools that may be chosen. This is just one way to set things up.
+
+Suggested Directory Structure
+------------------------------
+*NOTE*: You may have different versions of eclipse and java.
+
+ onap
+
+ .m2
+
+ apache-maven-3.3.9
+
+ camunda-modeler
+
+ eclipse-jee-neon-3-linux-gtk-x86_64
+
+ jdk1.8.0_131
+
+ workspace
+
+ SO
+ chef-repo
+
+ docker-config
+
+ libs
+
+ so
+
+ so-config
+
+Java
+-----
+Download the latest Java_8_SE_Development_Kit_ from Oracle. Select a Linux x64 package.
+
+Unpack it.
+
+.. _Java_8_SE_Development_Kit: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
+
+Maven
+------
+
+Download the Apache_Maven_3.3.9_ binary. NOTE: 3.3.9 is the recommended version, even though much higher versions are available.
+
+Unpack it.
+
+.. _Apache_Maven_3.3.9: https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/
+
+Create an .m2 directory for maven and put settings.xml_ in it. Edit the local repository path in settings.xml to make it correct for your environment. Everything else should be OK.
+
+.. _settings.xml: https://wiki.onap.org/download/attachments/15997820/settings.xml?version=1&modificationDate=1506156303000&api=v2
+
+Camunda Modeler
+---------------
+
+Download the Camunda_Modeler_. Select the Linux x64 package.
+Unpack it.
+
+.. _Camunda_Modeler: https://camunda.org/download/modeler/
+
+Eclipse
+-------
+
+Download Eclipse_for_Linux_. Select the 64-bit Eclipse IDE for Java EE Developers. Oxygen seems to be the latest version. These instructions were written for Neon.
+Unpack it.
+
+.. _Eclipse_for_Linux: https://www.eclipse.org/downloads/eclipse-packages/?osType=linux
+
+In the eclipse directory, edit eclipse.ini
+
+ Add (or change) the -vm setting so that it points to your JDK.
+
+ Adjust the maximum heap space (2GB is recommended).
+
+ Example:
+
+.. image:: images/Workspace_and_Development_Tools.png
+
+Eclipse Settings
+----------------
+
+**Configure eclipse to use your external maven 3.3.9 installation:**
+ Go to Window→Preferences→Maven→Installations
+
+ Click "Add" and browse to your apache-maven-3.3.9 directory. Click "OK" to select it.
+
+ Click "Finish"
+
+.. image:: images/Workspace_and_Development_Tools_2.png
+
+Make sure the external installation is selected:
+
+.. image:: images/Workspace_and_Development_Tools_3.png
+
+**Configure eclipse to use your settings.xml**
+ Go to Window→Preferences→Maven→User Settings
+
+ Type the full path to your settings.xml file into the "User Settings" box and click "OK".
+
+.. image:: images/Workspace_and_Development_Tools_4.png \ No newline at end of file
diff --git a/docs/developer_information.rst b/docs/developer_information.rst
new file mode 100644
index 0000000000..739a1f2050
--- /dev/null
+++ b/docs/developer_information.rst
@@ -0,0 +1,20 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2017 Huawei Technologies Co., Ltd.
+
+SO Developer Information
+========================
+
+.. toctree::
+ :maxdepth: 1
+
+ BPMN_Project_Structure.rst
+ Camunda_Modeler.rst
+ BPMN_Main_Process_Flows.rst
+ BPMN_Subprocess_Process_Flows.rst
+ BPMN_Project_Deployment_Strategy.rst
+ Building_SO.rst
+ Working_with_SO_Docker.rst
+ Camunda_Cockpit_Community_Edition.rst
+ Camunda_Cockpit_Enterprise_Edition.rst
+ \ No newline at end of file
diff --git a/docs/images/Camunda_Cockpit_Enterprise_1.png b/docs/images/Camunda_Cockpit_Enterprise_1.png
new file mode 100644
index 0000000000..cdcc6f3b8e
--- /dev/null
+++ b/docs/images/Camunda_Cockpit_Enterprise_1.png
Binary files differ
diff --git a/docs/images/Configure_git_1.png b/docs/images/Configure_git_1.png
new file mode 100644
index 0000000000..2d4ce85036
--- /dev/null
+++ b/docs/images/Configure_git_1.png
Binary files differ
diff --git a/docs/images/Configure_git_2.png b/docs/images/Configure_git_2.png
new file mode 100644
index 0000000000..44ceeff5fe
--- /dev/null
+++ b/docs/images/Configure_git_2.png
Binary files differ
diff --git a/docs/images/Configure_git_3.png b/docs/images/Configure_git_3.png
new file mode 100644
index 0000000000..f44a0b4bff
--- /dev/null
+++ b/docs/images/Configure_git_3.png
Binary files differ
diff --git a/docs/images/SO_R1_1.png b/docs/images/SO_R1_1.png
new file mode 100644
index 0000000000..7bf98fcfb2
--- /dev/null
+++ b/docs/images/SO_R1_1.png
Binary files differ
diff --git a/docs/images/bpmn_project_structure_1.png b/docs/images/bpmn_project_structure_1.png
new file mode 100644
index 0000000000..d94b6fb1e2
--- /dev/null
+++ b/docs/images/bpmn_project_structure_1.png
Binary files differ
diff --git a/docs/images/bpmn_project_structure_2.png b/docs/images/bpmn_project_structure_2.png
new file mode 100644
index 0000000000..15f63603c6
--- /dev/null
+++ b/docs/images/bpmn_project_structure_2.png
Binary files differ
diff --git a/docs/images/bpmn_project_structure_3.png b/docs/images/bpmn_project_structure_3.png
new file mode 100644
index 0000000000..e9f0d8d0db
--- /dev/null
+++ b/docs/images/bpmn_project_structure_3.png
Binary files differ
diff --git a/docs/images/bpmn_project_structure_4.png b/docs/images/bpmn_project_structure_4.png
new file mode 100644
index 0000000000..c5cbb8b148
--- /dev/null
+++ b/docs/images/bpmn_project_structure_4.png
Binary files differ
diff --git a/docs/images/bpmn_project_structure_5.png b/docs/images/bpmn_project_structure_5.png
new file mode 100644
index 0000000000..3c3e9064ea
--- /dev/null
+++ b/docs/images/bpmn_project_structure_5.png
Binary files differ
diff --git a/docs/images/camunda_modeler_1.png b/docs/images/camunda_modeler_1.png
new file mode 100644
index 0000000000..2316c9849c
--- /dev/null
+++ b/docs/images/camunda_modeler_1.png
Binary files differ