You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

Here we will show you how to setup APPC build environment on Ubuntu 16.04


  1. Install and setup Docker

    sudo apt update -y

    sudo apt install -y apt-transport-https ca-certificates curl software-properties-common wget zip

    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

    sudo apt update -y

    sudo apt install -y docker-ce

    sudo apt-get install -y docker-compose

    sudo usermod -aG docker $USER

    Note: You should logout and login back to execute docker commands

  2. Install Java & Maven 

    sudo apt update

    sudo apt install openjdk-8-jdk openjdk-8-jre -y

    sudo apt install maven -y

    bash -c 'echo  export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 >> ~/.bashrc'

  3. Setup local maven repository

    mkdir -p $HOME/.m2

    Download and copy settings.xml settings.xml to $HOME/.m2 folder
  4. Clone APPC git repository

    mkdir -p $HOME/ONAP-APPC

    cd $HOME/ONAP-APPC


    # APPC Core projects


    # TODO : For now we are using the Casablanca maintenance release tag  3.0.1-ONAP 

    git clone -b 3.0.1-ONAP https://github.com/onap/appc-parent

    git clone -b 3.0.1-ONAP https://gerrit.onap.org/r/appc

    # This for building APPC docker images

    git clone -b 3.0.1-ONAP https://gerrit.onap.org/r/appc/deployment

  5. Build appc-parent

    cd $HOME/ONAP-APPC/appc-parent

    # We need to increment minor version in the following POM files

    # Execute the following command to increment the minor version from 1.4.1-SNAPSHOT to 1.4.2-SNAPSHOT

            find . -name "pom.xml" | xargs sed -i 's|1.4.1-SNAPSHOT|1.4.2-SNAPSHOT|g'

            # Use the following command verify the list of files updated

            grep -ril '1.4.2-SNAPSHOT'     

            # Updated the CCSDK parent artifact "org.onap.ccsdk.parent" version should like the below one

            # Replace '1.1.3' with 1.2.2 using the below command, otherwise we can use vi or other text editor to the same

            find . -name pom.xml | xargs sed -i 's|1.1.3|1.2.2|g'

            #vi ./feature-repo-parent/pom.xml
            #vi ./binding-parent/pom.xml
            #vi ./bundle-parent/pom.xml
            #vi ./pom.xml
            #vi ./single-feature-parent/pom.xml
            #vi ./odlparent-lite/pom.xml

            

            # This is to use the CCSDK with ODL Fluorine SR2 release


                                                  <parent>
                                                  <groupId>org.onap.ccsdk.parent</groupId>
                                                  <artifactId>odlparent-lite</artifactId>
                                                  <version>1.2.2</version>
                                                 <relativePath />
                                                 </parent>

         

           # Now, build the parent project. It would sometime and we should wait for this one to get completed.

            mvn clean install -DskipTests | tee appc-parent-build.log

You can refer the reference appc parent project build log file appc-parent-build.log  for more information

  1. Build appc core project

            cd $HOME/ONAP-APPC/appc


            # We should first refer new local release version of the appc-parent components under <groupId>org.onap.appc.parent</groupId>

            # We should update 1.4.1 to 1.4.2-SNAPSHOT using the below command

            grep -ril 'org.onap.appc.parent' * | xargs sed -i 's|1.4.1|1.4.2-SNAPSHOT|g'

           # Build the APPC project and this will take a while to complete the entire build

           mvn clean install -DskipTests -e  | tee -a appc-build.log

You can refer the build log file appc-build.log for more information.

  1. Build appc deployment project (This is responsible to build APPC docker images)

           

             # First pull the ccsdk-odlsli-image for ODL Fluorine SR2 release. This will take some time

            docker pull nexus3.onap.org:10001/onap/ccsdk-odlsli-image:0.4.4

            # Edit the below file with the latest version of ccsdk-odlsli-image

            # vi ./installation/appc/src/main/docker/Dockerfile 

            # You can use the below command to replace the image version

             cd $HOME/ONAP-APPC/deployment 

             sed -i 's|FROM onap/ccsdk-odlsli-image:0.3.3|FROM onap/ccsdk-odlsli-image:0.4.4|g'  ./installation/appc/src/main/docker/Dockerfile 

             # Now, run the maven build     

             mvn clean install -DskipTests | tee -a appc-deployment-build.log

             You can refer the build log file appc-deployment-build.log for more information.


            # Execute docker image create command 

             mvn clean install -P docker -DskipTests | tee -a appc-deployment-docker-image-build.log

             The docker image for CDT failed, you can refer the log file appc-deployment-docker-image-build.log to get more details.

  1. TODO

           # We will have to fix the below appc core project source files to change the package com.sun.jersey to use org.glassfish.jersey to resolve

           the Karaf OSGI bundle loading issue.


appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/ConfigComponentAdaptor.java
appc-config/appc-config-adaptor/provider/src/test/java/org/onap/appc/ccadaptor/ConfigComponentAdaptorTest.java
appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/executorImpl/RestExecutor.java
appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/controller/executorImpl/RestExecutorTest.java
appc-inbound/appc-design-services/provider/src/main/java/org/onap/appc/design/services/util/ArtifactHandlerClient.java
appc-inbound/appc-design-services/provider/src/test/java/org/onap/appc/design/services/util/ArtifactHandlerClientTest.java
appc-outbound/appc-network-inventory-client/provider/src/main/java/org/onap/appc/instar/dme2client/Dme2Client.java
appc-outbound/appc-network-inventory-client/provider/src/test/java/org/onap/appc/instar/node/TestDme2Client.java


             # We see the following artifact references in appc-adapters/appc-netconf-adapter/appc-netconf-adapter-bundle/pom.xml

            # Need to investigate further.


<!-- Needed to run test cases -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.9.1</version>
</dependency>


<!-- Jersey support needed for OpenStack connector and API version logic -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
</dependency>


  • No labels