aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager
diff options
context:
space:
mode:
authorandre.schmid <andre.schmid@est.tech>2021-08-31 16:58:08 +0100
committerMichael Morris <michael.morris@est.tech>2021-09-01 10:53:50 +0000
commit1d20d6ef6f0c85e487d9cb7e6ceed0e0f3fd8677 (patch)
tree8ef641c8861f349557be4ddc15bcdb147ca3e2e0 /openecomp-be/backend/openecomp-sdc-vendor-software-product-manager
parent38c6faa738abe6e0acdd24df2364d725d36fca40 (diff)
Fix setting vendor release for VSP with model
When a model is selected, the vendor release should not be set based on the compatible_specification_version of the manifest metadata. Change-Id: I7a01941c47a8a7f1d3a7f69bfa0830db3d11fb0c Issue-ID: SDC-3708 Signed-off-by: andre.schmid <andre.schmid@est.tech>
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager')
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java4
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java26
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/ValidNonManoToscaPNFWithNonMano.mf1
3 files changed, 18 insertions, 13 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
index 175ba3df7d..dfc4082b3c 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
@@ -555,7 +555,9 @@ public class VendorSoftwareProductManagerImpl implements VendorSoftwareProductMa
final Optional<Map<String, Path>> fromToMovedPaths = etsiService.moveNonManoFileToArtifactFolder(handler);
fromToMovedPaths.ifPresent(it -> etsiService.updateMainDescriptorPaths(toscaServiceModel, it));
packageInfo.setResourceType(etsiService.getResourceType(manifest).name());
- packageInfo.setVendorRelease(etsiService.getHighestCompatibleSpecificationVersion(handler).getOriginalValue());
+ if (CollectionUtils.isEmpty(vspDetails.getModelIdList())) {
+ packageInfo.setVendorRelease(etsiService.getHighestCompatibleSpecificationVersion(handler).getOriginalValue());
+ }
}
packageInfo.setTranslatedFile(ByteBuffer.wrap(toscaServiceTemplateServiceCsar.createOutputFile(toscaServiceModel, licenseArtifacts)));
packageInfoDao.create(packageInfo);
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java
index f49e8f98cb..98d641b946 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImplTest.java
@@ -17,14 +17,15 @@
package org.openecomp.sdc.vendorsoftwareproduct.impl;
import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.not;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyObject;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
@@ -57,7 +58,6 @@ import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
import org.onap.sdc.tosca.services.YamlUtil;
import org.openecomp.core.model.dao.EnrichedServiceModelDao;
import org.openecomp.core.model.dao.ServiceModelDao;
-import org.openecomp.core.model.types.ServiceElement;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity;
import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
@@ -85,6 +85,7 @@ import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.vendorsoftwareproduct.informationArtifact.InformationArtifactGenerator;
import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse;
import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
+import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
import org.openecomp.sdc.versioning.ActionVersioningManager;
import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionStatus;
@@ -261,6 +262,9 @@ public class VendorSoftwareProductManagerImplTest {
when(licenseArtifactsServiceMock.createLicenseArtifacts(any(), any(), any(), any()))
.thenReturn(new FileContentHandler());
final PackageInfo packageInfo = vendorSoftwareProductManager.createPackage("0", new Version());
+ assertThat("PackageInfo vendor release should be based on the manifest compatible_specification_versions highest version",
+ packageInfo.getVendorRelease(), equalTo("3.3.1"));
+ System.out.println(packageInfo.getVendorRelease());
assertThat("Package Info should contain resource type", packageInfo.getResourceType(),
equalTo(ResourceTypeEnum.PNF.name()));
assertThat("Should not contain moved artifact", toscaMetadata.getArtifactFiles().getFileList(),
@@ -277,9 +281,8 @@ public class VendorSoftwareProductManagerImplTest {
@Test
public void testCreate() {
- //doReturn(VERSION01).when(versioningManagerMock).create(anyObject(), anyObject(), anyObject());
doReturn("{}")
- .when(vendorSoftwareProductManager).getVspQuestionnaireSchema(anyObject());
+ .when(vendorSoftwareProductManager).getVspQuestionnaireSchema(nullable(SchemaTemplateInput.class));
VspDetails vspToCreate =
createVspDetails(null, null, "Vsp1", "Test-vsp", "vendorName", "vlm1Id", "icon",
@@ -358,7 +361,6 @@ public class VendorSoftwareProductManagerImplTest {
"subCategory", "456", fgs);
List<String> updFgs = new ArrayList<>();
- //updFgs.add("fg2");
VspDetails updatedVsp =
createVspDetails(VSP_ID, VERSION01, "VSP1_updated", null, "vendorName", "vlm1Id", "icon",
"category_updated",
@@ -376,7 +378,7 @@ public class VendorSoftwareProductManagerImplTest {
List<DeploymentFlavorEntity> dfList = new ArrayList<>();
dfList.add(dfEntity);
- doReturn(dfList).when(deploymentFlavorDaoMock).list(anyObject());
+ doReturn(dfList).when(deploymentFlavorDaoMock).list(any(DeploymentFlavorEntity.class));
vendorSoftwareProductManager.updateVsp(updatedVsp);
@@ -444,8 +446,6 @@ public class VendorSoftwareProductManagerImplTest {
@Test
public void testCreatePackage() throws IOException {
- /*VspDetails vspDetailsMock = new VspDetails("vspId", new Version(1, 0));
- doReturn(vspDetailsMock).when(vspInfoDaoMock).get(anyObject());*/
VersionInfo versionInfo = new VersionInfo();
versionInfo.setActiveVersion(VERSION10);
doReturn(versionInfo).when(versioningManagerMock).getEntityVersionInfo(
@@ -454,11 +454,12 @@ public class VendorSoftwareProductManagerImplTest {
doReturn(new ToscaServiceModel(new FileContentHandler(), new HashMap<>(), "")).when
(enrichedServiceModelDaoMock).getServiceModel(VSP_ID, VERSION10);
- doNothing().when(vendorSoftwareProductManager).populateVersionsForVlm(anyObject(), anyObject());
+ doNothing().when(vendorSoftwareProductManager).populateVersionsForVlm(anyString(), any(Version.class));
VspDetails vsp = new VspDetails(VSP_ID, VERSION10);
vsp.setVendorId("vendorId");
vsp.setVlmVersion(VERSION10);
vsp.setFeatureGroups(Arrays.asList("fg1", "fg2"));
+ vsp.setModelIdList(List.of("aModel"));
doReturn(vsp).when(vspInfoDaoMock).get(any(VspDetails.class));
doReturn(new FileContentHandler()).when(licenseArtifactsServiceMock)
@@ -467,6 +468,7 @@ public class VendorSoftwareProductManagerImplTest {
PackageInfo packageInfo = vendorSoftwareProductManager.createPackage(VSP_ID, VERSION10);
Assert.assertNotNull(packageInfo.getVspId());
+ assertEquals("1.0", packageInfo.getVendorRelease());
}
@Test
@@ -476,7 +478,7 @@ public class VendorSoftwareProductManagerImplTest {
"category", "subCategory", "licenseAgreementId",
Collections.singletonList("featureGroupId"));
vsp.setOnboardingMethod("NetworkPackage");
- doReturn(vsp).when(vspInfoDaoMock).get(anyObject());
+ doReturn(vsp).when(vspInfoDaoMock).get(any(VspDetails.class));
OrchestrationTemplateCandidateData orchestrationTemplateCandidateData = new
OrchestrationTemplateCandidateData();
@@ -501,7 +503,7 @@ public class VendorSoftwareProductManagerImplTest {
"vl1Id", "icond", "category", "subcategory", "licenseAgreementId", Collections
.singletonList("featureGroupId"));
vsp.setOnboardingMethod("NetworkPackage");
- doReturn(vsp).when(vspInfoDaoMock).get(anyObject());
+ doReturn(vsp).when(vspInfoDaoMock).get(any(VspDetails.class));
OrchestrationTemplateCandidateData orchestrationTemplateCandidateData = new
OrchestrationTemplateCandidateData();
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/ValidNonManoToscaPNFWithNonMano.mf b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/ValidNonManoToscaPNFWithNonMano.mf
index 23ceffd512..ba494458d7 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/ValidNonManoToscaPNFWithNonMano.mf
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/resources/vspmanager.csar/manifest/ValidNonManoToscaPNFWithNonMano.mf
@@ -3,6 +3,7 @@ metadata:
pnfd_provider: SunShineCompany
pnfd_archive_version: 1.0
pnfd_release_date_time: 2017-01-01T10:00:00+03:00
+ compatible_specification_versions: 2.7.1, 3.3.1
Source: MainServiceTemplate.yaml
Source: Artifacts/Deployment/ANOTHER/authorized_keys
653' href='#n653'>653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002
<?xml version="1.0" encoding="UTF-8"?>
<!--

    ============LICENSE_START=======================================================
    org.onap.aai
    ================================================================================
    Copyright © 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=========================================================

-->
<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.aai.traversal</groupId>
		<artifactId>traversal</artifactId>
		<version>1.7.0-SNAPSHOT</version>
	</parent>
	<groupId>org.onap.aai.traversal</groupId>
	<artifactId>aai-traversal</artifactId>

	<properties>
	  <aai.schema.service.version>1.7.3</aai.schema.service.version>
	  <mockito.core.version>1.10.19</mockito.core.version>
		<java.version>1.8</java.version>
		<start-class>org.onap.aai.TraversalApp</start-class>

		<maven.skip.tests>true</maven.skip.tests>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		
		<jopt.simple.version>4.9</jopt.simple.version>

		<!-- End of the jacoco plugin properties -->
		
		<!-- Default docker registry that maven fabric plugin will try to pull 
			from -->
		<gremlin.version>3.2.3</gremlin.version>
		<docker.registry>docker.io</docker.registry>
		<!-- Specifying the docker push registry where the image should be pushed -->
		<!-- This value should be overwritten at runtime to wherever need to be 
			pushed to -->
		<docker.push.registry>localhost:5000</docker.push.registry>
		<aai.docker.version>1.0.0</aai.docker.version>

		<!-- Location where assembly of our scripts, resources and main jar will 
			be held Check the ${project.artifactId}/src/main/assembly/descriptor.xml 
			for more info -->
		<aai.build.directory>${project.build.directory}/${project.artifactId}-${project.version}-build/</aai.build.directory>
		<aai.docker.version>1.0.0</aai.docker.version>
		<aai.docker.namespace>onap</aai.docker.namespace>
		<aai.base.image>alpine</aai.base.image>
		<aai.base.image.version>1.6.0</aai.base.image.version>

		<!-- Nexus Proxy Properties and Snapshot Locations Ideally this can be 
			overwritten at runtime per internal environment specific values at runtime -->
		<nexusproxy>https://nexus.onap.org</nexusproxy>
		<site.path>/content/sites/site/org/onap/aai/traversal/${project.artifactId}/${project.version}</site.path>
		<release.path>/content/repositories/releases/</release.path>
		<snapshot.path>/content/repositories/snapshots/</snapshot.path>

		<!-- This will be used for the docker images as the default format of maven 
			build has issues -->
		<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>

		<antlr4.visitor>true</antlr4.visitor>
		<antlr4.listener>true</antlr4.listener>

		<snapshot.file>${project.basedir}/snapshots/data.graphson</snapshot.file>
		<jacoco.line.coverage.limit>0.61</jacoco.line.coverage.limit>

		<!-- Start of Default ONAP Schema Properties -->
		<schema.source.name>onap</schema.source.name>
		<schema.configuration.location>N/A</schema.configuration.location>
		<schema.nodes.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/oxm</schema.nodes.location>
		<schema.edges.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/dbedgerules</schema.edges.location>
		<schema.version.depth.start>v10</schema.version.depth.start>
		<schema.version.related.link.start>v10</schema.version.related.link.start>
		<schema.version.app.root.start>v11</schema.version.app.root.start>
		<schema.version.namespace.change.start>v12</schema.version.namespace.change.start>
		<schema.version.edge.label.start>v12</schema.version.edge.label.start>
		<schema.version.api.default>v16</schema.version.api.default>
		<schema.version.list>v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20</schema.version.list>
		<schema.uri.base.path>/aai</schema.uri.base.path>
		<!-- End of Default ONAP Schema Properties -->
	</properties>
	<profiles>
		<!-- Docker profile to be used for building docker image and pushing to 
			nexus -->
		<profile>
			<id>docker</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.groovy.maven</groupId>
						<artifactId>gmaven-plugin</artifactId>
						<version>1.0</version>
						<executions>
							<execution>
								<phase>pre-clean</phase>
							</execution>
							<execution>
								<id>parse-base</id>
								<phase>prepare-package</phase>
								<goals>
									<goal>execute</goal>
								</goals>
								<configuration>
									<source>
										def userAaiBaseImage = session.userProperties['aai.base.image'];
										def userAaiCommonVersion =
										session.userProperties['aai.base.image.version'];
										if (userAaiCommonVersion != null) {
										project.properties['aai.base.image.version'] =
										userAaiCommonVersion;
										}
										if (userAaiBaseImage != null) {
										project.properties['aai.base.image'] = userAaiBaseImage;
										}
										log.info 'Base image flavour: ' +
										project.properties['aai.base.image'];
										log.info 'Base image version: ' +
										project.properties['aai.base.image.version'];
									</source>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>io.fabric8</groupId>
						<artifactId>docker-maven-plugin</artifactId>
						<configuration>
							<verbose>true</verbose>
							<apiVersion>1.23</apiVersion>
							<images>
								<image>
									<name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l</name>
									<build>
										<filter>@</filter>
										<tags>
											<tag>latest</tag>
											<tag>${project.docker.latesttag.version}</tag>
											<tag>${project.major.version}.${project.minor.version}-STAGING-${maven.build.timestamp}</tag>
										</tags>
										<cleanup>try</cleanup>
										<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
										<assembly>
											<inline>
												<fileSets>
													<fileSet>
														<directory>${aai.build.directory}</directory>
														<outputDirectory>/${project.artifactId}</outputDirectory>
													</fileSet>
												</fileSets>
											</inline>
										</assembly>
									</build>
								</image>
							</images>
						</configuration>
						<executions>
							<execution>
								<id>clean-images</id>
								<phase>pre-clean</phase>
								<goals>
									<goal>remove</goal>
								</goals>
								<configuration>
									<removeAll>true</removeAll>
								</configuration>
							</execution>
							<execution>
								<id>generate-images</id>
								<phase>package</phase>
								<goals>
									<goal>build</goal>
								</goals>
							</execution>
							<execution>
								<id>push-images</id>
								<phase>deploy</phase>
								<goals>
									<goal>push</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<!-- Start of ONAP Profile -->
		<profile>
			<id>onap</id>
			<properties>
				<schema.source.name>onap</schema.source.name>
				<schema.version.namespace.change.start>v12</schema.version.namespace.change.start>
				<schema.version.list>v10,v11,v12,v13,v14,v15,v16</schema.version.list>
			</properties>
		</profile>
		<!-- End of ONAP Profile -->
		<profile>
			<id>runAjsc</id>
			<properties>
				<skipTests>${maven.skip.tests}</skipTests>
			</properties>
			<build>
				<defaultGoal>pre-integration-test</defaultGoal>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>exec-maven-plugin</artifactId>
						<version>1.6.0</version>
						<executions>
							<execution>
								<id>run-spring-boot</id>
								<phase>package</phase>
								<goals>
									<goal>java</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<mainClass>${start-class}</mainClass>
							<systemProperties>
								<property>
									<key>snapshot.location</key>
									<value>${snapshot.file}</value>
								</property>
								<property>
									<key>schema.source.name</key>
									<value>${schema.source.name}</value>
								</property>
								<property>
									<key>schema.configuration.location</key>
									<value>${schema.configuration.location}</value>
								</property>
								<property>
									<key>schema.nodes.location</key>
									<value>${schema.nodes.location}</value>
								</property>
								<property>
									<key>schema.edges.location</key>
									<value>${schema.edges.location}</value>
								</property>
								<property>
									<key>schema.version.depth.start</key>
									<value>${schema.version.depth.start}</value>
								</property>
								<property>
									<key>schema.version.related.link.start</key>
									<value>${schema.version.related.link.start}</value>
								</property>
								<property>
									<key>schema.version.app.root.start</key>
									<value>${schema.version.app.root.start}</value>
								</property>
								<property>
									<key>schema.version.namespace.change.start</key>
									<value>${schema.version.namespace.change.start}</value>
								</property>
								<property>
									<key>schema.version.edge.label.start</key>
									<value>${schema.version.edge.label.start}</value>
								</property>
								<property>
									<key>schema.version.api.default</key>
									<value>${schema.version.api.default}</value>
								</property>
								<property>
									<key>schema.version.list</key>
									<value>${schema.version.list}</value>
								</property>
								<property>
									<key>schema.uri.base.path</key>
									<value>${schema.uri.base.path}</value>
								</property>
							</systemProperties>
							<executable>java</executable>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

	<!-- <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> 
		<artifactId>spring-boot-starter-parent</artifactId> <type>pom</type> <scope>import</scope> 
		</dependency> </dependencies> </dependencyManagement> -->
	<dependencies>
        <dependency>
            <groupId>net.sf.jopt-simple</groupId>
            <artifactId>jopt-simple</artifactId>
            <version>${jopt.simple.version}</version>
        </dependency>	
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-core</artifactId>
			<exclusions>
				<exclusion>
					<groupId>javax.ws.rs</groupId>
					<artifactId>jsr311-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-annotations</artifactId>
		</dependency>
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-jersey-jaxrs</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.glassfish.jersey.media</groupId>
					<artifactId>jersey-media-multipart</artifactId>
				</exclusion>
				<exclusion>
					<artifactId>jersey-core</artifactId>
					<groupId>com.sun.jersey</groupId>
				</exclusion>
				<exclusion>
					<artifactId>jersey-json</artifactId>
					<groupId>com.sun.jersey</groupId>
				</exclusion>
				<exclusion>
					<artifactId>jersey-server</artifactId>
					<groupId>com.sun.jersey</groupId>
				</exclusion>
				<exclusion>
					<artifactId>jersey-client</artifactId>
					<groupId>com.sun.jersey</groupId>
				</exclusion>
				<exclusion>
					<artifactId>jsr311-api</artifactId>
					<groupId>javax.ws.rs</groupId>
				</exclusion>
				<exclusion>
					<artifactId>jersey-multipart</artifactId>
					<groupId>com.sun.jersey.contribs</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>commons-configuration</groupId>
			<artifactId>commons-configuration</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>commons-lang</artifactId>
					<groupId>commons-lang</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
		</dependency>
		<!-- eelf dependency -->
		<dependency>
			<groupId>com.att.eelf</groupId>
			<artifactId>eelf-core</artifactId>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-access</artifactId>
		</dependency>
		<dependency>
			<groupId>org.hamcrest</groupId>
			<artifactId>hamcrest-junit</artifactId>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
		</dependency>
		<dependency>
			<groupId>org.janusgraph</groupId>
			<artifactId>janusgraph-core</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
				<exclusion>
					<groupId>dom4j</groupId>
					<artifactId>dom4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.janusgraph</groupId>
			<artifactId>janusgraph-cassandra</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.janusgraph</groupId>
			<artifactId>janusgraph-cql</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- <dependency> <groupId>org.janusgraph</groupId> <artifactId>janusgraph-hbase</artifactId> 
			<exclusions> <exclusion> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> 
			</exclusion> </exclusions> </dependency> -->
		<!-- indirect janusgraph-cassandra dependency need to be newer than default 
			one in order to support multiple cpu archs -->
		<dependency>
			<groupId>com.github.jnr</groupId>
			<artifactId>jnr-ffi</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.tinkerpop</groupId>
			<artifactId>gremlin-driver</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.codehaus.groovy</groupId>
					<artifactId>groovy</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.jaxrs</groupId>
			<artifactId>jackson-jaxrs-json-provider</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-junit4</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-api-mockito</artifactId>
			<scope>test</scope>
			<version>1.6.6</version>
		</dependency>
		<dependency>
			<groupId>com.beust</groupId>
			<artifactId>jcommander</artifactId>
		</dependency>
		<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
		</dependency>
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.xml.bind</groupId>
			<artifactId>jaxb-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.persistence</groupId>
			<artifactId>eclipselink</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.persistence</groupId>
			<artifactId>org.eclipse.persistence.moxy</artifactId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-javaagent</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.powermock</groupId>
			<artifactId>powermock-module-junit4-rule-agent</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.github.fge</groupId>
			<artifactId>json-patch</artifactId>
		</dependency>
		<dependency>
			<groupId>org.javatuples</groupId>
			<artifactId>javatuples</artifactId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>
		<dependency>
			<groupId>com.bazaarvoice.jolt</groupId>
			<artifactId>jolt-complete</artifactId>
		</dependency>
		<dependency>
			<groupId>com.jayway.jsonpath</groupId>
			<artifactId>json-path</artifactId>
		</dependency>
		<!-- Do not use activemq-all because they force you to use a specific logging 
			and they shade it so you can't simply exclude it and when you deploy the 
			jar, you will notice failure -->
		<dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-broker</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.activemq</groupId>
			<artifactId>activemq-client</artifactId>
		</dependency>
		<dependency>
			<groupId>org.onap.aai.aai-common</groupId>
			<artifactId>aai-core</artifactId>
			<exclusions>
				<exclusion>
					<groupId>com.sun.jersey</groupId>
					<artifactId>jersey-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.codehaus.jackson</groupId>
					<artifactId>jackson-mapper-asl</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.eclipse.jetty</groupId>
					<artifactId>jetty-http</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.eclipse.jetty</groupId>
					<artifactId>jetty-server</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-web</artifactId>
				</exclusion>
                <exclusion>
                    <groupId>org.onap.aai</groupId>
                    <artifactId>aai-logging</artifactId>
                </exclusion>
            </exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jms</artifactId>
			<exclusions>
				<exclusion>
					<groupId>com.sun.jersey</groupId>
					<artifactId>jersey-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- Do not use the jersey-client since jersey client 1.0 version clashes 
			with jersey 2 which we are using -->
		<!-- Use this to make http requests instead of jersey 1.0 client -->
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
		</dependency>
		<dependency>
			<groupId>org.onap.aai.aai-common</groupId>
			<artifactId>aai-rest</artifactId>
		</dependency>
		<dependency>
			<groupId>org.skyscreamer</groupId>
			<artifactId>jsonassert</artifactId>
			<scope>test</scope>
		</dependency>
		<!-- Explicitly stating the security spring framework and exclude the bouncy 
			castle since that is somehow overwriting our p12 file decryption that's built 
			into java security This will cause the password is incorrect This needs to 
			be added back if org.bouncy castle dependency sneaks backs in and causing 
			issues with the two way ssl -->
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-rsa</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.bouncycastle</groupId>
					<artifactId>bcpkix-jdk15on</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>io.netty</groupId>
			<artifactId>netty-handler</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>log4j-over-slf4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jetty</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jersey</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.onap.aaf.authz</groupId>
			<artifactId>aaf-cadi-aaf</artifactId>
		</dependency>
		<dependency>
			<groupId>io.netty</groupId>
			<artifactId>netty-all</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.antlr</groupId>
			<artifactId>antlr4-runtime</artifactId>
		</dependency>
		<dependency>
			<groupId>org.antlr</groupId>
			<artifactId>antlr4-maven-plugin</artifactId>
			<version>${antlr.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.sonatype.sisu</groupId>
					<artifactId>sisu-guava</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.tinkerpop</groupId>
			<artifactId>gremlin-core</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.tinkerpop</groupId>
			<artifactId>tinkergraph-gremlin</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.tinkerpop</groupId>
			<artifactId>gremlin-groovy</artifactId>
		</dependency>
		<dependency>
			<groupId>org.codehaus.plexus</groupId>
			<artifactId>plexus-utils</artifactId>
		</dependency>
	</dependencies>
	<build>
		<resources>
			<resource>
				<directory>${project.basedir}/src/main/swm</directory>
				<targetPath>${project.build.directory}/swm</targetPath>
				<filtering>false</filtering>
			</resource>
			<resource>
				<directory>${project.basedir}/src/main/resources</directory>
				<includes>
					<include>application.properties</include>
					<include>dme2.properties</include>
					<include>logback.xml</include>
					<include>localhost-access-logback.xml</include>
				</includes>
				<targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath>
				<filtering>false</filtering>
			</resource>
			<resource>
				<directory>${project.basedir}/src/main/resources</directory>
				<includes>
					<include>**/*</include>
				</includes>
				<filtering>true</filtering>
			</resource>
			<resource>
				<directory>${project.basedir}/src/main/resources/etc/appprops/</directory>
				<includes>
					<include>janusgraph-realtime.properties</include>
					<include>janusgraph-cached.properties</include>
					<include>aaiconfig.properties</include>
				</includes>
				<targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath>
				<filtering>false</filtering>
			</resource>
			<resource>
				<directory>${project.basedir}/src/main/resources/etc/auth/</directory>
				<includes>
					<include>aai-client-cert.p12</include>
					<include>tomcat_keystore</include>
					<include>aai_policy.json</include>
				</includes>
				<targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath>
				<filtering>true</filtering>
			</resource>
			<resource>
				<directory>${project.basedir}/src/main/resources/</directory>
				<includes>
					<include>logback.xml</include>
					<include>localhost-access-logback.xml</include>
				</includes>
				<targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath>
				<filtering>true</filtering>
			</resource>
			<resource>
				<directory>${project.basedir}/src/main/resources/schema/</directory>
				<includes>
					<include>**/oxm/**/*.xml</include>
					<include>**/dbedgerules/**/*.json</include>
					<include>**/query/**</include>
				</includes>
				<targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig/schema</targetPath>
				<filtering>false</filtering>
			</resource>
			<resource>
				<directory>${project.basedir}/src/main/resources/query/</directory>
				<includes>
					<include>**/*.json</include>
				</includes>
				<targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig/query</targetPath>
				<filtering>false</filtering>
			</resource>
			<resource>
				<directory>${project.basedir}/src/main/docker</directory>
				<includes>
					<include>**/*</include>
				</includes>
				<targetPath>${aai.build.directory}</targetPath>
				<filtering>true</filtering>
			</resource>
		</resources>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>com.mycila</groupId>
					<artifactId>license-maven-plugin</artifactId>
					<version>3.0</version>
					<configuration>
						<header>LICENSE.TXT</header>
						<includes>
							<include>src/main/java/**</include>
							<include>src/test/java/**</include>
							<include>pom.xml</include>
						</includes>
						<skipExistingHeaders>true</skipExistingHeaders>
						<skip>false</skip>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.codehaus.groovy.maven</groupId>
					<artifactId>gmaven-plugin</artifactId>
					<version>1.0</version>
					<executions>
						<execution>
							<phase>validate</phase>
							<goals>
								<goal>execute</goal>
							</goals>
							<configuration>
								<source>
									println project.properties['aai.project.version'];
									def versionArray;
									if (project.properties['aai.project.version'] != null) {
									versionArray =
									project.properties['aai.project.version'].split('\\.');
									}

									project.properties["project.major.version"] = versionArray[0];
									project.properties["project.minor.version"] = versionArray[1];
									project.properties['project.docker.latesttag.version'] =
									versionArray[0] + '.' + versionArray[1] + '-STAGING-latest';
									println 'New Tag for docker:' +
									project.properties['project.docker.latesttag.version'];
								</source>
							</configuration>
						</execution>
					</executions>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-clean-plugin</artifactId>
				<version>2.4.1</version>
				<configuration>
					<filesets>
						<fileset>
							<directory>${project.basedir}/src/main/resources/etc/oxm</directory>
							<includes>
								<include>**/*</include>
							</includes>
							<followSymlinks>false</followSymlinks>
						</fileset>
						<fileset>
							<directory>${project.basedir}/src/main/resources/etc/dbedgerules</directory>
							<includes>
								<include>**/*</include>
							</includes>
							<followSymlinks>false</followSymlinks>
						</fileset>
						<fileset>
							<directory>${project.basedir}/src/main/resources/schema</directory>
							<includes>
								<include>**/oxm/**</include>
								<include>**/dbedgerules/**</include>
							</includes>
							<followSymlinks>false</followSymlinks>
						</fileset>
					</filesets>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<artifactId>exec-maven-plugin</artifactId>
				<groupId>org.codehaus.mojo</groupId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.mycila</groupId>
				<artifactId>license-maven-plugin</artifactId>
			</plugin>

			<plugin>
			  <groupId>org.apache.maven.plugins</groupId>
			  <artifactId>maven-surefire-plugin</artifactId>
			  <configuration>
			    <runOrder>alphabetical</runOrder>
			  </configuration>
			</plugin>

			<plugin>
				<groupId>org.codehaus.groovy.maven</groupId>
				<artifactId>gmaven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.antlr</groupId>
				<artifactId>antlr4-maven-plugin</artifactId>
				<version>4.7.2</version>
				<executions>
					<execution>
						<goals>
							<goal>antlr4</goal>
						</goals>
						<configuration>
							<sourceDirectory>src/main/resources/antlr4</sourceDirectory>
							<!-- <outputDirectory>src/main/java/antlr4</outputDirectory> -->
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
			  <groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<mainClass>${start-class}</mainClass>
					<layout>ZIP</layout>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>


			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<configuration>
					<descriptors>
						<descriptor>src/main/assembly/descriptor.xml</descriptor>
					</descriptors>
				</configuration>
				<executions>
					<execution>
						<id>make-assembly</id> <!-- this is used for inheritance merges -->
						<phase>package</phase> <!-- bind to the packaging phase -->
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>2.8</version>
				<executions>
					<execution>
						<id>unpack-schema-dependency</id>
						<phase>initialize</phase>
						<goals>
							<goal>unpack</goal>
						</goals>
						<configuration>
							<artifactItems>
								<artifactItem>
									<groupId>org.onap.aai.schema-service</groupId>
									<artifactId>aai-schema</artifactId>
									<outputDirectory>${project.basedir}/src/main/resources/schema/</outputDirectory>
									<includes>**/oxm/**/*.xml</includes>
								</artifactItem>
							</artifactItems>
							<!-- other configurations here -->
						</configuration>
					</execution>
					<execution>
						<id>unpack-edgerules-dependency</id>
						<phase>initialize</phase>
						<goals>
							<goal>unpack</goal>
						</goals>
						<configuration>
							<artifactItems>
								<artifactItem>
									<groupId>org.onap.aai.schema-service</groupId>
									<artifactId>aai-schema</artifactId>
									<outputDirectory>${project.basedir}/src/main/resources/schema/</outputDirectory>
									<includes>**/dbedgerules/**/*.json</includes>
								</artifactItem>
							</artifactItems>
							<!-- other configurations here -->
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>com.mycila</groupId>
				<artifactId>license-maven-plugin</artifactId>
				<version>3.0</version>
				<configuration>
					<header>LICENSE.TXT</header>
					<includes>
						<include>src/main/java/**</include>
						<include>src/test/java/**</include>
						<include>pom.xml</include>
					</includes>
					<skipExistingHeaders>false</skipExistingHeaders>
					<skip>false</skip>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>