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;
+ }
+
+}