From b3f66535a4ba101b966c78b1c35e98df5ee578c0 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Tue, 17 Jan 2023 19:53:00 +0100 Subject: [PATCH] Fixed some typos and added missing calls to save method of responsible repository. --- .../AbstractContentItemImExporter.java | 132 +++++++++++++++++- .../librecms/contentsection/ContentItem.java | 20 +-- .../ContentSectionImExporter.java | 2 + .../contentsection/ContentTypeImExporter.java | 2 + .../contentsection/FolderImExporter.java | 2 + .../LifecycleDefinitionImExporter.java | 2 + .../lifecycle/LifecycleImExporter.java | 2 + .../lifecycle/PhaseDefinitionImExporter.java | 2 + .../librecms/lifecycle/PhaseImExporter.java | 2 + .../security/GroupMembershipImExporter.java | 2 + .../workflow/AssignableTaskImExporter.java | 4 +- .../workflow/TaskAssignmentImExporter.java | 2 +- 12 files changed, 160 insertions(+), 14 deletions(-) diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/AbstractContentItemImExporter.java b/ccm-cms/src/main/java/org/librecms/contentsection/AbstractContentItemImExporter.java index 3dd786ea6..f7814ee02 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/AbstractContentItemImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/AbstractContentItemImExporter.java @@ -29,6 +29,7 @@ import org.librecms.assets.RelatedLink; import org.librecms.assets.RelatedLinkImExporter; import java.util.Objects; +import java.util.Optional; import java.util.Set; import javax.annotation.PostConstruct; @@ -78,18 +79,145 @@ public abstract class AbstractContentItemImExporter // Related link import requires all content items to be imported to // get the target item. relatedLinkImExporter.addRequiredEntities(Set.of(getEntityClass())); - + initContentItemImExporter(); } protected abstract void initContentItemImExporter(); @Override - @Transactional(Transactional.TxType.REQUIRED) + protected Optional findExistingEntity(final String uuid) { + return itemRepository.findByUuid(uuid, getEntityClass()); + } + + @Override public void saveImportedEntity(final T entity) { itemRepository.save(entity); } + @Override + protected void updateExistingEntity( + final T existingEntity, + final T importedEntity + ) { + if (!Objects.equals( + existingEntity.getDisplayName(), + importedEntity.getDisplayName() + )) { + existingEntity.setDisplayName(importedEntity.getDisplayName()); + } + + if (!Objects.equals( + existingEntity.getName(), + importedEntity.getName() + )) { + syncLocalizedStrings( + importedEntity.getName(), + existingEntity.getName() + ); + } + + if (!Objects.equals( + existingEntity.getContentType(), + importedEntity.getContentType() + )) { + existingEntity.setContentType(importedEntity.getContentType()); + } + + if (!Objects.equals( + existingEntity.getTitle(), + importedEntity.getTitle() + )) { + syncLocalizedStrings( + importedEntity.getTitle(), + existingEntity.getTitle() + ); + } + + if (!Objects.equals( + existingEntity.getDescription(), + importedEntity.getDescription() + )) { + syncLocalizedStrings( + importedEntity.getDescription(), + existingEntity.getDescription() + ); + } + + if (existingEntity.getVersion() != importedEntity.getVersion()) { + existingEntity.setVersion(importedEntity.getVersion()); + } + + if (!Objects.equals( + existingEntity.getLaunchDate(), + importedEntity.getLaunchDate() + )) { + existingEntity.setLaunchDate(importedEntity.getLaunchDate()); + } + + if (!Objects.equals( + existingEntity.getAncestors(), + importedEntity.getAncestors() + )) { + existingEntity.setAncestors(importedEntity.getAncestors()); + } + + if (!Objects.equals( + existingEntity.getLifecycle(), + importedEntity.getLifecycle() + )) { + existingEntity.setLifecycle(importedEntity.getLifecycle()); + } + + if (!Objects.equals( + existingEntity.getWorkflow(), + importedEntity.getWorkflow() + )) { + existingEntity.setWorkflow(importedEntity.getWorkflow()); + } + + if (!Objects.equals( + existingEntity.getCreationDate(), + importedEntity.getCreationDate() + )) { + existingEntity.setCreationDate(importedEntity.getCreationDate()); + } + + if (!Objects.equals( + existingEntity.getLastModified(), + importedEntity.getLastModified() + )) { + existingEntity.setLastModified(importedEntity.getLastModified()); + } + + if (!Objects.equals( + existingEntity.getCreationUserName(), + importedEntity.getCreationUserName() + )) { + existingEntity.setCreationUserName( + importedEntity.getCreationUserName() + ); + } + + if (!Objects.equals( + existingEntity.getLastModifyingUserName(), + importedEntity.getLastModifyingUserName() + )) { + existingEntity.setLastModifyingUserName( + importedEntity.getLastModifyingUserName() + ); + } + + updateExistingContentItem(existingEntity, importedEntity); + + itemRepository.save(existingEntity); + } + + protected abstract void updateExistingContentItem( + final T existingContentItem, + final T importedContentItem + ); + @Override protected T reloadEntity(final T entity) { return itemRepository diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItem.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItem.java index e78a2cc74..68fe23fe6 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItem.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItem.java @@ -628,11 +628,12 @@ public class ContentItem extends CcmObject implements Serializable, Exportable { @Embedded @AssociationOverride( name = "values", - joinTable = @JoinTable(name = "CONTENT_ITEM_TITLES", - schema = DB_SCHEMA, - joinColumns = { - @JoinColumn(name = "OBJECT_ID") - } + joinTable = @JoinTable( + name = "CONTENT_ITEM_TITLES", + schema = DB_SCHEMA, + joinColumns = { + @JoinColumn(name = "OBJECT_ID") + } ) ) @IndexedEmbedded @@ -645,10 +646,11 @@ public class ContentItem extends CcmObject implements Serializable, Exportable { @Embedded @AssociationOverride( name = "values", - joinTable = @JoinTable(name = "CONTENT_ITEM_DESCRIPTIONS", - schema = DB_SCHEMA, - joinColumns = { - @JoinColumn(name = "OBJECT_ID")} + joinTable = @JoinTable( + name = "CONTENT_ITEM_DESCRIPTIONS", + schema = DB_SCHEMA, + joinColumns = { + @JoinColumn(name = "OBJECT_ID")} )) @IndexedEmbedded @XmlElement(name = "description", namespace = CMS_XML_NS) diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentSectionImExporter.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentSectionImExporter.java index 121cacbf4..c538cbdce 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentSectionImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentSectionImExporter.java @@ -126,6 +126,8 @@ public class ContentSectionImExporter )) { existingEntity.setPrimaryUrl(importedEntity.getPrimaryUrl()); } + + sectionRepository.save(existingEntity); } @Override diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentTypeImExporter.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentTypeImExporter.java index b5bfb9312..e15b5233f 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentTypeImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentTypeImExporter.java @@ -140,6 +140,8 @@ public class ContentTypeImExporter importedEntity.getDefaultWorkflow() ); } + + contentTypeRepo.save(existingEntity); } @Override diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/FolderImExporter.java b/ccm-cms/src/main/java/org/librecms/contentsection/FolderImExporter.java index edd00b315..ee4a45edf 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/FolderImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/FolderImExporter.java @@ -163,6 +163,8 @@ public class FolderImExporter extends AbstractEntityImExporter { if (existingEntity.isVisible() != withImportedEntity.isVisible()) { existingEntity.setVisible(withImportedEntity.isVisible()); } + + folderRepo.save(existingEntity); } @Override diff --git a/ccm-cms/src/main/java/org/librecms/lifecycle/LifecycleDefinitionImExporter.java b/ccm-cms/src/main/java/org/librecms/lifecycle/LifecycleDefinitionImExporter.java index 362ede479..b1383aad5 100644 --- a/ccm-cms/src/main/java/org/librecms/lifecycle/LifecycleDefinitionImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/lifecycle/LifecycleDefinitionImExporter.java @@ -108,6 +108,8 @@ public class LifecycleDefinitionImExporter existingEntity.addPhaseDefinition(phaseDef); } } + + lifecycleDefRepo.save(existingEntity); } @Override diff --git a/ccm-cms/src/main/java/org/librecms/lifecycle/LifecycleImExporter.java b/ccm-cms/src/main/java/org/librecms/lifecycle/LifecycleImExporter.java index de16c7de6..1b9789741 100644 --- a/ccm-cms/src/main/java/org/librecms/lifecycle/LifecycleImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/lifecycle/LifecycleImExporter.java @@ -100,6 +100,8 @@ public class LifecycleImExporter extends AbstractEntityImExporter { if (existingEntity.isFinished() != importedEntity.isFinished()) { existingEntity.setFinished(importedEntity.isFinished()); } + + lifecycleRepo.save(existingEntity); } @Override diff --git a/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseDefinitionImExporter.java b/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseDefinitionImExporter.java index 5beb28325..efe27ea99 100644 --- a/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseDefinitionImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseDefinitionImExporter.java @@ -95,6 +95,8 @@ public class PhaseDefinitionImExporter importedEntity.getDefaultDuration() ); } + + phaseDefinitionRepo.save(existingEntity); } @Override diff --git a/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseImExporter.java b/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseImExporter.java index eb186bfa6..16923fd91 100644 --- a/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseImExporter.java @@ -108,6 +108,8 @@ public class PhaseImExporter )) { existingEntity.setDefinition(importedEntity.getDefinition()); } + + phaseRepo.save(existingEntity); } @Override diff --git a/ccm-core/src/main/java/org/libreccm/security/GroupMembershipImExporter.java b/ccm-core/src/main/java/org/libreccm/security/GroupMembershipImExporter.java index e736f94a7..190562cf8 100644 --- a/ccm-core/src/main/java/org/libreccm/security/GroupMembershipImExporter.java +++ b/ccm-core/src/main/java/org/libreccm/security/GroupMembershipImExporter.java @@ -122,6 +122,8 @@ public class GroupMembershipImExporter groupManager.removeMemberFromGroup(oldMember, group); groupManager.addMemberToGroup(newMember, group); } + + groupMembershipRepo.save(existingEntity); } @Override diff --git a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskImExporter.java b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskImExporter.java index e2a05ed54..dda13c1a9 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskImExporter.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskImExporter.java @@ -117,9 +117,9 @@ public class AssignableTaskImExporter importedEntity.getWorkflow(), existingEntity ); - - // ToDo } + + assignableTaskRepository.save(existingEntity); } @Override diff --git a/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentImExporter.java b/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentImExporter.java index 27e49bf47..62fc718e1 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentImExporter.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/TaskAssignmentImExporter.java @@ -79,7 +79,7 @@ public class TaskAssignmentImExporter final TaskAssignment exitingEntity, final TaskAssignment importedEntity ) { - // Task Assignment are not updated + // Task Assignments are not updated } @Override