diff --git a/ccm-bundle-devel-wildfly-web/src/main/webapp/WEB-INF/web.xml b/ccm-bundle-devel-wildfly-web/src/main/webapp/WEB-INF/web.xml index 4390f3b4e..fcb05ca5c 100644 --- a/ccm-bundle-devel-wildfly-web/src/main/webapp/WEB-INF/web.xml +++ b/ccm-bundle-devel-wildfly-web/src/main/webapp/WEB-INF/web.xml @@ -21,10 +21,6 @@ ShiroFilter /* - diff --git a/ccm-bundle-devel-wildfly-web/src/site/apt/index.apt b/ccm-bundle-devel-wildfly-web/src/site/apt/index.apt new file mode 100644 index 000000000..494ab2cc9 --- /dev/null +++ b/ccm-bundle-devel-wildfly-web/src/site/apt/index.apt @@ -0,0 +1,12 @@ + -------------- + Overview + -------------- + Jens Pelzetter + -------------- + 2016-03-18 + -------------- + +LibreCCM Bundle Web for Wildfly + + This module provides the web application part of the the LibreCCM devel + bundle for the Wildfly application server. diff --git a/ccm-bundle-devel-wildfly-web/src/site/site.xml b/ccm-bundle-devel-wildfly-web/src/site/site.xml new file mode 100644 index 000000000..c18a2230c --- /dev/null +++ b/ccm-bundle-devel-wildfly-web/src/site/site.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + diff --git a/ccm-bundle-devel-wildfly/src/site/apt/index.apt b/ccm-bundle-devel-wildfly/src/site/apt/index.apt new file mode 100644 index 000000000..53e0853d3 --- /dev/null +++ b/ccm-bundle-devel-wildfly/src/site/apt/index.apt @@ -0,0 +1,13 @@ + -------------- + Overview + -------------- + Jens Pelzetter + -------------- + 2016-03-18 + -------------- + +LibreCCM Bundle for Wildfly + + This module provides the LibreCCM devel bundle for the Wildfly application + server. + diff --git a/ccm-bundle-devel-wildfly/src/site/site.xml b/ccm-bundle-devel-wildfly/src/site/site.xml new file mode 100644 index 000000000..c862aebae --- /dev/null +++ b/ccm-bundle-devel-wildfly/src/site/site.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + diff --git a/ccm-core/pom.xml b/ccm-core/pom.xml index b6f157ccd..219629e18 100644 --- a/ccm-core/pom.xml +++ b/ccm-core/pom.xml @@ -284,7 +284,7 @@ report - + @@ -1005,6 +1005,10 @@ arquillian-jacoco 1.0.0.Alpha8 + + net.sf.saxon + Saxon-HE + diff --git a/ccm-core/src/main/java/com/arsdigita/xml/CCMTransformerFactory.java b/ccm-core/src/main/java/com/arsdigita/xml/CCMTransformerFactory.java index 766d66615..64cdb9cb2 100644 --- a/ccm-core/src/main/java/com/arsdigita/xml/CCMTransformerFactory.java +++ b/ccm-core/src/main/java/com/arsdigita/xml/CCMTransformerFactory.java @@ -50,7 +50,7 @@ public class CCMTransformerFactory extends TransformerFactory { super(); //Get an XMLConfig instance - final XmlConfig config = XmlConfig.getConfig(); + final XmlConfig config = retrieveXmlConfig(); //Get the classname final String classname = config.getXslTransformerFactoryClassname(); LOGGER.warn(String.format("XSL Transformer Factory classname is %s", @@ -69,6 +69,18 @@ public class CCMTransformerFactory extends TransformerFactory { } else { factory = TransformerFactory.newInstance(classname, null); } + + } + + private XmlConfig retrieveXmlConfig() { + try { + return XmlConfig.getConfig(); + } catch (IllegalStateException ex) { + LOGGER.warn( + "Failed to access registry (CDI container not available?).", + ex); + return new XmlConfig(); + } } @Override diff --git a/ccm-core/src/main/java/org/libreccm/categorization/CategoryRepository.java b/ccm-core/src/main/java/org/libreccm/categorization/CategoryRepository.java index 42a32ebd4..750303c0f 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/CategoryRepository.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/CategoryRepository.java @@ -24,10 +24,10 @@ import org.libreccm.core.AbstractEntityRepository; import java.util.List; import java.util.Optional; +import java.util.UUID; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; -import javax.persistence.NoResultException; import javax.persistence.TypedQuery; /** @@ -53,6 +53,11 @@ public class CategoryRepository extends AbstractEntityRepository return entity.getObjectId() == 0; } + @Override + public void initNewEntity(final Category category) { + category.setUuid(UUID.randomUUID().toString()); + } + /** * Retrieves a list of all top level categories (Categories without a parent * category). diff --git a/ccm-core/src/main/java/org/libreccm/cdi/utils/CdiUtil.java b/ccm-core/src/main/java/org/libreccm/cdi/utils/CdiUtil.java index a1a101c05..a256e6a68 100644 --- a/ccm-core/src/main/java/org/libreccm/cdi/utils/CdiUtil.java +++ b/ccm-core/src/main/java/org/libreccm/cdi/utils/CdiUtil.java @@ -54,8 +54,6 @@ public class CdiUtil { } catch(NamingException ex) { throw new IllegalStateException("Unable to lookup BeanManager.", ex); } - - } @SuppressWarnings("unchecked") diff --git a/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java b/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java index 60f43467b..b33859086 100644 --- a/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java +++ b/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java @@ -29,7 +29,6 @@ import java.util.Optional; import javax.inject.Inject; import javax.persistence.EntityGraph; import javax.persistence.EntityManager; -import javax.persistence.Query; import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; @@ -277,12 +276,24 @@ public abstract class AbstractEntityRepository { */ public void save(final E entity) { if (isNew(entity)) { + initNewEntity(entity); entityManager.persist(entity); } else { entityManager.merge(entity); } } + /** + * Overwrite this method to initialise new entities with default values. + * One example is assigning a (random) UUID to new entity which implements + * the {@link Identifiable} interface. + * + * @param entity The entity to init. + */ + public void initNewEntity(final E entity) { + //Empty default implementation + } + /** * Deletes an entity from the database. * diff --git a/ccm-core/src/main/java/org/libreccm/core/CcmObjectRepository.java b/ccm-core/src/main/java/org/libreccm/core/CcmObjectRepository.java index dad566a2c..745ff2cc9 100644 --- a/ccm-core/src/main/java/org/libreccm/core/CcmObjectRepository.java +++ b/ccm-core/src/main/java/org/libreccm/core/CcmObjectRepository.java @@ -23,6 +23,8 @@ package org.libreccm.core; import static org.libreccm.core.CoreConstants.*; +import java.util.UUID; + import javax.enterprise.context.RequestScoped; /** @@ -52,6 +54,9 @@ public class CcmObjectRepository extends AbstractEntityRepositoryJens Pelzetter */ -class ModuleEvent { +public class ModuleEvent { private EntityManager entityManager; diff --git a/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java b/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java index 84d16cb60..ff22fda38 100644 --- a/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/categorization/CategoryManagerTest.java @@ -201,7 +201,7 @@ public class CategoryManagerTest { @ShouldMatchDataSet( value = "datasets/org/libreccm/categorization/" + "CategoryManagerTest/after-add-subcategory.yml", - excludeColumns = {"object_id"}) + excludeColumns = {"object_id", "uuid"}) @InSequence(2100) public void addSubCategoryToCategory() { final Category category = new Category(); @@ -242,7 +242,8 @@ public class CategoryManagerTest { "datasets/org/libreccm/categorization/CategoryManagerTest/data.yml") @ShouldMatchDataSet( value = "datasets/org/libreccm/categorization/CategoryManagerTest/" - + "after-create-multiple-categories.yml") + + "after-create-multiple-categories.yml", + excludeColumns = {"object_id", "uuid"}) @InSequence(3100) public void createMultipleCategories() { final Domain domain = domainRepo.findByDomainKey("test"); diff --git a/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java b/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java index 657fc53a6..0c68a2f13 100644 --- a/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java +++ b/ccm-core/src/test/java/org/libreccm/configuration/ConfigurationManagerTest.java @@ -202,8 +202,9 @@ public class ConfigurationManagerTest { @UsingDataSet( "datasets/org/libreccm/configuration/ConfigurationManagerTest/data.yml") @ShouldMatchDataSet( - "datasets/org/libreccm/configuration/ConfigurationManagerTest/" - + "after-save-new.yml") + value = "datasets/org/libreccm/configuration/" + + "ConfigurationManagerTest/after-save-new.yml", + excludeColumns = {"object_id", "uuid"}) @InSequence(2200) public void saveNewConfiguration() { configurationManager.saveConfiguration(new TestConfiguration()); 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 290acc341..49a38ec2c 100644 --- a/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java +++ b/ccm-core/src/test/java/org/libreccm/core/CcmObjectRepositoryTest.java @@ -18,7 +18,6 @@ */ package org.libreccm.core; -import static org.libreccm.core.CoreConstants.*; import static org.hamcrest.CoreMatchers.*; @@ -255,7 +254,7 @@ public class CcmObjectRepositoryTest { "datasets/org/libreccm/core/CcmObjectRepositoryTest/data.yml") @ShouldMatchDataSet(value = "datasets/org/libreccm/core/CcmObjectRepositoryTest/after-save-new.yml", - excludeColumns = {"object_id"}) + excludeColumns = {"object_id", "uuid"}) @InSequence(300) public void saveNewCcmObject() { final CcmObject obj = new CcmObject(); diff --git a/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java b/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java index 98cc3a682..0c03c2fa6 100644 --- a/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java +++ b/ccm-core/src/test/java/org/libreccm/security/ShiroTest.java @@ -115,6 +115,12 @@ public class ShiroTest { .addPackage(org.libreccm.jpa.utils.MimeTypeConverter.class .getPackage()) .addPackage(org.libreccm.l10n.LocalizedString.class.getPackage()) + .addClass(org.libreccm.modules.CcmModule.class) + .addClass(org.libreccm.modules.ModuleEvent.class) + .addClass(org.libreccm.modules.InitEvent.class) + .addClass(org.libreccm.modules.InstallEvent.class) + .addClass(org.libreccm.modules.UnInstallEvent.class) + .addClass(org.libreccm.modules.ShutdownEvent.class) .addPackage(org.libreccm.security.User.class.getPackage()) .addPackage(org.libreccm.tests.categories.IntegrationTest.class .getPackage()) @@ -124,6 +130,7 @@ public class ShiroTest { .addPackage(com.arsdigita.kernel.KernelConfig.class.getPackage()) .addPackage(com.arsdigita.kernel.security.SecurityConfig.class .getPackage()) + .addClass(org.libreccm.security.authorization.LabBean.class) .addAsLibraries(libs) .addAsResource("test-persistence.xml", "META-INF/persistence.xml") diff --git a/ccm-core/src/test/resources/test-web.xml b/ccm-core/src/test/resources/test-web.xml index e0d5ce427..d2e2a0773 100644 --- a/ccm-core/src/test/resources/test-web.xml +++ b/ccm-core/src/test/resources/test-web.xml @@ -7,4 +7,17 @@ CcmCoreTest + + ShiroFilter + org.apache.shiro.web.servlet.ShiroFilter + + + + ShiroFilter + /* + + + + org.apache.shiro.web.env.EnvironmentLoaderListener + diff --git a/ccm-theme-foundry/pom.xml b/ccm-theme-foundry/pom.xml index 18802b804..80239e518 100644 --- a/ccm-theme-foundry/pom.xml +++ b/ccm-theme-foundry/pom.xml @@ -20,6 +20,7 @@ org.libreccm ccm-theme-foundry + 7.0.0-SNAPSHOT LibreCCM Foundry Theming Engine diff --git a/pom.xml b/pom.xml index a45ce0c0e..807ec83c7 100644 --- a/pom.xml +++ b/pom.xml @@ -134,7 +134,7 @@ org.apache.maven.plugins maven-site-plugin - 3.4 + 3.5 org.apache.maven.plugins diff --git a/src/site/site.xml b/src/site/site.xml index f0833a747..f00406138 100644 --- a/src/site/site.xml +++ b/src/site/site.xml @@ -34,7 +34,7 @@ org.apache.maven.skins maven-fluido-skin - 1.4 + 1.5