aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration
diff options
context:
space:
mode:
authorshalomb <shalomb@amdocs.com>2018-01-02 13:48:40 +0200
committerVitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com>2018-01-02 14:00:34 +0000
commitb38f18bb99a603012ec406053531c45fb4643d62 (patch)
treecbf8d7faacc50103737c84c76fdb3ee8ce1de7f3 /openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration
parentbadc6daeca01c3c6dda5d2d5d1d7bacec2c24f48 (diff)
Remove Zusammen cassandra plugin
Remove Zusammen cassandra plugin Change dependency Modify imports Change-Id: Ice66fdd9f3970961723df476c8d1e38040504189 Issue-ID: SDC-862 Signed-off-by: shalomb <shalomb@amdocs.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration')
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/CommitStagingService.java100
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementPrivateStore.java48
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementPublicStore.java23
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementStageStore.java35
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementStore.java20
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ErrorCode.java5
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/Message.java6
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/PublishService.java201
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/RevertService.java161
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/SyncService.java384
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionPrivateStore.java38
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionPublicStore.java29
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionStageStore.java18
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementPrivateStoreImpl.java269
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementPublicStoreImpl.java189
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementStageStoreImpl.java133
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionPrivateStoreImpl.java117
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionPublicStoreImpl.java135
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionStageStoreImpl.java39
19 files changed, 0 insertions, 1950 deletions
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/CommitStagingService.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/CommitStagingService.java
deleted file mode 100644
index 45d5769e9c..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/CommitStagingService.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.StageEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionEntity;
-
-import java.util.Collection;
-import java.util.Optional;
-
-public class CommitStagingService {
-
- private VersionPrivateStore versionPrivateStore;
- private VersionStageStore versionStageStore;
- private ElementPrivateStore elementPrivateStore;
- private ElementStageStore elementStageStore;
-
- public CommitStagingService(VersionPrivateStore versionPrivateStore,
- VersionStageStore versionStageStore,
- ElementPrivateStore elementPrivateStore,
- ElementStageStore elementStageStore) {
- this.versionPrivateStore = versionPrivateStore;
- this.versionStageStore = versionStageStore;
- this.elementPrivateStore = elementPrivateStore;
- this.elementStageStore = elementStageStore;
- }
-
- public void commitStaging(SessionContext context, Id itemId, Id versionId) {
- Optional<StageEntity<VersionEntity>> versionStage =
- versionStageStore.get(context, itemId, new VersionEntity(versionId));
-
- final ElementContext elementContext = new ElementContext(itemId, versionId, Id.ZERO);
- Collection<ElementEntity> stagedElementIds = elementStageStore.listIds(context, elementContext);
-
- if ((!versionStage.isPresent() && stagedElementIds.isEmpty()) ||
- elementStageStore.hasConflicts(context, elementContext)) {
- return;
- }
-
- versionStage.ifPresent(verStage -> commitVersionStage(context, itemId, verStage));
- commitElementsStage(context, elementContext, stagedElementIds);
- }
-
- private void commitVersionStage(SessionContext context, Id itemId,
- StageEntity<VersionEntity> versionStage) {
- switch (versionStage.getAction()) {
- case CREATE:
- versionPrivateStore.commitStagedCreate(context, itemId, versionStage.getEntity(),
- versionStage.getPublishTime());
- break;
- case UPDATE:
- versionPrivateStore.commitStagedUpdate(context, itemId, versionStage.getEntity(),
- versionStage.getPublishTime());
- break;
- case IGNORE:
- versionPrivateStore.commitStagedIgnore(context, itemId, versionStage.getEntity(),
- versionStage.getPublishTime());
- break;
- default:
- throw new UnsupportedOperationException(
- "Version change other then Create/Update/Ignore is not supported");
- }
-
- versionStageStore.delete(context, itemId, versionStage.getEntity());
- }
-
- private void commitElementsStage(SessionContext context, ElementContext elementContext,
- Collection<ElementEntity> stagedElementIds) {
- for (ElementEntity stagedElementId : stagedElementIds) {
- StageEntity<ElementEntity> stagedElement =
- elementStageStore.get(context, elementContext, stagedElementId)
- .orElseThrow(
- () -> new IllegalStateException("Element id returned by list must exist"));
- switch (stagedElement.getAction()) {
- case CREATE:
- elementPrivateStore.commitStagedCreate(context, elementContext, stagedElement.getEntity(),
- stagedElement.getPublishTime());
- break;
- case UPDATE:
- elementPrivateStore.commitStagedUpdate(context, elementContext, stagedElement.getEntity(),
- stagedElement.getPublishTime());
- break;
- case DELETE:
- elementPrivateStore
- .commitStagedDelete(context, elementContext, stagedElement.getEntity());
- break;
- case IGNORE:
- elementPrivateStore.commitStagedIgnore(context, elementContext, stagedElement.getEntity(),
- stagedElement.getPublishTime());
- break;
- default:
- throw new UnsupportedOperationException(
- "Element change other then Create/Update/Delete/Ignore is not supported");
- }
- elementStageStore.delete(context, elementContext, stagedElement.getEntity());
- }
- }
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementPrivateStore.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementPrivateStore.java
deleted file mode 100644
index 045def2561..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementPrivateStore.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-
-import java.util.Collection;
-import java.util.Date;
-import java.util.Map;
-import java.util.Optional;
-
-public interface ElementPrivateStore extends ElementStore {
-
- Map<Id, Id> listIds(SessionContext context, ElementContext elementContext);
-
- Collection<ElementEntity> listSubs(SessionContext context, ElementContext elementContext,
- Id elementId);
-
- Optional<SynchronizationStateEntity> getSynchronizationState(SessionContext context,
- ElementContext elementContext,
- Id elementId);
-
- void create(SessionContext context, ElementContext elementContext, ElementEntity element);
-
- boolean update(SessionContext context, ElementContext elementContext, ElementEntity element);
-
- void delete(SessionContext context, ElementContext elementContext, ElementEntity element);
-
- void markAsPublished(SessionContext context, ElementContext elementContext, Id elementId,
- Date publishTime);
-
- void markDeletionAsPublished(SessionContext context, ElementContext elementContext, Id elementId,
- Date publishTime);
-
- void commitStagedCreate(SessionContext context, ElementContext elementContext,
- ElementEntity element, Date publishTime);
-
- void commitStagedUpdate(SessionContext context, ElementContext elementContext,
- ElementEntity element, Date publishTime);
-
- void commitStagedDelete(SessionContext context, ElementContext elementContext,
- ElementEntity element);
-
- void commitStagedIgnore(SessionContext context, ElementContext elementContext,
- ElementEntity element, Date publishTime);
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementPublicStore.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementPublicStore.java
deleted file mode 100644
index 0f1790a1bf..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementPublicStore.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-
-import java.util.Date;
-import java.util.Map;
-
-public interface ElementPublicStore extends ElementStore {
-
- void create(SessionContext context, ElementContext elementContext, ElementEntity element,
- Date publishTime);
-
- void update(SessionContext context, ElementContext elementContext, ElementEntity element,
- Date publishTime);
-
- void delete(SessionContext context, ElementContext elementContext, ElementEntity element,
- Date publishTime);
-
- Map<Id,Id> listIds(SessionContext context, ElementContext elementContext);
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementStageStore.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementStageStore.java
deleted file mode 100644
index a9236247f9..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementStageStore.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import com.amdocs.zusammen.datatypes.item.Resolution;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.StageEntity;
-
-import java.util.Collection;
-import java.util.Optional;
-
-public interface ElementStageStore {
-
- Collection<ElementEntity> listIds(SessionContext context, ElementContext elementContext);
-
- boolean hasConflicts(SessionContext context, ElementContext elementContext);
-
- Collection<StageEntity<ElementEntity>> listConflictedDescriptors(SessionContext context,
- ElementContext elementContext);
-
- Optional<StageEntity<ElementEntity>> get(SessionContext context, ElementContext elementContext,
- ElementEntity element);
-
- Optional<StageEntity<ElementEntity>> getConflicted(SessionContext context,
- ElementContext elementContext,
- ElementEntity element);
-
- void create(SessionContext context, ElementContext elementContext,
- StageEntity<ElementEntity> elementStage);
-
- void delete(SessionContext context, ElementContext elementContext, ElementEntity element);
-
- void resolveConflict(SessionContext context, ElementContext elementContext, ElementEntity element,
- Resolution resolution);
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementStore.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementStore.java
deleted file mode 100644
index 1c26a817ae..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ElementStore.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-
-import java.util.Collection;
-import java.util.Optional;
-
-public interface ElementStore {
- Optional<ElementEntity> get(SessionContext context, ElementContext elementContext, Id elementId);
-
- Optional<ElementEntity> getDescriptor(SessionContext context, ElementContext elementContext,
- Id elementId);
-
- Collection<SynchronizationStateEntity> listSynchronizationStates(SessionContext context,
- ElementContext elementContext);
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ErrorCode.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ErrorCode.java
deleted file mode 100644
index 3d0910072c..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/ErrorCode.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-public class ErrorCode {
- public static final int NO_CHANGES_TO_PUBLISH = 60000;
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/Message.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/Message.java
deleted file mode 100644
index 2816974307..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/Message.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-public class Message {
- public static final String NO_CHANGES_TO_PUBLISH =
- "Item Id %s, version Id %s: There are no changes to publish.";
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/PublishService.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/PublishService.java
deleted file mode 100644
index 7b043c830f..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/PublishService.java
+++ /dev/null
@@ -1,201 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.Action;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import com.amdocs.zusammen.datatypes.response.ReturnCode;
-import com.amdocs.zusammen.datatypes.response.ZusammenException;
-import com.amdocs.zusammen.sdk.collaboration.types.CollaborationMergeChange;
-import com.amdocs.zusammen.sdk.collaboration.types.CollaborationPublishResult;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionEntity;
-
-import java.util.Collection;
-import java.util.Date;
-import java.util.Map;
-import java.util.Optional;
-import java.util.UUID;
-
-import static com.amdocs.zusammen.datatypes.response.Module.ZCSP;
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginConstants.ROOT_ELEMENTS_PARENT_ID;
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.convertToElementChange;
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.convertToVersionChange;
-import static org.openecomp.core.zusammen.plugin.collaboration.ErrorCode.NO_CHANGES_TO_PUBLISH;
-
-public class PublishService {
- // TODO: 6/29/2017 throw ZusammenException with ReturnCode when needed.
- private static final String PUSH_NON_EXISTING_VERSION =
- "Item Id %s, version Id %s: Non existing version cannot be pushed.";
-
- private VersionPublicStore versionPublicStore;
- private VersionPrivateStore versionPrivateStore;
- private ElementPublicStore elementPublicStore;
- private ElementPrivateStore elementPrivateStore;
-
- public PublishService(VersionPublicStore versionPublicStore,
- VersionPrivateStore versionPrivateStore,
- ElementPublicStore elementPublicStore,
- ElementPrivateStore elementPrivateStore) {
- this.versionPublicStore = versionPublicStore;
- this.versionPrivateStore = versionPrivateStore;
- this.elementPublicStore = elementPublicStore;
- this.elementPrivateStore = elementPrivateStore;
- }
-
- public CollaborationPublishResult publish(SessionContext context, Id itemId, Id versionId,
- String message) {
- CollaborationPublishResult result = new CollaborationPublishResult();
- result.setChange(new CollaborationMergeChange());
-
- Date publishTime = new Date();
- Id revisionId = new Id(UUID.randomUUID().toString());
- boolean versionFirstPublication = publishVersion(context, itemId, versionId, revisionId,
- publishTime,message);
- if (versionFirstPublication) {
- publishAllElements(context, new ElementContext(itemId, versionId, revisionId), publishTime,
- result);
- } else {
- publishDirtyElements(context, new ElementContext(itemId, versionId, revisionId), publishTime,
- result);
- }
- return result;
- }
-
- private boolean publishVersion(SessionContext context, Id itemId, Id versionId, Id revisionId,
- Date publishTime, String message) {
- SynchronizationStateEntity privateVersionSyncState =
- versionPrivateStore.getSynchronizationState(context, itemId, versionId)
- .orElseThrow(() -> new IllegalArgumentException(
- String.format(PUSH_NON_EXISTING_VERSION, itemId.toString(), versionId.toString())));
-
- if (!privateVersionSyncState.isDirty()) {
- throw new ZusammenException(new ReturnCode(NO_CHANGES_TO_PUBLISH, ZCSP,
- String.format(Message.NO_CHANGES_TO_PUBLISH, itemId, versionId), null));
- }
-
- Optional<SynchronizationStateEntity> publicVersionSyncState =
- versionPublicStore.getSynchronizationState(context, itemId, versionId);
-
- // private must be synced with public (if public exists)
- if (publicVersionSyncState.isPresent() &&
- !privateVersionSyncState.getPublishTime()
- .equals(publicVersionSyncState.get().getPublishTime())) {
- // should not happen as it is validated in zusammen-core
- throw new UnsupportedOperationException("Out of sync item version can not be publish");
- }
-
- boolean versionFirstPublication;
- Map<Id, Id> versionElementIds =
- elementPublicStore.listIds(context, new ElementContext(itemId,
- versionId));
- if (publicVersionSyncState.isPresent()) {
- versionPublicStore.update(context, itemId, new VersionEntity(versionId), revisionId,
- versionElementIds,publishTime,message);
- versionFirstPublication = false;
- } else {
- VersionEntity privateVersion = versionPrivateStore.get(context, itemId, versionId)
- .orElseThrow(() -> new IllegalArgumentException(
- String.format(PUSH_NON_EXISTING_VERSION, itemId.toString(), versionId.toString())));
- versionPublicStore.create(context, itemId, privateVersion, revisionId,versionElementIds,
- publishTime,message);
- versionFirstPublication = true;
- }
- versionPrivateStore.markAsPublished(context, itemId, versionId, publishTime);
- return versionFirstPublication;
- }
-
- private void publishAllElements(SessionContext context, ElementContext elementContext,
- Date publishTime, CollaborationPublishResult result) {
- Collection<SynchronizationStateEntity> privateElementSyncStates =
- elementPrivateStore.listSynchronizationStates(context, elementContext);
-
- for (SynchronizationStateEntity privateElementSyncState : privateElementSyncStates) {
- Optional<ElementEntity> privateElement =
- elementPrivateStore.get(context, elementContext, privateElementSyncState.getId());
-
- if (!privateElement.isPresent()) {
- continue;
- }
- ElementEntity elementToPublish = privateElement.get();
-
- elementPublicStore.create(context, elementContext, elementToPublish,
- privateElementSyncState.isDirty() ? publishTime
- : privateElementSyncState.getPublishTime());
-
- if (privateElementSyncState.isDirty()) {
- elementPrivateStore
- .markAsPublished(context, elementContext, privateElementSyncState.getId(), publishTime);
- }
- updateResult(elementContext, elementToPublish, Action.CREATE,
- ROOT_ELEMENTS_PARENT_ID.equals(privateElementSyncState.getId()), result);
- }
- }
-
- private void publishDirtyElements(SessionContext context, ElementContext elementContext,
- Date publishTime, CollaborationPublishResult result) {
-
- Id revisionId = elementContext.getRevisionId();
- elementContext.setRevisionId(revisionId);
- ElementContext privateElementContext = new ElementContext(elementContext.getItemId(),
- elementContext.getVersionId(),Id.ZERO);
- Collection<SynchronizationStateEntity> privateElementSyncStates =
- elementPrivateStore.listSynchronizationStates(context, elementContext);
-
- Collection<SynchronizationStateEntity> publicElementSyncStates =
- elementPublicStore.listSynchronizationStates(context, elementContext);
-
- for (SynchronizationStateEntity privateElementSyncState : privateElementSyncStates) {
- if (!privateElementSyncState.isDirty()) {
- continue;
- }
-
- Optional<ElementEntity> privateElement =
- elementPrivateStore.get(context, privateElementContext, privateElementSyncState.getId());
-
- ElementEntity elementToPublish;
- Action actionOnPublic;
- if (privateElement.isPresent()) {
- elementToPublish = privateElement.get();
-
- if (publicElementSyncStates.contains(privateElementSyncState)) {
-
- elementPublicStore.update(context, elementContext, elementToPublish, publishTime);
- actionOnPublic = Action.UPDATE;
- } else {
- elementPublicStore.create(context, elementContext, elementToPublish, publishTime);
- actionOnPublic = Action.CREATE;
- }
-
- elementPrivateStore
- .markAsPublished(context, privateElementContext, privateElementSyncState.getId(), publishTime);
- } else {
- elementToPublish =
- elementPublicStore.get(context, elementContext, privateElementSyncState.getId())
- .orElseThrow(() -> new IllegalStateException(
- "Element that should be deleted from public must exist there"));
- elementPublicStore.delete(context, elementContext, elementToPublish, publishTime);
- actionOnPublic = Action.DELETE;
-
- elementPrivateStore
- .markDeletionAsPublished(context, privateElementContext, privateElementSyncState.getId(),
- publishTime);
- }
-
- updateResult(elementContext, elementToPublish, actionOnPublic,
- ROOT_ELEMENTS_PARENT_ID.equals(privateElementSyncState.getId()), result);
- }
- }
-
- private void updateResult(ElementContext elementContext, ElementEntity element,
- Action action, boolean versionDataElement,
- CollaborationPublishResult result) {
- if (versionDataElement) {
- result.getChange().setChangedVersion(convertToVersionChange(elementContext, element, action));
- } else {
- result.getChange().getChangedElements()
- .add(convertToElementChange(elementContext, element, action));
- }
- }
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/RevertService.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/RevertService.java
deleted file mode 100644
index 0d2ea2c0d8..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/RevertService.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-
-public class RevertService {
-
- private ElementPublicStore elementPublicStore;
- private ElementPrivateStore elementPrivateStore;
-
- public RevertService(ElementPublicStore elementPublicStore,
- ElementPrivateStore elementPrivateStore) {
- this.elementPublicStore = elementPublicStore;
- this.elementPrivateStore = elementPrivateStore;
- }
-
- public void revert(SessionContext context, Id itemId, Id versionId, Id revisionId) {
- ElementContext targetContext = new ElementContext(itemId, versionId);
- ElementContext sourceContext = new ElementContext(itemId, versionId, revisionId);
- copyElementsFromPublic(context, sourceContext, targetContext);
- }
-
- private void copyElementsFromPublic(SessionContext context, ElementContext sourceContext,
- ElementContext targetContext) {
- Collection<RevertElementAction> revertElementActions =
- evaluateRevertElementActions(context, sourceContext, targetContext);
-
- revertElementActions.forEach(revertElementAction -> revertElementAction.run(context));
- }
-
- private Collection<RevertElementAction> evaluateRevertElementActions(SessionContext context,
- ElementContext sourceContext,
- ElementContext targetContext) {
-
- Map<Id, Id> sourceElements = elementPublicStore.listIds(context, sourceContext);
- Map<Id, Id> targetPublicElements = elementPublicStore.listIds(context, targetContext);
- Collection<SynchronizationStateEntity> synchronizationStateEntities =
- elementPrivateStore.listSynchronizationStates(context, targetContext);
-
- Map<Id, Id> targetElements =
- evaluateTargetElements(targetPublicElements, synchronizationStateEntities);
-
-
- Collection<RevertElementAction> revertElementActions = new ArrayList<>();
-
- sourceElements.entrySet().forEach(entry -> {
- Id sourceElementId = entry.getKey();
- Id sourceElementRevisionId = entry.getValue();
-
- if (!targetElements.containsKey(sourceElementId)) {
- revertElementActions
- .add(new RevertElementAction(sourceContext, sourceElementId, commands[CREATE]));
- } else if (!targetElements.get(sourceElementId).equals(sourceElementRevisionId)) {
- revertElementActions
- .add(new RevertElementAction(sourceContext, sourceElementId, commands[UPDATE]));
- }
- });
-
- targetElements.entrySet().forEach(entry -> {
- Id targetElementId = entry.getKey();
- if (!sourceElements.containsKey(targetElementId)) {
- revertElementActions
- .add(new RevertElementAction(targetContext, targetElementId, commands[DELETE]));
- }
- });
-
- return revertElementActions;
- }
-
- private Map<Id, Id> evaluateTargetElements(Map<Id, Id> targetPublicElements,
- Collection<SynchronizationStateEntity> syncStates) {
- Map<Id, Id> targetElements = new HashMap<>(targetPublicElements);
- syncStates.stream()
- .filter(SynchronizationStateEntity::isDirty)
- .forEach(syncState -> targetElements.put(syncState.getId(), Id.ZERO));
- return targetElements;
- }
-
- private static class RevertElementAction {
- private ElementContext elementContext;
- private Id elementId;
- private ActionCommand command;
-
- private RevertElementAction(ElementContext elementContext, Id elementId,
- ActionCommand command) {
- this.elementContext = elementContext;
- this.elementId = elementId;
- this.command = command;
- }
-
- public ElementContext getElementContext() {
- return elementContext;
- }
-
- public Id getElementId() {
- return elementId;
- }
-
- public void run(SessionContext context) {
- command.run(context, elementContext, elementId);
- }
- }
-
- private interface ActionCommand {
- void run(SessionContext context, ElementContext elementContext, Id elementId);
- }
-
- private static int CREATE = 0;
- private static int UPDATE = 1;
- private static int DELETE = 2;
-
- private ActionCommand[] commands = {new ActionCommand() {
- @Override
- public void run(SessionContext context, ElementContext elementContext, Id elementId) {
- //create
- Optional<ElementEntity> element = elementPublicStore.get(context, elementContext, elementId);
- if (!element.isPresent()) {
- throw getMissingElementException(elementContext, elementId);
- }
- elementPrivateStore.create(context, elementContext, element.get());
- }
- }, new ActionCommand() {
- @Override
- public void run(SessionContext context, ElementContext elementContext, Id elementId) {
- //update
- Optional<ElementEntity> element = elementPublicStore.get(context, elementContext, elementId);
- if (!element.isPresent()) {
- throw getMissingElementException(elementContext, elementId);
- }
- elementPrivateStore.update(context, elementContext, element.get());
- }
- }, new ActionCommand() {
- @Override
- public void run(SessionContext context, ElementContext elementContext, Id elementId) {
- //delete
- Optional<ElementEntity> element = elementPrivateStore.get(context, elementContext, elementId);
- if (!element.isPresent()) {
- return; // deleted by parent when hierarchy was deleted
- }
- elementPrivateStore.delete(context, elementContext, element.get());
- }
- }};
-
- private RuntimeException getMissingElementException(ElementContext elementContext,
- Id elementId) {
- return new IllegalStateException(
- String.format("Item Id %s, version Id %s, revision Id %s: Missing element with Id %s",
- elementContext.getItemId().getValue(), elementContext.getVersionId().getValue(),
- elementContext.getRevisionId().getValue(), elementId.getValue())
- );
- }
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/SyncService.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/SyncService.java
deleted file mode 100644
index 04a7e9ffb1..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/SyncService.java
+++ /dev/null
@@ -1,384 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.Action;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import com.amdocs.zusammen.sdk.collaboration.types.CollaborationMergeChange;
-import com.amdocs.zusammen.sdk.collaboration.types.CollaborationMergeConflict;
-import com.amdocs.zusammen.sdk.collaboration.types.CollaborationMergeResult;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.StageEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionEntity;
-
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import java.util.function.Function;
-import java.util.function.Predicate;
-import java.util.stream.Collectors;
-
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginConstants.ROOT_ELEMENTS_PARENT_ID;
-
-public class SyncService {
- private static final String PULL_NON_EXISTING_VERSION =
- "Item Id %s, version Id %s: Non existing version cannot be synced.";
- private static final String PUBLIC_SYNC_STATE_EXISTS_WITHOUT_ELEMENT =
- "Item Id %s, version Id %s: Sync state of element with Id %s " +
- "exists in public space while the element does not";
- private static final String PRIVATE_UNPUBLISHED_SYNC_STATE_EXISTS_WITHOUT_ELEMENT =
- "Item Id %s, version Id %s: Sync state of unpublished element with Id %s " +
- "exists in private space while the element does not";
-
- private VersionPublicStore versionPublicStore;
- private VersionPrivateStore versionPrivateStore;
- private VersionStageStore versionStageStore;
- private ElementPublicStore elementPublicStore;
- private ElementPrivateStore elementPrivateStore;
- private ElementStageStore elementStageStore;
-
- public SyncService(VersionPublicStore versionPublicStore,
- VersionPrivateStore versionPrivateStore,
- VersionStageStore versionStageStore,
- ElementPublicStore elementPublicStore,
- ElementPrivateStore elementPrivateStore,
- ElementStageStore elementStageStore) {
- this.versionPublicStore = versionPublicStore;
- this.versionPrivateStore = versionPrivateStore;
- this.versionStageStore = versionStageStore;
- this.elementPublicStore = elementPublicStore;
- this.elementPrivateStore = elementPrivateStore;
- this.elementStageStore = elementStageStore;
- }
-
- public CollaborationMergeResult sync(SessionContext context, Id itemId, Id versionId,
- boolean force) {
- SynchronizationStateEntity publicVersionSyncState =
- versionPublicStore.getSynchronizationState(context, itemId, versionId)
- .orElseThrow(() -> new IllegalStateException(
- String.format(PULL_NON_EXISTING_VERSION, itemId.toString(), versionId.toString())));
-
- Date publishTime = publicVersionSyncState.getPublishTime();
-
- Optional<SynchronizationStateEntity> privateVersionSyncState =
- versionPrivateStore.getSynchronizationState(context, itemId, versionId);
-
- if (force || !privateVersionSyncState.isPresent() ||
- !publishTime.equals(privateVersionSyncState.get().getPublishTime())) {
- ElementContext elementContext =
- new ElementContext(itemId, versionId, publicVersionSyncState.getRevisionId());
-
- Collection<SynchronizationStateEntity> publicSyncStates =
- elementPublicStore.listSynchronizationStates(context, elementContext);
- Collection<SynchronizationStateEntity> privateSyncStates =
- elementPrivateStore.listSynchronizationStates(context, elementContext);
- Map<Id, SynchronizationStateEntity> publicSyncStateById = toMapById(publicSyncStates);
-
- Set<Id> syncedElements = new HashSet<>();
- if (force) {
- List<SynchronizationStateEntity> dirtyPrivateSyncStates = privateSyncStates.stream()
- .filter(SynchronizationStateEntity::isDirty)
- .collect(Collectors.toList());
-
- forceSyncDirtyElements(context, elementContext, dirtyPrivateSyncStates, publicSyncStateById,
- syncedElements);
- }
-
- if (!privateVersionSyncState.isPresent() ||
- !publishTime.equals(privateVersionSyncState.get().getPublishTime())) {
- syncVersion(context, itemId, versionId, publishTime, privateVersionSyncState.isPresent());
- syncElements(context, elementContext,
- privateVersionSyncState.map(SynchronizationStateEntity::getPublishTime).orElse(null),
- publicSyncStates, privateSyncStates, publicSyncStateById, syncedElements);
- }
- }
-
- return createResult();
- }
-
- private CollaborationMergeResult createResult() {
- CollaborationMergeResult result = new CollaborationMergeResult();
- result.setChange(new CollaborationMergeChange());
- result.setConflict(new CollaborationMergeConflict());
- return result;
- }
-
- private void syncVersion(SessionContext context, Id itemId, Id versionId, Date publishTime,
- boolean versionExistOnPrivate) {
- if (versionExistOnPrivate) {
- stageVersion(context, itemId, new VersionEntity(versionId), Action.UPDATE, publishTime);
- } else {
- stageVersion(context, itemId, versionPublicStore.get(context, itemId, versionId)
- .orElseThrow(() -> new IllegalArgumentException(String
- .format(PULL_NON_EXISTING_VERSION, itemId.toString(), versionId.toString()))),
- Action.CREATE, publishTime);
- }
- }
-
- private void syncElements(SessionContext context, ElementContext elementContext,
- Date previousSyncedPublishTime,
- Collection<SynchronizationStateEntity> publicSyncStates,
- Collection<SynchronizationStateEntity> privateSyncStates,
- Map<Id, SynchronizationStateEntity> publicSyncStateById,
- Set<Id> syncedElements) {
- Map<Id, SynchronizationStateEntity> privateSyncStateById = toMapById(privateSyncStates);
-
- Collection<SynchronizationStateEntity> updatedPublicSyncStates =
- previousSyncedPublishTime == null
- ? publicSyncStates
- : publicSyncStates.stream()
- .filter(syncState -> syncState.getPublishTime().after(previousSyncedPublishTime))
- .collect(Collectors.toList());
-
- syncPublicUpdatedElements(context, elementContext, updatedPublicSyncStates,
- publicSyncStateById, privateSyncStateById, syncedElements);
-
- List<SynchronizationStateEntity> onlyOnPrivatePublishedSyncStates =
- privateSyncStates.stream()
- .filter(syncState -> !publicSyncStateById.containsKey(syncState.getId()) &&
- syncState.getPublishTime() != null)
- .collect(Collectors.toList());
-
- syncPublicDeletedElements(context, elementContext, onlyOnPrivatePublishedSyncStates,
- publicSyncStateById, privateSyncStateById, syncedElements);
- }
-
- private void syncPublicUpdatedElements(SessionContext context, ElementContext elementContext,
- Collection<SynchronizationStateEntity> updatedPublicSyncStates,
- Map<Id, SynchronizationStateEntity> publicSyncStateById,
- Map<Id, SynchronizationStateEntity> privateSyncStateById,
- Set<Id> syncedElements) {
- for (SynchronizationStateEntity publicSyncState : updatedPublicSyncStates) {
- if (syncedElements.contains(publicSyncState.getId())) {
- continue;
- }
-
- ElementEntity publicElement =
- elementPublicStore.get(context, elementContext, publicSyncState.getId()).orElseThrow(
- () -> new IllegalStateException(String
- .format(PUBLIC_SYNC_STATE_EXISTS_WITHOUT_ELEMENT,
- elementContext.getItemId().getValue(),
- elementContext.getVersionId().getValue(),
- publicSyncState.getId().getValue())));
-
- SynchronizationStateEntity privateSyncState =
- privateSyncStateById.get(publicSyncState.getId());
-
- if (privateSyncState != null) {
- if (!privateSyncState.isDirty()) {
- // not changed on private
- stageElement(context, elementContext, publicElement,
- publicSyncState.getPublishTime(),
- Action.UPDATE, false, null);
- syncedElements.add(publicSyncState.getId());
- } else {
- Optional<ElementEntity> privateElement =
- elementPrivateStore.get(context, elementContext, publicSyncState.getId());
-
- if (privateElement.isPresent()) {
- // updated on private - conflict if it has different hash
- stageElement(context, elementContext, publicElement,
- publicSyncState.getPublishTime(), Action.UPDATE,
- !publicElement.getElementHash().equals(privateElement.get().getElementHash()),
- null);
-
- syncedElements.add(publicSyncState.getId());
- } else {
- // deleted on private - conflict tree
- Set<Id> changeTreeElementIds =
- stagePublicElementTree(context, elementContext, publicElement, publicSyncStateById,
- (treeElementIds) -> true);
- syncedElements.addAll(changeTreeElementIds);
- }
- }
- } else {
- // not existing on private - new creation on public
- Set<Id> changeTreeElementIds =
- stagePublicElementTree(context, elementContext, publicElement, publicSyncStateById,
- (treeElementIds) -> containsDirty(treeElementIds, privateSyncStateById));
- syncedElements.addAll(changeTreeElementIds);
- }
- }
- }
-
- private void syncPublicDeletedElements(
- SessionContext context, ElementContext elementContext,
- Collection<SynchronizationStateEntity> onlyOnPrivatePublishedSyncStates,
- Map<Id, SynchronizationStateEntity> publicSyncStateById,
- Map<Id, SynchronizationStateEntity> privateSyncStateById,
- Set<Id> syncedElements) {
- for (SynchronizationStateEntity privateSyncState : onlyOnPrivatePublishedSyncStates) {
- if (syncedElements.contains(privateSyncState.getId())) {
- continue;
- }
-
- Optional<ElementEntity> privateElement =
- elementPrivateStore.get(context, elementContext, privateSyncState.getId());
-
- if (!privateElement.isPresent()) {
- // deleted on private as well
- stageElement(context, elementContext, new ElementEntity(privateSyncState.getId()),
- null, Action.DELETE, false, null);
- syncedElements.add(privateSyncState.getId());
- } else {
- Set<Id> changeTreeElementIds =
- stageElementTree(context, elementContext, privateElement.get(),
- elementPrivateStore, publicSyncStateById::containsKey,
- (treeElementIds) -> containsDirty(treeElementIds, privateSyncStateById),
- (elementId) -> null, Action.DELETE);
- syncedElements.addAll(changeTreeElementIds);
- }
- }
- }
-
- private void forceSyncDirtyElements(SessionContext context, ElementContext elementContext,
- List<SynchronizationStateEntity> dirtyPrivateSyncStates,
- Map<Id, SynchronizationStateEntity> publicSyncStateById,
- Set<Id> syncedElements) {
- for (SynchronizationStateEntity privateSyncState : dirtyPrivateSyncStates) {
- Optional<ElementEntity> privateElement =
- elementPrivateStore.get(context, elementContext, privateSyncState.getId());
- if (privateSyncState.getPublishTime() == null) {
- stageElement(context, elementContext,
- privateElement.orElseThrow(() -> new IllegalStateException(
- String.format(PRIVATE_UNPUBLISHED_SYNC_STATE_EXISTS_WITHOUT_ELEMENT,
- elementContext.getItemId().getValue(),
- elementContext.getVersionId().getValue(),
- privateSyncState.getId().getValue()))),
- null, Action.DELETE, false, null);
- } else {
- SynchronizationStateEntity publicSyncState =
- publicSyncStateById.get(privateSyncState.getId());
- if (publicSyncState != null) {
- ElementEntity publicElement =
- elementPublicStore.get(context, elementContext, privateSyncState.getId()).orElseThrow(
- () -> new IllegalStateException(String
- .format(PUBLIC_SYNC_STATE_EXISTS_WITHOUT_ELEMENT,
- elementContext.getItemId().getValue(),
- elementContext.getVersionId().getValue(),
- privateSyncState.getId().getValue())));
-
- stageElement(context, elementContext, publicElement, publicSyncState.getPublishTime(),
- privateElement.isPresent() ? Action.UPDATE : Action.CREATE, false, null);
- } else {
- stageElement(context, elementContext, privateElement.isPresent()
- ? privateElement.get()
- : new ElementEntity(privateSyncState.getId()),
- null, Action.DELETE, false, null);
- }
- }
- syncedElements.add(privateSyncState.getId());
- }
- }
-
- private Set<Id> stagePublicElementTree(SessionContext context,
- ElementContext elementContext,
- ElementEntity publicElement,
- Map<Id, SynchronizationStateEntity> publicSyncStateById,
- Predicate<Set<Id>> isElementTreeConflicted) {
-
-
- return stageElementTree(context, elementContext, publicElement,
- elementPublicStore,
- (elementId) -> elementPrivateStore.getDescriptor(context, elementContext, elementId)
- .isPresent(),
- isElementTreeConflicted,
- (elementId) -> publicSyncStateById.get(elementId).getPublishTime(),
- Action.CREATE);
- }
-
- private Set<Id> stageElementTree(SessionContext context, ElementContext elementContext,
- ElementEntity element,
- ElementStore elementStore,
- Predicate<Id> isElementExist,
- Predicate<Set<Id>> isElementTreeConflicted,
- Function<Id, Date> stagePublishTimeGetter,
- Action stageAction) {
- ElementEntity elementTreeRoot = findRootElementOfChange(context, elementContext,
- elementStore, isElementExist, element);
-
- Set<Id> elementTreeIds = new HashSet<>();
- elementTreeIds.add(elementTreeRoot.getId());
-
- Set<Id> subElementIds = stageElementSubs(context, elementContext, elementStore, elementTreeRoot,
- stagePublishTimeGetter, stageAction);
- elementTreeIds.addAll(subElementIds);
-
- boolean conflicted = isElementTreeConflicted.test(elementTreeIds);
- stageElement(context, elementContext, elementTreeRoot,
- stagePublishTimeGetter.apply(elementTreeRoot.getId()), stageAction, conflicted,
- conflicted ? subElementIds : null);
- return elementTreeIds;
- }
-
- private ElementEntity findRootElementOfChange(SessionContext context,
- ElementContext elementContext,
- ElementStore elementStore,
- Predicate<Id> isElementExistOnOppositeStore,
- ElementEntity element) {
- return element.getId().equals(ROOT_ELEMENTS_PARENT_ID) ||
- isElementExistOnOppositeStore.test(element.getParentId())
- ? element
- : findRootElementOfChange(context, elementContext, elementStore,
- isElementExistOnOppositeStore,
- elementStore.get(context, elementContext, element.getParentId())
- .orElseThrow(() -> new IllegalStateException(
- String.format("Element %s exists while its parent element %s does not",
- element.getId(), element.getParentId()))));
- }
-
- private boolean containsDirty(Set<Id> elementIds,
- Map<Id, SynchronizationStateEntity> syncStateById) {
- return elementIds.stream().anyMatch(elementId -> {
- SynchronizationStateEntity privateSyncState = syncStateById.get(elementId);
- return privateSyncState != null && privateSyncState.isDirty();
- });
- }
-
- private Set<Id> stageElementSubs(SessionContext context, ElementContext elementContext,
- ElementStore elementStore, ElementEntity parentElement,
- Function<Id, Date> stagePublishTimeGetter, Action stageAction) {
- Set<Id> elementTreeIds = new HashSet<>();
- for (Id elementId : parentElement.getSubElementIds()) {
- ElementEntity element = elementStore.get(context, elementContext, elementId).get();
-
- stageElement(context, elementContext, element, stagePublishTimeGetter.apply(elementId),
- stageAction, false, null);
-
- elementTreeIds.add(elementId);
- elementTreeIds.addAll(
- stageElementSubs(context, elementContext, elementStore, element, stagePublishTimeGetter,
- stageAction));
- }
- return elementTreeIds;
- }
-
- private void stageElement(SessionContext context, ElementContext elementContext,
- ElementEntity element, Date publishTime, Action action,
- boolean conflicted, Set<Id> conflictDependents) {
- StageEntity<ElementEntity> elementStage =
- new StageEntity<>(element, publishTime, action, conflicted);
- if (conflictDependents != null) {
- elementStage.setConflictDependents(
- conflictDependents.stream().map(ElementEntity::new).collect(Collectors.toSet()));
- }
- elementStageStore.create(context, elementContext, elementStage);
- }
-
- private void stageVersion(SessionContext context, Id itemId, VersionEntity stageVersion,
- Action stageAction, Date publishTime) {
- versionStageStore
- .create(context, itemId, new StageEntity<>(stageVersion, publishTime, stageAction, false));
- }
-
- private Map<Id, SynchronizationStateEntity> toMapById(
- Collection<SynchronizationStateEntity> syncStates) {
- return syncStates.stream()
- .collect(Collectors.toMap(SynchronizationStateEntity::getId, Function.identity()));
- }
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionPrivateStore.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionPrivateStore.java
deleted file mode 100644
index a024327548..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionPrivateStore.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionEntity;
-
-import java.util.Date;
-import java.util.Optional;
-
-public interface VersionPrivateStore {
- Optional<VersionEntity> get(SessionContext context, Id itemId, Id versionId);
-
- Optional<SynchronizationStateEntity> getSynchronizationState(SessionContext context, Id itemId,
- Id versionId);
-
- void create(SessionContext context, Id itemId, VersionEntity version);
-
- void update(SessionContext context, Id itemId, VersionEntity version);
-
- void update(SessionContext context, Id itemId, VersionEntity version, Date publishTime,
- boolean dirty);
-
- void delete(SessionContext context, Id itemId, VersionEntity version);
-
- void markAsPublished(SessionContext context, Id itemId, Id versionId, Date publishTime);
-
- void commitStagedCreate(SessionContext context, Id itemId, VersionEntity version,
- Date publishTime);
-
- void commitStagedUpdate(SessionContext context, Id itemId, VersionEntity version,
- Date publishTime);
-
- void commitStagedIgnore(SessionContext context, Id itemId, VersionEntity version,
- Date publishTime);
-
-
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionPublicStore.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionPublicStore.java
deleted file mode 100644
index c86db0ec43..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionPublicStore.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.itemversion.ItemVersionRevisions;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionEntity;
-
-import java.util.Date;
-import java.util.Map;
-import java.util.Optional;
-
-public interface VersionPublicStore {
-
- Optional<VersionEntity> get(SessionContext context, Id itemId, Id versionId);
-
- Optional<SynchronizationStateEntity> getSynchronizationState(SessionContext context,
- Id itemId, Id versionId);
-
- void create(SessionContext context, Id itemId, VersionEntity version, Id revisionId,
- Map<Id, Id> versionElementIds, Date publishTime, String message);
-
- void update(SessionContext context, Id itemId, VersionEntity version, Id revisionId,
- Map<Id, Id> versionElementIds, Date publishTime, String message);
-
- boolean checkHealth(SessionContext context);
-
- ItemVersionRevisions listItemVersionRevisions(SessionContext context, Id itemId, Id versionId);
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionStageStore.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionStageStore.java
deleted file mode 100644
index 5058a262cc..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/VersionStageStore.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import org.openecomp.core.zusammen.plugin.dao.types.StageEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionEntity;
-
-import java.util.Optional;
-
-public interface VersionStageStore {
-
- Optional<StageEntity<VersionEntity>> get(SessionContext context, Id itemId,
- VersionEntity versionEntity);
-
- void create(SessionContext context, Id itemId, StageEntity<VersionEntity> versionStage);
-
- void delete(SessionContext context, Id itemId, VersionEntity version);
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementPrivateStoreImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementPrivateStoreImpl.java
deleted file mode 100644
index 9f54ee3ae2..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementPrivateStoreImpl.java
+++ /dev/null
@@ -1,269 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration.impl;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
-import org.openecomp.core.zusammen.plugin.ZusammenPluginConstants;
-import org.openecomp.core.zusammen.plugin.collaboration.ElementPrivateStore;
-import org.openecomp.core.zusammen.plugin.dao.ElementRepository;
-import org.openecomp.core.zusammen.plugin.dao.ElementRepositoryFactory;
-import org.openecomp.core.zusammen.plugin.dao.ElementSynchronizationStateRepository;
-import org.openecomp.core.zusammen.plugin.dao.ElementSynchronizationStateRepositoryFactory;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getPrivateElementContext;
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getPrivateSpaceName;
-
-public class ElementPrivateStoreImpl implements ElementPrivateStore {
- private static final Id REVISION_ID = Id.ZERO; // the private revision id is Id.ZERO 0000000...
-
- @Override
- public Map<Id, Id> listIds(SessionContext context, ElementContext elementContext) {
- return getElementRepository(context)
- .listIds(context, new ElementEntityContext(getPrivateSpaceName(context), elementContext));
- }
-
- @Override
- public Collection<ElementEntity> listSubs(SessionContext context, ElementContext elementContext,
- Id elementId) {
- if (elementId == null) {
- elementId = ZusammenPluginConstants.ROOT_ELEMENTS_PARENT_ID;
- }
-
- ElementRepository elementRepository = getElementRepository(context);
- ElementEntityContext privateContext =
- new ElementEntityContext(getPrivateSpaceName(context), elementContext);
- privateContext.setRevisionId(REVISION_ID);
- return elementRepository.get(context, privateContext, new ElementEntity(elementId))
- .map(ElementEntity::getSubElementIds).orElse(new HashSet<>()).stream()
- .map(subElementId -> elementRepository
- .get(context, privateContext, new ElementEntity(subElementId)).get())
- .filter(Objects::nonNull)
- .collect(Collectors.toList());
- }
-
- @Override
- public Optional<ElementEntity> get(SessionContext context, ElementContext elementContext,
- Id elementId) {
- ElementEntityContext privateElementContext =
- new ElementEntityContext(getPrivateSpaceName(context), elementContext);
- privateElementContext.setRevisionId(REVISION_ID);
- return getElementRepository(context)
- .get(context, privateElementContext,
- new ElementEntity(elementId));
- }
-
- @Override
- public Optional<ElementEntity> getDescriptor(SessionContext context,
- ElementContext elementContext, Id elementId) {
- return getElementRepository(context)
- .getDescriptor(context,
- new ElementEntityContext(getPrivateSpaceName(context), getPrivateElementContext
- (elementContext)),
- new ElementEntity(elementId));
- }
-
- @Override
- public Collection<SynchronizationStateEntity> listSynchronizationStates(SessionContext context,
- ElementContext elementContext) {
- ElementEntityContext privateElementContext =
- new ElementEntityContext(getPrivateSpaceName(context), elementContext);
- return getElementSyncStateRepository(context)
- .list(context, privateElementContext);
- }
-
- @Override
- public Optional<SynchronizationStateEntity> getSynchronizationState(SessionContext context,
- ElementContext elementContext,
- Id elementId) {
-
- ElementEntityContext privateElementContext =
- new ElementEntityContext(getPrivateSpaceName(context), getPrivateElementContext
- (elementContext));
- return getElementSyncStateRepository(context)
- .get(context, privateElementContext,
- new SynchronizationStateEntity(elementId, REVISION_ID));
- }
-
- @Override
- public void create(SessionContext context, ElementContext elementContext, ElementEntity element) {
- create(context, elementContext, element, true, null);
- }
-
- @Override
- public boolean update(SessionContext context, ElementContext elementContext,
- ElementEntity element) {
- ElementEntityContext privateContext =
- new ElementEntityContext(getPrivateSpaceName(context), elementContext);
- privateContext.setRevisionId(REVISION_ID);
-
- if (!isElementChanged(context, privateContext, element)) {
- return false;
- }
-
- getElementRepository(context).update(context, privateContext, element);
- getElementSyncStateRepository(context).markAsDirty(context, privateContext,
- new SynchronizationStateEntity(element.getId(), REVISION_ID));
- return true;
- }
-
- @Override
- public void delete(SessionContext context, ElementContext elementContext, ElementEntity element) {
-
- ElementEntityContext privateElementContext =
- new ElementEntityContext(getPrivateSpaceName(context), elementContext);
- privateElementContext.setRevisionId(REVISION_ID);
- deleteElementHierarchy(context, getElementRepository(context),
- getElementSyncStateRepository(context),
- privateElementContext, element);
- }
-
- @Override
- public void markAsPublished(SessionContext context, ElementContext elementContext, Id elementId,
- Date publishTime) {
- ElementEntityContext privateContext =
- new ElementEntityContext(getPrivateSpaceName(context), elementContext);
- privateContext.setRevisionId(REVISION_ID);
- getElementSyncStateRepository(context).update(context,
- privateContext,
- new SynchronizationStateEntity(elementId, REVISION_ID, publishTime, false));
- }
-
- @Override
- public void markDeletionAsPublished(SessionContext context, ElementContext elementContext,
- Id elementId, Date publishTime) {
-
- ElementEntityContext privateContext =
- new ElementEntityContext(getPrivateSpaceName(context), elementContext);
- privateContext.setRevisionId(REVISION_ID);
- getElementSyncStateRepository(context).delete(context,
- privateContext,
- new SynchronizationStateEntity(elementId, REVISION_ID));
- }
-
- @Override
- public void commitStagedCreate(SessionContext context, ElementContext elementContext,
- ElementEntity element, Date publishTime) {
- create(context, elementContext, element, false, publishTime);
- }
-
- @Override
- public void commitStagedUpdate(SessionContext context, ElementContext elementContext,
- ElementEntity element, Date publishTime) {
- ElementEntityContext privateContext =
- new ElementEntityContext(getPrivateSpaceName(context), elementContext);
- privateContext.setRevisionId(REVISION_ID);
-
- getElementRepository(context).update(context, privateContext, element);
- // Currently Resolution='Other' is not supported so this is invoked after conflict was
- // resolved with Resolution='Theirs' so dirty flag should be turned off.
- // (if there was no conflict it's off anyway)
- getElementSyncStateRepository(context).update(context, privateContext,
- new SynchronizationStateEntity(element.getId(), REVISION_ID, publishTime, false));
- }
-
- @Override
- public void commitStagedDelete(SessionContext context, ElementContext elementContext,
- ElementEntity element) {
- ElementEntityContext privateContext =
- new ElementEntityContext(getPrivateSpaceName(context), elementContext);
- privateContext.setRevisionId(REVISION_ID);
- getElementRepository(context).delete(context, privateContext, element);
- getElementSyncStateRepository(context)
- .delete(context, privateContext,
- new SynchronizationStateEntity(element.getId(), REVISION_ID));
- }
-
- @Override
- public void commitStagedIgnore(SessionContext context, ElementContext elementContext,
- ElementEntity element, Date publishTime) {
- // publish time - updated to mark that this element was already synced with this publish time
- // (even though the local data was preferred) and to prevent this conflict again.
- // dirty - turned on because the local data which is different than the public one was
- // preferred. It will enable future publication of this data.
- getElementSyncStateRepository(context).update(context,
- new ElementEntityContext(getPrivateSpaceName(context), elementContext),
- new SynchronizationStateEntity(element.getId(), REVISION_ID, publishTime, true));
- }
-
- private void create(SessionContext context, ElementContext elementContext,
- ElementEntity element, boolean dirty, Date publishTime) {
- ElementEntityContext privateContext =
- new ElementEntityContext(getPrivateSpaceName(context), elementContext);
- privateContext.setRevisionId(REVISION_ID);
- getElementRepository(context).create(context, privateContext, element);
- getElementSyncStateRepository(context).create(context, privateContext,
- new SynchronizationStateEntity(element.getId(), REVISION_ID, publishTime, dirty));
- }
-
-
- private void deleteElementHierarchy(
- SessionContext context, ElementRepository elementRepository,
- ElementSynchronizationStateRepository elementSyncStateRepository,
- ElementEntityContext elementContext, ElementEntity element) {
-
- Optional<ElementEntity> retrieved = elementRepository.get(context, elementContext, element);
- if (!retrieved.isPresent()) {
- return;
- }
- retrieved.get().getSubElementIds().stream()
- .map(ElementEntity::new)
- .forEach(subElementEntity -> deleteElementHierarchy(
- context, elementRepository, elementSyncStateRepository, elementContext,
- subElementEntity));
-
- // only for the first one the parentId will populated (so it'll be removed from its parent)
- elementRepository.delete(context, elementContext, element);
- handleDeletedElementSyncState(context, elementSyncStateRepository, elementContext, element);
- }
-
- private void handleDeletedElementSyncState(SessionContext context,
- ElementSynchronizationStateRepository elementSyncStateRepository,
- ElementEntityContext elementContext,
- ElementEntity element) {
- SynchronizationStateEntity elementSyncState = new SynchronizationStateEntity(element.getId(),
- REVISION_ID);
- if (elementSyncStateRepository.get(context, elementContext, elementSyncState).
- orElseThrow(
- () -> new IllegalStateException("Synchronization state must exist for an element"))
- .getPublishTime() == null) {
- elementSyncStateRepository.delete(context, elementContext, elementSyncState);
- } else {
- elementSyncStateRepository.markAsDirty(context, elementContext, elementSyncState);
- }
- }
-
- private boolean isElementChanged(SessionContext context,
- ElementEntityContext elementContext,
- ElementEntity newElement) {
- return getElementHash(context, elementContext, new ElementEntity(newElement.getId()))
- .map(existingHash -> !newElement.getElementHash().equals(existingHash))
- .orElse(true);
- }
-
- private Optional<Id> getElementHash(SessionContext context,
- ElementEntityContext elementEntityContext,
- ElementEntity element) {
- return getElementRepository(context).getHash(context, elementEntityContext, element);
- }
-
- protected ElementRepository getElementRepository(SessionContext context) {
- return ElementRepositoryFactory.getInstance().createInterface(context);
- }
-
- protected ElementSynchronizationStateRepository getElementSyncStateRepository(
- SessionContext context) {
- return ElementSynchronizationStateRepositoryFactory.getInstance().createInterface(context);
- }
-
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementPublicStoreImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementPublicStoreImpl.java
deleted file mode 100644
index d946a529ce..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementPublicStoreImpl.java
+++ /dev/null
@@ -1,189 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration.impl;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.Space;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
-import org.openecomp.core.zusammen.plugin.collaboration.ElementPublicStore;
-import org.openecomp.core.zusammen.plugin.dao.ElementRepository;
-import org.openecomp.core.zusammen.plugin.dao.ElementRepositoryFactory;
-import org.openecomp.core.zusammen.plugin.dao.ElementSynchronizationStateRepository;
-import org.openecomp.core.zusammen.plugin.dao.ElementSynchronizationStateRepositoryFactory;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Optional;
-
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getSpaceName;
-
-public class ElementPublicStoreImpl implements ElementPublicStore {
-
- @Override
- public Optional<ElementEntity> get(SessionContext context,
- ElementContext elementContext, Id elementId) {
- return getElementRepository(context)
- .get(context, new ElementEntityContext(getSpaceName(context, Space.PUBLIC), elementContext),
- new ElementEntity(elementId));
- }
-
- @Override
- public Optional<ElementEntity> getDescriptor(SessionContext context,
- ElementContext elementContext, Id elementId) {
- return getElementRepository(context).getDescriptor(context,
- new ElementEntityContext(getSpaceName(context, Space.PUBLIC), elementContext),
- new ElementEntity(elementId));
- }
-
- @Override
- public Collection<SynchronizationStateEntity> listSynchronizationStates(
- SessionContext context, ElementContext elementContext) {
- ElementEntityContext entityContext = new ElementEntityContext(getSpaceName
- (context, Space.PUBLIC), elementContext);
-
- ElementSynchronizationStateRepository elementSyncStateRepository =
- getElementSyncStateRepository(context);
- Map<Id, Id> ids = getElementRepository(context).listIds(context, entityContext);
-
- Collection<SynchronizationStateEntity> synchronizationStateEntities = new HashSet<>();
- for (Map.Entry<Id, Id> elementEntry : ids.entrySet()) {
- Optional<SynchronizationStateEntity> synchronizationStateEntity = elementSyncStateRepository.
- get(context, entityContext, new SynchronizationStateEntity(elementEntry.getKey(),
- elementEntry.getValue()));
- if (synchronizationStateEntity.isPresent()) {
- synchronizationStateEntities.add(synchronizationStateEntity.get());
- } else {
- /*throw new IllegalStateException(String.format(
- "list Synchronization States error: " + "element %s revision %s, which appears as an " +
- "element of " +
- "item" +
- " %s version %s, does not exist",
- elementEntry.getKey(), elementEntry.getValue(), elementContext.getItemId().getValue(),
- elementContext.getVersionId().getValue()));*/
- }
- }
-
- return synchronizationStateEntities;
- }
-
- @Override
- public void create(SessionContext context, ElementContext elementContext,
- ElementEntity element, Date publishTime) {
- ElementEntityContext publicContext =
- new ElementEntityContext(getSpaceName(context, Space.PUBLIC), elementContext);
-
-
- if (element.getParentId() != null) {
- createParentElement(context, elementContext, element.getParentId(), publishTime);
- }
- getElementRepository(context).create(context, publicContext, element);
- getElementSyncStateRepository(context).create(context, publicContext,
- new SynchronizationStateEntity(element.getId(), elementContext.getRevisionId(),
- publishTime, false));
- }
-
- @Override
- public void update(SessionContext context, ElementContext elementContext,
- ElementEntity element, Date publishTime) {
- //todo - update in public should be create new entry with new revision_id in public - this is a
- // new revision
- ElementEntityContext publicContext =
- new ElementEntityContext(getSpaceName(context, Space.PUBLIC), elementContext);
-
- Optional<ElementEntity> publicElement = getElementRepository(context).get(context,
- publicContext, new ElementEntity(element.getId()));
- if (publicElement.isPresent()) {
- getElementRepository(context).update(context, publicContext, element);
- } else {
- publicElement = get(context,new ElementContext(publicContext.getItemId(),publicContext
- .getVersionId()),element.getId());
- element.setSubElementIds(publicElement.get().getSubElementIds());
- getElementRepository(context).create(context, publicContext, element);
- }
- getElementSyncStateRepository(context).update(context, publicContext,
- new SynchronizationStateEntity(element.getId(), elementContext.getRevisionId(), publishTime,
- false));
- }
-
- @Override
- public void delete(SessionContext context, ElementContext elementContext,
- ElementEntity element, Date publishTime) {
- ElementEntityContext publicContext =
- new ElementEntityContext(getSpaceName(context, Space.PUBLIC), elementContext);
-
- if (element.getParentId() != null) {
- Optional<ElementEntity> parentElement = get(context, elementContext, element.getParentId());
- if (parentElement.isPresent()) {
- createParentElement(context, elementContext, element.getParentId(), publishTime);
- }
- }
-
- getElementRepository(context).delete(context, publicContext, element);
- getElementSyncStateRepository(context)
- .delete(context, publicContext, new SynchronizationStateEntity(element.getId(),
- elementContext.getRevisionId()));
- }
-
- @Override
- public Map<Id, Id> listIds(SessionContext context, ElementContext elementContext) {
-
- return getElementRepository(context)
- .listIds(context,
- new ElementEntityContext(getSpaceName(context, Space.PUBLIC), elementContext));
-
- }
-
- private void createParentElement(SessionContext context, ElementContext elementContext,
- Id parentElementId, Date publishTime
- ) {
- ElementEntityContext publicContext =
- new ElementEntityContext(getSpaceName(context, Space.PUBLIC), elementContext);
-
- Optional<ElementEntity> parentElement =
- getElementRepository(context).get(context, new ElementEntityContext
- (publicContext.getSpace(), publicContext.getItemId(), publicContext.getVersionId(),
- elementContext.getRevisionId()),
- new ElementEntity(parentElementId));
- if(parentElement.isPresent()) {
- update(context, elementContext, parentElement.get(), publishTime);
- }
-
-
- /* Id elementRevisionId = getElementRevision(context, publicContext, elementContext.getRevisionId()
- , parentElementId);
-
- if (elementRevisionId != null && !elementRevisionId.equals(elementContext.getRevisionId())) {
- Optional<ElementEntity> parentElement =
- getElementRepository(context).get(context, new ElementEntityContext
- (publicContext.getSpace(), publicContext.getItemId(), publicContext.getVersionId(),
- elementContext.getRevisionId()),
- new ElementEntity(parentElementId));
- elementRevisionId = getElementRevision(context, publicContext, elementContext.getRevisionId()
- , parentElement.get().getId());
- if (elementRevisionId != null) {
- update(context, elementContext, parentElement.get(), publishTime);
- } else {
- create(context, elementContext, parentElement.get(), publishTime);
- }
-
- }*/
- }
-
-
-
-
- protected ElementRepository getElementRepository(SessionContext context) {
- return ElementRepositoryFactory.getInstance().createInterface(context);
- }
-
- protected ElementSynchronizationStateRepository getElementSyncStateRepository(
- SessionContext context) {
- return ElementSynchronizationStateRepositoryFactory.getInstance().createInterface(context);
- }
-
-
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementStageStoreImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementStageStoreImpl.java
deleted file mode 100644
index f6c29432df..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/ElementStageStoreImpl.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration.impl;
-
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.item.Action;
-import com.amdocs.zusammen.datatypes.item.ElementContext;
-import com.amdocs.zusammen.datatypes.item.Resolution;
-import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
-import org.openecomp.core.zusammen.plugin.collaboration.ElementStageStore;
-import org.openecomp.core.zusammen.plugin.dao.ElementStageRepository;
-import org.openecomp.core.zusammen.plugin.dao.ElementStageRepositoryFactory;
-import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.StageEntity;
-
-import java.util.Collection;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getPrivateElementContext;
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getPrivateSpaceName;
-
-public class ElementStageStoreImpl implements ElementStageStore {
-
- @Override
- public Collection<ElementEntity> listIds(SessionContext context, ElementContext elementContext) {
- return getElementStageRepository(context)
- .listIds(context, new ElementEntityContext(getPrivateSpaceName(context),
- getPrivateElementContext(elementContext)));
- }
-
- @Override
- public Optional<StageEntity<ElementEntity>> get(SessionContext context,
- ElementContext elementContext,
- ElementEntity element) {
- return getElementStageRepository(context).get(context,
- new ElementEntityContext(getPrivateSpaceName(context),
- getPrivateElementContext(elementContext)),
- element);
- }
-
- @Override
- public Optional<StageEntity<ElementEntity>> getConflicted(SessionContext context,
- ElementContext elementContext,
- ElementEntity element) {
- return get(context, elementContext, element).filter(StageEntity::isConflicted);
- }
-
- @Override
- public boolean hasConflicts(SessionContext context, ElementContext elementContext) {
- return !getElementStageRepository(context).listConflictedIds(context,
- new ElementEntityContext(getPrivateSpaceName(context), getPrivateElementContext(elementContext))).isEmpty();
- }
-
- @Override
- public Collection<StageEntity<ElementEntity>> listConflictedDescriptors(SessionContext context,
- ElementContext elementContext) {
- ElementEntityContext privateContext =
- new ElementEntityContext(getPrivateSpaceName(context), getPrivateElementContext
- (elementContext));
- ElementStageRepository elementStageRepository = getElementStageRepository(context);
-
- return elementStageRepository.listConflictedIds(context, privateContext).stream()
- .map(conflictedElement -> elementStageRepository
- .getDescriptor(context, privateContext, conflictedElement).get())
- .collect(Collectors.toList());
- }
-
- @Override
- public void create(SessionContext context, ElementContext elementContext,
- StageEntity<ElementEntity> elementStage) {
- getElementStageRepository(context)
- .create(context,
- new ElementEntityContext(getPrivateSpaceName(context), getPrivateElementContext(elementContext)),
- elementStage);
- }
-
- @Override
- public void delete(SessionContext context, ElementContext elementContext, ElementEntity element) {
- getElementStageRepository(context)
- .delete(context,
- new ElementEntityContext(getPrivateSpaceName(context), getPrivateElementContext(elementContext)),
- element);
- }
-
-
- @Override
- public void resolveConflict(SessionContext context, ElementContext elementContext,
- ElementEntity element, Resolution resolution) {
- Optional<StageEntity<ElementEntity>> stagedElement =
- getConflicted(context, elementContext, element);
- if (!stagedElement.isPresent()) {
- return;
- }
-
- ElementEntityContext privateContext =
- new ElementEntityContext(getPrivateSpaceName(context), getPrivateElementContext
- (elementContext));
-
- switch (resolution) {
- case YOURS:
- resolveConflictByYours(context, privateContext, stagedElement.get());
- break;
- case THEIRS:
- resolveConflictByTheirs(context, privateContext, stagedElement.get());
- break;
- case OTHER: // other = data updates only? no data deletions? if so, then:
- // conflicted = false
- // element = the input of resolve
- // action = update
- throw new UnsupportedOperationException("'Other' conflict resolution is not yet supported");
- default:
- break;
- }
- }
-
- private void resolveConflictByYours(SessionContext context, ElementEntityContext privateContext,
- StageEntity<ElementEntity> stagedElement) {
- getElementStageRepository(context)
- .markAsNotConflicted(context, privateContext, stagedElement.getEntity(), Action.IGNORE);
- stagedElement.getConflictDependents().forEach(conflictDependant ->
- getElementStageRepository(context)
- .markAsNotConflicted(context, privateContext, conflictDependant, Action.IGNORE));
- }
-
- private void resolveConflictByTheirs(SessionContext context, ElementEntityContext privateContext,
- StageEntity<ElementEntity> stagedElement) {
- getElementStageRepository(context)
- .markAsNotConflicted(context, privateContext, stagedElement.getEntity());
- }
-
- protected ElementStageRepository getElementStageRepository(SessionContext context) {
- return ElementStageRepositoryFactory.getInstance().createInterface(context);
- }
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionPrivateStoreImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionPrivateStoreImpl.java
deleted file mode 100644
index 11e61ab5a9..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionPrivateStoreImpl.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration.impl;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import org.openecomp.core.zusammen.plugin.collaboration.VersionPrivateStore;
-import org.openecomp.core.zusammen.plugin.dao.VersionDao;
-import org.openecomp.core.zusammen.plugin.dao.VersionDaoFactory;
-import org.openecomp.core.zusammen.plugin.dao.VersionSynchronizationStateRepository;
-import org.openecomp.core.zusammen.plugin.dao.VersionSynchronizationStateRepositoryFactory;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionContext;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionEntity;
-
-import java.util.Date;
-import java.util.Optional;
-
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getPrivateSpaceName;
-
-public class VersionPrivateStoreImpl implements VersionPrivateStore {
-
- Id revisionId = Id.ZERO;
-
- @Override
- public Optional<VersionEntity> get(SessionContext context, Id itemId, Id versionId) {
- return getVersionDao(context).get(context, getPrivateSpaceName(context), itemId, versionId);
- }
-
- @Override
- public Optional<SynchronizationStateEntity> getSynchronizationState(SessionContext context,
- Id itemId, Id versionId) {
-
- return getVersionSyncStateRepository(context)
- .get(context, new VersionContext(getPrivateSpaceName(context), itemId),
- new SynchronizationStateEntity(versionId, revisionId));
- }
-
- @Override
- public void create(SessionContext context, Id itemId, VersionEntity version) {
- String privateSpace = getPrivateSpaceName(context);
-
-
- getVersionDao(context).create(context, privateSpace, itemId, version);
- getVersionSyncStateRepository(context).create(context, new VersionContext(privateSpace,
- itemId),
- new SynchronizationStateEntity(version.getId(), revisionId, null, true));
- }
-
- @Override
- public void update(SessionContext context, Id itemId, VersionEntity version) {
-
- getVersionDao(context)
- .updateModificationTime(context, getPrivateSpaceName(context), itemId, version.getId(),
- version.getModificationTime());
- }
-
- @Override
- public void update(SessionContext context, Id itemId, VersionEntity version, Date publishTime,
- boolean dirty) {
- getVersionSyncStateRepository(context).updatePublishTime(context,
- new VersionContext(getPrivateSpaceName(context), itemId),
- new SynchronizationStateEntity(version.getId(), revisionId, publishTime, dirty));
- }
-
- @Override
- public void delete(SessionContext context, Id itemId, VersionEntity version) {
- String privateSpace = getPrivateSpaceName(context);
-
- getVersionDao(context).delete(context, privateSpace, itemId, version.getId());
- getVersionSyncStateRepository(context).delete(context, new VersionContext(privateSpace,
- itemId),
- new SynchronizationStateEntity(version.getId(), revisionId));
- }
-
- @Override
- public void markAsPublished(SessionContext context, Id itemId, Id versionId, Date publishTime) {
- getVersionSyncStateRepository(context)
- .updatePublishTime(context, new VersionContext(getPrivateSpaceName(context), itemId),
- new SynchronizationStateEntity(versionId, revisionId, publishTime, false));
- }
-
- @Override
- public void commitStagedCreate(SessionContext context, Id itemId, VersionEntity version,
- Date publishTime) {
- String privateSpace = getPrivateSpaceName(context);
-
- getVersionDao(context).create(context, privateSpace, itemId, version);
- getVersionSyncStateRepository(context).create(context, new VersionContext(privateSpace,
- itemId),
- new SynchronizationStateEntity(version.getId(), revisionId, publishTime, false));
- }
-
- @Override
- public void commitStagedUpdate(SessionContext context, Id itemId, VersionEntity version,
- Date publishTime) {
- update(context, itemId, version, publishTime, false);
- }
-
- @Override
- public void commitStagedIgnore(SessionContext context, Id itemId, VersionEntity version,
- Date publishTime) {
- getVersionSyncStateRepository(context).updatePublishTime(context,
- new VersionContext(getPrivateSpaceName(context), itemId),
- new SynchronizationStateEntity(version.getId(), revisionId, publishTime, false));
- }
-
-
-
-
- protected VersionDao getVersionDao(SessionContext context) {
- return VersionDaoFactory.getInstance().createInterface(context);
- }
-
- protected VersionSynchronizationStateRepository getVersionSyncStateRepository(
- SessionContext context) {
- return VersionSynchronizationStateRepositoryFactory.getInstance().createInterface(context);
- }
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionPublicStoreImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionPublicStoreImpl.java
deleted file mode 100644
index aa628eb706..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionPublicStoreImpl.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration.impl;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import com.amdocs.zusammen.datatypes.Space;
-import com.amdocs.zusammen.datatypes.itemversion.ItemVersionRevisions;
-import com.amdocs.zusammen.datatypes.itemversion.Revision;
-import org.openecomp.core.zusammen.plugin.collaboration.VersionPublicStore;
-import org.openecomp.core.zusammen.plugin.dao.VersionDao;
-import org.openecomp.core.zusammen.plugin.dao.VersionDaoFactory;
-import org.openecomp.core.zusammen.plugin.dao.VersionSynchronizationStateRepository;
-import org.openecomp.core.zusammen.plugin.dao.VersionSynchronizationStateRepositoryFactory;
-import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionContext;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionEntity;
-
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getSpaceName;
-
-public class VersionPublicStoreImpl implements VersionPublicStore {
- @Override
- public Optional<VersionEntity> get(SessionContext context, Id itemId, Id versionId) {
- return getVersionDao(context)
- .get(context, getSpaceName(context, Space.PUBLIC), itemId, versionId);
- }
-
- @Override
- public Optional<SynchronizationStateEntity> getSynchronizationState(SessionContext context,
- Id itemId, Id versionId) {
- Id revisionId = getLastItemVersionRevision(context, itemId,
- versionId);
- if (revisionId == null) {
- return Optional.empty();
- }
-
- return getVersionSyncStateRepository(context)
- .get(context, new VersionContext(getSpaceName(context, Space.PUBLIC), itemId),
- new SynchronizationStateEntity(versionId, revisionId));
- }
-
-
- @Override
- public void create(SessionContext context, Id itemId, VersionEntity version, Id revisionId,
- Map<Id, Id> versionElementIds, Date
- publishTime, String message) {
- String publicSpace = getSpaceName(context, Space.PUBLIC);
-
- getVersionDao(context).create(context, publicSpace, itemId, version);
-
- getVersionDao(context).createVersionElements(context, publicSpace, itemId, version.getId(),
- revisionId, versionElementIds, publishTime,message);
-
- getVersionSyncStateRepository(context).create(context, new VersionContext(publicSpace,
- itemId),
- new SynchronizationStateEntity(version.getId(), revisionId, publishTime, false));
- }
-
- @Override
- public void update(SessionContext context, Id itemId, VersionEntity version,
- Id revisionId, Map<Id, Id> versionElementIds, Date publishTime, String message) {
- String publicSpace = getSpaceName(context, Space.PUBLIC);
-
- getVersionDao(context).
- createVersionElements(context, publicSpace, itemId, version.getId(),
- revisionId, versionElementIds, publishTime,message);
-
- getVersionSyncStateRepository(context).
- updatePublishTime(context, new VersionContext(publicSpace, itemId),
- new SynchronizationStateEntity(version.getId(), revisionId, publishTime, false));
- }
-
- @Override
- public boolean checkHealth(SessionContext context) {
- return getVersionDao(context).checkHealth(context);
- }
-
- @Override
- public ItemVersionRevisions listItemVersionRevisions(SessionContext context, Id itemId,
- Id versionId) {
- VersionContext entityContext = new VersionContext(getSpaceName(context, Space.PUBLIC), itemId);
- List<SynchronizationStateEntity> versionRevisions = getVersionSyncStateRepository(context)
- .list(context, entityContext, new VersionEntity(versionId));
-
- if (versionRevisions == null || versionRevisions.size() == 0) {
- return null;
- }
-
- versionRevisions.sort(new Comparator<SynchronizationStateEntity>() {
- @Override
- public int compare(SynchronizationStateEntity o1, SynchronizationStateEntity o2) {
- if (o1.getPublishTime().after(o2.getPublishTime())) {
- return -1;
- } else {
- return 1;
- }
- }
- });
- ItemVersionRevisions itemVersionRevisions = new ItemVersionRevisions();
- versionRevisions.forEach(synchronizationStateEntity -> itemVersionRevisions.addChange
- (convertSyncState2Revision(synchronizationStateEntity)));
- return itemVersionRevisions;
- }
-
- private Revision convertSyncState2Revision(
- SynchronizationStateEntity synchronizationStateEntity) {
- Revision revision = new Revision();
- revision.setRevisionId(synchronizationStateEntity.getRevisionId());
- revision.setTime(synchronizationStateEntity.getPublishTime());
- revision.setMessage(synchronizationStateEntity.getMessage());
- revision.setUser(synchronizationStateEntity.getUser());
- return revision;
- }
-
-
- private Id getLastItemVersionRevision(SessionContext context, Id itemId, Id versionId) {
-
- ItemVersionRevisions versionRevisions = listItemVersionRevisions(context, itemId, versionId);
- if(versionRevisions ==null ) return null;
- return versionRevisions.getItemVersionRevisions().get(0).getRevisionId();
- }
-
- protected VersionDao getVersionDao(SessionContext context) {
- return VersionDaoFactory.getInstance().createInterface(context);
- }
-
- protected VersionSynchronizationStateRepository getVersionSyncStateRepository(
- SessionContext context) {
- return VersionSynchronizationStateRepositoryFactory.getInstance().createInterface(context);
- }
-}
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionStageStoreImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionStageStoreImpl.java
deleted file mode 100644
index dac9d257ea..0000000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-plugin/src/main/java/org/openecomp/core/zusammen/plugin/collaboration/impl/VersionStageStoreImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.openecomp.core.zusammen.plugin.collaboration.impl;
-
-import com.amdocs.zusammen.datatypes.Id;
-import com.amdocs.zusammen.datatypes.SessionContext;
-import org.openecomp.core.zusammen.plugin.collaboration.VersionStageStore;
-import org.openecomp.core.zusammen.plugin.dao.VersionStageRepository;
-import org.openecomp.core.zusammen.plugin.dao.VersionStageRepositoryFactory;
-import org.openecomp.core.zusammen.plugin.dao.types.StageEntity;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionContext;
-import org.openecomp.core.zusammen.plugin.dao.types.VersionEntity;
-
-import java.util.Optional;
-
-import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getPrivateSpaceName;
-
-public class VersionStageStoreImpl implements VersionStageStore {
- @Override
- public Optional<StageEntity<VersionEntity>> get(SessionContext context, Id itemId,
- VersionEntity versionEntity) {
- return getVersionStageRepository(context)
- .get(context, new VersionContext(getPrivateSpaceName(context), itemId), versionEntity);
- }
-
- @Override
- public void create(SessionContext context, Id itemId, StageEntity<VersionEntity> versionStage) {
- getVersionStageRepository(context)
- .create(context, new VersionContext(getPrivateSpaceName(context), itemId), versionStage);
- }
-
- @Override
- public void delete(SessionContext context, Id itemId, VersionEntity version) {
- getVersionStageRepository(context)
- .delete(context, new VersionContext(getPrivateSpaceName(context), itemId), version);
- }
-
- protected VersionStageRepository getVersionStageRepository(SessionContext context) {
- return VersionStageRepositoryFactory.getInstance().createInterface(context);
- }
-}