CCM NG:
- Moved MultiPartArticle to ccm-cms module - Added serveral entities to ccm-cms (Workflow, Lifecycle) - Added entity WorkflowTemplate to ccm-core - Fixed wrong inheritence strategy for Task entity git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4179 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
c62744ca7e
commit
4b143d3b3b
|
|
@ -1,338 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<parent>
|
|
||||||
<artifactId>libreccm-parent</artifactId>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
<timestamp>${maven.build.timestamp}</timestamp>
|
|
||||||
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'Z</maven.build.timestamp.format>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms-types-mparticle</artifactId>
|
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
|
||||||
|
|
||||||
<name>ccm-cms-types-mparticle</name>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax</groupId>
|
|
||||||
<artifactId>javaee-api</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-core</artifactId>
|
|
||||||
<version>${project.parent.version}</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms</artifactId>
|
|
||||||
<version>${project.parent.version}</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hibernate</groupId>
|
|
||||||
<artifactId>hibernate-entitymanager</artifactId>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hibernate</groupId>
|
|
||||||
<artifactId>hibernate-envers</artifactId>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hibernate</groupId>
|
|
||||||
<artifactId>hibernate-validator</artifactId>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hibernate</groupId>
|
|
||||||
<artifactId>hibernate-validator-cdi</artifactId>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>junit</groupId>
|
|
||||||
<artifactId>junit</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hamcrest</groupId>
|
|
||||||
<artifactId>hamcrest-core</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hamcrest</groupId>
|
|
||||||
<artifactId>hamcrest-library</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-testutils</artifactId>
|
|
||||||
<version>${project.parent.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>nl.jqno.equalsverifier</groupId>
|
|
||||||
<artifactId>equalsverifier</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jboss.arquillian.junit</groupId>
|
|
||||||
<artifactId>arquillian-junit-container</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jboss.arquillian.extension</groupId>
|
|
||||||
<artifactId>arquillian-persistence-dbunit</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jboss.arquillian.extension</groupId>
|
|
||||||
<artifactId>arquillian-transaction-impl-base</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jboss.shrinkwrap.resolver</groupId>
|
|
||||||
<artifactId>shrinkwrap-resolver-impl-maven</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.h2database</groupId>
|
|
||||||
<artifactId>h2</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<finalName>ccm-cms-types-mparticle</finalName>
|
|
||||||
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>3.3</version>
|
|
||||||
<configuration>
|
|
||||||
<source>1.7</source>
|
|
||||||
<target>1.7</target>
|
|
||||||
<optimize>true</optimize>
|
|
||||||
<debug>true</debug>
|
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
|
||||||
<version>2.18.1</version>
|
|
||||||
<configuration>
|
|
||||||
<groups>org.libreccm.tests.categories.UnitTest</groups>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.jacoco</groupId>
|
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
|
||||||
<version>0.7.5.201505241946</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>default-prepare-agent</id>
|
|
||||||
<goals>
|
|
||||||
<goal>prepare-agent</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
<execution>
|
|
||||||
<id>default-report</id>
|
|
||||||
<phase>prepare-package</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>report</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
<execution>
|
|
||||||
<id>default-check</id>
|
|
||||||
<goals>
|
|
||||||
<goal>check</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<rules>
|
|
||||||
<rule>
|
|
||||||
<element>BUNDLE</element>
|
|
||||||
<limits>
|
|
||||||
<limit>
|
|
||||||
<counter>COMPLEXITY</counter>
|
|
||||||
<value>COVEREDRATIO</value>
|
|
||||||
<minimum>0.60</minimum>
|
|
||||||
</limit>
|
|
||||||
</limits>
|
|
||||||
</rule>
|
|
||||||
</rules>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>de.jpdigital</groupId>
|
|
||||||
<artifactId>hibernate5-ddl-maven-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<dialects>
|
|
||||||
<param>h2</param>
|
|
||||||
<param>oracle10g</param>
|
|
||||||
<param>postgresql9</param>
|
|
||||||
</dialects>
|
|
||||||
<packages>
|
|
||||||
<param>org.libreccm</param>
|
|
||||||
</packages>
|
|
||||||
<useEnvers>true</useEnvers>
|
|
||||||
</configuration>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<goals>
|
|
||||||
<goal>gen-ddl</goal>
|
|
||||||
</goals>
|
|
||||||
<phase>process-classes</phase>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
|
|
||||||
<resources>
|
|
||||||
<resource>
|
|
||||||
<directory>src/main/resources</directory>
|
|
||||||
<filtering>true</filtering>
|
|
||||||
</resource>
|
|
||||||
</resources>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
<reporting>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
|
||||||
<version>2.10.3</version>
|
|
||||||
<configuration>
|
|
||||||
<detectLinks>true</detectLinks>
|
|
||||||
<detectJavaApiLinks>true</detectJavaApiLinks>
|
|
||||||
<links>
|
|
||||||
<link>http://docs.oracle.com/javase/7/docs/api/</link>
|
|
||||||
<link>http://docs.oracle.com/javaee/7/api/</link>
|
|
||||||
<link>http://docs.jboss.org/hibernate/orm/4.3/javadocs/</link>
|
|
||||||
</links>
|
|
||||||
<show>private</show>
|
|
||||||
<docfilessubdirs>true</docfilessubdirs>
|
|
||||||
<charset>UTF-8</charset>
|
|
||||||
<encoding>UTF-8</encoding>
|
|
||||||
<docencoding>UTF-8</docencoding>
|
|
||||||
<breakiterator>true</breakiterator>
|
|
||||||
<version>true</version>
|
|
||||||
<author>true</author>
|
|
||||||
<keywords>true</keywords>
|
|
||||||
<failOnError>false</failOnError>
|
|
||||||
<doclet>org.jboss.apiviz.APIviz</doclet>
|
|
||||||
<docletArtifact>
|
|
||||||
<groupId>org.jboss.apiviz</groupId>
|
|
||||||
<artifactId>apiviz</artifactId>
|
|
||||||
<version>1.3.2.GA</version>
|
|
||||||
</docletArtifact>
|
|
||||||
<useStandardDocletOptions>true</useStandardDocletOptions>
|
|
||||||
<additionalparam>-sourceclasspath ${project.build.outputDirectory}</additionalparam>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-jxr-plugin</artifactId>
|
|
||||||
<version>2.5</version>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-surefire-report-plugin</artifactId>
|
|
||||||
<version>2.18.1</version>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.jacoco</groupId>
|
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
|
||||||
<version>0.7.5.201505241946</version>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
<version>3.0.1</version>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-pmd-plugin</artifactId>
|
|
||||||
<version>3.4</version>
|
|
||||||
<configuration>
|
|
||||||
<linkXref>true</linkXref>
|
|
||||||
<sourceEncoding>utf-8</sourceEncoding>
|
|
||||||
<targetJdk>1.7</targetJdk>
|
|
||||||
<rulesets>
|
|
||||||
<ruleset>/rulesets/java/basic.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/braces.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/clone.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/codesize.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/design.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/empty.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/finalizers.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/imports.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/junit.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/naming.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/optimizations.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/strictexception.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/strings.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/sunsecure.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/typeresolution.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/unnecessary.xml</ruleset>
|
|
||||||
<ruleset>/rulesets/java/unusedcode.xml</ruleset>
|
|
||||||
</rulesets>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>javancss-maven-plugin</artifactId>
|
|
||||||
<version>2.1</version>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
|
||||||
<version>2.8</version>
|
|
||||||
<reportSets>
|
|
||||||
<reportSet>
|
|
||||||
<reports>
|
|
||||||
<report>dependencies</report>
|
|
||||||
<report>license</report>
|
|
||||||
</reports>
|
|
||||||
</reportSet>
|
|
||||||
</reportSets>
|
|
||||||
<configuration>
|
|
||||||
<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</reporting>
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,113 +0,0 @@
|
||||||
/*
|
|
||||||
* 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.hibernate.validator.constraints.NotEmpty;
|
|
||||||
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;
|
|
||||||
|
|
||||||
@NotEmpty
|
|
||||||
@Column(name = "RANK")
|
|
||||||
private int rank;
|
|
||||||
|
|
||||||
@NotEmpty
|
|
||||||
@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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
/*
|
|
||||||
* 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 <a href="mailto:konerman@tzi.de">Alexander Konermann</a>
|
|
||||||
* @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<ArticleSection> articles;
|
|
||||||
|
|
||||||
public LocalizedString getSummary() {
|
|
||||||
return summary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSummary(LocalizedString summary) {
|
|
||||||
this.summary = summary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ArticleSection> getArticles() {
|
|
||||||
return articles;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setArticles(List<ArticleSection> articles) {
|
|
||||||
this.articles = articles;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
/*
|
|
||||||
* 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
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
/*
|
|
||||||
* 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
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
org.librecms.contenttypes.mparticle.MultiPartArticle
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
groupId=${project.groupId}
|
|
||||||
artifactId=${project.artifactId}
|
|
||||||
version=${project.version}
|
|
||||||
build.date=${timestamp}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
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 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -15,6 +15,11 @@
|
||||||
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'Z</maven.build.timestamp.format>
|
<maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'Z</maven.build.timestamp.format>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms</artifactId>
|
||||||
|
|
||||||
|
<name>LibreCMS</name>
|
||||||
|
|
||||||
<licenses>
|
<licenses>
|
||||||
<license>
|
<license>
|
||||||
<name>Lesser GPL 2.1</name>
|
<name>Lesser GPL 2.1</name>
|
||||||
|
|
@ -22,11 +27,6 @@
|
||||||
</license>
|
</license>
|
||||||
</licenses>
|
</licenses>
|
||||||
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms</artifactId>
|
|
||||||
|
|
||||||
<name>LibreCMS</name>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax</groupId>
|
<groupId>javax</groupId>
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,9 @@ public class ReusableAsset<T extends Asset> extends CcmObject
|
||||||
if (obj == null) {
|
if (obj == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (!super.equals(obj)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (!(obj instanceof ReusableAsset)) {
|
if (!(obj instanceof ReusableAsset)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ import static org.librecms.CmsConstants.*;
|
||||||
* @param <T>
|
* @param <T>
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
@Table(schema = DB_SCHEMA, name = "attachment_lists")
|
@Table(schema = DB_SCHEMA, name = "ATTACHMENT_LISTS")
|
||||||
@Audited
|
@Audited
|
||||||
public class AttachmentList<T extends Asset> implements Identifiable,
|
public class AttachmentList<T extends Asset> implements Identifiable,
|
||||||
List<ItemAttachment<T>>,
|
List<ItemAttachment<T>>,
|
||||||
|
|
@ -121,7 +121,11 @@ public class AttachmentList<T extends Asset> implements Identifiable,
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ItemAttachment<T>> getAttachments() {
|
public List<ItemAttachment<T>> getAttachments() {
|
||||||
return Collections.unmodifiableList(attachments);
|
if (attachments == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return Collections.unmodifiableList(attachments);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAttachments(List<ItemAttachment<T>> attachments) {
|
public void setAttachments(List<ItemAttachment<T>> attachments) {
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ public class Article extends GenericArticle implements Serializable {
|
||||||
|
|
||||||
@Embedded
|
@Embedded
|
||||||
@AssociationOverride(
|
@AssociationOverride(
|
||||||
name = "VALUES",
|
name = "values",
|
||||||
joinTable = @JoinTable(name = "ARTICLE_LEADS",
|
joinTable = @JoinTable(name = "ARTICLE_LEADS",
|
||||||
schema = DB_SCHEMA,
|
schema = DB_SCHEMA,
|
||||||
joinColumns = {
|
joinColumns = {
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ public class Event extends GenericArticle implements Serializable {
|
||||||
*/
|
*/
|
||||||
@Embedded
|
@Embedded
|
||||||
@AssociationOverride(
|
@AssociationOverride(
|
||||||
name = "VALUES",
|
name = "values",
|
||||||
joinTable = @JoinTable(name = "EVENT_LEADS",
|
joinTable = @JoinTable(name = "EVENT_LEADS",
|
||||||
schema = DB_SCHEMA,
|
schema = DB_SCHEMA,
|
||||||
joinColumns = {
|
joinColumns = {
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ public class GenericArticle extends ContentItem implements Serializable {
|
||||||
|
|
||||||
@Embedded
|
@Embedded
|
||||||
@AssociationOverride(
|
@AssociationOverride(
|
||||||
name = "VALUES",
|
name = "values",
|
||||||
joinTable = @JoinTable(name = "ARTICLE_TEXTS",
|
joinTable = @JoinTable(name = "ARTICLE_TEXTS",
|
||||||
schema = DB_SCHEMA,
|
schema = DB_SCHEMA,
|
||||||
joinColumns = {
|
joinColumns = {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,144 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 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;
|
||||||
|
|
||||||
|
import static org.libreccm.core.CoreConstants.*;
|
||||||
|
|
||||||
|
import org.hibernate.envers.Audited;
|
||||||
|
import org.libreccm.l10n.LocalizedString;
|
||||||
|
import org.librecms.contentsection.ContentItem;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.persistence.AssociationOverride;
|
||||||
|
import javax.persistence.Embedded;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.JoinTable;
|
||||||
|
import javax.persistence.OneToMany;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Audited
|
||||||
|
@Table(name = "MULTIPART_ARTICLES", schema = DB_SCHEMA)
|
||||||
|
public class MultiPartArticle extends ContentItem implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -587374085831420868L;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
@AssociationOverride(
|
||||||
|
name = "values",
|
||||||
|
joinTable = @JoinTable(name = "MPA_SUMMARIES",
|
||||||
|
schema = DB_SCHEMA,
|
||||||
|
joinColumns = {
|
||||||
|
@JoinColumn(name = "OBJECT_ID")}
|
||||||
|
))
|
||||||
|
private LocalizedString summary;
|
||||||
|
|
||||||
|
@OneToMany
|
||||||
|
@JoinColumn(name = "MULTIPART_ARTICLE_ID")
|
||||||
|
private List<MultiPartArticleSection> sections;
|
||||||
|
|
||||||
|
public MultiPartArticle() {
|
||||||
|
this.sections = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalizedString getSummary() {
|
||||||
|
return summary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSummary(final LocalizedString summary) {
|
||||||
|
this.summary = summary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MultiPartArticleSection> getSections() {
|
||||||
|
if (sections == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return Collections.unmodifiableList(sections);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setSections(final List<MultiPartArticleSection> sections) {
|
||||||
|
this.sections = new ArrayList<>(sections);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addSection(final MultiPartArticleSection section) {
|
||||||
|
sections.add(section);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeSection(final MultiPartArticleSection section) {
|
||||||
|
sections.remove(section);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int hash = super.hashCode();
|
||||||
|
hash = 59 * hash + Objects.hashCode(summary);
|
||||||
|
hash = 59 * hash + Objects.hashCode(sections);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(final Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (super.equals(obj)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(obj instanceof MultiPartArticle)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final MultiPartArticle other = (MultiPartArticle) obj;
|
||||||
|
if (!other.canEqual(obj)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Objects.equals(summary, other.getSummary())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return Objects.equals(sections, other.getSections());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canEqual(final Object obj) {
|
||||||
|
return obj instanceof MultiPartArticle;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString(final String data) {
|
||||||
|
return super.toString(String.format(", summary = %s%s",
|
||||||
|
Objects.toString(summary),
|
||||||
|
data));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,187 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 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;
|
||||||
|
|
||||||
|
import static org.libreccm.core.CoreConstants.*;
|
||||||
|
|
||||||
|
import org.hibernate.envers.Audited;
|
||||||
|
import org.libreccm.l10n.LocalizedString;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.persistence.AssociationOverride;
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Embedded;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.JoinTable;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A section of a MultiPartArticle
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Audited
|
||||||
|
@Table(name = "MULTIPART_ARTICLE_SECTIONS")
|
||||||
|
public class MultiPartArticleSection implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1109186628988745920L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
|
@Column(name = "SECTION_ID")
|
||||||
|
private long sectionId;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
@AssociationOverride(
|
||||||
|
name = "values",
|
||||||
|
joinTable = @JoinTable(name = "MPA_SECTION_TITLES",
|
||||||
|
schema = DB_SCHEMA,
|
||||||
|
joinColumns = {
|
||||||
|
@JoinColumn(name = "OBJECT_ID")}
|
||||||
|
))
|
||||||
|
private LocalizedString title;
|
||||||
|
|
||||||
|
@Column(name = "RANK")
|
||||||
|
private int rank;
|
||||||
|
|
||||||
|
@Column(name = "PAGE_BREAK")
|
||||||
|
private boolean pageBreak;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
@AssociationOverride(
|
||||||
|
name = "values",
|
||||||
|
joinTable = @JoinTable(name = "MPA_SECTION_TEXTS",
|
||||||
|
schema = DB_SCHEMA,
|
||||||
|
joinColumns = {
|
||||||
|
@JoinColumn(name = "OBJECT_ID")}
|
||||||
|
))
|
||||||
|
private LocalizedString text;
|
||||||
|
|
||||||
|
public long getSectionId() {
|
||||||
|
return sectionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setSectionId(final long sectionId) {
|
||||||
|
this.sectionId = sectionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalizedString getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(final LocalizedString title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRank() {
|
||||||
|
return rank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRank(final int rank) {
|
||||||
|
this.rank = rank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPageBreak() {
|
||||||
|
return pageBreak;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageBreak(final boolean pageBreak) {
|
||||||
|
this.pageBreak = pageBreak;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalizedString getText() {
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setText(final LocalizedString text) {
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
//ToDo: Add image property
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int hash = 5;
|
||||||
|
hash = 19 * hash + Objects.hashCode(title);
|
||||||
|
hash = 19 * hash + rank;
|
||||||
|
hash = 19 * hash + (pageBreak ? 1 : 0);
|
||||||
|
hash = 19 * hash + Objects.hashCode(text);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(final Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!(obj instanceof MultiPartArticleSection)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final MultiPartArticleSection other = (MultiPartArticleSection) obj;
|
||||||
|
if (rank != other.getRank()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!other.canEqual(this)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (pageBreak != other.isPageBreak()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(title, other.getTitle())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return Objects.equals(text, other.getText());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canEqual(final Object obj) {
|
||||||
|
return obj instanceof MultiPartArticleSection;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final String toString() {
|
||||||
|
return toString("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(final String data) {
|
||||||
|
return String.format("%s{ "
|
||||||
|
+ "title = %s, "
|
||||||
|
+ "rank = %d,"
|
||||||
|
+ "pageBreak = %b, "
|
||||||
|
+ "text = %s%d"
|
||||||
|
+ " }",
|
||||||
|
super.toString(),
|
||||||
|
title,
|
||||||
|
rank,
|
||||||
|
pageBreak,
|
||||||
|
text,
|
||||||
|
data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -52,7 +52,7 @@ public class News extends GenericArticle implements Serializable {
|
||||||
*/
|
*/
|
||||||
@Embedded
|
@Embedded
|
||||||
@AssociationOverride(
|
@AssociationOverride(
|
||||||
name = "VALUES",
|
name = "values",
|
||||||
joinTable = @JoinTable(name = "NEWS_LEADS",
|
joinTable = @JoinTable(name = "NEWS_LEADS",
|
||||||
schema = DB_SCHEMA,
|
schema = DB_SCHEMA,
|
||||||
joinColumns = {
|
joinColumns = {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,236 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 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.lifecycle;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.OneToMany;
|
||||||
|
import javax.persistence.OneToOne;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import javax.persistence.Temporal;
|
||||||
|
import javax.persistence.TemporalType;
|
||||||
|
|
||||||
|
import static org.librecms.CmsConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "LIFECYCLES", schema = DB_SCHEMA)
|
||||||
|
public class Lifecycle implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 184357562249530038L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
|
@Column(name = "LIFECYCLE_ID")
|
||||||
|
private long lifecycleId;
|
||||||
|
|
||||||
|
@Column(name = "START_DATE_TIME")
|
||||||
|
@Temporal(TemporalType.DATE)
|
||||||
|
private Date startDateTime;
|
||||||
|
|
||||||
|
@Column(name = "END_DATE_TIME")
|
||||||
|
@Temporal(TemporalType.DATE)
|
||||||
|
private Date endDateTime;
|
||||||
|
|
||||||
|
@Column(name = "LISTENER", length = 1024)
|
||||||
|
private String listener;
|
||||||
|
|
||||||
|
@Column(name = "STARTED")
|
||||||
|
private boolean started;
|
||||||
|
|
||||||
|
@Column(name = "FINISHED")
|
||||||
|
private boolean finished;
|
||||||
|
|
||||||
|
@OneToOne
|
||||||
|
@JoinColumn(name = "DEFINITION_ID")
|
||||||
|
private LifecycleDefinition definition;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "LIFECYCLE")
|
||||||
|
@JoinColumn(name = "LIFECYCLE_ID")
|
||||||
|
private List<Phase> phases;
|
||||||
|
|
||||||
|
public Lifecycle() {
|
||||||
|
phases = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getLifecycleId() {
|
||||||
|
return lifecycleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLifecycleId(final long lifecycleId) {
|
||||||
|
this.lifecycleId = lifecycleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getStartDateTime() {
|
||||||
|
return new Date(startDateTime.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStartDateTime(final Date startDateTime) {
|
||||||
|
this.startDateTime = new Date(startDateTime.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getEndDateTime() {
|
||||||
|
return new Date(endDateTime.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndDateTime(final Date endDateTime) {
|
||||||
|
this.endDateTime = new Date(endDateTime.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getListener() {
|
||||||
|
return listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListener(final String listener) {
|
||||||
|
this.listener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isStarted() {
|
||||||
|
return started;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStarted(final boolean started) {
|
||||||
|
this.started = started;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFinished() {
|
||||||
|
return finished;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFinished(final boolean finished) {
|
||||||
|
this.finished = finished;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LifecycleDefinition getDefinition() {
|
||||||
|
return definition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefinition(final LifecycleDefinition definition) {
|
||||||
|
this.definition = definition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Phase> getPhases() {
|
||||||
|
return Collections.unmodifiableList(phases);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setPhases(final List<Phase> phases) {
|
||||||
|
this.phases = new ArrayList<>(phases);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addPhase(final Phase phase) {
|
||||||
|
phases.add(phase);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removePhase(final Phase phase) {
|
||||||
|
phases.remove(phase);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int hash = 3;
|
||||||
|
hash = 79 * hash + (int) (lifecycleId ^ (lifecycleId >>> 32));
|
||||||
|
hash = 79 * hash + Objects.hashCode(startDateTime);
|
||||||
|
hash = 79 * hash + Objects.hashCode(endDateTime);
|
||||||
|
hash = 79 * hash + Objects.hashCode(listener);
|
||||||
|
hash = 79 * hash + (started ? 1 : 0);
|
||||||
|
hash = 79 * hash + (finished ? 1 : 0);
|
||||||
|
hash = 79 * hash + Objects.hashCode(definition);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (obj instanceof Lifecycle) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final Lifecycle other = (Lifecycle) obj;
|
||||||
|
if (!other.canEqual(this)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (lifecycleId != other.getLifecycleId()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (started != other.isStarted()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (finished != other.isFinished()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(listener, other.getListener())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(startDateTime, other.getStartDateTime())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(endDateTime, other.getEndDateTime())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return Objects.equals(definition, other.getDefinition());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canEqual(final Object obj) {
|
||||||
|
return obj instanceof Lifecycle;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final String toString() {
|
||||||
|
return toString("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(final String data) {
|
||||||
|
return String.format("%s{ "
|
||||||
|
+ "lifecycleId = %d, "
|
||||||
|
+ "startDateTime = %tF %<tT, "
|
||||||
|
+ "endDateTime = %tF %<tT, "
|
||||||
|
+ "listener = \"%s\", "
|
||||||
|
+ "started = %b, "
|
||||||
|
+ "finished = %b, "
|
||||||
|
+ "definition = %s%s"
|
||||||
|
+ " }",
|
||||||
|
super.toString(),
|
||||||
|
lifecycleId,
|
||||||
|
startDateTime,
|
||||||
|
endDateTime,
|
||||||
|
listener,
|
||||||
|
started,
|
||||||
|
finished,
|
||||||
|
Objects.toString(definition),
|
||||||
|
data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,208 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 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.lifecycle;
|
||||||
|
|
||||||
|
import org.libreccm.l10n.LocalizedString;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.persistence.AssociationOverride;
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Embedded;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.JoinTable;
|
||||||
|
import javax.persistence.OneToMany;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
import static org.librecms.CmsConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "LIFECYLE_DEFINITIONS", schema = DB_SCHEMA)
|
||||||
|
public class LifecycleDefinition implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1291162870555527717L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
|
@Column(name = "LIFECYCLE_DEFINITION_ID")
|
||||||
|
private long definitionId;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
@AssociationOverride(
|
||||||
|
name = "values",
|
||||||
|
joinTable = @JoinTable(name = "LIFECYCLE_DEFINITION_LABELS",
|
||||||
|
schema = DB_SCHEMA,
|
||||||
|
joinColumns = {
|
||||||
|
@JoinColumn(name = "OBJECT_ID")}
|
||||||
|
))
|
||||||
|
private LocalizedString label;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
@AssociationOverride(
|
||||||
|
name = "values",
|
||||||
|
joinTable = @JoinTable(name = "LIFECYCLE_DEFINITION_DESCRIPTIONS",
|
||||||
|
schema = DB_SCHEMA,
|
||||||
|
joinColumns = {
|
||||||
|
@JoinColumn(name = "OBJECT_ID")}
|
||||||
|
))
|
||||||
|
private LocalizedString description;
|
||||||
|
|
||||||
|
@Column(name = "DEFAULT_LISTENER", length = 1024)
|
||||||
|
private String defaultListener;
|
||||||
|
|
||||||
|
@OneToMany
|
||||||
|
@JoinColumn(name = "LIFECYCLE_DEFINITION_ID")
|
||||||
|
private List<PhaseDefinition> phaseDefinitions;
|
||||||
|
|
||||||
|
public LifecycleDefinition() {
|
||||||
|
phaseDefinitions = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getDefinitionId() {
|
||||||
|
return definitionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefinitionId(final long definitionId) {
|
||||||
|
this.definitionId = definitionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalizedString getLabel() {
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLabel(final LocalizedString label) {
|
||||||
|
this.label = label;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalizedString getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(final LocalizedString description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefaultListener() {
|
||||||
|
return defaultListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultListener(final String defaultListener) {
|
||||||
|
this.defaultListener = defaultListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<PhaseDefinition> getPhaseDefinitions() {
|
||||||
|
if (phaseDefinitions == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return Collections.unmodifiableList(phaseDefinitions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setPhaseDefinitions(List<PhaseDefinition> phaseDefinitions) {
|
||||||
|
this.phaseDefinitions = phaseDefinitions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addPhaseDefinition(final PhaseDefinition definition) {
|
||||||
|
phaseDefinitions.add(definition);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removePhaseDefinition(final PhaseDefinition definition) {
|
||||||
|
phaseDefinitions.remove(definition);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int hash = 5;
|
||||||
|
hash = 71 * hash + (int) (definitionId ^ (definitionId >>> 32));
|
||||||
|
hash = 71 * hash + Objects.hashCode(label);
|
||||||
|
hash = 71 * hash + Objects.hashCode(description);
|
||||||
|
hash = 71 * hash + Objects.hashCode(defaultListener);
|
||||||
|
hash = 71 * hash + Objects.hashCode(phaseDefinitions);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(final Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!(obj instanceof LifecycleDefinition)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final LifecycleDefinition other = (LifecycleDefinition) obj;
|
||||||
|
if (!other.canEqual(this)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (definitionId != other.getDefinitionId()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(defaultListener, other.getDefaultListener())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(label, other.getLabel())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(description, other.getDescription())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return Objects.equals(phaseDefinitions, other.getPhaseDefinitions());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canEqual(final Object obj) {
|
||||||
|
return obj instanceof LifecycleDefinition;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final String toString() {
|
||||||
|
return toString("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(final String data) {
|
||||||
|
return String.format("%s{ "
|
||||||
|
+ "definitionId = %d, "
|
||||||
|
+ "label = %s, "
|
||||||
|
+ "description = %s, "
|
||||||
|
+ "defaultListener = \"%s\", "
|
||||||
|
+ "phaseDefinitions = { %s }%s"
|
||||||
|
+ " }",
|
||||||
|
super.toString(),
|
||||||
|
definitionId,
|
||||||
|
Objects.toString(label),
|
||||||
|
Objects.toString(description),
|
||||||
|
defaultListener,
|
||||||
|
Objects.toString(phaseDefinitions),
|
||||||
|
data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,226 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 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.lifecycle;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.ManyToOne;
|
||||||
|
import javax.persistence.OneToOne;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import javax.persistence.Temporal;
|
||||||
|
import javax.persistence.TemporalType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "LIFECYLE_PHASES")
|
||||||
|
public class Phase implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -1683874069942019941L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
|
@Column(name = "PHASE_ID")
|
||||||
|
private long phaseId;
|
||||||
|
|
||||||
|
@Column(name = "START_DATE_TIME")
|
||||||
|
@Temporal(TemporalType.DATE)
|
||||||
|
private Date startDateTime;
|
||||||
|
|
||||||
|
@Column(name = "END_DATE_TIME")
|
||||||
|
@Temporal(TemporalType.DATE)
|
||||||
|
private Date endDateTime;
|
||||||
|
|
||||||
|
@Column(name = "LISTENER", length = 1024)
|
||||||
|
private String listener;
|
||||||
|
|
||||||
|
@Column(name = "STARTED")
|
||||||
|
private boolean started;
|
||||||
|
|
||||||
|
@Column(name = "FINISHED")
|
||||||
|
private boolean finished;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private Lifecycle lifecycle;
|
||||||
|
|
||||||
|
@OneToOne
|
||||||
|
@JoinColumn(name = "DEFINITION_ID")
|
||||||
|
private PhaseDefinition definition;
|
||||||
|
|
||||||
|
public long getPhaseId() {
|
||||||
|
return phaseId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPhaseId(final long phaseId) {
|
||||||
|
this.phaseId = phaseId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getStartDateTime() {
|
||||||
|
return new Date(startDateTime.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStartDateTime(final Date startDateTime) {
|
||||||
|
this.startDateTime = new Date(startDateTime.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getEndDateTime() {
|
||||||
|
return new Date(endDateTime.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndDateTime(final Date endDateTime) {
|
||||||
|
this.endDateTime = new Date(endDateTime.getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getListener() {
|
||||||
|
return listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListener(final String listener) {
|
||||||
|
this.listener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isStarted() {
|
||||||
|
return started;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStarted(final boolean started) {
|
||||||
|
this.started = started;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFinished() {
|
||||||
|
return finished;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFinished(final boolean finished) {
|
||||||
|
this.finished = finished;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Lifecycle getLifecycle() {
|
||||||
|
return lifecycle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLifecycle(final Lifecycle lifecycle) {
|
||||||
|
this.lifecycle = lifecycle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PhaseDefinition getDefinition() {
|
||||||
|
return definition;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setDefinition(final PhaseDefinition definition) {
|
||||||
|
this.definition = definition;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int hash = 7;
|
||||||
|
hash = 37 * hash + (int) (phaseId ^ (phaseId >>> 32));
|
||||||
|
hash = 37 * hash + Objects.hashCode(startDateTime);
|
||||||
|
hash = 37 * hash + Objects.hashCode(endDateTime);
|
||||||
|
hash = 37 * hash + Objects.hashCode(listener);
|
||||||
|
hash = 37 * hash + (started ? 1 : 0);
|
||||||
|
hash = 37 * hash + (finished ? 1 : 0);
|
||||||
|
hash = 37 * hash + Objects.hashCode(lifecycle);
|
||||||
|
hash = 37 * hash + Objects.hashCode(definition);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(final Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!(obj instanceof Phase)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final Phase other = (Phase) obj;
|
||||||
|
if (!other.canEqual(this)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (phaseId != other.getPhaseId()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (started != other.isStarted()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (finished != other.isFinished()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(listener, other.getListener())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(startDateTime, other.getStartDateTime())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(endDateTime, other.getEndDateTime())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(lifecycle, other.getLifecycle())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return Objects.equals(definition, other.getDefinition());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canEqual(final Object obj) {
|
||||||
|
return obj instanceof Phase;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final String toString() {
|
||||||
|
return toString("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(final String data) {
|
||||||
|
return String.format("%s{ "
|
||||||
|
+ "phaseId = %d, "
|
||||||
|
+ "startDateTime = %tF %<tT,"
|
||||||
|
+ "endDateTime = %tF %<tT, "
|
||||||
|
+ "listener = \"%s\", "
|
||||||
|
+ "started = %b, "
|
||||||
|
+ "finished = %b, "
|
||||||
|
+ "lifecycle = %s, "
|
||||||
|
+ "definition = %s%s"
|
||||||
|
+ " }",
|
||||||
|
super.toString(),
|
||||||
|
phaseId,
|
||||||
|
startDateTime,
|
||||||
|
endDateTime,
|
||||||
|
listener,
|
||||||
|
started,
|
||||||
|
finished,
|
||||||
|
Objects.toString(lifecycle),
|
||||||
|
Objects.toString(definition),
|
||||||
|
data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,204 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 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.lifecycle;
|
||||||
|
|
||||||
|
import org.libreccm.l10n.LocalizedString;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.persistence.AssociationOverride;
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Embedded;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.JoinTable;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
import static org.librecms.CmsConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "LIFECYCLE_PHASE_DEFINITIONS", schema = DB_SCHEMA)
|
||||||
|
public class PhaseDefinition implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -7718926310758794075L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
|
@Column(name = "PHASE_DEFINITION_ID")
|
||||||
|
private long definitionId;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
@AssociationOverride(
|
||||||
|
name = "values",
|
||||||
|
joinTable = @JoinTable(name = "LIFECYCLE_PHASE_DEFINITION_LABELS",
|
||||||
|
schema = DB_SCHEMA,
|
||||||
|
joinColumns = {
|
||||||
|
@JoinColumn(name = "OBJECT_ID")}
|
||||||
|
))
|
||||||
|
private LocalizedString label;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
@AssociationOverride(
|
||||||
|
name = "values",
|
||||||
|
joinTable = @JoinTable(name = "LIFECYCLE_PHASE_DEFINITION_DESCRIPTIONS",
|
||||||
|
schema = DB_SCHEMA,
|
||||||
|
joinColumns = {
|
||||||
|
@JoinColumn(name = "OBJECT_ID")}
|
||||||
|
))
|
||||||
|
private LocalizedString description;
|
||||||
|
|
||||||
|
@Column(name = "DEFAULT_DELAY")
|
||||||
|
private long defaultDelay;
|
||||||
|
|
||||||
|
@Column(name = "DEFAULT_DURATION")
|
||||||
|
private long defaultDuration;
|
||||||
|
|
||||||
|
@Column(name = "DEFAULT_LISTENER", length = 1024)
|
||||||
|
private String defaultListener;
|
||||||
|
|
||||||
|
public long getDefinitionId() {
|
||||||
|
return definitionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefinitionId(final long definitionId) {
|
||||||
|
this.definitionId = definitionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalizedString getLabel() {
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLabel(final LocalizedString label) {
|
||||||
|
this.label = label;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalizedString getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(final LocalizedString description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getDefaultDelay() {
|
||||||
|
return defaultDelay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultDelay(final long defaultDelay) {
|
||||||
|
this.defaultDelay = defaultDelay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getDefaultDuration() {
|
||||||
|
return defaultDuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultDuration(final long defaultDuration) {
|
||||||
|
this.defaultDuration = defaultDuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefaultListener() {
|
||||||
|
return defaultListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultListener(final String defaultListener) {
|
||||||
|
this.defaultListener = defaultListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int hash = 3;
|
||||||
|
hash = 79 * hash + (int) (definitionId ^ (definitionId >>> 32));
|
||||||
|
hash = 79 * hash + Objects.hashCode(label);
|
||||||
|
hash = 79 * hash + Objects.hashCode(description);
|
||||||
|
hash = 79 * hash + (int) (defaultDelay ^ (defaultDelay >>> 32));
|
||||||
|
hash = 79 * hash + (int) (defaultDuration ^ (defaultDuration >>> 32));
|
||||||
|
hash = 79 * hash + Objects.hashCode(defaultListener);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(final Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!(obj instanceof PhaseDefinition)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final PhaseDefinition other = (PhaseDefinition) obj;
|
||||||
|
if (!other.canEqual(this)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (definitionId != other.getDefinitionId()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (defaultDelay != other.getDefaultDelay()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (defaultDuration != other.getDefaultDuration()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(defaultListener, other.getDefaultListener())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(label, other.getLabel())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return Objects.equals(description, other.getDescription());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canEqual(final Object obj) {
|
||||||
|
return obj instanceof PhaseDefinition;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final String toString() {
|
||||||
|
return toString("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(final String data) {
|
||||||
|
return String.format("%s{ "
|
||||||
|
+ "definitionId = %d, "
|
||||||
|
+ "label = %s, "
|
||||||
|
+ "description = %s, "
|
||||||
|
+ "defaultDelay = %s, "
|
||||||
|
+ "defaultDuration = %s, "
|
||||||
|
+ "defaultListener = \"%s\"%s"
|
||||||
|
+ " }",
|
||||||
|
super.toString(),
|
||||||
|
definitionId,
|
||||||
|
Objects.toString(label),
|
||||||
|
Objects.toString(description),
|
||||||
|
defaultDelay,
|
||||||
|
defaultDuration,
|
||||||
|
defaultListener,
|
||||||
|
data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
/*
|
||||||
|
* 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.workflow;
|
||||||
|
|
||||||
|
import org.libreccm.workflow.UserTask;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.OneToOne;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
import static org.librecms.CmsConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "WORKFLOW_TASKS", schema = DB_SCHEMA)
|
||||||
|
public class CmsTask extends UserTask implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -3988352366529930659L;
|
||||||
|
|
||||||
|
@OneToOne
|
||||||
|
@JoinColumn(name = "TASK_TYPE_ID")
|
||||||
|
private CmsTaskType taskType;
|
||||||
|
|
||||||
|
public CmsTaskType getTaskType() {
|
||||||
|
return taskType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTaskType(final CmsTaskType taskType) {
|
||||||
|
this.taskType = taskType;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int hash = super.hashCode();
|
||||||
|
hash = 79 * hash + Objects.hashCode(taskType);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(final Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!super.equals(obj)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj instanceof CmsTask) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final CmsTask other = (CmsTask) obj;
|
||||||
|
if (!other.canEqual(this)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Objects.equals(taskType, other.taskType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canEqual(final Object obj) {
|
||||||
|
return obj instanceof CmsTask;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString(final String data) {
|
||||||
|
return super.toString(String.format(", taskType = %s%s",
|
||||||
|
Objects.toString(taskType),
|
||||||
|
data));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,205 @@
|
||||||
|
/*
|
||||||
|
* 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.workflow;
|
||||||
|
|
||||||
|
import org.libreccm.l10n.LocalizedString;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.persistence.AssociationOverride;
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Embedded;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.JoinTable;
|
||||||
|
import javax.persistence.OneToMany;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
import static org.librecms.CmsConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "WORKFLOW_TASK_TYPES", schema = DB_SCHEMA)
|
||||||
|
public class CmsTaskType implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -4326031746212785970L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
|
@Column(name = "TASK_TYPE_ID")
|
||||||
|
private long taskTypeId;
|
||||||
|
|
||||||
|
@Embedded
|
||||||
|
@AssociationOverride(
|
||||||
|
name = "values",
|
||||||
|
joinTable = @JoinTable(name = "ARTICLE_LEADS",
|
||||||
|
schema = DB_SCHEMA,
|
||||||
|
joinColumns = {
|
||||||
|
@JoinColumn(name = "OBJECT_ID")}
|
||||||
|
))
|
||||||
|
private LocalizedString name;
|
||||||
|
|
||||||
|
@Column(name = "DEFAULT_URL_GENERATOR_CLASS", length = 1024)
|
||||||
|
private String defaultUrlGeneratorClass;
|
||||||
|
|
||||||
|
@Column(name = "PRIVILEGE", length = 256)
|
||||||
|
private String privilege;
|
||||||
|
|
||||||
|
@OneToMany
|
||||||
|
@JoinColumn(name = "TASK_TYPE_ID")
|
||||||
|
private Set<TaskEventUrlGenerator> generators;
|
||||||
|
|
||||||
|
public CmsTaskType() {
|
||||||
|
generators = new HashSet<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTaskTypeId() {
|
||||||
|
return taskTypeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setTaskTypeId(final long taskTypeId) {
|
||||||
|
this.taskTypeId = taskTypeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalizedString getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(final LocalizedString name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefaultUrlGeneratorClass() {
|
||||||
|
return defaultUrlGeneratorClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultUrlGeneratorClass(
|
||||||
|
final String defaultUrlGeneratorClass) {
|
||||||
|
this.defaultUrlGeneratorClass = defaultUrlGeneratorClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPrivilege() {
|
||||||
|
return privilege;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrivilege(final String privilege) {
|
||||||
|
this.privilege = privilege;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<TaskEventUrlGenerator> getGenerators() {
|
||||||
|
if (generators == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return Collections.unmodifiableSet(generators);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setGenerators(final Set<TaskEventUrlGenerator> generators) {
|
||||||
|
this.generators = generators;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addGenerator(final TaskEventUrlGenerator generator) {
|
||||||
|
generators.add(generator);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeGenerator(final TaskEventUrlGenerator generator) {
|
||||||
|
generators.remove(generator);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int hash = 5;
|
||||||
|
hash = 79 * hash + (int) (taskTypeId ^ (taskTypeId >>> 32));
|
||||||
|
hash = 79 * hash + Objects.hashCode(name);
|
||||||
|
hash = 79 * hash + Objects.hashCode(defaultUrlGeneratorClass);
|
||||||
|
hash = 79 * hash + Objects.hashCode(privilege);
|
||||||
|
hash = 79 * hash + Objects.hashCode(generators);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(final Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (obj instanceof CmsTaskType) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final CmsTaskType other = (CmsTaskType) obj;
|
||||||
|
if (!other.canEqual(this)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (taskTypeId != other.getTaskTypeId()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(defaultUrlGeneratorClass,
|
||||||
|
other.getDefaultUrlGeneratorClass())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(privilege, other.getPrivilege())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(name, other.getName())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Objects.equals(generators, other.getGenerators());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canEqual(final Object obj) {
|
||||||
|
return obj instanceof CmsTaskType;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final String toString() {
|
||||||
|
return toString("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(final String data) {
|
||||||
|
return String.format("%s{ "
|
||||||
|
+ "taskTypeId = %d, "
|
||||||
|
+ "name = %s, "
|
||||||
|
+ "defaultUrlGeneratorClass = \"%s\", "
|
||||||
|
+ "privilege = \"%s\","
|
||||||
|
+ "generators = { %s }%s"
|
||||||
|
+ " }",
|
||||||
|
super.toString(),
|
||||||
|
taskTypeId,
|
||||||
|
Objects.toString(name),
|
||||||
|
defaultUrlGeneratorClass,
|
||||||
|
privilege,
|
||||||
|
Objects.toString(generators),
|
||||||
|
data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,156 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 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.workflow;
|
||||||
|
|
||||||
|
import org.librecms.contentsection.ContentType;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.OneToOne;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
import static org.librecms.CmsConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "TASK_EVENT_URL_GENERATOR", schema = DB_SCHEMA)
|
||||||
|
public class TaskEventUrlGenerator implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -1861545657474968084L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
|
@Column(name = "GENERATOR_ID")
|
||||||
|
private long generatorId;
|
||||||
|
|
||||||
|
@Column(name = "EVENT", length = 256)
|
||||||
|
private String event;
|
||||||
|
|
||||||
|
@OneToOne
|
||||||
|
@JoinColumn(name = "CONTENT_TYPE_ID")
|
||||||
|
private ContentType contentType;
|
||||||
|
|
||||||
|
@Column(name = "URL_GENERATOR_CLASS", length = 1024)
|
||||||
|
private String urlGeneratorClass;
|
||||||
|
|
||||||
|
public long getGeneratorId() {
|
||||||
|
return generatorId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGeneratorId(final long generatorId) {
|
||||||
|
this.generatorId = generatorId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEvent() {
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEvent(final String event) {
|
||||||
|
this.event = event;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ContentType getContentType() {
|
||||||
|
return contentType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContentType(final ContentType contentType) {
|
||||||
|
this.contentType = contentType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUrlGeneratorClass() {
|
||||||
|
return urlGeneratorClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrlGeneratorClass(final String urlGeneratorClass) {
|
||||||
|
this.urlGeneratorClass = urlGeneratorClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int hash = 3;
|
||||||
|
hash = 47 * hash + (int) (generatorId ^ (generatorId >>> 32));
|
||||||
|
hash = 47 * hash + Objects.hashCode(event);
|
||||||
|
hash = 47 * hash + Objects.hashCode(contentType);
|
||||||
|
hash = 47 * hash + Objects.hashCode(urlGeneratorClass);
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(final Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (obj instanceof TaskEventUrlGenerator) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final TaskEventUrlGenerator other = (TaskEventUrlGenerator) obj;
|
||||||
|
if (!(other.canEqual(this))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (generatorId != other.getGeneratorId()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(event, other.getEvent())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!Objects.equals(urlGeneratorClass, other.getUrlGeneratorClass())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return Objects.equals(contentType, other.getContentType());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canEqual(final Object obj) {
|
||||||
|
return obj instanceof TaskEventUrlGenerator;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final String toString() {
|
||||||
|
return toString("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(final String data) {
|
||||||
|
return String.format("%s{ "
|
||||||
|
+ "generatorId = %d, "
|
||||||
|
+ "event = \"%s\", "
|
||||||
|
+ "contentType = %s, "
|
||||||
|
+ "urlGeneratorClass = \"%s\"%s"
|
||||||
|
+ " }",
|
||||||
|
super.toString(),
|
||||||
|
generatorId,
|
||||||
|
event,
|
||||||
|
Objects.toString(contentType),
|
||||||
|
urlGeneratorClass,
|
||||||
|
data);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -20,13 +20,17 @@ package org.librecms.assets;
|
||||||
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.Parameterized;
|
import org.junit.runners.Parameterized;
|
||||||
|
import org.libreccm.categorization.Category;
|
||||||
|
import org.libreccm.core.CcmObject;
|
||||||
|
import org.libreccm.security.Group;
|
||||||
|
import org.libreccm.security.Role;
|
||||||
|
import org.libreccm.security.User;
|
||||||
import org.libreccm.tests.categories.UnitTest;
|
import org.libreccm.tests.categories.UnitTest;
|
||||||
import org.libreccm.testutils.EqualsVerifier;
|
import org.libreccm.testutils.EqualsVerifier;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
|
@ -47,4 +51,63 @@ public class EqualsAndHashCodeTest extends EqualsVerifier {
|
||||||
super(clazz);
|
super(clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void addPrefabValues(
|
||||||
|
final nl.jqno.equalsverifier.EqualsVerifier<?> verifier) {
|
||||||
|
|
||||||
|
final CcmObject object1 = new CcmObject();
|
||||||
|
object1.setDisplayName("Object 1");
|
||||||
|
|
||||||
|
final CcmObject object2 = new CcmObject();
|
||||||
|
object2.setDisplayName("Object 2");
|
||||||
|
|
||||||
|
final Role role1 = new Role();
|
||||||
|
role1.setName("Role 1");
|
||||||
|
|
||||||
|
final Role role2 = new Role();
|
||||||
|
role2.setName("Role 2");
|
||||||
|
|
||||||
|
final User user1 = new TestUser();
|
||||||
|
user1.setName("user1");
|
||||||
|
|
||||||
|
final User user2 = new TestUser();
|
||||||
|
user2.setName("user2");
|
||||||
|
|
||||||
|
final Group group1 = new Group();
|
||||||
|
group1.setName("group1");
|
||||||
|
|
||||||
|
final Group group2 = new Group();
|
||||||
|
group2.setName("group2");
|
||||||
|
|
||||||
|
final Category category1 = new Category();
|
||||||
|
category1.setObjectId(-4100);
|
||||||
|
category1.setDisplayName("Category 1");
|
||||||
|
|
||||||
|
final Category category2 = new Category();
|
||||||
|
category2.setObjectId(-4200);
|
||||||
|
category2.setDisplayName("Category 2");
|
||||||
|
|
||||||
|
verifier
|
||||||
|
.withPrefabValues(CcmObject.class, object1, object2)
|
||||||
|
.withPrefabValues(Role.class, role1, role2)
|
||||||
|
.withPrefabValues(User.class, user1, user2)
|
||||||
|
.withPrefabValues(Group.class, group1, group2)
|
||||||
|
.withPrefabValues(Category.class, category1, category2);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link User} has a protected constructor, so have have do this to create
|
||||||
|
* users for the test...
|
||||||
|
*/
|
||||||
|
private class TestUser extends User {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -9052762220990453621L;
|
||||||
|
|
||||||
|
protected TestUser() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier {
|
||||||
@Parameterized.Parameters(name = "{0}")
|
@Parameterized.Parameters(name = "{0}")
|
||||||
public static Collection<Class<?>> data() {
|
public static Collection<Class<?>> data() {
|
||||||
return Arrays.asList(new Class<?>[]{
|
return Arrays.asList(new Class<?>[]{
|
||||||
ContentItem.class,
|
//ContentItem.class,
|
||||||
ContentSection.class,
|
ContentSection.class,
|
||||||
ContentType.class
|
ContentType.class
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ import javax.persistence.Table;
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "WORKFLOW_TASKS", schema = DB_SCHEMA)
|
@Table(name = "WORKFLOW_TASKS", schema = DB_SCHEMA)
|
||||||
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
|
@Inheritance(strategy = InheritanceType.JOINED)
|
||||||
//Can't reduce complexity yet, Task is a fine name
|
//Can't reduce complexity yet, Task is a fine name
|
||||||
@SuppressWarnings({"PMD.CyclomaticComplexity",
|
@SuppressWarnings({"PMD.CyclomaticComplexity",
|
||||||
"PMD.StdCyclomaticComplexity",
|
"PMD.StdCyclomaticComplexity",
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,8 @@ import javax.persistence.Entity;
|
||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.GenerationType;
|
import javax.persistence.GenerationType;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Inheritance;
|
||||||
|
import javax.persistence.InheritanceType;
|
||||||
import javax.persistence.JoinColumn;
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.JoinTable;
|
import javax.persistence.JoinTable;
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
|
|
@ -46,6 +48,7 @@ import javax.persistence.Table;
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "WORKFLOWS", schema = DB_SCHEMA)
|
@Table(name = "WORKFLOWS", schema = DB_SCHEMA)
|
||||||
|
@Inheritance(strategy = InheritanceType.JOINED)
|
||||||
public class Workflow implements Serializable {
|
public class Workflow implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 4322500264543325829L;
|
private static final long serialVersionUID = 4322500264543325829L;
|
||||||
|
|
@ -162,14 +165,19 @@ public class Workflow implements Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public final String toString() {
|
||||||
|
return toString("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(final String data) {
|
||||||
return String.format("%s{ "
|
return String.format("%s{ "
|
||||||
+ "workflowId = %d, "
|
+ "workflowId = %d, "
|
||||||
+ "name = \"%s\""
|
+ "name = \"%s\"%s"
|
||||||
+ " }",
|
+ " }",
|
||||||
super.toString(),
|
super.toString(),
|
||||||
workflowId,
|
workflowId,
|
||||||
name);
|
name,
|
||||||
|
data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 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.libreccm.workflow;
|
||||||
|
|
||||||
|
import static org.libreccm.core.CoreConstants.*;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "WORKFLOW_TEMPLATES", schema = DB_SCHEMA)
|
||||||
|
public class WorkflowTemplate extends Workflow implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 5770519379144947171L;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return super.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(final Object obj) {
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!super.equals(obj)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(obj instanceof WorkflowTemplate)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final WorkflowTemplate other = (WorkflowTemplate) obj;
|
||||||
|
return other.canEqual(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canEqual(final Object obj) {
|
||||||
|
return obj instanceof WorkflowTemplate;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
create table CCM_CORE.WORKFLOW_TEMPLATES (
|
||||||
|
WORKFLOW_ID bigint not null,
|
||||||
|
primary key (WORKFLOW_ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table CCM_CORE.WORKFLOW_TEMPLATES
|
||||||
|
add constraint FK8692vdme4yxnkj1m0k1dw74pk
|
||||||
|
foreign key (WORKFLOW_ID)
|
||||||
|
references CCM_CORE.WORKFLOWS;
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
alter table CCM_CORE.WORKFLOW_USER_TASKS drop column if exists ACTIVE;
|
||||||
|
alter table CCM_CORE.WORKFLOW_USER_TASKS drop column if exists TASK_STATE;
|
||||||
|
|
||||||
|
alter table CCM_CORE.WORKFLOW_USER_TASKS drop constraint FK_bg60xxg9kerqsxyphbfxulg8y;
|
||||||
|
alter table CCM_CORE.WORKFLOW_USER_TASKS drop column if exists WORKFLOW_ID;
|
||||||
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
create table CCM_CORE.WORKFLOW_TEMPLATES (
|
||||||
|
WORKFLOW_ID int8 not null,
|
||||||
|
primary key (WORKFLOW_ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
alter table CCM_CORE.WORKFLOW_TEMPLATES
|
||||||
|
add constraint FK8692vdme4yxnkj1m0k1dw74pk
|
||||||
|
foreign key (WORKFLOW_ID)
|
||||||
|
references CCM_CORE.WORKFLOWS;
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
alter table CCM_CORE.WORKFLOW_USER_TASKS drop column if exists ACTIVE;
|
||||||
|
alter table CCM_CORE.WORKFLOW_USER_TASKS drop column if exists TASK_STATE;
|
||||||
|
|
||||||
|
alter table CCM_CORE.WORKFLOW_USER_TASKS drop constraint FK_bg60xxg9kerqsxyphbfxulg8y;
|
||||||
|
alter table CCM_CORE.WORKFLOW_USER_TASKS drop column if exists WORKFLOW_ID;
|
||||||
|
|
||||||
|
|
@ -44,7 +44,8 @@ public class EqualsAndHashCodeTest extends EqualsVerifier {
|
||||||
Task.class,
|
Task.class,
|
||||||
TaskAssignment.class,
|
TaskAssignment.class,
|
||||||
UserTask.class,
|
UserTask.class,
|
||||||
Workflow.class
|
Workflow.class,
|
||||||
|
WorkflowTemplate.class
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
1
pom.xml
1
pom.xml
|
|
@ -59,7 +59,6 @@
|
||||||
<module>ccm-cms-types-bookmark</module>
|
<module>ccm-cms-types-bookmark</module>
|
||||||
<module>ccm-cms-types-minutes</module>
|
<module>ccm-cms-types-minutes</module>
|
||||||
<module>ccm-cms-types-decisiontree</module>
|
<module>ccm-cms-types-decisiontree</module>
|
||||||
<module>ccm-cms-types-mparticle</module>
|
|
||||||
<module>ccm-cms-types-glossaryitem</module>
|
<module>ccm-cms-types-glossaryitem</module>
|
||||||
<module>ccm-cms-types-faqitem</module>
|
<module>ccm-cms-types-faqitem</module>
|
||||||
<module>ccm-cms-types-externallink</module>
|
<module>ccm-cms-types-externallink</module>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue