diff --git a/ccm-bundle-devel-wildfly-web/pom.xml b/ccm-bundle-devel-wildfly-web/pom.xml
index cc09e810d..b69b105b9 100644
--- a/ccm-bundle-devel-wildfly-web/pom.xml
+++ b/ccm-bundle-devel-wildfly-web/pom.xml
@@ -41,8 +41,18 @@
net.sf.saxon
Saxon-HE
+
+
+
+ org.libreccm
+ ccm-shortcuts
+ ${project.parent.version}
+
+
+
+
false
@@ -1150,8 +1150,8 @@
true
org.jboss.logmanager.LogManager
- ${project.basedir}/target/wildfly-8.2.0.Final
- ${project.basedir}/target/wildfly-8.2.0.Final/modules
+
false
diff --git a/ccm-core/src/main/java/org/libreccm/modules/ModuleManager.java b/ccm-core/src/main/java/org/libreccm/modules/ModuleManager.java
index 9d697b734..045a54f71 100644
--- a/ccm-core/src/main/java/org/libreccm/modules/ModuleManager.java
+++ b/ccm-core/src/main/java/org/libreccm/modules/ModuleManager.java
@@ -187,8 +187,8 @@ public class ModuleManager {
System.out.printf("Checking status of module %s%n",
node.getModule().getClass().getName());
final InstalledModule installedModule = entityManager.find(
- InstalledModule.class, node.
- getModule().getClass().getName().hashCode());
+ InstalledModule.class,
+ node.getModule().getClass().getName().hashCode());
LOGGER.info("Status of module {} ({}): {}",
node.getModuleInfo().getModuleName(),
node.getModule().getClass().getName(),
diff --git a/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java b/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java
index b92d8a8b1..ac16a83ea 100644
--- a/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java
+++ b/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java
@@ -42,15 +42,7 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
-import org.libreccm.categorization.Categorization;
-import org.libreccm.jpa.EntityManagerProducer;
-import org.libreccm.jpa.utils.MimeTypeConverter;
-import org.libreccm.l10n.LocalizedString;
-import org.libreccm.security.Permission;
import org.libreccm.tests.categories.IntegrationTest;
-import org.libreccm.testutils.EqualsVerifier;
-import org.libreccm.web.CcmApplication;
-import org.libreccm.workflow.Workflow;
import java.io.File;
import java.util.List;
diff --git a/ccm-core/src/test/resources-wildfly8-remote-pgsql/scripts/create_ccm_core_schema.sql b/ccm-core/src/test/resources-wildfly8-remote-pgsql/scripts/create_ccm_core_schema.sql
index 6de70463d..141cce8fa 100644
--- a/ccm-core/src/test/resources-wildfly8-remote-pgsql/scripts/create_ccm_core_schema.sql
+++ b/ccm-core/src/test/resources-wildfly8-remote-pgsql/scripts/create_ccm_core_schema.sql
@@ -4,7 +4,6 @@ DROP SEQUENCE IF EXISTS hibernate_sequence;
CREATE SCHEMA ccm_core;
-
create table CCM_CORE.APPLICATIONS (
APPLICATION_TYPE varchar(1024) not null,
PRIMARY_URL varchar(1024) not null,
diff --git a/ccm-shortcuts/pom.xml b/ccm-shortcuts/pom.xml
index 5a7eb76f7..692cd0629 100644
--- a/ccm-shortcuts/pom.xml
+++ b/ccm-shortcuts/pom.xml
@@ -50,11 +50,22 @@
org.hibernate
hibernate-entitymanager
+ provided
org.hibernate
hibernate-validator
+ provided
+
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-api
@@ -136,7 +147,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 2.18.1
+ 2.19.1
org.libreccm.tests.categories.UnitTest
@@ -332,4 +343,184 @@
+
+
+ wildfly-remote-h2-mem
+
+
+
+
+ org.wildfly
+ wildfly-arquillian-container-remote
+
+ test
+
+
+ org.jacoco
+ org.jacoco.core
+
+ test
+
+
+ org.jboss.arquillian.extension
+ arquillian-jacoco
+ 1.0.0.Alpha8
+
+
+ net.sf.saxon
+ Saxon-HE
+
+
+
+
+
+
+ src/test/resources
+
+
+ src/test/resources-wildfly-remote-h2-mem
+
+
+ ${project.build.directory}/generated-resources
+
+
+
+
+
+ de.jpdigital
+ hibernate5-ddl-maven-plugin
+
+
+ h2
+ postgresql9
+
+
+ org.libreccm
+
+ true
+
+
+
+
+ gen-ddl
+
+ process-classes
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.19.1
+
+ always
+ 999
+ true
+
+ org.jboss.logmanager.LogManager
+
+
+ false
+
+ org.libreccm.tests.categories.UnitTest,
+ org.libreccm.tests.categories.IntegrationTest
+
+
+
+
+
+
+
+
+ wildfly-remote-pgsql
+
+
+ org.wildfly
+ wildfly-arquillian-container-remote
+
+ test
+
+
+ org.jacoco
+ org.jacoco.core
+
+ test
+
+
+
+ net.sf.saxon
+ Saxon-HE
+
+
+
+
+
+
+ src/test/resources
+
+
+ src/test/resources-wildfly-remote-pgsql
+
+
+ ${project.build.directory}/generated-resources
+
+
+
+
+
+ de.jpdigital
+ hibernate5-ddl-maven-plugin
+
+
+ h2
+ postgresql9
+
+
+ org.libreccm
+
+ true
+
+
+
+
+ gen-ddl
+
+ process-classes
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.19.1
+
+ always
+ 999
+ true
+
+ org.jboss.logmanager.LogManager
+
+
+ false
+
+ org.libreccm.tests.categories.UnitTest,
+ org.libreccm.tests.categories.IntegrationTest
+
+
+
+
+
+
+
+
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java
index 546a90226..9d19ae56a 100644
--- a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java
+++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcut.java
@@ -28,25 +28,34 @@ import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
import javax.persistence.Table;
-import org.libreccm.core.CcmObject;
/**
*
* @author Jens Pelzetter
*/
@Entity
-@Table(schema ="CCM_SHORTCUTS", name = "SHORTCUTS")
+@Table(schema = "CCM_SHORTCUTS", name = "SHORTCUTS")
+@NamedQueries({
+ @NamedQuery(
+ name = "Shortcut.findByUrlKey",
+ query = "SELECT s FROM Shortcut s WHERE s.urlKey = :urlKey"),
+ @NamedQuery(
+ name = "Shortcut.findByRedirect",
+ query = "SELECT s FROM Shortcut s WHERE s.redirect = :redirect")
+})
public class Shortcut implements Serializable {
private static final long serialVersionUID = -5674633339633714327L;
-
+
@Id
@Column(name = "SHORTCUTS_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
private long shortcutId;
- @Column(name = "URL_KEY", length = 1024)
+ @Column(name = "URL_KEY", length = 1024, unique = true)
@NotEmpty
private String urlKey;
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutManager.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutManager.java
index 632a56aab..ddee0beab 100644
--- a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutManager.java
+++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutManager.java
@@ -20,8 +20,7 @@ package org.libreccm.shortcuts;
import java.net.URI;
import java.net.URL;
-import java.util.Iterator;
-import java.util.List;
+
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
@@ -33,7 +32,7 @@ import javax.inject.Inject;
*/
@RequestScoped
public class ShortcutManager {
-
+
/**
* {@link ShortcutRepository} for interacting with the database.
*/
@@ -94,8 +93,8 @@ public class ShortcutManager {
/**
* checks if the given URL is valid
*
- * @param url the Url you want to validate
- * @return true if you can succesfully connect to the url, therefore is
+ * @param url the URL you want to validate
+ * @return true if you can successfully connect to the url, therefore is
* valid.
*/
private boolean validateURL(final String url) {
@@ -104,44 +103,5 @@ public class ShortcutManager {
}
- /**
- * Finds the first shortcut with the specified urlKey.
- *
- * @param urlKey the wanted urlKey
- * @return Shortcut a shortcut with the specified urlKey
- */
- public Shortcut findByUrlKey(final String urlKey) {
- //get all Shortcuts:
- List shortcutlist = shortcutRepository.findAll();
- //search for the right one:
- Iterator iterator = shortcutlist.iterator();
- while (iterator.hasNext()) {
- Shortcut shortcut = iterator.next();
- if (shortcut.getUrlKey().equals(urlKey)) {
- return shortcut;
- }
- }
-
- return null;
- }
-
- /**
- * Finds all shortcuts with the specified redirect.
- *
- * @param redirect the wanted redirect
- * @return List a List of Shortcuts with the specified redirect
- */
- public List findByRedirect(final String redirect) {
- //get all Shortcuts:
- List shortcutlist = shortcutRepository.findAll();
- //removes all shortcuts that don't fit
- Iterator iterator = shortcutlist.iterator();
- while (iterator.hasNext()) {
- Shortcut shortcut = iterator.next();
- if (!shortcut.getRedirect().equals(redirect)) {
- shortcutlist.remove(shortcut);
- }
- }
- return shortcutlist;
- }
+
}
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutRepository.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutRepository.java
index 2699877eb..778efe123 100644
--- a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutRepository.java
+++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutRepository.java
@@ -20,10 +20,18 @@ package org.libreccm.shortcuts;
import org.libreccm.core.AbstractEntityRepository;
+import java.util.List;
+import java.util.Optional;
+
+import javax.enterprise.context.RequestScoped;
+import javax.persistence.NoResultException;
+import javax.persistence.TypedQuery;
+
/**
*
* @author Alexander Konermann
*/
+@RequestScoped
public class ShortcutRepository extends AbstractEntityRepository {
@Override
@@ -33,7 +41,41 @@ public class ShortcutRepository extends AbstractEntityRepository
@Override
public boolean isNew(final Shortcut entity) {
- return entity.getShortcutId() == 0;
+ return entity.getShortcutId() == 0;
+ }
+
+ /**
+ * Finds the first shortcut with the specified urlKey.
+ *
+ * @param urlKey the wanted urlKey
+ *
+ * @return The shortcut with the specified urlKey if there is any.
+ */
+ public Optional findByUrlKey(final String urlKey) {
+ final TypedQuery query = getEntityManager().createNamedQuery(
+ "Shortcut.findByUrlKey", Shortcut.class);
+ query.setParameter("urlKey", urlKey);
+
+ try {
+ final Shortcut result = query.getSingleResult();
+ return Optional.of(result);
+ } catch (NoResultException ex) {
+ return Optional.empty();
+ }
}
+ /**
+ * Finds all shortcuts which redirect to the provided target.
+ *
+ * @param redirect the wanted redirect
+ * @return List a List of Shortcuts with the specified redirect
+ */
+ public List findByRedirect(final String redirect) {
+ final TypedQuery query = getEntityManager().createNamedQuery(
+ "Shortcut.findByRedirect", Shortcut.class);
+ query.setParameter("redirect", redirect);
+
+ return query.getResultList();
+ }
+
}
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcuts.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcuts.java
index d1dd09684..2f50e93ec 100644
--- a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcuts.java
+++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/Shortcuts.java
@@ -18,34 +18,45 @@
*/
package org.libreccm.shortcuts;
-import javax.persistence.Entity;
-import javax.persistence.Table;
-
-import org.libreccm.web.CcmApplication;
+import org.libreccm.modules.CcmModule;
+import org.libreccm.modules.InitEvent;
+import org.libreccm.modules.InstallEvent;
+import org.libreccm.modules.Module;
+import org.libreccm.modules.ShutdownEvent;
+import org.libreccm.modules.UnInstallEvent;
+import org.libreccm.web.ApplicationType;
/**
*
* @author Jens Pelzetter
*/
-@Entity
-@Table(schema ="CCM_SHORTCUTS", name = "SHORTCUTS_APP")
-public class Shortcuts extends CcmApplication {
- private static final long serialVersionUID = -6793265996161649637L;
-
-// private String shortcutAppName;
-
- public Shortcuts() {
- super();
+@Module(applicationTypes = {
+ @ApplicationType(name = ShortcutsConstants.SHORTCUTS_APP_TYPE,
+ descBundle = "org.libreccm.shortcuts.ShortcutsResources",
+ singleton = true,
+ creator = ShortcutsApplicationCreator.class)}
+)
+public class Shortcuts implements CcmModule {
+
+ @Override
+ public void install(final InstallEvent event) {
+ final ShortcutsSetup setup = new ShortcutsSetup(event);
+ setup.setup();
+ }
+
+ @Override
+ public void init(final InitEvent event) {
+ //Nothing
+ }
+
+ @Override
+ public void shutdown(final ShutdownEvent event) {
+ //Nothing
+ }
+
+ @Override
+ public void uninstall(final UnInstallEvent event) {
+ //Nothing
}
-// public String getShortcutAppName() {
-// return shortcutAppName;
-// }
-//
-// public void setShortcutAppName(final String shortcutAppName) {
-// this.shortcutAppName = shortcutAppName;
-// }
-//
-
-
}
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsAppManager.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsAppManager.java.nolongerinuse
similarity index 100%
rename from ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsAppManager.java
rename to ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsAppManager.java.nolongerinuse
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsApplicationCreator.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsApplicationCreator.java
new file mode 100644
index 000000000..c5e2a7bea
--- /dev/null
+++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsApplicationCreator.java
@@ -0,0 +1,54 @@
+/*
+ * 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.shortcuts;
+
+import org.libreccm.web.ApplicationCreator;
+import org.libreccm.web.ApplicationRepository;
+import org.libreccm.web.ApplicationType;
+import org.libreccm.web.CcmApplication;
+
+import javax.enterprise.context.RequestScoped;
+import javax.inject.Inject;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+@RequestScoped
+public class ShortcutsApplicationCreator
+ implements ApplicationCreator{
+
+ @Inject
+ private ApplicationRepository appRepository;
+
+ @Override
+ public CcmApplication createInstance(final String primaryUrl,
+ final ApplicationType type) {
+ if (!ShortcutsConstants.SHORTCUTS_PRIMARY_URL.equals(primaryUrl)) {
+ throw new IllegalArgumentException(
+ "Shortcuts is a singleton application which is mounted at "
+ + "/shortcuts");
+ }
+
+ return appRepository.retrieveApplicationForPath(primaryUrl);
+ }
+
+
+
+}
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsConstants.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsConstants.java
new file mode 100644
index 000000000..3b52e1641
--- /dev/null
+++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsConstants.java
@@ -0,0 +1,38 @@
+/*
+ * 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.shortcuts;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+public final class ShortcutsConstants {
+
+ /**
+ * Name of the shortcuts application type
+ */
+ public static final String SHORTCUTS_APP_TYPE
+ = "org.libreccm.shortcuts.Shortcuts";
+
+ /**
+ * Primary URL of the singleton Shortcuts application instance.
+ */
+ public static final String SHORTCUTS_PRIMARY_URL = "/shortcuts/";
+
+}
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsSetup.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsSetup.java
new file mode 100644
index 000000000..21c24dbb1
--- /dev/null
+++ b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ShortcutsSetup.java
@@ -0,0 +1,62 @@
+/*
+ * 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.shortcuts;
+
+import org.libreccm.cdi.utils.CdiUtil;
+import org.libreccm.modules.InstallEvent;
+import org.libreccm.security.PermissionManager;
+import org.libreccm.security.Role;
+import org.libreccm.security.RoleManager;
+import org.libreccm.security.RoleRepository;
+import org.libreccm.web.AbstractCcmApplicationSetup;
+import org.libreccm.web.CcmApplication;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+public class ShortcutsSetup extends AbstractCcmApplicationSetup {
+
+ public ShortcutsSetup(final InstallEvent event) {
+ super(event);
+ }
+
+ @Override
+ public void setup() {
+ final CcmApplication shortcuts = new CcmApplication();
+ shortcuts.setUuid(UUID.randomUUID().toString());
+ shortcuts.setApplicationType(ShortcutsConstants.SHORTCUTS_APP_TYPE);
+ shortcuts.setPrimaryUrl(ShortcutsConstants.SHORTCUTS_PRIMARY_URL);
+ getEntityManager().persist(shortcuts);
+
+ final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
+ final RoleRepository roleRepository = cdiUtil.findBean(
+ RoleRepository.class);
+ final Role shortcutsManager = new Role();
+ shortcutsManager.setName("shortcuts-manager");
+ roleRepository.save(shortcutsManager);
+
+ final PermissionManager permissionManager = cdiUtil.findBean(
+ PermissionManager.class);
+ permissionManager.grantPrivilege("manage_shortcuts", shortcutsManager);
+ }
+
+}
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/AdminPanel.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/AdminPanel.java.tmpOff
similarity index 100%
rename from ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/AdminPanel.java
rename to ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/AdminPanel.java.tmpOff
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutForm.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutForm.java.tmpOff
similarity index 100%
rename from ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutForm.java
rename to ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutForm.java.tmpOff
diff --git a/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutsTable.java b/ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutsTable.java.tmpOff
similarity index 100%
rename from ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutsTable.java
rename to ccm-shortcuts/src/main/java/org/libreccm/shortcuts/ui/ShortcutsTable.java.tmpOff
diff --git a/ccm-shortcuts/src/main/resources/META-INF/services/org.libreccm.modules.CcmModule b/ccm-shortcuts/src/main/resources/META-INF/services/org.libreccm.modules.CcmModule
new file mode 100644
index 000000000..b304c8ef0
--- /dev/null
+++ b/ccm-shortcuts/src/main/resources/META-INF/services/org.libreccm.modules.CcmModule
@@ -0,0 +1 @@
+org.libreccm.shortcuts.Shortcuts
diff --git a/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/h2/V1_0_0_0__create_tables.sql b/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/h2/V1_0_0_0__create_tables.sql
deleted file mode 100644
index ce8e5dbc2..000000000
--- a/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/h2/V1_0_0_0__create_tables.sql
+++ /dev/null
@@ -1,12 +0,0 @@
-
- create table SHORTCUTS (
- shortcut_id bigint generated by default as identity,
- redirect varchar(1024),
- url_key varchar(1024),
- primary key (shortcut_id)
- );
-
- create table SHORTCUTS_APP (
- object_id bigint not null,
- primary key (object_id)
- );
diff --git a/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/h2/V7_0_0_0__create_tables.sql b/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/h2/V7_0_0_0__create_tables.sql
new file mode 100644
index 000000000..e24a0df37
--- /dev/null
+++ b/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/h2/V7_0_0_0__create_tables.sql
@@ -0,0 +1,9 @@
+create table SHORTCUTS (
+ shortcut_id bigint generated by default as identity,
+ redirect varchar(1024),
+ url_key varchar(1024),
+ primary key (shortcut_id)
+);
+
+alter table CCM_SHORTCUTS.SHORTCUTS
+ add constraint UK_4otuwtog6qqdbg4e6p8xdpw8h unique (URL_KEY);
diff --git a/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/pqsql/V1_0_0_0__create_tables.sql b/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/pqsql/V1_0_0_0__create_tables.sql
deleted file mode 100644
index ae5f7b413..000000000
--- a/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/pqsql/V1_0_0_0__create_tables.sql
+++ /dev/null
@@ -1,12 +0,0 @@
-
- create table SHORTCUTS (
- shortcut_id int8 not null,
- redirect varchar(1024),
- url_key varchar(1024),
- primary key (shortcut_id)
- );
-
- create table SHORTCUTS_APP (
- object_id int8 not null,
- primary key (object_id)
- );
\ No newline at end of file
diff --git a/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/pqsql/V7_0_0_0__create_tables.sql b/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/pqsql/V7_0_0_0__create_tables.sql
new file mode 100644
index 000000000..51d267114
--- /dev/null
+++ b/ccm-shortcuts/src/main/resources/db/migrations/org.libreccm.ccm-shortcuts/pqsql/V7_0_0_0__create_tables.sql
@@ -0,0 +1,9 @@
+create table SHORTCUTS (
+ shortcut_id int8 not null,
+ redirect varchar(1024),
+ url_key varchar(1024),
+ primary key (shortcut_id)
+);
+
+alter table CCM_SHORTCUTS.SHORTCUTS
+ add constraint UK_4otuwtog6qqdbg4e6p8xdpw8h unique (URL_KEY);
diff --git a/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java
new file mode 100644
index 000000000..b81397183
--- /dev/null
+++ b/ccm-shortcuts/src/test/java/org/libreccm/shortcuts/ShortcutRepositoryTest.java
@@ -0,0 +1,152 @@
+/*
+ * 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.shortcuts;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.junit.InSequence;
+import org.jboss.arquillian.persistence.CreateSchema;
+import org.jboss.arquillian.persistence.PersistenceTest;
+import org.jboss.arquillian.transaction.api.annotation.TransactionMode;
+import org.jboss.arquillian.transaction.api.annotation.Transactional;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.shrinkwrap.resolver.api.maven.Maven;
+import org.jboss.shrinkwrap.resolver.api.maven.PomEquippedResolveStage;
+import org.jboss.shrinkwrap.resolver.api.maven.ScopeType;
+import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenDependencies;
+import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenDependency;
+import org.jboss.shrinkwrap.resolver.impl.maven.coordinate.MavenDependencyImpl;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.libreccm.tests.categories.IntegrationTest;
+
+import java.io.File;
+
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.*;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+@Category(IntegrationTest.class)
+@RunWith(Arquillian.class)
+@PersistenceTest
+@Transactional(TransactionMode.COMMIT)
+@CreateSchema({"create_ccm_shortcuts_schema.sql"})
+public class ShortcutRepositoryTest {
+
+ @Inject
+ private ShortcutRepository shortcutRepository;
+
+ @PersistenceContext
+ private EntityManager entityManager;
+
+ public ShortcutRepositoryTest() {
+ }
+
+ @BeforeClass
+ public static void setUpClass() {
+ }
+
+ @AfterClass
+ public static void tearDownClass() {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+ @Deployment
+ public static EnterpriseArchive createDeployment() {
+ final PomEquippedResolveStage pom = Maven
+ .resolver()
+ .loadPomFromFile("pom.xml");
+ final PomEquippedResolveStage dependencies = pom
+ .importCompileAndRuntimeDependencies();
+ dependencies.addDependency(MavenDependencies.createDependency(
+ "org.libreccm:ccm-core", ScopeType.RUNTIME, false));
+ dependencies.addDependency(MavenDependencies.createDependency(
+ "org.libreccm:ccm-testutils", ScopeType.RUNTIME, false));
+ dependencies.addDependency(MavenDependencies.createDependency(
+ "net.sf.saxon:Saxon-HE", ScopeType.RUNTIME, false));
+ final File[] libs = dependencies.resolve().withTransitivity().asFile();
+
+ for (File lib : libs) {
+ System.err.printf("Adding file '%s' to test archive...%n",
+ lib.getName());
+ }
+
+ final WebArchive webArchive = ShrinkWrap.create(
+ WebArchive.class,
+ "LibreCCM-org.libreccm.shortcuts.ShortcutTest-web.war")
+ // .addPackage(org.libreccm.categorization.Categorization.class
+ // .getPackage())
+ // .addPackage(org.libreccm.configuration.Configuration.class
+ // .getPackage())
+ // .addPackage(org.libreccm.core.CcmCore.class.getPackage())
+ // .addPackage(org.libreccm.jpa.EntityManagerProducer.class
+ // .getPackage())
+ // .addPackage(org.libreccm.l10n.LocalizedString.class.getPackage())
+ // .addPackage(org.libreccm.security.Permission.class.getPackage())
+ .addPackage(org.libreccm.shortcuts.Shortcuts.class.getPackage())
+ // .addPackage(org.libreccm.web.CcmApplication.class.getPackage())
+ // .addPackage(org.libreccm.workflow.Workflow.class.getPackage())
+ .addAsLibraries(libs)
+ .addAsResource("test-persistence.xml",
+ "META-INF/persistence.xml")
+ .addAsWebInfResource("test-web.xml", "WEB-INF/web.xml")
+ .addAsWebInfResource(EmptyAsset.INSTANCE, "WEB-INF/beans.xml");
+
+ return ShrinkWrap.create(
+ EnterpriseArchive.class,
+ "LibreCCM-org.libreccm.shortcuts.ShortcutRepositoryTest.ear")
+ .addAsModule(webArchive)
+ .addAsResource("application.xml", "application.xml");
+ }
+
+ @Test
+ @InSequence(1)
+ public void repoIsInjected() {
+ assertThat(shortcutRepository, is(not(nullValue())));
+ }
+
+ @Test
+ @InSequence(2)
+ public void entityManagerIsInjected() {
+ assertThat(entityManager, is(not((nullValue()))));
+ }
+
+}
diff --git a/ccm-shortcuts/src/test/resources-wildfly-remote-h2-mem/arquillian.xml b/ccm-shortcuts/src/test/resources-wildfly-remote-h2-mem/arquillian.xml
new file mode 100644
index 000000000..0a0f22043
--- /dev/null
+++ b/ccm-shortcuts/src/test/resources-wildfly-remote-h2-mem/arquillian.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ target/deployments
+
+
+
+
+
+ java:/comp/env/jdbc/org/libreccm/ccm-shortcuts/h2-mem
+
+
+ NONE
+
+ true
+ target
+
+
+
+ json
+ org.dbunit.ext.h2.H2DataTypeFactory
+ true
+ true
+
+
+
+ scripts/h2-cleanup.sql
+
+
+
+
diff --git a/ccm-shortcuts/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_shortcuts_schema.sql b/ccm-shortcuts/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_shortcuts_schema.sql
new file mode 100644
index 000000000..ffd4970f0
--- /dev/null
+++ b/ccm-shortcuts/src/test/resources-wildfly-remote-h2-mem/scripts/create_ccm_shortcuts_schema.sql
@@ -0,0 +1,1085 @@
+DROP SCHEMA IF EXISTS ccm_shortcuts;
+DROP SCHEMA IF EXISTS ccm_core;
+
+DROP SEQUENCE IF EXISTS hibernate_sequence;
+
+CREATE SCHEMA ccm_core;
+CREATE SCHEMA ccm_shortcuts;
+
+ create table CCM_CORE.APPLICATIONS (
+ APPLICATION_TYPE varchar(1024) not null,
+ PRIMARY_URL varchar(1024) not null,
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.ATTACHMENTS (
+ ATTACHMENT_ID bigint not null,
+ ATTACHMENT_DATA blob,
+ DESCRIPTION varchar(255),
+ MIME_TYPE varchar(255),
+ TITLE varchar(255),
+ MESSAGE_ID bigint,
+ primary key (ATTACHMENT_ID)
+ );
+
+ create table CCM_CORE.CATEGORIES (
+ ABSTRACT_CATEGORY boolean,
+ CATEGORY_ORDER bigint,
+ ENABLED boolean,
+ NAME varchar(255) not null,
+ UNIQUE_ID varchar(255),
+ VISIBLE boolean,
+ OBJECT_ID bigint not null,
+ PARENT_CATEGORY_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.CATEGORIZATIONS (
+ CATEGORIZATION_ID bigint not null,
+ CATEGORY_ORDER bigint,
+ CATEGORY_INDEX boolean,
+ OBJECT_ORDER bigint,
+ OBJECT_ID bigint,
+ CATEGORY_ID bigint,
+ primary key (CATEGORIZATION_ID)
+ );
+
+ create table CCM_CORE.CATEGORY_DESCRIPTIONS (
+ OBJECT_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.CATEGORY_DOMAINS (
+ DOMAIN_KEY varchar(255) not null,
+ RELEASED timestamp,
+ URI varchar(1024),
+ VERSION varchar(255),
+ OBJECT_ID bigint not null,
+ ROOT_CATEGORY_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.CATEGORY_TITLES (
+ OBJECT_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.CCM_OBJECTS (
+ OBJECT_ID bigint not null,
+ DISPLAY_NAME varchar(255),
+ UUID varchar(255),
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.CCM_REVISIONS (
+ id integer not null,
+ timestamp bigint not null,
+ USER_NAME varchar(255),
+ primary key (id)
+ );
+
+ create table CCM_CORE.CCM_ROLES (
+ ROLE_ID bigint not null,
+ NAME varchar(512) not null,
+ primary key (ROLE_ID)
+ );
+
+ create table CCM_CORE.DIGESTS (
+ FREQUENCY integer,
+ HEADER varchar(4096) not null,
+ NEXT_RUN timestamp,
+ DIGEST_SEPARATOR varchar(128) not null,
+ SIGNATURE varchar(4096) not null,
+ SUBJECT varchar(255) not null,
+ OBJECT_ID bigint not null,
+ FROM_PARTY_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.DOMAIN_DESCRIPTIONS (
+ OBJECT_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.DOMAIN_OWNERSHIPS (
+ OWNERSHIP_ID bigint not null,
+ CONTEXT varchar(255),
+ DOMAIN_ORDER bigint,
+ OWNER_ORDER bigint,
+ domain_OBJECT_ID bigint not null,
+ owner_OBJECT_ID bigint not null,
+ primary key (OWNERSHIP_ID)
+ );
+
+ create table CCM_CORE.DOMAIN_TITLES (
+ OBJECT_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_COMPONENT_DESCRIPTIONS (
+ COMPONENT_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (COMPONENT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_COMPONENTS (
+ ACTIVE boolean,
+ ADMIN_NAME varchar(255),
+ ATTRIBUTE_STRING varchar(255),
+ COMPONENT_ORDER bigint,
+ SELECTED boolean,
+ OBJECT_ID bigint not null,
+ parentComponent_OBJECT_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_CONFIRM_EMAIL_LISTENER (
+ BODY clob,
+ FROM_EMAIL varchar(255),
+ SUBJECT varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_CONFIRM_REDIRECT_LISTENERS (
+ URL varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_DATA_DRIVEN_SELECTS (
+ MULTIPLE boolean,
+ QUERY varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_DATA_QUERIES (
+ QUERY_ID varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_DATA_QUERY_DESCRIPTIONS (
+ DATA_QUERY_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (DATA_QUERY_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_DATA_QUERY_NAMES (
+ DATA_QUERY_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (DATA_QUERY_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_FORMSECTIONS (
+ FORMSECTION_ACTION varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_LISTENERS (
+ ATTRIBUTE_STRING varchar(255),
+ CLASS_NAME varchar(255),
+ OBJECT_ID bigint not null,
+ widget_OBJECT_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_METAOBJECTS (
+ CLASS_NAME varchar(255),
+ PRETTY_NAME varchar(255),
+ PRETTY_PLURAL varchar(255),
+ PROPERTIES_FORM varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_OBJECT_TYPES (
+ APP_NAME varchar(255),
+ CLASS_NAME varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_OPTION_LABELS (
+ OPTION_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (OPTION_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_OPTIONS (
+ PARAMETER_VALUE varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_PROCESS_LISTENER_DESCRIPTIONS (
+ PROCESS_LISTENER_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (PROCESS_LISTENER_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_PROCESS_LISTENER_NAMES (
+ PROCESS_LISTENER_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (PROCESS_LISTENER_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_PROCESS_LISTENERS (
+ LISTENER_CLASS varchar(255),
+ PROCESS_LISTENER_ORDER bigint,
+ OBJECT_ID bigint not null,
+ formSection_OBJECT_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_REMOTE_SERVER_POST_LISTENER (
+ REMOTE_URL varchar(2048),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_SIMPLE_EMAIL_LISTENERS (
+ RECIPIENT varchar(255),
+ SUBJECT varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_TEMPLATE_EMAIL_LISTENERS (
+ BODY clob,
+ RECIPIENT varchar(255),
+ SUBJECT varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_WIDGET_LABELS (
+ OBJECT_ID bigint not null,
+ widget_OBJECT_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_WIDGETS (
+ DEFAULT_VALUE varchar(255),
+ PARAMETER_MODEL varchar(255),
+ PARAMETER_NAME varchar(255),
+ OBJECT_ID bigint not null,
+ label_OBJECT_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_XML_EMAIL_LISTENERS (
+ RECIPIENT varchar(255),
+ SUBJECT varchar(255),
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.GROUP_MEMBERSHIPS (
+ MEMBERSHIP_ID bigint not null,
+ GROUP_ID bigint,
+ MEMBER_ID bigint,
+ primary key (MEMBERSHIP_ID)
+ );
+
+ create table CCM_CORE.GROUPS (
+ PARTY_ID bigint not null,
+ primary key (PARTY_ID)
+ );
+
+ create table CCM_CORE.HOSTS (
+ HOST_ID bigint not null,
+ SERVER_NAME varchar(512),
+ SERVER_PORT bigint,
+ primary key (HOST_ID)
+ );
+
+ create table CCM_CORE.INITS (
+ INITIALIZER_ID bigint not null,
+ CLASS_NAME varchar(255),
+ REQUIRED_BY_ID bigint,
+ primary key (INITIALIZER_ID)
+ );
+
+ create table CCM_CORE.INSTALLED_MODULES (
+ MODULE_ID integer not null,
+ MODULE_CLASS_NAME varchar(2048),
+ STATUS varchar(255),
+ primary key (MODULE_ID)
+ );
+
+ create table CCM_CORE.LUCENE_DOCUMENTS (
+ DOCUMENT_ID bigint not null,
+ CONTENT clob,
+ CONTENT_SECTION varchar(512),
+ COUNTRY varchar(8),
+ CREATED timestamp,
+ DIRTY bigint,
+ DOCUMENT_LANGUAGE varchar(8),
+ LAST_MODIFIED timestamp,
+ SUMMARY varchar(4096),
+ DOCUMENT_TIMESTAMP timestamp,
+ TITLE varchar(4096),
+ TYPE varchar(255),
+ TYPE_SPECIFIC_INFO varchar(512),
+ CREATED_BY_PARTY_ID bigint,
+ LAST_MODIFIED_BY bigint,
+ primary key (DOCUMENT_ID)
+ );
+
+ create table CCM_CORE.LUCENE_INDEXES (
+ INDEX_ID bigint not null,
+ LUCENE_INDEX_ID bigint,
+ HOST_ID bigint,
+ primary key (INDEX_ID)
+ );
+
+ create table CCM_CORE.MESSAGES (
+ BODY varchar(255),
+ BODY_MIME_TYPE varchar(255),
+ SENT timestamp,
+ SUBJECT varchar(255),
+ OBJECT_ID bigint not null,
+ IN_REPLY_TO_ID bigint,
+ SENDER_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.NOTIFICATIONS (
+ EXPAND_GROUP boolean,
+ EXPUNGE boolean,
+ EXPUNGE_MESSAGE boolean,
+ FULFILL_DATE timestamp,
+ HEADER varchar(4096),
+ MAX_RETRIES bigint,
+ REQUEST_DATE timestamp,
+ SIGNATURE varchar(4096),
+ STATUS varchar(32),
+ OBJECT_ID bigint not null,
+ DIGEST_ID bigint,
+ MESSAGE_ID bigint,
+ RECEIVER_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.ONE_TIME_AUTH_TOKENS (
+ TOKEN_ID bigint not null,
+ PURPOSE varchar(255),
+ TOKEN varchar(255),
+ VALID_UNTIL timestamp,
+ USER_ID bigint,
+ primary key (TOKEN_ID)
+ );
+
+ create table CCM_CORE.PARTIES (
+ PARTY_ID bigint not null,
+ NAME varchar(256) not null,
+ primary key (PARTY_ID)
+ );
+
+ create table CCM_CORE.PERMISSIONS (
+ PERMISSION_ID bigint not null,
+ CREATION_DATE timestamp,
+ CREATION_IP varchar(255),
+ granted_privilege varchar(255),
+ CREATION_USER_ID bigint,
+ GRANTEE_ID bigint,
+ OBJECT_ID bigint,
+ primary key (PERMISSION_ID)
+ );
+
+ create table CCM_CORE.PORTALS (
+ TEMPLATE boolean,
+ OBJECT_ID bigint not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.PORTLETS (
+ CELL_NUMBER bigint,
+ SORT_KEY bigint,
+ OBJECT_ID bigint not null,
+ PORTAL_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.QUEUE_ITEMS (
+ QUEUE_ITEM_ID bigint not null,
+ HEADER varchar(4096),
+ RECEIVER_ADDRESS varchar(512),
+ RETRY_COUNT bigint,
+ SIGNATURE varchar(4096),
+ SUCCESSFUL_SENDED boolean,
+ MESSAGE_ID bigint,
+ RECEIVER_ID bigint,
+ primary key (QUEUE_ITEM_ID)
+ );
+
+ create table CCM_CORE.RESOURCE_DESCRIPTIONS (
+ OBJECT_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.RESOURCE_TITLES (
+ OBJECT_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.RESOURCE_TYPE_DESCRIPTIONS (
+ RESOURCE_TYPE_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (RESOURCE_TYPE_ID, LOCALE)
+ );
+
+ create table CCM_CORE.RESOURCE_TYPES (
+ RESOURCE_TYPE_ID bigint not null,
+ SINGLETON boolean,
+ TITLE varchar(254) not null,
+ EMBEDDED_VIEW boolean,
+ FULL_PAGE_VIEW boolean,
+ WORKSPACE_APP boolean,
+ primary key (RESOURCE_TYPE_ID)
+ );
+
+ create table CCM_CORE.RESOURCES (
+ CREATED timestamp,
+ OBJECT_ID bigint not null,
+ parent_OBJECT_ID bigint,
+ resourceType_RESOURCE_TYPE_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.ROLE_MEMBERSHIPS (
+ MEMBERSHIP_ID bigint not null,
+ MEMBER_ID bigint,
+ ROLE_ID bigint,
+ primary key (MEMBERSHIP_ID)
+ );
+
+ create table CCM_CORE.SETTINGS (
+ DTYPE varchar(31) not null,
+ SETTING_ID bigint not null,
+ CONFIGURATION_CLASS varchar(512) not null,
+ NAME varchar(512) not null,
+ SETTING_VALUE_BOOLEAN boolean,
+ SETTING_VALUE_LONG bigint,
+ SETTING_VALUE_STRING varchar(1024),
+ SETTING_VALUE_DOUBLE double,
+ SETTING_VALUE_BIG_DECIMAL decimal(19,2),
+ primary key (SETTING_ID)
+ );
+
+ create table CCM_CORE.SETTINGS_ENUM_VALUES (
+ ENUM_ID bigint not null,
+ value varchar(255)
+ );
+
+ create table CCM_CORE.SETTINGS_L10N_STR_VALUES (
+ ENTRY_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (ENTRY_ID, LOCALE)
+ );
+
+ create table CCM_CORE.SETTINGS_STRING_LIST (
+ LIST_ID bigint not null,
+ value varchar(255)
+ );
+
+ create table CCM_CORE.TASK_ASSIGNMENTS (
+ TASK_ASSIGNMENT_ID bigint not null,
+ ROLE_ID bigint,
+ TASK_ID bigint,
+ primary key (TASK_ASSIGNMENT_ID)
+ );
+
+ create table CCM_CORE.THREADS (
+ OBJECT_ID bigint not null,
+ ROOT_ID bigint,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.USER_EMAIL_ADDRESSES (
+ USER_ID bigint not null,
+ EMAIL_ADDRESS varchar(512) not null,
+ BOUNCING boolean,
+ VERIFIED boolean
+ );
+
+ create table CCM_CORE.USERS (
+ BANNED boolean,
+ FAMILY_NAME varchar(512),
+ GIVEN_NAME varchar(512),
+ PASSWORD varchar(2048),
+ PASSWORD_RESET_REQUIRED boolean,
+ EMAIL_ADDRESS varchar(512) not null,
+ BOUNCING boolean,
+ VERIFIED boolean,
+ PARTY_ID bigint not null,
+ primary key (PARTY_ID)
+ );
+
+ create table CCM_CORE.WORKFLOW_DESCRIPTIONS (
+ WORKFLOW_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (WORKFLOW_ID, LOCALE)
+ );
+
+ create table CCM_CORE.WORKFLOW_NAMES (
+ WORKFLOW_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (WORKFLOW_ID, LOCALE)
+ );
+
+ create table CCM_CORE.WORKFLOW_TASK_COMMENTS (
+ TASK_ID bigint not null,
+ COMMENT clob
+ );
+
+ create table CCM_CORE.WORKFLOW_TASK_DEPENDENCIES (
+ DEPENDS_ON_TASK_ID bigint not null,
+ DEPENDENT_TASK_ID bigint not null
+ );
+
+ create table CCM_CORE.WORKFLOW_TASK_LABELS (
+ TASK_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (TASK_ID, LOCALE)
+ );
+
+ create table CCM_CORE.WORKFLOW_TASKS (
+ TASK_ID bigint not null,
+ ACTIVE boolean,
+ TASK_STATE varchar(512),
+ WORKFLOW_ID bigint,
+ primary key (TASK_ID)
+ );
+
+ create table CCM_CORE.WORKFLOW_TASKS_DESCRIPTIONS (
+ TASK_ID bigint not null,
+ LOCALIZED_VALUE clob,
+ LOCALE varchar(255) not null,
+ primary key (TASK_ID, LOCALE)
+ );
+
+ create table CCM_CORE.WORKFLOW_USER_TASKS (
+ TASK_ID bigint not null,
+ ACTIVE boolean,
+ TASK_STATE varchar(512),
+ WORKFLOW_ID bigint,
+ DUE_DATE timestamp,
+ DURATION_MINUTES bigint,
+ LOCKED boolean,
+ START_DATE timestamp,
+ LOCKING_USER_ID bigint,
+ NOTIFICATION_SENDER bigint,
+ primary key (TASK_ID)
+ );
+
+ create table CCM_CORE.WORKFLOWS (
+ WORKFLOW_ID bigint not null,
+ primary key (WORKFLOW_ID)
+ );
+
+ alter table CCM_CORE.CATEGORY_DOMAINS
+ add constraint UK_mb1riernf8a88u3mwl0bgfj8y unique (DOMAIN_KEY);
+
+ alter table CCM_CORE.CATEGORY_DOMAINS
+ add constraint UK_i1xqotjvml7i6ro2jq22fxf5g unique (URI);
+
+ alter table CCM_CORE.CCM_OBJECTS
+ add constraint UK_1cm71jlagvyvcnkqvxqyit3wx unique (UUID);
+
+ alter table CCM_CORE.HOSTS
+ add constraint UK9ramlv6uxwt13v0wj7q0tucsx unique (SERVER_NAME, SERVER_PORT);
+
+ alter table CCM_CORE.INSTALLED_MODULES
+ add constraint UK_11imwgfojyi4hpr18uw9g3jvx unique (MODULE_CLASS_NAME);
+
+ alter table CCM_CORE.SETTINGS
+ add constraint UK5whinfxdaepqs09e5ia9y71uk unique (CONFIGURATION_CLASS, NAME);
+
+ create table CCM_SHORTCUTS.SHORTCUTS (
+ SHORTCUTS_ID bigint not null,
+ REDIRECT varchar(1024),
+ URL_KEY varchar(1024),
+ primary key (SHORTCUTS_ID)
+ );
+
+ alter table CCM_SHORTCUTS.SHORTCUTS
+ add constraint UK_4otuwtog6qqdbg4e6p8xdpw8h unique (URL_KEY);
+create sequence hibernate_sequence start with 1 increment by 1;
+
+ alter table CCM_CORE.APPLICATIONS
+ add constraint FKatcp9ij6mbkx0nfeig1o6n3lm
+ foreign key (OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.ATTACHMENTS
+ add constraint FK8ju9hm9baceridp803nislkwb
+ foreign key (MESSAGE_ID)
+ references CCM_CORE.MESSAGES;
+
+ alter table CCM_CORE.CATEGORIES
+ add constraint FKrj3marx99nheur4fqanm0ylur
+ foreign key (PARENT_CATEGORY_ID)
+ references CCM_CORE.CATEGORIES;
+
+ alter table CCM_CORE.CATEGORIES
+ add constraint FKpm291swli2musd0204phta652
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.CATEGORIZATIONS
+ add constraint FKejp0ubk034nfq60v1po6srkke
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.CATEGORIZATIONS
+ add constraint FKoyeipswl876wa6mqwbx0uy83h
+ foreign key (CATEGORY_ID)
+ references CCM_CORE.CATEGORIES;
+
+ alter table CCM_CORE.CATEGORY_DESCRIPTIONS
+ add constraint FKhiwjlmh5vkbu3v3vng1la1qum
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CATEGORIES;
+
+ alter table CCM_CORE.CATEGORY_DOMAINS
+ add constraint FKf25vi73cji01w8fgo6ow1dgg
+ foreign key (ROOT_CATEGORY_ID)
+ references CCM_CORE.CATEGORIES;
+
+ alter table CCM_CORE.CATEGORY_DOMAINS
+ add constraint FK58xpmnvciohkom1c16oua4xha
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.CATEGORY_TITLES
+ add constraint FKka9bt9f5br0kji5bcjxcmf6ch
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CATEGORIES;
+
+ alter table CCM_CORE.DIGESTS
+ add constraint FKc53g09agnye3w1v4euy3e0gsi
+ foreign key (FROM_PARTY_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.DIGESTS
+ add constraint FK845r9ep6xu6nbt1mvxulwybym
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.DOMAIN_DESCRIPTIONS
+ add constraint FKn4i2dxgn8cqysa62dds6eih6a
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CATEGORY_DOMAINS;
+
+ alter table CCM_CORE.DOMAIN_OWNERSHIPS
+ add constraint FK47nsasr7jrdwlky5gx0u6e9py
+ foreign key (domain_OBJECT_ID)
+ references CCM_CORE.CATEGORY_DOMAINS;
+
+ alter table CCM_CORE.DOMAIN_OWNERSHIPS
+ add constraint FK3u4hq6yqau4m419b1xva3xpwq
+ foreign key (owner_OBJECT_ID)
+ references CCM_CORE.APPLICATIONS;
+
+ alter table CCM_CORE.DOMAIN_TITLES
+ add constraint FK5p526dsdwn94els6lp5w0hdn4
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CATEGORY_DOMAINS;
+
+ alter table CCM_CORE.FORMBUILDER_COMPONENT_DESCRIPTIONS
+ add constraint FKfh0k9lj3pf4amfc9bbbss0tr1
+ foreign key (COMPONENT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_COMPONENTS
+ add constraint FKpcpmvyiix023b4g5n4q8nkfca
+ foreign key (parentComponent_OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_COMPONENTS
+ add constraint FKt0e0uv00pp1rwhyaltrytghnm
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_CONFIRM_EMAIL_LISTENER
+ add constraint FK48khrbud3xhi2gvsvnlttd8tg
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_CONFIRM_REDIRECT_LISTENERS
+ add constraint FKbyjjt2ufendvje2obtge2l7et
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_DATA_DRIVEN_SELECTS
+ add constraint FK8oriyta1957u7dvbrqk717944
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_WIDGETS;
+
+ alter table CCM_CORE.FORMBUILDER_DATA_QUERIES
+ add constraint FKhhaxpeddbtmrnjr5o0fopju3a
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_DATA_QUERY_DESCRIPTIONS
+ add constraint FKsmduu1opoiulkeo2gc8v7lsbn
+ foreign key (DATA_QUERY_ID)
+ references CCM_CORE.FORMBUILDER_DATA_QUERIES;
+
+ alter table CCM_CORE.FORMBUILDER_DATA_QUERY_NAMES
+ add constraint FKju1x82inrw3kguyjuxoetn6gn
+ foreign key (DATA_QUERY_ID)
+ references CCM_CORE.FORMBUILDER_DATA_QUERIES;
+
+ alter table CCM_CORE.FORMBUILDER_FORMSECTIONS
+ add constraint FKnfhsgxp4lvigq2pm33pn4afac
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_LISTENERS
+ add constraint FK33ilyirwoux28yowafgd5xx0o
+ foreign key (widget_OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_WIDGETS;
+
+ alter table CCM_CORE.FORMBUILDER_LISTENERS
+ add constraint FKlqm76746nq5yrt8ganm474uu0
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_METAOBJECTS
+ add constraint FKf963v6u9mw8pwjmasrw51w8dx
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_OBJECT_TYPES
+ add constraint FKkv337e83rsecf0h3qy8bu7l9w
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_OPTION_LABELS
+ add constraint FKatlsylsvln6yse55eof6wwkj6
+ foreign key (OPTION_ID)
+ references CCM_CORE.FORMBUILDER_OPTIONS;
+
+ alter table CCM_CORE.FORMBUILDER_OPTIONS
+ add constraint FKhe5q71wby9g4i56sotc501h11
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_PROCESS_LISTENER_DESCRIPTIONS
+ add constraint FKcv3iu04gxjk9c0pn6tl8rqqv3
+ foreign key (PROCESS_LISTENER_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_PROCESS_LISTENER_NAMES
+ add constraint FK8rnyb1m6ij3b9hhmhr7klgd4p
+ foreign key (PROCESS_LISTENER_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_PROCESS_LISTENERS
+ add constraint FK7uiaeax8qafm82e5k729ms5ku
+ foreign key (formSection_OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_FORMSECTIONS;
+
+ alter table CCM_CORE.FORMBUILDER_PROCESS_LISTENERS
+ add constraint FKbdnloo884qk6gn36jwiqv5rlp
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_REMOTE_SERVER_POST_LISTENER
+ add constraint FKpajvu9m6fj1enm67a9gcb5ii9
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_SIMPLE_EMAIL_LISTENERS
+ add constraint FKsn82ktlq0c9ikijyv8k2bfv4f
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_TEMPLATE_EMAIL_LISTENERS
+ add constraint FK8kjyu72btjsuaaqh4bvd8npns
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_WIDGET_LABELS
+ add constraint FKb1q9bfshcrkwlj7r8w5jb4y8l
+ foreign key (widget_OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_WIDGETS;
+
+ alter table CCM_CORE.FORMBUILDER_WIDGET_LABELS
+ add constraint FKm1huo6ghk9l5o8buku9v8y6q7
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_WIDGETS
+ add constraint FKs7qq6vxblhmq0rlf87re65jdp
+ foreign key (label_OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_WIDGET_LABELS;
+
+ alter table CCM_CORE.FORMBUILDER_WIDGETS
+ add constraint FK1wosr4ujbfckdc50u5fgmrhrk
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_XML_EMAIL_LISTENERS
+ add constraint FKjie9co03m7ow4ihig5rk7l8oj
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.GROUP_MEMBERSHIPS
+ add constraint FKq4qnny8ri3eo7eqh4olxco8nk
+ foreign key (GROUP_ID)
+ references CCM_CORE.GROUPS;
+
+ alter table CCM_CORE.GROUP_MEMBERSHIPS
+ add constraint FKc8u86ivkhvoiw6ju8b2p365he
+ foreign key (MEMBER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.GROUPS
+ add constraint FK4f61mlqxw0ct6s7wwpi9m0735
+ foreign key (PARTY_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.INITS
+ add constraint FK3nvvxk10nmq9nfuko8yklqdgc
+ foreign key (REQUIRED_BY_ID)
+ references CCM_CORE.INITS;
+
+ alter table CCM_CORE.LUCENE_DOCUMENTS
+ add constraint FK942kl4yff8rdiwr0pjk2a9g8
+ foreign key (CREATED_BY_PARTY_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.LUCENE_DOCUMENTS
+ add constraint FKc5rs6afx4p9fidabfqsxr5ble
+ foreign key (LAST_MODIFIED_BY)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.LUCENE_INDEXES
+ add constraint FK6gu0yrlviqk07dtb3r02iw43f
+ foreign key (HOST_ID)
+ references CCM_CORE.HOSTS;
+
+ alter table CCM_CORE.MESSAGES
+ add constraint FKph10aehmg9f20pn2w4buki97q
+ foreign key (IN_REPLY_TO_ID)
+ references CCM_CORE.MESSAGES;
+
+ alter table CCM_CORE.MESSAGES
+ add constraint FKjufsx3c3h538fj35h8hgfnb1p
+ foreign key (SENDER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.MESSAGES
+ add constraint FK6w20ao7scwecd9mfwpun2ddqx
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.NOTIFICATIONS
+ add constraint FKqk70c1x1dklhty9ju5t4wukd9
+ foreign key (DIGEST_ID)
+ references CCM_CORE.DIGESTS;
+
+ alter table CCM_CORE.NOTIFICATIONS
+ add constraint FKtt4fjr2p75og79jxxgd8q8mr
+ foreign key (MESSAGE_ID)
+ references CCM_CORE.MESSAGES;
+
+ alter table CCM_CORE.NOTIFICATIONS
+ add constraint FK2vlnma0ox43j0clx8ead08n5s
+ foreign key (RECEIVER_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.NOTIFICATIONS
+ add constraint FKf423hhiaw1bexpxeh1pnas7qt
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.ONE_TIME_AUTH_TOKENS
+ add constraint FKtplfuphkiorfkttaewb4wmfjc
+ foreign key (USER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.PERMISSIONS
+ add constraint FKj9di7pawxgtouxmu2k44bj5c4
+ foreign key (CREATION_USER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.PERMISSIONS
+ add constraint FKikx3x0kn9fito23g50v6xbr9f
+ foreign key (GRANTEE_ID)
+ references CCM_CORE.CCM_ROLES;
+
+ alter table CCM_CORE.PERMISSIONS
+ add constraint FKkamckexjnffnt8lay9nqeawhm
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.PORTALS
+ add constraint FK5a2hdrbw03mmgr74vj5nxlpvk
+ foreign key (OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.PORTLETS
+ add constraint FK9gr5xjt3rx4uhtw7vl6adruol
+ foreign key (PORTAL_ID)
+ references CCM_CORE.PORTALS;
+
+ alter table CCM_CORE.PORTLETS
+ add constraint FKjmx9uebt0gwxkw3xv34niy35f
+ foreign key (OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.QUEUE_ITEMS
+ add constraint FKtgkwfruv9kjdybf46l02da088
+ foreign key (MESSAGE_ID)
+ references CCM_CORE.MESSAGES;
+
+ alter table CCM_CORE.QUEUE_ITEMS
+ add constraint FKs9aq1hyxstwmvx7fmfifp4x7r
+ foreign key (RECEIVER_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.RESOURCE_DESCRIPTIONS
+ add constraint FKk9arvj5u21rv23ce3cav4opqx
+ foreign key (OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.RESOURCE_TITLES
+ add constraint FKto4p6n2wklljyf7tmuxtmyfe0
+ foreign key (OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.RESOURCE_TYPE_DESCRIPTIONS
+ add constraint FKckpihjtv23iahbg3imnpbsr2
+ foreign key (RESOURCE_TYPE_ID)
+ references CCM_CORE.RESOURCE_TYPES;
+
+ alter table CCM_CORE.RESOURCES
+ add constraint FKbo7ibfgodicn9flv2gfo11g5a
+ foreign key (parent_OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.RESOURCES
+ add constraint FK262fbwetpjx3k4uuvw24wsiv
+ foreign key (resourceType_RESOURCE_TYPE_ID)
+ references CCM_CORE.RESOURCE_TYPES;
+
+ alter table CCM_CORE.RESOURCES
+ add constraint FKbjdf8pm4frth8r06ev2qjm88f
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.ROLE_MEMBERSHIPS
+ add constraint FK9m88ywi7rcin7b7jrgh53emrq
+ foreign key (MEMBER_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.ROLE_MEMBERSHIPS
+ add constraint FKcsyogv5m2rgsrmtgnhgkjhfw7
+ foreign key (ROLE_ID)
+ references CCM_CORE.CCM_ROLES;
+
+ alter table CCM_CORE.SETTINGS_ENUM_VALUES
+ add constraint FK8mw4p92s0h3h8bmo8saowu32i
+ foreign key (ENUM_ID)
+ references CCM_CORE.SETTINGS;
+
+ alter table CCM_CORE.SETTINGS_L10N_STR_VALUES
+ add constraint FK5knjq7cisej0qfx5dw1y93rou
+ foreign key (ENTRY_ID)
+ references CCM_CORE.SETTINGS;
+
+ alter table CCM_CORE.SETTINGS_STRING_LIST
+ add constraint FKqeclqa5sf1g53vxs857tpwrus
+ foreign key (LIST_ID)
+ references CCM_CORE.SETTINGS;
+
+ alter table CCM_CORE.TASK_ASSIGNMENTS
+ add constraint FKe29uwmvxdmol1fjob3auej4qv
+ foreign key (ROLE_ID)
+ references CCM_CORE.CCM_ROLES;
+
+ alter table CCM_CORE.TASK_ASSIGNMENTS
+ add constraint FKc1vovbjg9mp5yegx2fdoutx7u
+ foreign key (TASK_ID)
+ references CCM_CORE.WORKFLOW_USER_TASKS;
+
+ alter table CCM_CORE.THREADS
+ add constraint FKsx08mpwvwnw97uwdgjs76q39g
+ foreign key (ROOT_ID)
+ references CCM_CORE.MESSAGES;
+
+ alter table CCM_CORE.THREADS
+ add constraint FKp97b1sy1kop07rtapeh5l9fb2
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.USER_EMAIL_ADDRESSES
+ add constraint FKr900l79erul95seyyccf04ufc
+ foreign key (USER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.USERS
+ add constraint FKosh928q71aonu6l1kurb417r
+ foreign key (PARTY_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.WORKFLOW_DESCRIPTIONS
+ add constraint FKgx7upkqky82dpxvbs95imfl9l
+ foreign key (WORKFLOW_ID)
+ references CCM_CORE.WORKFLOWS;
+
+ alter table CCM_CORE.WORKFLOW_NAMES
+ add constraint FKkxedy9p48avfk45r0bn4uc09i
+ foreign key (WORKFLOW_ID)
+ references CCM_CORE.WORKFLOWS;
+
+ alter table CCM_CORE.WORKFLOW_TASKS
+ add constraint FK1693cbc36e4d8gucg8q7sc57e
+ foreign key (WORKFLOW_ID)
+ references CCM_CORE.WORKFLOWS;
+
+ alter table CCM_CORE.WORKFLOW_USER_TASKS
+ add constraint FKf09depwj5rgso2dair07vnu33
+ foreign key (LOCKING_USER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.WORKFLOW_USER_TASKS
+ add constraint FK6evo9y34awhdfcyl8gv78qb7f
+ foreign key (NOTIFICATION_SENDER)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.WORKFLOW_USER_TASKS
+ add constraint FK_bg60xxg9kerqsxyphbfxulg8y
+ foreign key (WORKFLOW_ID)
+ references CCM_CORE.WORKFLOWS;
\ No newline at end of file
diff --git a/ccm-shortcuts/src/test/resources-wildfly-remote-h2-mem/test-persistence.xml b/ccm-shortcuts/src/test/resources-wildfly-remote-h2-mem/test-persistence.xml
new file mode 100644
index 000000000..310a9ef12
--- /dev/null
+++ b/ccm-shortcuts/src/test/resources-wildfly-remote-h2-mem/test-persistence.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+ org.hibernate.jpa.HibernatePersistenceProvider
+
+ java:/comp/env/jdbc/org/libreccm/ccm-shortcuts/h2-mem
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ccm-shortcuts/src/test/resources-wildfly-remote-pgsql/arquillian.xml b/ccm-shortcuts/src/test/resources-wildfly-remote-pgsql/arquillian.xml
new file mode 100644
index 000000000..3e2edace9
--- /dev/null
+++ b/ccm-shortcuts/src/test/resources-wildfly-remote-pgsql/arquillian.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ target/deployments
+
+
+
+ java:/comp/env/jdbc/org/libreccm/ccm-shortcuts/pgsql
+
+
+
+ NONE
+
+ true
+ target
+
+
+
+ json
+
+ true
+ true
+
+
+
+ scripts/pgsql-cleanup.sql
+
+
+
+
+
diff --git a/ccm-shortcuts/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_shortcuts_schema.sql b/ccm-shortcuts/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_shortcuts_schema.sql
new file mode 100644
index 000000000..a39e1f8b3
--- /dev/null
+++ b/ccm-shortcuts/src/test/resources-wildfly-remote-pgsql/scripts/create_ccm_shortcuts_schema.sql
@@ -0,0 +1,1085 @@
+DROP SCHEMA IF EXISTS ccm_shortcuts CASCADE;
+DROP SCHEMA IF EXISTS ccm_core CASCADE;
+
+DROP SEQUENCE IF EXISTS hibernate_sequence;
+
+CREATE SCHEMA ccm_core;
+CREATE SCHEMA ccm_shortcuts;
+
+ create table CCM_CORE.APPLICATIONS (
+ APPLICATION_TYPE varchar(1024) not null,
+ PRIMARY_URL varchar(1024) not null,
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.ATTACHMENTS (
+ ATTACHMENT_ID int8 not null,
+ ATTACHMENT_DATA oid,
+ DESCRIPTION varchar(255),
+ MIME_TYPE varchar(255),
+ TITLE varchar(255),
+ MESSAGE_ID int8,
+ primary key (ATTACHMENT_ID)
+ );
+
+ create table CCM_CORE.CATEGORIES (
+ ABSTRACT_CATEGORY boolean,
+ CATEGORY_ORDER int8,
+ ENABLED boolean,
+ NAME varchar(255) not null,
+ UNIQUE_ID varchar(255),
+ VISIBLE boolean,
+ OBJECT_ID int8 not null,
+ PARENT_CATEGORY_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.CATEGORIZATIONS (
+ CATEGORIZATION_ID int8 not null,
+ CATEGORY_ORDER int8,
+ CATEGORY_INDEX boolean,
+ OBJECT_ORDER int8,
+ OBJECT_ID int8,
+ CATEGORY_ID int8,
+ primary key (CATEGORIZATION_ID)
+ );
+
+ create table CCM_CORE.CATEGORY_DESCRIPTIONS (
+ OBJECT_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.CATEGORY_DOMAINS (
+ DOMAIN_KEY varchar(255) not null,
+ RELEASED timestamp,
+ URI varchar(1024),
+ VERSION varchar(255),
+ OBJECT_ID int8 not null,
+ ROOT_CATEGORY_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.CATEGORY_TITLES (
+ OBJECT_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.CCM_OBJECTS (
+ OBJECT_ID int8 not null,
+ DISPLAY_NAME varchar(255),
+ UUID varchar(255),
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.CCM_REVISIONS (
+ id int4 not null,
+ timestamp int8 not null,
+ USER_NAME varchar(255),
+ primary key (id)
+ );
+
+ create table CCM_CORE.CCM_ROLES (
+ ROLE_ID int8 not null,
+ NAME varchar(512) not null,
+ primary key (ROLE_ID)
+ );
+
+ create table CCM_CORE.DIGESTS (
+ FREQUENCY int4,
+ HEADER varchar(4096) not null,
+ NEXT_RUN timestamp,
+ DIGEST_SEPARATOR varchar(128) not null,
+ SIGNATURE varchar(4096) not null,
+ SUBJECT varchar(255) not null,
+ OBJECT_ID int8 not null,
+ FROM_PARTY_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.DOMAIN_DESCRIPTIONS (
+ OBJECT_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.DOMAIN_OWNERSHIPS (
+ OWNERSHIP_ID int8 not null,
+ CONTEXT varchar(255),
+ DOMAIN_ORDER int8,
+ OWNER_ORDER int8,
+ domain_OBJECT_ID int8 not null,
+ owner_OBJECT_ID int8 not null,
+ primary key (OWNERSHIP_ID)
+ );
+
+ create table CCM_CORE.DOMAIN_TITLES (
+ OBJECT_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_COMPONENT_DESCRIPTIONS (
+ COMPONENT_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (COMPONENT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_COMPONENTS (
+ ACTIVE boolean,
+ ADMIN_NAME varchar(255),
+ ATTRIBUTE_STRING varchar(255),
+ COMPONENT_ORDER int8,
+ SELECTED boolean,
+ OBJECT_ID int8 not null,
+ parentComponent_OBJECT_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_CONFIRM_EMAIL_LISTENER (
+ BODY text,
+ FROM_EMAIL varchar(255),
+ SUBJECT varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_CONFIRM_REDIRECT_LISTENERS (
+ URL varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_DATA_DRIVEN_SELECTS (
+ MULTIPLE boolean,
+ QUERY varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_DATA_QUERIES (
+ QUERY_ID varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_DATA_QUERY_DESCRIPTIONS (
+ DATA_QUERY_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (DATA_QUERY_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_DATA_QUERY_NAMES (
+ DATA_QUERY_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (DATA_QUERY_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_FORMSECTIONS (
+ FORMSECTION_ACTION varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_LISTENERS (
+ ATTRIBUTE_STRING varchar(255),
+ CLASS_NAME varchar(255),
+ OBJECT_ID int8 not null,
+ widget_OBJECT_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_METAOBJECTS (
+ CLASS_NAME varchar(255),
+ PRETTY_NAME varchar(255),
+ PRETTY_PLURAL varchar(255),
+ PROPERTIES_FORM varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_OBJECT_TYPES (
+ APP_NAME varchar(255),
+ CLASS_NAME varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_OPTION_LABELS (
+ OPTION_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (OPTION_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_OPTIONS (
+ PARAMETER_VALUE varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_PROCESS_LISTENER_DESCRIPTIONS (
+ PROCESS_LISTENER_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (PROCESS_LISTENER_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_PROCESS_LISTENER_NAMES (
+ PROCESS_LISTENER_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (PROCESS_LISTENER_ID, LOCALE)
+ );
+
+ create table CCM_CORE.FORMBUILDER_PROCESS_LISTENERS (
+ LISTENER_CLASS varchar(255),
+ PROCESS_LISTENER_ORDER int8,
+ OBJECT_ID int8 not null,
+ formSection_OBJECT_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_REMOTE_SERVER_POST_LISTENER (
+ REMOTE_URL varchar(2048),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_SIMPLE_EMAIL_LISTENERS (
+ RECIPIENT varchar(255),
+ SUBJECT varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_TEMPLATE_EMAIL_LISTENERS (
+ BODY text,
+ RECIPIENT varchar(255),
+ SUBJECT varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_WIDGET_LABELS (
+ OBJECT_ID int8 not null,
+ widget_OBJECT_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_WIDGETS (
+ DEFAULT_VALUE varchar(255),
+ PARAMETER_MODEL varchar(255),
+ PARAMETER_NAME varchar(255),
+ OBJECT_ID int8 not null,
+ label_OBJECT_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.FORMBUILDER_XML_EMAIL_LISTENERS (
+ RECIPIENT varchar(255),
+ SUBJECT varchar(255),
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.GROUP_MEMBERSHIPS (
+ MEMBERSHIP_ID int8 not null,
+ GROUP_ID int8,
+ MEMBER_ID int8,
+ primary key (MEMBERSHIP_ID)
+ );
+
+ create table CCM_CORE.GROUPS (
+ PARTY_ID int8 not null,
+ primary key (PARTY_ID)
+ );
+
+ create table CCM_CORE.HOSTS (
+ HOST_ID int8 not null,
+ SERVER_NAME varchar(512),
+ SERVER_PORT int8,
+ primary key (HOST_ID)
+ );
+
+ create table CCM_CORE.INITS (
+ INITIALIZER_ID int8 not null,
+ CLASS_NAME varchar(255),
+ REQUIRED_BY_ID int8,
+ primary key (INITIALIZER_ID)
+ );
+
+ create table CCM_CORE.INSTALLED_MODULES (
+ MODULE_ID int4 not null,
+ MODULE_CLASS_NAME varchar(2048),
+ STATUS varchar(255),
+ primary key (MODULE_ID)
+ );
+
+ create table CCM_CORE.LUCENE_DOCUMENTS (
+ DOCUMENT_ID int8 not null,
+ CONTENT text,
+ CONTENT_SECTION varchar(512),
+ COUNTRY varchar(8),
+ CREATED timestamp,
+ DIRTY int8,
+ DOCUMENT_LANGUAGE varchar(8),
+ LAST_MODIFIED timestamp,
+ SUMMARY varchar(4096),
+ DOCUMENT_TIMESTAMP timestamp,
+ TITLE varchar(4096),
+ TYPE varchar(255),
+ TYPE_SPECIFIC_INFO varchar(512),
+ CREATED_BY_PARTY_ID int8,
+ LAST_MODIFIED_BY int8,
+ primary key (DOCUMENT_ID)
+ );
+
+ create table CCM_CORE.LUCENE_INDEXES (
+ INDEX_ID int8 not null,
+ LUCENE_INDEX_ID int8,
+ HOST_ID int8,
+ primary key (INDEX_ID)
+ );
+
+ create table CCM_CORE.MESSAGES (
+ BODY varchar(255),
+ BODY_MIME_TYPE varchar(255),
+ SENT timestamp,
+ SUBJECT varchar(255),
+ OBJECT_ID int8 not null,
+ IN_REPLY_TO_ID int8,
+ SENDER_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.NOTIFICATIONS (
+ EXPAND_GROUP boolean,
+ EXPUNGE boolean,
+ EXPUNGE_MESSAGE boolean,
+ FULFILL_DATE timestamp,
+ HEADER varchar(4096),
+ MAX_RETRIES int8,
+ REQUEST_DATE timestamp,
+ SIGNATURE varchar(4096),
+ STATUS varchar(32),
+ OBJECT_ID int8 not null,
+ DIGEST_ID int8,
+ MESSAGE_ID int8,
+ RECEIVER_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.ONE_TIME_AUTH_TOKENS (
+ TOKEN_ID int8 not null,
+ PURPOSE varchar(255),
+ TOKEN varchar(255),
+ VALID_UNTIL timestamp,
+ USER_ID int8,
+ primary key (TOKEN_ID)
+ );
+
+ create table CCM_CORE.PARTIES (
+ PARTY_ID int8 not null,
+ NAME varchar(256) not null,
+ primary key (PARTY_ID)
+ );
+
+ create table CCM_CORE.PERMISSIONS (
+ PERMISSION_ID int8 not null,
+ CREATION_DATE timestamp,
+ CREATION_IP varchar(255),
+ granted_privilege varchar(255),
+ CREATION_USER_ID int8,
+ GRANTEE_ID int8,
+ OBJECT_ID int8,
+ primary key (PERMISSION_ID)
+ );
+
+ create table CCM_CORE.PORTALS (
+ TEMPLATE boolean,
+ OBJECT_ID int8 not null,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.PORTLETS (
+ CELL_NUMBER int8,
+ SORT_KEY int8,
+ OBJECT_ID int8 not null,
+ PORTAL_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.QUEUE_ITEMS (
+ QUEUE_ITEM_ID int8 not null,
+ HEADER varchar(4096),
+ RECEIVER_ADDRESS varchar(512),
+ RETRY_COUNT int8,
+ SIGNATURE varchar(4096),
+ SUCCESSFUL_SENDED boolean,
+ MESSAGE_ID int8,
+ RECEIVER_ID int8,
+ primary key (QUEUE_ITEM_ID)
+ );
+
+ create table CCM_CORE.RESOURCE_DESCRIPTIONS (
+ OBJECT_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.RESOURCE_TITLES (
+ OBJECT_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (OBJECT_ID, LOCALE)
+ );
+
+ create table CCM_CORE.RESOURCE_TYPE_DESCRIPTIONS (
+ RESOURCE_TYPE_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (RESOURCE_TYPE_ID, LOCALE)
+ );
+
+ create table CCM_CORE.RESOURCE_TYPES (
+ RESOURCE_TYPE_ID int8 not null,
+ SINGLETON boolean,
+ TITLE varchar(254) not null,
+ EMBEDDED_VIEW boolean,
+ FULL_PAGE_VIEW boolean,
+ WORKSPACE_APP boolean,
+ primary key (RESOURCE_TYPE_ID)
+ );
+
+ create table CCM_CORE.RESOURCES (
+ CREATED timestamp,
+ OBJECT_ID int8 not null,
+ parent_OBJECT_ID int8,
+ resourceType_RESOURCE_TYPE_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.ROLE_MEMBERSHIPS (
+ MEMBERSHIP_ID int8 not null,
+ MEMBER_ID int8,
+ ROLE_ID int8,
+ primary key (MEMBERSHIP_ID)
+ );
+
+ create table CCM_CORE.SETTINGS (
+ DTYPE varchar(31) not null,
+ SETTING_ID int8 not null,
+ CONFIGURATION_CLASS varchar(512) not null,
+ NAME varchar(512) not null,
+ SETTING_VALUE_BOOLEAN boolean,
+ SETTING_VALUE_LONG int8,
+ SETTING_VALUE_STRING varchar(1024),
+ SETTING_VALUE_DOUBLE float8,
+ SETTING_VALUE_BIG_DECIMAL numeric(19, 2),
+ primary key (SETTING_ID)
+ );
+
+ create table CCM_CORE.SETTINGS_ENUM_VALUES (
+ ENUM_ID int8 not null,
+ value varchar(255)
+ );
+
+ create table CCM_CORE.SETTINGS_L10N_STR_VALUES (
+ ENTRY_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (ENTRY_ID, LOCALE)
+ );
+
+ create table CCM_CORE.SETTINGS_STRING_LIST (
+ LIST_ID int8 not null,
+ value varchar(255)
+ );
+
+ create table CCM_CORE.TASK_ASSIGNMENTS (
+ TASK_ASSIGNMENT_ID int8 not null,
+ ROLE_ID int8,
+ TASK_ID int8,
+ primary key (TASK_ASSIGNMENT_ID)
+ );
+
+ create table CCM_CORE.THREADS (
+ OBJECT_ID int8 not null,
+ ROOT_ID int8,
+ primary key (OBJECT_ID)
+ );
+
+ create table CCM_CORE.USER_EMAIL_ADDRESSES (
+ USER_ID int8 not null,
+ EMAIL_ADDRESS varchar(512) not null,
+ BOUNCING boolean,
+ VERIFIED boolean
+ );
+
+ create table CCM_CORE.USERS (
+ BANNED boolean,
+ FAMILY_NAME varchar(512),
+ GIVEN_NAME varchar(512),
+ PASSWORD varchar(2048),
+ PASSWORD_RESET_REQUIRED boolean,
+ EMAIL_ADDRESS varchar(512) not null,
+ BOUNCING boolean,
+ VERIFIED boolean,
+ PARTY_ID int8 not null,
+ primary key (PARTY_ID)
+ );
+
+ create table CCM_CORE.WORKFLOW_DESCRIPTIONS (
+ WORKFLOW_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (WORKFLOW_ID, LOCALE)
+ );
+
+ create table CCM_CORE.WORKFLOW_NAMES (
+ WORKFLOW_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (WORKFLOW_ID, LOCALE)
+ );
+
+ create table CCM_CORE.WORKFLOW_TASK_COMMENTS (
+ TASK_ID int8 not null,
+ COMMENT text
+ );
+
+ create table CCM_CORE.WORKFLOW_TASK_DEPENDENCIES (
+ DEPENDS_ON_TASK_ID int8 not null,
+ DEPENDENT_TASK_ID int8 not null
+ );
+
+ create table CCM_CORE.WORKFLOW_TASK_LABELS (
+ TASK_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (TASK_ID, LOCALE)
+ );
+
+ create table CCM_CORE.WORKFLOW_TASKS (
+ TASK_ID int8 not null,
+ ACTIVE boolean,
+ TASK_STATE varchar(512),
+ WORKFLOW_ID int8,
+ primary key (TASK_ID)
+ );
+
+ create table CCM_CORE.WORKFLOW_TASKS_DESCRIPTIONS (
+ TASK_ID int8 not null,
+ LOCALIZED_VALUE text,
+ LOCALE varchar(255) not null,
+ primary key (TASK_ID, LOCALE)
+ );
+
+ create table CCM_CORE.WORKFLOW_USER_TASKS (
+ TASK_ID int8 not null,
+ ACTIVE boolean,
+ TASK_STATE varchar(512),
+ WORKFLOW_ID int8,
+ DUE_DATE timestamp,
+ DURATION_MINUTES int8,
+ LOCKED boolean,
+ START_DATE timestamp,
+ LOCKING_USER_ID int8,
+ NOTIFICATION_SENDER int8,
+ primary key (TASK_ID)
+ );
+
+ create table CCM_CORE.WORKFLOWS (
+ WORKFLOW_ID int8 not null,
+ primary key (WORKFLOW_ID)
+ );
+
+ alter table CCM_CORE.CATEGORY_DOMAINS
+ add constraint UK_mb1riernf8a88u3mwl0bgfj8y unique (DOMAIN_KEY);
+
+ alter table CCM_CORE.CATEGORY_DOMAINS
+ add constraint UK_i1xqotjvml7i6ro2jq22fxf5g unique (URI);
+
+ alter table CCM_CORE.CCM_OBJECTS
+ add constraint UK_1cm71jlagvyvcnkqvxqyit3wx unique (UUID);
+
+ alter table CCM_CORE.HOSTS
+ add constraint UK9ramlv6uxwt13v0wj7q0tucsx unique (SERVER_NAME, SERVER_PORT);
+
+ alter table CCM_CORE.INSTALLED_MODULES
+ add constraint UK_11imwgfojyi4hpr18uw9g3jvx unique (MODULE_CLASS_NAME);
+
+ alter table CCM_CORE.SETTINGS
+ add constraint UK5whinfxdaepqs09e5ia9y71uk unique (CONFIGURATION_CLASS, NAME);
+
+ create table CCM_SHORTCUTS.SHORTCUTS (
+ SHORTCUTS_ID int8 not null,
+ REDIRECT varchar(1024),
+ URL_KEY varchar(1024),
+ primary key (SHORTCUTS_ID)
+ );
+
+ alter table CCM_SHORTCUTS.SHORTCUTS
+ add constraint UK_4otuwtog6qqdbg4e6p8xdpw8h unique (URL_KEY);
+create sequence hibernate_sequence start 1 increment 1;
+
+ alter table CCM_CORE.APPLICATIONS
+ add constraint FKatcp9ij6mbkx0nfeig1o6n3lm
+ foreign key (OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.ATTACHMENTS
+ add constraint FK8ju9hm9baceridp803nislkwb
+ foreign key (MESSAGE_ID)
+ references CCM_CORE.MESSAGES;
+
+ alter table CCM_CORE.CATEGORIES
+ add constraint FKrj3marx99nheur4fqanm0ylur
+ foreign key (PARENT_CATEGORY_ID)
+ references CCM_CORE.CATEGORIES;
+
+ alter table CCM_CORE.CATEGORIES
+ add constraint FKpm291swli2musd0204phta652
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.CATEGORIZATIONS
+ add constraint FKejp0ubk034nfq60v1po6srkke
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.CATEGORIZATIONS
+ add constraint FKoyeipswl876wa6mqwbx0uy83h
+ foreign key (CATEGORY_ID)
+ references CCM_CORE.CATEGORIES;
+
+ alter table CCM_CORE.CATEGORY_DESCRIPTIONS
+ add constraint FKhiwjlmh5vkbu3v3vng1la1qum
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CATEGORIES;
+
+ alter table CCM_CORE.CATEGORY_DOMAINS
+ add constraint FKf25vi73cji01w8fgo6ow1dgg
+ foreign key (ROOT_CATEGORY_ID)
+ references CCM_CORE.CATEGORIES;
+
+ alter table CCM_CORE.CATEGORY_DOMAINS
+ add constraint FK58xpmnvciohkom1c16oua4xha
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.CATEGORY_TITLES
+ add constraint FKka9bt9f5br0kji5bcjxcmf6ch
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CATEGORIES;
+
+ alter table CCM_CORE.DIGESTS
+ add constraint FKc53g09agnye3w1v4euy3e0gsi
+ foreign key (FROM_PARTY_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.DIGESTS
+ add constraint FK845r9ep6xu6nbt1mvxulwybym
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.DOMAIN_DESCRIPTIONS
+ add constraint FKn4i2dxgn8cqysa62dds6eih6a
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CATEGORY_DOMAINS;
+
+ alter table CCM_CORE.DOMAIN_OWNERSHIPS
+ add constraint FK47nsasr7jrdwlky5gx0u6e9py
+ foreign key (domain_OBJECT_ID)
+ references CCM_CORE.CATEGORY_DOMAINS;
+
+ alter table CCM_CORE.DOMAIN_OWNERSHIPS
+ add constraint FK3u4hq6yqau4m419b1xva3xpwq
+ foreign key (owner_OBJECT_ID)
+ references CCM_CORE.APPLICATIONS;
+
+ alter table CCM_CORE.DOMAIN_TITLES
+ add constraint FK5p526dsdwn94els6lp5w0hdn4
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CATEGORY_DOMAINS;
+
+ alter table CCM_CORE.FORMBUILDER_COMPONENT_DESCRIPTIONS
+ add constraint FKfh0k9lj3pf4amfc9bbbss0tr1
+ foreign key (COMPONENT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_COMPONENTS
+ add constraint FKpcpmvyiix023b4g5n4q8nkfca
+ foreign key (parentComponent_OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_COMPONENTS
+ add constraint FKt0e0uv00pp1rwhyaltrytghnm
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_CONFIRM_EMAIL_LISTENER
+ add constraint FK48khrbud3xhi2gvsvnlttd8tg
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_CONFIRM_REDIRECT_LISTENERS
+ add constraint FKbyjjt2ufendvje2obtge2l7et
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_DATA_DRIVEN_SELECTS
+ add constraint FK8oriyta1957u7dvbrqk717944
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_WIDGETS;
+
+ alter table CCM_CORE.FORMBUILDER_DATA_QUERIES
+ add constraint FKhhaxpeddbtmrnjr5o0fopju3a
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_DATA_QUERY_DESCRIPTIONS
+ add constraint FKsmduu1opoiulkeo2gc8v7lsbn
+ foreign key (DATA_QUERY_ID)
+ references CCM_CORE.FORMBUILDER_DATA_QUERIES;
+
+ alter table CCM_CORE.FORMBUILDER_DATA_QUERY_NAMES
+ add constraint FKju1x82inrw3kguyjuxoetn6gn
+ foreign key (DATA_QUERY_ID)
+ references CCM_CORE.FORMBUILDER_DATA_QUERIES;
+
+ alter table CCM_CORE.FORMBUILDER_FORMSECTIONS
+ add constraint FKnfhsgxp4lvigq2pm33pn4afac
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_LISTENERS
+ add constraint FK33ilyirwoux28yowafgd5xx0o
+ foreign key (widget_OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_WIDGETS;
+
+ alter table CCM_CORE.FORMBUILDER_LISTENERS
+ add constraint FKlqm76746nq5yrt8ganm474uu0
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_METAOBJECTS
+ add constraint FKf963v6u9mw8pwjmasrw51w8dx
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_OBJECT_TYPES
+ add constraint FKkv337e83rsecf0h3qy8bu7l9w
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_OPTION_LABELS
+ add constraint FKatlsylsvln6yse55eof6wwkj6
+ foreign key (OPTION_ID)
+ references CCM_CORE.FORMBUILDER_OPTIONS;
+
+ alter table CCM_CORE.FORMBUILDER_OPTIONS
+ add constraint FKhe5q71wby9g4i56sotc501h11
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_PROCESS_LISTENER_DESCRIPTIONS
+ add constraint FKcv3iu04gxjk9c0pn6tl8rqqv3
+ foreign key (PROCESS_LISTENER_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_PROCESS_LISTENER_NAMES
+ add constraint FK8rnyb1m6ij3b9hhmhr7klgd4p
+ foreign key (PROCESS_LISTENER_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_PROCESS_LISTENERS
+ add constraint FK7uiaeax8qafm82e5k729ms5ku
+ foreign key (formSection_OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_FORMSECTIONS;
+
+ alter table CCM_CORE.FORMBUILDER_PROCESS_LISTENERS
+ add constraint FKbdnloo884qk6gn36jwiqv5rlp
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.FORMBUILDER_REMOTE_SERVER_POST_LISTENER
+ add constraint FKpajvu9m6fj1enm67a9gcb5ii9
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_SIMPLE_EMAIL_LISTENERS
+ add constraint FKsn82ktlq0c9ikijyv8k2bfv4f
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_TEMPLATE_EMAIL_LISTENERS
+ add constraint FK8kjyu72btjsuaaqh4bvd8npns
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.FORMBUILDER_WIDGET_LABELS
+ add constraint FKb1q9bfshcrkwlj7r8w5jb4y8l
+ foreign key (widget_OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_WIDGETS;
+
+ alter table CCM_CORE.FORMBUILDER_WIDGET_LABELS
+ add constraint FKm1huo6ghk9l5o8buku9v8y6q7
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_WIDGETS
+ add constraint FKs7qq6vxblhmq0rlf87re65jdp
+ foreign key (label_OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_WIDGET_LABELS;
+
+ alter table CCM_CORE.FORMBUILDER_WIDGETS
+ add constraint FK1wosr4ujbfckdc50u5fgmrhrk
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_COMPONENTS;
+
+ alter table CCM_CORE.FORMBUILDER_XML_EMAIL_LISTENERS
+ add constraint FKjie9co03m7ow4ihig5rk7l8oj
+ foreign key (OBJECT_ID)
+ references CCM_CORE.FORMBUILDER_PROCESS_LISTENERS;
+
+ alter table CCM_CORE.GROUP_MEMBERSHIPS
+ add constraint FKq4qnny8ri3eo7eqh4olxco8nk
+ foreign key (GROUP_ID)
+ references CCM_CORE.GROUPS;
+
+ alter table CCM_CORE.GROUP_MEMBERSHIPS
+ add constraint FKc8u86ivkhvoiw6ju8b2p365he
+ foreign key (MEMBER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.GROUPS
+ add constraint FK4f61mlqxw0ct6s7wwpi9m0735
+ foreign key (PARTY_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.INITS
+ add constraint FK3nvvxk10nmq9nfuko8yklqdgc
+ foreign key (REQUIRED_BY_ID)
+ references CCM_CORE.INITS;
+
+ alter table CCM_CORE.LUCENE_DOCUMENTS
+ add constraint FK942kl4yff8rdiwr0pjk2a9g8
+ foreign key (CREATED_BY_PARTY_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.LUCENE_DOCUMENTS
+ add constraint FKc5rs6afx4p9fidabfqsxr5ble
+ foreign key (LAST_MODIFIED_BY)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.LUCENE_INDEXES
+ add constraint FK6gu0yrlviqk07dtb3r02iw43f
+ foreign key (HOST_ID)
+ references CCM_CORE.HOSTS;
+
+ alter table CCM_CORE.MESSAGES
+ add constraint FKph10aehmg9f20pn2w4buki97q
+ foreign key (IN_REPLY_TO_ID)
+ references CCM_CORE.MESSAGES;
+
+ alter table CCM_CORE.MESSAGES
+ add constraint FKjufsx3c3h538fj35h8hgfnb1p
+ foreign key (SENDER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.MESSAGES
+ add constraint FK6w20ao7scwecd9mfwpun2ddqx
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.NOTIFICATIONS
+ add constraint FKqk70c1x1dklhty9ju5t4wukd9
+ foreign key (DIGEST_ID)
+ references CCM_CORE.DIGESTS;
+
+ alter table CCM_CORE.NOTIFICATIONS
+ add constraint FKtt4fjr2p75og79jxxgd8q8mr
+ foreign key (MESSAGE_ID)
+ references CCM_CORE.MESSAGES;
+
+ alter table CCM_CORE.NOTIFICATIONS
+ add constraint FK2vlnma0ox43j0clx8ead08n5s
+ foreign key (RECEIVER_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.NOTIFICATIONS
+ add constraint FKf423hhiaw1bexpxeh1pnas7qt
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.ONE_TIME_AUTH_TOKENS
+ add constraint FKtplfuphkiorfkttaewb4wmfjc
+ foreign key (USER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.PERMISSIONS
+ add constraint FKj9di7pawxgtouxmu2k44bj5c4
+ foreign key (CREATION_USER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.PERMISSIONS
+ add constraint FKikx3x0kn9fito23g50v6xbr9f
+ foreign key (GRANTEE_ID)
+ references CCM_CORE.CCM_ROLES;
+
+ alter table CCM_CORE.PERMISSIONS
+ add constraint FKkamckexjnffnt8lay9nqeawhm
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.PORTALS
+ add constraint FK5a2hdrbw03mmgr74vj5nxlpvk
+ foreign key (OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.PORTLETS
+ add constraint FK9gr5xjt3rx4uhtw7vl6adruol
+ foreign key (PORTAL_ID)
+ references CCM_CORE.PORTALS;
+
+ alter table CCM_CORE.PORTLETS
+ add constraint FKjmx9uebt0gwxkw3xv34niy35f
+ foreign key (OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.QUEUE_ITEMS
+ add constraint FKtgkwfruv9kjdybf46l02da088
+ foreign key (MESSAGE_ID)
+ references CCM_CORE.MESSAGES;
+
+ alter table CCM_CORE.QUEUE_ITEMS
+ add constraint FKs9aq1hyxstwmvx7fmfifp4x7r
+ foreign key (RECEIVER_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.RESOURCE_DESCRIPTIONS
+ add constraint FKk9arvj5u21rv23ce3cav4opqx
+ foreign key (OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.RESOURCE_TITLES
+ add constraint FKto4p6n2wklljyf7tmuxtmyfe0
+ foreign key (OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.RESOURCE_TYPE_DESCRIPTIONS
+ add constraint FKckpihjtv23iahbg3imnpbsr2
+ foreign key (RESOURCE_TYPE_ID)
+ references CCM_CORE.RESOURCE_TYPES;
+
+ alter table CCM_CORE.RESOURCES
+ add constraint FKbo7ibfgodicn9flv2gfo11g5a
+ foreign key (parent_OBJECT_ID)
+ references CCM_CORE.RESOURCES;
+
+ alter table CCM_CORE.RESOURCES
+ add constraint FK262fbwetpjx3k4uuvw24wsiv
+ foreign key (resourceType_RESOURCE_TYPE_ID)
+ references CCM_CORE.RESOURCE_TYPES;
+
+ alter table CCM_CORE.RESOURCES
+ add constraint FKbjdf8pm4frth8r06ev2qjm88f
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.ROLE_MEMBERSHIPS
+ add constraint FK9m88ywi7rcin7b7jrgh53emrq
+ foreign key (MEMBER_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.ROLE_MEMBERSHIPS
+ add constraint FKcsyogv5m2rgsrmtgnhgkjhfw7
+ foreign key (ROLE_ID)
+ references CCM_CORE.CCM_ROLES;
+
+ alter table CCM_CORE.SETTINGS_ENUM_VALUES
+ add constraint FK8mw4p92s0h3h8bmo8saowu32i
+ foreign key (ENUM_ID)
+ references CCM_CORE.SETTINGS;
+
+ alter table CCM_CORE.SETTINGS_L10N_STR_VALUES
+ add constraint FK5knjq7cisej0qfx5dw1y93rou
+ foreign key (ENTRY_ID)
+ references CCM_CORE.SETTINGS;
+
+ alter table CCM_CORE.SETTINGS_STRING_LIST
+ add constraint FKqeclqa5sf1g53vxs857tpwrus
+ foreign key (LIST_ID)
+ references CCM_CORE.SETTINGS;
+
+ alter table CCM_CORE.TASK_ASSIGNMENTS
+ add constraint FKe29uwmvxdmol1fjob3auej4qv
+ foreign key (ROLE_ID)
+ references CCM_CORE.CCM_ROLES;
+
+ alter table CCM_CORE.TASK_ASSIGNMENTS
+ add constraint FKc1vovbjg9mp5yegx2fdoutx7u
+ foreign key (TASK_ID)
+ references CCM_CORE.WORKFLOW_USER_TASKS;
+
+ alter table CCM_CORE.THREADS
+ add constraint FKsx08mpwvwnw97uwdgjs76q39g
+ foreign key (ROOT_ID)
+ references CCM_CORE.MESSAGES;
+
+ alter table CCM_CORE.THREADS
+ add constraint FKp97b1sy1kop07rtapeh5l9fb2
+ foreign key (OBJECT_ID)
+ references CCM_CORE.CCM_OBJECTS;
+
+ alter table CCM_CORE.USER_EMAIL_ADDRESSES
+ add constraint FKr900l79erul95seyyccf04ufc
+ foreign key (USER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.USERS
+ add constraint FKosh928q71aonu6l1kurb417r
+ foreign key (PARTY_ID)
+ references CCM_CORE.PARTIES;
+
+ alter table CCM_CORE.WORKFLOW_DESCRIPTIONS
+ add constraint FKgx7upkqky82dpxvbs95imfl9l
+ foreign key (WORKFLOW_ID)
+ references CCM_CORE.WORKFLOWS;
+
+ alter table CCM_CORE.WORKFLOW_NAMES
+ add constraint FKkxedy9p48avfk45r0bn4uc09i
+ foreign key (WORKFLOW_ID)
+ references CCM_CORE.WORKFLOWS;
+
+ alter table CCM_CORE.WORKFLOW_TASKS
+ add constraint FK1693cbc36e4d8gucg8q7sc57e
+ foreign key (WORKFLOW_ID)
+ references CCM_CORE.WORKFLOWS;
+
+ alter table CCM_CORE.WORKFLOW_USER_TASKS
+ add constraint FKf09depwj5rgso2dair07vnu33
+ foreign key (LOCKING_USER_ID)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.WORKFLOW_USER_TASKS
+ add constraint FK6evo9y34awhdfcyl8gv78qb7f
+ foreign key (NOTIFICATION_SENDER)
+ references CCM_CORE.USERS;
+
+ alter table CCM_CORE.WORKFLOW_USER_TASKS
+ add constraint FK_bg60xxg9kerqsxyphbfxulg8y
+ foreign key (WORKFLOW_ID)
+ references CCM_CORE.WORKFLOWS;
diff --git a/ccm-shortcuts/src/test/resources-wildfly-remote-pgsql/test-persistence.xml b/ccm-shortcuts/src/test/resources-wildfly-remote-pgsql/test-persistence.xml
new file mode 100644
index 000000000..e1804efcc
--- /dev/null
+++ b/ccm-shortcuts/src/test/resources-wildfly-remote-pgsql/test-persistence.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+ org.hibernate.jpa.HibernatePersistenceProvider
+
+ java:/comp/env/jdbc/org/libreccm/ccm-shortcuts/pgsql
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ccm-shortcuts/src/test/resources/application.xml b/ccm-shortcuts/src/test/resources/application.xml
new file mode 100644
index 000000000..10dae5667
--- /dev/null
+++ b/ccm-shortcuts/src/test/resources/application.xml
@@ -0,0 +1,11 @@
+
+
+ ccm-bundle-shortcuts-test-wildfly
+
+
+ LibreCCM-org.libreccm.shortcuts.ShortcutTest-web.war
+ /libreccm-shortcuts-test
+
+
+ lib
+
diff --git a/ccm-shortcuts/src/test/resources/scripts/h2-cleanup.sql b/ccm-shortcuts/src/test/resources/scripts/h2-cleanup.sql
new file mode 100644
index 000000000..5d987d7f9
--- /dev/null
+++ b/ccm-shortcuts/src/test/resources/scripts/h2-cleanup.sql
@@ -0,0 +1,39 @@
+DELETE FROM ccm_shortcuts.shortcuts;
+
+DELETE FROM ccm_core.settings_string_list;
+
+DELETE FROM ccm_core.settings_l10n_str_values;
+
+DELETE FROM ccm_core.settings_enum_values;
+
+DELETE FROM ccm_core.settings_enum_values;
+
+DELETE FROM ccm_core.settings;
+
+DELETE FROM ccm_core.categorizations;
+
+DELETE FROM ccm_core.category_domains;
+
+DELETE FROM ccm_core.categories;
+
+DELETE FROM ccm_core.permissions;
+
+DELETE FROM ccm_core.ccm_objects;
+
+DELETE FROM ccm_core.role_memberships;
+
+DELETE FROM ccm_core.group_memberships;
+
+DELETE FROM ccm_core.groups;
+
+DELETE FROM ccm_core.one_time_auth_tokens;
+
+DELETE FROM ccm_core.users;
+
+DELETE FROM ccm_core.user_email_addresses;
+
+DELETE FROM ccm_core.parties;
+
+DELETE FROM ccm_core.ccm_roles;
+
+ALTER SEQUENCE hibernate_sequence RESTART WITH 1;
diff --git a/ccm-shortcuts/src/test/resources/scripts/pgsql-cleanup.sql b/ccm-shortcuts/src/test/resources/scripts/pgsql-cleanup.sql
new file mode 100644
index 000000000..e000a8b98
--- /dev/null
+++ b/ccm-shortcuts/src/test/resources/scripts/pgsql-cleanup.sql
@@ -0,0 +1,39 @@
+DELETE FROM ccm_shortcuts.shortcuts;
+
+DELETE FROM ccm_core.settings_string_list;
+
+DELETE FROM ccm_core.settings_l10n_str_values;
+
+DELETE FROM ccm_core.settings_enum_values;
+
+DELETE FROM ccm_core.settings_enum_values;
+
+DELETE FROM ccm_core.settings;
+
+DELETE FROM ccm_core.categorizations;
+
+DELETE FROM ccm_core.category_domains;
+
+DELETE FROM ccm_core.categories;
+
+DELETE FROM ccm_core.permissions;
+
+DELETE FROM ccm_core.ccm_objects;
+
+DELETE FROM ccm_core.role_memberships;
+
+DELETE FROM ccm_core.group_memberships;
+
+DELETE FROM ccm_core.groups;
+
+DELETE FROM ccm_core.one_time_auth_tokens;
+
+DELETE FROM ccm_core.users;
+
+DELETE FROM ccm_core.user_email_addresses;
+
+DELETE FROM ccm_core.parties;
+
+DELETE FROM ccm_core.ccm_roles;
+
+ALTER SEQUENCE hibernate_sequence RESTART;
diff --git a/ccm-shortcuts/src/test/resources/test-web.xml b/ccm-shortcuts/src/test/resources/test-web.xml
new file mode 100644
index 000000000..219ae2cfa
--- /dev/null
+++ b/ccm-shortcuts/src/test/resources/test-web.xml
@@ -0,0 +1,9 @@
+
+
+
+ LibreCCM Shortcuts Test
+