Modular structure of clamp including controlloop 79/121279/3
authorSirisha_Manchikanti <sirisha.manchikanti@est.tech>
Fri, 7 May 2021 14:17:52 +0000 (15:17 +0100)
committerSirisha_Manchikanti <sirisha.manchikanti@est.tech>
Thu, 13 May 2021 08:00:52 +0000 (09:00 +0100)
This commit is the first commit that puts in multi module structure while
changing the existing CLAMP code as little as possible.
It adds a structure where common, models, participant and runtime are direct children under clamp,
and current clamp code is moved under runtime. This runtime directory will host controlloop
runtime code in later commits.

Issue-ID: POLICY-3215
Signed-off-by: Sirisha_Manchikanti <sirisha.manchikanti@est.tech>
Change-Id: I15bc8be92ed020343bff4024c4718fec462c40d7
Signed-off-by: liamfallon <liam.fallon@est.tech>
471 files changed:
common/pom.xml [new file with mode: 0644]
docs/_static/favicon.ico [changed mode: 0755->0644]
docs/images/user-guide/blueprint_node_type.png [changed mode: 0755->0644]
docs/images/user-guide/clamp-cds-operation.png [changed mode: 0755->0644]
docs/images/user-guide/config-policy-tca.png [changed mode: 0755->0644]
docs/images/user-guide/deploy-params.png [changed mode: 0755->0644]
docs/images/user-guide/op-policy-box-policy.png [changed mode: 0755->0644]
docs/images/user-guide/open-menu-prop.png [changed mode: 0755->0644]
docs/images/user-guide/policy-submitted.png [changed mode: 0755->0644]
docs/swagger/swagger.json
docs/swagger/swagger.pdf
models/pom.xml [new file with mode: 0644]
participant/participant-impl/participant-impl-cds/pom.xml [new file with mode: 0644]
participant/participant-impl/participant-impl-dcae/pom.xml [new file with mode: 0644]
participant/participant-impl/participant-impl-kubernetes/pom.xml [new file with mode: 0644]
participant/participant-impl/participant-impl-policy/pom.xml [new file with mode: 0644]
participant/participant-impl/participant-impl-simulator/pom.xml [new file with mode: 0644]
participant/participant-impl/pom.xml [new file with mode: 0644]
participant/participant-intermediary/pom.xml [new file with mode: 0644]
participant/pom.xml [new file with mode: 0644]
pom.xml
runtime/extra/bin-for-dev/start-backend.sh [moved from extra/bin-for-dev/start-backend.sh with 100% similarity]
runtime/extra/bin-for-dev/start-db.sh [moved from extra/bin-for-dev/start-db.sh with 100% similarity]
runtime/extra/bin-for-dev/start-emulator.sh [moved from extra/bin-for-dev/start-emulator.sh with 100% similarity]
runtime/extra/bin-for-dev/start-frontend.sh [moved from extra/bin-for-dev/start-frontend.sh with 100% similarity]
runtime/extra/docker/clamp/clamp.env [moved from extra/docker/clamp/clamp.env with 100% similarity]
runtime/extra/docker/clamp/docker-compose.yml [moved from extra/docker/clamp/docker-compose.yml with 100% similarity]
runtime/extra/docker/mariadb/conf1/my.cnf [moved from extra/docker/mariadb/conf1/my.cnf with 100% similarity]
runtime/extra/docker/mariadb/conf2/my.cnf [moved from extra/docker/mariadb/conf2/my.cnf with 100% similarity]
runtime/extra/docker/mariadb/conf3/my.cnf [moved from extra/docker/mariadb/conf3/my.cnf with 100% similarity]
runtime/extra/sql/bootstrap-database.sh [moved from extra/sql/bootstrap-database.sh with 100% similarity]
runtime/extra/sql/bulkload/create-db.sql [moved from extra/sql/bulkload/create-db.sql with 100% similarity]
runtime/extra/sql/bulkload/create-tables.sql [moved from extra/sql/bulkload/create-tables.sql with 100% similarity]
runtime/extra/sql/dump/backup-data-only.sh [moved from extra/sql/dump/backup-data-only.sh with 100% similarity]
runtime/extra/sql/dump/backup-database.sh [moved from extra/sql/dump/backup-database.sh with 100% similarity]
runtime/extra/sql/dump/load-fake-data.sh [moved from extra/sql/dump/load-fake-data.sh with 100% similarity]
runtime/extra/sql/dump/test-data.sql [moved from extra/sql/dump/test-data.sql with 100% similarity]
runtime/pom.xml [new file with mode: 0644]
runtime/runtime/src/main/resources/META-INF/resources/swagger.html [new file with mode: 0644]
runtime/src/main/docker/backend/Dockerfile [moved from src/main/docker/backend/Dockerfile with 97% similarity]
runtime/src/main/docker/backend/backend-files.xml [moved from src/main/docker/backend/backend-files.xml with 100% similarity]
runtime/src/main/docker/frontend/Dockerfile [moved from src/main/docker/frontend/Dockerfile with 95% similarity]
runtime/src/main/docker/frontend/frontend-files.xml [moved from src/main/docker/frontend/frontend-files.xml with 100% similarity]
runtime/src/main/docker/frontend/nginx/default.conf [moved from src/main/docker/frontend/nginx/default.conf with 100% similarity]
runtime/src/main/docker/frontend/nginx/nginx.conf [moved from src/main/docker/frontend/nginx/nginx.conf with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java [moved from src/main/java/org/onap/policy/clamp/authorization/AuthorizationController.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/authorization/CldsUser.java [moved from src/main/java/org/onap/policy/clamp/authorization/CldsUser.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java [moved from src/main/java/org/onap/policy/clamp/authorization/SecureServicePermission.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java [moved from src/main/java/org/onap/policy/clamp/authorization/SecureServicePermissionDeserializer.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/authorization/UserService.java [moved from src/main/java/org/onap/policy/clamp/authorization/UserService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/Application.java [moved from src/main/java/org/onap/policy/clamp/clds/Application.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java [moved from src/main/java/org/onap/policy/clamp/clds/ClampInUserAuditorAware.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/ClampServlet.java [moved from src/main/java/org/onap/policy/clamp/clds/ClampServlet.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java [moved from src/main/java/org/onap/policy/clamp/clds/TomcatEmbeddedServletContainerFactoryRedirection.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java [moved from src/main/java/org/onap/policy/clamp/clds/client/CdsServices.java with 97% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java [moved from src/main/java/org/onap/policy/clamp/clds/client/DcaeInventoryServices.java with 98% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java [moved from src/main/java/org/onap/policy/clamp/clds/config/AafConfiguration.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java [moved from src/main/java/org/onap/policy/clamp/clds/config/CamelConfiguration.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java [moved from src/main/java/org/onap/policy/clamp/clds/config/ClampProperties.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java [moved from src/main/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoder.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java [moved from src/main/java/org/onap/policy/clamp/clds/config/DefaultDictionaryElements.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java [moved from src/main/java/org/onap/policy/clamp/clds/config/DefaultUserConfiguration.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java [moved from src/main/java/org/onap/policy/clamp/clds/config/SslConfig.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java [moved from src/main/java/org/onap/policy/clamp/clds/config/SystemPropertiesLoader.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java [moved from src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcControllersConfiguration.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java [moved from src/main/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfiguration.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java [moved from src/main/java/org/onap/policy/clamp/clds/config/spring/CldsConfiguration.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java [moved from src/main/java/org/onap/policy/clamp/clds/config/spring/SdcControllerConfiguration.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/CldsConfigException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/CldsUsersException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/NotAuthorizedException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/cds/CdsParametersException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/dcae/DcaeDeploymentException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/BlueprintParserException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/CsarHandlerException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcArtifactInstallerException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcControllerException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcDownloadException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java [moved from src/main/java/org/onap/policy/clamp/clds/exception/sdc/controller/SdcParametersException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java [moved from src/main/java/org/onap/policy/clamp/clds/filter/ClampCadiFilter.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java [moved from src/main/java/org/onap/policy/clamp/clds/model/ClampInformation.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java [moved from src/main/java/org/onap/policy/clamp/clds/model/CldsHealthCheck.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java [moved from src/main/java/org/onap/policy/clamp/clds/model/cds/CdsBpWorkFlowListResponse.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java [moved from src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryCache.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java [moved from src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponse.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java [moved from src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeLinks.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java [moved from src/main/java/org/onap/policy/clamp/clds/model/dcae/DcaeOperationStatusResponse.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java [moved from src/main/java/org/onap/policy/clamp/clds/sdc/controller/DistributionStatusMessage.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java [moved from src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleController.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java [moved from src/main/java/org/onap/policy/clamp/clds/sdc/controller/SdcSingleControllerStatus.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java [moved from src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintArtifact.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java [moved from src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintMicroService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java [moved from src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParser.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java [moved from src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGenerator.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java [moved from src/main/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandler.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java [moved from src/main/java/org/onap/policy/clamp/clds/service/CldsHealthcheckService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/JsonEditorSchemaConstants.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/ToscaSchemaConstants.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupport.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/UnknownComponentException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ArrayField.java with 97% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/Constraint.java with 97% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElement.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElement.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/elements/ToscaElementProperty.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataProcess.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataProcess.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataTargetProcess.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/ToscaMetadataTargetProcess.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/ToscaElementParser.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParser.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParser.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplate.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplate.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateField.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateField.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java [moved from src/main/java/org/onap/policy/clamp/clds/tosca/update/templates/JsonTemplateManager.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/util/ClampVersioning.java [moved from src/main/java/org/onap/policy/clamp/clds/util/ClampVersioning.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/util/JsonUtils.java [moved from src/main/java/org/onap/policy/clamp/clds/util/JsonUtils.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/util/LogMessages.java [moved from src/main/java/org/onap/policy/clamp/clds/util/LogMessages.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java [moved from src/main/java/org/onap/policy/clamp/clds/util/LoggingUtils.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/util/OnapLogConstants.java [moved from src/main/java/org/onap/policy/clamp/clds/util/OnapLogConstants.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java [moved from src/main/java/org/onap/policy/clamp/clds/util/ResourceFileUtils.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java [moved from src/main/java/org/onap/policy/clamp/configuration/ClampGsonDataFormat.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java [moved from src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantDeserializer.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java [moved from src/main/java/org/onap/policy/clamp/dao/model/gson/converter/InstantSerializer.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java [moved from src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonStringSqlTypeDescriptor.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java [moved from src/main/java/org/onap/policy/clamp/dao/model/jsontype/JsonTypeDescriptor.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java [moved from src/main/java/org/onap/policy/clamp/dao/model/jsontype/StringJsonUserType.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java [moved from src/main/java/org/onap/policy/clamp/flow/log/FlowLogOperation.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java [moved from src/main/java/org/onap/policy/clamp/loop/CsarInstaller.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/Loop.java [moved from src/main/java/org/onap/policy/clamp/loop/Loop.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/LoopController.java [moved from src/main/java/org/onap/policy/clamp/loop/LoopController.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/LoopService.java [moved from src/main/java/org/onap/policy/clamp/loop/LoopService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/LoopState.java [moved from src/main/java/org/onap/policy/clamp/loop/LoopState.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java [moved from src/main/java/org/onap/policy/clamp/loop/LoopsRepository.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java [moved from src/main/java/org/onap/policy/clamp/loop/cds/CdsDataInstaller.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java [moved from src/main/java/org/onap/policy/clamp/loop/common/AuditEntity.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java [moved from src/main/java/org/onap/policy/clamp/loop/components/external/DcaeComponent.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java [moved from src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponent.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java [moved from src/main/java/org/onap/policy/clamp/loop/components/external/ExternalComponentState.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java [moved from src/main/java/org/onap/policy/clamp/loop/components/external/PolicyComponent.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java [moved from src/main/java/org/onap/policy/clamp/loop/deploy/DcaeDeployParameters.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/log/LogType.java [moved from src/main/java/org/onap/policy/clamp/loop/log/LogType.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java [moved from src/main/java/org/onap/policy/clamp/loop/log/LoopLog.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java [moved from src/main/java/org/onap/policy/clamp/loop/log/LoopLogRepository.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java [moved from src/main/java/org/onap/policy/clamp/loop/log/LoopLogService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java [moved from src/main/java/org/onap/policy/clamp/loop/service/CsarServiceInstaller.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/service/Service.java [moved from src/main/java/org/onap/policy/clamp/loop/service/Service.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java [moved from src/main/java/org/onap/policy/clamp/loop/service/ServicesRepository.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java [moved from src/main/java/org/onap/policy/clamp/loop/template/LoopElementModel.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java [moved from src/main/java/org/onap/policy/clamp/loop/template/LoopElementModelsRepository.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java [moved from src/main/java/org/onap/policy/clamp/loop/template/LoopTemplate.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java [moved from src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModel.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java [moved from src/main/java/org/onap/policy/clamp/loop/template/LoopTemplateLoopElementModelId.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java [moved from src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesRepository.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java [moved from src/main/java/org/onap/policy/clamp/loop/template/LoopTemplatesService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopType.java [moved from src/main/java/org/onap/policy/clamp/loop/template/LoopType.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java [moved from src/main/java/org/onap/policy/clamp/loop/template/LoopTypeConvertor.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java [moved from src/main/java/org/onap/policy/clamp/loop/template/PolicyModel.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java [moved from src/main/java/org/onap/policy/clamp/loop/template/PolicyModelId.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java [moved from src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsRepository.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java [moved from src/main/java/org/onap/policy/clamp/loop/template/PolicyModelsService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/Policy.java [moved from src/main/java/org/onap/policy/clamp/policy/Policy.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java [moved from src/main/java/org/onap/policy/clamp/policy/PolicyEngineServices.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java [moved from src/main/java/org/onap/policy/clamp/policy/PolicyPayload.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/PolicyService.java [moved from src/main/java/org/onap/policy/clamp/policy/PolicyService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java [moved from src/main/java/org/onap/policy/clamp/policy/downloader/PolicyEngineController.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java [moved from src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicy.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java [moved from src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyRepository.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java [moved from src/main/java/org/onap/policy/clamp/policy/microservice/MicroServicePolicyService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java [moved from src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicy.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java [moved from src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepository.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java [moved from src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilder.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java [moved from src/main/java/org/onap/policy/clamp/policy/operational/OperationalPolicyService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java [moved from src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayload.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadException.java [moved from src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadException.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java [moved from src/main/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupsAnalyzer.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java [moved from src/main/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMerger.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/tosca/Dictionary.java [moved from src/main/java/org/onap/policy/clamp/tosca/Dictionary.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java [moved from src/main/java/org/onap/policy/clamp/tosca/DictionaryElement.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java [moved from src/main/java/org/onap/policy/clamp/tosca/DictionaryElementsRepository.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java [moved from src/main/java/org/onap/policy/clamp/tosca/DictionaryRepository.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java [moved from src/main/java/org/onap/policy/clamp/tosca/DictionaryService.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/util/PassDecoder.java [moved from src/main/java/org/onap/policy/clamp/util/PassDecoder.java with 100% similarity]
runtime/src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java [moved from src/main/java/org/onap/policy/clamp/util/SemanticVersioning.java with 100% similarity]
runtime/src/main/resources/META-INF/resources/swagger.html [moved from src/main/resources/META-INF/resources/swagger.html with 99% similarity]
runtime/src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson [moved from src/main/resources/META-INF/services/org/apache/camel/dataformat/clamp-gson with 100% similarity]
runtime/src/main/resources/application-noaaf.properties [moved from src/main/resources/application-noaaf.properties with 100% similarity]
runtime/src/main/resources/application.properties [moved from src/main/resources/application.properties with 100% similarity]
runtime/src/main/resources/asciidoc/swagger.adoc [moved from src/main/resources/asciidoc/swagger.adoc with 100% similarity]
runtime/src/main/resources/boot-message.txt [moved from src/main/resources/boot-message.txt with 100% similarity]
runtime/src/main/resources/clds-version.properties [moved from src/main/resources/clds-version.properties with 100% similarity]
runtime/src/main/resources/clds/aaf/org.onap.clamp.keyfile [moved from src/main/resources/clds/aaf/org.onap.clamp.keyfile with 100% similarity]
runtime/src/main/resources/clds/aaf/ssl/ca-certs.pem [moved from src/main/resources/clds/aaf/ssl/ca-certs.pem with 100% similarity]
runtime/src/main/resources/clds/aaf/ssl/clamp.key [moved from src/main/resources/clds/aaf/ssl/clamp.key with 100% similarity]
runtime/src/main/resources/clds/aaf/ssl/clamp.pem [moved from src/main/resources/clds/aaf/ssl/clamp.pem with 100% similarity]
runtime/src/main/resources/clds/aaf/truststoreONAPall.jks [moved from src/main/resources/clds/aaf/truststoreONAPall.jks with 100% similarity]
runtime/src/main/resources/clds/camel/rest/clamp-api-v2.xml [moved from src/main/resources/clds/camel/rest/clamp-api-v2.xml with 100% similarity]
runtime/src/main/resources/clds/camel/rest/clds-services.xml [moved from src/main/resources/clds/camel/rest/clds-services.xml with 100% similarity]
runtime/src/main/resources/clds/camel/routes/cds-flows.xml [moved from src/main/resources/clds/camel/routes/cds-flows.xml with 100% similarity]
runtime/src/main/resources/clds/camel/routes/dcae-flows.xml [moved from src/main/resources/clds/camel/routes/dcae-flows.xml with 100% similarity]
runtime/src/main/resources/clds/camel/routes/loop-flows.xml [moved from src/main/resources/clds/camel/routes/loop-flows.xml with 100% similarity]
runtime/src/main/resources/clds/camel/routes/policy-flows.xml [moved from src/main/resources/clds/camel/routes/policy-flows.xml with 100% similarity]
runtime/src/main/resources/clds/camel/routes/utils-flows.xml [moved from src/main/resources/clds/camel/routes/utils-flows.xml with 100% similarity]
runtime/src/main/resources/clds/clds-users.json [moved from src/main/resources/clds/clds-users.json with 100% similarity]
runtime/src/main/resources/clds/json-schema/operational_policies/operational_policy.json [moved from src/main/resources/clds/json-schema/operational_policies/operational_policy.json with 100% similarity]
runtime/src/main/resources/clds/sdc-controllers-config.json [moved from src/main/resources/clds/sdc-controllers-config.json with 100% similarity]
runtime/src/main/resources/clds/tosca-converter/default-tosca-types.yaml [moved from src/main/resources/clds/tosca-converter/default-tosca-types.yaml with 100% similarity]
runtime/src/main/resources/clds/tosca-converter/templates.json [moved from src/main/resources/clds/tosca-converter/templates.json with 100% similarity]
runtime/src/main/resources/logback-default.xml [moved from src/main/resources/logback-default.xml with 100% similarity]
runtime/src/main/resources/logback-spring.xml [moved from src/main/resources/logback-spring.xml with 100% similarity]
runtime/src/main/resources/logmessages.properties [moved from src/main/resources/logmessages.properties with 100% similarity]
runtime/src/main/resources/system.properties [moved from src/main/resources/system.properties with 100% similarity]
runtime/src/main/script/SelectNpmRepo.groovy [moved from src/main/script/SelectNpmRepo.groovy with 100% similarity]
runtime/src/main/script/TagVersion.groovy [moved from src/main/script/TagVersion.groovy with 100% similarity]
runtime/src/main/script/checkLibIndex.sh [moved from src/main/script/checkLibIndex.sh with 95% similarity, mode: 0644]
runtime/src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java [moved from src/test/java/org/onap/policy/clamp/clds/client/CdsServicesTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java [moved from src/test/java/org/onap/policy/clamp/clds/config/CldsUserJsonDecoderTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java [moved from src/test/java/org/onap/policy/clamp/clds/config/sdc/SdcSingleControllerConfigurationTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java [moved from src/test/java/org/onap/policy/clamp/clds/it/AuthorizationControllerItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java [moved from src/test/java/org/onap/policy/clamp/clds/it/CldsHealthcheckServiceItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java [moved from src/test/java/org/onap/policy/clamp/clds/it/HttpsItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java [moved from src/test/java/org/onap/policy/clamp/clds/it/RobotItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java [moved from src/test/java/org/onap/policy/clamp/clds/it/config/CldsReferencePropertiesItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java [moved from src/test/java/org/onap/policy/clamp/clds/it/config/SdcControllersConfigurationItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java [moved from src/test/java/org/onap/policy/clamp/clds/it/sdc/controller/SdcSingleControllerItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java [moved from src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java [moved from src/test/java/org/onap/policy/clamp/clds/model/dcae/DcaeInventoryResponseTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java [moved from src/test/java/org/onap/policy/clamp/clds/model/jsontype/JsonTypeDescriptorTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java [moved from src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/BlueprintParserTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java [moved from src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/ChainGeneratorTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java [moved from src/test/java/org/onap/policy/clamp/clds/sdc/controller/installer/CsarHandlerTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java [moved from src/test/java/org/onap/policy/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java [moved from src/test/java/org/onap/policy/clamp/clds/tosca/update/ArrayFieldTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java [moved from src/test/java/org/onap/policy/clamp/clds/tosca/update/ConstraintTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java [moved from src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateFieldTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java [moved from src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateManagerTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java [moved from src/test/java/org/onap/policy/clamp/clds/tosca/update/JsonTemplateTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java [moved from src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java [moved from src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementPropertyTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java [moved from src/test/java/org/onap/policy/clamp/clds/tosca/update/ToscaElementTest.java with 97% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java [moved from src/test/java/org/onap/policy/clamp/clds/util/JsonUtilsTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java [moved from src/test/java/org/onap/policy/clamp/clds/util/LoggingUtilsTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/util/TestObject.java [moved from src/test/java/org/onap/policy/clamp/clds/util/TestObject.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java [moved from src/test/java/org/onap/policy/clamp/clds/util/TestObject2.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java [moved from src/test/java/org/onap/policy/clamp/flow/FlowLogOperationTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java [moved from src/test/java/org/onap/policy/clamp/loop/CsarInstallerItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java [moved from src/test/java/org/onap/policy/clamp/loop/DcaeComponentTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java [moved from src/test/java/org/onap/policy/clamp/loop/DeployFlowTestItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java [moved from src/test/java/org/onap/policy/clamp/loop/ExternalComponentStateTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java [moved from src/test/java/org/onap/policy/clamp/loop/LoopControllerTestItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java [moved from src/test/java/org/onap/policy/clamp/loop/LoopLogServiceTestItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java [moved from src/test/java/org/onap/policy/clamp/loop/LoopRepositoriesItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java [moved from src/test/java/org/onap/policy/clamp/loop/LoopServiceTestItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java [moved from src/test/java/org/onap/policy/clamp/loop/LoopTemplateLoopElementModelTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java [moved from src/test/java/org/onap/policy/clamp/loop/LoopTemplatesServiceItCase.java with 97% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java [moved from src/test/java/org/onap/policy/clamp/loop/LoopToJsonTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java [moved from src/test/java/org/onap/policy/clamp/loop/PolicyComponentTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java [moved from src/test/java/org/onap/policy/clamp/loop/PolicyModelServiceItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/ServiceTest.java [moved from src/test/java/org/onap/policy/clamp/loop/ServiceTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java [moved from src/test/java/org/onap/policy/clamp/loop/deploy/BlueprintInputParametersTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java [moved from src/test/java/org/onap/policy/clamp/policy/downloader/PolicyEngineControllerTestItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java [moved from src/test/java/org/onap/policy/clamp/policy/microservice/MicroServicePayloadTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java [moved from src/test/java/org/onap/policy/clamp/policy/operational/OperationalPolicyRepresentationBuilderTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java [moved from src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupAnalyzerTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java [moved from src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadExceptionTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java [moved from src/test/java/org/onap/policy/clamp/policy/pdpgroup/PdpGroupPayloadTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java [moved from src/test/java/org/onap/policy/clamp/policy/pdpgroup/PoliciesPdpMergerTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java [moved from src/test/java/org/onap/policy/clamp/tosca/DictionaryServiceItCase.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java [moved from src/test/java/org/onap/policy/clamp/util/PassDecoderTest.java with 100% similarity]
runtime/src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java [moved from src/test/java/org/onap/policy/clamp/util/SemanticVersioningTest.java with 100% similarity]
runtime/src/test/resources/application.properties [moved from src/test/resources/application.properties with 100% similarity]
runtime/src/test/resources/clds/blueprint-with-microservice-chain.yaml [moved from src/test/resources/clds/blueprint-with-microservice-chain.yaml with 100% similarity]
runtime/src/test/resources/clds/clds-parse-exception.json [moved from src/test/resources/clds/clds-parse-exception.json with 100% similarity]
runtime/src/test/resources/clds/clds-users-incomplete-permissions.json [moved from src/test/resources/clds/clds-users-incomplete-permissions.json with 100% similarity]
runtime/src/test/resources/clds/clds-users-no-permission.json [moved from src/test/resources/clds/clds-users-no-permission.json with 100% similarity]
runtime/src/test/resources/clds/clds-users-two-users.json [moved from src/test/resources/clds/clds-users-two-users.json with 100% similarity]
runtime/src/test/resources/clds/new-microservice.yaml [moved from src/test/resources/clds/new-microservice.yaml with 100% similarity]
runtime/src/test/resources/clds/policy-merger.json [moved from src/test/resources/clds/policy-merger.json with 100% similarity]
runtime/src/test/resources/clds/sdc-controller-config-NULL.json [moved from src/test/resources/clds/sdc-controller-config-NULL.json with 100% similarity]
runtime/src/test/resources/clds/sdc-controller-config-TLS.json [moved from src/test/resources/clds/sdc-controller-config-TLS.json with 100% similarity]
runtime/src/test/resources/clds/sdc-controller-config-bad.json [moved from src/test/resources/clds/sdc-controller-config-bad.json with 100% similarity]
runtime/src/test/resources/clds/sdc-controller-config-empty-encrypted.json [moved from src/test/resources/clds/sdc-controller-config-empty-encrypted.json with 100% similarity]
runtime/src/test/resources/clds/sdc-controllers-config-bad.json [moved from src/test/resources/clds/sdc-controllers-config-bad.json with 100% similarity]
runtime/src/test/resources/clds/sdc-controllers-config-missing-param.json [moved from src/test/resources/clds/sdc-controllers-config-missing-param.json with 100% similarity]
runtime/src/test/resources/clds/sdc-controllers-config.json [moved from src/test/resources/clds/sdc-controllers-config.json with 100% similarity]
runtime/src/test/resources/clds/single-microservice-fragment-invalid.yaml [moved from src/test/resources/clds/single-microservice-fragment-invalid.yaml with 100% similarity]
runtime/src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml [moved from src/test/resources/clds/single-microservice-fragment-valid-with-version.yaml with 100% similarity]
runtime/src/test/resources/clds/single-microservice-fragment-without-name.yaml [moved from src/test/resources/clds/single-microservice-fragment-without-name.yaml with 100% similarity]
runtime/src/test/resources/clds/single-microservice-fragment-without-properties.yaml [moved from src/test/resources/clds/single-microservice-fragment-without-properties.yaml with 100% similarity]
runtime/src/test/resources/clds/single-microservice-fragment-without-relationships.yaml [moved from src/test/resources/clds/single-microservice-fragment-without-relationships.yaml with 100% similarity]
runtime/src/test/resources/clds/templates/dcae-deployment-template.json [moved from src/test/resources/clds/templates/dcae-deployment-template.json with 100% similarity]
runtime/src/test/resources/clds/templates/dcae-template.json [moved from src/test/resources/clds/templates/dcae-template.json with 100% similarity]
runtime/src/test/resources/clds/templates/globalProperties.json [moved from src/test/resources/clds/templates/globalProperties.json with 100% similarity]
runtime/src/test/resources/clds/templates/sdc-decode-service_ids.json [moved from src/test/resources/clds/templates/sdc-decode-service_ids.json with 100% similarity]
runtime/src/test/resources/clds/templates/sdc-template.json [moved from src/test/resources/clds/templates/sdc-template.json with 100% similarity]
runtime/src/test/resources/clds/templates/tca-policy-template.json [moved from src/test/resources/clds/templates/tca-policy-template.json with 100% similarity]
runtime/src/test/resources/clds/templates/tca-template.json [moved from src/test/resources/clds/templates/tca-template.json with 100% similarity]
runtime/src/test/resources/clds/templates/tca-thresholds-template.json [moved from src/test/resources/clds/templates/tca-thresholds-template.json with 100% similarity]
runtime/src/test/resources/clds/templates/ui-location-default.json [moved from src/test/resources/clds/templates/ui-location-default.json with 100% similarity]
runtime/src/test/resources/clds/util/file.xml [moved from src/test/resources/clds/util/file.xml with 100% similarity]
runtime/src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json [moved from src/test/resources/example/cds-response/vFW-CDS-modify-config-wf-expected-result.json with 100% similarity]
runtime/src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json [moved from src/test/resources/example/cds-response/vFW-CDS-modify-config-workflow.json with 100% similarity]
runtime/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json [moved from src/test/resources/example/cds-response/vFW-CDS-resource-assignment-wf-expected-result.json with 100% similarity]
runtime/src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json [moved from src/test/resources/example/cds-response/vFW-CDS-resource-assignment-workflow.json with 100% similarity]
runtime/src/test/resources/example/dcae/inventory-response.json [moved from src/test/resources/example/dcae/inventory-response.json with 100% similarity]
runtime/src/test/resources/example/policy/pdp-deployment-testos-1_0_0.json [moved from src/test/resources/example/policy/pdp-deployment-testos-1_0_0.json with 100% similarity]
runtime/src/test/resources/example/policy/pdp-deployment-testos-2_0_0.json [moved from src/test/resources/example/policy/pdp-deployment-testos-2_0_0.json with 100% similarity]
runtime/src/test/resources/example/policy/pdp-group-multi-policies-payload.json [moved from src/test/resources/example/policy/pdp-group-multi-policies-payload.json with 100% similarity]
runtime/src/test/resources/example/policy/pdp-group-policy-payload.json [moved from src/test/resources/example/policy/pdp-group-policy-payload.json with 100% similarity]
runtime/src/test/resources/example/policy/policy-merger.json [moved from src/test/resources/example/policy/policy-merger.json with 100% similarity]
runtime/src/test/resources/example/policy/single-policy-enriched.json [moved from src/test/resources/example/policy/single-policy-enriched.json with 100% similarity]
runtime/src/test/resources/example/sdc/blueprint-dcae/tca-bad-policy.yaml [moved from src/test/resources/example/sdc/blueprint-dcae/tca-bad-policy.yaml with 100% similarity]
runtime/src/test/resources/example/sdc/blueprint-dcae/tca-guilin.yaml [moved from src/test/resources/example/sdc/blueprint-dcae/tca-guilin.yaml with 100% similarity]
runtime/src/test/resources/example/sdc/blueprint-dcae/tca.yaml [moved from src/test/resources/example/sdc/blueprint-dcae/tca.yaml with 100% similarity]
runtime/src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml [moved from src/test/resources/example/sdc/blueprint-dcae/tca_2.yaml with 100% similarity]
runtime/src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml [moved from src/test/resources/example/sdc/blueprint-dcae/tca_3.yaml with 100% similarity]
runtime/src/test/resources/example/sdc/expected-result/deployment-parameters-multi-blueprints.json [moved from src/test/resources/example/sdc/expected-result/deployment-parameters-multi-blueprints.json with 100% similarity]
runtime/src/test/resources/example/sdc/expected-result/deployment-parameters-single-blueprint.json [moved from src/test/resources/example/sdc/expected-result/deployment-parameters-single-blueprint.json with 100% similarity]
runtime/src/test/resources/example/sdc/expected-result/policy-data.yaml [moved from src/test/resources/example/sdc/expected-result/policy-data.yaml with 100% similarity]
runtime/src/test/resources/example/sdc/service-Simsfoimap0112.csar [moved from src/test/resources/example/sdc/service-Simsfoimap0112.csar with 100% similarity]
runtime/src/test/resources/example/sdc/service-without-policy.csar [moved from src/test/resources/example/sdc/service-without-policy.csar with 100% similarity]
runtime/src/test/resources/example/sdc/service_Vloadbalancerms_cds.csar [moved from src/test/resources/example/sdc/service_Vloadbalancerms_cds.csar with 100% similarity]
runtime/src/test/resources/example/sdc/service_Vloadbalancerms_no_cds.csar [moved from src/test/resources/example/sdc/service_Vloadbalancerms_no_cds.csar with 100% similarity]
runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.file [moved from src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.header [moved from src/test/resources/http-cache/example/api/v1/blueprint-model/workflow-spec/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.file [moved from src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.header [moved from src/test/resources/http-cache/example/api/v1/blueprint-model/workflows/blueprint-name/baseconfiguration/version/1.0.0/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policies/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policies/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policies/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policies/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.Naming/versions/1.0.0/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.Blacklist/versions/1.0.0/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/1.0.0/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.guard.common.MinMax/versions/2.0.0/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.file [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.header [moved from src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/.header with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/pap/v1/pdps/.file [moved from src/test/resources/http-cache/example/policy/pap/v1/pdps/.file with 100% similarity]
runtime/src/test/resources/http-cache/example/policy/pap/v1/pdps/.header [moved from src/test/resources/http-cache/example/policy/pap/v1/pdps/.header with 100% similarity]
runtime/src/test/resources/http-cache/start_http_cache.sh [moved from src/test/resources/http-cache/start_http_cache.sh with 100% similarity]
runtime/src/test/resources/http-cache/third_party_proxy.py [moved from src/test/resources/http-cache/third_party_proxy.py with 100% similarity, mode: 0644]
runtime/src/test/resources/https/https-test.properties [moved from src/test/resources/https/https-test.properties with 100% similarity]
runtime/src/test/resources/https/keystore-test.jks [moved from src/test/resources/https/keystore-test.jks with 100% similarity]
runtime/src/test/resources/logback.xml [moved from src/test/resources/logback.xml with 100% similarity]
runtime/src/test/resources/robotframework/Dockerfile [moved from src/test/resources/robotframework/Dockerfile with 58% similarity]
runtime/src/test/resources/robotframework/requirements.txt [moved from src/test/resources/robotframework/requirements.txt with 100% similarity]
runtime/src/test/resources/robotframework/robotframework-test.properties [moved from src/test/resources/robotframework/robotframework-test.properties with 100% similarity]
runtime/src/test/resources/robotframework/tests/01_healthcheck.robot [moved from src/test/resources/robotframework/tests/01_healthcheck.robot with 100% similarity]
runtime/src/test/resources/robotframework/tests/02_policy_queries.robot [moved from src/test/resources/robotframework/tests/02_policy_queries.robot with 100% similarity]
runtime/src/test/resources/tosca/micro-service-policy-payload.json [moved from src/test/resources/tosca/micro-service-policy-payload.json with 100% similarity]
runtime/src/test/resources/tosca/micro-service-policy-properties.json [moved from src/test/resources/tosca/micro-service-policy-properties.json with 100% similarity]
runtime/src/test/resources/tosca/model-properties-cds.json [moved from src/test/resources/tosca/model-properties-cds.json with 100% similarity]
runtime/src/test/resources/tosca/model-properties-operational-policy.json [moved from src/test/resources/tosca/model-properties-operational-policy.json with 100% similarity]
runtime/src/test/resources/tosca/model-properties.json [moved from src/test/resources/tosca/model-properties.json with 100% similarity]
runtime/src/test/resources/tosca/new-converter/constraints.yaml [moved from src/test/resources/tosca/new-converter/constraints.yaml with 97% similarity]
runtime/src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml [moved from src/test/resources/tosca/new-converter/sampleOperationalPolicies.yaml with 97% similarity]
runtime/src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml [moved from src/test/resources/tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml with 100% similarity]
runtime/src/test/resources/tosca/new-converter/tca-with-metadata.json [moved from src/test/resources/tosca/new-converter/tca-with-metadata.json with 100% similarity]
runtime/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json [moved from src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json with 100% similarity]
runtime/src/test/resources/tosca/new-converter/tosca_metadata_clamp_possible_values.yaml [moved from src/test/resources/tosca/new-converter/tosca_metadata_clamp_possible_values.yaml with 100% similarity]
runtime/src/test/resources/tosca/operational-policy-cds-payload-with-list.json [moved from src/test/resources/tosca/operational-policy-cds-payload-with-list.json with 100% similarity]
runtime/src/test/resources/tosca/operational-policy-json-schema.json [moved from src/test/resources/tosca/operational-policy-json-schema.json with 100% similarity]
runtime/src/test/resources/tosca/operational-policy-no-guard-properties.json [moved from src/test/resources/tosca/operational-policy-no-guard-properties.json with 100% similarity]
runtime/src/test/resources/tosca/operational-policy-properties.json [moved from src/test/resources/tosca/operational-policy-properties.json with 100% similarity]
runtime/src/test/resources/tosca/resource-details-cds.json [moved from src/test/resources/tosca/resource-details-cds.json with 100% similarity]
runtime/src/test/resources/tosca/resource-details.json [moved from src/test/resources/tosca/resource-details.json with 100% similarity]
runtime/src/test/resources/tosca/service-details.json [moved from src/test/resources/tosca/service-details.json with 100% similarity]
runtime/src/test/resources/tosca/tca_hi_lo.json [moved from src/test/resources/tosca/tca_hi_lo.json with 100% similarity]
runtime/src/test/resources/tosca/tosca_example.yaml [moved from src/test/resources/tosca/tosca_example.yaml with 100% similarity]
runtime/src/test/resources/tosca/tosca_with_date_time_json_schema.json [moved from src/test/resources/tosca/tosca_with_date_time_json_schema.json with 100% similarity]
runtime/src/test/resources/tosca/tosca_with_metadata.yaml [moved from src/test/resources/tosca/tosca_with_metadata.yaml with 100% similarity]
runtime/ui-react-lib/libExportExclusions.dat [moved from ui-react-lib/libExportExclusions.dat with 100% similarity]
runtime/ui-react-lib/libIndex.js [moved from ui-react-lib/libIndex.js with 100% similarity]
runtime/ui-react-lib/package.json [moved from ui-react-lib/package.json with 100% similarity]
runtime/ui-react-lib/rollup.config.js [moved from ui-react-lib/rollup.config.js with 100% similarity]
runtime/ui-react/package.json [moved from ui-react/package.json with 100% similarity]
runtime/ui-react/public/index.html [moved from ui-react/public/index.html with 100% similarity]
runtime/ui-react/public/manifest.json [moved from ui-react/public/manifest.json with 100% similarity]
runtime/ui-react/public/onap.ico [moved from ui-react/public/onap.ico with 100% similarity]
runtime/ui-react/src/LoopUI.js [moved from ui-react/src/LoopUI.js with 100% similarity]
runtime/ui-react/src/LoopUI.test.js [moved from ui-react/src/LoopUI.test.js with 100% similarity]
runtime/ui-react/src/NotFound.js [moved from ui-react/src/NotFound.js with 100% similarity]
runtime/ui-react/src/NotFound.test.js [moved from ui-react/src/NotFound.test.js with 100% similarity]
runtime/ui-react/src/OnapClamp.js [moved from ui-react/src/OnapClamp.js with 100% similarity]
runtime/ui-react/src/OnapClamp.test.js [moved from ui-react/src/OnapClamp.test.js with 100% similarity]
runtime/ui-react/src/__snapshots__/LoopUI.test.js.snap [moved from ui-react/src/__snapshots__/LoopUI.test.js.snap with 100% similarity]
runtime/ui-react/src/__snapshots__/NotFound.test.js.snap [moved from ui-react/src/__snapshots__/NotFound.test.js.snap with 100% similarity]
runtime/ui-react/src/__snapshots__/OnapClamp.test.js.snap [moved from ui-react/src/__snapshots__/OnapClamp.test.js.snap with 100% similarity]
runtime/ui-react/src/api/LoopActionService.js [moved from ui-react/src/api/LoopActionService.js with 100% similarity]
runtime/ui-react/src/api/LoopCache.js [moved from ui-react/src/api/LoopCache.js with 100% similarity]
runtime/ui-react/src/api/LoopCache.test.js [moved from ui-react/src/api/LoopCache.test.js with 100% similarity]
runtime/ui-react/src/api/LoopCacheMockFile.json [moved from ui-react/src/api/LoopCacheMockFile.json with 100% similarity]
runtime/ui-react/src/api/LoopService.js [moved from ui-react/src/api/LoopService.js with 100% similarity]
runtime/ui-react/src/api/PoliciesListCacheMockFile.json [moved from ui-react/src/api/PoliciesListCacheMockFile.json with 100% similarity]
runtime/ui-react/src/api/PolicyService.js [moved from ui-react/src/api/PolicyService.js with 100% similarity]
runtime/ui-react/src/api/PolicyToscaService.js [moved from ui-react/src/api/PolicyToscaService.js with 100% similarity]
runtime/ui-react/src/api/TemplateService.js [moved from ui-react/src/api/TemplateService.js with 100% similarity]
runtime/ui-react/src/api/UserService.js [moved from ui-react/src/api/UserService.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/CreateLoopModal.js [moved from ui-react/src/components/dialogs/Loop/CreateLoopModal.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js [moved from ui-react/src/components/dialogs/Loop/CreateLoopModal.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/DeployLoopModal.js [moved from ui-react/src/components/dialogs/Loop/DeployLoopModal.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js [moved from ui-react/src/components/dialogs/Loop/DeployLoopModal.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.js [moved from ui-react/src/components/dialogs/Loop/LoopPropertiesModal.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/LoopPropertiesModal.test.js [moved from ui-react/src/components/dialogs/Loop/LoopPropertiesModal.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/ModifyLoopModal.js [moved from ui-react/src/components/dialogs/Loop/ModifyLoopModal.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/ModifyLoopModal.test.js [moved from ui-react/src/components/dialogs/Loop/ModifyLoopModal.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/OpenLoopModal.js [moved from ui-react/src/components/dialogs/Loop/OpenLoopModal.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js [moved from ui-react/src/components/dialogs/Loop/OpenLoopModal.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap [moved from ui-react/src/components/dialogs/Loop/__snapshots__/CreateLoopModal.test.js.snap with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap [moved from ui-react/src/components/dialogs/Loop/__snapshots__/DeployLoopModal.test.js.snap with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/__snapshots__/LoopPropertiesModal.test.js.snap [moved from ui-react/src/components/dialogs/Loop/__snapshots__/LoopPropertiesModal.test.js.snap with 100% similarity]
runtime/ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap [moved from ui-react/src/components/dialogs/Loop/__snapshots__/OpenLoopModal.test.js.snap with 100% similarity]
runtime/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.js [moved from ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.js with 100% similarity]
runtime/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js [moved from ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/ManageDictionaries/__snapshots__/ManageDictionaries.test.js.snap [moved from ui-react/src/components/dialogs/ManageDictionaries/__snapshots__/ManageDictionaries.test.js.snap with 100% similarity]
runtime/ui-react/src/components/dialogs/PerformActions.js [moved from ui-react/src/components/dialogs/PerformActions.js with 100% similarity]
runtime/ui-react/src/components/dialogs/PerformActions.test.js [moved from ui-react/src/components/dialogs/PerformActions.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/PoliciesTreeViewer.js [moved from ui-react/src/components/dialogs/Policy/PoliciesTreeViewer.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/PolicyDeploymentEditor.js [moved from ui-react/src/components/dialogs/Policy/PolicyDeploymentEditor.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/PolicyEditor.js [moved from ui-react/src/components/dialogs/Policy/PolicyEditor.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/PolicyEditor.test.js [moved from ui-react/src/components/dialogs/Policy/PolicyEditor.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/PolicyModal.js [moved from ui-react/src/components/dialogs/Policy/PolicyModal.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/PolicyModal.test.js [moved from ui-react/src/components/dialogs/Policy/PolicyModal.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/PolicyToscaFileSelector.js [moved from ui-react/src/components/dialogs/Policy/PolicyToscaFileSelector.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/ToscaViewer.js [moved from ui-react/src/components/dialogs/Policy/ToscaViewer.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/ToscaViewer.test.js [moved from ui-react/src/components/dialogs/Policy/ToscaViewer.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/ViewAllPolicies.js [moved from ui-react/src/components/dialogs/Policy/ViewAllPolicies.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/__snapshots__/PolicyEditor.test.js.snap [moved from ui-react/src/components/dialogs/Policy/__snapshots__/PolicyEditor.test.js.snap with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/__snapshots__/PolicyModal.test.js.snap [moved from ui-react/src/components/dialogs/Policy/__snapshots__/PolicyModal.test.js.snap with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/__snapshots__/ToscaViewer.test.js.snap [moved from ui-react/src/components/dialogs/Policy/__snapshots__/ToscaViewer.test.js.snap with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/toscaData.test.json [moved from ui-react/src/components/dialogs/Policy/toscaData.test.json with 100% similarity]
runtime/ui-react/src/components/dialogs/Policy/toscaData.test.yaml [moved from ui-react/src/components/dialogs/Policy/toscaData.test.yaml with 100% similarity]
runtime/ui-react/src/components/dialogs/RefreshStatus.js [moved from ui-react/src/components/dialogs/RefreshStatus.js with 100% similarity]
runtime/ui-react/src/components/dialogs/RefreshStatus.test.js [moved from ui-react/src/components/dialogs/RefreshStatus.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js [moved from ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js [moved from ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap [moved from ui-react/src/components/dialogs/Tosca/__snapshots__/ViewLoopTemplatesModal.test.js.snap with 100% similarity]
runtime/ui-react/src/components/dialogs/UserInfoModal.js [moved from ui-react/src/components/dialogs/UserInfoModal.js with 100% similarity]
runtime/ui-react/src/components/dialogs/UserInfoModal.test.js [moved from ui-react/src/components/dialogs/UserInfoModal.test.js with 100% similarity]
runtime/ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap [moved from ui-react/src/components/dialogs/__snapshots__/UserInfoModal.test.js.snap with 100% similarity]
runtime/ui-react/src/components/loop_viewer/logs/LoopLogs.js [moved from ui-react/src/components/loop_viewer/logs/LoopLogs.js with 100% similarity]
runtime/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js [moved from ui-react/src/components/loop_viewer/logs/LoopLogs.test.js with 100% similarity]
runtime/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap [moved from ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap with 100% similarity]
runtime/ui-react/src/components/loop_viewer/status/LoopStatus.js [moved from ui-react/src/components/loop_viewer/status/LoopStatus.js with 100% similarity]
runtime/ui-react/src/components/loop_viewer/status/LoopStatus.test.js [moved from ui-react/src/components/loop_viewer/status/LoopStatus.test.js with 100% similarity]
runtime/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap [moved from ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap with 100% similarity]
runtime/ui-react/src/components/loop_viewer/svg/SvgGenerator.js [moved from ui-react/src/components/loop_viewer/svg/SvgGenerator.js with 100% similarity]
runtime/ui-react/src/components/menu/MenuBar.js [moved from ui-react/src/components/menu/MenuBar.js with 100% similarity]
runtime/ui-react/src/components/menu/MenuBar.test.js [moved from ui-react/src/components/menu/MenuBar.test.js with 100% similarity]
runtime/ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap [moved from ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap with 100% similarity]
runtime/ui-react/src/index.js [moved from ui-react/src/index.js with 100% similarity]
runtime/ui-react/src/logo.png [moved from ui-react/src/logo.png with 100% similarity]
runtime/ui-react/src/setupTests.js [moved from ui-react/src/setupTests.js with 100% similarity]
runtime/ui-react/src/theme/globalStyle.js [moved from ui-react/src/theme/globalStyle.js with 100% similarity]
runtime/ui-react/src/utils/CsvToJson.js [moved from ui-react/src/utils/CsvToJson.js with 100% similarity]
runtime/ui-react/src/utils/CsvToJson.test.js [moved from ui-react/src/utils/CsvToJson.test.js with 100% similarity]
runtime/ui-react/src/utils/OnapConstants.js [moved from ui-react/src/utils/OnapConstants.js with 100% similarity]
runtime/ui-react/src/utils/OnapUtils.js [moved from ui-react/src/utils/OnapUtils.js with 100% similarity]
version.properties

diff --git a/common/pom.xml b/common/pom.xml
new file mode 100644 (file)
index 0000000..d962fc7
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 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=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp</groupId>
+        <artifactId>policy-clamp</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>policy-clamp-common</artifactId>
+    <name>${project.artifactId}</name>
+    <description>Common utilities and code for the TOSCA Control Loop system</description>
+</project>
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index 5a958e2..75c6295 100644 (file)
@@ -1,7 +1,7 @@
 {
   "swagger" : "2.0",
   "info" : {
-    "version" : "6.1.1-SNAPSHOT",
+    "version" : "6.1.2-SNAPSHOT",
     "title" : "Clamp Rest API"
   },
   "host" : "localhost:37747",
       }
     }
   }
-}
\ No newline at end of file
+}
index 99dca18..9d51932 100644 (file)
@@ -4,8 +4,8 @@
 << /Title (Clamp Rest API)
 /Creator (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0)
 /Producer (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0)
-/CreationDate (D:20210426134156+02'00')
-/ModDate (D:20210426134156+02'00')
+/CreationDate (D:20210510121240+01'00')
+/ModDate (D:20210510121240+01'00')
 >>
 endobj
 2 0 obj
diff --git a/models/pom.xml b/models/pom.xml
new file mode 100644 (file)
index 0000000..380ae0c
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 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=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp</groupId>
+        <artifactId>policy-clamp</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>policy-clamp-models</artifactId>
+    <name>${project.artifactId}</name>
+</project>
diff --git a/participant/participant-impl/participant-impl-cds/pom.xml b/participant/participant-impl/participant-impl-cds/pom.xml
new file mode 100644 (file)
index 0000000..ccdd8be
--- /dev/null
@@ -0,0 +1,34 @@
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 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=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp.participant</groupId>
+        <artifactId>policy-clamp-participant-impl</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>policy-clamp-participant-impl-cds</artifactId>
+    <name>${project.artifactId}</name>
+    <description>CDS participant, that allows CDS to partake in control loops</description>
+</project>
diff --git a/participant/participant-impl/participant-impl-dcae/pom.xml b/participant/participant-impl/participant-impl-dcae/pom.xml
new file mode 100644 (file)
index 0000000..6186ced
--- /dev/null
@@ -0,0 +1,34 @@
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 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=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp.participant</groupId>
+        <artifactId>policy-clamp-participant-impl</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>policy-clamp-participant-impl-dcae</artifactId>
+    <name>${project.artifactId}</name>
+    <description>DCAE participant, that allows DCAE to partake in control loops</description>
+</project>
diff --git a/participant/participant-impl/participant-impl-kubernetes/pom.xml b/participant/participant-impl/participant-impl-kubernetes/pom.xml
new file mode 100644 (file)
index 0000000..a85c5fd
--- /dev/null
@@ -0,0 +1,34 @@
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 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=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp.participant</groupId>
+        <artifactId>policy-clamp-participant-impl</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>policy-clamp-participant-impl-kubernetes</artifactId>
+    <name>${project.artifactId}</name>
+    <description>Kubernetes participant, that allows microservices running in Kubernetes to partake in control loops</description>
+</project>
diff --git a/participant/participant-impl/participant-impl-policy/pom.xml b/participant/participant-impl/participant-impl-policy/pom.xml
new file mode 100644 (file)
index 0000000..a5a7562
--- /dev/null
@@ -0,0 +1,34 @@
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 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=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp.participant</groupId>
+        <artifactId>policy-clamp-participant-impl</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>policy-clamp-participant-impl-policy</artifactId>
+    <name>${project.artifactId}</name>
+    <description>Policy participant, that allows Policy to partake in control loops</description>
+</project>
diff --git a/participant/participant-impl/participant-impl-simulator/pom.xml b/participant/participant-impl/participant-impl-simulator/pom.xml
new file mode 100644 (file)
index 0000000..d54a23e
--- /dev/null
@@ -0,0 +1,34 @@
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 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=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp.participant</groupId>
+        <artifactId>policy-clamp-participant-impl</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>policy-clamp-participant-impl-simulator</artifactId>
+    <name>${project.artifactId}</name>
+    <description>Participant simulator, used to test control loops</description>
+</project>
diff --git a/participant/participant-impl/pom.xml b/participant/participant-impl/pom.xml
new file mode 100644 (file)
index 0000000..6c67bfa
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 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=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp.participant</groupId>
+        <artifactId>policy-clamp-participant</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>policy-clamp-participant-impl</artifactId>
+    <name>${project.artifactId}</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>participant-impl-simulator</module>
+        <module>participant-impl-dcae</module>
+        <module>participant-impl-policy</module>
+        <module>participant-impl-cds</module>
+        <module>participant-impl-kubernetes</module>
+    </modules>
+</project>
diff --git a/participant/participant-intermediary/pom.xml b/participant/participant-intermediary/pom.xml
new file mode 100644 (file)
index 0000000..df354d4
--- /dev/null
@@ -0,0 +1,37 @@
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 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=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp.participant</groupId>
+        <artifactId>policy-clamp-participant</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.onap.policy.clamp.participant</groupId>
+    <artifactId>policy-clamp-participant-intermediary</artifactId>
+    <name>${project.artifactId}</name>
+    <description>Common intermediary library for managing DMaaP participant messaging and holding participant and control
+     loop state</description>
+
+</project>
diff --git a/participant/pom.xml b/participant/pom.xml
new file mode 100644 (file)
index 0000000..c18ee14
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 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=========================================================
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp</groupId>
+        <artifactId>policy-clamp</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.onap.policy.clamp.participant</groupId>
+    <artifactId>policy-clamp-participant</artifactId>
+    <name>${project.artifactId}</name>
+    <description>participants that communicate with the runtime server to handle control loops</description>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>participant-intermediary</module>
+        <module>participant-impl</module>
+    </modules>
+</project>
diff --git a/pom.xml b/pom.xml
index dccefca..6f86ff5 100644 (file)
--- a/pom.xml
+++ b/pom.xml
-<?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  ONAP POLICY-CLAMP
-  ================================================================================
-  Copyright (C) 2017-2021 AT&T Intellectual Property. All rights
-                              reserved.
+  Copyright (C) 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
+       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.
-  ============LICENSE_END============================================
-  ===================================================================
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.onap.policy</groupId>
-    <artifactId>clamp</artifactId>
-    <version>6.1.1-SNAPSHOT</version>
-    <name>policy-clamp</name>
+  ============LICENSE_END=========================================================
+  -->
 
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.onap.policy.parent</groupId>
         <artifactId>integration</artifactId>
-        <version>3.3.0</version>
-        <relativePath/>
+        <version>3.4.0-SNAPSHOT</version>
     </parent>
 
-    <description>
-        This is the MAVEN project that builds everything for ONAP POLICY-CLAMP.
-        Docker engine is normally requires to perfom all possible tasks (including integration tests)
-
-        It can build:
-        - The ONAP POLICY-CLAMP JAR that contains CLAMP back-end code.
-        - The DOCKER images for:
-        * POLICY-CLAMP backend (Java Spring)
-        * POLICY-CLAMP frontend (Javascript React)
-
-        It can test:
-        - The POLICY-CLAMP backend, JAVA unit testing
-        - The POLICY-CLAMP backend, JAVA integration tests (with Spring + docker mariadb database + docker policy/dcae
-        emulator written in python)
-        - The POLICY-CLAMP frontend, Javascript tests (NodeJS(NPM) + JEST and Enzyme for React)
-
-        The test coverage for dev's can be found after a "clean install" build in:
-        - Clamp backend: target/jacoco-dev.exec (unit tests + integration tests merged)
-        or separately target/coverage-reports/jacoco.exec and target/coverage-reports/jacoco-it.exec
-        - Clamp frontend: target/ui-react/coverage
-
-        Useful mvn commands:
-        - mvn clean install: Build Clamp backend JAR + unit tests + integration tests + NPM tests (+coverage for all)
-        - mvn clean install -DskipITs=true: Build Clamp backend JAR + unit tests + NPM tests (+coverage for all), it
-        does not require a DOCKER engine
-        - mvn clean install -DskipTests -P docker: Build Clamp backend JAR + all docker images
+    <groupId>org.onap.policy.clamp</groupId>
+    <artifactId>policy-clamp</artifactId>
+    <version>6.1.2-SNAPSHOT</version>
+    <name>${project.artifactId}</name>
 
-        To start POLICY-CLAMP (Build it before):
-        - Use docker-compose file in ./extra/docker/clamp/docker-compose.yml
-        - Use the script located in ./extra/bin/start-backend.sh + start-frontend.sh
-        - Use your IDE to use the Jar or start NVM/NPM
+    <packaging>pom</packaging>
 
+    <description>
+        This is the root Maven module for the policy-clamp project.
+
+        It contains the following modules:
+        - policy-clamp-common: Common code for all CLAMP modules
+        - policy-clamp-models: POJOs and other model code for REST and DMaaP messages and for persistence
+        - policy-clamp-runtime: The runtime server for CLAMP
+        - policy-clamp-participant: Modules for CLAMP control loop participants
+            o policy-clamp-participant-intermediary: A common JAR that handles participant state and DMaaP handling
+            o policy-clamp-participant-impl-cds: A standard participant for interworking with CDS
+            o policy-clamp-participant-impl-dcae: A standard participant for interworking with DCAE
+            o policy-clamp-participant-impl-kubernetes: A standard participant for Kubernetes microservices
+            o policy-clamp-participant-impl-policy: A standard participant for handling polcies for Policy Framework
+            o policy-clamp-participant-impl-simulator: A participant simulator for integration testing
     </description>
 
     <properties>
-        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
-        <clamp.project.version>${project.version}</clamp.project.version>
-        <clamp.build.timestamp>${maven.build.timestamp}</clamp.build.timestamp>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-
-        <eelf.core.version>1.0.0</eelf.core.version>
-        <camel.version>3.7.3</camel.version>
-        <springboot.version>2.4.4</springboot.version>
-
-        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
-        <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
-        <sonar.coverage.jacoco.xmlReportPaths>${project.build.directory}/jacoco-html-xml-reports/jacoco.xml
-        </sonar.coverage.jacoco.xmlReportPaths>
-        <sonar.projectVersion>${project.version}</sonar.projectVersion>
-        <sonar.log.level>DEBUG</sonar.log.level>
-        <sonar.nodejs.executable>${project.build.directory}/${ui.react.src}/node/node</sonar.nodejs.executable>
-        <sonar.verbose>true</sonar.verbose>
-        <sonar.sources>src/main,${project.build.directory}/${ui.react.src}/src</sonar.sources>
-        <sonar.exclusions>src/main/resources/**</sonar.exclusions>
-        <sonar.scm.exclusions.disabled>true</sonar.scm.exclusions.disabled>
-        <sonar.javascript.lcov.reportPaths>${project.build.directory}/${ui.react.src}/coverage/lcov.info
-        </sonar.javascript.lcov.reportPaths>
-        <sonar.coverage.exclusions>
-            src/main/resources/**,target/ui-react/src/**/*.test.js,target/ui-react/src/setupTests.js
-        </sonar.coverage.exclusions>
-        <docker.push.registry>localhost:5000</docker.push.registry>
-        <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
-        <docker.skip.build>true</docker.skip.build>
-        <docker.skip.push>true</docker.skip.push>
-        <docker.skip.tag>true</docker.skip.tag>
-        <skip.staging.artifacts>false</skip.staging.artifacts>
-        <python.http.proxy.param/>
-        <tomcat.version>9.0.45</tomcat.version>
-        <ui.react.src>ui-react</ui.react.src>
-        <ui.react.lib.src>ui-react-lib</ui.react.lib.src>
-        <npm.publish.url>https://nexus3.onap.org/repository/npm.snapshot/</npm.publish.url>
-
-        <policy.models.version>2.4.0</policy.models.version>
-        <policy.common.version>1.8.1</policy.common.version>
+        <policy.common.version>1.9.0-SNAPSHOT</policy.common.version>
+        <policy.models.version>2.5.0-SNAPSHOT</policy.models.version>
     </properties>
 
-    <profiles>
-        <!-- BEGIN: NOT USABLE profiles, those are defined when specific flags are enabled -->
-        <profile>
-            <id>without-test</id>
-            <activation>
-                <property>
-                    <name>maven.test.skip</name>
-                    <value>true</value>
-                </property>
-            </activation>
-            <properties>
-                <docker.skip.run>true</docker.skip.run>
-                <docker.skip>true</docker.skip>
-            </properties>
-        </profile>
-        <profile>
-            <id>without-IT-only</id>
-            <activation>
-                <property>
-                    <name>skipITs</name>
-                    <value>true</value>
-                </property>
-            </activation>
-            <properties>
-                <docker.skip.run>true</docker.skip.run>
-                <docker.skip>true</docker.skip>
-            </properties>
-        </profile>
-        <profile>
-            <id>without-IT-only2</id>
-            <activation>
-                <property>
-                    <name>skipTests</name>
-                    <value>true</value>
-                </property>
-            </activation>
-            <properties>
-                <docker.skip.run>true</docker.skip.run>
-                <docker.skip>true</docker.skip>
-            </properties>
-        </profile>
-        <!-- END: NOT USABLE profiles, those are defined when specific flags are enabled -->
-        <profile>
-            <id>docker</id>
-            <properties>
-                <skip.staging.artifacts>true</skip.staging.artifacts>
-                <docker.skip.build>false</docker.skip.build>
-                <docker.skip.tag>false</docker.skip.tag>
-                <docker.skip.push>false</docker.skip.push>
-                <docker.skip>false</docker.skip>
-            </properties>
-        </profile>
-    </profiles>
-
-    <distributionManagement>
-        <repository>
-            <id>ecomp-releases</id>
-            <name>ONAP Release Repository</name>
-            <url>https://nexus.onap.org/content/repositories/releases/</url>
-        </repository>
-        <snapshotRepository>
-            <id>ecomp-snapshots</id>
-            <name>ONAP Snapshot Repository</name>
-            <url>https://nexus.onap.org/content/repositories/snapshots/</url>
-        </snapshotRepository>
-        <site>
-            <id>ecomp-site</id>
-            <url>dav:https://nexus.onap.org/content/sites/site/org/onap/policy/clamp/${project.version}</url>
-        </site>
-    </distributionManagement>
-
-    <repositories>
-        <repository>
-            <id>onap-public</id>
-            <name>onap-public</name>
-            <url>https://nexus.onap.org/content/repositories/public/</url>
-            <releases>
-                <enabled>true</enabled>
-            </releases>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-        </repository>
-        <repository>
-            <id>ecomp-releases</id>
-            <name>ONAP Release Repository</name>
-            <url>https://nexus.onap.org/content/repositories/releases/</url>
-        </repository>
-        <repository>
-            <id>ecomp-staging</id>
-            <name>ONAP Staging Repository</name>
-            <url>https://nexus.onap.org/content/repositories/staging/</url>
-        </repository>
-        <repository>
-            <id>ecomp-snapshots</id>
-            <name>ONAP Snapshot Repository</name>
-            <url>https://nexus.onap.org/content/repositories/snapshots/</url>
-            <snapshots>
-                <enabled>true</enabled>
-            </snapshots>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </repository>
-        <repository>
-            <id>central</id>
-            <url>http://repo1.maven.org/maven2/</url>
-        </repository>
-    </repositories>
-    <pluginRepositories>
-        <pluginRepository>
-            <id>onap-public</id>
-            <name>onap-public</name>
-            <url>https://nexus.onap.org/content/repositories/public/</url>
-            <releases>
-                <enabled>true</enabled>
-            </releases>
-            <snapshots>
-                <enabled>false</enabled>
-            </snapshots>
-        </pluginRepository>
-        <pluginRepository>
-            <id>central</id>
-            <url>http://repo1.maven.org/maven2/</url>
-        </pluginRepository>
-    </pluginRepositories>
-
-    <dependencyManagement>
-        <dependencies>
-            <!-- Spring Boot BOM -->
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>${springboot.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <!-- Camel BOM -->
-            <dependency>
-                <groupId>org.apache.camel.springboot</groupId>
-                <artifactId>camel-spring-boot-bom</artifactId>
-                <version>${camel.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
+    <modules>
+        <module>common</module>
+        <module>models</module>
+        <module>runtime</module>
+        <module>participant</module>
+    </modules>
 
     <dependencies>
         <dependency>
-            <groupId>com.att.eelf</groupId>
-            <artifactId>eelf-core</artifactId>
-            <version>${eelf.core.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.powermock</groupId>
-                    <artifactId>powermock-module-junit4</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.powermock</groupId>
-                    <artifactId>powermock-api-mockito</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.janino</groupId>
-            <artifactId>janino</artifactId>
-            <version>3.0.8</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat.embed</groupId>
-            <artifactId>tomcat-embed-core</artifactId>
-            <version>${tomcat.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat.embed</groupId>
-            <artifactId>tomcat-embed-el</artifactId>
-            <version>${tomcat.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat.embed</groupId>
-            <artifactId>tomcat-embed-websocket</artifactId>
-            <version>${tomcat.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-annotations-api</artifactId>
-            <version>${tomcat.version}</version>
-        </dependency>
-        <!-- For CAMEL -->
-        <dependency>
-            <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-http-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-spring-boot-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-jaxb-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-servlet-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-gson-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.springboot</groupId>
-            <artifactId>camel-swagger-java-starter</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>javax.ws.rs</groupId>
-                    <artifactId>jsr311-api</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-ext</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <!-- Spring famework -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter-json</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-tomcat</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.glassfish</groupId>
-                    <artifactId>jakarta.el</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-jdbc</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-security</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-autoconfigure</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.vaadin.external.google</groupId>
-                    <artifactId>android-json</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
-        <!-- Policy dependencies mainly for the models required -->
-        <dependency>
-            <groupId>org.onap.policy.models</groupId>
-            <artifactId>policy-models-pdp</artifactId>
-            <version>${policy.models.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.eclipse.jetty</groupId>
-                    <artifactId>jetty-server</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.glassfish.jersey.containers</groupId>
-                    <artifactId>jersey-container-servlet</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.jetbrains.kotlin</groupId>
-                    <artifactId>kotlin-reflect</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.jetbrains.kotlin</groupId>
-                    <artifactId>kotlin-stdlib</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.jetbrains.kotlin</groupId>
-                    <artifactId>kotlin-stdlib-common</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <!-- Others dependencies -->
-        <!-- Jaxws is required for AAF -->
-        <dependency>
-            <groupId>javax.xml.ws</groupId>
-            <artifactId>jaxws-api</artifactId>
-            <version>2.3.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.onap.aaf.authz</groupId>
-            <artifactId>aaf-cadi-aaf</artifactId>
-            <version>2.1.15</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>javax.servlet</groupId>
-                    <artifactId>servlet-api</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>log4j</groupId>
-                    <artifactId>log4j</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-core</artifactId>
-            <version>1.2.3</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>1.2.3</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.8.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.googlecode.json-simple</groupId>
-            <artifactId>json-simple</artifactId>
-            <version>1.1.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-vfs2</artifactId>
-            <version>2.8.0</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.squareup.okhttp</groupId>
-                    <artifactId>okhttp</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.transaction</groupId>
-            <artifactId>jta</artifactId>
-            <version>1.1</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.persistence</groupId>
-            <artifactId>persistence-api</artifactId>
-            <version>1.0.2</version>
-        </dependency>
-        <!-- Other dependencies to fix nexus IQ reported vulnerabilities -->
-        <dependency>
-            <groupId>commons-codec</groupId>
-            <artifactId>commons-codec</artifactId>
-            <version>1.15</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-utils</artifactId>
-            <version>3.3.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.jboss.spec.javax.ws.rs</groupId>
-            <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
-            <version>1.0.1.Final</version>
-        </dependency>
-
-
-        <!-- Remove the MYSQL connector and replace it by Mariadb -->
-        <dependency>
-            <groupId>org.mariadb.jdbc</groupId>
-            <artifactId>mariadb-java-client</artifactId>
-            <version>2.7.2</version>
-        </dependency>
-        <!-- For SDC Controller -->
-        <dependency>
-            <groupId>org.onap.sdc.sdc-distribution-client</groupId>
-            <artifactId>sdc-distribution-client</artifactId>
-            <version>1.4.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.onap.sdc.sdc-tosca</groupId>
-            <artifactId>sdc-tosca</artifactId>
-            <version>1.5.1</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.fasterxml.jackson.core</groupId>
-                    <artifactId>jackson-databind</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.yaml</groupId>
-            <artifactId>snakeyaml</artifactId>
-            <version>1.28</version>
-        </dependency>
-        <dependency>
-            <groupId>org.dom4j</groupId>
-            <artifactId>dom4j</artifactId>
-            <version>2.1.3</version>
-        </dependency>
-
-        <!-- TESTING -->
-        <dependency>
-            <groupId>org.junit.vintage</groupId>
-            <artifactId>junit-vintage-engine</artifactId>
-            <version>5.7.1</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.assertj</groupId>
-            <artifactId>assertj-core</artifactId>
-            <version>3.10.0</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.github.docker-java</groupId>
-            <artifactId>docker-java-core</artifactId>
-            <version>3.2.7</version>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.fasterxml.jackson.core</groupId>
-                    <artifactId>jackson-databind</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>com.github.docker-java</groupId>
-            <artifactId>docker-java</artifactId>
-            <version>3.2.7</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.onap.policy.common</groupId>
-            <artifactId>utils-test</artifactId>
-            <version>${policy.common.version}</version>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
-
-    <build>
-        <finalName>policy-clamp-backend</finalName>
-
-        <testResources>
-            <testResource>
-                <directory>src/main/resources</directory>
-                <filtering>true</filtering>
-                <excludes>
-                    <exclude>clds/aaf/**</exclude>
-                </excludes>
-            </testResource>
-            <testResource>
-                <directory>src/main/resources</directory>
-                <filtering>false</filtering>
-                <includes>
-                    <include>clds/aaf/**</include>
-                </includes>
-            </testResource>
-            <testResource>
-                <directory>src/test/resources</directory>
-                <excludes>
-                    <exclude>**/*.jks</exclude>
-                    <exclude>**/*.csar</exclude>
-                </excludes>
-                <filtering>true</filtering>
-            </testResource>
-            <testResource>
-                <directory>src/test/resources/https</directory>
-                <includes>
-                    <include>**.jks</include>
-                </includes>
-                <filtering>false</filtering>
-                <targetPath>https</targetPath>
-            </testResource>
-            <testResource>
-                <directory>src/test/resources/example/sdc</directory>
-                <includes>
-                    <include>**.csar</include>
-                </includes>
-                <filtering>false</filtering>
-                <targetPath>example/sdc</targetPath>
-            </testResource>
-        </testResources>
-        <resources>
-            <!-- For AAF folder maven should not try to filter Keystores/Truststores ... Otherwise
-                they will be broken and unreadable -->
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>true</filtering>
-                <excludes>
-                    <exclude>clds/aaf/**</exclude>
-                </excludes>
-            </resource>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>false</filtering>
-                <includes>
-                    <include>clds/aaf/**</include>
-                </includes>
-            </resource>
-            <resource>
-                <directory>${ui.react.src}</directory>
-                <excludes>
-                    <exclude>node_modules</exclude>
-                </excludes>
-                <includes>
-                    <include>src/**</include>
-                    <include>public/**</include>
-                    <include>package.json</include>
-                    <include>package-lock.json</include>
-                </includes>
-                <filtering>true</filtering>
-                <targetPath>${project.build.directory}/${ui.react.src}</targetPath>
-            </resource>
-            <resource>
-                <directory>${ui.react.src}</directory>
-                <includes>
-                    <include>src/**</include>
-                </includes>
-                <excludes>
-                    <exclude>**/__snapshots__/**</exclude>
-                    <exclude>**/**.test.js</exclude>
-                </excludes>
-                <filtering>true</filtering>
-                <targetPath>${project.build.directory}/${ui.react.lib.src}</targetPath>
-            </resource>
-            <resource>
-                <directory>${ui.react.lib.src}</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <excludes>
-                    <exclude>node_modules/**</exclude>
-                    <exclude>package-lock.json</exclude>
-                </excludes>
-                <filtering>true</filtering>
-                <targetPath>${project.build.directory}/${ui.react.lib.src}</targetPath>
-            </resource>
-        </resources>
-
-        <plugins>
-            <plugin>
-                <groupId>de.jpdigital</groupId>
-                <artifactId>hibernate52-ddl-maven-plugin</artifactId>
-                <version>2.2.0</version>
-                <dependencies>
-                    <dependency>
-                        <groupId>javax.xml.bind</groupId>
-                        <artifactId>jaxb-api</artifactId>
-                        <version>2.3.0</version>
-                    </dependency>
-                </dependencies>
-                <executions>
-                    <execution>
-                        <phase>process-classes</phase>
-                        <goals>
-                            <goal>gen-ddl</goal>
-                        </goals>
-                        <configuration>
-                            <packages>
-                                <param>org.onap.policy.clamp</param>
-                            </packages>
-                            <dialects>
-                                <param>MARIADB53</param>
-                            </dialects>
-                            <outputDirectory>${project.basedir}/extra/sql/bulkload/</outputDirectory>
-                            <outputFileNameSuffix>create-tables</outputFileNameSuffix>
-                            <!-- <createDropStatements>true</createDropStatements> -->
-                            <omitDialectFromFileName>true</omitDialectFromFileName>
-                        </configuration>
-                    </execution>
-                </executions>
-
-            </plugin>
-            <!-- Read the swagger.json file and the definition from SwaggerConfig.java; generate
-                a list of .adoc files containing the APIs info in more structured way -->
-            <plugin>
-                <groupId>io.github.swagger2markup</groupId>
-                <artifactId>swagger2markup-maven-plugin</artifactId>
-                <version>1.3.3</version>
-                <dependencies>
-                    <dependency>
-                        <groupId>io.github.swagger2markup</groupId>
-                        <artifactId>swagger2markup-import-files-ext</artifactId>
-                        <version>1.3.3</version>
-                    </dependency>
-                    <dependency>
-                        <groupId>io.github.swagger2markup</groupId>
-                        <artifactId>swagger2markup-spring-restdocs-ext</artifactId>
-                        <version>1.3.3</version>
-                    </dependency>
-                </dependencies>
-                <configuration>
-                    <swaggerInput>${project.basedir}/docs/swagger/swagger.json</swaggerInput>
-                    <outputDir>${project.build.directory}/asciidoc/generated</outputDir>
-                    <config>
-                        <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
-                    </config>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>post-integration-test</phase>
-                        <goals>
-                            <goal>convertSwagger2markup</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- Run the generated asciidoc through Asciidoctor to generate other documentation
-                types, such as PDFs or HTML5 -->
-            <plugin>
-                <groupId>org.asciidoctor</groupId>
-                <artifactId>asciidoctor-maven-plugin</artifactId>
-                <version>1.5.7.1</version>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.asciidoctor</groupId>
-                        <artifactId>asciidoctorj-pdf</artifactId>
-                        <version>1.5.0-alpha.10.1</version>
-                    </dependency>
-                </dependencies>
-                <configuration>
-                    <sourceDirectory>${project.basedir}/src/main/resources/asciidoc</sourceDirectory>
-                    <sourceDocumentName>swagger.adoc</sourceDocumentName>
-                    <attributes>
-                        <doctype>book</doctype>
-                        <toc>left</toc>
-                        <toclevels>3</toclevels>
-                        <numbered/>
-                        <hardbreaks/>
-                        <sectlinks/>
-                        <sectanchors/>
-                        <generated>${project.build.directory}/asciidoc/generated</generated>
-                    </attributes>
-                </configuration>
-
-                <executions>
-                    <execution>
-                        <id>output-html</id>
-                        <phase>post-integration-test</phase>
-                        <goals>
-                            <goal>process-asciidoc</goal>
-                        </goals>
-                        <configuration>
-                            <backend>html5</backend>
-                            <outputDirectory>${project.basedir}/docs/swagger</outputDirectory>
-                            <outputDirectory>${project.basedir}/src/main/resources/META-INF/resources/</outputDirectory>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>output-pdf</id>
-                        <phase>post-integration-test</phase>
-                        <goals>
-                            <goal>process-asciidoc</goal>
-                        </goals>
-                        <configuration>
-                            <backend>pdf</backend>
-                            <outputDirectory>${project.basedir}/docs/swagger</outputDirectory>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.groovy.maven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
-                <version>1.0</version>
-                <executions>
-                    <execution>
-                        <id>docker-tags</id>
-                        <phase>validate</phase>
-                        <goals>
-                            <goal>execute</goal>
-                        </goals>
-                        <configuration>
-                            <source>${project.basedir}/src/main/script/TagVersion.groovy</source>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>npm-repos-selection</id>
-                        <phase>validate</phase>
-                        <goals>
-                            <goal>execute</goal>
-                        </goals>
-                        <configuration>
-                            <source>${project.basedir}/src/main/script/SelectNpmRepo.groovy</source>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>3.2.0</version>
-                <executions>
-                    <execution>
-                        <id>jar-with-only-classes</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                        <configuration>
-                            <classifier>classes</classifier>
-                            <includes>
-                                <include>org/**</include>
-                            </includes>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <version>3.2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>attach-artifact</goal>
-                        </goals>
-                        <phase>package</phase>
-                        <configuration>
-                            <artifacts>
-                                <artifact>
-                                    <file>${project.build.directory}/policy-clamp-backend-classes.jar</file>
-                                    <type>jar</type>
-                                    <classifier>classes</classifier>
-                                </artifact>
-                            </artifacts>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>reserve-port-for-tests</id>
-                        <phase>process-resources</phase>
-                        <goals>
-                            <goal>reserve-network-port</goal>
-                        </goals>
-                        <configuration>
-                            <portNames>
-                                <portName>docker.mariadb.port.host</portName>
-                                <portName>docker.http-cache.port.host</portName>
-                                <portName>clamp.it.tests.http-redirected</portName>
-                                <portName>clamp.it.tests.robotframework.http</portName>
-                                <portName>clamp.it.tests.https</portName>
-                                <portName>clamp.it.tests.http</portName>
-                            </portNames>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${springboot.version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                        <phase>package</phase>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.22.2</version>
-                <configuration>
-                    <forkCount>1C</forkCount>
-                    <reuseForks>true</reuseForks>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-                    <argLine>${surefireArgLine}</argLine>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-failsafe-plugin</artifactId>
-                <version>2.22.2</version>
-                <executions>
-                    <execution>
-                        <id>integration-tests</id>
-                        <goals>
-                            <goal>integration-test</goal>
-                            <goal>verify</goal>
-                        </goals>
-                        <configuration>
-                            <additionalClasspathElements>
-                                <additionalClasspathElement>${project.build.directory}/classes
-                                </additionalClasspathElement>
-                            </additionalClasspathElements>
-                            <includes>
-                                <include>**/*ItCase.java</include>
-                            </includes>
-                            <forkCount>1C</forkCount>
-                            <reuseForks>true</reuseForks>
-                            <useSystemClassLoader>false</useSystemClassLoader>
-                            <argLine>${failsafeArgLine}</argLine>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>io.fabric8</groupId>
-                <artifactId>docker-maven-plugin</artifactId>
-                <version>0.35.0</version>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.apache.httpcomponents</groupId>
-                        <artifactId>httpclient</artifactId>
-                        <version>4.5.5</version>
-                    </dependency>
-                </dependencies>
-                <configuration>
-                    <verbose>true</verbose>
-                    <apiVersion>1.35</apiVersion>
-                    <images>
-                        <image>
-                            <name>docker.io/mariadb:10.5.4</name>
-                            <alias>mariadb</alias>
-                            <run>
-                                <env>
-                                    <MYSQL_ROOT_PASSWORD>strong_pitchou</MYSQL_ROOT_PASSWORD>
-                                </env>
-                                <hostname>mariadb</hostname>
-                                <volumes>
-                                    <bind>
-                                        <volume>${project.basedir}/extra/sql/:/docker-entrypoint-initdb.d:rw</volume>
-                                        <volume>${project.basedir}/extra/docker/mariadb/conf1:/etc/mysql/conf.d</volume>
-                                    </bind>
-                                </volumes>
-                                <wait>
-                                    <log>port: 3306</log>
-                                    <time>300000</time>
-                                    <exec>
-                                        <preStop>/docker-entrypoint-initdb.d/dump/backup-data-only.sh</preStop>
-                                    </exec>
-                                </wait>
-                                <ports>
-                                    <port>${docker.mariadb.port.host}:3306</port>
-                                </ports>
-                                <network>
-                                    <mode>bridge</mode>
-                                </network>
-                            </run>
-                        </image>
-                        <image>
-                            <name>docker.io/python:2-slim</name>
-                            <alias>python</alias>
-                            <run>
-                                <hostname>python</hostname>
-                                <volumes>
-                                    <bind>
-                                        <volume>
-                                            ${project.basedir}/src/test/resources/http-cache/:/usr/src/http-cache-app
-                                        </volume>
-                                        <volume>
-                                            ${project.basedir}/src/test/resources/http-cache/example/:/usr/src/http-cache-app/data-cache
-                                        </volume>
-                                    </bind>
-                                </volumes>
-                                <wait>
-                                    <tcp>
-                                        <ports>
-                                            <port>8080</port>
-                                        </ports>
-                                        <mode>direct</mode>
-                                    </tcp>
-                                    <time>120000</time>
-                                </wait>
-                                <ports>
-                                    <port>${docker.http-cache.port.host}:8080</port>
-                                </ports>
-                                <workingDir>/usr/src/http-cache-app</workingDir>
-                                <cmd>
-                                    <shell>./start_http_cache.sh ${python.http.proxy.param}
-                                        --python_proxyaddress=localhost:${docker.http-cache.port.host}
-                                    </shell>
-                                </cmd>
-                                <network>
-                                    <mode>bridge</mode>
-                                </network>
-                            </run>
-                        </image>
-                        <image>
-                            <name>onap/policy-clamp-backend</name>
-                            <alias>onap-policy-clamp-backend</alias>
-                            <run>
-                                <skip>true</skip>
-                            </run>
-                            <build>
-                                <cleanup>true</cleanup>
-                                <tags>
-                                    <tag>latest</tag>
-                                    <tag>${project.docker.latesttagtimestamp.version}</tag>
-                                    <tag>${project.docker.latesttag.version}</tag>
-                                </tags>
-                                <!-- A relative path is looked up in ${project.basedir}/src/main/docker by
-                                    default -->
-                                <dockerFile>backend/Dockerfile</dockerFile>
-                                <assembly>
-                                    <descriptor>backend/backend-files.xml</descriptor>
-                                    <name>onap-policy-clamp-backend</name>
-                                </assembly>
-                            </build>
-                        </image>
-                        <image>
-                            <name>onap/policy-clamp-frontend</name>
-                            <alias>onap-policy-clamp-frontend</alias>
-                            <run>
-                                <skip>true</skip>
-                            </run>
-                            <build>
-                                <cleanup>true</cleanup>
-                                <tags>
-                                    <tag>latest</tag>
-                                    <tag>${project.docker.latesttagtimestamp.version}</tag>
-                                    <tag>${project.docker.latesttag.version}</tag>
-                                </tags>
-                                <!-- A relative path is looked up in ${project.basedir}/src/main/docker by
-                                    default -->
-                                <dockerFile>frontend/Dockerfile</dockerFile>
-                                <assembly>
-                                    <descriptor>frontend/frontend-files.xml</descriptor>
-                                    <name>onap-policy-clamp-frontend</name>
-                                </assembly>
-                            </build>
-                        </image>
-                    </images>
-                </configuration>
-
-                <executions>
-                    <execution>
-                        <id>generate-images</id>
-                        <phase>install</phase>
-                        <goals>
-                            <goal>build</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>push-images</id>
-                        <phase>deploy</phase>
-                        <goals>
-                            <goal>push</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>docker-start-for-it</id>
-                        <phase>pre-integration-test</phase>
-                        <goals>
-                            <goal>start</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>docker-stop-for-it</id>
-                        <phase>post-integration-test</phase>
-                        <goals>
-                            <goal>stop</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <version>0.8.5</version>
-                <configuration>
-                    <dumpOnExit>true</dumpOnExit>
-                    <append>true</append>
-                    <includes>
-                        <include>org/onap/policy/clamp/**</include>
-                    </includes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>pre-unit-test</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                        <configuration>
-                            <destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile>
-                            <propertyName>surefireArgLine</propertyName>
-                            <!-- <append>true</append> -->
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>pre-integration-test</id>
-                        <phase>pre-integration-test</phase>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                        <configuration>
-                            <destFile>${project.build.directory}/coverage-reports/jacoco-it.exec</destFile>
-                            <propertyName>failsafeArgLine</propertyName>
-                            <!-- <append>true</append> -->
-                            <!-- Need to overwrite the policy integration parent flag -->
-                            <skip>false</skip>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <goals>
-                            <goal>merge</goal>
-                        </goals>
-                        <phase>post-integration-test</phase>
-                        <configuration>
-                            <fileSets>
-                                <fileSet
-                                        implementation="org.apache.maven.shared.model.fileset.FileSet">
-                                    <directory>${project.build.directory}/coverage-reports</directory>
-                                    <includes>
-                                        <include>*.exec</include>
-                                    </includes>
-                                </fileSet>
-                            </fileSets>
-                            <destFile>${project.build.directory}/jacoco.exec</destFile>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>report-xml</id>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                        <configuration>
-                            <!-- Setting explicit path, so that we remember where it picks them up from -->
-                            <dataFile>${project.build.directory}/jacoco.exec</dataFile>
-                            <outputDirectory>${project.build.directory}/jacoco-html-xml-reports</outputDirectory>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- This plugin will be useful when we will have multi-modules project -->
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>versions-maven-plugin</artifactId>
-                <version>1.3.1</version>
-            </plugin>
-
-            <plugin>
-                <groupId>com.github.eirslett</groupId>
-                <artifactId>frontend-maven-plugin</artifactId>
-                <version>1.11.3</version>
-                <configuration>
-                    <installDirectory>${project.build.directory}/${ui.react.src}</installDirectory>
-                    <npmDownloadRoot>${repo.npm}</npmDownloadRoot>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>install_node_and_npm</id>
-                        <goals>
-                            <goal>install-node-and-npm</goal>
-                        </goals>
-                        <phase>generate-sources</phase>
-                        <configuration>
-                            <nodeVersion>v14.16.1</nodeVersion>
-                            <npmVersion>6.14.13</npmVersion>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>npm_install</id>
-                        <goals>
-                            <goal>npm</goal>
-                        </goals>
-                        <phase>compile</phase>
-                        <configuration>
-                            <workingDirectory>${project.build.directory}/${ui.react.src}</workingDirectory>
-                            <arguments>install</arguments>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>npm_test</id>
-                        <goals>
-                            <goal>npm</goal>
-                        </goals>
-                        <phase>test</phase>
-                        <configuration>
-                            <skip>${maven.test.skip}</skip>
-                            <arguments>run-script test:coverage</arguments>
-                            <workingDirectory>${project.build.directory}/${ui.react.src}</workingDirectory>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>npm_install_lib</id>
-                        <goals>
-                            <goal>npm</goal>
-                        </goals>
-                        <phase>deploy</phase>
-                        <configuration>
-                            <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
-                            <arguments>install</arguments>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>npm_build_lib</id>
-                        <goals>
-                            <goal>npm</goal>
-                        </goals>
-                        <phase>deploy</phase>
-                        <configuration>
-                            <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
-                            <arguments>run build</arguments>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>npm_publish</id>
-                        <goals>
-                            <goal>npm</goal>
-                        </goals>
-                        <phase>deploy</phase>
-                        <configuration>
-                            <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
-                            <arguments>publish</arguments>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
-                <configuration>
-                    <source>11</source>
-                    <target>11</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.sonarsource.scanner.maven</groupId>
-                <artifactId>sonar-maven-plugin</artifactId>
-                <version>3.7.0.1746</version>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>exec-maven-plugin</artifactId>
-                <version>1.3.2</version>
-                <executions>
-                    <execution>
-                        <id>libIndexCheck</id>
-                        <phase>validate</phase>
-                        <goals>
-                            <goal>exec</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <executable>bash</executable>
-                    <arguments>
-                        <argument>${project.basedir}/src/main/script/checkLibIndex.sh</argument>
-                    </arguments>
-                </configuration>
-            </plugin>
-            <!-- Plugin to generate a X509 Certificate for https tests  -->
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>keytool-maven-plugin</artifactId>
-                <version>1.5</version>
-                <executions>
-                    <execution>
-                        <id>add-certificate-for-dev</id>
-                        <configuration>
-                            <keystore>${project.build.directory}/classes/clds/aaf/org.onap.clamp.p12</keystore>
-                            <storepass>China in the Spring</storepass>
-                            <alias>clamptest</alias>
-                            <storetype>PKCS12</storetype>
-                            <keyalg>RSA</keyalg>
-                            <dname>cn=CN, ou=OU, o=O, c=C</dname>
-                            <validity>365</validity>
-                        </configuration>
-                        <goals>
-                            <goal>generateKeyPair</goal>
-                        </goals>
-                        <phase>generate-resources</phase>
-                    </execution>
-                    <execution>
-                        <id>add-certificate-for-test</id>
-                        <configuration>
-                            <keystore>${project.build.directory}/test-classes/clds/aaf/org.onap.clamp.p12</keystore>
-                            <storepass>China in the Spring</storepass>
-                            <alias>clamptest</alias>
-                            <storetype>PKCS12</storetype>
-                            <keyalg>RSA</keyalg>
-                            <dname>cn=CN, ou=OU, o=O, c=C</dname>
-                            <validity>365</validity>
-                        </configuration>
-                        <goals>
-                            <goal>generateKeyPair</goal>
-                        </goals>
-                        <phase>generate-test-resources</phase>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
 </project>
diff --git a/runtime/pom.xml b/runtime/pom.xml
new file mode 100644 (file)
index 0000000..66d555a
--- /dev/null
@@ -0,0 +1,1250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ============LICENSE_START=======================================================
+  ONAP POLICY-CLAMP
+  ================================================================================
+  Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved.
+  Modifications Copyright (C) 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.
+  ============LICENSE_END============================================
+  ===================================================================
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.policy.clamp</groupId>
+        <artifactId>policy-clamp</artifactId>
+        <version>6.1.2-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>policy-clamp-runtime</artifactId>
+    <name>${project.artifactId}</name>
+
+    <description>
+        This is the MAVEN project that builds everything for ONAP POLICY-CLAMP.
+        Docker engine is normally required to perfom all possible tasks (including integration tests)
+
+        It can build:
+        - The ONAP POLICY-CLAMP JAR that contains CLAMP back-end code.
+        - The DOCKER images for:
+        * POLICY-CLAMP backend (Java Spring)
+        * POLICY-CLAMP frontend (Javascript React)
+
+        It can test:
+        - The POLICY-CLAMP backend, JAVA unit testing
+        - The POLICY-CLAMP backend, JAVA integration tests (with Spring + docker mariadb database + docker policy/dcae
+        emulator written in python)
+        - The POLICY-CLAMP frontend, Javascript tests (NodeJS(NPM) + JEST and Enzyme for React)
+
+        The test coverage for dev's can be found after a "clean install" build in:
+        - Clamp backend: target/jacoco-dev.exec (unit tests + integration tests merged)
+        or separately target/coverage-reports/jacoco.exec and target/coverage-reports/jacoco-it.exec
+        - Clamp frontend: target/ui-react/coverage
+
+        Useful mvn commands:
+        - mvn clean install: Build Clamp backend JAR + unit tests + integration tests + NPM tests (+coverage for all)
+        - mvn clean install -DskipITs=true: Build Clamp backend JAR + unit tests + NPM tests (+coverage for all), it
+        does not require a DOCKER engine
+        - mvn clean install -DskipTests -P docker: Build Clamp backend JAR + all docker images
+
+        To start POLICY-CLAMP (Build it before):
+        - Use docker-compose file in ./extra/docker/clamp/docker-compose.yml
+        - Use the script located in ./extra/bin/start-backend.sh + start-frontend.sh
+        - Use your IDE to use the Jar or start NVM/NPM
+
+    </description>
+
+    <properties>
+        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
+        <clamp.project.version>${project.version}</clamp.project.version>
+        <clamp.build.timestamp>${maven.build.timestamp}</clamp.build.timestamp>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+        <eelf.core.version>1.0.0</eelf.core.version>
+        <camel.version>3.7.3</camel.version>
+        <springboot.version>2.4.4</springboot.version>
+
+        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
+        <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
+        <sonar.coverage.jacoco.xmlReportPaths>${project.build.directory}/jacoco-html-xml-reports/jacoco.xml
+        </sonar.coverage.jacoco.xmlReportPaths>
+        <sonar.projectVersion>${project.version}</sonar.projectVersion>
+        <sonar.log.level>DEBUG</sonar.log.level>
+        <sonar.nodejs.executable>${project.build.directory}/${ui.react.src}/node/node</sonar.nodejs.executable>
+        <sonar.verbose>true</sonar.verbose>
+        <sonar.sources>src/main,${project.build.directory}/${ui.react.src}/src</sonar.sources>
+        <sonar.exclusions>src/main/resources/**</sonar.exclusions>
+        <sonar.scm.exclusions.disabled>true</sonar.scm.exclusions.disabled>
+        <sonar.javascript.lcov.reportPaths>${project.build.directory}/${ui.react.src}/coverage/lcov.info
+        </sonar.javascript.lcov.reportPaths>
+        <sonar.coverage.exclusions>
+            src/main/resources/**,target/ui-react/src/**/*.test.js,target/ui-react/src/setupTests.js
+        </sonar.coverage.exclusions>
+        <docker.push.registry>localhost:5000</docker.push.registry>
+        <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
+        <docker.skip.build>true</docker.skip.build>
+        <docker.skip.push>true</docker.skip.push>
+        <docker.skip.tag>true</docker.skip.tag>
+        <skip.staging.artifacts>false</skip.staging.artifacts>
+        <python.http.proxy.param/>
+        <tomcat.version>9.0.45</tomcat.version>
+        <ui.react.src>ui-react</ui.react.src>
+        <ui.react.lib.src>ui-react-lib</ui.react.lib.src>
+        <npm.publish.url>https://nexus3.onap.org/repository/npm.snapshot/</npm.publish.url>
+    </properties>
+
+    <profiles>
+        <!-- BEGIN: NOT USABLE profiles, those are defined when specific flags are enabled -->
+        <profile>
+            <id>without-test</id>
+            <activation>
+                <property>
+                    <name>maven.test.skip</name>
+                    <value>true</value>
+                </property>
+            </activation>
+            <properties>
+                <docker.skip.run>true</docker.skip.run>
+                <docker.skip>true</docker.skip>
+            </properties>
+        </profile>
+        <profile>
+            <id>without-IT-only</id>
+            <activation>
+                <property>
+                    <name>skipITs</name>
+                    <value>true</value>
+                </property>
+            </activation>
+            <properties>
+                <docker.skip.run>true</docker.skip.run>
+                <docker.skip>true</docker.skip>
+            </properties>
+        </profile>
+        <profile>
+            <id>without-IT-only2</id>
+            <activation>
+                <property>
+                    <name>skipTests</name>
+                    <value>true</value>
+                </property>
+            </activation>
+            <properties>
+                <docker.skip.run>true</docker.skip.run>
+                <docker.skip>true</docker.skip>
+            </properties>
+        </profile>
+        <!-- END: NOT USABLE profiles, those are defined when specific flags are enabled -->
+        <profile>
+            <id>docker</id>
+            <properties>
+                <skip.staging.artifacts>true</skip.staging.artifacts>
+                <docker.skip.build>false</docker.skip.build>
+                <docker.skip.tag>false</docker.skip.tag>
+                <docker.skip.push>false</docker.skip.push>
+                <docker.skip>false</docker.skip>
+            </properties>
+        </profile>
+    </profiles>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- Spring Boot BOM -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${springboot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- Camel BOM -->
+            <dependency>
+                <groupId>org.apache.camel.springboot</groupId>
+                <artifactId>camel-spring-boot-bom</artifactId>
+                <version>${camel.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.att.eelf</groupId>
+            <artifactId>eelf-core</artifactId>
+            <version>${eelf.core.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.powermock</groupId>
+                    <artifactId>powermock-module-junit4</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.powermock</groupId>
+                    <artifactId>powermock-api-mockito</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.janino</groupId>
+            <artifactId>janino</artifactId>
+            <version>3.0.8</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat.embed</groupId>
+            <artifactId>tomcat-embed-core</artifactId>
+            <version>${tomcat.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat.embed</groupId>
+            <artifactId>tomcat-embed-el</artifactId>
+            <version>${tomcat.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat.embed</groupId>
+            <artifactId>tomcat-embed-websocket</artifactId>
+            <version>${tomcat.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-annotations-api</artifactId>
+            <version>${tomcat.version}</version>
+        </dependency>
+        <!-- For CAMEL -->
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-http-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-jaxb-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-servlet-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-gson-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-swagger-java-starter</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>javax.ws.rs</groupId>
+                    <artifactId>jsr311-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-ext</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <!-- Spring famework -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-json</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-tomcat</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.glassfish</groupId>
+                    <artifactId>jakarta.el</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-jdbc</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-autoconfigure</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.vaadin.external.google</groupId>
+                    <artifactId>android-json</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+        <!-- Policy dependencies mainly for the models required -->
+        <dependency>
+            <groupId>org.onap.policy.models</groupId>
+            <artifactId>policy-models-pdp</artifactId>
+            <version>${policy.models.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.eclipse.jetty</groupId>
+                    <artifactId>jetty-server</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.containers</groupId>
+                    <artifactId>jersey-container-servlet</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.jetbrains.kotlin</groupId>
+                    <artifactId>kotlin-reflect</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.jetbrains.kotlin</groupId>
+                    <artifactId>kotlin-stdlib</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.jetbrains.kotlin</groupId>
+                    <artifactId>kotlin-stdlib-common</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!-- Others dependencies -->
+        <!-- Jaxws is required for AAF -->
+        <dependency>
+            <groupId>javax.xml.ws</groupId>
+            <artifactId>jaxws-api</artifactId>
+            <version>2.3.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.aaf.authz</groupId>
+            <artifactId>aaf-cadi-aaf</artifactId>
+            <version>2.1.15</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>javax.servlet</groupId>
+                    <artifactId>servlet-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>log4j</groupId>
+                    <artifactId>log4j</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <version>1.2.3</version>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <version>1.2.3</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.8.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.googlecode.json-simple</groupId>
+            <artifactId>json-simple</artifactId>
+            <version>1.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-vfs2</artifactId>
+            <version>2.8.0</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.squareup.okhttp</groupId>
+                    <artifactId>okhttp</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.transaction</groupId>
+            <artifactId>jta</artifactId>
+            <version>1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.persistence</groupId>
+            <artifactId>persistence-api</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <!-- Other dependencies to fix nexus IQ reported vulnerabilities -->
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>1.15</version>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>3.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.spec.javax.ws.rs</groupId>
+            <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
+            <version>1.0.1.Final</version>
+        </dependency>
+
+
+        <!-- Remove the MYSQL connector and replace it by Mariadb -->
+        <dependency>
+            <groupId>org.mariadb.jdbc</groupId>
+            <artifactId>mariadb-java-client</artifactId>
+            <version>2.7.2</version>
+        </dependency>
+        <!-- For SDC Controller -->
+        <dependency>
+            <groupId>org.onap.sdc.sdc-distribution-client</groupId>
+            <artifactId>sdc-distribution-client</artifactId>
+            <version>1.4.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.sdc.sdc-tosca</groupId>
+            <artifactId>sdc-tosca</artifactId>
+            <version>1.5.1</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                    <artifactId>jackson-databind</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.yaml</groupId>
+            <artifactId>snakeyaml</artifactId>
+            <version>1.28</version>
+        </dependency>
+        <dependency>
+            <groupId>org.dom4j</groupId>
+            <artifactId>dom4j</artifactId>
+            <version>2.1.3</version>
+        </dependency>
+
+        <!-- TESTING -->
+        <dependency>
+            <groupId>org.junit.vintage</groupId>
+            <artifactId>junit-vintage-engine</artifactId>
+            <version>5.7.1</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <version>3.10.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.github.docker-java</groupId>
+            <artifactId>docker-java-core</artifactId>
+            <version>3.2.7</version>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.core</groupId>
+                    <artifactId>jackson-databind</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.github.docker-java</groupId>
+            <artifactId>docker-java</artifactId>
+            <version>3.2.7</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.policy.common</groupId>
+            <artifactId>utils-test</artifactId>
+            <version>${policy.common.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>policy-clamp-backend</finalName>
+
+        <testResources>
+            <testResource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+                <excludes>
+                    <exclude>clds/aaf/**</exclude>
+                </excludes>
+            </testResource>
+            <testResource>
+                <directory>src/main/resources</directory>
+                <filtering>false</filtering>
+                <includes>
+                    <include>clds/aaf/**</include>
+                </includes>
+            </testResource>
+            <testResource>
+                <directory>src/test/resources</directory>
+                <excludes>
+                    <exclude>**/*.jks</exclude>
+                    <exclude>**/*.csar</exclude>
+                </excludes>
+                <filtering>true</filtering>
+            </testResource>
+            <testResource>
+                <directory>src/test/resources/https</directory>
+                <includes>
+                    <include>**.jks</include>
+                </includes>
+                <filtering>false</filtering>
+                <targetPath>https</targetPath>
+            </testResource>
+            <testResource>
+                <directory>src/test/resources/example/sdc</directory>
+                <includes>
+                    <include>**.csar</include>
+                </includes>
+                <filtering>false</filtering>
+                <targetPath>example/sdc</targetPath>
+            </testResource>
+        </testResources>
+        <resources>
+            <!-- For AAF folder maven should not try to filter Keystores/Truststores ... Otherwise
+                they will be broken and unreadable -->
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+                <excludes>
+                    <exclude>clds/aaf/**</exclude>
+                </excludes>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>false</filtering>
+                <includes>
+                    <include>clds/aaf/**</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>${ui.react.src}</directory>
+                <excludes>
+                    <exclude>node_modules</exclude>
+                </excludes>
+                <includes>
+                    <include>src/**</include>
+                    <include>public/**</include>
+                    <include>package.json</include>
+                    <include>package-lock.json</include>
+                </includes>
+                <filtering>true</filtering>
+                <targetPath>${project.build.directory}/${ui.react.src}</targetPath>
+            </resource>
+            <resource>
+                <directory>${ui.react.src}</directory>
+                <includes>
+                    <include>src/**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/__snapshots__/**</exclude>
+                    <exclude>**/**.test.js</exclude>
+                </excludes>
+                <filtering>true</filtering>
+                <targetPath>${project.build.directory}/${ui.react.lib.src}</targetPath>
+            </resource>
+            <resource>
+                <directory>${ui.react.lib.src}</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>node_modules/**</exclude>
+                    <exclude>package-lock.json</exclude>
+                </excludes>
+                <filtering>true</filtering>
+                <targetPath>${project.build.directory}/${ui.react.lib.src}</targetPath>
+            </resource>
+        </resources>
+
+        <plugins>
+            <plugin>
+                <groupId>de.jpdigital</groupId>
+                <artifactId>hibernate52-ddl-maven-plugin</artifactId>
+                <version>2.2.0</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>javax.xml.bind</groupId>
+                        <artifactId>jaxb-api</artifactId>
+                        <version>2.3.0</version>
+                    </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>gen-ddl</goal>
+                        </goals>
+                        <configuration>
+                            <packages>
+                                <param>org.onap.policy.clamp</param>
+                            </packages>
+                            <dialects>
+                                <param>MARIADB53</param>
+                            </dialects>
+                            <outputDirectory>${project.basedir}/extra/sql/bulkload/</outputDirectory>
+                            <outputFileNameSuffix>create-tables</outputFileNameSuffix>
+                            <!-- <createDropStatements>true</createDropStatements> -->
+                            <omitDialectFromFileName>true</omitDialectFromFileName>
+                        </configuration>
+                    </execution>
+                </executions>
+
+            </plugin>
+            <!-- Read the swagger.json file and the definition from SwaggerConfig.java; generate
+                a list of .adoc files containing the APIs info in more structured way -->
+            <plugin>
+                <groupId>io.github.swagger2markup</groupId>
+                <artifactId>swagger2markup-maven-plugin</artifactId>
+                <version>1.3.3</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>io.github.swagger2markup</groupId>
+                        <artifactId>swagger2markup-import-files-ext</artifactId>
+                        <version>1.3.3</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>io.github.swagger2markup</groupId>
+                        <artifactId>swagger2markup-spring-restdocs-ext</artifactId>
+                        <version>1.3.3</version>
+                    </dependency>
+                </dependencies>
+                <configuration>
+                    <swaggerInput>${project.basedir}/docs/swagger/swagger.json</swaggerInput>
+                    <outputDir>${project.build.directory}/asciidoc/generated</outputDir>
+                    <config>
+                        <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage>
+                    </config>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>post-integration-test</phase>
+                        <goals>
+                            <goal>convertSwagger2markup</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- Run the generated asciidoc through Asciidoctor to generate other documentation
+                types, such as PDFs or HTML5 -->
+            <plugin>
+                <groupId>org.asciidoctor</groupId>
+                <artifactId>asciidoctor-maven-plugin</artifactId>
+                <version>1.5.7.1</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.asciidoctor</groupId>
+                        <artifactId>asciidoctorj-pdf</artifactId>
+                        <version>1.5.0-alpha.10.1</version>
+                    </dependency>
+                </dependencies>
+                <configuration>
+                    <sourceDirectory>${project.basedir}/src/main/resources/asciidoc</sourceDirectory>
+                    <sourceDocumentName>swagger.adoc</sourceDocumentName>
+                    <attributes>
+                        <doctype>book</doctype>
+                        <toc>left</toc>
+                        <toclevels>3</toclevels>
+                        <numbered/>
+                        <hardbreaks/>
+                        <sectlinks/>
+                        <sectanchors/>
+                        <generated>${project.build.directory}/asciidoc/generated</generated>
+                    </attributes>
+                </configuration>
+
+                <executions>
+                    <execution>
+                        <id>output-html</id>
+                        <phase>post-integration-test</phase>
+                        <goals>
+                            <goal>process-asciidoc</goal>
+                        </goals>
+                        <configuration>
+                            <backend>html5</backend>
+                            <outputDirectory>${project.basedir}/docs/swagger</outputDirectory>
+                            <outputDirectory>${project.basedir}/src/main/resources/META-INF/resources/</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>output-pdf</id>
+                        <phase>post-integration-test</phase>
+                        <goals>
+                            <goal>process-asciidoc</goal>
+                        </goals>
+                        <configuration>
+                            <backend>pdf</backend>
+                            <outputDirectory>${project.basedir}/docs/swagger</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.groovy.maven</groupId>
+                <artifactId>gmaven-plugin</artifactId>
+                <version>1.0</version>
+                <executions>
+                    <execution>
+                        <id>docker-tags</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>execute</goal>
+                        </goals>
+                        <configuration>
+                            <source>${project.basedir}/src/main/script/TagVersion.groovy</source>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>npm-repos-selection</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>execute</goal>
+                        </goals>
+                        <configuration>
+                            <source>${project.basedir}/src/main/script/SelectNpmRepo.groovy</source>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>3.2.0</version>
+                <executions>
+                    <execution>
+                        <id>jar-with-only-classes</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <configuration>
+                            <classifier>classes</classifier>
+                            <includes>
+                                <include>org/**</include>
+                            </includes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <version>3.2.0</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>attach-artifact</goal>
+                        </goals>
+                        <phase>package</phase>
+                        <configuration>
+                            <artifacts>
+                                <artifact>
+                                    <file>${project.build.directory}/policy-clamp-backend-classes.jar</file>
+                                    <type>jar</type>
+                                    <classifier>classes</classifier>
+                                </artifact>
+                            </artifacts>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>reserve-port-for-tests</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>reserve-network-port</goal>
+                        </goals>
+                        <configuration>
+                            <portNames>
+                                <portName>docker.mariadb.port.host</portName>
+                                <portName>docker.http-cache.port.host</portName>
+                                <portName>clamp.it.tests.http-redirected</portName>
+                                <portName>clamp.it.tests.robotframework.http</portName>
+                                <portName>clamp.it.tests.https</portName>
+                                <portName>clamp.it.tests.http</portName>
+                            </portNames>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${springboot.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                        <phase>package</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>2.22.2</version>
+                <configuration>
+                    <forkCount>1C</forkCount>
+                    <reuseForks>true</reuseForks>
+                    <useSystemClassLoader>false</useSystemClassLoader>
+                    <argLine>${surefireArgLine}</argLine>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-failsafe-plugin</artifactId>
+                <version>2.22.2</version>
+                <executions>
+                    <execution>
+                        <id>integration-tests</id>
+                        <goals>
+                            <goal>integration-test</goal>
+                            <goal>verify</goal>
+                        </goals>
+                        <configuration>
+                            <additionalClasspathElements>
+                                <additionalClasspathElement>${project.build.directory}/classes
+                                </additionalClasspathElement>
+                            </additionalClasspathElements>
+                            <includes>
+                                <include>**/*ItCase.java</include>
+                            </includes>
+                            <forkCount>1C</forkCount>
+                            <reuseForks>true</reuseForks>
+                            <useSystemClassLoader>false</useSystemClassLoader>
+                            <argLine>${failsafeArgLine}</argLine>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>io.fabric8</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>0.35.0</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.apache.httpcomponents</groupId>
+                        <artifactId>httpclient</artifactId>
+                        <version>4.5.5</version>
+                    </dependency>
+                </dependencies>
+                <configuration>
+                    <verbose>true</verbose>
+                    <apiVersion>1.35</apiVersion>
+                    <images>
+                        <image>
+                            <name>docker.io/mariadb:10.5.4</name>
+                            <alias>mariadb</alias>
+                            <run>
+                                <env>
+                                    <MYSQL_ROOT_PASSWORD>strong_pitchou</MYSQL_ROOT_PASSWORD>
+                                </env>
+                                <hostname>mariadb</hostname>
+                                <volumes>
+                                    <bind>
+                                        <volume>${project.basedir}/extra/sql/:/docker-entrypoint-initdb.d:rw</volume>
+                                        <volume>${project.basedir}/extra/docker/mariadb/conf1:/etc/mysql/conf.d</volume>
+                                    </bind>
+                                </volumes>
+                                <wait>
+                                    <log>port: 3306</log>
+                                    <time>300000</time>
+                                    <exec>
+                                        <preStop>/docker-entrypoint-initdb.d/dump/backup-data-only.sh</preStop>
+                                    </exec>
+                                </wait>
+                                <ports>
+                                    <port>${docker.mariadb.port.host}:3306</port>
+                                </ports>
+                                <network>
+                                    <mode>bridge</mode>
+                                </network>
+                            </run>
+                        </image>
+                        <image>
+                            <name>docker.io/python:2-slim</name>
+                            <alias>python</alias>
+                            <run>
+                                <hostname>python</hostname>
+                                <volumes>
+                                    <bind>
+                                        <volume>
+                                            ${project.basedir}/src/test/resources/http-cache/:/usr/src/http-cache-app
+                                        </volume>
+                                        <volume>
+                                            ${project.basedir}/src/test/resources/http-cache/example/:/usr/src/http-cache-app/data-cache
+                                        </volume>
+                                    </bind>
+                                </volumes>
+                                <wait>
+                                    <tcp>
+                                        <ports>
+                                            <port>8080</port>
+                                        </ports>
+                                        <mode>direct</mode>
+                                    </tcp>
+                                    <time>120000</time>
+                                </wait>
+                                <ports>
+                                    <port>${docker.http-cache.port.host}:8080</port>
+                                </ports>
+                                <workingDir>/usr/src/http-cache-app</workingDir>
+                                <cmd>
+                                    <shell>./start_http_cache.sh ${python.http.proxy.param}
+                                        --python_proxyaddress=localhost:${docker.http-cache.port.host}
+                                    </shell>
+                                </cmd>
+                                <network>
+                                    <mode>bridge</mode>
+                                </network>
+                            </run>
+                        </image>
+                        <image>
+                            <name>onap/policy-clamp-backend</name>
+                            <alias>onap-policy-clamp-backend</alias>
+                            <run>
+                                <skip>true</skip>
+                            </run>
+                            <build>
+                                <cleanup>true</cleanup>
+                                <tags>
+                                    <tag>latest</tag>
+                                    <tag>${project.docker.latesttagtimestamp.version}</tag>
+                                    <tag>${project.docker.latesttag.version}</tag>
+                                </tags>
+                                <!-- A relative path is looked up in ${project.basedir}/src/main/docker by
+                                    default -->
+                                <dockerFile>backend/Dockerfile</dockerFile>
+                                <assembly>
+                                    <descriptor>backend/backend-files.xml</descriptor>
+                                    <name>onap-policy-clamp-backend</name>
+                                </assembly>
+                            </build>
+                        </image>
+                        <image>
+                            <name>onap/policy-clamp-frontend</name>
+                            <alias>onap-policy-clamp-frontend</alias>
+                            <run>
+                                <skip>true</skip>
+                            </run>
+                            <build>
+                                <cleanup>true</cleanup>
+                                <tags>
+                                    <tag>latest</tag>
+                                    <tag>${project.docker.latesttagtimestamp.version}</tag>
+                                    <tag>${project.docker.latesttag.version}</tag>
+                                </tags>
+                                <!-- A relative path is looked up in ${project.basedir}/src/main/docker by
+                                    default -->
+                                <dockerFile>frontend/Dockerfile</dockerFile>
+                                <assembly>
+                                    <descriptor>frontend/frontend-files.xml</descriptor>
+                                    <name>onap-policy-clamp-frontend</name>
+                                </assembly>
+                            </build>
+                        </image>
+                    </images>
+                </configuration>
+
+                <executions>
+                    <execution>
+                        <id>generate-images</id>
+                        <phase>install</phase>
+                        <goals>
+                            <goal>build</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>push-images</id>
+                        <phase>deploy</phase>
+                        <goals>
+                            <goal>push</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>docker-start-for-it</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>start</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>docker-stop-for-it</id>
+                        <phase>post-integration-test</phase>
+                        <goals>
+                            <goal>stop</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.jacoco</groupId>
+                <artifactId>jacoco-maven-plugin</artifactId>
+                <version>0.8.5</version>
+                <configuration>
+                    <dumpOnExit>true</dumpOnExit>
+                    <append>true</append>
+                    <includes>
+                        <include>org/onap/policy/clamp/**</include>
+                    </includes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>pre-unit-test</id>
+                        <goals>
+                            <goal>prepare-agent</goal>
+                        </goals>
+                        <configuration>
+                            <destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile>
+                            <propertyName>surefireArgLine</propertyName>
+                            <!-- <append>true</append> -->
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>pre-integration-test</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>prepare-agent</goal>
+                        </goals>
+                        <configuration>
+                            <destFile>${project.build.directory}/coverage-reports/jacoco-it.exec</destFile>
+                            <propertyName>failsafeArgLine</propertyName>
+                            <!-- <append>true</append> -->
+                            <!-- Need to overwrite the policy integration parent flag -->
+                            <skip>false</skip>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <goals>
+                            <goal>merge</goal>
+                        </goals>
+                        <phase>post-integration-test</phase>
+                        <configuration>
+                            <fileSets>
+                                <fileSet
+                                        implementation="org.apache.maven.shared.model.fileset.FileSet">
+                                    <directory>${project.build.directory}/coverage-reports</directory>
+                                    <includes>
+                                        <include>*.exec</include>
+                                    </includes>
+                                </fileSet>
+                            </fileSets>
+                            <destFile>${project.build.directory}/jacoco.exec</destFile>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>report-xml</id>
+                        <goals>
+                            <goal>report</goal>
+                        </goals>
+                        <configuration>
+                            <!-- Setting explicit path, so that we remember where it picks them up from -->
+                            <dataFile>${project.build.directory}/jacoco.exec</dataFile>
+                            <outputDirectory>${project.build.directory}/jacoco-html-xml-reports</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- This plugin will be useful when we will have multi-modules project -->
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>versions-maven-plugin</artifactId>
+                <version>1.3.1</version>
+            </plugin>
+
+            <plugin>
+                <groupId>com.github.eirslett</groupId>
+                <artifactId>frontend-maven-plugin</artifactId>
+                <version>1.11.3</version>
+                <configuration>
+                    <installDirectory>${project.build.directory}/${ui.react.src}</installDirectory>
+                    <npmDownloadRoot>${repo.npm}</npmDownloadRoot>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>install_node_and_npm</id>
+                        <goals>
+                            <goal>install-node-and-npm</goal>
+                        </goals>
+                        <phase>generate-sources</phase>
+                        <configuration>
+                            <nodeVersion>v14.16.1</nodeVersion>
+                            <npmVersion>6.14.13</npmVersion>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>npm_install</id>
+                        <goals>
+                            <goal>npm</goal>
+                        </goals>
+                        <phase>compile</phase>
+                        <configuration>
+                            <workingDirectory>${project.build.directory}/${ui.react.src}</workingDirectory>
+                            <arguments>install</arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>npm_test</id>
+                        <goals>
+                            <goal>npm</goal>
+                        </goals>
+                        <phase>test</phase>
+                        <configuration>
+                            <skip>${maven.test.skip}</skip>
+                            <arguments>run-script test:coverage</arguments>
+                            <workingDirectory>${project.build.directory}/${ui.react.src}</workingDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>npm_install_lib</id>
+                        <goals>
+                            <goal>npm</goal>
+                        </goals>
+                        <phase>deploy</phase>
+                        <configuration>
+                            <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
+                            <arguments>install</arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>npm_build_lib</id>
+                        <goals>
+                            <goal>npm</goal>
+                        </goals>
+                        <phase>deploy</phase>
+                        <configuration>
+                            <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
+                            <arguments>run build</arguments>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>npm_publish</id>
+                        <goals>
+                            <goal>npm</goal>
+                        </goals>
+                        <phase>deploy</phase>
+                        <configuration>
+                            <workingDirectory>${project.build.directory}/${ui.react.lib.src}</workingDirectory>
+                            <arguments>publish</arguments>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>11</source>
+                    <target>11</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.sonarsource.scanner.maven</groupId>
+                <artifactId>sonar-maven-plugin</artifactId>
+                <version>3.7.0.1746</version>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>1.3.2</version>
+                <executions>
+                    <execution>
+                        <id>libIndexCheck</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <executable>bash</executable>
+                    <arguments>
+                        <argument>${project.basedir}/src/main/script/checkLibIndex.sh</argument>
+                    </arguments>
+                </configuration>
+            </plugin>
+            <!-- Plugin to generate a X509 Certificate for https tests  -->
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>keytool-maven-plugin</artifactId>
+                <version>1.5</version>
+                <executions>
+                    <execution>
+                        <id>add-certificate-for-dev</id>
+                        <configuration>
+                            <keystore>${project.build.directory}/classes/clds/aaf/org.onap.clamp.p12</keystore>
+                            <storepass>China in the Spring</storepass>
+                            <alias>clamptest</alias>
+                            <storetype>PKCS12</storetype>
+                            <keyalg>RSA</keyalg>
+                            <dname>cn=CN, ou=OU, o=O, c=C</dname>
+                            <validity>365</validity>
+                        </configuration>
+                        <goals>
+                            <goal>generateKeyPair</goal>
+                        </goals>
+                        <phase>generate-resources</phase>
+                    </execution>
+                    <execution>
+                        <id>add-certificate-for-test</id>
+                        <configuration>
+                            <keystore>${project.build.directory}/test-classes/clds/aaf/org.onap.clamp.p12</keystore>
+                            <storepass>China in the Spring</storepass>
+                            <alias>clamptest</alias>
+                            <storetype>PKCS12</storetype>
+                            <keyalg>RSA</keyalg>
+                            <dname>cn=CN, ou=OU, o=O, c=C</dname>
+                            <validity>365</validity>
+                        </configuration>
+                        <goals>
+                            <goal>generateKeyPair</goal>
+                        </goals>
+                        <phase>generate-test-resources</phase>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/runtime/runtime/src/main/resources/META-INF/resources/swagger.html b/runtime/runtime/src/main/resources/META-INF/resources/swagger.html
new file mode 100644 (file)
index 0000000..b6f49a7
--- /dev/null
@@ -0,0 +1,454 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 1.5.7.1">
+<title>Untitled</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<style>
+/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
+/* Uncomment @import statement below to use as custom stylesheet */
+/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
+audio,canvas,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+script{display:none!important}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+a{background:transparent}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:1em}
+pre{white-space:pre-wrap}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+html,body{font-size:100%}
+body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+img,object,svg{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+.center{margin-left:auto;margin-right:auto}
+.stretch{width:100%}
+.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:none}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite::before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+h1{font-size:2.75em}
+h2{font-size:2.3125em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+h4{font-size:1.4375em}}
+table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
+table thead,table tfoot{background:#f7f8f7}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
+.clearfix::after,.float-group::after{clear:both}
+*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
+*:not(pre)>code.nobreak{word-wrap:normal}
+*:not(pre)>code.nowrap{white-space:nowrap}
+pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
+em em{font-style:normal}
+strong strong{font-weight:400}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menuref{color:#000}
+.menuseq b:not(.caret),.menuref{font-weight:inherit}
+.menuseq{word-spacing:-.02em}
+.menuseq b.caret{font-size:1.25em;line-height:.8}
+.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
+b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
+b.button::before{content:"[";padding:0 3px 0 2px}
+b.button::after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
+#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
+#content{margin-top:1.25em}
+#content::before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
+#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span::before{content:"\00a0\2013\00a0"}
+#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark::before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber::after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc li{line-height:1.3334;margin-top:.3334em}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media screen and (min-width:768px){#toctitle{font-size:1.375em}
+body.toc2{padding-left:15em;padding-right:0}
+#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
+#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
+#toc.toc2>ul{font-size:.9em;margin-bottom:0}
+#toc.toc2 ul ul{margin-left:0;padding-left:1em}
+#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+body.toc2.toc-right{padding-left:0;padding-right:15em}
+body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
+@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+#toc.toc2{width:20em}
+#toc.toc2 #toctitle{font-size:1.375em}
+#toc.toc2>ul{font-size:.95em}
+#toc.toc2 ul ul{padding-left:1.25em}
+body.toc2.toc-right{padding-left:0;padding-right:20em}}
+#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+#content{margin-bottom:.625em}
+.sect1{padding-bottom:.625em}
+@media screen and (min-width:768px){#content{margin-bottom:1.25em}
+.sect1{padding-bottom:1.25em}}
+.sect1:last-child{padding-bottom:0}
+.sect1+.sect1{border-top:1px solid #efefed}
+#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
+.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
+.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
+.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
+.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
+@media screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
+@media screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
+.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
+.listingblock pre.highlightjs{padding:0}
+.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.listingblock>.content{position:relative}
+.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
+.listingblock:hover code[data-lang]::before{display:block}
+.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:#999}
+.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
+table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
+table.pyhltable td.code{padding-left:.75em;padding-right:0}
+pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
+pre.pygments .lineno{display:inline-block;margin-right:.25em}
+table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
+.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
+.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
+.quoteblock .quoteblock blockquote::before{display:none}
+.verseblock{margin:0 1em 1.25em}
+.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract{margin:0 1em 1.25em;display:block}
+.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
+.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{word-spacing:0;line-height:1.6}
+.quoteblock.abstract blockquote::before,.quoteblock.abstract p::before{display:none}
+table.tableblock{max-width:100%;border-collapse:separate}
+p.tableblock:last-child{margin-bottom:0}
+td.tableblock>.content{margin-bottom:-1.25em}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
+table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
+table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
+table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
+table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
+table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
+table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot,table.frame-ends{border-width:1px 0}
+table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd){background:#f8f8f7}
+table.stripes-none tr,table.stripes-odd tr:nth-of-type(even){background:none}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+td>div.verse{white-space:pre}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
+ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
+ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
+ul.unstyled,ol.unstyled{margin-left:0}
+ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
+ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
+ul.inline>li{margin-left:1.25em}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
+td.hdlist1{font-weight:bold;padding-bottom:1.25em}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
+.colist td:not([class]):first-child img{max-width:none}
+.colist td:not([class]):last-child{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
+.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none;display:inline-block}
+a.image object{pointer-events:none}
+sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
+sup.footnote a,sup.footnoteref a{text-decoration:none}
+sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
+#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background-color:#00fafa}
+.black{color:#000}
+.black-background{background-color:#000}
+.blue{color:#0000bf}
+.blue-background{background-color:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background-color:#fa00fa}
+.gray{color:#606060}
+.gray-background{background-color:#7d7d7d}
+.green{color:#006000}
+.green-background{background-color:#007d00}
+.lime{color:#00bf00}
+.lime-background{background-color:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background-color:#7d0000}
+.navy{color:#000060}
+.navy-background{background-color:#00007d}
+.olive{color:#606000}
+.olive-background{background-color:#7d7d00}
+.purple{color:#600060}
+.purple-background{background-color:#7d007d}
+.red{color:#bf0000}
+.red-background{background-color:#fa0000}
+.silver{color:#909090}
+.silver-background{background-color:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background-color:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background-color:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background-color:#fafa00}
+span.icon>.fa{cursor:default}
+a span.icon>.fa{cursor:inherit}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]::after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
+h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
+p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@page{margin:1.25cm .75cm}
+@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+html{font-size:80%}
+a{color:inherit!important;text-decoration:underline!important}
+a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+abbr[title]::after{content:" (" attr(title) ")"}
+pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
+thead{display:table-header-group}
+svg{max-width:100%}
+p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+#toc,.sidebarblock,.exampleblock>.content{background:none!important}
+#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
+body.book #header{text-align:center}
+body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
+body.book #header .details{border:0!important;display:block;padding:0!important}
+body.book #header .details span:first-child{margin-left:0!important}
+body.book #header .details br{display:block}
+body.book #header .details br+span::before{content:none!important}
+body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
+.listingblock code[data-lang]::before{display:block}
+#footer{padding:0 .9375em}
+.hide-on-print{display:none!important}
+.print-only{display:block!important}
+.hide-for-print{display:none!important}
+.show-for-print{display:inherit!important}}
+@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
+.sect1{padding:0!important}
+.sect1+.sect1{border:0}
+#footer{background:none}
+#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
+@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
+</style>
+</head>
+<body class="book">
+<div id="header">
+</div>
+<div id="content">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/overview.adoc[]<br>
+Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/paths.adoc[]<br>
+Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/security.adoc[]<br>
+Unresolved directive in swagger.adoc - include::~\clamp\runtime\target/asciidoc/generated/definitions.adoc[]</p>
+</div>
+</div>
+</div>
+</div>
+<div id="footer">
+<div id="footer-text">
+Last updated 2021-05-06 17:18:25 BST
+</div>
+</div>
+</body>
+</html>
similarity index 97%
rename from src/main/docker/backend/Dockerfile
rename to runtime/src/main/docker/backend/Dockerfile
index 7b6687b..bb96415 100644 (file)
@@ -50,3 +50,4 @@ RUN set -x && \
 USER onap\r
 WORKDIR /opt/policy/clamp/\r
 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-XX:MinRAMPercentage=50.0", "-XX:MaxRAMPercentage=75.0","-jar" ,"./policy-clamp-backend.jar"]\r
+\r
similarity index 95%
rename from src/main/docker/frontend/Dockerfile
rename to runtime/src/main/docker/frontend/Dockerfile
index e674953..1d64d2a 100644 (file)
@@ -1,70 +1,71 @@
-###\r
-# ============LICENSE_START=======================================================\r
-# ONAP CLAMP\r
-# ================================================================================\r
-# Copyright (C) 2019 AT&T Intellectual Property. All rights\r
-#                             reserved.\r
-# ================================================================================\r
-# Licensed under the Apache License, Version 2.0 (the "License");\r
-# you may not use this file except in compliance with the License.\r
-# You may obtain a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
-# limitations under the License.\r
-# ============LICENSE_END============================================\r
-# ===================================================================\r
-#\r
-###\r
-\r
-# build environment\r
-FROM node:12.10.0-alpine as build\r
-WORKDIR /app\r
-#ENV PATH /app/node_modules/.bin:$PATH\r
-COPY onap-policy-clamp-frontend/ /app/\r
-RUN npm install --silent && \\r
-    npm run build\r
-\r
-FROM nginx:1.17.0-alpine\r
-\r
-MAINTAINER "The Onap Team"\r
-LABEL Description="This image contains Clamp frontend"\r
-\r
-ARG http_proxy\r
-ARG https_proxy\r
-ENV HTTP_PROXY=$http_proxy\r
-ENV HTTPS_PROXY=$https_proxy\r
-ENV http_proxy=$HTTP_PROXY\r
-ENV https_proxy=$HTTPS_PROXY\r
-\r
-RUN addgroup onap && \\r
-    adduser -D -G onap clamp && \\r
-    mkdir /var/log/onap && \\r
-    chmod a+rwx /var/log/onap\r
-\r
-COPY --from=build /app/build /usr/share/nginx/html\r
-COPY --from=build /app/ssl /etc/ssl\r
-\r
-RUN rm /etc/nginx/conf.d/default.conf && \\r
-    ln -sf /dev/stdout /var/log/nginx/access.log && \\r
-    ln -sf /dev/stderr /var/log/nginx/error.log\r
-\r
-COPY nginx/nginx.conf /etc/nginx/nginx.conf\r
-COPY nginx/default.conf /etc/nginx/conf.d/default.conf\r
-\r
-WORKDIR /app\r
-\r
-RUN chown -R clamp:onap /app && chmod -R 755 /app && \\r
-        chown -R clamp:onap /var/cache/nginx && \\r
-        chown -R clamp:onap /var/log/nginx && \\r
-        chown -R clamp:onap /etc/nginx/conf.d && \\r
-        touch /var/run/nginx.pid && \\r
-        chown -R clamp:onap /var/run/nginx.pid\r
-\r
-USER clamp\r
-EXPOSE 2443\r
-CMD ["nginx", "-g", "daemon off;"]
\ No newline at end of file
+###
+# ============LICENSE_START=======================================================
+# ONAP CLAMP
+# ================================================================================
+# Copyright (C) 2019 AT&T Intellectual Property. 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.
+# ============LICENSE_END============================================
+# ===================================================================
+#
+###
+
+# build environment
+FROM node:12.10.0-alpine as build
+WORKDIR /app
+#ENV PATH /app/node_modules/.bin:$PATH
+COPY onap-policy-clamp-frontend/ /app/
+RUN npm install --silent && \
+    npm run build
+
+FROM nginx:1.17.0-alpine
+
+MAINTAINER "The Onap Team"
+LABEL Description="This image contains Clamp frontend"
+
+ARG http_proxy
+ARG https_proxy
+ENV HTTP_PROXY=$http_proxy
+ENV HTTPS_PROXY=$https_proxy
+ENV http_proxy=$HTTP_PROXY
+ENV https_proxy=$HTTPS_PROXY
+
+RUN addgroup onap && \
+    adduser -D -G onap clamp && \
+    mkdir /var/log/onap && \
+    chmod a+rwx /var/log/onap
+
+COPY --from=build /app/build /usr/share/nginx/html
+COPY --from=build /app/ssl /etc/ssl
+
+RUN rm /etc/nginx/conf.d/default.conf && \
+    ln -sf /dev/stdout /var/log/nginx/access.log && \
+    ln -sf /dev/stderr /var/log/nginx/error.log
+
+COPY nginx/nginx.conf /etc/nginx/nginx.conf
+COPY nginx/default.conf /etc/nginx/conf.d/default.conf
+
+WORKDIR /app
+
+RUN chown -R clamp:onap /app && chmod -R 755 /app && \
+        chown -R clamp:onap /var/cache/nginx && \
+        chown -R clamp:onap /var/log/nginx && \
+        chown -R clamp:onap /etc/nginx/conf.d && \
+        touch /var/run/nginx.pid && \
+        chown -R clamp:onap /var/run/nginx.pid
+
+USER clamp
+EXPOSE 2443
+CMD ["nginx", "-g", "daemon off;"]
+
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP POLICY-CLAMP\r
- * ================================================================================\r
- * Copyright (C) 2020 Huawei Technologies Co., Ltd.\r
- * ================================================================================\r
- * Modifications Copyright (C) 2021 AT&T.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *      http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END=========================================================\r
- * ================================================================================\r
- *\r
- */\r
-\r
-package org.onap.policy.clamp.clds.client;\r
-\r
-import static java.lang.Boolean.parseBoolean;\r
-\r
-import com.att.eelf.configuration.EELFLogger;\r
-import com.att.eelf.configuration.EELFManager;\r
-import com.google.gson.JsonElement;\r
-import com.google.gson.JsonObject;\r
-import com.google.gson.JsonParser;\r
-import java.io.IOException;\r
-import java.util.Date;\r
-import java.util.Map;\r
-import org.apache.camel.CamelContext;\r
-import org.apache.camel.Exchange;\r
-import org.apache.camel.ProducerTemplate;\r
-import org.apache.camel.builder.ExchangeBuilder;\r
-import org.onap.policy.clamp.clds.exception.cds.CdsParametersException;\r
-import org.onap.policy.clamp.clds.model.cds.CdsBpWorkFlowListResponse;\r
-import org.onap.policy.clamp.clds.util.JsonUtils;\r
-import org.onap.policy.clamp.clds.util.LoggingUtils;\r
-import org.springframework.beans.factory.annotation.Autowired;\r
-import org.springframework.http.HttpStatus;\r
-import org.springframework.stereotype.Component;\r
-\r
-/**\r
- * This class implements the communication with CDS for the service inventory.\r
- */\r
-@Component\r
-public class CdsServices {\r
-\r
-    @Autowired\r
-    CamelContext camelContext;\r
-\r
-    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CdsServices.class);\r
-\r
-    private static final String TYPE = "type";\r
-    private static final String PROPERTIES = "properties";\r
-    private static final String LIST = "list";\r
-\r
-    /**\r
-     * Query CDS to get blueprint's workflow list.\r
-     *\r
-     * @param blueprintName    CDS blueprint name\r
-     * @param blueprintVersion CDS blueprint version\r
-     * @return CdsBpWorkFlowListResponse CDS blueprint's workflow list\r
-     */\r
-    public CdsBpWorkFlowListResponse getBlueprintWorkflowList(String blueprintName, String blueprintVersion) {\r
-        LoggingUtils.setTargetContext("CDS", "getBlueprintWorkflowList");\r
-\r
-        try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {\r
-            Exchange exchangeResponse =\r
-                    producerTemplate.send("direct:get-blueprint-workflow-list", ExchangeBuilder.anExchange(camelContext)\r
-                            .withProperty("blueprintName", blueprintName)\r
-                            .withProperty("blueprintVersion", blueprintVersion)\r
-                            .withProperty("raiseHttpExceptionFlag", false).build());\r
-\r
-            if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))\r
-                    .is2xxSuccessful()) {\r
-                String cdsResponse = (String) exchangeResponse.getIn().getBody();\r
-                logger.info("getBlueprintWorkflowList, response from CDS:" + cdsResponse);\r
-                LoggingUtils.setResponseContext("0", "Get Blueprint workflow list", this.getClass().getName());\r
-                Date startTime = new Date();\r
-                LoggingUtils.setTimeContext(startTime, new Date());\r
-                return JsonUtils.GSON_JPA_MODEL.fromJson(cdsResponse, CdsBpWorkFlowListResponse.class);\r
-            } else {\r
-                logger.error("CDS getBlueprintWorkflowList FAILED");\r
-            }\r
-        } catch (IOException e) {\r
-            logger.error("IOException caught when trying to execute get-blueprint-workflow-list flow", e);\r
-        }\r
-        return null;\r
-    }\r
-\r
-    /**\r
-     * Query CDS to get input properties of workflow.\r
-     *\r
-     * @param blueprintName    CDS blueprint name\r
-     * @param blueprintVersion CDS blueprint name\r
-     * @param workflow         CDS blueprint's workflow\r
-     * @return input properties in json format\r
-     */\r
-    public JsonObject getWorkflowInputProperties(String blueprintName, String blueprintVersion,\r
-                                                 String workflow) {\r
-        LoggingUtils.setTargetContext("CDS", "getWorkflowInputProperties");\r
-\r
-        try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {\r
-            Exchange exchangeResponse = producerTemplate\r
-                    .send("direct:get-blueprint-workflow-input-properties", ExchangeBuilder.anExchange(camelContext)\r
-                            .withBody(getCdsPayloadForWorkFlow(blueprintName, blueprintVersion, workflow))\r
-                            .withProperty("raiseHttpExceptionFlag", false).build());\r
-            if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))\r
-                    .is2xxSuccessful()) {\r
-                String cdsResponse = (String) exchangeResponse.getIn().getBody();\r
-                logger.info("getWorkflowInputProperties, response from CDS:" + cdsResponse);\r
-                LoggingUtils\r
-                        .setResponseContext("0", "Get Blueprint workflow input properties", this.getClass().getName());\r
-                Date startTime = new Date();\r
-                LoggingUtils.setTimeContext(startTime, new Date());\r
-                return parseCdsResponse(cdsResponse);\r
-            } else {\r
-                logger.error("CDS getWorkflowInputProperties FAILED");\r
-            }\r
-        } catch (IOException e) {\r
-            logger.error("IOException caught when trying to execute get-blueprint-workflow-input-properties flow", e);\r
-        }\r
-        return null;\r
-    }\r
-\r
-    protected JsonObject parseCdsResponse(String response) {\r
-        JsonObject root = JsonParser.parseString(response).getAsJsonObject();\r
-        JsonObject inputs = root.getAsJsonObject("workFlowData").getAsJsonObject("inputs");\r
-        JsonObject dataTypes = root.getAsJsonObject("dataTypes");\r
-\r
-        JsonObject workFlowProperties = new JsonObject();\r
-        workFlowProperties.add("inputs", getInputProperties(inputs, dataTypes, new JsonObject()));\r
-        return workFlowProperties;\r
-    }\r
-\r
-    private JsonObject getInputProperties(JsonObject inputs, JsonObject dataTypes, JsonObject inputObject) {\r
-        if (inputs == null) {\r
-            return inputObject;\r
-        }\r
-\r
-        for (Map.Entry<String, JsonElement> entry : inputs.entrySet()) {\r
-            String key = entry.getKey();\r
-            JsonObject inputProperty = inputs.getAsJsonObject(key);\r
-            String type = inputProperty.get(TYPE).getAsString();\r
-            if (isComplexType(type, dataTypes)) {\r
-                inputObject.add(key, handleComplexType(type, dataTypes));\r
-            } else if (LIST.equalsIgnoreCase(type)) {\r
-                handleListType(key, inputProperty, dataTypes, inputObject);\r
-            } else if (isInputParam(inputProperty)) {\r
-                inputObject.add(key, entry.getValue());\r
-            }\r
-        }\r
-        return inputObject;\r
-    }\r
-\r
-    private void handleListType(String propertyName,\r
-                                JsonObject inputProperty,\r
-                                JsonObject dataTypes,\r
-                                JsonObject inputObject) {\r
-        if (inputProperty.get("entry_schema") == null) {\r
-            throw new CdsParametersException("Entry schema is null for " + propertyName);\r
-        }\r
-\r
-        String type = inputProperty.get("entry_schema").getAsJsonObject().get(\r
-                TYPE).getAsString();\r
-        if (dataTypes != null && dataTypes.get(type) != null) {\r
-            JsonObject jsonObject = new JsonObject();\r
-            jsonObject.addProperty(TYPE, LIST);\r
-            jsonObject.add(PROPERTIES, getPropertiesObject(type, dataTypes));\r
-            inputObject.add(propertyName, jsonObject);\r
-        } else if (isInputParam(inputProperty)) {\r
-            inputObject.add(propertyName, inputProperty);\r
-        }\r
-    }\r
-\r
-    private JsonObject handleComplexType(String key, JsonObject dataTypes) {\r
-        JsonObject jsonObject = new JsonObject();\r
-        jsonObject.addProperty(TYPE, "object");\r
-        jsonObject.add(PROPERTIES, getPropertiesObject(key, dataTypes));\r
-        return jsonObject;\r
-    }\r
-\r
-    private JsonObject getPropertiesObject(String key, JsonObject dataTypes) {\r
-        JsonObject properties = dataTypes.get(key).getAsJsonObject().get(PROPERTIES).getAsJsonObject();\r
-        JsonObject object = new JsonObject();\r
-        getInputProperties(properties, dataTypes, object);\r
-        return object;\r
-    }\r
-\r
-    private boolean isComplexType(String type, JsonObject dataTypes) {\r
-        if (dataTypes == null) {\r
-            return false;\r
-        }\r
-        return dataTypes.get(type) != null;\r
-    }\r
-\r
-    private boolean isInputParam(JsonObject inputProperty) {\r
-        JsonElement inputParam = inputProperty.get("input-param");\r
-        if (inputParam == null) {\r
-            return false;\r
-        }\r
-        return parseBoolean(inputParam.getAsString());\r
-    }\r
-\r
-    /**\r
-     * Creates payload to query CDS to get workflow input properties.\r
-     *\r
-     * @param blueprintName CDS blueprint name\r
-     * @param version       CDS blueprint version\r
-     * @param workflow      CDS blueprint workflow\r
-     * @return returns payload in json format\r
-     */\r
-    public String getCdsPayloadForWorkFlow(String blueprintName, String version, String workflow) {\r
-        JsonObject jsonObject = new JsonObject();\r
-        jsonObject.addProperty("blueprintName", blueprintName);\r
-        jsonObject.addProperty("version", version);\r
-        jsonObject.addProperty("returnContent", "json");\r
-        jsonObject.addProperty("workflowName", workflow);\r
-        jsonObject.addProperty("specType", "TOSCA");\r
-        return jsonObject.toString();\r
-    }\r
-}\r
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 Huawei Technologies Co., Ltd.
+ * ================================================================================
+ * Modifications Copyright (C) 2021 AT&T.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ * ================================================================================
+ *
+ */
+
+package org.onap.policy.clamp.clds.client;
+
+import static java.lang.Boolean.parseBoolean;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import java.io.IOException;
+import java.util.Date;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.ExchangeBuilder;
+import org.onap.policy.clamp.clds.exception.cds.CdsParametersException;
+import org.onap.policy.clamp.clds.model.cds.CdsBpWorkFlowListResponse;
+import org.onap.policy.clamp.clds.util.JsonUtils;
+import org.onap.policy.clamp.clds.util.LoggingUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Component;
+
+/**
+ * This class implements the communication with CDS for the service inventory.
+ */
+@Component
+public class CdsServices {
+
+    @Autowired
+    CamelContext camelContext;
+
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(CdsServices.class);
+
+    private static final String TYPE = "type";
+    private static final String PROPERTIES = "properties";
+    private static final String LIST = "list";
+
+    /**
+     * Query CDS to get blueprint's workflow list.
+     *
+     * @param blueprintName    CDS blueprint name
+     * @param blueprintVersion CDS blueprint version
+     * @return CdsBpWorkFlowListResponse CDS blueprint's workflow list
+     */
+    public CdsBpWorkFlowListResponse getBlueprintWorkflowList(String blueprintName, String blueprintVersion) {
+        LoggingUtils.setTargetContext("CDS", "getBlueprintWorkflowList");
+
+        try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {
+            Exchange exchangeResponse =
+                    producerTemplate.send("direct:get-blueprint-workflow-list", ExchangeBuilder.anExchange(camelContext)
+                            .withProperty("blueprintName", blueprintName)
+                            .withProperty("blueprintVersion", blueprintVersion)
+                            .withProperty("raiseHttpExceptionFlag", false).build());
+
+            if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
+                    .is2xxSuccessful()) {
+                String cdsResponse = (String) exchangeResponse.getIn().getBody();
+                logger.info("getBlueprintWorkflowList, response from CDS:" + cdsResponse);
+                LoggingUtils.setResponseContext("0", "Get Blueprint workflow list", this.getClass().getName());
+                Date startTime = new Date();
+                LoggingUtils.setTimeContext(startTime, new Date());
+                return JsonUtils.GSON_JPA_MODEL.fromJson(cdsResponse, CdsBpWorkFlowListResponse.class);
+            } else {
+                logger.error("CDS getBlueprintWorkflowList FAILED");
+            }
+        } catch (IOException e) {
+            logger.error("IOException caught when trying to execute get-blueprint-workflow-list flow", e);
+        }
+        return null;
+    }
+
+    /**
+     * Query CDS to get input properties of workflow.
+     *
+     * @param blueprintName    CDS blueprint name
+     * @param blueprintVersion CDS blueprint name
+     * @param workflow         CDS blueprint's workflow
+     * @return input properties in json format
+     */
+    public JsonObject getWorkflowInputProperties(String blueprintName, String blueprintVersion,
+                                                 String workflow) {
+        LoggingUtils.setTargetContext("CDS", "getWorkflowInputProperties");
+
+        try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {
+            Exchange exchangeResponse = producerTemplate
+                    .send("direct:get-blueprint-workflow-input-properties", ExchangeBuilder.anExchange(camelContext)
+                            .withBody(getCdsPayloadForWorkFlow(blueprintName, blueprintVersion, workflow))
+                            .withProperty("raiseHttpExceptionFlag", false).build());
+            if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
+                    .is2xxSuccessful()) {
+                String cdsResponse = (String) exchangeResponse.getIn().getBody();
+                logger.info("getWorkflowInputProperties, response from CDS:" + cdsResponse);
+                LoggingUtils
+                        .setResponseContext("0", "Get Blueprint workflow input properties", this.getClass().getName());
+                Date startTime = new Date();
+                LoggingUtils.setTimeContext(startTime, new Date());
+                return parseCdsResponse(cdsResponse);
+            } else {
+                logger.error("CDS getWorkflowInputProperties FAILED");
+            }
+        } catch (IOException e) {
+            logger.error("IOException caught when trying to execute get-blueprint-workflow-input-properties flow", e);
+        }
+        return null;
+    }
+
+    protected JsonObject parseCdsResponse(String response) {
+        JsonObject root = JsonParser.parseString(response).getAsJsonObject();
+        JsonObject inputs = root.getAsJsonObject("workFlowData").getAsJsonObject("inputs");
+        JsonObject dataTypes = root.getAsJsonObject("dataTypes");
+
+        JsonObject workFlowProperties = new JsonObject();
+        workFlowProperties.add("inputs", getInputProperties(inputs, dataTypes, new JsonObject()));
+        return workFlowProperties;
+    }
+
+    private JsonObject getInputProperties(JsonObject inputs, JsonObject dataTypes, JsonObject inputObject) {
+        if (inputs == null) {
+            return inputObject;
+        }
+
+        for (Map.Entry<String, JsonElement> entry : inputs.entrySet()) {
+            String key = entry.getKey();
+            JsonObject inputProperty = inputs.getAsJsonObject(key);
+            String type = inputProperty.get(TYPE).getAsString();
+            if (isComplexType(type, dataTypes)) {
+                inputObject.add(key, handleComplexType(type, dataTypes));
+            } else if (LIST.equalsIgnoreCase(type)) {
+                handleListType(key, inputProperty, dataTypes, inputObject);
+            } else if (isInputParam(inputProperty)) {
+                inputObject.add(key, entry.getValue());
+            }
+        }
+        return inputObject;
+    }
+
+    private void handleListType(String propertyName,
+                                JsonObject inputProperty,
+                                JsonObject dataTypes,
+                                JsonObject inputObject) {
+        if (inputProperty.get("entry_schema") == null) {
+            throw new CdsParametersException("Entry schema is null for " + propertyName);
+        }
+
+        String type = inputProperty.get("entry_schema").getAsJsonObject().get(
+                TYPE).getAsString();
+        if (dataTypes != null && dataTypes.get(type) != null) {
+            JsonObject jsonObject = new JsonObject();
+            jsonObject.addProperty(TYPE, LIST);
+            jsonObject.add(PROPERTIES, getPropertiesObject(type, dataTypes));
+            inputObject.add(propertyName, jsonObject);
+        } else if (isInputParam(inputProperty)) {
+            inputObject.add(propertyName, inputProperty);
+        }
+    }
+
+    private JsonObject handleComplexType(String key, JsonObject dataTypes) {
+        JsonObject jsonObject = new JsonObject();
+        jsonObject.addProperty(TYPE, "object");
+        jsonObject.add(PROPERTIES, getPropertiesObject(key, dataTypes));
+        return jsonObject;
+    }
+
+    private JsonObject getPropertiesObject(String key, JsonObject dataTypes) {
+        JsonObject properties = dataTypes.get(key).getAsJsonObject().get(PROPERTIES).getAsJsonObject();
+        JsonObject object = new JsonObject();
+        getInputProperties(properties, dataTypes, object);
+        return object;
+    }
+
+    private boolean isComplexType(String type, JsonObject dataTypes) {
+        if (dataTypes == null) {
+            return false;
+        }
+        return dataTypes.get(type) != null;
+    }
+
+    private boolean isInputParam(JsonObject inputProperty) {
+        JsonElement inputParam = inputProperty.get("input-param");
+        if (inputParam == null) {
+            return false;
+        }
+        return parseBoolean(inputParam.getAsString());
+    }
+
+    /**
+     * Creates payload to query CDS to get workflow input properties.
+     *
+     * @param blueprintName CDS blueprint name
+     * @param version       CDS blueprint version
+     * @param workflow      CDS blueprint workflow
+     * @return returns payload in json format
+     */
+    public String getCdsPayloadForWorkFlow(String blueprintName, String version, String workflow) {
+        JsonObject jsonObject = new JsonObject();
+        jsonObject.addProperty("blueprintName", blueprintName);
+        jsonObject.addProperty("version", version);
+        jsonObject.addProperty("returnContent", "json");
+        jsonObject.addProperty("workflowName", workflow);
+        jsonObject.addProperty("specType", "TOSCA");
+        return jsonObject.toString();
+    }
+}
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP POLICY-CLAMP\r
- * ================================================================================\r
- * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. All rights\r
- *                             reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END============================================\r
- * Modifications copyright (c) 2018 Nokia\r
- * ===================================================================\r
- *\r
- */\r
-\r
-package org.onap.policy.clamp.clds.client;\r
-\r
-import com.att.eelf.configuration.EELFLogger;\r
-import com.att.eelf.configuration.EELFManager;\r
-import java.io.IOException;\r
-import java.util.Date;\r
-import org.apache.camel.CamelContext;\r
-import org.apache.camel.Exchange;\r
-import org.apache.camel.ProducerTemplate;\r
-import org.apache.camel.builder.ExchangeBuilder;\r
-import org.json.simple.JSONArray;\r
-import org.json.simple.JSONObject;\r
-import org.json.simple.parser.JSONParser;\r
-import org.json.simple.parser.ParseException;\r
-import org.onap.policy.clamp.clds.config.ClampProperties;\r
-import org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse;\r
-import org.onap.policy.clamp.clds.util.JsonUtils;\r
-import org.onap.policy.clamp.clds.util.LoggingUtils;\r
-import org.springframework.beans.factory.annotation.Autowired;\r
-import org.springframework.http.HttpStatus;\r
-import org.springframework.stereotype.Component;\r
-\r
-/**\r
- * This class implements the communication with DCAE for the service inventory.\r
- */\r
-@Component\r
-public class DcaeInventoryServices {\r
-\r
-    @Autowired\r
-    CamelContext camelContext;\r
-\r
-    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeInventoryServices.class);\r
-    protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();\r
-    protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();\r
-    public static final String DCAE_INVENTORY_URL = "dcae.inventory.url";\r
-    public static final String DCAE_INVENTORY_RETRY_INTERVAL = "dcae.intentory.retry.interval";\r
-    public static final String DCAE_INVENTORY_RETRY_LIMIT = "dcae.intentory.retry.limit";\r
-    private final ClampProperties refProp;\r
-\r
-    /**\r
-     * Constructor.\r
-     */\r
-    @Autowired\r
-    public DcaeInventoryServices(ClampProperties refProp) {\r
-        this.refProp = refProp;\r
-    }\r
-\r
-    private int getTotalCountFromDcaeInventoryResponse(String responseStr) throws ParseException {\r
-        JSONParser parser = new JSONParser();\r
-        Object obj0 = parser.parse(responseStr);\r
-        JSONObject jsonObj = (JSONObject) obj0;\r
-        Long totalCount = (Long) jsonObj.get("totalCount");\r
-        return totalCount.intValue();\r
-    }\r
-\r
-    private DcaeInventoryResponse getItemsFromDcaeInventoryResponse(String responseStr) throws ParseException {\r
-        JSONParser parser = new JSONParser();\r
-        Object obj0 = parser.parse(responseStr);\r
-        JSONObject jsonObj = (JSONObject) obj0;\r
-        JSONArray itemsArray = (JSONArray) jsonObj.get("items");\r
-        JSONObject dcaeServiceType0 = (JSONObject) itemsArray.get(0);\r
-        return JsonUtils.GSON.fromJson(dcaeServiceType0.toString(), DcaeInventoryResponse.class);\r
-    }\r
-\r
-    /**\r
-     * DO a query to DCAE to get some Information.\r
-     *\r
-     * @param artifactName The artifact Name\r
-     * @param serviceUuid  The service UUID\r
-     * @param resourceUuid The resource UUID\r
-     * @return The DCAE inventory for the artifact in DcaeInventoryResponse\r
-     * @throws IOException    In case of issues with the stream\r
-     * @throws ParseException In case of issues with the Json parsing\r
-     */\r
-    public DcaeInventoryResponse getDcaeInformation(String artifactName, String serviceUuid, String resourceUuid)\r
-            throws IOException, ParseException, InterruptedException {\r
-        LoggingUtils.setTargetContext("DCAE", "getDcaeInformation");\r
-\r
-        int retryInterval = 0;\r
-        int retryLimit = 1;\r
-        if (refProp.getStringValue(DCAE_INVENTORY_RETRY_LIMIT) != null) {\r
-            retryLimit = Integer.valueOf(refProp.getStringValue(DCAE_INVENTORY_RETRY_LIMIT));\r
-        }\r
-        if (refProp.getStringValue(DCAE_INVENTORY_RETRY_INTERVAL) != null) {\r
-            retryInterval = Integer.valueOf(refProp.getStringValue(DCAE_INVENTORY_RETRY_INTERVAL));\r
-        }\r
-        for (int i = 0; i < retryLimit; i++) {\r
-            metricsLogger.info("Attempt n°" + i + " to contact DCAE inventory");\r
-            try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {\r
-                Exchange exchangeResponse = producerTemplate\r
-                        .send("direct:get-dcae-blueprint-inventory", ExchangeBuilder.anExchange(camelContext)\r
-                                .withProperty("blueprintResourceId", resourceUuid)\r
-                                .withProperty("blueprintServiceId", serviceUuid)\r
-                                .withProperty("blueprintName", artifactName)\r
-                                .withProperty("raiseHttpExceptionFlag", false).build());\r
-\r
-                if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))\r
-                        .is2xxSuccessful()) {\r
-                    String dcaeResponse = (String) exchangeResponse.getIn().getBody();\r
-                    int totalCount = getTotalCountFromDcaeInventoryResponse(dcaeResponse);\r
-                    metricsLogger.info("getDcaeInformation complete: totalCount returned=" + totalCount);\r
-                    if (totalCount > 0) {\r
-                        logger.info("getDcaeInformation, answer from DCAE inventory:" + dcaeResponse);\r
-                        LoggingUtils.setResponseContext("0", "Get Dcae Information success", this.getClass().getName());\r
-                        Date startTime = new Date();\r
-                        LoggingUtils.setTimeContext(startTime, new Date());\r
-                        return getItemsFromDcaeInventoryResponse(dcaeResponse);\r
-                    } else {\r
-                        logger.info("Dcae inventory totalCount returned is 0, so waiting " + retryInterval\r
-                                + "ms before retrying ...");\r
-                        // wait for a while and try to connect to DCAE again\r
-                        Thread.sleep(retryInterval);\r
-                    }\r
-                }\r
-            }\r
-        }\r
-        logger.warn("Dcae inventory totalCount returned is still 0, after " + retryLimit + " attempts, returning NULL");\r
-        return null;\r
-    }\r
-}\r
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP POLICY-CLAMP
+ * ================================================================================
+ * Copyright (C) 2017-2018, 2021 AT&T Intellectual Property. 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.
+ * ============LICENSE_END============================================
+ * Modifications copyright (c) 2018 Nokia
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.clds.client;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import java.io.IOException;
+import java.util.Date;
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.ExchangeBuilder;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
+import org.onap.policy.clamp.clds.config.ClampProperties;
+import org.onap.policy.clamp.clds.model.dcae.DcaeInventoryResponse;
+import org.onap.policy.clamp.clds.util.JsonUtils;
+import org.onap.policy.clamp.clds.util.LoggingUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Component;
+
+/**
+ * This class implements the communication with DCAE for the service inventory.
+ */
+@Component
+public class DcaeInventoryServices {
+
+    @Autowired
+    CamelContext camelContext;
+
+    protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DcaeInventoryServices.class);
+    protected static final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+    protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+    public static final String DCAE_INVENTORY_URL = "dcae.inventory.url";
+    public static final String DCAE_INVENTORY_RETRY_INTERVAL = "dcae.intentory.retry.interval";
+    public static final String DCAE_INVENTORY_RETRY_LIMIT = "dcae.intentory.retry.limit";
+    private final ClampProperties refProp;
+
+    /**
+     * Constructor.
+     */
+    @Autowired
+    public DcaeInventoryServices(ClampProperties refProp) {
+        this.refProp = refProp;
+    }
+
+    private int getTotalCountFromDcaeInventoryResponse(String responseStr) throws ParseException {
+        JSONParser parser = new JSONParser();
+        Object obj0 = parser.parse(responseStr);
+        JSONObject jsonObj = (JSONObject) obj0;
+        Long totalCount = (Long) jsonObj.get("totalCount");
+        return totalCount.intValue();
+    }
+
+    private DcaeInventoryResponse getItemsFromDcaeInventoryResponse(String responseStr) throws ParseException {
+        JSONParser parser = new JSONParser();
+        Object obj0 = parser.parse(responseStr);
+        JSONObject jsonObj = (JSONObject) obj0;
+        JSONArray itemsArray = (JSONArray) jsonObj.get("items");
+        JSONObject dcaeServiceType0 = (JSONObject) itemsArray.get(0);
+        return JsonUtils.GSON.fromJson(dcaeServiceType0.toString(), DcaeInventoryResponse.class);
+    }
+
+    /**
+     * DO a query to DCAE to get some Information.
+     *
+     * @param artifactName The artifact Name
+     * @param serviceUuid  The service UUID
+     * @param resourceUuid The resource UUID
+     * @return The DCAE inventory for the artifact in DcaeInventoryResponse
+     * @throws IOException    In case of issues with the stream
+     * @throws ParseException In case of issues with the Json parsing
+     */
+    public DcaeInventoryResponse getDcaeInformation(String artifactName, String serviceUuid, String resourceUuid)
+            throws IOException, ParseException, InterruptedException {
+        LoggingUtils.setTargetContext("DCAE", "getDcaeInformation");
+
+        int retryInterval = 0;
+        int retryLimit = 1;
+        if (refProp.getStringValue(DCAE_INVENTORY_RETRY_LIMIT) != null) {
+            retryLimit = Integer.valueOf(refProp.getStringValue(DCAE_INVENTORY_RETRY_LIMIT));
+        }
+        if (refProp.getStringValue(DCAE_INVENTORY_RETRY_INTERVAL) != null) {
+            retryInterval = Integer.valueOf(refProp.getStringValue(DCAE_INVENTORY_RETRY_INTERVAL));
+        }
+        for (int i = 0; i < retryLimit; i++) {
+            metricsLogger.info("Attempt n°" + i + " to contact DCAE inventory");
+            try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) {
+                Exchange exchangeResponse = producerTemplate
+                        .send("direct:get-dcae-blueprint-inventory", ExchangeBuilder.anExchange(camelContext)
+                                .withProperty("blueprintResourceId", resourceUuid)
+                                .withProperty("blueprintServiceId", serviceUuid)
+                                .withProperty("blueprintName", artifactName)
+                                .withProperty("raiseHttpExceptionFlag", false).build());
+
+                if (HttpStatus.valueOf((Integer) exchangeResponse.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE))
+                        .is2xxSuccessful()) {
+                    String dcaeResponse = (String) exchangeResponse.getIn().getBody();
+                    int totalCount = getTotalCountFromDcaeInventoryResponse(dcaeResponse);
+                    metricsLogger.info("getDcaeInformation complete: totalCount returned=" + totalCount);
+                    if (totalCount > 0) {
+                        logger.info("getDcaeInformation, answer from DCAE inventory:" + dcaeResponse);
+                        LoggingUtils.setResponseContext("0", "Get Dcae Information success", this.getClass().getName());
+                        Date startTime = new Date();
+                        LoggingUtils.setTimeContext(startTime, new Date());
+                        return getItemsFromDcaeInventoryResponse(dcaeResponse);
+                    } else {
+                        logger.info("Dcae inventory totalCount returned is 0, so waiting " + retryInterval
+                                + "ms before retrying ...");
+                        // wait for a while and try to connect to DCAE again
+                        Thread.sleep(retryInterval);
+                    }
+                }
+            }
+        }
+        logger.warn("Dcae inventory totalCount returned is still 0, after " + retryLimit + " attempts, returning NULL");
+        return null;
+    }
+}
@@ -1,72 +1,72 @@
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP CLAMP\r
- * ================================================================================\r
- * Copyright (C) 2020 AT&T Intellectual Property. All rights\r
- *                             reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END============================================\r
- * ===================================================================\r
- *\r
- */\r
-\r
-package org.onap.policy.clamp.clds.tosca.update.elements;\r
-\r
-import com.google.gson.JsonArray;\r
-import java.util.ArrayList;\r
-\r
-public class ArrayField {\r
-\r
-    private ArrayList<Object> complexFields;\r
-\r
-    /**\r
-     * Constructor from arraryList.\r
-     *\r
-     * @param arrayProperties the array properties\r
-     */\r
-    public ArrayField(ArrayList<Object> arrayProperties) {\r
-        this.complexFields = arrayProperties;\r
-    }\r
-\r
-    /**\r
-     * Each LinkedHashMap is parsed to extract the Array and each of its value. They are casted for the JsonObject.\r
-     *\r
-     * @return JsonArray\r
-     */\r
-    public JsonArray deploy() {\r
-\r
-        JsonArray subPropertyValuesArray = new JsonArray();\r
-        for (Object arrayElement : complexFields) {\r
-            //Cast for each Primitive Type\r
-            String typeValue = arrayElement.getClass().getSimpleName();\r
-            switch (typeValue) {\r
-                case "String":\r
-                    subPropertyValuesArray.add((String) arrayElement);\r
-                    break;\r
-                case "Boolean":\r
-                    subPropertyValuesArray.add((Boolean) arrayElement);\r
-                    break;\r
-                case "Double":\r
-                    subPropertyValuesArray.add((Number) arrayElement);\r
-                    break;\r
-                case "Integer":\r
-                    subPropertyValuesArray.add((Number) arrayElement);\r
-                    break;\r
-                default:\r
-                    break;\r
-            }\r
-        }\r
-        return subPropertyValuesArray;\r
-    }\r
-}\r
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.clds.tosca.update.elements;
+
+import com.google.gson.JsonArray;
+import java.util.ArrayList;
+
+public class ArrayField {
+
+    private ArrayList<Object> complexFields;
+
+    /**
+     * Constructor from arraryList.
+     *
+     * @param arrayProperties the array properties
+     */
+    public ArrayField(ArrayList<Object> arrayProperties) {
+        this.complexFields = arrayProperties;
+    }
+
+    /**
+     * Each LinkedHashMap is parsed to extract the Array and each of its value. They are casted for the JsonObject.
+     *
+     * @return JsonArray
+     */
+    public JsonArray deploy() {
+
+        JsonArray subPropertyValuesArray = new JsonArray();
+        for (Object arrayElement : complexFields) {
+            //Cast for each Primitive Type
+            String typeValue = arrayElement.getClass().getSimpleName();
+            switch (typeValue) {
+                case "String":
+                    subPropertyValuesArray.add((String) arrayElement);
+                    break;
+                case "Boolean":
+                    subPropertyValuesArray.add((Boolean) arrayElement);
+                    break;
+                case "Double":
+                    subPropertyValuesArray.add((Number) arrayElement);
+                    break;
+                case "Integer":
+                    subPropertyValuesArray.add((Number) arrayElement);
+                    break;
+                default:
+                    break;
+            }
+        }
+        return subPropertyValuesArray;
+    }
+}
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP CLAMP\r
- * ================================================================================\r
- * Copyright (C) 2020 AT&T Intellectual Property. All rights\r
- *                             reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END============================================\r
- * ===================================================================\r
- *\r
- */\r
-\r
-package org.onap.policy.clamp.clds.tosca.update.elements;\r
-\r
-import com.google.gson.JsonArray;\r
-import com.google.gson.JsonObject;\r
-import java.util.ArrayList;\r
-import java.util.LinkedHashMap;\r
-import java.util.Map.Entry;\r
-import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplate;\r
-\r
-public class Constraint {\r
-\r
-    private LinkedHashMap<String, Object> constraints;\r
-    private JsonTemplate jsonTemplate;\r
-\r
-    public Constraint(LinkedHashMap<String, Object> constraints, JsonTemplate jsonTemplate) {\r
-        this.jsonTemplate = jsonTemplate;\r
-        this.constraints = constraints;\r
-    }\r
-\r
-    /**\r
-     * Deploy the linkedhashmap which contains the constraints, to extract them one to one.\r
-     *\r
-     * @param jsonSchema   The json Schema\r
-     * @param typeProperty The ype property\r
-     * @return the json object\r
-     */\r
-    public JsonObject deployConstraints(JsonObject jsonSchema, String typeProperty) {\r
-        for (Entry<String, Object> constraint : constraints.entrySet()) {\r
-            this.parseConstraint(jsonSchema, constraint.getKey(), constraint.getValue(), typeProperty);\r
-        }\r
-        return jsonSchema;\r
-    }\r
-\r
-    /**\r
-     * Each case of Tosca constraints below parse specifically the field in the JsonObject.\r
-     *\r
-     * @param jsonSchema      Json Schema\r
-     * @param nameConstraint  Name constraint\r
-     * @param valueConstraint value constraint\r
-     * @param typeProperty    Type Property\r
-     */\r
-    @SuppressWarnings("unchecked")\r
-    public void parseConstraint(JsonObject jsonSchema, String nameConstraint, Object valueConstraint,\r
-                                String typeProperty) {\r
-        switch (nameConstraint) {\r
-            case "equal":\r
-                checkTemplateField("const", jsonSchema, valueConstraint);\r
-                break;\r
-            case "greater_than":\r
-                checkTemplateField("exclusiveMinimum", jsonSchema, valueConstraint);\r
-                break;\r
-            case "greater_or_equal":\r
-                checkTemplateField("minimum", jsonSchema, valueConstraint);\r
-                break;\r
-            case "less_than":\r
-                checkTemplateField("exclusiveMaximum", jsonSchema, valueConstraint);\r
-                break;\r
-            case "less_or_equal":\r
-                checkTemplateField("maximum", jsonSchema, valueConstraint);\r
-                break;\r
-            case "in_range":\r
-                ArrayList<Integer> limitValues = (ArrayList<Integer>) valueConstraint;\r
-                checkTemplateField("minimum", jsonSchema, limitValues.get(0));\r
-                checkTemplateField("maximum", jsonSchema, limitValues.get(1));\r
-                break;\r
-            case "pattern":\r
-                jsonSchema.addProperty(nameConstraint, (String) valueConstraint);\r
-                break;\r
-            case "length":\r
-                this.getSpecificLength(jsonSchema, valueConstraint, typeProperty);\r
-                break;\r
-            case "min_length":\r
-                String[] prefixValues = nameConstraint.split("_");\r
-                this.getLimitValue(jsonSchema, valueConstraint, typeProperty, prefixValues[0]);\r
-                break;\r
-            case "max_length":\r
-                String[] maxtab = nameConstraint.split("_");\r
-                this.getLimitValue(jsonSchema, valueConstraint, typeProperty, maxtab[0]);\r
-                break;\r
-            default://valid_value\r
-                this.getValueArray(jsonSchema, valueConstraint, typeProperty);\r
-                break;\r
-        }\r
-\r
-    }\r
-\r
-    /**\r
-     * To be done.\r
-     *\r
-     * @param jsonSchema   json schema\r
-     * @param fieldValue   field value\r
-     * @param typeProperty For the complex components, get a specific number of items/properties\r
-     */\r
-    public void getSpecificLength(JsonObject jsonSchema, Object fieldValue, String typeProperty) {\r
-        switch (typeProperty.toLowerCase()) {\r
-            case "string":\r
-                checkTemplateField("minLength", jsonSchema, fieldValue);\r
-                checkTemplateField("maxLength", jsonSchema, fieldValue);\r
-                break;\r
-            case "array":\r
-                if (fieldValue.equals(1) && jsonTemplate.hasFields("uniqueItems")) {\r
-                    jsonSchema.addProperty("uniqueItems", true);\r
-                } else {\r
-                    checkTemplateField("minItems", jsonSchema, fieldValue);\r
-                    checkTemplateField("maxItems", jsonSchema, fieldValue);\r
-                }\r
-                break;\r
-            default:// Map && List\r
-                checkTemplateField("minProperties", jsonSchema, fieldValue);\r
-                checkTemplateField("maxProperties", jsonSchema, fieldValue);\r
-                break;\r
-        }\r
-\r
-    }\r
-\r
-    /**\r
-     * To be done.\r
-     *\r
-     * @param jsonSchema   json schema\r
-     * @param fieldValue   field value\r
-     * @param typeProperty type property\r
-     * @param side         Get the limits fieldValue for the properties : depend of the type of the component\r
-     */\r
-    public void getLimitValue(JsonObject jsonSchema, Object fieldValue, String typeProperty, String side) {\r
-        switch (typeProperty) {\r
-            case "string":\r
-                if (side.equals("min")) {\r
-                    checkTemplateField("minLength", jsonSchema, fieldValue);\r
-                } else {\r
-                    checkTemplateField("maxLength", jsonSchema, fieldValue);\r
-                }\r
-                break;\r
-            default:// Array\r
-                if (side.equals("min")) {\r
-                    checkTemplateField("minItems", jsonSchema, fieldValue);\r
-                } else {\r
-                    checkTemplateField("maxItems", jsonSchema, fieldValue);\r
-                }\r
-                break;\r
-        }\r
-\r
-    }\r
-\r
-    /**\r
-     * To be done.\r
-     *\r
-     * @param jsonSchema   Json schema\r
-     * @param fieldValue   field value\r
-     * @param typeProperty Get as Enum the valid values for the property\r
-     */\r
-    public void getValueArray(JsonObject jsonSchema, Object fieldValue, String typeProperty) {\r
-        if (jsonTemplate.hasFields("enum")) {\r
-            JsonArray enumeration = new JsonArray();\r
-            if (typeProperty.equals("string") || typeProperty.equals("String")) {\r
-                ArrayList<String> arrayValues = (ArrayList<String>) fieldValue;\r
-                for (String arrayItem : arrayValues) {\r
-                    enumeration.add(arrayItem);\r
-                }\r
-                jsonSchema.add("enum", enumeration);\r
-            } else {\r
-                ArrayList<Number> arrayValues = (ArrayList<Number>) fieldValue;\r
-                for (Number arrayItem : arrayValues) {\r
-                    enumeration.add(arrayItem);\r
-                }\r
-                jsonSchema.add("enum", enumeration);\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     * To be done.\r
-     *\r
-     * @param field      Field\r
-     * @param jsonSchema Json schema\r
-     * @param fieldValue Simple way to avoid code duplication\r
-     */\r
-    public void checkTemplateField(String field, JsonObject jsonSchema, Object fieldValue) {\r
-        if (jsonTemplate.hasFields(field)) {\r
-            String typeField = fieldValue.getClass().getSimpleName();\r
-            switch (typeField) {\r
-                case "String":\r
-                    jsonSchema.addProperty(field, (String) fieldValue);\r
-                    break;\r
-                case "Integer":\r
-                    jsonSchema.addProperty(field, (Integer) fieldValue);\r
-                    break;\r
-                case "Number":\r
-                    jsonSchema.addProperty(field, (Number) fieldValue);\r
-                    break;\r
-                case "Boolean":\r
-                    jsonSchema.addProperty(field, (Boolean) fieldValue);\r
-                    break;\r
-                default:\r
-                    break;\r
-            }\r
-        }\r
-    }\r
-\r
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.clds.tosca.update.elements;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.Map.Entry;
+import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplate;
+
+public class Constraint {
+
+    private LinkedHashMap<String, Object> constraints;
+    private JsonTemplate jsonTemplate;
+
+    public Constraint(LinkedHashMap<String, Object> constraints, JsonTemplate jsonTemplate) {
+        this.jsonTemplate = jsonTemplate;
+        this.constraints = constraints;
+    }
+
+    /**
+     * Deploy the linkedhashmap which contains the constraints, to extract them one to one.
+     *
+     * @param jsonSchema   The json Schema
+     * @param typeProperty The ype property
+     * @return the json object
+     */
+    public JsonObject deployConstraints(JsonObject jsonSchema, String typeProperty) {
+        for (Entry<String, Object> constraint : constraints.entrySet()) {
+            this.parseConstraint(jsonSchema, constraint.getKey(), constraint.getValue(), typeProperty);
+        }
+        return jsonSchema;
+    }
+
+    /**
+     * Each case of Tosca constraints below parse specifically the field in the JsonObject.
+     *
+     * @param jsonSchema      Json Schema
+     * @param nameConstraint  Name constraint
+     * @param valueConstraint value constraint
+     * @param typeProperty    Type Property
+     */
+    @SuppressWarnings("unchecked")
+    public void parseConstraint(JsonObject jsonSchema, String nameConstraint, Object valueConstraint,
+                                String typeProperty) {
+        switch (nameConstraint) {
+            case "equal":
+                checkTemplateField("const", jsonSchema, valueConstraint);
+                break;
+            case "greater_than":
+                checkTemplateField("exclusiveMinimum", jsonSchema, valueConstraint);
+                break;
+            case "greater_or_equal":
+                checkTemplateField("minimum", jsonSchema, valueConstraint);
+                break;
+            case "less_than":
+                checkTemplateField("exclusiveMaximum", jsonSchema, valueConstraint);
+                break;
+            case "less_or_equal":
+                checkTemplateField("maximum", jsonSchema, valueConstraint);
+                break;
+            case "in_range":
+                ArrayList<Integer> limitValues = (ArrayList<Integer>) valueConstraint;
+                checkTemplateField("minimum", jsonSchema, limitValues.get(0));
+                checkTemplateField("maximum", jsonSchema, limitValues.get(1));
+                break;
+            case "pattern":
+                jsonSchema.addProperty(nameConstraint, (String) valueConstraint);
+                break;
+            case "length":
+                this.getSpecificLength(jsonSchema, valueConstraint, typeProperty);
+                break;
+            case "min_length":
+                String[] prefixValues = nameConstraint.split("_");
+                this.getLimitValue(jsonSchema, valueConstraint, typeProperty, prefixValues[0]);
+                break;
+            case "max_length":
+                String[] maxtab = nameConstraint.split("_");
+                this.getLimitValue(jsonSchema, valueConstraint, typeProperty, maxtab[0]);
+                break;
+            default://valid_value
+                this.getValueArray(jsonSchema, valueConstraint, typeProperty);
+                break;
+        }
+
+    }
+
+    /**
+     * To be done.
+     *
+     * @param jsonSchema   json schema
+     * @param fieldValue   field value
+     * @param typeProperty For the complex components, get a specific number of items/properties
+     */
+    public void getSpecificLength(JsonObject jsonSchema, Object fieldValue, String typeProperty) {
+        switch (typeProperty.toLowerCase()) {
+            case "string":
+                checkTemplateField("minLength", jsonSchema, fieldValue);
+                checkTemplateField("maxLength", jsonSchema, fieldValue);
+                break;
+            case "array":
+                if (fieldValue.equals(1) && jsonTemplate.hasFields("uniqueItems")) {
+                    jsonSchema.addProperty("uniqueItems", true);
+                } else {
+                    checkTemplateField("minItems", jsonSchema, fieldValue);
+                    checkTemplateField("maxItems", jsonSchema, fieldValue);
+                }
+                break;
+            default:// Map && List
+                checkTemplateField("minProperties", jsonSchema, fieldValue);
+                checkTemplateField("maxProperties", jsonSchema, fieldValue);
+                break;
+        }
+
+    }
+
+    /**
+     * To be done.
+     *
+     * @param jsonSchema   json schema
+     * @param fieldValue   field value
+     * @param typeProperty type property
+     * @param side         Get the limits fieldValue for the properties : depend of the type of the component
+     */
+    public void getLimitValue(JsonObject jsonSchema, Object fieldValue, String typeProperty, String side) {
+        switch (typeProperty) {
+            case "string":
+                if (side.equals("min")) {
+                    checkTemplateField("minLength", jsonSchema, fieldValue);
+                } else {
+                    checkTemplateField("maxLength", jsonSchema, fieldValue);
+                }
+                break;
+            default:// Array
+                if (side.equals("min")) {
+                    checkTemplateField("minItems", jsonSchema, fieldValue);
+                } else {
+                    checkTemplateField("maxItems", jsonSchema, fieldValue);
+                }
+                break;
+        }
+
+    }
+
+    /**
+     * To be done.
+     *
+     * @param jsonSchema   Json schema
+     * @param fieldValue   field value
+     * @param typeProperty Get as Enum the valid values for the property
+     */
+    public void getValueArray(JsonObject jsonSchema, Object fieldValue, String typeProperty) {
+        if (jsonTemplate.hasFields("enum")) {
+            JsonArray enumeration = new JsonArray();
+            if (typeProperty.equals("string") || typeProperty.equals("String")) {
+                ArrayList<String> arrayValues = (ArrayList<String>) fieldValue;
+                for (String arrayItem : arrayValues) {
+                    enumeration.add(arrayItem);
+                }
+                jsonSchema.add("enum", enumeration);
+            } else {
+                ArrayList<Number> arrayValues = (ArrayList<Number>) fieldValue;
+                for (Number arrayItem : arrayValues) {
+                    enumeration.add(arrayItem);
+                }
+                jsonSchema.add("enum", enumeration);
+            }
+        }
+    }
+
+    /**
+     * To be done.
+     *
+     * @param field      Field
+     * @param jsonSchema Json schema
+     * @param fieldValue Simple way to avoid code duplication
+     */
+    public void checkTemplateField(String field, JsonObject jsonSchema, Object fieldValue) {
+        if (jsonTemplate.hasFields(field)) {
+            String typeField = fieldValue.getClass().getSimpleName();
+            switch (typeField) {
+                case "String":
+                    jsonSchema.addProperty(field, (String) fieldValue);
+                    break;
+                case "Integer":
+                    jsonSchema.addProperty(field, (Integer) fieldValue);
+                    break;
+                case "Number":
+                    jsonSchema.addProperty(field, (Number) fieldValue);
+                    break;
+                case "Boolean":
+                    jsonSchema.addProperty(field, (Boolean) fieldValue);
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
 }
\ No newline at end of file
@@ -742,7 +742,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
 <div class="sect2">
 <h3 id="_version_information"><a class="anchor" href="#_version_information"></a><a class="link" href="#_version_information">1.1. Version information</a></h3>
 <div class="paragraph">
-<p><em>Version</em> : 6.1.1-SNAPSHOT</p>
+<p><em>Version</em> : 6.1.2-SNAPSHOT</p>
 </div>
 </div>
 <div class="sect2">
@@ -4501,8 +4501,8 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2020-12-10 09:38:32 CET
+Last updated 2021-05-10 12:05:55 IST
 </div>
 </div>
 </body>
-</html>
\ No newline at end of file
+</html>
old mode 100755 (executable)
new mode 100644 (file)
similarity index 95%
rename from src/main/script/checkLibIndex.sh
rename to runtime/src/main/script/checkLibIndex.sh
index 9a28e7d..fef9c1b
@@ -31,9 +31,9 @@ then
 fi
 
 tmpSrcFileList=/tmp/upldateLibIndex.$$.list
-reactUiBaseDir="${baseDir}/ui-react"
-reactLibIndexFile="ui-react-lib/libIndex.js"
-exclusionList="ui-react-lib/libExportExclusions.dat"
+reactUiBaseDir="${baseDir}/runtime/ui-react"
+reactLibIndexFile="runtime/ui-react-lib/libIndex.js"
+exclusionList="runtime/ui-react-lib/libExportExclusions.dat"
 
 
 if [[ ! -d "$reactUiBaseDir" ]]
@@ -1,52 +1,52 @@
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP CLAMP\r
- * ================================================================================\r
- * Copyright (C) 2020 AT&T Intellectual Property. All rights\r
- *                             reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END============================================\r
- * ===================================================================\r
- *\r
- */\r
-\r
-package org.onap.policy.clamp.clds.tosca.update;\r
-\r
-import java.io.IOException;\r
-import java.util.ArrayList;\r
-import java.util.Arrays;\r
-import junit.framework.TestCase;\r
-import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElement;\r
-import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager;\r
-import org.onap.policy.clamp.clds.util.ResourceFileUtils;\r
-\r
-public class ToscaElementTest extends TestCase {\r
-\r
-    /**\r
-     * Test propertiesName.\r
-     *\r
-     * @throws IOException In case of failure\r
-     */\r
-    public void testPropertiesNames() throws IOException {\r
-        ArrayList<String> reference = new ArrayList<>(Arrays.asList("actor", "operation", "target", "payload"));\r
-        JsonTemplateManager jsonTemplateManager =\r
-                new JsonTemplateManager(\r
-                        ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),\r
-                        ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"),\r
-                        ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json"));\r
-        ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor");\r
-        assertEquals(reference, toscaElement.propertiesNames());\r
-    }\r
-\r
-}\r
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.clds.tosca.update;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import junit.framework.TestCase;
+import org.onap.policy.clamp.clds.tosca.update.elements.ToscaElement;
+import org.onap.policy.clamp.clds.tosca.update.templates.JsonTemplateManager;
+import org.onap.policy.clamp.clds.util.ResourceFileUtils;
+
+public class ToscaElementTest extends TestCase {
+
+    /**
+     * Test propertiesName.
+     *
+     * @throws IOException In case of failure
+     */
+    public void testPropertiesNames() throws IOException {
+        ArrayList<String> reference = new ArrayList<>(Arrays.asList("actor", "operation", "target", "payload"));
+        JsonTemplateManager jsonTemplateManager =
+                new JsonTemplateManager(
+                        ResourceFileUtils.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
+                        ResourceFileUtils.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"),
+                        ResourceFileUtils.getResourceAsString("clds/tosca-converter/templates.json"));
+        ToscaElement toscaElement = jsonTemplateManager.getToscaElements().get("onap.datatype.controlloop.Actor");
+        assertEquals(reference, toscaElement.propertiesNames());
+    }
+
+}
-/*-\r
- * ============LICENSE_START=======================================================\r
- * ONAP CLAMP\r
- * ================================================================================\r
- * Copyright (C) 2020 AT&T Intellectual Property. All rights\r
- *                             reserved.\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ============LICENSE_END============================================\r
- * ===================================================================\r
- *\r
- */\r
-\r
-package org.onap.policy.clamp.loop;\r
-\r
-import static org.assertj.core.api.Assertions.assertThat;\r
-import static org.junit.Assert.assertNotNull;\r
-import static org.junit.Assert.assertNull;\r
-import static org.junit.jupiter.api.Assertions.assertEquals;\r
-\r
-import java.util.List;\r
-import java.util.SortedSet;\r
-import javax.transaction.Transactional;\r
-import org.junit.Test;\r
-import org.junit.runner.RunWith;\r
-import org.onap.policy.clamp.clds.Application;\r
-import org.onap.policy.clamp.loop.template.LoopElementModel;\r
-import org.onap.policy.clamp.loop.template.LoopTemplate;\r
-import org.onap.policy.clamp.loop.template.LoopTemplateLoopElementModel;\r
-import org.onap.policy.clamp.loop.template.LoopTemplatesService;\r
-import org.onap.policy.clamp.loop.template.LoopType;\r
-import org.onap.policy.clamp.loop.template.PolicyModel;\r
-import org.springframework.beans.factory.annotation.Autowired;\r
-import org.springframework.boot.test.context.SpringBootTest;\r
-import org.springframework.test.context.junit4.SpringRunner;\r
-\r
-@RunWith(SpringRunner.class)\r
-@SpringBootTest(classes = Application.class)\r
-public class LoopTemplatesServiceItCase {\r
-\r
-    @Autowired\r
-    LoopTemplatesService loopTemplatesService;\r
-\r
-    private static final String POLICY_MODEL_TYPE_1 = "org.onap.test";\r
-    private static final String VERSION = "1.0.0";\r
-\r
-    private LoopElementModel getLoopElementModel(String yaml, String name, String loopElementType,\r
-                                                 String createdBy, PolicyModel policyModel) {\r
-        LoopElementModel model = new LoopElementModel(name, loopElementType, yaml);\r
-        model.setBlueprint("");\r
-        model.setDcaeBlueprintId("");\r
-        model.addPolicyModel(policyModel);\r
-        return model;\r
-    }\r
-\r
-    private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version,\r
-                                       String policyAcronym, String createdBy) {\r
-        return new PolicyModel(policyType, policyModelTosca, version, policyAcronym);\r
-    }\r
-\r
-    private LoopTemplate getLoopTemplate(String name, String blueprint, String createdBy, Integer maxInstancesAllowed) {\r
-        LoopTemplate template =\r
-                new LoopTemplate(name, blueprint, maxInstancesAllowed, null);\r
-        template.addLoopElementModel(getLoopElementModel("yaml", "microService1", "MicroService",\r
-                createdBy, getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", VERSION, "MS1", createdBy)));\r
-        template.setAllowedLoopType(LoopType.OPEN);\r
-        return template;\r
-    }\r
-\r
-    @Test\r
-    @Transactional\r
-    public void shouldSaveOrUpdateLoopTemplate() {\r
-        LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);\r
-        LoopTemplate actualLoopTemplate =\r
-                loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
-\r
-        assertNotNull(actualLoopTemplate);\r
-        assertThat(loopTemplate.getName()).isEqualTo("TemplateName");\r
-        assertThat(loopTemplate.getAllowedLoopType()).isEqualTo(LoopType.OPEN);\r
-    }\r
-\r
-    @Test\r
-    @Transactional\r
-    public void shouldReturnAllLoopTemplates() {\r
-        LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);\r
-        loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
-        List<LoopTemplate> loopTemplateList = loopTemplatesService.getAllLoopTemplates();\r
-\r
-        assertNotNull(loopTemplateList);\r
-    }\r
-\r
-    @Test\r
-    @Transactional\r
-    public void shouldReturnLoopTemplateNames() {\r
-        LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);\r
-        loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
-        List<String> loopTemplateNames = loopTemplatesService.getLoopTemplateNames();\r
-\r
-        assertNotNull(loopTemplateNames);\r
-        assertEquals("TemplateName", loopTemplateNames.get(0));\r
-    }\r
-\r
-    @Test\r
-    @Transactional\r
-    public void shouldReturnLoopTemplate() {\r
-        LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);\r
-        loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
-        LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");\r
-\r
-        assertNotNull(actualLoopTemplate);\r
-        assertThat(loopTemplate).isEqualTo(actualLoopTemplate);\r
-        assertThat(loopTemplate.getName()).isEqualTo(actualLoopTemplate.getName());\r
-        assertThat(loopTemplate.getMaximumInstancesAllowed())\r
-                .isEqualTo(actualLoopTemplate.getMaximumInstancesAllowed());\r
-        SortedSet<LoopTemplateLoopElementModel> loopElementModelsUsed =\r
-                loopTemplate.getLoopElementModelsUsed();\r
-        LoopTemplateLoopElementModel loopTemplateLoopElementModel = loopElementModelsUsed.first();\r
-        assertThat(loopTemplateLoopElementModel.getLoopElementModel().getName())\r
-                .isEqualTo("microService1");\r
-        assertThat(loopTemplateLoopElementModel.getLoopTemplate().getName())\r
-                .isEqualTo("TemplateName");\r
-        assertNull(actualLoopTemplate.getBlueprint());\r
-        assertNull(actualLoopTemplate.getModelService());\r
-    }\r
-\r
-    @Test\r
-    @Transactional\r
-    public void shouldDeleteLoopTemplate() {\r
-        LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);\r
-        loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
-        loopTemplatesService.deleteLoopTemplate("TemplateName");\r
-        LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");\r
-        assertNull(actualLoopTemplate);\r
-    }\r
-\r
-}\r
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.policy.clamp.loop;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.List;
+import java.util.SortedSet;
+import javax.transaction.Transactional;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.policy.clamp.clds.Application;
+import org.onap.policy.clamp.loop.template.LoopElementModel;
+import org.onap.policy.clamp.loop.template.LoopTemplate;
+import org.onap.policy.clamp.loop.template.LoopTemplateLoopElementModel;
+import org.onap.policy.clamp.loop.template.LoopTemplatesService;
+import org.onap.policy.clamp.loop.template.LoopType;
+import org.onap.policy.clamp.loop.template.PolicyModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = Application.class)
+public class LoopTemplatesServiceItCase {
+
+    @Autowired
+    LoopTemplatesService loopTemplatesService;
+
+    private static final String POLICY_MODEL_TYPE_1 = "org.onap.test";
+    private static final String VERSION = "1.0.0";
+
+    private LoopElementModel getLoopElementModel(String yaml, String name, String loopElementType,
+                                                 String createdBy, PolicyModel policyModel) {
+        LoopElementModel model = new LoopElementModel(name, loopElementType, yaml);
+        model.setBlueprint("");
+        model.setDcaeBlueprintId("");
+        model.addPolicyModel(policyModel);
+        return model;
+    }
+
+    private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version,
+                                       String policyAcronym, String createdBy) {
+        return new PolicyModel(policyType, policyModelTosca, version, policyAcronym);
+    }
+
+    private LoopTemplate getLoopTemplate(String name, String blueprint, String createdBy, Integer maxInstancesAllowed) {
+        LoopTemplate template =
+                new LoopTemplate(name, blueprint, maxInstancesAllowed, null);
+        template.addLoopElementModel(getLoopElementModel("yaml", "microService1", "MicroService",
+                createdBy, getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", VERSION, "MS1", createdBy)));
+        template.setAllowedLoopType(LoopType.OPEN);
+        return template;
+    }
+
+    @Test
+    @Transactional
+    public void shouldSaveOrUpdateLoopTemplate() {
+        LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
+        LoopTemplate actualLoopTemplate =
+                loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
+
+        assertNotNull(actualLoopTemplate);
+        assertThat(loopTemplate.getName()).isEqualTo("TemplateName");
+        assertThat(loopTemplate.getAllowedLoopType()).isEqualTo(LoopType.OPEN);
+    }
+
+    @Test
+    @Transactional
+    public void shouldReturnAllLoopTemplates() {
+        LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
+        loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
+        List<LoopTemplate> loopTemplateList = loopTemplatesService.getAllLoopTemplates();
+
+        assertNotNull(loopTemplateList);
+    }
+
+    @Test
+    @Transactional
+    public void shouldReturnLoopTemplateNames() {
+        LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
+        loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
+        List<String> loopTemplateNames = loopTemplatesService.getLoopTemplateNames();
+
+        assertNotNull(loopTemplateNames);
+        assertEquals("TemplateName", loopTemplateNames.get(0));
+    }
+
+    @Test
+    @Transactional
+    public void shouldReturnLoopTemplate() {
+        LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
+        loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
+        LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");
+
+        assertNotNull(actualLoopTemplate);
+        assertThat(loopTemplate).isEqualTo(actualLoopTemplate);
+        assertThat(loopTemplate.getName()).isEqualTo(actualLoopTemplate.getName());
+        assertThat(loopTemplate.getMaximumInstancesAllowed())
+                .isEqualTo(actualLoopTemplate.getMaximumInstancesAllowed());
+        SortedSet<LoopTemplateLoopElementModel> loopElementModelsUsed =
+                loopTemplate.getLoopElementModelsUsed();
+        LoopTemplateLoopElementModel loopTemplateLoopElementModel = loopElementModelsUsed.first();
+        assertThat(loopTemplateLoopElementModel.getLoopElementModel().getName())
+                .isEqualTo("microService1");
+        assertThat(loopTemplateLoopElementModel.getLoopTemplate().getName())
+                .isEqualTo("TemplateName");
+        assertNull(actualLoopTemplate.getBlueprint());
+        assertNull(actualLoopTemplate.getModelService());
+    }
+
+    @Test
+    @Transactional
+    public void shouldDeleteLoopTemplate() {
+        LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "xyz", -1);
+        loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);
+        loopTemplatesService.deleteLoopTemplate("TemplateName");
+        LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");
+        assertNull(actualLoopTemplate);
+    }
+
+}
@@ -2,4 +2,5 @@ FROM  ppodgorsek/robot-framework:3.8.0
 
 USER root
 COPY requirements.txt .
-RUN pip3 install --no-cache-dir -r requirements.txt
\ No newline at end of file
+RUN pip3 install --no-cache-dir -r requirements.txt
+
@@ -1,60 +1,60 @@
-tosca_definitions_version: tosca_simple_yaml_1_0_0\r
-policy_types:\r
-    onap.policies.controlloop.operational.common.Drools:\r
-        derived_from: onap.policies.controlloop.operational.Common\r
-        type_version: 1.0.0\r
-        version: 1.0.0\r
-        description: Operational policies for Drools PDP\r
-        properties:\r
-            controllerName:\r
-                type: String\r
-                description: Drools controller properties\r
-                required: true\r
-data_types:\r
-    onap.datatype.controlloop.Operation:\r
-        derived_from: tosca.datatypes.Root\r
-        description: An operation supported by an actor\r
-        properties:\r
-            id:\r
-                type: String\r
-                description: Unique identifier for the operation\r
-                required: true\r
-                constraints:\r
-                - length: 8\r
-            description:\r
-                type: Array\r
-                description: A user-friendly description of the intent for the operation\r
-                required: false\r
-                constraints:\r
-                - min_length: 5\r
-                - max_length: 7\r
-            test:\r
-                type: Integer\r
-                description: |\r
-                    Overall timeout for executing all the operations. This timeout should equal or exceed the total\r
-                    timeout for each operation listed.\r
-                required: true\r
-                constraints:\r
-                    - greater_than: 7\r
-                    - greater_or_equal: 1\r
-                    - less_than: 7\r
-                    - less_or_equal: 1\r
-            timeout:\r
-                type: Integer\r
-                description: The amount of time for the actor to perform the operation.\r
-                required: true\r
-                constraints:\r
-                - valid_values: [3,4,5.5,6,10]\r
-            retries:\r
-                type: Integer\r
-                description: The number of retries the actor should attempt to perform the operation.\r
-                required: true\r
-                default: 0\r
-                constraints:\r
-                - equal: 5\r
-            success:\r
-                type: String\r
-                description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation.\r
-                required: false\r
-                constraints:\r
-                - valid_values: [VALID,TERMINATED]\r
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+    onap.policies.controlloop.operational.common.Drools:
+        derived_from: onap.policies.controlloop.operational.Common
+        type_version: 1.0.0
+        version: 1.0.0
+        description: Operational policies for Drools PDP
+        properties:
+            controllerName:
+                type: String
+                description: Drools controller properties
+                required: true
+data_types:
+    onap.datatype.controlloop.Operation:
+        derived_from: tosca.datatypes.Root
+        description: An operation supported by an actor
+        properties:
+            id:
+                type: String
+                description: Unique identifier for the operation
+                required: true
+                constraints:
+                - length: 8
+            description:
+                type: Array
+                description: A user-friendly description of the intent for the operation
+                required: false
+                constraints:
+                - min_length: 5
+                - max_length: 7
+            test:
+                type: Integer
+                description: |
+                    Overall timeout for executing all the operations. This timeout should equal or exceed the total
+                    timeout for each operation listed.
+                required: true
+                constraints:
+                    - greater_than: 7
+                    - greater_or_equal: 1
+                    - less_than: 7
+                    - less_or_equal: 1
+            timeout:
+                type: Integer
+                description: The amount of time for the actor to perform the operation.
+                required: true
+                constraints:
+                - valid_values: [3,4,5.5,6,10]
+            retries:
+                type: Integer
+                description: The number of retries the actor should attempt to perform the operation.
+                required: true
+                default: 0
+                constraints:
+                - equal: 5
+            success:
+                type: String
+                description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation.
+                required: false
+                constraints:
+                - valid_values: [VALID,TERMINATED]
-\r
-tosca_definitions_version: tosca_simple_yaml_1_0_0\r
-policy_types:\r
-    onap.policies.controlloop.operational.Common:\r
-        derived_from: tosca.policies.Root\r
-        version: 1.0.0\r
-        description: Operational Policy for Control Loop execution\r
-        properties:\r
-            id:\r
-                type: String\r
-                description: The unique control loop id.\r
-                required: true\r
-            timeout:\r
-                type: Integer\r
-                description: |\r
-                    Overall timeout for executing all the operations. This timeout should equal or exceed the total\r
-                    timeout for each operation listed.\r
-                required: true\r
-            abatement:\r
-                type: Boolean\r
-                description: Whether an abatement event message will be expected for the control loop from DCAE.\r
-                required: true\r
-                default: false\r
-            trigger:\r
-                type: String\r
-                description: Initial operation to execute upon receiving an Onset event message for the Control Loop.\r
-                required: true\r
-            operations:\r
-                type: List\r
-                description: List of operations to be performed when Control Loop is triggered.\r
-                required: true\r
-                entry_schema:\r
-                    type: onap.datatype.controlloop.Operation\r
-    onap.policies.controlloop.operational.common.Drools:\r
-        derived_from: onap.policies.controlloop.operational.Common\r
-        type_version: 1.0.0\r
-        version: 1.0.0\r
-        description: Operational policies for Drools PDP\r
-        properties:\r
-            controllerName:\r
-                type: String\r
-                description: Drools controller properties\r
-                required: false\r
-data_types:\r
-    # TBD if this is needed\r
-    onap.datatype.controlloop.operation.Failure:\r
-        derived_from: tosca.datatypes.Root\r
-        description: Captures information of an operational failure performed for control loop\r
-        properties:\r
-            messages:\r
-                type: String\r
-                description: error message\r
-                required: true\r
-            category:\r
-                type: String\r
-                description: |\r
-                    The category the error occurred in. Whether this is a general error from the actor, or the operation\r
-                    timed out, retries were exhausted in trying to execute the operation, a guard policy prevented the\r
-                    operation from occuring, or an exception in the system caused the failure.\r
-                constraints:\r
-                - valid_values: [error, timeout, retries, guard, exception]\r
-    onap.datatype.controlloop.Target:\r
-        derived_from: tosca.datatypes.Root\r
-        description: Definition for a entity in A&AI to perform a control loop operation on\r
-        properties:\r
-            targetType:\r
-                type: String\r
-                description: Category for the target type\r
-                required: true\r
-                constraints:\r
-                - valid_values: [VNF, VM, VFMODULE, PNF]\r
-            entityIds:\r
-                type: Map\r
-                description: |\r
-                    Map of values that identify the resource. If none are provided, it is assumed that the\r
-                    entity that generated the ONSET event will be the target.\r
-                required: false\r
-                entry_schema:\r
-                    type: String\r
-    onap.datatype.controlloop.Actor:\r
-        derived_from: tosca.datatypes.Root\r
-        description: An actor/operation/target definition\r
-        properties:\r
-            actor:\r
-                type: String\r
-                description: The actor performing the operation.\r
-                required: true\r
-            operation:\r
-                type: String\r
-                description: The operation the actor is performing.\r
-                required: true\r
-            target:\r
-                type: String\r
-                description: The resource the operation should be performed on.\r
-                required: true\r
-                metadata:\r
-                    clamp_possible_values: <string:see clamp project for syntax>\r
-            payload:\r
-                type: Map\r
-                description: Name/value pairs of payload information passed by Policy to the actor\r
-                required: false\r
-                entry_schema:\r
-                    type: String\r
-    onap.datatype.controlloop.Operation:\r
-        derived_from: tosca.datatypes.Root\r
-        description: An operation supported by an actor\r
-        properties:\r
-            id:\r
-                type: String\r
-                description: Unique identifier for the operation\r
-                required: true\r
-            description:\r
-                type: String\r
-                description: A user-friendly description of the intent for the operation\r
-                required: false\r
-            operation:\r
-                type: onap.datatype.controlloop.Actor\r
-                description: The definition of the operation to be performed.\r
-                required: true\r
-                metadata:\r
-                    clamp_possible_values: <string:see clamp project for syntax>\r
-            timeout:\r
-                type: Integer\r
-                description: The amount of time for the actor to perform the operation.\r
-                required: true\r
-            retries:\r
-                type: Integer\r
-                description: The number of retries the actor should attempt to perform the operation.\r
-                required: true\r
-                default: 0\r
-            success:\r
-                type: String\r
-                description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation.\r
-                required: false\r
-                default: final_success\r
-            failure:\r
-                type: String\r
-                description: Points to the operation to invoke on Actor operation failure.\r
-                required: false\r
-                default: final_failure\r
-            failure_timeout:\r
-                type: String\r
-                description: Points to the operation to invoke when the time out for the operation occurs.\r
-                required: false\r
-                default: final_failure_timeout\r
-            failure_retries:\r
-                type: String\r
-                description: Points to the operation to invoke when the current operation has exceeded its max retries.\r
-                required: false\r
-                default: final_failure_retries\r
-            failure_exception:\r
-                type: String\r
-                description: Points to the operation to invoke when the current operation causes an exception.\r
-                required: false\r
-                default: final_failure_exception\r
-            failure_guard:\r
-                type: String\r
-                description: Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.\r
-                required: false\r
-                default: final_failure_guard\r
+
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+policy_types:
+    onap.policies.controlloop.operational.Common:
+        derived_from: tosca.policies.Root
+        version: 1.0.0
+        description: Operational Policy for Control Loop execution
+        properties:
+            id:
+                type: String
+                description: The unique control loop id.
+                required: true
+            timeout:
+                type: Integer
+                description: |
+                    Overall timeout for executing all the operations. This timeout should equal or exceed the total
+                    timeout for each operation listed.
+                required: true
+            abatement:
+                type: Boolean
+                description: Whether an abatement event message will be expected for the control loop from DCAE.
+                required: true
+                default: false
+            trigger:
+                type: String
+                description: Initial operation to execute upon receiving an Onset event message for the Control Loop.
+                required: true
+            operations:
+                type: List
+                description: List of operations to be performed when Control Loop is triggered.
+                required: true
+                entry_schema:
+                    type: onap.datatype.controlloop.Operation
+    onap.policies.controlloop.operational.common.Drools:
+        derived_from: onap.policies.controlloop.operational.Common
+        type_version: 1.0.0
+        version: 1.0.0
+        description: Operational policies for Drools PDP
+        properties:
+            controllerName:
+                type: String
+                description: Drools controller properties
+                required: false
+data_types:
+    # TBD if this is needed
+    onap.datatype.controlloop.operation.Failure:
+        derived_from: tosca.datatypes.Root
+        description: Captures information of an operational failure performed for control loop
+        properties:
+            messages:
+                type: String
+                description: error message
+                required: true
+            category:
+                type: String
+                description: |
+                    The category the error occurred in. Whether this is a general error from the actor, or the operation
+                    timed out, retries were exhausted in trying to execute the operation, a guard policy prevented the
+                    operation from occuring, or an exception in the system caused the failure.
+                constraints:
+                - valid_values: [error, timeout, retries, guard, exception]
+    onap.datatype.controlloop.Target:
+        derived_from: tosca.datatypes.Root
+        description: Definition for a entity in A&AI to perform a control loop operation on
+        properties:
+            targetType:
+                type: String
+                description: Category for the target type
+                required: true
+                constraints:
+                - valid_values: [VNF, VM, VFMODULE, PNF]
+            entityIds:
+                type: Map
+                description: |
+                    Map of values that identify the resource. If none are provided, it is assumed that the
+                    entity that generated the ONSET event will be the target.
+                required: false
+                entry_schema:
+                    type: String
+    onap.datatype.controlloop.Actor:
+        derived_from: tosca.datatypes.Root
+        description: An actor/operation/target definition
+        properties:
+            actor:
+                type: String
+                description: The actor performing the operation.
+                required: true
+            operation:
+                type: String
+                description: The operation the actor is performing.
+                required: true
+            target:
+                type: String
+                description: The resource the operation should be performed on.
+                required: true
+                metadata:
+                    clamp_possible_values: <string:see clamp project for syntax>
+            payload:
+                type: Map
+                description: Name/value pairs of payload information passed by Policy to the actor
+                required: false
+                entry_schema:
+                    type: String
+    onap.datatype.controlloop.Operation:
+        derived_from: tosca.datatypes.Root
+        description: An operation supported by an actor
+        properties:
+            id:
+                type: String
+                description: Unique identifier for the operation
+                required: true
+            description:
+                type: String
+                description: A user-friendly description of the intent for the operation
+                required: false
+            operation:
+                type: onap.datatype.controlloop.Actor
+                description: The definition of the operation to be performed.
+                required: true
+                metadata:
+                    clamp_possible_values: <string:see clamp project for syntax>
+            timeout:
+                type: Integer
+                description: The amount of time for the actor to perform the operation.
+                required: true
+            retries:
+                type: Integer
+                description: The number of retries the actor should attempt to perform the operation.
+                required: true
+                default: 0
+            success:
+                type: String
+                description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation.
+                required: false
+                default: final_success
+            failure:
+                type: String
+                description: Points to the operation to invoke on Actor operation failure.
+                required: false
+                default: final_failure
+            failure_timeout:
+                type: String
+                description: Points to the operation to invoke when the time out for the operation occurs.
+                required: false
+                default: final_failure_timeout
+            failure_retries:
+                type: String
+                description: Points to the operation to invoke when the current operation has exceeded its max retries.
+                required: false
+                default: final_failure_retries
+            failure_exception:
+                type: String
+                description: Points to the operation to invoke when the current operation causes an exception.
+                required: false
+                default: final_failure_exception
+            failure_guard:
+                type: String
+                description: Points to the operation to invoke when the current operation is blocked due to guard policy enforcement.
+                required: false
+                default: final_failure_guard
index 6b0d723..063474d 100644 (file)
 
 major=6
 minor=1
-patch=1
+patch=2
 
 base_version=${major}.${minor}.${patch}
 
 # Release must be completed with git revision # in Jenkins
 release_version=${base_version}
-snapshot_version=${base_version}-SNAPSHOT
\ No newline at end of file
+snapshot_version=${base_version}-SNAPSHOT