diff --git a/ccm-core/pom.xml b/ccm-core/pom.xml
index a10d771b2..0cf985825 100644
--- a/ccm-core/pom.xml
+++ b/ccm-core/pom.xml
@@ -65,6 +65,13 @@
test
+
+ org.libreccm
+ ccm-testutils
+ 6.7.0-SNAPSHOT
+ test
+
+
nl.jqno.equalsverifier
equalsverifier
@@ -107,6 +114,7 @@
${project.build.directory}/generated-resources
+
org.apache.maven.plugins
@@ -192,7 +200,18 @@
postgresql9
- de.jpdigital.webpagebuilder2.data
+ org.libreccm.categorization
+ org.libreccm.core
+ org.libreccm.formbuilder
+ org.libreccm.jpa
+ org.libreccm.l10n
+ org.libreccm.messaging
+ org.libreccm.notification
+ org.libreccm.portal
+ org.libreccm.runtime
+ org.libreccm.search.lucene
+ org.libreccm.web
+ org.libreccm.workflow
true
@@ -205,6 +224,7 @@
+
diff --git a/ccm-shortcuts/nb-configuration.xml b/ccm-shortcuts/nb-configuration.xml
new file mode 100644
index 000000000..d464f7553
--- /dev/null
+++ b/ccm-shortcuts/nb-configuration.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ lgpl21
+
+
diff --git a/ccm-shortcuts/pom.xml b/ccm-shortcuts/pom.xml
new file mode 100644
index 000000000..7df471208
--- /dev/null
+++ b/ccm-shortcuts/pom.xml
@@ -0,0 +1,327 @@
+
+
+ 4.0.0
+
+
+ UTF-8
+
+
+
+ org.libreccm
+ libreccm-parent
+ 3.0.0-SNAPSHOT
+
+
+ org.libreccm
+ ccm-shortcuts
+ 6.7.0-SNAPSHOT
+
+ LibreCCM Shortcuts
+
+ http://www.libreccm.org/modules/ccm-shortcuts
+
+
+
+ Lesser GPL 2.1
+ http://www.gnu.org/licenses/old-licenses/lgpl-2.1
+
+
+
+
+
+ javax
+ javaee-api
+ jar
+ provided
+
+
+
+ org.libreccm
+ ccm-core
+ 6.7.0-SNAPSHOT
+
+
+
+ org.hibernate
+ hibernate-entitymanager
+
+
+
+ org.hibernate
+ hibernate-validator
+
+
+
+ junit
+ junit
+ test
+
+
+
+ org.hamcrest
+ hamcrest-core
+ test
+
+
+ org.hamcrest
+ hamcrest-library
+ test
+
+
+
+ org.libreccm
+ ccm-testutils
+ 6.7.0-SNAPSHOT
+ test
+
+
+
+ nl.jqno.equalsverifier
+ equalsverifier
+ test
+
+
+
+ org.jboss.arquillian.junit
+ arquillian-junit-container
+ test
+
+
+ org.jboss.arquillian.extension
+ arquillian-persistence-dbunit
+ test
+
+
+ org.jboss.arquillian.extension
+ arquillian-transaction-impl-base
+ test
+
+
+ org.jboss.shrinkwrap.resolver
+ shrinkwrap-resolver-impl-maven
+ test
+
+
+
+ com.h2database
+ h2
+ test
+
+
+
+
+
+ ccm-shortcuts
+
+
+ ${project.build.directory}/generated-resources
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.3
+
+ 1.7
+ 1.7
+ true
+ true
+ ${project.build.sourceEncoding}
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.18.1
+
+ org.libreccm.tests.categories.UnitTest
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.7.5.201505241946
+
+
+ default-prepare-agent
+
+ prepare-agent
+
+
+
+ default-report
+ prepare-package
+
+ report
+
+
+
+ default-check
+
+ check
+
+
+
+
+ BUNDLE
+
+
+ COMPLEXITY
+ COVEREDRATIO
+ 0.60
+
+
+
+
+
+
+
+
+
+ de.jpdigital
+ hibernate4-ddl-maven-plugin
+
+
+ h2
+ mysql5_innodb
+ oracle10g
+ postgresql9
+
+
+ org.libreccm.shortcuts
+
+ true
+
+
+
+
+ gen-ddl
+
+ process-classes
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.10.3
+
+ true
+ true
+
+ http://docs.oracle.com/javase/7/docs/api/
+ http://docs.oracle.com/javaee/7/api/
+ http://docs.jboss.org/hibernate/orm/4.3/javadocs/
+
+ private
+ true
+ UTF-8
+ UTF-8
+ UTF-8
+ true
+ true
+ true
+ true
+ false
+ org.jboss.apiviz.APIviz
+
+ org.jboss.apiviz
+ apiviz
+ 1.3.2.GA
+
+ true
+
+ -sourceclasspath ${project.build.outputDirectory}
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jxr-plugin
+ 2.5
+
+
+ org.apache.maven.plugins
+ maven-surefire-report-plugin
+ 2.18.1
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.7.5.201505241946
+
+
+ org.codehaus.mojo
+ findbugs-maven-plugin
+ 3.0.1
+
+
+ org.apache.maven.plugins
+ maven-pmd-plugin
+ 3.4
+
+ true
+ utf-8
+ 1.7
+
+ /rulesets/java/basic.xml
+ /rulesets/java/braces.xml
+ /rulesets/java/clone.xml
+ /rulesets/java/codesize.xml
+ /rulesets/java/design.xml
+ /rulesets/java/empty.xml
+ /rulesets/java/finalizers.xml
+ /rulesets/java/imports.xml
+ /rulesets/java/javabeans.xml
+ /rulesets/java/junit.xml
+ /rulesets/java/naming.xml
+ /rulesets/java/optimizations.xml
+ /rulesets/java/strictexception.xml
+ /rulesets/java/strings.xml
+ /rulesets/java/sunsecure.xml
+ /rulesets/java/typeresolution.xml
+ /rulesets/java/unnecessary.xml
+ /rulesets/java/unusedcode.xml
+
+
+
+
+ org.codehaus.mojo
+ javancss-maven-plugin
+ 2.1
+
+
+ org.apache.maven.plugins
+ maven-project-info-reports-plugin
+ 2.8
+
+
+
+
+ license
+
+
+
+
+
+
+
+
+
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java
new file mode 100644
index 000000000..84f9e8002
--- /dev/null
+++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java
@@ -0,0 +1,128 @@
+/*
+ * 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.libreccm.shortcuts;
+
+import org.hibernate.validator.constraints.NotEmpty;
+
+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.Table;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+@Entity
+@Table(name = "shortcuts")
+public class Shortcut implements Serializable {
+
+ private static final long serialVersionUID = -5674633339633714327L;
+
+ @Id
+ @Column(name = "shortcut_id")
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private long shortcutId;
+
+ @Column(name = "url_key", length = 1024)
+ @NotEmpty
+ private String urlKey;
+
+ @Column(name = "redirect", length = 1024)
+ @NotEmpty
+ private String redirect;
+
+ public long getShortcutId() {
+ return shortcutId;
+ }
+
+ public void setShortcutId(final long shortcutId) {
+ this.shortcutId = shortcutId;
+ }
+
+ public String getUrlKey() {
+ return urlKey;
+ }
+
+ public void setUrlKey(final String urlKey) {
+ this.urlKey = urlKey;
+ }
+
+ public String getRedirect() {
+ return redirect;
+ }
+
+ public void setRedirect(final String redirect) {
+ this.redirect = redirect;
+ }
+
+ @Override
+ public int hashCode() {
+ int hash = 5;
+ hash = 47 * hash + (int) (shortcutId ^ (shortcutId >>> 32));
+ hash = 47 * hash + Objects.hashCode(urlKey);
+ hash = 47 * hash + Objects.hashCode(redirect);
+ return hash;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (!(obj instanceof Shortcut)) {
+ return false;
+ }
+ final Shortcut other = (Shortcut) obj;
+ if (!other.canEqual(this)) {
+ return false;
+ }
+
+ if (shortcutId != other.getShortcutId()) {
+ return false;
+ }
+ if (!Objects.equals(urlKey, other.getUrlKey())) {
+ return false;
+ }
+ return Objects.equals(redirect, other.getRedirect());
+ }
+
+ public boolean canEqual(final Object obj) {
+ return obj instanceof Shortcut;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("%s{ "
+ + "shortcutId = %d, "
+ + "urlKey = %s, "
+ + "redirect = %s"
+ + " }",
+ super.toString(),
+ shortcutId,
+ urlKey,
+ redirect);
+ }
+
+}
diff --git a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/EqualsAndHashCodeTest.java b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/EqualsAndHashCodeTest.java
new file mode 100644
index 000000000..4b3524578
--- /dev/null
+++ b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/EqualsAndHashCodeTest.java
@@ -0,0 +1,71 @@
+/*
+ * 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.libreccm.shortcuts;
+
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import org.libreccm.tests.categories.UnitTest;
+import org.libreccm.testutils.EqualsVerifier;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+@RunWith(Parameterized.class)
+@Category(UnitTest.class)
+public class EqualsAndHashCodeTest extends EqualsVerifier {
+
+ @Parameterized.Parameters(name = "{0}")
+ public static Collection> data() {
+ return Arrays.asList(new Class>[]{
+ Shortcut.class
+ });
+ }
+
+ public EqualsAndHashCodeTest(final Class> entityClass) {
+ super(entityClass);
+ }
+
+ @BeforeClass
+ public static void setUpClass() {
+ }
+
+ @AfterClass
+ public static void tearDownClass() {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+}
diff --git a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ToStringTest.java b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ToStringTest.java
new file mode 100644
index 000000000..7e604d59e
--- /dev/null
+++ b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ToStringTest.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2015 LibreCCM Foundation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+package org.libreccm.shortcuts;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.libreccm.tests.categories.UnitTest;
+import org.libreccm.testutils.ToStringVerifier;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+@RunWith(Parameterized.class)
+@Category(UnitTest.class)
+public class ToStringTest extends ToStringVerifier {
+
+ @Parameterized.Parameters(name = "{0}")
+ public static Collection> data() {
+ return Arrays.asList(new Class>[]{
+ Shortcut.class
+ });
+ }
+
+ public ToStringTest(final Class> entityClass) {
+ super(entityClass);
+ }
+
+ @BeforeClass
+ public static void setUpClass() {
+ }
+
+ @AfterClass
+ public static void tearDownClass() {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+}
diff --git a/ccm-testutils/pom.xml b/ccm-testutils/pom.xml
new file mode 100644
index 000000000..770ca7456
--- /dev/null
+++ b/ccm-testutils/pom.xml
@@ -0,0 +1,177 @@
+
+
+ 4.0.0
+
+
+ UTF-8
+
+
+
+ org.libreccm
+ libreccm-parent
+ 3.0.0-SNAPSHOT
+
+
+ org.libreccm
+ ccm-testutils
+ 6.7.0-SNAPSHOT
+
+ LibreCCM Test Utilities
+ http://www.libreccm.org/modules/ccm-testutils
+
+
+
+ junit
+ junit
+
+
+
+ org.hamcrest
+ hamcrest-core
+
+
+ org.hamcrest
+ hamcrest-library
+
+
+
+ nl.jqno.equalsverifier
+ equalsverifier
+
+
+
+ com.h2database
+ h2
+
+
+
+ org.jboss.arquillian.extension
+ arquillian-persistence-dbunit
+
+
+
+
+
+ ccm-testutils
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.3
+
+ 1.7
+ 1.7
+ true
+ true
+ ${project.build.sourceEncoding}
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.10.3
+
+ true
+ true
+
+ http://docs.oracle.com/javase/7/docs/api/
+ http://docs.oracle.com/javaee/7/api/
+ http://docs.jboss.org/hibernate/orm/4.3/javadocs/
+
+ private
+ true
+ UTF-8
+ UTF-8
+ UTF-8
+ true
+ true
+ true
+ true
+ false
+ org.jboss.apiviz.APIviz
+
+ org.jboss.apiviz
+ apiviz
+ 1.3.2.GA
+
+ true
+
+ -sourceclasspath ${project.build.outputDirectory}
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jxr-plugin
+ 2.5
+
+
+ org.codehaus.mojo
+ findbugs-maven-plugin
+ 3.0.1
+
+
+
+ org.codehaus.mojo
+ javancss-maven-plugin
+ 2.1
+
+
+ org.apache.maven.plugins
+ maven-project-info-reports-plugin
+ 2.8
+
+
+
+
+ license
+
+
+
+
+
+
+
+
+
diff --git a/ccm-core/src/test/java/org/libreccm/tests/categories/IntegrationTest.java b/ccm-testutils/src/main/java/org/libreccm/tests/categories/IntegrationTest.java
similarity index 100%
rename from ccm-core/src/test/java/org/libreccm/tests/categories/IntegrationTest.java
rename to ccm-testutils/src/main/java/org/libreccm/tests/categories/IntegrationTest.java
diff --git a/ccm-core/src/test/java/org/libreccm/tests/categories/UnitTest.java b/ccm-testutils/src/main/java/org/libreccm/tests/categories/UnitTest.java
similarity index 100%
rename from ccm-core/src/test/java/org/libreccm/tests/categories/UnitTest.java
rename to ccm-testutils/src/main/java/org/libreccm/tests/categories/UnitTest.java
diff --git a/ccm-core/src/test/java/org/libreccm/testutils/DatasetsVerifier.java b/ccm-testutils/src/main/java/org/libreccm/testutils/DatasetsVerifier.java
similarity index 99%
rename from ccm-core/src/test/java/org/libreccm/testutils/DatasetsVerifier.java
rename to ccm-testutils/src/main/java/org/libreccm/testutils/DatasetsVerifier.java
index 65c9cbe93..fdc9a65bc 100644
--- a/ccm-core/src/test/java/org/libreccm/testutils/DatasetsVerifier.java
+++ b/ccm-testutils/src/main/java/org/libreccm/testutils/DatasetsVerifier.java
@@ -25,7 +25,6 @@ import org.dbunit.dataset.DataSetException;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.operation.DatabaseOperation;
-//import org.h2.tools.RunScript;
import org.jboss.arquillian.persistence.core.data.descriptor.Format;
import org.jboss.arquillian.persistence.dbunit.dataset.DataSetBuilder;
import org.junit.Test;
diff --git a/ccm-core/src/test/java/org/libreccm/testutils/EqualsVerifier.java b/ccm-testutils/src/main/java/org/libreccm/testutils/EqualsVerifier.java
similarity index 100%
rename from ccm-core/src/test/java/org/libreccm/testutils/EqualsVerifier.java
rename to ccm-testutils/src/main/java/org/libreccm/testutils/EqualsVerifier.java
diff --git a/ccm-core/src/test/java/org/libreccm/testutils/ToStringVerifier.java b/ccm-testutils/src/main/java/org/libreccm/testutils/ToStringVerifier.java
similarity index 98%
rename from ccm-core/src/test/java/org/libreccm/testutils/ToStringVerifier.java
rename to ccm-testutils/src/main/java/org/libreccm/testutils/ToStringVerifier.java
index 8812de2a7..73b3dfbc6 100644
--- a/ccm-core/src/test/java/org/libreccm/testutils/ToStringVerifier.java
+++ b/ccm-testutils/src/main/java/org/libreccm/testutils/ToStringVerifier.java
@@ -93,7 +93,7 @@ public class ToStringVerifier {
ex.printStackTrace(writer);
Assert.fail(String.format(
"toString() implemention of class \"%s\" "
- + "is not null safe:\n %s",
+ + "is not null safe:%n %s",
entityClass.getName(),
strWriter.toString()));
diff --git a/pom.xml b/pom.xml
index f0c87cfbd..a146cbb37 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,8 +1,5 @@
-
+
4.0.0
@@ -32,7 +29,9 @@
ccm-core
-
+ ccm-shortcuts
+ ccm-testutils
+
@@ -458,4 +457,4 @@
-
+
\ No newline at end of file