diff --git a/ccm-core/pom.xml b/ccm-core/pom.xml
index 4a301c7ea..051836777 100644
--- a/ccm-core/pom.xml
+++ b/ccm-core/pom.xml
@@ -8,6 +8,8 @@
UTF-8
+ ${maven.build.timestamp}
+ yyyy-MM-dd'T'HH:mm:ss'Z'Z
@@ -164,6 +166,13 @@
-->
+
+
+ src/main/resources
+ true
+
+
+
src/test/resources
diff --git a/ccm-core/src/main/java/org/libreccm/core/CcmCore.java b/ccm-core/src/main/java/org/libreccm/core/CcmCore.java
index b3bc2fd31..67b7c28d9 100644
--- a/ccm-core/src/main/java/org/libreccm/core/CcmCore.java
+++ b/ccm-core/src/main/java/org/libreccm/core/CcmCore.java
@@ -32,8 +32,8 @@ import javax.persistence.EntityManager;
* @author Jens Pelzetter
*/
@Module(entities = {org.libreccm.auditing.CcmRevision.class,
- org.libreccm.categorization.Category.class,
org.libreccm.categorization.Categorization.class,
+ org.libreccm.categorization.Category.class,
org.libreccm.categorization.Domain.class,
org.libreccm.categorization.DomainOwnership.class,
org.libreccm.core.CcmObject.class,
@@ -46,13 +46,47 @@ import javax.persistence.EntityManager;
org.libreccm.core.Role.class,
org.libreccm.core.Subject.class,
org.libreccm.core.User.class,
- org.libreccm.core.modules.InstalledModule.class})
+ org.libreccm.core.modules.InstalledModule.class,
+ org.libreccm.formbuilder.Component.class,
+ org.libreccm.formbuilder.DataDrivenSelect.class,
+ org.libreccm.formbuilder.FormSection.class,
+ org.libreccm.formbuilder.Listener.class,
+ org.libreccm.formbuilder.MetaObject.class,
+ org.libreccm.formbuilder.ObjectType.class,
+ org.libreccm.formbuilder.Option.class,
+ org.libreccm.formbuilder.PersistentDataQuery.class,
+ org.libreccm.formbuilder.ProcessListener.class,
+ org.libreccm.formbuilder.Widget.class,
+ org.libreccm.formbuilder.WidgetLabel.class,
+ org.libreccm.formbuilder.actions.ConfirmEmailListener.class,
+ org.libreccm.formbuilder.actions.ConfirmRedirectListener.class,
+ org.libreccm.formbuilder.actions.RemoteServerPostListener.class,
+ org.libreccm.formbuilder.actions.SimpleEmailListener.class,
+ org.libreccm.formbuilder.actions.TemplateEmailListener.class,
+ org.libreccm.formbuilder.actions.XmlEmailListener.class,
+ org.libreccm.messaging.Attachment.class,
+ org.libreccm.messaging.Message.class,
+ org.libreccm.messaging.MessageThread.class,
+ org.libreccm.notification.Digest.class,
+ org.libreccm.notification.Notification.class,
+ org.libreccm.notification.QueueItem.class,
+ org.libreccm.portal.Portal.class,
+ org.libreccm.portal.Portlet.class,
+ org.libreccm.runtime.Initalizer.class,
+ org.libreccm.search.lucene.Document.class,
+ org.libreccm.search.lucene.Index.class,
+ org.libreccm.web.Application.class,
+ org.libreccm.web.ApplicationType.class,
+ org.libreccm.web.Host.class,
+ org.libreccm.workflow.Task.class,
+ org.libreccm.workflow.UserTask.class,
+ org.libreccm.workflow.Workflow.class})
public class CcmCore implements CcmModule {
@Override
public void install(final InstallEvent event) {
final EntityManager entityManager = event.getEntityManager();
-
+
final User user = new User();
user.setScreenName("public-user");
final PersonName name = new PersonName();
@@ -62,7 +96,7 @@ public class CcmCore implements CcmModule {
final EmailAddress email = new EmailAddress();
email.setAddress("public-user@localhost");
user.addEmailAddress(email);
-
+
entityManager.persist(user);
}
diff --git a/ccm-core/src/main/java/org/libreccm/core/modules/CcmIntegrator.java b/ccm-core/src/main/java/org/libreccm/core/modules/CcmIntegrator.java
index 933d78402..24b515748 100644
--- a/ccm-core/src/main/java/org/libreccm/core/modules/CcmIntegrator.java
+++ b/ccm-core/src/main/java/org/libreccm/core/modules/CcmIntegrator.java
@@ -150,9 +150,9 @@ public class CcmIntegrator implements Integrator {
if (newModule) {
final Statement statement = connection.createStatement();
statement.execute(String.format(
- "INSERT INTO flyhydra_core.installed_modules "
+ "INSERT INTO ccm_core.installed_modules "
+ "(module_id, module_class_name, status) "
- + "VALUES (%d, %s', 'NEW')",
+ + "VALUES (%d, '%s', 'NEW')",
module.getName().hashCode(),
module.getName()));
}
@@ -187,7 +187,7 @@ public class CcmIntegrator implements Integrator {
final Statement query = connection.createStatement();
final ResultSet result = query.executeQuery(
String.format("SELECT module_class_name, status "
- + "FROM flyhydra_core.installed_modules "
+ + "FROM ccm_core.installed_modules "
+ "WHERE module_class_name = '%s'",
module.getClass().getName()));
System.out.printf("Checking status of module %s...\n",
@@ -208,7 +208,7 @@ public class CcmIntegrator implements Integrator {
final Statement statement = connection.createStatement();
statement.addBatch(String.format(
- "DELETE FROM flyhydra_core.installed_modules "
+ "DELETE FROM ccm_core.installed_modules "
+ "WHERE module_class_name = '%s'",
module.getClass().getName()));
statement.executeBatch();
diff --git a/ccm-core/src/main/java/org/libreccm/core/modules/ModuleInfo.java b/ccm-core/src/main/java/org/libreccm/core/modules/ModuleInfo.java
index 2e020aaa2..e868576e7 100644
--- a/ccm-core/src/main/java/org/libreccm/core/modules/ModuleInfo.java
+++ b/ccm-core/src/main/java/org/libreccm/core/modules/ModuleInfo.java
@@ -265,8 +265,7 @@ public class ModuleInfo {
return String.format("%s/%s",
moduleInfo.getProperty(GROUP_ID),
moduleInfo.
- getProperty(ARTIFACT_ID).replace(
- "-", "_"));
+ getProperty(ARTIFACT_ID));
} else {
LOGGER.warn("The module data package was specified by the module "
+ "annotation nore was an group id found in the module info"
diff --git a/ccm-core/src/main/java/org/libreccm/core/modules/ModuleManager.java b/ccm-core/src/main/java/org/libreccm/core/modules/ModuleManager.java
index 98a6f461e..c7e79ceee 100644
--- a/ccm-core/src/main/java/org/libreccm/core/modules/ModuleManager.java
+++ b/ccm-core/src/main/java/org/libreccm/core/modules/ModuleManager.java
@@ -39,10 +39,10 @@ import org.apache.logging.log4j.Logger;
public class ModuleManager {
private static final Logger LOGGER = LogManager.getLogger(
- ModuleManager.class
+ ModuleManager.class
);
- @PersistenceContext(name = "FlyHydra")
+ @PersistenceContext(name = "LibreCCM")
private EntityManager entityManager;
private List moduleNodes;
@@ -51,7 +51,7 @@ public class ModuleManager {
public void initDependencyTree() {
LOGGER.info("Finding modules");
final ServiceLoader modules = ServiceLoader.load(
- CcmModule.class);
+ CcmModule.class);
LOGGER.info("Creating dependency tree these modules:");
for (final CcmModule module : modules) {
@@ -83,9 +83,10 @@ public class ModuleManager {
installEvent.setEntityManager(entityManager);
final InstalledModule installedModule = entityManager.find(
- InstalledModule.class, node.getModule().getClass().getName());
+ InstalledModule.class,
+ node.getModule().getClass().getName().hashCode());
if (installedModule != null
- && installedModule.getStatus() == ModuleStatus.NEW) {
+ && installedModule.getStatus() == ModuleStatus.NEW) {
node.getModule().install(installEvent);
installedModule.setStatus(ModuleStatus.INSTALLED);
entityManager.merge(installedModule);
@@ -99,8 +100,8 @@ public class ModuleManager {
node.getModule().getClass().getName());
final Properties moduleInfo = getModuleInfo(node.getModule());
LOGGER
- .info("Module group id: {}", moduleInfo.getProperty(
- "groupId"));
+ .info("Module group id: {}", moduleInfo.getProperty(
+ "groupId"));
LOGGER.info("Module artifact id: {}", moduleInfo.getProperty(
"artifactId"));
LOGGER.info("Module version: {}", moduleInfo.getProperty("version"));
@@ -117,11 +118,11 @@ public class ModuleManager {
// final String moduleInfoPath = String.format("/%s/module-info.properties",
// module.getClass().getName().replace(".", "/"));
final String moduleInfoPath = String.format(
- "/module-info/%s.properties",
- module.getClass().getName());
+ "/module-info/%s.properties",
+ module.getClass().getName());
LOGGER.info("Path for module info: {}", moduleInfoPath);
final InputStream stream = module.getClass().getResourceAsStream(
- moduleInfoPath);
+ moduleInfoPath);
if (stream == null) {
LOGGER.warn("No module info found.");
} else {
@@ -154,8 +155,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());
+ InstalledModule.class, node.
+ getModule().getClass().getName());
LOGGER.info("Status of module {} ({}): {}",
node.getModuleInfo().getModuleName(),
node.getModule().getClass().getName(),
@@ -172,16 +173,16 @@ public class ModuleManager {
node.getModuleInfo().getModuleName());
if (node.getDependentModules().isEmpty()) {
System.out.
- printf("Calling uninstall method of module %s...\n",
- node.getModuleInfo().getModuleName());
+ printf("Calling uninstall method of module %s...\n",
+ node.getModuleInfo().getModuleName());
final UnInstallEvent unInstallEvent = new UnInstallEvent();
unInstallEvent.setEntityManager(entityManager);
node.getModule().uninstall(null);
} else {
System.out.printf("There are other modules depending on "
- + "module %s. Module can't be "
- + "uninstalled. Depending modules:\n",
+ + "module %s. Module can't be "
+ + "uninstalled. Depending modules:\n",
node.getModuleInfo().getModuleName());
for (final TreeNode dependent : node.getDependentModules()) {
System.out.printf("\t%s\n",
@@ -193,9 +194,10 @@ public class ModuleManager {
}
} else {
System.out.printf(
- "Module %s is *not* scheduled for uninstall.\n",
- node.getModuleInfo().getModuleName());
+ "Module %s is *not* scheduled for uninstall.\n",
+ node.getModuleInfo().getModuleName());
}
}
}
+
}
diff --git a/ccm-core/src/main/resources/META-INF/persistence.xml b/ccm-core/src/main/resources/META-INF/persistence.off.xml
similarity index 100%
rename from ccm-core/src/main/resources/META-INF/persistence.xml
rename to ccm-core/src/main/resources/META-INF/persistence.off.xml
diff --git a/ccm-core/src/main/resources/db/migrations/org/libreccm/core/CcmCore/pgsql/V1_0_0_0_create_tables.sql b/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm-core/pgsql/V1_0_0_0__create_tables.sql
similarity index 99%
rename from ccm-core/src/main/resources/db/migrations/org/libreccm/core/CcmCore/pgsql/V1_0_0_0_create_tables.sql
rename to ccm-core/src/main/resources/db/migrations/org/libreccm/ccm-core/pgsql/V1_0_0_0__create_tables.sql
index ebc482ec2..6fbe19f70 100644
--- a/ccm-core/src/main/resources/db/migrations/org/libreccm/core/CcmCore/pgsql/V1_0_0_0_create_tables.sql
+++ b/ccm-core/src/main/resources/db/migrations/org/libreccm/ccm-core/pgsql/V1_0_0_0__create_tables.sql
@@ -1,6 +1,4 @@
- create schema ccm_core;
-
create table ccm_core.application_types (
resource_type_id int8 not null,
container_group_id int8,
diff --git a/ccm-test-bundle/src/main/resources/META-INF/persistence.xml b/ccm-test-bundle/src/main/resources/META-INF/persistence.xml
new file mode 100644
index 000000000..6ac5a6cc8
--- /dev/null
+++ b/ccm-test-bundle/src/main/resources/META-INF/persistence.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+ org.hibernate.jpa.HibernatePersistenceProvider
+
+ java:/comp/env/jdbc/ccm-core/db
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ccm-test-bundle/src/main/webapp/WEB-INF/persistence.xml b/ccm-test-bundle/src/main/webapp/WEB-INF/persistence.xml
new file mode 100644
index 000000000..6ac5a6cc8
--- /dev/null
+++ b/ccm-test-bundle/src/main/webapp/WEB-INF/persistence.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+ org.hibernate.jpa.HibernatePersistenceProvider
+
+ java:/comp/env/jdbc/ccm-core/db
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ccm-test-bundle/src/test/java/org/libreccm/CcmModulesTest.java b/ccm-test-bundle/src/test/java/org/libreccm/CcmModulesTest.java
index e790d4397..be1cc038e 100644
--- a/ccm-test-bundle/src/test/java/org/libreccm/CcmModulesTest.java
+++ b/ccm-test-bundle/src/test/java/org/libreccm/CcmModulesTest.java
@@ -25,6 +25,7 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
+
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.sql.DataSource;
@@ -33,6 +34,7 @@ import static org.hamcrest.CoreMatchers.*;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.persistence.CleanupUsingScript;
import org.jboss.arquillian.persistence.CreateSchema;
import org.jboss.arquillian.persistence.PersistenceTest;
import org.jboss.arquillian.transaction.api.annotation.TransactionMode;
@@ -64,7 +66,7 @@ import org.libreccm.tests.categories.IntegrationTest;
@RunWith(Arquillian.class)
@PersistenceTest
@Transactional(TransactionMode.COMMIT)
-@CreateSchema({"clean_schema.sql"})
+//@CreateSchema({"clean_schema.sql"})
public class CcmModulesTest {
@PersistenceContext(name = "LibreCCM")
@@ -93,10 +95,10 @@ public class CcmModulesTest {
@Deployment
public static WebArchive createDeployment() {
final PomEquippedResolveStage pom = Maven
- .resolver()
- .loadPomFromFile("pom.xml");
+ .resolver()
+ .loadPomFromFile("pom.xml");
final PomEquippedResolveStage dependencies = pom
- .importCompileAndRuntimeDependencies();
+ .importCompileAndRuntimeDependencies();
final File[] libs = dependencies.resolve().withTransitivity().asFile();
for (File lib : libs) {
@@ -105,15 +107,18 @@ public class CcmModulesTest {
}
return ShrinkWrap
- .create(WebArchive.class,
- "LibreCCM-org.libreccm.CcmModulesTest.war")
- .addAsLibraries(libs)
- .setWebXML(new File("src/main/webapp/WEB-INF/web.xml"))
- .addAsWebInfResource("test-persistence.xml")
- .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
+ .create(WebArchive.class,
+ "LibreCCM-org.libreccm.CcmModulesTest.war")
+ .addAsLibraries(libs)
+ .addPackage(IntegrationTest.class.getPackage())
+ .setWebXML(new File("src/main/webapp/WEB-INF/web.xml"))
+ //.addAsWebInfResource("test-persistence.xml", "persistence.xml")
+ .addAsResource("test-persistence.xml", "META-INF/persistence.xml")
+ .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
}
@Test
+ @CleanupUsingScript("clean_schema.sql")
public void verifyModules() throws SQLException {
final Object dataSourceObj = entityManager.getEntityManagerFactory()
.getProperties().get("javax.persistence.jtaDataSource");
diff --git a/ccm-test-bundle/src/test/resources-wildfly8-remote-pgsql/scripts/clean_schema.sql b/ccm-test-bundle/src/test/resources-wildfly8-remote-pgsql/scripts/clean_schema.sql
index 08ee8967d..a780fe35e 100644
--- a/ccm-test-bundle/src/test/resources-wildfly8-remote-pgsql/scripts/clean_schema.sql
+++ b/ccm-test-bundle/src/test/resources-wildfly8-remote-pgsql/scripts/clean_schema.sql
@@ -1,6 +1,6 @@
-- Used by the org.libreccm.core.modules.CcmModulesTest to clean up the
--- schema before the test
+-- schema after the test
-DROP SCHEMA IF EXISTS ccm_core;
+DROP SCHEMA IF EXISTS ccm_core CASCADE;
DROP SEQUENCE IF EXISTS hibernate_sequence;
\ No newline at end of file