2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.be.model.jsonjanusgraph.operations;
23 import static org.assertj.core.api.Assertions.assertThat;
25 import fj.data.Either;
26 import java.util.HashMap;
27 import java.util.List;
29 import javax.annotation.Resource;
30 import org.junit.jupiter.api.BeforeAll;
31 import org.junit.jupiter.api.BeforeEach;
32 import org.junit.jupiter.api.Test;
33 import org.openecomp.sdc.be.dao.api.ActionStatus;
34 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao;
35 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
36 import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
37 import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum;
38 import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum;
39 import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition;
40 import org.openecomp.sdc.be.datatypes.elements.CompositionDataDefinition;
41 import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum;
42 import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
43 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
44 import org.openecomp.sdc.be.model.LifecycleStateEnum;
45 import org.openecomp.sdc.be.model.ModelTestBase;
46 import org.openecomp.sdc.be.model.jsonjanusgraph.enums.JsonConstantKeysEnum;
47 import org.openecomp.sdc.be.model.jsonjanusgraph.utils.GraphTestUtils;
48 import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
51 * Created by yavivi on 21/03/2018.
53 @SpringJUnitConfig(locations = {"classpath:application-context-test.xml", "classpath:healing-context-test.xml"})
54 public class ArchiveOperationTest extends ModelTestBase {
56 private static final String CI_UID_RES1_CP = "cp_uid";
57 private static final String CI_UID_RES2_VL = "vl_uid";
58 private static final String CI_UID_SVC_PROXY = "svc_proxy_uid";
59 GraphVertex archiveVertex;
60 GraphVertex catalogVertex;
62 private ArchiveOperation archiveOperation;
64 private JanusGraphDao janusGraphDao;
65 private boolean isInitialized;
66 private GraphVertex serviceVertex1;
67 private GraphVertex archivedVertex1;
68 private GraphVertex serviceVertex1_0;
69 private GraphVertex serviceVertex1_1;
70 private GraphVertex serviceVertex2_0;
71 private GraphVertex serviceVertex3_0;
72 private GraphVertex serviceVertex3_1;
74 private GraphVertex serviceVertex0_1;
75 private GraphVertex serviceVertex0_2;
76 private GraphVertex serviceVertex0_3;
77 private GraphVertex serviceVertex0_4;
78 private GraphVertex serviceVertex0_5;
80 //Composition Elements
81 private GraphVertex compositionService;
82 private GraphVertex compositionResource1;
83 private GraphVertex compositionResource2;
84 private GraphVertex compositionServiceProxy;
85 private GraphVertex compositionAnotherService;
87 //For VSP Archive Notification
88 private GraphVertex vfResource0_1;
89 private GraphVertex vfResource0_2;
90 private GraphVertex vfResource1_0;
91 private String csarUuid = "123456789";
94 public static void initTest() {
99 public void beforeTest() {
100 if (!isInitialized) {
101 GraphTestUtils.clearGraph(janusGraphDao);
103 isInitialized = true;
108 public void testArchiveComponentSingleVersion() {
109 String componentId = serviceVertex1.getUniqueId();
110 Either<List<String>, ActionStatus> actionStatus = this.archiveOperation.archiveComponent(componentId);
111 assertThat(actionStatus.isLeft()).isTrue();
112 assertArchived(serviceVertex1.getUniqueId());
116 public void testArchiveComponentFailsWhenInCheckoutSingleVersion() {
117 checkoutComponent(serviceVertex1);
118 String componentId = serviceVertex1.getUniqueId();
119 Either<List<String>, ActionStatus> actionStatus = this.archiveOperation.archiveComponent(componentId);
120 assertThat(actionStatus.isLeft()).isFalse();
121 assertThat(actionStatus.right().value()).isEqualTo(ActionStatus.INVALID_SERVICE_STATE);
125 public void testArchiveWithWrongId() {
126 Either<List<String>, ActionStatus> actionStatus = this.archiveOperation.archiveComponent("fakeComponentId");
127 assertThat(actionStatus.isLeft()).isFalse();
128 assertThat(actionStatus.right().value()).isEqualTo(ActionStatus.RESOURCE_NOT_FOUND);
132 public void testAlreadyArchived() {
133 Either<List<String>, ActionStatus> actionStatus = this.archiveOperation.archiveComponent(archivedVertex1.getUniqueId());
134 assertThat(actionStatus.isLeft()).isTrue();
135 assertThat(actionStatus.left().value()).containsExactly(archivedVertex1.getUniqueId());
139 public void testScenario2_archive_1_0() {
140 Either<List<String>, ActionStatus> actionStatus = this.archiveOperation.archiveComponent(serviceVertex1_0.getUniqueId());
141 assertThat(actionStatus.isLeft()).isTrue();
142 assertThat(actionStatus.left().value()).containsExactlyInAnyOrder(serviceVertex1_0.getUniqueId(), serviceVertex1_1.getUniqueId());
143 assertArchived(serviceVertex1_0.getUniqueId());
144 assertArchived(serviceVertex1_1.getUniqueId());
148 public void testScenario2_archive_1_1() {
149 Either<List<String>, ActionStatus> actionStatus = this.archiveOperation.archiveComponent(serviceVertex1_1.getUniqueId());
150 assertThat(actionStatus.left().value()).containsExactlyInAnyOrder(serviceVertex1_0.getUniqueId(), serviceVertex1_1.getUniqueId());
151 assertArchived(serviceVertex1_0.getUniqueId());
152 assertArchived(serviceVertex1_1.getUniqueId());
156 public void testScenario4_oneLowOneHighestVersion() {
157 Either<List<String>, ActionStatus> actionStatus = this.archiveOperation.archiveComponent(serviceVertex0_2.getUniqueId());
158 assertThat(actionStatus.left().value()).containsExactlyInAnyOrder(serviceVertex0_2.getUniqueId(), serviceVertex0_1.getUniqueId(),
159 serviceVertex0_3.getUniqueId(), serviceVertex0_4.getUniqueId(), serviceVertex0_5.getUniqueId());
160 assertArchived(serviceVertex0_1.getUniqueId());
161 assertArchived(serviceVertex0_2.getUniqueId());
162 assertArchived(serviceVertex0_3.getUniqueId());
163 assertArchived(serviceVertex0_4.getUniqueId());
164 assertArchived(serviceVertex0_5.getUniqueId());
166 actionStatus = this.archiveOperation.restoreComponent(serviceVertex0_2.getUniqueId());
167 assertThat(actionStatus.isLeft()).isTrue();
168 assertThat(actionStatus.left().value()).containsExactlyInAnyOrder(serviceVertex0_2.getUniqueId(), serviceVertex0_1.getUniqueId(),
169 serviceVertex0_3.getUniqueId(), serviceVertex0_4.getUniqueId(), serviceVertex0_5.getUniqueId());
173 /////////////// Continue Here //////////////////
175 public void testScenario4_archiveFromNonHighest() {
176 Either<List<String>, ActionStatus> actionStatus = this.archiveOperation.archiveComponent(serviceVertex0_2.getUniqueId());
177 assertArchived(serviceVertex0_1.getUniqueId());
178 assertArchived(serviceVertex0_2.getUniqueId());
179 assertArchived(serviceVertex0_3.getUniqueId());
180 assertArchived(serviceVertex0_4.getUniqueId());
181 assertArchived(serviceVertex0_5.getUniqueId());
183 actionStatus = this.archiveOperation.restoreComponent(serviceVertex0_3.getUniqueId());
184 assertRestored(serviceVertex0_1.getUniqueId());
185 assertRestored(serviceVertex0_2.getUniqueId());
186 assertRestored(serviceVertex0_3.getUniqueId());
187 assertRestored(serviceVertex0_4.getUniqueId());
188 assertRestored(serviceVertex0_5.getUniqueId());
192 public void testArchiveFailsWhenHighestVersionIsInCheckoutState() {
193 checkoutComponent(serviceVertex0_5);
194 Either<List<String>, ActionStatus> actionStatus = this.archiveOperation.archiveComponent(serviceVertex0_2.getUniqueId());
195 assertThat(actionStatus.right().value()).isEqualTo(ActionStatus.INVALID_SERVICE_STATE);
199 public void testScenario3_archive_3_0() {
200 Either<List<String>, ActionStatus> actionStatus = this.archiveOperation.archiveComponent(serviceVertex3_0.getUniqueId());
201 assertArchived(serviceVertex3_0.getUniqueId());
202 assertArchived(serviceVertex3_1.getUniqueId());
203 assertArchivedProps(serviceVertex2_0.getUniqueId());
207 public void testArchivedOriginsCalculation() {
209 //Archive the CP resource
210 this.archiveOperation.archiveComponent(this.compositionResource1.getUniqueId());
211 this.archiveOperation.archiveComponent(this.compositionServiceProxy.getUniqueId());
213 List<String> ciWithArchivedOrigins = this.archiveOperation.setArchivedOriginsFlagInComponentInstances(this.compositionService);
215 //Validate that method returns the CI of CP
216 assertThat(ciWithArchivedOrigins).containsExactlyInAnyOrder(CI_UID_RES1_CP, CI_UID_SVC_PROXY);
218 Map<String, CompositionDataDefinition> compositionsJson = (Map<String, CompositionDataDefinition>) this.compositionService.getJson();
220 assertThat(compositionsJson).isNotNull();
221 assertThat(compositionsJson.get(JsonConstantKeysEnum.COMPOSITION.getValue())).isNotNull();
223 CompositionDataDefinition composition = compositionsJson.get(JsonConstantKeysEnum.COMPOSITION.getValue());
225 //Get all component instances from composition
226 Map<String, ComponentInstanceDataDefinition> componentInstances = composition.getComponentInstances();
227 for (ComponentInstanceDataDefinition ci : componentInstances.values()) {
228 //Verify that exactly 2 CIs are marked as archived
229 if (ci.getUniqueId().equals(CI_UID_RES1_CP) || ci.getUniqueId().equals(CI_UID_SVC_PROXY)) {
230 assertThat(ci.isOriginArchived()).isTrue();
237 public void testNoArchivedOriginsCalculation() {
238 List<String> ciWithArchivedOrigins = this.archiveOperation.setArchivedOriginsFlagInComponentInstances(this.compositionService);
240 //Validate that method returns the CI of CP
241 assertThat(ciWithArchivedOrigins).isEmpty();
245 public void testOnVspArchivedAndRestored() {
246 this.archiveOperation.onVspArchived(csarUuid);
249 assertOnVspArchived(true);
251 this.archiveOperation.onVspRestored(csarUuid);
253 assertOnVspArchived(false);
255 //Not Found CSAR UUID
256 ActionStatus result = this.archiveOperation.onVspRestored("fakeUuid");
258 assertThat(result).isEqualTo(ActionStatus.RESOURCE_NOT_FOUND);
261 private void assertOnVspArchived(boolean expectedValue) {
262 GraphVertex v = janusGraphDao.getVertexById(vfResource0_1.getUniqueId()).left().value();
263 assertThat(v.getMetadataProperty(GraphPropertyEnum.IS_VSP_ARCHIVED)).isEqualTo(expectedValue);
265 v = janusGraphDao.getVertexById(vfResource0_2.getUniqueId()).left().value();
266 assertThat(v.getMetadataProperty(GraphPropertyEnum.IS_VSP_ARCHIVED)).isEqualTo(expectedValue);
268 v = janusGraphDao.getVertexById(vfResource1_0.getUniqueId()).left().value();
269 assertThat(v.getMetadataProperty(GraphPropertyEnum.IS_VSP_ARCHIVED)).isEqualTo(expectedValue);
272 /**************************
274 *************************/
276 private void checkoutComponent(GraphVertex serviceVertex0_5) {
277 Either<GraphVertex, JanusGraphOperationStatus> vE = janusGraphDao.getVertexById(serviceVertex0_5.getUniqueId());
278 GraphVertex v = vE.left().value();
279 v.addMetadataProperty(GraphPropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
280 v.setJsonMetadataField(JsonPresentationFields.LIFECYCLE_STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
281 janusGraphDao.updateVertex(v);
285 private void assertOnCommit() {
286 final JanusGraphOperationStatus commit = this.janusGraphDao.commit();
287 assertThat(commit).isEqualTo(JanusGraphOperationStatus.OK);
290 private void assertArchived(String componentUniqueId) {
291 assertArchivedOrRestored(ArchiveOperation.Action.ARCHIVE, componentUniqueId);
294 private void assertRestored(String componentUniqueId) {
295 assertArchivedOrRestored(ArchiveOperation.Action.RESTORE, componentUniqueId);
298 private void assertArchivedOrRestored(ArchiveOperation.Action action, String componentUniqueId) {
299 GraphVertex v = janusGraphDao.getVertexById(componentUniqueId).left().value();
301 EdgeLabelEnum requiredEdge = action == ArchiveOperation.Action.ARCHIVE ? EdgeLabelEnum.ARCHIVE_ELEMENT : EdgeLabelEnum.CATALOG_ELEMENT;
302 EdgeLabelEnum otherEdge = action == ArchiveOperation.Action.ARCHIVE ? EdgeLabelEnum.CATALOG_ELEMENT : EdgeLabelEnum.ARCHIVE_ELEMENT;
304 GraphVertex parent = null;
305 Either<GraphVertex, JanusGraphOperationStatus> otherLookup = null;
306 Boolean isHighest = (Boolean) v.getMetadataProperty(GraphPropertyEnum.IS_HIGHEST_VERSION);
307 if (isHighest != null && isHighest) {
308 //Highest version are linked to Archive/Catalog Root
309 parent = janusGraphDao.getParentVertex(v, requiredEdge, JsonParseFlagEnum.NoParse).left().value();
310 otherLookup = janusGraphDao.getParentVertex(v, otherEdge, JsonParseFlagEnum.NoParse);
311 assertThat(otherLookup.isRight()).isTrue(); //Verify that component is not linked to Catalog/Archive Root
312 assertThat(parent.getUniqueId()).isEqualTo(action == ArchiveOperation.Action.ARCHIVE ? this.archiveVertex.getUniqueId()
313 : this.catalogVertex.getUniqueId()); //Verify that parent is indeed Archive Root
316 assertArchivedOrRestoredProps(action, v);
319 private void assertArchivedProps(String uniqueId) {
321 janusGraphDao.getVertexById(uniqueId).left().value();
322 assertArchivedOrRestoredProps(ArchiveOperation.Action.ARCHIVE, v);
325 private void assertRestoredProps(String uniqueId) {
327 janusGraphDao.getVertexById(uniqueId).left().value();
328 assertArchivedOrRestoredProps(ArchiveOperation.Action.RESTORE, v);
331 private void assertArchivedOrRestoredProps(ArchiveOperation.Action action, GraphVertex v) {
332 Object isArchived = v.getMetadataProperty(GraphPropertyEnum.IS_ARCHIVED);
333 Object archiveTime = v.getMetadataProperty(GraphPropertyEnum.ARCHIVE_TIME);
334 assertThat(isArchived).isNotNull().isEqualTo(action == ArchiveOperation.Action.ARCHIVE ? true : false);
335 assertThat(archiveTime).isNotNull();
338 /*******************************
339 * Preperation Methods
340 *******************************/
341 private void initGraphForTest() {
342 //Create Catalog Root
343 this.catalogVertex = GraphTestUtils.createRootCatalogVertex(janusGraphDao);
344 //Create Archive Root
345 this.archiveVertex = GraphTestUtils.createRootArchiveVertex(janusGraphDao);
347 createScenario1_SingleVersionNode();
348 createScenario2_TwoHighestVersions();
349 createScenario3_TwoHighestVersionsOneLowest();
350 createMiscServices();
351 createServiceCompositionForCalculatingArchivedOrigins();
352 createScenario4_1Highest4LowestVersions();
353 createResourcesForArchivedVsp();
358 private void createScenario1_SingleVersionNode() {
359 //Create Service for Scenario 1 Tests (1 Service)
360 this.serviceVertex1 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForHighestVersion());
362 //Connect Service to Catalog Root
363 janusGraphDao.createEdge(catalogVertex, serviceVertex1, EdgeLabelEnum.CATALOG_ELEMENT, null);
366 private void createScenario2_TwoHighestVersions() {
367 //Create Service for Scenario 2 Tests (1 Service)
368 this.serviceVertex1_0 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForHighestVersion());
369 this.serviceVertex1_1 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForHighestVersion());
371 janusGraphDao.createEdge(serviceVertex1_0, serviceVertex1_1, EdgeLabelEnum.VERSION, null);
373 //Connect 1.0 and 1.1 to Catalog Root
375 .createEdge(catalogVertex, serviceVertex1_0, EdgeLabelEnum.CATALOG_ELEMENT, null);
377 .createEdge(catalogVertex, serviceVertex1_1, EdgeLabelEnum.CATALOG_ELEMENT, null);
380 private void createScenario3_TwoHighestVersionsOneLowest() {
381 //Create Service for Scenario 1 Tests (1 Service)
382 this.serviceVertex2_0 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForNonHighestVersion()); //NonHighestVersion
383 this.serviceVertex3_0 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForHighestVersion());
384 this.serviceVertex3_1 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForHighestVersion());
386 //Connect version edges
387 janusGraphDao.createEdge(serviceVertex2_0, serviceVertex3_0, EdgeLabelEnum.VERSION, null);
388 janusGraphDao.createEdge(serviceVertex3_0, serviceVertex3_1, EdgeLabelEnum.VERSION, null);
390 //Connect 3.0 and 3.1 to Catalog Root
392 .createEdge(catalogVertex, serviceVertex3_0, EdgeLabelEnum.CATALOG_ELEMENT, null);
394 .createEdge(catalogVertex, serviceVertex3_1, EdgeLabelEnum.CATALOG_ELEMENT, null);
397 private void createScenario4_1Highest4LowestVersions() {
398 //2 Lowest version only
399 this.serviceVertex0_1 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForNonHighestVersion());
400 this.serviceVertex0_2 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForNonHighestVersion());
401 this.serviceVertex0_3 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForNonHighestVersion());
402 this.serviceVertex0_4 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForNonHighestVersion());
403 this.serviceVertex0_5 = GraphTestUtils.createServiceVertex(janusGraphDao, propsForHighestVersion());
405 janusGraphDao.createEdge(serviceVertex0_1, serviceVertex0_2, EdgeLabelEnum.VERSION, null);
406 janusGraphDao.createEdge(serviceVertex0_2, serviceVertex0_3, EdgeLabelEnum.VERSION, null);
407 janusGraphDao.createEdge(serviceVertex0_3, serviceVertex0_4, EdgeLabelEnum.VERSION, null);
408 janusGraphDao.createEdge(serviceVertex0_4, serviceVertex0_5, EdgeLabelEnum.VERSION, null);
411 .createEdge(catalogVertex, serviceVertex0_5, EdgeLabelEnum.CATALOG_ELEMENT, null);
414 private void createResourcesForArchivedVsp() {
415 Map<GraphPropertyEnum, Object> vfPropsNonHighest = propsForNonHighestVersion();
416 Map<GraphPropertyEnum, Object> vfPropsHighest = propsForNonHighestVersion();
418 vfPropsNonHighest.put(GraphPropertyEnum.CSAR_UUID, csarUuid);
419 vfPropsNonHighest.put(GraphPropertyEnum.IS_VSP_ARCHIVED, false);
420 vfPropsHighest.put(GraphPropertyEnum.CSAR_UUID, csarUuid);
421 vfPropsHighest.put(GraphPropertyEnum.IS_VSP_ARCHIVED, false);
423 this.vfResource0_1 = GraphTestUtils.createResourceVertex(janusGraphDao, vfPropsNonHighest, ResourceTypeEnum.VF);
424 this.vfResource0_2 = GraphTestUtils.createResourceVertex(janusGraphDao, vfPropsNonHighest, ResourceTypeEnum.VF);
425 this.vfResource1_0 = GraphTestUtils.createResourceVertex(janusGraphDao, vfPropsHighest, ResourceTypeEnum.VF);
427 janusGraphDao.createEdge(vfResource0_1, vfResource0_2, EdgeLabelEnum.VERSION, null);
428 janusGraphDao.createEdge(vfResource0_2, vfResource1_0, EdgeLabelEnum.VERSION, null);
431 private void createMiscServices() {
432 //Create Service for Scenario 1 Tests (1 Service)
433 this.archivedVertex1 = GraphTestUtils.createServiceVertex(janusGraphDao, new HashMap<>());
435 //Connect Service to Catalog Root
436 janusGraphDao.createEdge(archiveVertex, archivedVertex1, EdgeLabelEnum.ARCHIVE_ELEMENT, null);
439 private void createServiceCompositionForCalculatingArchivedOrigins() {
440 //Service that point to another service in composition
441 this.compositionService = GraphTestUtils.createServiceVertex(janusGraphDao, propsForHighestVersion());
442 this.compositionAnotherService = GraphTestUtils.createServiceVertex(janusGraphDao, propsForHighestVersion());
444 this.compositionResource1 = GraphTestUtils.createResourceVertex(janusGraphDao, propsForHighestVersion(), ResourceTypeEnum.CP);
445 this.compositionResource2 = GraphTestUtils.createResourceVertex(janusGraphDao, propsForHighestVersion(), ResourceTypeEnum.VL);
446 this.compositionServiceProxy = GraphTestUtils.createResourceVertex(janusGraphDao, propsForHighestVersion(), ResourceTypeEnum.ServiceProxy);
449 .createEdge(compositionService, compositionResource1, EdgeLabelEnum.INSTANCE_OF, null);
451 .createEdge(compositionService, compositionResource2, EdgeLabelEnum.INSTANCE_OF, null);
453 .createEdge(compositionService, compositionServiceProxy, EdgeLabelEnum.INSTANCE_OF, null);
455 .createEdge(compositionService, compositionAnotherService, EdgeLabelEnum.PROXY_OF, null);
457 createAndAttachCompositionJson(compositionService);
460 private void createAndAttachCompositionJson(GraphVertex compositionService) {
461 //Full composition json
462 Map<String, CompositionDataDefinition> compositions = new HashMap<>();
463 //Single composition data
464 CompositionDataDefinition composition = new CompositionDataDefinition();
466 Map<String, ComponentInstanceDataDefinition> instances = new HashMap<>();
468 //Prepare Instances Map
469 ComponentInstanceDataDefinition instance = new ComponentInstanceDataDefinition();
470 instance.setUniqueId(CI_UID_RES1_CP);
471 instance.setComponentUid(compositionResource1.getUniqueId());
472 instances.put(CI_UID_RES1_CP, instance);
474 instance = new ComponentInstanceDataDefinition();
475 instance.setUniqueId(CI_UID_RES2_VL);
476 instance.setComponentUid(compositionResource2.getUniqueId());
477 instances.put(CI_UID_RES2_VL, instance);
479 instance = new ComponentInstanceDataDefinition();
480 instance.setUniqueId(CI_UID_SVC_PROXY);
481 instance.setComponentUid(compositionServiceProxy.getUniqueId());
482 instances.put(CI_UID_SVC_PROXY, instance);
484 //Add Instances to Composition
485 composition.setComponentInstances(instances);
486 //Add to full composition
487 compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), composition);
488 //Add Full Json to vertex
489 compositionService.setJson(compositions);
490 //System.out.println(JsonParserUtils.toJson(compositions));
491 janusGraphDao.updateVertex(compositionService);
494 private Map<GraphPropertyEnum, Object> propsForHighestVersion() {
495 Map<GraphPropertyEnum, Object> props = new HashMap();
496 props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true);
497 props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);
501 private Map<GraphPropertyEnum, Object> propsForNonHighestVersion() {
502 Map<GraphPropertyEnum, Object> props = new HashMap();
503 props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, false);
504 props.put(GraphPropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN);