Merge "Adding Layered Architecture test and Arch Unit Library for CPS-CORE"
diff --git a/cps-application/pom.xml b/cps-application/pom.xml
index 7f30f06..f656215 100755
--- a/cps-application/pom.xml
+++ b/cps-application/pom.xml
@@ -38,7 +38,7 @@
         <jib-maven-plugin.version>2.8.0</jib-maven-plugin.version>
         <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
         <minimum-coverage>0.7</minimum-coverage>
-        <base.image>${docker.repository.pull}onap/integration-java11:8.0.0</base.image>
+        <base.image>${docker.pull.registry}/onap/integration-java11:8.0.0</base.image>
         <image.tag>${project.version}-${maven.build.timestamp}</image.tag>
     </properties>
 
@@ -131,7 +131,7 @@
                             <tags>
                                 <tag>latest</tag>
                             </tags>
-                            <image>${docker.repository.push}onap/${image.name}:${image.tag}</image>
+                            <image>${docker.push.registry}/onap/${image.name}:${image.tag}</image>
                         </to>
                     </configuration>
                     <executions>
diff --git a/cps-parent/pom.xml b/cps-parent/pom.xml
index 78a89f0..a341ea9 100755
--- a/cps-parent/pom.xml
+++ b/cps-parent/pom.xml
@@ -37,16 +37,10 @@
 
     <properties>
         <app>org.onap.cps.Application</app>
-        <docker.repository.push>nexus3.onap.org:10003/</docker.repository.push>
-        <docker.repository.pull>nexus3.onap.org:10001/</docker.repository.pull>
         <java.version>11</java.version>
         <jsonschema2pojo-maven-plugin.version>1.1.1</jsonschema2pojo-maven-plugin.version>
         <minimum-coverage>0.9</minimum-coverage>
-        <nexusproxy>https://nexus.onap.org</nexusproxy>
         <oparent.version>3.1.0</oparent.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <releaseNexusPath>/content/repositories/releases/</releaseNexusPath>
-        <snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath>
         <spotbugs-maven-plugin.version>4.1.3</spotbugs-maven-plugin.version>
         <spotbugs.slf4j.version>1.8.0-beta4</spotbugs.slf4j.version>
         <spotbugs.bug-pattern.version>1.5.0</spotbugs.bug-pattern.version>
@@ -73,19 +67,6 @@
         </sonar.coverage.jacoco.xmlReportPaths>
     </properties>
 
-    <distributionManagement>
-        <repository>
-            <id>ecomp-releases</id>
-            <name>ECOMP Release Repository</name>
-            <url>${nexusproxy}${releaseNexusPath}</url>
-        </repository>
-        <snapshotRepository>
-            <id>ecomp-snapshots</id>
-            <name>ECOMP Snapshot Repository</name>
-            <url>${nexusproxy}${snapshotNexusPath}</url>
-        </snapshotRepository>
-    </distributionManagement>
-
     <dependencyManagement>
         <dependencies>
             <dependency>
@@ -346,7 +327,7 @@
                             see https://www.testcontainers.org/features/configuration/#disabling-ryuk
                          -->
                         <TESTCONTAINERS_RYUK_DISABLED>true</TESTCONTAINERS_RYUK_DISABLED>
-                        <TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX>${docker.repository.pull}library/</TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX>
+                        <TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX>${docker.pull.registry}/library/</TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX>
                     </environmentVariables>
                 </configuration>
             </plugin>
diff --git a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java
index af1eca3..42364ea 100644
--- a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java
+++ b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java
@@ -160,7 +160,7 @@
         final var dataspaceEntity = dataspaceRepository.getByName(dataspaceName);
         final var anchorEntity = anchorRepository.getByDataspaceAndName(dataspaceEntity, anchorName);
         if (isRootXpath(xpath)) {
-            return fragmentRepository.getFirstByDataspaceAndAnchor(dataspaceEntity, anchorEntity);
+            return fragmentRepository.findFirstRootByDataspaceAndAnchor(dataspaceEntity, anchorEntity);
         } else {
             return fragmentRepository.getByDataspaceAndAnchorAndXpath(dataspaceEntity, anchorEntity,
                 xpath);
diff --git a/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentRepository.java b/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentRepository.java
index c484ae9..ee77b73 100755
--- a/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentRepository.java
+++ b/cps-ri/src/main/java/org/onap/cps/spi/repository/FragmentRepository.java
@@ -48,12 +48,15 @@
             .orElseThrow(() -> new DataNodeNotFoundException(dataspaceEntity.getName(), anchorEntity.getName(), xpath));

     }

 

-    Optional<FragmentEntity> findFirstByDataspaceAndAnchor(@NonNull DataspaceEntity dataspaceEntity,

-        @NonNull AnchorEntity anchorEntity);

+    @Query(

+        value = "SELECT * FROM FRAGMENT WHERE anchor_id = :anchor AND dataspace_id = :dataspace AND parent_id is NULL",

+        nativeQuery = true)

+    List<FragmentEntity> findRootsByDataspaceAndAnchor(

+        @Param("dataspace") int dataspaceId, @Param("anchor") int anchorId);

 

-    default FragmentEntity getFirstByDataspaceAndAnchor(@NonNull DataspaceEntity dataspaceEntity,

+    default FragmentEntity findFirstRootByDataspaceAndAnchor(@NonNull DataspaceEntity dataspaceEntity,

         @NonNull AnchorEntity anchorEntity) {

-        return findFirstByDataspaceAndAnchor(dataspaceEntity, anchorEntity)

+        return findRootsByDataspaceAndAnchor(dataspaceEntity.getId(), anchorEntity.getId()).stream().findFirst()

             .orElseThrow(() -> new DataNodeNotFoundException(dataspaceEntity.getName(), anchorEntity.getName()));

     }

 

diff --git a/cps-ri/src/main/resources/changelog/changelog-master.yaml b/cps-ri/src/main/resources/changelog/changelog-master.yaml
index 41e5080..2d997e3 100644
--- a/cps-ri/src/main/resources/changelog/changelog-master.yaml
+++ b/cps-ri/src/main/resources/changelog/changelog-master.yaml
@@ -31,3 +31,5 @@
       file: changelog/db/changes/07-update-yang-resource-checksums.yaml
   - include:
       file: changelog/db/changes/08-update-yang-resources.yaml
+  - include:
+      file: changelog/db/changes/09-loadData-dmi-registry-schema-set.yaml
diff --git a/cps-ri/src/main/resources/changelog/db/changes/09-loadData-dmi-registry-schema-set.yaml b/cps-ri/src/main/resources/changelog/db/changes/09-loadData-dmi-registry-schema-set.yaml
new file mode 100644
index 0000000..d0977fb
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/09-loadData-dmi-registry-schema-set.yaml
@@ -0,0 +1,115 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2021 Nordix Foundation. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+databaseChangeLog:
+  - changeSet:
+      author: cps
+      label: dmi-registry-schema-preload
+      id: 9
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/dmi/dataspace.csv'
+        onlyUpdate: 'false'
+        primaryKey: 'id'
+        quotchar: '"'
+        separator: '|'
+        tableName: 'dataspace'
+      rollback:
+        - sql:
+            sql: delete from dataspace where name = 'NCMP-Admin'
+
+  - changeSet:
+      author: cps
+      label: dmi-registry-schema-preload
+      id: 9.1
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/dmi/schema_set.csv'
+        onlyUpdate: 'false'
+        primaryKey: 'id'
+        quotchar: '"'
+        separator: '|'
+        tableName: 'schema_set'
+      rollback:
+        - sql:
+            sql: delete from schema_set where name = 'ncmp-dmi-registry-model'
+
+  - changeSet:
+      author: cps
+      label: dmi-registry-schema-preload
+      id: 9.2
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/dmi/yang_resource.csv'
+        onlyUpdate: 'false'
+        primaryKey: 'id'
+        quotchar: '"'
+        separator: '|'
+        tableName: 'yang_resource'
+        columns:
+          - column:
+              header:  name
+              name:  name
+              type:  STRING
+          - column:
+              header:  content
+              name: content
+              type: STRING
+          - column:
+              header:  checksum
+              name: checksum
+              type: STRING
+      rollback:
+        - sql:
+            sql: delete from yang_resource where name = 'dmi-registry@2021-05-20.yang'
+
+  - changeSet:
+      author: cps
+      label: dmi-registry-schema-preload
+      id: 9.3
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/dmi/schema_set_yang_resources.csv'
+        quotchar: '"'
+        primaryKey: 'schema_set_id,yang_resource_id'
+        separator: '|'
+        tableName: 'schema_set_yang_resources'
+        usePreparedStatements:  true
+      rollback:
+        - sql:
+            sql: >
+              delete from schema_set_yang_resources
+              where schema_set_id = (select id from schema_set where name = 'ncmp-dmi-registry-model')
+              and yang_resource_id = (select id from yang_resource where name = 'dmi-registry@2021-05-20.yang')
+
+  - changeSet:
+      author: cps
+      label: dmi-registry-schema-preload
+      id: 9.4
+      loadUpdateData:
+        encoding: UTF-8
+        file: 'changelog/db/changes/data/dmi/anchor.csv'
+        onlyUpdate: 'false'
+        primaryKey: 'id'
+        quotchar: '"'
+        separator: '|'
+        tableName: 'anchor'
+      rollback:
+        - sql:
+            sql: delete from anchor where name = 'ncmp-dmi-registry'
+
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/dmi/anchor.csv b/cps-ri/src/main/resources/changelog/db/changes/data/dmi/anchor.csv
new file mode 100644
index 0000000..7a0df21
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/dmi/anchor.csv
@@ -0,0 +1,2 @@
+name|schema_set_id|dataspace_id
+ncmp-dmi-registry|(select id from schema_set where name='ncmp-dmi-registry-model')|(select id from dataspace where name='NCMP-Admin')
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/dmi/dataspace.csv b/cps-ri/src/main/resources/changelog/db/changes/data/dmi/dataspace.csv
new file mode 100644
index 0000000..4fb2eec
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/dmi/dataspace.csv
@@ -0,0 +1,2 @@
+name
+NCMP-Admin
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/dmi/schema_set.csv b/cps-ri/src/main/resources/changelog/db/changes/data/dmi/schema_set.csv
new file mode 100644
index 0000000..936239b
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/dmi/schema_set.csv
@@ -0,0 +1,2 @@
+name|dataspace_id
+ncmp-dmi-registry-model|(select id from dataspace where name='NCMP-Admin')
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/dmi/schema_set_yang_resources.csv b/cps-ri/src/main/resources/changelog/db/changes/data/dmi/schema_set_yang_resources.csv
new file mode 100644
index 0000000..9183d38
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/dmi/schema_set_yang_resources.csv
@@ -0,0 +1,3 @@
+schema_set_id|yang_resource_id
+(select id from schema_set where name='ncmp-dmi-registry-model')|(select id from yang_resource where name='dmi-registry@2021-05-20.yang')
+
diff --git a/cps-ri/src/main/resources/changelog/db/changes/data/dmi/yang_resource.csv b/cps-ri/src/main/resources/changelog/db/changes/data/dmi/yang_resource.csv
new file mode 100644
index 0000000..35e2bcd
--- /dev/null
+++ b/cps-ri/src/main/resources/changelog/db/changes/data/dmi/yang_resource.csv
@@ -0,0 +1,48 @@
+name|content|checksum
+dmi-registry@2021-05-20.yang|"module dmi-registry {
+
+  yang-version 1.1;
+
+  namespace \"org:onap:cps:ncmp\";
+
+  prefix dmi-reg;
+
+  organization \"Nordix Foundation\";
+
+  contact \"rahul.tyagi@est.tech\";
+
+  revision \"2021-05-20\" {
+    description
+    \"Initial Version\";
+  }
+
+  container dmi-registry {
+
+    list cm-handles {
+
+      key \"id\";
+
+      leaf id {
+        type string;
+      }
+
+      leaf dmi-service-name {
+        type string;
+      }
+
+      list additional-properties {
+
+        key \"name\";
+
+        leaf name {
+          type string;
+        }
+
+        leaf value {
+          type string;
+        }
+      }
+    }
+  }
+}
+"|257b264cd091436f74f9c92512b507459615391f7006fc40b74b6866dbe1b379
\ No newline at end of file
diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
index a09166d..aa54a99 100755
--- a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
@@ -150,7 +150,7 @@
             def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap(

                     'ietf/ietf-inet-types@2013-07-15.yang',

                     'ietf/ietf-yang-types@2013-07-15.yang',

-                    'e2e/basic/cps-ran-schema-model@2021-01-28.yang'

+                    'e2e/basic/cps-ran-schema-model@2021-05-19.yang'

             )

         and : 'json data'

             def jsonData = TestUtils.getResourceFileContent('e2e/basic/cps-ran-schema-model-data-v4.json')

diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json
index 0925eef..fba875b 100644
--- a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json
+++ b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json
@@ -4,9 +4,9 @@
       {
         "idNearRTRIC": "11",
         "attributes":{
-        "ranNFNSSIIdList":[
-        "ac8ca1a9-e1ec-4480-8720-c74e92566885"
-        ]
+          "ranNFNSSIIdList":[
+            "ac8ca1a9-e1ec-4480-8720-c74e92566885"
+          ]
         },
         "GNBCUUPFunction": [
           {
diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-05-19.yang
similarity index 90%
rename from cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang
rename to cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-05-19.yang
index 224e884..5fd292a 100644
--- a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang
+++ b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-05-19.yang
@@ -3,14 +3,14 @@
   namespace "org:onap:ccsdk:features:sdnr:northbound:cps-ran-schema-model";
   prefix rn;
 
-   import ietf-inet-types {
+  import ietf-inet-types {
     prefix inet;
   }
   import ietf-yang-types {
     prefix yang;
   }
 
-        organization
+  organization
     "Open Network Automation Platform - ONAP
      <https://www.onap.org>";
   contact
@@ -39,6 +39,13 @@
      See the License for the specific language governing permissions and
      limitations under the License.";
 
+     revision 2021-05-19 {
+       description
+         "Added support for OOF PCI SON Use case";
+       reference
+         "https://wiki.onap.org/display/DW/CPS+APIs";
+     }
+
   revision 2021-01-28 {
     description
       "CPS RAN Network YANG Model for ONAP/O-RAN POC";
@@ -855,7 +862,7 @@
           reference "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
         }
 
-        list pLMNInfoList {
+  	list pLMNInfoList {
           uses PLMNInfo;
           key "mcc mnc";
           description "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that can be served by the nearRTRIC.";
@@ -875,6 +882,7 @@
         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
     }
+
     leaf-list ranNFNSSIIdList{
                 type string;
                 config true;
@@ -886,17 +894,17 @@
 
 
 
-        grouping Configuration{
-                leaf configParameter{
-                        type string;
-                        description "Type of the configuration parameter";
+  	grouping Configuration{
+  		leaf configParameter{
+  			type string;
+  			description "Type of the configuration parameter";
         }
-                leaf configValue{
-                        type int64;
-                        description "Identifies the configuration to be done for the network elements under the NearRTRIC";
+  		leaf configValue{
+  			type int64;
+  			description "Identifies the configuration to be done for the network elements under the NearRTRIC";
 
-                }
-        }
+  		}
+  	}
 
 
   grouping GNBDUFunctionGroup {
@@ -994,6 +1002,31 @@
       reference
         "NCI in 3GPP TS 38.300";
     }
+
+    leaf siteLatitude {
+      type decimal64 {
+        fraction-digits 4;
+        range "-90.0000..+90.0000";
+      }
+      description "The latitude of the site where the ManagedFunction
+        instance resides, based on World Geodetic System (1984 version)
+        global reference frame (WGS 84). Positive values correspond to
+        the northern hemisphere. This attribute is optional in case of
+        BTSFunction and RNCFunction instance(s).";
+    }
+
+    leaf siteLongitude {
+      type decimal64 {
+        fraction-digits 4;
+        range "-180.0000..+180.0000";
+      }
+      description "The longitude of the site where the ManagedFunction
+        instance resides, based on World Geodetic System (1984 version)
+        global reference frame (WGS 84). Positive values correspond to
+        degrees east of 0 degrees longitude. This attribute is optional in
+        case of BTSFunction and RNCFunction instance(s).";
+    }
+
     list pLMNInfoList {
       key "mcc mnc";
       min-elements 1;
@@ -1085,21 +1118,21 @@
 
 
   grouping sNSSAIConfig{
-        leaf sNssai {
+	leaf sNssai {
         type string;
         description "s-NSSAI of a network slice.";
-           reference "3GPP TS 23.003";
+	   reference "3GPP TS 23.003";
       }
-         leaf status {
+ 	 leaf status {
         type string;
         description "status of s-NSSAI";
       }
-        list configData{
-                uses Configuration;
-                key "configParameter";
-                description "List of configurations to be done at the network elements";
-        }
-        }
+	list configData{
+		uses Configuration;
+		key "configParameter";
+		description "List of configurations to be done at the network elements";
+	}
+	}
 
   grouping RRMPolicy_Group {
     description
@@ -1290,6 +1323,23 @@
     }
   } // grouping NRCellCUGroup
 
+  grouping RegionNRCellCUMappingGroup {
+    description
+      "Represents the NRCellCU IOC.";
+    reference
+      "3GPP TS 28.541";
+    leaf cellLocalId {
+      type int32 {
+        range "0..16383";
+      }
+      mandatory false;
+      description
+        "Identifies an NR cell of a gNB. Together with corresponding
+         gNB ID it forms the NR Cell Identifier (NCI).";
+    }
+
+  } // grouping RegionNRCellCUMappingGroup
+
   grouping NRCellRelationGroup {
     description
       "Represents the NRCellRelation IOC.";
@@ -1304,6 +1354,17 @@
     }
   } // grouping
 
+  typedef RegionId {
+    type union {
+      type uint8;
+      type string {
+        length 8;
+      }
+    }
+    reference "similar to clause 2.10.1 of 3GPP TS 23.003";
+  }
+
+
   // container for RAN Network
 
   container cps-ran-schema {
@@ -1312,6 +1373,56 @@
       relationships among O-RAN managed elements for the
       purposes of storing in Configuration and Persistence
       ONAP system ";
+
+    list Regions {
+      key "regionId"; // list Regions
+      description
+        "A list of regions in the RAN network to map to mutually exclusive NRCellCU's";
+      leaf regionId {
+        type RegionId;
+      }
+      container cps-region-cell-mapping {
+        list NRCellCU {
+          key "idNRCellCU";
+          description
+            "Represents the information required by CU that is
+             responsible for the management of inter-cell mobility and neighbour
+             relations via ANR.";
+          reference
+            "3GPP TS 28.541";
+          leaf idNRCellCU {
+            type string;
+            description
+              "TODO";
+          }
+          container attributes {
+            description
+              "TODO";
+            uses RegionNRCellCUMappingGroup;
+          }
+          list NRCellRelation {
+            key "idNRCellRelation";
+            description
+              "Represents a neighbour cell relation from a source cell
+               to a target cell, where the target cell is an NRCellCU or
+               ExternalNRCellCU instance.";
+            reference
+              "3GPP TS 28.541";
+            leaf idNRCellRelation {
+              type string;
+              description
+                "TODO";
+            }
+            container attributes {
+              description
+                "TODO";
+              uses NRCellRelationGroup;
+            }
+          } // list NRCellRelation
+        }
+      }
+    }
+
     list NearRTRIC {
       key "idNearRTRIC"; // list GNBCUCPFunction
       description
diff --git a/docker-compose/README.md b/docker-compose/README.md
index 6fa2229..c172276 100644
--- a/docker-compose/README.md
+++ b/docker-compose/README.md
@@ -1,9 +1,30 @@
+<!--
+  ============LICENSE_START=======================================================
+   Copyright (C) 2020 Pantheon.tech
+   Modifications (C) 2020-2021 Nordix Foundation.
+  ================================================================================
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  SPDX-License-Identifier: Apache-2.0
+  ============LICENSE_END=========================================================
+-->
+
 # Building and running CPS locally
 
 ## Building Java Archive only
 
 Following command builds all Java components to `cps-application/target/cps-application-x.y.z-SNAPSHOT.jar` JAR file
-without generating any docker images:  
+without generating any docker images:
 
 ```bash
 mvn clean install -Pcps-docker -Pncmp-docker -Pcps-ncmp-docker -Djib.skip
@@ -14,14 +35,14 @@
 * Following command builds the JAR file and also generates the Docker image for all CPS components:
 
 ```bash
-mvn clean install -Pcps-docker -Pncmp-docker -Pcps-ncmp-docker -Ddocker.repository.push=
+mvn clean install -Pcps-docker -Pncmp-docker -Pcps-ncmp-docker
 ```
 
 * Following command builds the JAR file and generates the Docker image for specified CPS component:
   (with `<docker-profile>` being one of `cps-docker`, `ncmp-docker` or `cps-ncmp-docker`):
 
 ```bash
-mvn clean install -P<docker-profile> -Ddocker.repository.push=
+mvn clean install -P<docker-profile>
 ```
 
 ## Running Docker containers
diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml
index f01d12d..2878462 100755
--- a/docker-compose/docker-compose.yml
+++ b/docker-compose/docker-compose.yml
@@ -21,45 +21,45 @@
 services:
   #cps-standalone:
   #  container_name: cps-service
-  #  image: onap/cps-service:${VERSION:-latest}
+  #  image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-service:${VERSION:-latest}
   #  ports:
   #    - "8881:8080"
   #  environment:
   #    CPS_USERNAME: ${CPS_USERNAME:-cpsuser}
   #    CPS_PASSWORD: ${CPS_PASSWORD:-cpsr0cks!}
   #    DB_HOST: dbpostgresql
-  #    DB_USERNAME: ${DB_USERNAME}
-  #    DB_PASSWORD: ${DB_PASSWORD}
+  #    DB_USERNAME: ${DB_USERNAME:-cps}
+  #    DB_PASSWORD: ${DB_PASSWORD:-cps}
   #  restart: unless-stopped
   #  depends_on:
   #    - dbpostgresql
 
   #ncmp-standalone:
   #  container_name: cps-ncmp
-  #  image: onap/cps-ncmp:${VERSION:-latest}
+  #  image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-ncmp:${VERSION:-latest}
   #  ports:
   #    - "8882:8080"
   #  environment:
   #    CPS_USERNAME: ${CPS_USERNAME:-cpsuser}
   #    CPS_PASSWORD: ${CPS_PASSWORD:-cpsr0cks!}
   #    DB_HOST: dbpostgresql
-  #    DB_USERNAME: ${DB_USERNAME}
-  #    DB_PASSWORD: ${DB_PASSWORD}
+  #    DB_USERNAME: ${DB_USERNAME:-cps}
+  #    DB_PASSWORD: ${DB_PASSWORD:-cps}
   #  restart: unless-stopped
   #  depends_on:
   #    - dbpostgresql
 
   cps-and-ncmp:
     container_name: cps-and-ncmp
-    image: onap/cps-and-ncmp:${VERSION:-latest}
+    image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-and-ncmp:${VERSION:-latest}
     ports:
       - "8883:8080"
     environment:
       CPS_USERNAME: ${CPS_USERNAME:-cpsuser}
       CPS_PASSWORD: ${CPS_PASSWORD:-cpsr0cks!}
       DB_HOST: dbpostgresql
-      DB_USERNAME: ${DB_USERNAME}
-      DB_PASSWORD: ${DB_PASSWORD}
+      DB_USERNAME: ${DB_USERNAME:-cps}
+      DB_PASSWORD: ${DB_PASSWORD:-cps}
     restart: unless-stopped
     depends_on:
       - dbpostgresql
@@ -71,5 +71,5 @@
       - '5432:5432'
     environment:
       POSTGRES_DB: cpsdb
-      POSTGRES_USER: ${DB_USERNAME}
-      POSTGRES_PASSWORD: ${DB_PASSWORD}
+      POSTGRES_USER: ${DB_USERNAME:-cps}
+      POSTGRES_PASSWORD: ${DB_PASSWORD:-cps}