From 1511873311d32352012e887a1eb6ae8235409c3f Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Tue, 26 Nov 2019 21:40:59 +0100 Subject: [PATCH] ImExporters for Article, News and Event Former-commit-id: f9f1124a71d4fd46aaa2a14d59f407a1a50e76ff --- .../AbstractContentItemImExporter.java | 45 +++++++++++++++++++ .../librecms/contentsection/ContentItem.java | 3 +- .../contentsection/ContentSection.java | 5 ++- .../contenttypes/ArticleImExporter.java | 26 +++++++++++ .../contenttypes/EventImExporter.java | 21 +++++++++ .../librecms/contenttypes/NewsImExporter.java | 21 +++++++++ 6 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 ccm-cms/src/main/java/org/librecms/contentsection/AbstractContentItemImExporter.java create mode 100644 ccm-cms/src/main/java/org/librecms/contenttypes/ArticleImExporter.java create mode 100644 ccm-cms/src/main/java/org/librecms/contenttypes/EventImExporter.java create mode 100644 ccm-cms/src/main/java/org/librecms/contenttypes/NewsImExporter.java diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/AbstractContentItemImExporter.java b/ccm-cms/src/main/java/org/librecms/contentsection/AbstractContentItemImExporter.java new file mode 100644 index 000000000..2de70e2c1 --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/contentsection/AbstractContentItemImExporter.java @@ -0,0 +1,45 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.contentsection; + +import org.libreccm.categorization.Category; +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Exportable; + +import java.util.HashSet; +import java.util.Set; + +import javax.inject.Inject; +import javax.transaction.Transactional; + +/** + * + * @author Jens Pelzetter + * @param + */ +public abstract class AbstractContentItemImExporter + extends AbstractEntityImExporter { + + @Inject + private ContentItemRepository itemRepository; + + @Override + protected Set> getRequiredEntities() { + + final Set> entities = new HashSet<>(); + entities.add(Category.class); + entities.add(ContentSection.class); + + return entities; + } + + @Override + @Transactional(Transactional.TxType.REQUIRED) + public void saveImportedEntity(final T entity) { + itemRepository.save(entity); + } + +} 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 cbcd51bf0..82f193752 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentItem.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentItem.java @@ -56,6 +56,7 @@ import org.hibernate.search.annotations.IndexedEmbedded; import javax.persistence.FetchType; import org.hibernate.envers.NotAudited; +import org.libreccm.imexport.Exportable; import org.librecms.contentsection.privileges.ItemPrivileges; import javax.persistence.OrderBy; @@ -594,7 +595,7 @@ import javax.persistence.OrderBy; + " )" ) }) -public class ContentItem extends CcmObject implements Serializable { +public class ContentItem extends CcmObject implements Serializable, Exportable { private static final long serialVersionUID = 5897287630227129653L; diff --git a/ccm-cms/src/main/java/org/librecms/contentsection/ContentSection.java b/ccm-cms/src/main/java/org/librecms/contentsection/ContentSection.java index 156f1c542..ba0b3b410 100644 --- a/ccm-cms/src/main/java/org/librecms/contentsection/ContentSection.java +++ b/ccm-cms/src/main/java/org/librecms/contentsection/ContentSection.java @@ -18,6 +18,7 @@ */ package org.librecms.contentsection; +import org.libreccm.imexport.Exportable; import org.libreccm.security.RecursivePermissions; import org.libreccm.security.Role; import org.libreccm.web.CcmApplication; @@ -116,7 +117,9 @@ import static org.librecms.CmsConstants.*; // creator = ContentSectionCreator.class, // servlet = ContentSectionServlet.class, // instanceForm = ApplicationInstanceForm.class) -public class ContentSection extends CcmApplication implements Serializable { +public class ContentSection + extends CcmApplication + implements Serializable, Exportable { private static final long serialVersionUID = -671718122153931727L; diff --git a/ccm-cms/src/main/java/org/librecms/contenttypes/ArticleImExporter.java b/ccm-cms/src/main/java/org/librecms/contenttypes/ArticleImExporter.java new file mode 100644 index 000000000..d5110ffed --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/contenttypes/ArticleImExporter.java @@ -0,0 +1,26 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AbstractContentItemImExporter; + +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(Article.class) +public class ArticleImExporter extends AbstractContentItemImExporter
{ + + @Override + protected Class
getEntityClass() { + return Article.class; + } + +} diff --git a/ccm-cms/src/main/java/org/librecms/contenttypes/EventImExporter.java b/ccm-cms/src/main/java/org/librecms/contenttypes/EventImExporter.java new file mode 100644 index 000000000..6f29026d4 --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/contenttypes/EventImExporter.java @@ -0,0 +1,21 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.contenttypes; + +import org.librecms.contentsection.AbstractContentItemImExporter; + +/** + * + * @author Jens Pelzetter + */ +public class EventImExporter extends AbstractContentItemImExporter { + + @Override + protected Class getEntityClass() { + return Event.class; + } + +} diff --git a/ccm-cms/src/main/java/org/librecms/contenttypes/NewsImExporter.java b/ccm-cms/src/main/java/org/librecms/contenttypes/NewsImExporter.java new file mode 100644 index 000000000..26551dcd6 --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/contenttypes/NewsImExporter.java @@ -0,0 +1,21 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.librecms.contenttypes; + +import org.librecms.contentsection.AbstractContentItemImExporter; + +/** + * + * @author Jens Pelzetter + */ +public class NewsImExporter extends AbstractContentItemImExporter { + + @Override + protected Class getEntityClass() { + return News.class; + } + +}