Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Follow the steps below to set up the development environment on your client machine, and to establish credentials with which you may access the repositories.

...



install java 

set JAVA_HOME in ~/.bashrc

yum install java-1.8.0-openjdk-devel

get it via alternatives --config javac

currently

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64

install git and development tools
yum install git
yum groupinstall 'Development Tools'

this will give you make and python

install npm
(will also be installed automatically by the ecomp build) - TODO: UPDATE as ecomp is locked

download and install Maven 3.6.3

create an ~/.m2 folder and copy our settings.xml there

add maven to your path - check it with mvn --version

http://maven.apache.org/download.cgi

tar -xvf apache-maven-3.6.3-bin.tar.gz

Add the following option to your MAVEN_OPTS in order not to periodically hang on downloading artifacts in linux

-Djava.net.preferIPv4Stack=true

enable IP4 forwarding to enable the RHEL VM to act as an edge router - without this docker containers cannot communicate

add to /etc/sysctl.conf
net.ipv4.ip_forward = 1

Install docker (required for some repos like dcae-inventory off dcae
sudo yum install -y yum-utils
sudo yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --enable docker-ce-edge
sudo yum makecache fast
sudo yum install docker-ce
sudo systemctl start docker
20190130


Code Block
themeMidnight
sudo curl https://releases.rancher.com/install-docker/17.03.sh | sh

sudo wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 -O jq
sudo chmod 777 jq
# not +x or jq will not be runnable from your non-root user
sudo mv jq /usr/local/bin
jq --version

sudo usermod -aG docker ubuntu


...



enable ubuntu desktop

apt-get update

apt-get install ubuntu-desktop

enable static IP

vi /etc/network/interfaces

add

iface enp0s25 inet static

address 192.168.15.101

netmask 255.255.255.0

network 192.168.15.0

broadcast 192.168.15.255

gateway 192.168.15.1

dns-nameservers 8.8.4.4

disable strict host checking (client and server)
in ~/.ssh/config
Host *
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Enable non CD repositories so an apt-get update will work

comment out the CD first line in /etc/apt/sources.list
enable ssh if skipped during installation so we can remote sshsudo apt-get install openssh-server
enable root login and gui (no sudo su -)
sudo passwd root

sudo usermod -U root

sudo reboot now

sudo vi /etc/lightdm/lightdm.conf

[SeatDefaults]

greeter-session=unity-greeter

user-session=ubuntu

greeter-show-manual-login=true


: enable root login

vi /etc/ssh/sshd_config
FROM:
PermitRootLogin prohibit-password
TO:
PermitRootLogin yes

systemctl restart sshd

The 131 version of Java 8 is installed by default - currently running 151

set JAVA_HOME in ~/.bashrc or /etc/environment

ubuntu@ubuntu:~$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-amd64

if not

sudo apt install openjdk-8-jdk

install git and development tools
sudo apt-get install git
install npm
(will also be installed automatically by the ecomp build)
sudo apt install npm

download and install Maven 3.5.0

create an ~/.m2 folder and copy our settings.xml there

add maven to your path - check it with mvn --version

http://maven.apache.org/download.cgi

tar -xvf apache-maven-3.5.0-bin.tar.gz

or

sudo apt install maven

Add the following option to your MAVEN_OPTS in order not to periodically hang on downloading artifacts in linux

in /etc/environment

-Djava.net.preferIPv4Stack=true

Install docker (required when building docker images)


use the current as of 20180621 17.03 version in the script
which is


Code Block
languagebash
themeMidnight
curl https://releases.rancher.com/install-docker/17.03.sh | sh



...

Info

You should execute puttygen.exe as an Administrator, otherwise, the key files will be stored in %localappdata%\VirtualStore\PuTTY, typically C:\Users\<user>\AppData\Local\VirtualStore\Program Files (x86)\PuTTY.

To do this, right-click on C:\Program Files (x86)\PuTTY\puttygen.exe and select Run as Administrator:

...



Add the following option to your MAVEN_OPTS in order not to periodically hang on downloading artifacts in linux

-Djava.net.preferIPv4Stack=true

enable IP4 forwarding to enable the RHEL VM to act as an edge router - without this docker containers cannot communicate

add to /etc/sysctl.conf
net.ipv4.ip_forward = 1

Install docker (required for some repos like dcae-inventory off dcae

sudo yum install -y yum-utils
sudo yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --enable docker-ce-edge
sudo yum makecache fast
sudo yum install docker-ce
sudo systemctl start docker
20190130


Code Block
themeMidnight
sudo curl https://releases.rancher.com/install-docker/17.03.sh | sh

sudo wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 -O jq
sudo chmod 777 jq
# not +x or jq will not be runnable from your non-root user
sudo mv jq /usr/local/bin
jq --version

sudo usermod -aG docker ubuntu



to install kubernetes follow Cloud Native Deployment#Scriptedundercloud(Helm/Kubernetes/Docker)andONAPinstall-SingleVM

...



enable ubuntu desktop

apt-get update

apt-get install ubuntu-desktop

enable static IP

vi /etc/network/interfaces

add

iface enp0s25 inet static

address 192.168.15.101

netmask 255.255.255.0

network 192.168.15.0

broadcast 192.168.15.255

gateway 192.168.15.1

dns-nameservers 8.8.4.4

disable strict host checking (client and server)
in ~/.ssh/config
Host *
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Enable non CD repositories so an apt-get update will work

comment out the CD first line in /etc/apt/sources.list
enable ssh if skipped during installation so we can remote sshsudo apt-get install openssh-server
enable root login and gui (no sudo su -)
sudo passwd root

sudo usermod -U root

sudo reboot now

sudo vi /etc/lightdm/lightdm.conf

[SeatDefaults]

greeter-session=unity-greeter

user-session=ubuntu

greeter-show-manual-login=true


: enable root login

vi /etc/ssh/sshd_config
FROM:
PermitRootLogin prohibit-password
TO:
PermitRootLogin yes

systemctl restart sshd

Add the following option to your MAVEN_OPTS in order not to periodically hang on downloading artifacts in linux

in /etc/environment

-Djava.net.preferIPv4Stack=true

Install docker (required when building docker images)

use the current as of 20180621 17.03 version in the script
https://git.onap.org/logging-analytics/tree/deploy/rancher/oom_rancher_setup.sh
which is


Code Block
languagebash
themeMidnight
curl https://releases.rancher.com/install-docker/17.03.sh | sh


...

Expand
titleMaven Plugins to Reformat Java code

Using the Eclipse Formatter file above and maven plugin configuration in pom.xml as per pom.xml 

(https://code.revelc.net/formatter-maven-plugin/ for Eclipse formatter and https://github.com/diffplug/spotless/tree/master/plugin-maven for import order)

Code Block
languagexml
titleExample pom.xml configuration
collapsetrue
            <plugins>
                <!--
                Using https://code.revelc.net/formatter-maven-plugin/ for Eclipse formatter
                Using https://github.com/diffplug/spotless/tree/master/plugin-maven for import order
                Use in combination to rewrite code and imports, then checkstyle
                
                mvn formatter:format spotless:apply process-sources
                -->
                <plugin>
                     <groupId>net.revelc.code.formatter</groupId>
                     <artifactId>formatter-maven-plugin</artifactId>
                     <version>2.8.1</version>
                     <configuration>
                        <configFile>${project.parent.basedir}/onap-java-formatter.xml</configFile>
                     </configuration>
                     <!-- https://code.revelc.net/formatter-maven-plugin/
                          use mvn formatter:format to rewrite source files
                          use mvn formatter:validate to validate source files -->
                 </plugin>
                <plugin>
                  <groupId>com.diffplug.spotless</groupId>
                  <artifactId>spotless-maven-plugin</artifactId>
                  <version>1.18.0</version>
                  <configuration>
                    <java>
                     <importOrder>
                       <order>com,java,javax,org</order>
                     </importOrder>
                    </java>
                  </configuration>
                <!-- https://github.com/diffplug/spotless/tree/master/plugin-maven
                     use mvn spotless:apply to rewrite source files
                     use mvn spotless:check to validate source files -->
                </plugin>
            </plugins>


the The combination can be used in a maven command to rewrite code and imports, then checkstyle audit like so

Code Block
titleExample maven command
mvn formatter:format spotless:apply process-sources


...

Your projects should be imported in to Eclipse before this.


Expand
titleClick here to view detailed steps...
  • Right click on the project and select "SonarLint -> Bind to SonarQube or SonarCloud...".
  • Select "sonarcloud" and press "Next".
  • Click "Generate Token"
  • A browser opens and you are taken to a Sonarcloud login page
  • Login with an appropriate account from the list presented, most likely your GitHub account
  • You are now directed to a sonarcloud token generation page
  • Enter a name for your token and click "Generate"
  • Copy the token hex string that is generated from the browser and paste it into the "Token" field in Eclipse and click "Next"
  • In the "Organization" field, enter the string "onap" and press "Next"
  • The Connection name "SonarCloud/onap" should be found by the system, click "Next"
  • The connection should be successfully created, click "Finish"
  • Press "Add...".
  • Select the projects you want to add and press "OK".
  • Press "Next".
  • Start typing the name of your project, and it should appear in a list box where it should be selected.
  • Press "Finish".

...

In a shell, type the following command (assumes you installed python above) :  



Code Block
pip3 install git-review




To use git review, you have to be in a Git clone directory that already contains a (possibly hidden) .gitreview configuration file (see Gerrit/Advanced usage#Setting up a repository for git-remote)

...