From 050c8ae42a57cc1cb2b0828902fb855d7b993354 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Fri, 21 Feb 2020 18:44:17 +0100 Subject: [PATCH] Fixed another lazy init Former-commit-id: 5bda9ca1d3236d3f706aade18defebb4c9e82bc4 --- .../type/ContentTypeAdminPaneController.java | 39 ++++++++++++++++--- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/ContentTypeAdminPaneController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/ContentTypeAdminPaneController.java index 090f1e120..195160ddc 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/ContentTypeAdminPaneController.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/type/ContentTypeAdminPaneController.java @@ -21,8 +21,10 @@ package com.arsdigita.cms.ui.type; import com.ibm.icu.impl.IllegalIcuArgumentException; import org.libreccm.workflow.Workflow; import org.librecms.contentsection.ContentSection; +import org.librecms.contentsection.ContentSectionManager; import org.librecms.contentsection.ContentSectionRepository; import org.librecms.contentsection.ContentType; +import org.librecms.contentsection.ContentTypeManager; import org.librecms.contentsection.ContentTypeRepository; import org.librecms.contenttypes.ContentTypeInfo; import org.librecms.contenttypes.ContentTypesManager; @@ -40,11 +42,6 @@ import java.util.stream.Collectors; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.persistence.EntityManager; -import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.JoinType; -import javax.persistence.criteria.Root; import javax.transaction.Transactional; /** @@ -64,9 +61,15 @@ class ContentTypeAdminPaneController { @Inject private ContentSectionRepository sectionRepo; + @Inject + private ContentSectionManager sectionManager; + @Inject private ContentTypeRepository typeRepo; + @Inject + private ContentTypeManager typeManager; + @Inject private ContentTypesManager typesManager; @@ -216,4 +219,30 @@ class ContentTypeAdminPaneController { return new ArrayList<>(contentSection.getWorkflowTemplates()); } + @Transactional(Transactional.TxType.REQUIRED) + protected void addContentTypeToContentSection( + final String type, final ContentSection toSection + ) { + Objects.requireNonNull(type); + Objects.requireNonNull(toSection); + + final ContentSection section = sectionRepo + .findById(toSection.getObjectId()) + .orElseThrow( + () -> new IllegalArgumentException( + String.format( + "No ContentSection identified by ID %d found.", + toSection.getObjectId() + ) + ) + ); + + sectionManager.addContentTypeToSection( + typeManager.classNameToClass(type), + section, + section.getLifecycleDefinitions().get(0), + section.getWorkflowTemplates().get(0) + ); + } + }