CCM NG:
ccm-core: - Moved package for module system from org.libreccm.core.modules to org.libreccm.modules ccm-docrepo - Fixed wrong import for java.sql.Date, should be java.util.Date - Added a placeholder persistence.xml to avoid error in the ddl generator git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3611 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
75ceb5e2ce
commit
e001c43351
|
|
@ -18,12 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core;
|
package org.libreccm.core;
|
||||||
|
|
||||||
import org.libreccm.core.modules.CcmModule;
|
import org.libreccm.modules.CcmModule;
|
||||||
import org.libreccm.core.modules.InitEvent;
|
import org.libreccm.modules.InitEvent;
|
||||||
import org.libreccm.core.modules.InstallEvent;
|
import org.libreccm.modules.InstallEvent;
|
||||||
import org.libreccm.core.modules.Module;
|
import org.libreccm.modules.Module;
|
||||||
import org.libreccm.core.modules.ShutdownEvent;
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
import org.libreccm.core.modules.UnInstallEvent;
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
|
|
||||||
|
|
@ -46,7 +46,7 @@ import javax.persistence.EntityManager;
|
||||||
org.libreccm.core.Role.class,
|
org.libreccm.core.Role.class,
|
||||||
org.libreccm.core.Subject.class,
|
org.libreccm.core.Subject.class,
|
||||||
org.libreccm.core.User.class,
|
org.libreccm.core.User.class,
|
||||||
org.libreccm.core.modules.InstalledModule.class,
|
org.libreccm.modules.InstalledModule.class,
|
||||||
org.libreccm.formbuilder.Component.class,
|
org.libreccm.formbuilder.Component.class,
|
||||||
org.libreccm.formbuilder.DataDrivenSelect.class,
|
org.libreccm.formbuilder.DataDrivenSelect.class,
|
||||||
org.libreccm.formbuilder.FormSection.class,
|
org.libreccm.formbuilder.FormSection.class,
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
|
|
||||||
|
|
@ -16,15 +16,16 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.servlet.ServletContextEvent;
|
import javax.servlet.ServletContextEvent;
|
||||||
import javax.servlet.ServletContextListener;
|
import javax.servlet.ServletContextListener;
|
||||||
import javax.servlet.annotation.WebListener;
|
import javax.servlet.annotation.WebListener;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.libreccm.core.modules.ModuleManager;
|
import org.libreccm.modules.ModuleManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enumeration describing the status of a module.
|
* Enumeration describing the status of a module.
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -19,9 +19,7 @@
|
||||||
-->
|
-->
|
||||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||||
|
|
||||||
<jta-data-source>
|
<jta-data-source>java:/comp/env/jdbc/ccm-core/db</jta-data-source>
|
||||||
java:/comp/env/jdbc/ccm-core/db
|
|
||||||
</jta-data-source>
|
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<!-- Properties for Hibernate -->
|
<!-- Properties for Hibernate -->
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
org.libreccm.core.modules.CcmIntegrator
|
org.libreccm.modules.CcmIntegrator
|
||||||
|
|
@ -1,216 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2015 LibreCCM Foundation.
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 2.1 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this library; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
||||||
* MA 02110-1301 USA
|
|
||||||
*/
|
|
||||||
package org.libreccm.core.modules;
|
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.*;
|
|
||||||
|
|
||||||
import org.jboss.arquillian.container.test.api.Deployment;
|
|
||||||
import org.jboss.arquillian.junit.Arquillian;
|
|
||||||
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.WebArchive;
|
|
||||||
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
|
|
||||||
import org.jboss.shrinkwrap.resolver.api.maven.PomEquippedResolveStage;
|
|
||||||
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.core.CcmCore;
|
|
||||||
import org.libreccm.tests.categories.IntegrationTest;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
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;
|
|
||||||
import org.jboss.arquillian.persistence.CreateSchema;
|
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
|
||||||
*/
|
|
||||||
//@Category(IntegrationTest.class)
|
|
||||||
@RunWith(Arquillian.class)
|
|
||||||
@PersistenceTest
|
|
||||||
@Transactional(TransactionMode.COMMIT)
|
|
||||||
@CreateSchema({"clearup_schema.sql"})
|
|
||||||
public class CcmModulesTest {
|
|
||||||
|
|
||||||
@PersistenceContext(name = "LibreCCM")
|
|
||||||
private transient EntityManager entityManager;
|
|
||||||
|
|
||||||
public CcmModulesTest() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void setUpClass() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@AfterClass
|
|
||||||
public static void tearDownClass() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setUp() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void tearDown() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deployment
|
|
||||||
public static WebArchive createDeployment() {
|
|
||||||
final PomEquippedResolveStage pom = Maven
|
|
||||||
.resolver()
|
|
||||||
.loadPomFromFile("pom.xml");
|
|
||||||
final PomEquippedResolveStage dependencies = pom
|
|
||||||
.importCompileAndRuntimeDependencies();
|
|
||||||
final File[] libs = dependencies.resolve().withTransitivity().asFile();
|
|
||||||
|
|
||||||
for (File lib : libs) {
|
|
||||||
System.err.printf("Adding file '%s' to test archive...%n",
|
|
||||||
lib.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
return ShrinkWrap
|
|
||||||
.create(WebArchive.class,
|
|
||||||
"LibreCCM-org.libreccm.core.modules.CcmModulesTest.war")
|
|
||||||
.addPackage(org.libreccm.auditing.CcmRevision.class.getPackage()).
|
|
||||||
addPackage(org.libreccm.categorization.Category.class.
|
|
||||||
getPackage())
|
|
||||||
.addPackage(org.libreccm.cdi.utils.CdiUtil.class.getPackage())
|
|
||||||
.addPackage(org.libreccm.core.CcmCore.class.getPackage())
|
|
||||||
.addPackage(org.libreccm.core.authentication.LoginManager.class.
|
|
||||||
getPackage())
|
|
||||||
.addPackage(org.libreccm.core.modules.CcmModule.class.
|
|
||||||
getPackage())
|
|
||||||
.addPackage(org.libreccm.formbuilder.Component.class.
|
|
||||||
getPackage())
|
|
||||||
.addPackage(
|
|
||||||
org.libreccm.formbuilder.actions.ConfirmEmailListener.class.
|
|
||||||
getPackage())
|
|
||||||
.addPackage(org.libreccm.jpa.EntityManagerProducer.class.
|
|
||||||
getPackage())
|
|
||||||
.addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class
|
|
||||||
.getPackage())
|
|
||||||
.addPackage(org.libreccm.l10n.LocalizedString.class.getPackage()).
|
|
||||||
addPackage(org.libreccm.messaging.Message.class.getPackage())
|
|
||||||
.addPackage(org.libreccm.notification.Notification.class.
|
|
||||||
getPackage())
|
|
||||||
.addPackage(org.libreccm.portal.Portal.class.getPackage())
|
|
||||||
.addPackage(org.libreccm.runtime.Initalizer.class.getPackage())
|
|
||||||
.addPackage(org.libreccm.search.lucene.Document.class.
|
|
||||||
getPackage())
|
|
||||||
.addPackage(org.libreccm.web.Application.class.getPackage())
|
|
||||||
.addPackage(org.libreccm.workflow.Workflow.class.getPackage())
|
|
||||||
.addPackage(org.libreccm.testutils.EqualsVerifier.class.
|
|
||||||
getPackage())
|
|
||||||
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
|
|
||||||
.getPackage())
|
|
||||||
.addAsLibraries(libs)
|
|
||||||
.addAsResource("test-persistence.xml",
|
|
||||||
"META-INF/persistence.xml")
|
|
||||||
.addAsWebInfResource("test-web.xml", "web.xml")
|
|
||||||
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
|
|
||||||
.addAsResource(
|
|
||||||
"META-INF/services/org.hibernate.integrator.spi.Integrator").
|
|
||||||
addAsResource(
|
|
||||||
"META-INF/services/org.libreccm.core.modules.CcmModule")
|
|
||||||
.addAsResource(
|
|
||||||
"module-info/org.libreccm.core.CcmCore.properties")
|
|
||||||
.addAsResource("db")
|
|
||||||
.addAsResource("ccm-core.config");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void verifyModules() throws SQLException {
|
|
||||||
final Object dataSourceObj = entityManager.getEntityManagerFactory()
|
|
||||||
.getProperties().get("javax.persistence.jtaDataSource");
|
|
||||||
|
|
||||||
assertThat(dataSourceObj, is(instanceOf(DataSource.class)));
|
|
||||||
|
|
||||||
final DataSource dataSource = (DataSource) dataSourceObj;
|
|
||||||
final Connection connection = dataSource.getConnection();
|
|
||||||
|
|
||||||
assertThat(connection, is(instanceOf(Connection.class)));
|
|
||||||
|
|
||||||
final ResultSet ccmObjectTable = connection.getMetaData()
|
|
||||||
.getTables(null, "ccm_core", "ccm_objects", null);
|
|
||||||
if (!ccmObjectTable.next()) {
|
|
||||||
fail("No metadata for table ccm_core.ccm_objects returned. "
|
|
||||||
+ "Table does not exist?");
|
|
||||||
}
|
|
||||||
|
|
||||||
final ResultSet installedModulesTable = connection.getMetaData()
|
|
||||||
.getTables(null, "ccm_core", "installed_modules", null);
|
|
||||||
if (!installedModulesTable.next()) {
|
|
||||||
fail("No metadata for table ccm_core.installed_modules returned. "
|
|
||||||
+ "Table does not exist?");
|
|
||||||
}
|
|
||||||
|
|
||||||
final Statement statement = connection.createStatement();
|
|
||||||
final ResultSet installedModules = statement.executeQuery(
|
|
||||||
"SELECT module_id, module_class_name, status "
|
|
||||||
+ "FROM ccm_core.installed_modules"
|
|
||||||
+ " ORDER BY module_class_name");
|
|
||||||
final List<String[]> modulesList = new ArrayList<>();
|
|
||||||
while (installedModules.next()) {
|
|
||||||
createInstalledModuleListEntry(installedModules, modulesList);
|
|
||||||
}
|
|
||||||
|
|
||||||
assertThat(modulesList.size(), is(1));
|
|
||||||
|
|
||||||
assertThat(modulesList.get(0)[0],
|
|
||||||
is(equalTo(Integer.toString(CcmCore.class.getName().
|
|
||||||
hashCode()))));
|
|
||||||
assertThat(modulesList.get(0)[1],
|
|
||||||
is(equalTo(CcmCore.class.getName())));
|
|
||||||
assertThat(modulesList.get(0)[2],
|
|
||||||
is(equalTo(ModuleStatus.INSTALLED.toString())));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createInstalledModuleListEntry(
|
|
||||||
final ResultSet resultSet, final List<String[]> modulesList)
|
|
||||||
throws SQLException {
|
|
||||||
|
|
||||||
final String[] moduleData = new String[3];
|
|
||||||
moduleData[0] = Integer.toString(resultSet.getInt("module_id"));
|
|
||||||
moduleData[1] = resultSet.getString("module_class_name");
|
|
||||||
moduleData[2] = resultSet.getString("status");
|
|
||||||
|
|
||||||
modulesList.add(moduleData);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules.dependencytree.test.cycle;
|
package org.libreccm.core.modules.dependencytree.test.cycle;
|
||||||
|
|
||||||
import org.libreccm.core.modules.CcmModule;
|
import org.libreccm.modules.CcmModule;
|
||||||
import org.libreccm.core.modules.InitEvent;
|
import org.libreccm.modules.InitEvent;
|
||||||
import org.libreccm.core.modules.InstallEvent;
|
import org.libreccm.modules.InstallEvent;
|
||||||
import org.libreccm.core.modules.Module;
|
import org.libreccm.modules.Module;
|
||||||
import org.libreccm.core.modules.RequiredModule;
|
import org.libreccm.modules.RequiredModule;
|
||||||
import org.libreccm.core.modules.ShutdownEvent;
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
import org.libreccm.core.modules.UnInstallEvent;
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules.dependencytree.test.cycle;
|
package org.libreccm.core.modules.dependencytree.test.cycle;
|
||||||
|
|
||||||
import org.libreccm.core.modules.CcmModule;
|
import org.libreccm.modules.CcmModule;
|
||||||
import org.libreccm.core.modules.InitEvent;
|
import org.libreccm.modules.InitEvent;
|
||||||
import org.libreccm.core.modules.InstallEvent;
|
import org.libreccm.modules.InstallEvent;
|
||||||
import org.libreccm.core.modules.Module;
|
import org.libreccm.modules.Module;
|
||||||
import org.libreccm.core.modules.RequiredModule;
|
import org.libreccm.modules.RequiredModule;
|
||||||
import org.libreccm.core.modules.ShutdownEvent;
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
import org.libreccm.core.modules.UnInstallEvent;
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules.dependencytree.test.cycle;
|
package org.libreccm.core.modules.dependencytree.test.cycle;
|
||||||
|
|
||||||
import org.libreccm.core.modules.CcmModule;
|
import org.libreccm.modules.CcmModule;
|
||||||
import org.libreccm.core.modules.InitEvent;
|
import org.libreccm.modules.InitEvent;
|
||||||
import org.libreccm.core.modules.InstallEvent;
|
import org.libreccm.modules.InstallEvent;
|
||||||
import org.libreccm.core.modules.Module;
|
import org.libreccm.modules.Module;
|
||||||
import org.libreccm.core.modules.RequiredModule;
|
import org.libreccm.modules.RequiredModule;
|
||||||
import org.libreccm.core.modules.ShutdownEvent;
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
import org.libreccm.core.modules.UnInstallEvent;
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules.dependencytree.test.cycle;
|
package org.libreccm.core.modules.dependencytree.test.cycle;
|
||||||
|
|
||||||
import org.libreccm.core.modules.CcmModule;
|
import org.libreccm.modules.CcmModule;
|
||||||
import org.libreccm.core.modules.InitEvent;
|
import org.libreccm.modules.InitEvent;
|
||||||
import org.libreccm.core.modules.InstallEvent;
|
import org.libreccm.modules.InstallEvent;
|
||||||
import org.libreccm.core.modules.Module;
|
import org.libreccm.modules.Module;
|
||||||
import org.libreccm.core.modules.RequiredModule;
|
import org.libreccm.modules.RequiredModule;
|
||||||
import org.libreccm.core.modules.ShutdownEvent;
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
import org.libreccm.core.modules.UnInstallEvent;
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules.dependencytree.test.valid;
|
package org.libreccm.core.modules.dependencytree.test.valid;
|
||||||
|
|
||||||
import org.libreccm.core.modules.CcmModule;
|
import org.libreccm.modules.CcmModule;
|
||||||
import org.libreccm.core.modules.InitEvent;
|
import org.libreccm.modules.InitEvent;
|
||||||
import org.libreccm.core.modules.InstallEvent;
|
import org.libreccm.modules.InstallEvent;
|
||||||
import org.libreccm.core.modules.Module;
|
import org.libreccm.modules.Module;
|
||||||
import org.libreccm.core.modules.RequiredModule;
|
import org.libreccm.modules.RequiredModule;
|
||||||
import org.libreccm.core.modules.ShutdownEvent;
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
import org.libreccm.core.modules.UnInstallEvent;
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules.dependencytree.test.valid;
|
package org.libreccm.core.modules.dependencytree.test.valid;
|
||||||
|
|
||||||
import org.libreccm.core.modules.CcmModule;
|
import org.libreccm.modules.CcmModule;
|
||||||
import org.libreccm.core.modules.InitEvent;
|
import org.libreccm.modules.InitEvent;
|
||||||
import org.libreccm.core.modules.InstallEvent;
|
import org.libreccm.modules.InstallEvent;
|
||||||
import org.libreccm.core.modules.Module;
|
import org.libreccm.modules.Module;
|
||||||
import org.libreccm.core.modules.RequiredModule;
|
import org.libreccm.modules.RequiredModule;
|
||||||
import org.libreccm.core.modules.ShutdownEvent;
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
import org.libreccm.core.modules.UnInstallEvent;
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules.dependencytree.test.valid;
|
package org.libreccm.core.modules.dependencytree.test.valid;
|
||||||
|
|
||||||
import org.libreccm.core.modules.CcmModule;
|
import org.libreccm.modules.CcmModule;
|
||||||
import org.libreccm.core.modules.InitEvent;
|
import org.libreccm.modules.InitEvent;
|
||||||
import org.libreccm.core.modules.InstallEvent;
|
import org.libreccm.modules.InstallEvent;
|
||||||
import org.libreccm.core.modules.Module;
|
import org.libreccm.modules.Module;
|
||||||
import org.libreccm.core.modules.RequiredModule;
|
import org.libreccm.modules.RequiredModule;
|
||||||
import org.libreccm.core.modules.ShutdownEvent;
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
import org.libreccm.core.modules.UnInstallEvent;
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -18,12 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules.dependencytree.test.valid;
|
package org.libreccm.core.modules.dependencytree.test.valid;
|
||||||
|
|
||||||
import org.libreccm.core.modules.CcmModule;
|
import org.libreccm.modules.CcmModule;
|
||||||
import org.libreccm.core.modules.InitEvent;
|
import org.libreccm.modules.InitEvent;
|
||||||
import org.libreccm.core.modules.InstallEvent;
|
import org.libreccm.modules.InstallEvent;
|
||||||
import org.libreccm.core.modules.Module;
|
import org.libreccm.modules.Module;
|
||||||
import org.libreccm.core.modules.ShutdownEvent;
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
import org.libreccm.core.modules.UnInstallEvent;
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
import org.apache.maven.artifact.versioning.ComparableVersion;
|
import org.apache.maven.artifact.versioning.ComparableVersion;
|
||||||
|
|
||||||
|
|
@ -16,7 +16,21 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
|
import org.libreccm.modules.CcmModule;
|
||||||
|
import org.libreccm.modules.Module;
|
||||||
|
import org.libreccm.modules.ModuleStatus;
|
||||||
|
import org.libreccm.modules.TreeNode;
|
||||||
|
import org.libreccm.modules.DependencyException;
|
||||||
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
import org.libreccm.modules.InitEvent;
|
||||||
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
|
import org.libreccm.modules.ModuleInfo;
|
||||||
|
import org.libreccm.modules.IntegrationException;
|
||||||
|
import org.libreccm.modules.InstallEvent;
|
||||||
|
import org.libreccm.modules.RequiredModule;
|
||||||
|
import org.libreccm.modules.DependencyTreeManager;
|
||||||
|
|
||||||
import static org.hamcrest.Matchers.*;
|
import static org.hamcrest.Matchers.*;
|
||||||
|
|
||||||
|
|
@ -16,8 +16,21 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
|
import org.libreccm.modules.CcmModule;
|
||||||
|
import org.libreccm.modules.Module;
|
||||||
|
import org.libreccm.modules.ModuleStatus;
|
||||||
|
import org.libreccm.modules.TreeNode;
|
||||||
|
import org.libreccm.modules.DependencyException;
|
||||||
|
import org.libreccm.modules.UnInstallEvent;
|
||||||
|
import org.libreccm.modules.InitEvent;
|
||||||
|
import org.libreccm.modules.ShutdownEvent;
|
||||||
|
import org.libreccm.modules.ModuleInfo;
|
||||||
|
import org.libreccm.modules.IntegrationException;
|
||||||
|
import org.libreccm.modules.InstallEvent;
|
||||||
|
import org.libreccm.modules.RequiredModule;
|
||||||
|
import org.libreccm.modules.DependencyTreeManager;
|
||||||
import org.libreccm.core.modules.dependencytree.test.valid.TestModuleB;
|
import org.libreccm.core.modules.dependencytree.test.valid.TestModuleB;
|
||||||
import org.libreccm.core.modules.dependencytree.test.valid.TestModuleC;
|
import org.libreccm.core.modules.dependencytree.test.valid.TestModuleC;
|
||||||
import org.libreccm.core.modules.dependencytree.test.valid.TestModuleA;
|
import org.libreccm.core.modules.dependencytree.test.valid.TestModuleA;
|
||||||
|
|
@ -16,7 +16,9 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
* MA 02110-1301 USA
|
* MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
package org.libreccm.core.modules;
|
package org.libreccm.modules;
|
||||||
|
|
||||||
|
import org.libreccm.modules.DependencyTreeManager;
|
||||||
|
|
||||||
import static org.hamcrest.Matchers.*;
|
import static org.hamcrest.Matchers.*;
|
||||||
|
|
||||||
|
|
@ -192,6 +192,7 @@
|
||||||
<packages>
|
<packages>
|
||||||
<param>org.libreccm</param>
|
<param>org.libreccm</param>
|
||||||
</packages>
|
</packages>
|
||||||
|
<persistenceXml>src/main/resources/persistence-build.xml</persistenceXml>
|
||||||
<useEnvers>true</useEnvers>
|
<useEnvers>true</useEnvers>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,14 @@ package org.libreccm.docrepo;
|
||||||
import org.hibernate.validator.constraints.NotBlank;
|
import org.hibernate.validator.constraints.NotBlank;
|
||||||
import org.libreccm.core.CcmObject;
|
import org.libreccm.core.CcmObject;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import javax.persistence.Temporal;
|
import javax.persistence.Temporal;
|
||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
import java.sql.Date;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
author: Jens Pelzetter
|
||||||
|
-->
|
||||||
|
|
||||||
|
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
|
||||||
|
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
|
||||||
|
version="2.1">
|
||||||
|
|
||||||
|
<persistence-unit name="LibreCCM" transaction-type="JTA">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Enforce JPA provider
|
||||||
|
Not really necessary here because we don't use any Hibernate
|
||||||
|
specific features, but makes it easier to manage to database
|
||||||
|
creation scripts.
|
||||||
|
-->
|
||||||
|
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||||
|
|
||||||
|
<jta-data-source>java:/comp/env/jdbc/ccm-core/db</jta-data-source>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<!-- Properties for Hibernate -->
|
||||||
|
<property name="hibernate.hbm2ddl.auto" value="verify"/>
|
||||||
|
<property name="hibernate.connection.autocommit" value="false" />
|
||||||
|
<property name="hibernate.id.new_generator_mappings" value="true"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Properties for Hibernate Envers
|
||||||
|
We are using the ValidityAuditStrategy here because it is faster
|
||||||
|
when querying data than the DefaultStrategy
|
||||||
|
-->
|
||||||
|
<property name="org.hibernate.envers.audit_strategy"
|
||||||
|
value="org.hibernate.envers.strategy.ValidityAuditStrategy"/>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
</persistence-unit>
|
||||||
|
|
||||||
|
</persistence>
|
||||||
|
|
@ -45,8 +45,6 @@ import org.jboss.shrinkwrap.api.spec.WebArchive;
|
||||||
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
|
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
|
||||||
import org.jboss.shrinkwrap.resolver.api.maven.MavenResolvedArtifact;
|
import org.jboss.shrinkwrap.resolver.api.maven.MavenResolvedArtifact;
|
||||||
import org.jboss.shrinkwrap.resolver.api.maven.PomEquippedResolveStage;
|
import org.jboss.shrinkwrap.resolver.api.maven.PomEquippedResolveStage;
|
||||||
import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenCoordinates;
|
|
||||||
import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenDependencyExclusion;
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
|
|
||||||
|
|
@ -59,7 +57,7 @@ import org.junit.experimental.categories.Category;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.libreccm.core.CcmCore;
|
import org.libreccm.core.CcmCore;
|
||||||
import org.libreccm.core.User;
|
import org.libreccm.core.User;
|
||||||
import org.libreccm.core.modules.ModuleStatus;
|
import org.libreccm.modules.ModuleStatus;
|
||||||
import org.libreccm.tests.categories.IntegrationTest;
|
import org.libreccm.tests.categories.IntegrationTest;
|
||||||
|
|
||||||
import javax.persistence.TypedQuery;
|
import javax.persistence.TypedQuery;
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,11 @@ How JPA is used in LibreCCM
|
||||||
Usually we customise the table name to use underscores instead of camel case
|
Usually we customise the table name to use underscores instead of camel case
|
||||||
in the database. Also we usually customise the names of columns the use
|
in the database. Also we usually customise the names of columns the use
|
||||||
underscores.
|
underscores.
|
||||||
|
|
||||||
<<Important: To ensure compatibility with the supported
|
<<Important: To ensure compatibility with the supported
|
||||||
databases (H2, PostgresSQL and Oracle for now) use only uppercase letters
|
databases (H2, PostgresSQL and Oracle for now) use only uppercase letters
|
||||||
for database objects like schemas, tables and columns.>>
|
for database objects like schemas, tables and columns.>>
|
||||||
|
|
||||||
For examples look at the various examples in the code.
|
For examples look at the various examples in the code.
|
||||||
|
|
||||||
Each entity may be accompanied by one or two helper classes. There should
|
Each entity may be accompanied by one or two helper classes. There should
|
||||||
|
|
|
||||||
|
|
@ -8,4 +8,9 @@
|
||||||
|
|
||||||
The module system of LibreCCM
|
The module system of LibreCCM
|
||||||
|
|
||||||
Lorem ipsum
|
The functionality of LibreCCM is organised in modules which can bundled to
|
||||||
|
serve specific needs. The bundling is done by special modules which packaged
|
||||||
|
as WAR files. A module itself is packaged as JAR file.
|
||||||
|
|
||||||
|
The module system provides several features like automatic database
|
||||||
|
migrations.
|
||||||
Loading…
Reference in New Issue