diff --git a/ccm-cms-types-article/src/com/arsdigita/cms/contenttypes/ArticleInitializer.java b/ccm-cms-types-article/src/com/arsdigita/cms/contenttypes/ArticleInitializer.java
index 155a0e7a9..c6ac6117d 100755
--- a/ccm-cms-types-article/src/com/arsdigita/cms/contenttypes/ArticleInitializer.java
+++ b/ccm-cms-types-article/src/com/arsdigita/cms/contenttypes/ArticleInitializer.java
@@ -19,6 +19,7 @@
package com.arsdigita.cms.contenttypes;
import org.apache.log4j.Logger;
+import org.libreccm.export.ExportManager;
/**
* Executes at each system startup and initializes the Article content type.
@@ -41,6 +42,8 @@ public class ArticleInitializer extends ContentTypeInitializer {
*/
public ArticleInitializer() {
super("ccm-cms-types-article.pdl.mf", Article.BASE_DATA_OBJECT_TYPE);
+
+ ExportManager.getInstance().registerExporter(new ArticlesExporter());
}
/**
diff --git a/ccm-cms-types-article/src/com/arsdigita/cms/contenttypes/ArticlesExporter.java b/ccm-cms-types-article/src/com/arsdigita/cms/contenttypes/ArticlesExporter.java
new file mode 100644
index 000000000..805398a6d
--- /dev/null
+++ b/ccm-cms-types-article/src/com/arsdigita/cms/contenttypes/ArticlesExporter.java
@@ -0,0 +1,74 @@
+package com.arsdigita.cms.contenttypes;
+
+import com.arsdigita.cms.ItemCollection;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import org.librecms.contentsection.AbstractContentItemsExporter;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+public class ArticlesExporter extends AbstractContentItemsExporter {
+
+ @Override
+ protected void exportContentItemProperties(
+ final Article contentItem, final JsonGenerator jsonGenerator)
+ throws IOException {
+
+ }
+
+ @Override
+ protected Map> collectLocalizedValues(
+ final ItemCollection instances) {
+
+ final Map leadPropertyValues = new HashMap<>();
+ final Map textPropertyValues = new HashMap<>();
+
+ while (instances.next()) {
+
+ final Article article = (Article) instances.getContentItem();
+ final String lang = article.getLanguage();
+ final Locale locale = new Locale(lang);
+ final String lead = article.getLead();
+ final String text;
+ if (article.getTextAsset() == null) {
+ text = "";
+ } else {
+ text = article.getTextAsset().getText();
+ }
+
+ leadPropertyValues.put(locale, lead);
+ textPropertyValues.put(locale, text);
+ }
+
+ instances.rewind();
+
+ final Map> properties = new HashMap<>();
+ properties.put("description", leadPropertyValues);
+ properties.put("text", textPropertyValues);
+
+ return properties;
+ }
+
+ @Override
+ public Class exportsType() {
+ return Article.class;
+ }
+
+ @Override
+ public String exportsBaseDataObjectType() {
+ return Article.BASE_DATA_OBJECT_TYPE;
+ }
+
+ @Override
+ public String convertsToType() {
+ return "org.librecms.contenttypes.Article";
+ }
+
+}