diff --git a/ccm-cms-types-decisiontree/pom.xml b/ccm-cms-types-decisiontree/pom.xml
new file mode 100644
index 000000000..e9be1bb27
--- /dev/null
+++ b/ccm-cms-types-decisiontree/pom.xml
@@ -0,0 +1,326 @@
+
+
+
+ 4.0.0
+
+
+ libreccm-parent
+ org.libreccm
+ 7.0.0-SNAPSHOT
+
+
+
+ UTF-8
+ ${maven.build.timestamp}
+ yyyy-MM-dd'T'HH:mm:ss'Z'Z
+
+
+
+ org.librecms
+ ccm-cms-types-decisiontree
+ 7.0.0-SNAPSHOT
+
+ ccm-cms-types-decisiontree
+
+
+
+ javax
+ javaee-api
+ jar
+ provided
+
+
+
+ org.libreccm
+ ccm-core
+ ${project.parent.version}
+ provided
+
+
+
+ org.librecms
+ ccm-cms
+ ${project.parent.version}
+ provided
+
+
+
+ org.hibernate
+ hibernate-entitymanager
+
+
+
+ org.hibernate
+ hibernate-validator
+
+
+
+ junit
+ junit
+ test
+
+
+
+ org.hamcrest
+ hamcrest-core
+ test
+
+
+ org.hamcrest
+ hamcrest-library
+ test
+
+
+
+ org.libreccm
+ ccm-testutils
+ ${project.parent.version}
+ test
+
+
+
+ nl.jqno.equalsverifier
+ equalsverifier
+ test
+
+
+
+ org.jboss.arquillian.junit
+ arquillian-junit-container
+ test
+
+
+ org.jboss.arquillian.extension
+ arquillian-persistence-dbunit
+ test
+
+
+ org.jboss.arquillian.extension
+ arquillian-transaction-impl-base
+ test
+
+
+ org.jboss.shrinkwrap.resolver
+ shrinkwrap-resolver-impl-maven
+ test
+
+
+
+ com.h2database
+ h2
+ test
+
+
+
+
+
+ ccm-cms-types-decisiontree
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.3
+
+ 1.7
+ 1.7
+ true
+ true
+ ${project.build.sourceEncoding}
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.18.1
+
+ org.libreccm.tests.categories.UnitTest
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.7.5.201505241946
+
+
+ default-prepare-agent
+
+ prepare-agent
+
+
+
+ default-report
+ prepare-package
+
+ report
+
+
+
+ default-check
+
+ check
+
+
+
+
+ BUNDLE
+
+
+ COMPLEXITY
+ COVEREDRATIO
+ 0.60
+
+
+
+
+
+
+
+
+
+
+ de.jpdigital
+ hibernate4-ddl-maven-plugin
+
+
+ h2
+ mysql5_innodb
+ oracle10g
+ postgresql9
+
+
+ org.libreccm
+
+ true
+
+
+
+
+ gen-ddl
+
+ process-classes
+
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.10.3
+
+ true
+ true
+
+ http://docs.oracle.com/javase/7/docs/api/
+ http://docs.oracle.com/javaee/7/api/
+ http://docs.jboss.org/hibernate/orm/4.3/javadocs/
+
+ private
+ true
+ UTF-8
+ UTF-8
+ UTF-8
+ true
+ true
+ true
+ true
+ false
+ org.jboss.apiviz.APIviz
+
+ org.jboss.apiviz
+ apiviz
+ 1.3.2.GA
+
+ true
+ -sourceclasspath ${project.build.outputDirectory}
+
+
+
+
+ org.apache.maven.plugins
+ maven-jxr-plugin
+ 2.5
+
+
+ org.apache.maven.plugins
+ maven-surefire-report-plugin
+ 2.18.1
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.7.5.201505241946
+
+
+ org.codehaus.mojo
+ findbugs-maven-plugin
+ 3.0.1
+
+
+
+ org.apache.maven.plugins
+ maven-pmd-plugin
+ 3.4
+
+ true
+ utf-8
+ 1.7
+
+ /rulesets/java/basic.xml
+ /rulesets/java/braces.xml
+ /rulesets/java/clone.xml
+ /rulesets/java/codesize.xml
+ /rulesets/java/design.xml
+ /rulesets/java/empty.xml
+ /rulesets/java/finalizers.xml
+ /rulesets/java/imports.xml
+ /rulesets/java/javabeans.xml
+ /rulesets/java/junit.xml
+ /rulesets/java/naming.xml
+ /rulesets/java/optimizations.xml
+ /rulesets/java/strictexception.xml
+ /rulesets/java/strings.xml
+ /rulesets/java/sunsecure.xml
+ /rulesets/java/typeresolution.xml
+ /rulesets/java/unnecessary.xml
+ /rulesets/java/unusedcode.xml
+
+
+
+
+ org.codehaus.mojo
+ javancss-maven-plugin
+ 2.1
+
+
+ org.apache.maven.plugins
+ maven-project-info-reports-plugin
+ 2.8
+
+
+
+ dependencies
+ license
+
+
+
+
+ false
+
+
+
+
+
diff --git a/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Decisiontree.java b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Decisiontree.java
new file mode 100644
index 000000000..36cfcc8a8
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Decisiontree.java
@@ -0,0 +1,61 @@
+/*
+ * 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.decisiontree;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import org.hibernate.envers.Audited;
+import org.libreccm.l10n.LocalizedString;
+import org.librecms.contentsection.ContentItem;
+import static org.librecms.contenttypes.decisiontree.DecisiontreeConstants.DB_SCHEMA; //TODO:
+
+/**
+ * This class represents the content type decisiontree
+ *
+ * @author Alexander Konermann
+ * @version 17/11/2015
+ */
+@Entity
+@Audited
+@Table(name = "DECISIONTREE", schema = DB_SCHEMA)
+public class Decisiontree extends ContentItem implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+
+ @Column(name = "CANCELURL")
+ private LocalizedString cancelURL;
+
+
+ @OneToMany(mappedBy = "decisiontreesection")
+ private List sectionList;
+
+
+ //Getter and Setter
+ public LocalizedString getCancelURL() {
+ return cancelURL;
+ }
+
+ public void setCancelURL(LocalizedString cancelURL) {
+ this.cancelURL = cancelURL;
+ }
+
+ public List getSectionlist() {
+ return sectionList;
+ }
+
+ public void setSectionlist(List sectionlist) {
+ this.sectionList = sectionlist;
+ }
+
+ public void addSection(DecisiontreeSection section) {
+ sectionList.add(section);
+ }
+}
diff --git a/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/DecisiontreeOptionTarget.java b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/DecisiontreeOptionTarget.java
new file mode 100644
index 000000000..a0174c3ea
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/DecisiontreeOptionTarget.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.agenda.decisiontree;
+
+import java.io.Serializable;
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+import org.libreccm.l10n.LocalizedString;
+
+/**
+ *
+ * @author koalamann
+ */
+@Embeddable
+public class DecisiontreeOptionTarget implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Column(name="TARGETURL")
+ private LocalizedString targetURL;
+
+
+}
diff --git a/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/DecisiontreeSection.java b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/DecisiontreeSection.java
new file mode 100644
index 000000000..0d89528f0
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/DecisiontreeSection.java
@@ -0,0 +1,80 @@
+/*
+ * 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.agenda.decisiontree;
+
+import java.io.Serializable;
+import java.util.List;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
+import org.libreccm.l10n.LocalizedString;
+
+/**
+ *
+ * @author koalamann
+ */
+@Entity
+public class DecisiontreeSection implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GeneratedValue
+ @Column(name = "SECTION_ID")
+ private Long section_id;
+
+ @Column(name = "PARAMETERNAME")
+ private LocalizedString parameterName;
+
+
+ @Column(name = "INSTRUCTIONS")
+ private LocalizedString instructions;
+
+ @ManyToOne
+ @JoinColumn(name = "DECISIONTREE_ID")
+ private Decisiontree decisiontree;
+
+
+ @OneToMany(mappedBy = "decisiontreeSectionOption")
+ private List optionlist;
+
+
+
+ //Getter and setter:
+ public Long getId() {
+ return section_id;
+ }
+
+ public void setId(Long id) {
+ this.section_id = id;
+ }
+
+ public LocalizedString getParameterName() {
+ return parameterName;
+ }
+
+ public void setParameterName(LocalizedString parameterName) {
+ this.parameterName = parameterName;
+ }
+
+ public List getOptionlist() {
+ return optionlist;
+ }
+
+ public void setOptionlist(List sectionlist) {
+ this.optionlist = sectionlist;
+ }
+
+ public void addOption(DecisiontreeSectionOption option) {
+ optionlist.add(option);
+ }
+
+
+}
diff --git a/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/DecisiontreeSectionOption.java b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/DecisiontreeSectionOption.java
new file mode 100644
index 000000000..4c1193e55
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/DecisiontreeSectionOption.java
@@ -0,0 +1,86 @@
+/*
+ * 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.agenda.decisiontree;
+
+import java.io.Serializable;
+import javax.persistence.Column;
+import javax.persistence.Embedded;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import org.libreccm.l10n.LocalizedString;
+
+/**
+ *
+ * @author koalamann
+ */
+@Entity
+public class DecisiontreeSectionOption implements Serializable {
+
+ @Id
+ private Long option_id;
+
+ private static final long serialVersionUID = 1L;
+
+ @Column(name = "RANK")
+ private int rank;
+
+ @Column(name = "LABEL")
+ private LocalizedString label;
+
+ @Column(name = "VALUE")
+ private LocalizedString value;
+
+ @Embedded
+ private DecisiontreeOptionTarget target;
+
+ @ManyToOne
+ private DecisiontreeSection section;
+
+
+ //Getter and Setter
+ public int getRank() {
+ return rank;
+ }
+
+ public void setRank(int rank) {
+ this.rank = rank;
+ }
+
+ public LocalizedString getLabel() {
+ return label;
+ }
+
+ public void setLabel(LocalizedString label) {
+ this.label = label;
+ }
+
+ public LocalizedString getValue() {
+ return value;
+ }
+
+ public void setValue(LocalizedString value) {
+ this.value = value;
+ }
+
+ public DecisiontreeOptionTarget getTarget() {
+ return target;
+ }
+
+ public void setTarget(DecisiontreeOptionTarget target) {
+ this.target = target;
+ }
+
+
+ public Long getOption_id() {
+ return option_id;
+ }
+
+ public void setOption_id(Long option_id) {
+ this.option_id = option_id;
+ }
+
+}
diff --git a/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources.properties b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources.properties
new file mode 100644
index 000000000..267974974
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources.properties
@@ -0,0 +1,78 @@
+cms.contenttypes.ui.decisiontree.error.parameter_name_characters=This parameter can only contain letters, digits, or "-_"
+cms.contenttypes.ui.decisiontree.targets.form.none=-- none --
+cms.contenttypes.ui.decisiontree.options.form.please_select=-- please select a section for this option--
+cms.contenttypes.ui.decisiontree.properties.form.description_label=Description
+cms.contenttypes.ui.decisiontree.sections.form.instructions_label=Instructions
+cms.contenttypes.ui.decisiontree.options.form.label=Label
+cms.contenttypes.ui.decisiontree.targets.form.match_value=Value to Match
+cms.contenttypes.ui.decisiontree.sections.form.parameter_name_label=Parameter Name
+cms.contenttypes.ui.decisiontree.options.form.section=Section
+cms.contenttypes.ui.decisiontree.targets.form.target_section_label=Target Section
+cms.contenttypes.ui.decisiontree.targets.form.target_url_label=Target URL
+cms.contenttypes.ui.decisiontree.sections.form.title_label=Title
+cms.contenttypes.ui.decisiontree.options.form.value=Value
+cms.contenttypes.ui.decisiontree.targets.form.target_required=Either a target URL or a target section is required.
+cms.contenttypes.ui.decisiontree.targets.form.duplicate_target=Please enter a target URL or a target section, but not both.
+cms.contenttypes.ui.decisiontree.properties.cancel_url=Cancel URL after user abort:
+cms.contenttypes.ui.decisiontree.options.add_new=Add new option
+cms.contenttypes.ui.decisiontree.options.add=Add Option
+cms.contenttypes.ui.decisiontree.options.delete=Delete option
+cms.contenttypes.ui.authoring.decisiontree.section_options.description=The options that belong to this decision tree's sections.
+cms.contenttypes.ui.decisiontree.options.edit=Edit Option
+cms.contenttypes.ui.decisiontree.options.table.move_option_name=Move option {0}
+cms.contenttypes.ui.decisiontree.options.table.move_to_beginning=Move to beginning
+cms.contenttypes.ui.decisiontree.options.none_yet=No options yet
+cms.contenttypes.ui.authoring.decisiontree.section_options.title=Decision Options
+cms.contenttypes.ui.decisiontree.options.view_all=View all options
+cms.contenttypes.ui.decisiontree.targets.add_new=Add new target
+cms.contenttypes.ui.decisiontree.targets.add=Add Target
+cms.contenttypes.ui.decisiontree.targets.delete=Delete target
+cms.contenttypes.ui.authoring.decisiontree.option_targets.description=The targets that belong to this decision treeS.
+cms.contenttypes.ui.decisiontree.targets.edit=Edit Target
+cms.contenttypes.ui.decisiontree.targets.none_yet=No targets yet
+cms.contenttypes.ui.authoring.decisiontree.option_targets.title=Decision Option Targets
+cms.contenttypes.ui.decisiontree.targets.view_all=View all targets
+cms.contenttypes.ui.decisiontree.options.form.submission_cancelled=Opion submission cancelled
+cms.contenttypes.ui.decisiontree.sections.add_new_label=Add new section
+cms.contenttypes.ui.decisiontree.sections.add=Add Section
+cms.contenttypes.ui.decisiontree.sections.delete=Delete section
+cms.contenttypes.ui.authoring.decisiontree.tree_sections.description=The sections that belong to this decision tree.
+cms.contenttypes.ui.decisiontree.sections.edit=Edit Section
+cms.contenttypes.ui.decisiontree.sections.no_sections_yet=No sections yet
+cms.contenttypes.ui.authoring.decisiontree.tree_sections.title=Decision Sections
+cms.contenttypes.ui.decisiontree.sections.view_all=View all sections
+cms.contenttypes.ui.decisiontree.sections.table.header_section=Decision Section
+cms.contenttypes.ui.decisiontree.sections.table.header_edit=Edit
+cms.contenttypes.ui.decisiontree.sections.table.header_delete=Delete
+cms.contenttypes.ui.decisiontree.sections.table.header_first_section=First Section?
+cms.contenttypes.ui.decisiontree.sections.table.link_delete=delete
+cms.contenttypes.ui.decisiontree.sections.table.link_edit=edit
+cms.contenttypes.ui.decisiontree.sections.table.link_set_first=set
+cms.contenttypes.ui.decisiontree.options.table.header_section=Decision Section
+cms.contenttypes.ui.decisiontree.options.table.header_option=Decision Option
+cms.contenttypes.ui.decisiontree.options.table.header_edit=Edit
+cms.contenttypes.ui.decisiontree.options.table.header_move=Move
+cms.contenttypes.ui.decisiontree.options.table.header_delete=Delete
+cms.contenttypes.ui.decisiontree.options.table.link_delete=delete
+cms.contenttypes.ui.decisiontree.options.table.link_move=move
+cms.contenttypes.ui.decisiontree.options.table.link_edit=edit
+cms.contenttypes.ui.decisiontree.targets.form.please_select=-- please select an option for this option--
+cms.contenttypes.ui.decisiontree.targets.form.submission_cancelled=Target submission cancelled
+cms.contenttypes.ui.decisiontree.targets.form.delete.delete_button=Delete
+cms.contenttypes.ui.decisiontree.targets.form.delete.target_match_value=Target Match Value
+cms.contenttypes.ui.decisiontree.targets.submission_cancelled=Submission cancelled
+cms.contenttypes.ui.decisiontree.sections.form.submission_cancelled=Submission cancelled
+cms.contenttypes.ui.decisiontree.options.table.link_move_below=move below
+cms.contenttypes.ui.decisiontree.options.table.link_no_move=leave it here
+cms.contenttypes.ui.decisiontree.targets.table.header_section=Decision Section
+cms.contenttypes.ui.decisiontree.targets.table.header_match=Decision Option
+cms.contenttypes.ui.decisiontree.targets.table.header_edit=Edit
+cms.contenttypes.ui.decisiontree.targets.table.header_delete=Delete
+cms.contenttypes.ui.decisiontree.targets.table.link_edit=edit
+cms.contenttypes.ui.decisiontree.targets.table.link_delete=delete
+cms.contenttypes.ui.decisiontree.sections.delete_button=Delete
+cms.contenttypes.ui.decisiontree.sections.delete_section_msg=Section to be deleted: "{0}"
+cms.contenttypes.ui.decisiontree.options.delete_option_msg=Option to be deleted: "{0}"
+cms.contenttypes.ui.decisiontree.options.delete_button=Delete
+cms.contenttypes.ui.decisiontree.options.delete.submission_cancelled=Option Delete submission cancelled
+cms.contenttypes.decisiontree.type_label=Decision Tree
diff --git a/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources_de.properties b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources_de.properties
new file mode 100644
index 000000000..6185b56c4
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources_de.properties
@@ -0,0 +1,78 @@
+cms.contenttypes.ui.decisiontree.error.parameter_name_characters=Dieser Parameter kann nur Buchstaben, Zahlen oder "-_" enthalten.
+cms.contenttypes.ui.decisiontree.targets.form.none=-- keine --
+cms.contenttypes.ui.decisiontree.options.form.please_select=-- bitte zugeh\u00f6rige Sektion ausw\u00e4hlen --
+cms.contenttypes.ui.decisiontree.properties.form.description_label=Beschreibung
+cms.contenttypes.ui.decisiontree.sections.form.instructions_label=Anweisungen
+cms.contenttypes.ui.decisiontree.options.form.label=Benennung
+cms.contenttypes.ui.decisiontree.targets.form.match_value=Korrespondierender Wert
+cms.contenttypes.ui.decisiontree.sections.form.parameter_name_label=Parameter Name
+cms.contenttypes.ui.decisiontree.options.form.section=Sektion
+cms.contenttypes.ui.decisiontree.targets.form.target_section_label=Zielsektion
+cms.contenttypes.ui.decisiontree.targets.form.target_url_label=Ziel-URL
+cms.contenttypes.ui.decisiontree.sections.form.title_label=Titel
+cms.contenttypes.ui.decisiontree.options.form.value=Wert
+cms.contenttypes.ui.decisiontree.targets.form.target_required=Entweder eine Ziel-URL oder eine Ziel-Sektion isr erforderlich.
+cms.contenttypes.ui.decisiontree.targets.form.duplicate_target=Bitte eine Ziel-URL oder eine Ziel-Sektion angeben, aber nicht beides.
+cms.contenttypes.ui.decisiontree.properties.cancel_url=URL nach Benutzer Abbruch:
+cms.contenttypes.ui.decisiontree.options.add_new=Eine neue Option hinzuf\u00fcgen
+cms.contenttypes.ui.decisiontree.options.add=Option hinzuf\u00fcgen
+cms.contenttypes.ui.decisiontree.options.delete=Option l\u00f6schen
+cms.contenttypes.ui.authoring.decisiontree.section_options.description=Optionen, die zu dieser Sektion geh\u00f6ren.
+cms.contenttypes.ui.decisiontree.options.edit=Option bearbeiten
+cms.contenttypes.ui.decisiontree.options.table.move_option_name=Option verschieben {0}
+cms.contenttypes.ui.decisiontree.options.table.move_to_beginning=An den Anfang verschieben
+cms.contenttypes.ui.decisiontree.options.none_yet=Bisher keine Optionen eingetragen.
+cms.contenttypes.ui.authoring.decisiontree.section_options.title=Entscheidungsoptionen
+cms.contenttypes.ui.decisiontree.options.view_all=Alle Optionen anzeigen
+cms.contenttypes.ui.decisiontree.targets.add_new=Ein neues Ziel hinzuf\u00fcgen
+cms.contenttypes.ui.decisiontree.targets.add=Ziel hinzuf\u00fcgen
+cms.contenttypes.ui.decisiontree.targets.delete=Ziel l\u00f6schen
+cms.contenttypes.ui.authoring.decisiontree.option_targets.description=Ziele, die zu dieser Sektion geh\u00f6ren.
+cms.contenttypes.ui.decisiontree.targets.edit=Ziel bearbeiten
+cms.contenttypes.ui.decisiontree.targets.none_yet=Bisher keine Ziele verf\u00fcgbar.
+cms.contenttypes.ui.authoring.decisiontree.option_targets.title=Folgeschritte
+cms.contenttypes.ui.decisiontree.targets.view_all=Alle Ziele anzeigen
+cms.contenttypes.ui.decisiontree.options.form.submission_cancelled=Speichern der Option abgebrochen
+cms.contenttypes.ui.decisiontree.sections.add_new_label=Eine neue Sektion hinzuf\u00fcgen
+cms.contenttypes.ui.decisiontree.sections.add=Sektion hinzuf\u00fcgen
+cms.contenttypes.ui.decisiontree.sections.delete=Sektion l\u00f6schen
+cms.contenttypes.ui.authoring.decisiontree.tree_sections.description=Die Sektionen bearbeiten, die zu diesem Entscheidungsbaum geh\u00f6ren.
+cms.contenttypes.ui.decisiontree.sections.edit=Sektion bearbeiten
+cms.contenttypes.ui.decisiontree.sections.no_sections_yet=Bisher keine Sektionen verf\u00fcgbar.
+cms.contenttypes.ui.authoring.decisiontree.tree_sections.title=Entscheidungsschritte
+cms.contenttypes.ui.decisiontree.sections.view_all=Alle Sektionen anzeigen
+cms.contenttypes.ui.decisiontree.sections.table.header_section=Entscheidungsschritt
+cms.contenttypes.ui.decisiontree.sections.table.header_edit=Bearbeiten
+cms.contenttypes.ui.decisiontree.sections.table.header_delete=L\u00f6schen
+cms.contenttypes.ui.decisiontree.sections.table.header_first_section=Erste Sektion?
+cms.contenttypes.ui.decisiontree.sections.table.link_delete=l\u00f6schen
+cms.contenttypes.ui.decisiontree.sections.table.link_edit=bearbeiten
+cms.contenttypes.ui.decisiontree.sections.table.link_set_first=festlegen
+cms.contenttypes.ui.decisiontree.options.table.header_section=Entscheidungsschritt
+cms.contenttypes.ui.decisiontree.options.table.header_option=Entscheidungsoption
+cms.contenttypes.ui.decisiontree.options.table.header_edit=Bearbeiten
+cms.contenttypes.ui.decisiontree.options.table.header_move=Verschieben
+cms.contenttypes.ui.decisiontree.options.table.header_delete=Entfernen
+cms.contenttypes.ui.decisiontree.options.table.link_delete=entfernen
+cms.contenttypes.ui.decisiontree.options.table.link_move=verschieben
+cms.contenttypes.ui.decisiontree.options.table.link_edit=bearbeiten
+cms.contenttypes.ui.decisiontree.targets.form.please_select=-- bitte zugeh\u00f6rige Option ausw\u00e4hlen --
+cms.contenttypes.ui.decisiontree.targets.form.submission_cancelled=Speichern des Target abgebrochen
+cms.contenttypes.ui.decisiontree.targets.form.delete.delete_button=L\u00f6schen
+cms.contenttypes.ui.decisiontree.targets.form.delete.target_match_value=Target Match Value
+cms.contenttypes.ui.decisiontree.targets.submission_cancelled=Submission cancelled
+cms.contenttypes.ui.decisiontree.sections.form.submission_cancelled=Submission cancelled
+cms.contenttypes.ui.decisiontree.options.table.link_move_below=unterhalb dieses Eintrags verschieben
+cms.contenttypes.ui.decisiontree.options.table.link_no_move=hier belassen
+cms.contenttypes.ui.decisiontree.targets.table.header_section=Entscheidungsschritt
+cms.contenttypes.ui.decisiontree.targets.table.header_match=Entscheidungsoption
+cms.contenttypes.ui.decisiontree.targets.table.header_edit=Bearbeiten
+cms.contenttypes.ui.decisiontree.targets.table.header_delete=Entfernen
+cms.contenttypes.ui.decisiontree.targets.table.link_edit=bearbeiten
+cms.contenttypes.ui.decisiontree.targets.table.link_delete=entfernen
+cms.contenttypes.ui.decisiontree.sections.delete_button=L\u00f6schen
+cms.contenttypes.ui.decisiontree.sections.delete_section_msg=Zu l\u00f6schende Sektion: "{0}"
+cms.contenttypes.ui.decisiontree.options.delete_option_msg=Zu l\u00f6schende Option: "{0}"
+cms.contenttypes.ui.decisiontree.options.delete_button=Entfernen
+cms.contenttypes.ui.decisiontree.options.delete.submission_cancelled=Option Delete submission cancelled
+cms.contenttypes.decisiontree.type_label=Entscheidungsbaum
diff --git a/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources_en.properties b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources_en.properties
new file mode 100644
index 000000000..a3dd7ba52
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources_en.properties
@@ -0,0 +1,78 @@
+cms.contenttypes.ui.decisiontree.error.parameter_name_characters=This parameter can only contain letters, digits, or "-_"
+cms.contenttypes.ui.decisiontree.targets.form.none=-- none --
+cms.contenttypes.ui.decisiontree.options.form.please_select=-- please select --
+cms.contenttypes.ui.decisiontree.properties.form.description_label=Description
+cms.contenttypes.ui.decisiontree.sections.form.instructions_label=Instructions
+cms.contenttypes.ui.decisiontree.options.form.label=Label
+cms.contenttypes.ui.decisiontree.targets.form.match_value=Value to Match
+cms.contenttypes.ui.decisiontree.sections.form.parameter_name_label=Parameter Name
+cms.contenttypes.ui.decisiontree.options.form.section=Section
+cms.contenttypes.ui.decisiontree.targets.form.target_section_label=Target Section
+cms.contenttypes.ui.decisiontree.targets.form.target_url_label=Target URL
+cms.contenttypes.ui.decisiontree.sections.form.title_label=Title
+cms.contenttypes.ui.decisiontree.options.form.value=Value
+cms.contenttypes.ui.decisiontree.targets.form.target_required=Either a target URL or a target section is required.
+cms.contenttypes.ui.decisiontree.targets.form.duplicate_target=Please enter a target URL or a target section, but not both.
+cms.contenttypes.ui.decisiontree.properties.cancel_url=Cancel URL after user abort:
+cms.contenttypes.ui.decisiontree.options.add_new=Add new option
+cms.contenttypes.ui.decisiontree.options.add=Add Option
+cms.contenttypes.ui.decisiontree.options.delete=Delete option
+cms.contenttypes.ui.authoring.decisiontree.section_options.description=The options that belong to this decision tree's sections.
+cms.contenttypes.ui.decisiontree.options.edit=Edit Option
+cms.contenttypes.ui.decisiontree.options.table.move_option_name=Move option {0}
+cms.contenttypes.ui.decisiontree.options.table.move_to_beginning=Move to beginning
+cms.contenttypes.ui.decisiontree.options.none_yet=No options yet
+cms.contenttypes.ui.authoring.decisiontree.section_options.title=Decision Options
+cms.contenttypes.ui.decisiontree.options.view_all=View all options
+cms.contenttypes.ui.decisiontree.targets.add_new=Add new target
+cms.contenttypes.ui.decisiontree.targets.add=Add Target
+cms.contenttypes.ui.decisiontree.targets.delete=Delete target
+cms.contenttypes.ui.authoring.decisiontree.option_targets.description=The targets that belong to this decision treeS.
+cms.contenttypes.ui.decisiontree.targets.edit=Edit Target
+cms.contenttypes.ui.decisiontree.targets.none_yet=No targets yet
+cms.contenttypes.ui.authoring.decisiontree.option_targets.title=Decision Option Targets
+cms.contenttypes.ui.decisiontree.targets.view_all=View all targets
+cms.contenttypes.ui.decisiontree.options.form.submission_cancelled=Option submission cancelled
+cms.contenttypes.ui.decisiontree.sections.add_new_label=Add new section
+cms.contenttypes.ui.decisiontree.sections.add=Add Section
+cms.contenttypes.ui.decisiontree.sections.delete=Delete section
+cms.contenttypes.ui.authoring.decisiontree.tree_sections.description=The sections that belong to this decision tree.
+cms.contenttypes.ui.decisiontree.sections.edit=Edit Section
+cms.contenttypes.ui.decisiontree.sections.no_sections_yet=No sections yet
+cms.contenttypes.ui.authoring.decisiontree.tree_sections.title=Decision Sections
+cms.contenttypes.ui.decisiontree.sections.view_all=View all sections
+cms.contenttypes.ui.decisiontree.sections.table.header_section=Decision Section
+cms.contenttypes.ui.decisiontree.sections.table.header_edit=Edit
+cms.contenttypes.ui.decisiontree.sections.table.header_delete=Delete
+cms.contenttypes.ui.decisiontree.sections.table.header_first_section=First Section?
+cms.contenttypes.ui.decisiontree.sections.table.link_delete=delete
+cms.contenttypes.ui.decisiontree.sections.table.link_edit=edit
+cms.contenttypes.ui.decisiontree.sections.table.link_set_first=set
+cms.contenttypes.ui.decisiontree.options.table.header_section=Decision Section
+cms.contenttypes.ui.decisiontree.options.table.header_option=Decision Option
+cms.contenttypes.ui.decisiontree.options.table.header_edit=Edit
+cms.contenttypes.ui.decisiontree.options.table.header_move=Move
+cms.contenttypes.ui.decisiontree.options.table.header_delete=Delete
+cms.contenttypes.ui.decisiontree.options.table.link_delete=delete
+cms.contenttypes.ui.decisiontree.options.table.link_move=move
+cms.contenttypes.ui.decisiontree.options.table.link_edit=edit
+cms.contenttypes.ui.decisiontree.targets.form.please_select=-- please select --
+cms.contenttypes.ui.decisiontree.targets.form.submission_cancelled=Target submission cancelled
+cms.contenttypes.ui.decisiontree.targets.form.delete.delete_button=Delete
+cms.contenttypes.ui.decisiontree.targets.form.delete.target_match_value=Target Match Value
+cms.contenttypes.ui.decisiontree.targets.submission_cancelled=Submission cancelled
+cms.contenttypes.ui.decisiontree.sections.form.submission_cancelled=Submission cancelled
+cms.contenttypes.ui.decisiontree.options.table.link_move_below=move below
+cms.contenttypes.ui.decisiontree.options.table.link_no_move=leave it here
+cms.contenttypes.ui.decisiontree.targets.table.header_section=Decision Section
+cms.contenttypes.ui.decisiontree.targets.table.header_match=Decision Option
+cms.contenttypes.ui.decisiontree.targets.table.header_edit=Edit
+cms.contenttypes.ui.decisiontree.targets.table.header_delete=Delete
+cms.contenttypes.ui.decisiontree.targets.table.link_edit=edit
+cms.contenttypes.ui.decisiontree.targets.table.link_delete=delete
+cms.contenttypes.ui.decisiontree.sections.delete_button=Delete
+cms.contenttypes.ui.decisiontree.sections.delete_section_msg=Section to be deleted: "{0}"
+cms.contenttypes.ui.decisiontree.options.delete_option_msg=Option to be deleted: "{0}"
+cms.contenttypes.ui.decisiontree.options.delete_button=Delete
+cms.contenttypes.ui.decisiontree.options.delete.submission_cancelled=Option Delete submission cancelled
+cms.contenttypes.decisiontree.type_label=Decision Tree
diff --git a/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources_fr.properties b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources_fr.properties
new file mode 100644
index 000000000..a3dd7ba52
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/main/java/org/librecms/contenttypes/decisiontree/Resources_fr.properties
@@ -0,0 +1,78 @@
+cms.contenttypes.ui.decisiontree.error.parameter_name_characters=This parameter can only contain letters, digits, or "-_"
+cms.contenttypes.ui.decisiontree.targets.form.none=-- none --
+cms.contenttypes.ui.decisiontree.options.form.please_select=-- please select --
+cms.contenttypes.ui.decisiontree.properties.form.description_label=Description
+cms.contenttypes.ui.decisiontree.sections.form.instructions_label=Instructions
+cms.contenttypes.ui.decisiontree.options.form.label=Label
+cms.contenttypes.ui.decisiontree.targets.form.match_value=Value to Match
+cms.contenttypes.ui.decisiontree.sections.form.parameter_name_label=Parameter Name
+cms.contenttypes.ui.decisiontree.options.form.section=Section
+cms.contenttypes.ui.decisiontree.targets.form.target_section_label=Target Section
+cms.contenttypes.ui.decisiontree.targets.form.target_url_label=Target URL
+cms.contenttypes.ui.decisiontree.sections.form.title_label=Title
+cms.contenttypes.ui.decisiontree.options.form.value=Value
+cms.contenttypes.ui.decisiontree.targets.form.target_required=Either a target URL or a target section is required.
+cms.contenttypes.ui.decisiontree.targets.form.duplicate_target=Please enter a target URL or a target section, but not both.
+cms.contenttypes.ui.decisiontree.properties.cancel_url=Cancel URL after user abort:
+cms.contenttypes.ui.decisiontree.options.add_new=Add new option
+cms.contenttypes.ui.decisiontree.options.add=Add Option
+cms.contenttypes.ui.decisiontree.options.delete=Delete option
+cms.contenttypes.ui.authoring.decisiontree.section_options.description=The options that belong to this decision tree's sections.
+cms.contenttypes.ui.decisiontree.options.edit=Edit Option
+cms.contenttypes.ui.decisiontree.options.table.move_option_name=Move option {0}
+cms.contenttypes.ui.decisiontree.options.table.move_to_beginning=Move to beginning
+cms.contenttypes.ui.decisiontree.options.none_yet=No options yet
+cms.contenttypes.ui.authoring.decisiontree.section_options.title=Decision Options
+cms.contenttypes.ui.decisiontree.options.view_all=View all options
+cms.contenttypes.ui.decisiontree.targets.add_new=Add new target
+cms.contenttypes.ui.decisiontree.targets.add=Add Target
+cms.contenttypes.ui.decisiontree.targets.delete=Delete target
+cms.contenttypes.ui.authoring.decisiontree.option_targets.description=The targets that belong to this decision treeS.
+cms.contenttypes.ui.decisiontree.targets.edit=Edit Target
+cms.contenttypes.ui.decisiontree.targets.none_yet=No targets yet
+cms.contenttypes.ui.authoring.decisiontree.option_targets.title=Decision Option Targets
+cms.contenttypes.ui.decisiontree.targets.view_all=View all targets
+cms.contenttypes.ui.decisiontree.options.form.submission_cancelled=Option submission cancelled
+cms.contenttypes.ui.decisiontree.sections.add_new_label=Add new section
+cms.contenttypes.ui.decisiontree.sections.add=Add Section
+cms.contenttypes.ui.decisiontree.sections.delete=Delete section
+cms.contenttypes.ui.authoring.decisiontree.tree_sections.description=The sections that belong to this decision tree.
+cms.contenttypes.ui.decisiontree.sections.edit=Edit Section
+cms.contenttypes.ui.decisiontree.sections.no_sections_yet=No sections yet
+cms.contenttypes.ui.authoring.decisiontree.tree_sections.title=Decision Sections
+cms.contenttypes.ui.decisiontree.sections.view_all=View all sections
+cms.contenttypes.ui.decisiontree.sections.table.header_section=Decision Section
+cms.contenttypes.ui.decisiontree.sections.table.header_edit=Edit
+cms.contenttypes.ui.decisiontree.sections.table.header_delete=Delete
+cms.contenttypes.ui.decisiontree.sections.table.header_first_section=First Section?
+cms.contenttypes.ui.decisiontree.sections.table.link_delete=delete
+cms.contenttypes.ui.decisiontree.sections.table.link_edit=edit
+cms.contenttypes.ui.decisiontree.sections.table.link_set_first=set
+cms.contenttypes.ui.decisiontree.options.table.header_section=Decision Section
+cms.contenttypes.ui.decisiontree.options.table.header_option=Decision Option
+cms.contenttypes.ui.decisiontree.options.table.header_edit=Edit
+cms.contenttypes.ui.decisiontree.options.table.header_move=Move
+cms.contenttypes.ui.decisiontree.options.table.header_delete=Delete
+cms.contenttypes.ui.decisiontree.options.table.link_delete=delete
+cms.contenttypes.ui.decisiontree.options.table.link_move=move
+cms.contenttypes.ui.decisiontree.options.table.link_edit=edit
+cms.contenttypes.ui.decisiontree.targets.form.please_select=-- please select --
+cms.contenttypes.ui.decisiontree.targets.form.submission_cancelled=Target submission cancelled
+cms.contenttypes.ui.decisiontree.targets.form.delete.delete_button=Delete
+cms.contenttypes.ui.decisiontree.targets.form.delete.target_match_value=Target Match Value
+cms.contenttypes.ui.decisiontree.targets.submission_cancelled=Submission cancelled
+cms.contenttypes.ui.decisiontree.sections.form.submission_cancelled=Submission cancelled
+cms.contenttypes.ui.decisiontree.options.table.link_move_below=move below
+cms.contenttypes.ui.decisiontree.options.table.link_no_move=leave it here
+cms.contenttypes.ui.decisiontree.targets.table.header_section=Decision Section
+cms.contenttypes.ui.decisiontree.targets.table.header_match=Decision Option
+cms.contenttypes.ui.decisiontree.targets.table.header_edit=Edit
+cms.contenttypes.ui.decisiontree.targets.table.header_delete=Delete
+cms.contenttypes.ui.decisiontree.targets.table.link_edit=edit
+cms.contenttypes.ui.decisiontree.targets.table.link_delete=delete
+cms.contenttypes.ui.decisiontree.sections.delete_button=Delete
+cms.contenttypes.ui.decisiontree.sections.delete_section_msg=Section to be deleted: "{0}"
+cms.contenttypes.ui.decisiontree.options.delete_option_msg=Option to be deleted: "{0}"
+cms.contenttypes.ui.decisiontree.options.delete_button=Delete
+cms.contenttypes.ui.decisiontree.options.delete.submission_cancelled=Option Delete submission cancelled
+cms.contenttypes.decisiontree.type_label=Decision Tree
diff --git a/ccm-cms-types-decisiontree/src/main/resources/META-INF/services/org.libreccm.modules.CcmModule b/ccm-cms-types-decisiontree/src/main/resources/META-INF/services/org.libreccm.modules.CcmModule
new file mode 100644
index 000000000..e5e148a7c
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/main/resources/META-INF/services/org.libreccm.modules.CcmModule
@@ -0,0 +1 @@
+org.librecms.contenttypes.decisiontree.Decisiontree
diff --git a/ccm-cms-types-decisiontree/src/main/resources/module-info/org.librecms.ccm-cms-types-decisiontree.properties b/ccm-cms-types-decisiontree/src/main/resources/module-info/org.librecms.ccm-cms-types-decisiontree.properties
new file mode 100644
index 000000000..b9f3b36c8
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/main/resources/module-info/org.librecms.ccm-cms-types-decisiontree.properties
@@ -0,0 +1,4 @@
+groupId=${project.groupId}
+artifactId=${project.artifactId}
+version=${project.version}
+build.date=${timestamp}
diff --git a/ccm-cms-types-decisiontree/src/test/java/org/librecms/contenttypes/decisiontree/AppTest.java b/ccm-cms-types-decisiontree/src/test/java/org/librecms/contenttypes/decisiontree/AppTest.java
new file mode 100644
index 000000000..25b511a36
--- /dev/null
+++ b/ccm-cms-types-decisiontree/src/test/java/org/librecms/contenttypes/decisiontree/AppTest.java
@@ -0,0 +1,38 @@
+package $org.libreccm.cms;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git a/ccm-cms-types-mparticle/pom.xml b/ccm-cms-types-mparticle/pom.xml
new file mode 100644
index 000000000..cfc7d72ef
--- /dev/null
+++ b/ccm-cms-types-mparticle/pom.xml
@@ -0,0 +1,326 @@
+
+
+
+ 4.0.0
+
+
+ libreccm-parent
+ org.libreccm
+ 7.0.0-SNAPSHOT
+
+
+
+ UTF-8
+ ${maven.build.timestamp}
+ yyyy-MM-dd'T'HH:mm:ss'Z'Z
+
+
+
+ org.librecms
+ ccm-cms-types-mparticle
+ 7.0.0-SNAPSHOT
+
+ ccm-cms-types-mparticle
+
+
+
+ javax
+ javaee-api
+ jar
+ provided
+
+
+
+ org.libreccm
+ ccm-core
+ ${project.parent.version}
+ provided
+
+
+
+ org.librecms
+ ccm-cms
+ ${project.parent.version}
+ provided
+
+
+
+ org.hibernate
+ hibernate-entitymanager
+
+
+
+ org.hibernate
+ hibernate-validator
+
+
+
+ junit
+ junit
+ test
+
+
+
+ org.hamcrest
+ hamcrest-core
+ test
+
+
+ org.hamcrest
+ hamcrest-library
+ test
+
+
+
+ org.libreccm
+ ccm-testutils
+ ${project.parent.version}
+ test
+
+
+
+ nl.jqno.equalsverifier
+ equalsverifier
+ test
+
+
+
+ org.jboss.arquillian.junit
+ arquillian-junit-container
+ test
+
+
+ org.jboss.arquillian.extension
+ arquillian-persistence-dbunit
+ test
+
+
+ org.jboss.arquillian.extension
+ arquillian-transaction-impl-base
+ test
+
+
+ org.jboss.shrinkwrap.resolver
+ shrinkwrap-resolver-impl-maven
+ test
+
+
+
+ com.h2database
+ h2
+ test
+
+
+
+
+
+ ccm-cms-types-mparticle
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.3
+
+ 1.7
+ 1.7
+ true
+ true
+ ${project.build.sourceEncoding}
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.18.1
+
+ org.libreccm.tests.categories.UnitTest
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.7.5.201505241946
+
+
+ default-prepare-agent
+
+ prepare-agent
+
+
+
+ default-report
+ prepare-package
+
+ report
+
+
+
+ default-check
+
+ check
+
+
+
+
+ BUNDLE
+
+
+ COMPLEXITY
+ COVEREDRATIO
+ 0.60
+
+
+
+
+
+
+
+
+
+
+ de.jpdigital
+ hibernate4-ddl-maven-plugin
+
+
+ h2
+ mysql5_innodb
+ oracle10g
+ postgresql9
+
+
+ org.libreccm
+
+ true
+
+
+
+
+ gen-ddl
+
+ process-classes
+
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.10.3
+
+ true
+ true
+
+ http://docs.oracle.com/javase/7/docs/api/
+ http://docs.oracle.com/javaee/7/api/
+ http://docs.jboss.org/hibernate/orm/4.3/javadocs/
+
+ private
+ true
+ UTF-8
+ UTF-8
+ UTF-8
+ true
+ true
+ true
+ true
+ false
+ org.jboss.apiviz.APIviz
+
+ org.jboss.apiviz
+ apiviz
+ 1.3.2.GA
+
+ true
+ -sourceclasspath ${project.build.outputDirectory}
+
+
+
+
+ org.apache.maven.plugins
+ maven-jxr-plugin
+ 2.5
+
+
+ org.apache.maven.plugins
+ maven-surefire-report-plugin
+ 2.18.1
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.7.5.201505241946
+
+
+ org.codehaus.mojo
+ findbugs-maven-plugin
+ 3.0.1
+
+
+
+ org.apache.maven.plugins
+ maven-pmd-plugin
+ 3.4
+
+ true
+ utf-8
+ 1.7
+
+ /rulesets/java/basic.xml
+ /rulesets/java/braces.xml
+ /rulesets/java/clone.xml
+ /rulesets/java/codesize.xml
+ /rulesets/java/design.xml
+ /rulesets/java/empty.xml
+ /rulesets/java/finalizers.xml
+ /rulesets/java/imports.xml
+ /rulesets/java/javabeans.xml
+ /rulesets/java/junit.xml
+ /rulesets/java/naming.xml
+ /rulesets/java/optimizations.xml
+ /rulesets/java/strictexception.xml
+ /rulesets/java/strings.xml
+ /rulesets/java/sunsecure.xml
+ /rulesets/java/typeresolution.xml
+ /rulesets/java/unnecessary.xml
+ /rulesets/java/unusedcode.xml
+
+
+
+
+ org.codehaus.mojo
+ javancss-maven-plugin
+ 2.1
+
+
+ org.apache.maven.plugins
+ maven-project-info-reports-plugin
+ 2.8
+
+
+
+ dependencies
+ license
+
+
+
+
+ false
+
+
+
+
+
diff --git a/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/ArticleSection.java b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/ArticleSection.java
new file mode 100644
index 000000000..146eea322
--- /dev/null
+++ b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/ArticleSection.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2015 LibreCCM Foundation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+package org.librecms.contenttypes.mparticle;
+
+import java.io.Serializable;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import org.hibernate.envers.Audited;
+import org.libreccm.l10n.LocalizedString;
+import static org.librecms.CmsConstants.DB_SCHEMA;
+
+/**
+ * object type to hold sections for multi-part article
+ *
+ * @author Koalamann
+ */
+@Entity
+@Audited
+@Table(name = "DECISIONTREE", schema = DB_SCHEMA) //?
+public class ArticleSection implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GeneratedValue
+ @Column(name = "ID")
+ private Long id;
+
+ @Column(name = "TITLE")
+ private LocalizedString title;
+
+ @Column(name = "RANK")
+ private int rank;
+
+ @Column(name = "PAGEBREAK")
+ private boolean pageBreak;
+
+ @Column(name = "TEXT")
+ private LocalizedString text;
+
+ @Column(name = "IMAGE")
+ private LocalizedString image;
+
+ @ManyToOne
+ private MultiPartArticle mparticle;
+
+
+ //Getter and setter:
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public LocalizedString getTitle() {
+ return title;
+ }
+
+ public void setTitle(LocalizedString title) {
+ this.title = title;
+ }
+
+ public int getRank() {
+ return rank;
+ }
+
+ public void setRank(int rank) {
+ this.rank = rank;
+ }
+
+ public boolean isPageBreak() {
+ return pageBreak;
+ }
+
+ public void setPageBreak(boolean pageBreak) {
+ this.pageBreak = pageBreak;
+ }
+
+ public LocalizedString getText() {
+ return text;
+ }
+
+ public void setText(LocalizedString text) {
+ this.text = text;
+ }
+
+}
diff --git a/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/MultiPartArticle.java b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/MultiPartArticle.java
new file mode 100644
index 000000000..744499ea0
--- /dev/null
+++ b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/MultiPartArticle.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2015 LibreCCM Foundation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+package org.librecms.contenttypes.mparticle;
+
+import static org.librecms.contenttypes.mparticle.MultiPartArticleConstants.*;
+
+import org.hibernate.envers.Audited;
+
+import java.io.Serializable;
+import java.util.List;
+import javax.persistence.Column;
+
+import javax.persistence.Entity;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import org.libreccm.l10n.LocalizedString;
+import org.librecms.contentsection.ContentItem;
+
+/*
+ * This class represents the content type MultiPartArctivle
+ *
+ * @author Alexander Konermann
+ * @version 17/11/2015
+ */
+@Entity
+@Audited
+@Table(name = "${type_name}", schema = DB_SCHEMA)
+public class MultiPartArticle extends ContentItem implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Column(name = "SUMMARY")
+ private LocalizedString summary;
+
+ @OneToMany(mappedBy = "article")
+ private List articles;
+
+ public LocalizedString getSummary() {
+ return summary;
+ }
+
+ public void setSummary(LocalizedString summary) {
+ this.summary = summary;
+ }
+
+ public List getArticles() {
+ return articles;
+ }
+
+ public void setArticles(List articles) {
+ this.articles = articles;
+ }
+
+}
diff --git a/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/MultiPartArticleConstants.java b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/MultiPartArticleConstants.java
new file mode 100644
index 000000000..cfa83c83e
--- /dev/null
+++ b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/MultiPartArticleConstants.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2015 LibreCCM Foundation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+package org.librecms.contenttypes.mparticle;
+
+public class MultiPartArticleConstants {
+
+ public static final String DB_SCHEMA = "cms_types_mparticle";
+
+ private MultiPartArticleConstants() {
+ //Nothing
+ }
+
+}
diff --git a/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/MultiPartArticleModule.java b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/MultiPartArticleModule.java
new file mode 100644
index 000000000..4204ee8e2
--- /dev/null
+++ b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/MultiPartArticleModule.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2015 LibreCCM Foundation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+package org.librecms.contenttypes.mparticle;
+
+import org.libreccm.modules.CcmModule;
+import org.libreccm.modules.InitEvent;
+import org.libreccm.modules.InstallEvent;
+import org.libreccm.modules.Module;
+import org.libreccm.modules.RequiredModule;
+import org.libreccm.modules.ShutdownEvent;
+import org.libreccm.modules.UnInstallEvent;
+
+@Module(packageName="org.librecms.contenttypes.mparticle",
+ requiredModules = {@RequiredModule(module = org.libreccm.core.CcmCore.class)})
+public class MultiPartArticleModule implements CcmModule {
+
+ @Override
+ public void install(final InstallEvent event) {
+ //ToDo Create initial data for the module if neccessary
+ }
+
+ @Override
+ public void init(final InitEvent event) {
+ //ToDo Add initialisation logic necessary for your module
+ }
+
+ @Override
+ public void shutdown(final ShutdownEvent event) {
+ //ToDo Add shutdown logic if necessary
+ }
+
+ @Override
+ public void uninstall(final UnInstallEvent event) {
+ //ToDo Remove module data
+ }
+
+
+}
diff --git a/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/Resources.properties b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/Resources.properties
new file mode 100755
index 000000000..0de8d33ae
--- /dev/null
+++ b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/Resources.properties
@@ -0,0 +1,35 @@
+mparticle.authoring.body_text.description=Edit the body text in sections
+cms.contenttypes.ui.mparticle.add_new_section=Add new section
+cms.contenttypes.ui.mparticle.add_section=Add Section
+cms.contenttypes.ui.mparticle.an_item_with_name_already_exists=An item with name already exists
+cms.contenttypes.ui.mparticle.an_item_with_this_name_already_exists=An item with this name already exists
+cms.contenttypes.ui.mparticle.article_summary=Article Summary
+cms.contenttypes.ui.mparticle.article_title=Article Title
+cms.contenttypes.ui.mparticle.section.text=Section text:
+cms.contenttypes.ui.mparticle.section.caption=Caption:
+cms.contenttypes.ui.mparticle.current_image=Current image:
+cms.contenttypes.ui.mparticle.delete_section=Delete section
+cms.contenttypes.ui.mparticle.edit_section=Edit Section
+cms.contenttypes.ui.mparticle.section.image=Image:
+cms.contenttypes.ui.mparticle.move_section_name=Move section: {0}
+cms.contenttypes.ui.mparticle.move_to_beginning=Move to beginning
+cms.contenttypes.ui.mparticle.no_sections_yet=No sections yet
+cms.contenttypes.ui.mparticle.no_text_available=No Text Available
+cms.contenttypes.ui.mparticle.section_text_asset=Section text asset
+cms.contenttypes.ui.mparticle.section.title=Section Title :
+cms.contenttypes.ui.mparticle.section.select_image=Select image:
+cms.contenttypes.ui.mparticle.submission_cancelled=Submission cancelled
+cms.contenttypes.ui.mparticle.view_all_sections=View all sections
+cms.contenttypes.ui.mparticle.no_launch_date=launch date is required
+cms.contenttypes.ui.mparticle.section_table.header_section=Section
+cms.contenttypes.ui.mparticle.section_table.header_delete=Delete
+cms.contenttypes.ui.mparticle.section_table.header_move=Move
+cms.contenttypes.ui.mparticle.section_table.header_edit=Edit
+cms.contenttypes.ui.mparticle.section_table.link_delete=delete
+cms.contenttypes.ui.mparticle.section_table.link_move=move
+cms.contenttypes.ui.mparticle.section_table.link_edit=edit
+cms.contenttypes.ui.mparticle.section.create_break=Create page break after this section
+cms.contenttypes.ui.mparticle.image.delete_button=Delete Image
+cms.contenttypes.ui.mparticle.section_table.link_move_below=move belowe here
+cms.contenttypes.ui.mparticle.section_table.link_not_defined=(No action possible)
+cms.contenttypes.multipartarticle.type_label=Multipart Article
diff --git a/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/Resources_de.properties b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/Resources_de.properties
new file mode 100755
index 000000000..2394f91cf
--- /dev/null
+++ b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/Resources_de.properties
@@ -0,0 +1,35 @@
+mparticle.authoring.body_text.description=Bearbeitung des Haupttextes in Abschnitten
+cms.contenttypes.ui.mparticle.add_new_section=Neuen Abschnitt hinzuf\u00fcgen
+cms.contenttypes.ui.mparticle.add_section=Abschnitt hinzuf\u00fcgen
+cms.contenttypes.ui.mparticle.an_item_with_name_already_exists=Ein Element mit dem Namen existiert bereits.
+cms.contenttypes.ui.mparticle.an_item_with_this_name_already_exists=Ein Element mit diesem Namen existiert bereits.
+cms.contenttypes.ui.mparticle.article_summary=Artikel Zusammenfassung
+cms.contenttypes.ui.mparticle.article_title=Articel Titel
+cms.contenttypes.ui.mparticle.section.text=Abschnittstext:
+cms.contenttypes.ui.mparticle.section.caption=Bildtext:
+cms.contenttypes.ui.mparticle.current_image=Aktuelles Bild:
+cms.contenttypes.ui.mparticle.delete_section=Abschnitt l\u00f6schen
+cms.contenttypes.ui.mparticle.edit_section=Abschnitt bearbeiten
+cms.contenttypes.ui.mparticle.section.image=Bild:
+cms.contenttypes.ui.mparticle.move_section_name=verschiebe Abschnitt: {0}
+cms.contenttypes.ui.mparticle.move_to_beginning=An den Anfang verschieben
+cms.contenttypes.ui.mparticle.no_sections_yet=Zur Zeit keine Abschnitte
+cms.contenttypes.ui.mparticle.no_text_available=Kein Text verf\u00fcgbar
+cms.contenttypes.ui.mparticle.section_text_asset=Section text asset
+cms.contenttypes.ui.mparticle.section.title=Titel des Abschnitts:
+cms.contenttypes.ui.mparticle.section.select_image=Bild ausw\u00e4hlen:
+cms.contenttypes.ui.mparticle.submission_cancelled=Vorlage verworfen
+cms.contenttypes.ui.mparticle.view_all_sections=Alle Abschnitte anschauen
+cms.contenttypes.ui.mparticle.no_launch_date=Ver\u00f6ffentlichungsdatum fehlt
+cms.contenttypes.ui.mparticle.section_table.header_section=Abschnitt
+cms.contenttypes.ui.mparticle.section_table.header_delete=L\u00f6schen
+cms.contenttypes.ui.mparticle.section_table.header_move=Verschieben
+cms.contenttypes.ui.mparticle.section_table.header_edit=Bearbeiten
+cms.contenttypes.ui.mparticle.section_table.link_delete=l\u00f6schen
+cms.contenttypes.ui.mparticle.section_table.link_move=verschieben
+cms.contenttypes.ui.mparticle.section_table.link_edit=bearbeiten
+cms.contenttypes.ui.mparticle.section.create_break=Seitenumbruch nach diesem Abschnitt einf\u00fcgen
+cms.contenttypes.ui.mparticle.image.delete_button=Bild Entfernen
+cms.contenttypes.ui.mparticle.section_table.link_move_below=unterhalb verschieben
+cms.contenttypes.ui.mparticle.section_table.link_not_defined=(Keine Aktion m\u00f6glich)
+cms.contenttypes.multipartarticle.type_label=Mehrteiliger Artikel
diff --git a/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/Resources_fr.properties b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/Resources_fr.properties
new file mode 100755
index 000000000..d2ba1a04c
--- /dev/null
+++ b/ccm-cms-types-mparticle/src/main/java/org/librecms/contenttypes/mparticle/Resources_fr.properties
@@ -0,0 +1,35 @@
+mparticle.authoring.body_text.description=Edit the body text in sections
+cms.contenttypes.ui.mparticle.add_new_section=Add new section
+cms.contenttypes.ui.mparticle.add_section=Add Section
+cms.contenttypes.ui.mparticle.an_item_with_name_already_exists=An item with name already exists
+cms.contenttypes.ui.mparticle.an_item_with_this_name_already_exists=An item with this name already exists
+cms.contenttypes.ui.mparticle.article_summary=Article Summary
+cms.contenttypes.ui.mparticle.article_title=Article Title
+cms.contenttypes.ui.mparticle.section.text=Section text:
+cms.contenttypes.ui.mparticle.section.caption=L\u00e9gende
+cms.contenttypes.ui.mparticle.current_image=Current image:
+cms.contenttypes.ui.mparticle.delete_section=Delete section
+cms.contenttypes.ui.mparticle.edit_section=Edit Section
+cms.contenttypes.ui.mparticle.section.image=Image:
+cms.contenttypes.ui.mparticle.move_section_name=Move section: {0}
+cms.contenttypes.ui.mparticle.move_to_beginning=Move to beginning
+cms.contenttypes.ui.mparticle.no_sections_yet=No sections yet
+cms.contenttypes.ui.mparticle.no_text_available=No Text Available
+cms.contenttypes.ui.mparticle.section_text_asset=Section text asset
+cms.contenttypes.ui.mparticle.section.title=Section Title:
+cms.contenttypes.ui.mparticle.section.select_image=Select image:
+cms.contenttypes.ui.mparticle.submission_cancelled=Submission cancelled
+cms.contenttypes.ui.mparticle.view_all_sections=View all sections
+cms.contenttypes.ui.mparticle.no_launch_date=launch date is required
+cms.contenttypes.ui.mparticle.section_table.header_section=Section
+cms.contenttypes.ui.mparticle.section_table.header_delete=Delete
+cms.contenttypes.ui.mparticle.section_table.header_move=Move
+cms.contenttypes.ui.mparticle.section_table.header_edit=Edit
+cms.contenttypes.ui.mparticle.section_table.link_delete=delete
+cms.contenttypes.ui.mparticle.section_table.link_move=move
+cms.contenttypes.ui.mparticle.section_table.link_edit=edit
+cms.contenttypes.ui.mparticle.section.create_break=Create page break
+cms.contenttypes.ui.mparticle.image.delete_button=Delete Image
+cms.contenttypes.ui.mparticle.section_table.link_move_below=move belowe here
+cms.contenttypes.ui.mparticle.section_table.link_not_defined=(No action possible)
+cms.contenttypes.multipartarticle.type_label=Multipart Article
diff --git a/ccm-cms-types-mparticle/src/main/resources/META-INF/services/org.libreccm.modules.CcmModule b/ccm-cms-types-mparticle/src/main/resources/META-INF/services/org.libreccm.modules.CcmModule
new file mode 100644
index 000000000..a5672c8cb
--- /dev/null
+++ b/ccm-cms-types-mparticle/src/main/resources/META-INF/services/org.libreccm.modules.CcmModule
@@ -0,0 +1 @@
+org.librecms.contenttypes.mparticle.MultiPartArticle
diff --git a/ccm-cms-types-mparticle/src/main/resources/module-info/org.librecms.ccm-cms-types-mparticle.properties b/ccm-cms-types-mparticle/src/main/resources/module-info/org.librecms.ccm-cms-types-mparticle.properties
new file mode 100644
index 000000000..b9f3b36c8
--- /dev/null
+++ b/ccm-cms-types-mparticle/src/main/resources/module-info/org.librecms.ccm-cms-types-mparticle.properties
@@ -0,0 +1,4 @@
+groupId=${project.groupId}
+artifactId=${project.artifactId}
+version=${project.version}
+build.date=${timestamp}
diff --git a/ccm-cms-types-mparticle/src/test/java/org/librecms/contenttypes/mparticle/AppTest.java b/ccm-cms-types-mparticle/src/test/java/org/librecms/contenttypes/mparticle/AppTest.java
new file mode 100644
index 000000000..25b511a36
--- /dev/null
+++ b/ccm-cms-types-mparticle/src/test/java/org/librecms/contenttypes/mparticle/AppTest.java
@@ -0,0 +1,38 @@
+package $org.libreccm.cms;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git a/pom.xml b/pom.xml
index 86dfcf918..85befdd47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,6 +52,8 @@
ccm-cms-types-bookmark
ccm-cms-types-event
ccm-cms-types-minutes
+ ccm-cms-types-decisiontree
+ ccm-cms-types-mparticle