CCM NG: Some cleanup, some files for testing the module system

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3590 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2015-08-26 18:57:22 +00:00
parent 98d1f02f21
commit 0d967f6832
29 changed files with 191 additions and 140 deletions

View File

@ -19,7 +19,6 @@
package org.libreccm.core.modules;
import javax.persistence.EntityManager;
import org.libreccm.modules.ModuleManager;
/**
* This interface is implemented by all CCM module classes. It defines several

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree;
package org.libreccm.core.modules;
import org.apache.maven.artifact.versioning.ComparableVersion;

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree;
package org.libreccm.core.modules;
import static org.hamcrest.Matchers.*;
@ -38,20 +38,17 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.libreccm.modules.ModuleDescriptor;
import org.libreccm.modules.annotations.Module;
import org.libreccm.modules.dependencytree.test.cycle.TestModuleA;
import org.libreccm.modules.dependencytree.test.cycle.TestModuleB;
import org.libreccm.modules.dependencytree.test.cycle.TestModuleC;
import org.libreccm.modules.dependencytree.test.cycle.TestModuleRoot;
import org.libreccm.core.modules.dependencytree.test.cycle.TestModuleA;
import org.libreccm.core.modules.dependencytree.test.cycle.TestModuleB;
import org.libreccm.core.modules.dependencytree.test.cycle.TestModuleC;
import org.libreccm.core.modules.dependencytree.test.cycle.TestModuleRoot;
import org.libreccm.tests.categories.IntegrationTest;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;
/**
*
@ -61,9 +58,7 @@ import javax.inject.Inject;
@RunWith(Arquillian.class)
public class DependencyTreeManagerCycleTest {
@Inject
@Module
private transient Instance<ModuleDescriptor> modules;
private transient ServiceLoader<CcmModule> modules;
public DependencyTreeManagerCycleTest() {
}
@ -78,6 +73,7 @@ public class DependencyTreeManagerCycleTest {
@Before
public void setUp() {
modules = ServiceLoader.load(CcmModule.class);
}
@After
@ -106,11 +102,9 @@ public class DependencyTreeManagerCycleTest {
.getPackage())
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
.getPackage())
.addPackage(
org.libreccm.modules.dependencytree.test.cycle.TestModuleRoot.class
.addPackage(org.libreccm.core.modules.dependencytree.test.cycle.TestModuleRoot.class
.getPackage())
.addClass(org.libreccm.modules.ModuleDescriptor.class)
.addClass(org.libreccm.modules.ModuleUtil.class)
.addPackage(CcmModule.class.getPackage())
.addAsLibraries(libs)
.addAsWebInfResource("test-web.xml", "web.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
@ -119,9 +113,9 @@ public class DependencyTreeManagerCycleTest {
@Test
@SuppressWarnings("unchecked")
public void allModulesInjected() {
final List<Class<ModuleDescriptor>> moduleList = new ArrayList<>();
for (final ModuleDescriptor module : modules) {
moduleList.add((Class<ModuleDescriptor>) module.getClass());
final List<Class<CcmModule>> moduleList = new ArrayList<>();
for (final CcmModule module : modules) {
moduleList.add((Class<CcmModule>) module.getClass());
}
assertThat(moduleList.size(), is(4));

View File

@ -16,12 +16,12 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree;
package org.libreccm.core.modules;
import org.libreccm.modules.dependencytree.test.valid.TestModuleB;
import org.libreccm.modules.dependencytree.test.valid.TestModuleC;
import org.libreccm.modules.dependencytree.test.valid.TestModuleA;
import org.libreccm.modules.dependencytree.test.valid.TestModuleRoot;
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.TestModuleA;
import org.libreccm.core.modules.dependencytree.test.valid.TestModuleRoot;
import static org.hamcrest.Matchers.*;
@ -42,17 +42,13 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.libreccm.modules.ModuleDescriptor;
import org.libreccm.modules.ModuleUtil;
import org.libreccm.modules.annotations.Module;
import org.libreccm.tests.categories.IntegrationTest;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;
/**
*
@ -62,9 +58,7 @@ import javax.inject.Inject;
@RunWith(Arquillian.class)
public class DependencyTreeManagerTest {
@Inject
@Module
private transient Instance<ModuleDescriptor> modules;
private transient ServiceLoader<CcmModule> modules;
public DependencyTreeManagerTest() {
}
@ -79,6 +73,7 @@ public class DependencyTreeManagerTest {
@Before
public void setUp() {
modules = ServiceLoader.load(CcmModule.class);
}
@After
@ -107,11 +102,9 @@ public class DependencyTreeManagerTest {
.getPackage())
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
.getPackage())
.addPackage(
org.libreccm.modules.dependencytree.test.valid.TestModuleRoot.class
.addPackage(org.libreccm.core.modules.dependencytree.test.valid.TestModuleRoot.class
.getPackage())
.addClass(org.libreccm.modules.ModuleDescriptor.class)
.addClass(org.libreccm.modules.ModuleUtil.class)
.addPackage(CcmModule.class.getPackage())
.addAsLibraries(libs)
.addAsWebInfResource("test-web.xml", "web.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
@ -120,9 +113,9 @@ public class DependencyTreeManagerTest {
@Test
@SuppressWarnings("unchecked")
public void allModulesInjected() {
final List<Class<ModuleDescriptor>> moduleList = new ArrayList<>();
for (final ModuleDescriptor module : modules) {
moduleList.add((Class<ModuleDescriptor>) module.getClass());
final List<Class<CcmModule>> moduleList = new ArrayList<>();
for (final CcmModule module : modules) {
moduleList.add((Class<CcmModule>) module.getClass());
}
assertThat(moduleList.size(), is(4));
@ -141,7 +134,7 @@ public class DependencyTreeManagerTest {
final List<String> modulesInOrder = new ArrayList<>();
for (final TreeNode node : ordered) {
modulesInOrder.add(ModuleUtil.getModuleName(node.getModule()));
modulesInOrder.add(node.getModuleInfo().getModuleName());
}
assertThat(modulesInOrder,

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree;
package org.libreccm.core.modules;
import static org.hamcrest.Matchers.*;

View File

@ -16,39 +16,41 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree.test.cycle;
package org.libreccm.core.modules.dependencytree.test.cycle;
import org.libreccm.modules.dependencytree.test.valid.*;
import org.libreccm.modules.ModuleDescriptor;
import org.libreccm.modules.annotations.RequiredModule;
import org.libreccm.core.modules.CcmModule;
import org.libreccm.core.modules.InitEvent;
import org.libreccm.core.modules.InstallEvent;
import org.libreccm.core.modules.Module;
import org.libreccm.core.modules.RequiredModule;
import org.libreccm.core.modules.ShutdownEvent;
import org.libreccm.core.modules.UnInstallEvent;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@org.libreccm.modules.annotations.Module(
name = "org.libreccm.core.ccm-testmodule-a", version = "1.0.0",
requiredModules = {
@RequiredModule(module = TestModuleRoot.class)})
public class TestModuleA implements ModuleDescriptor {
@Module(requiredModules = {
@RequiredModule(module = TestModuleRoot.class)})
public class TestModuleA implements CcmModule {
@Override
public void prepare() {
public void install(final InstallEvent event) {
//Nothing
}
@Override
public void uninstall() {
public void init(final InitEvent event) {
//Nothing
}
@Override
public void init() {
public void shutdown(final ShutdownEvent event) {
//Nothing
}
@Override
public void shutdown() {
public void uninstall(final UnInstallEvent event) {
//Nothing
}

View File

@ -16,38 +16,41 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree.test.valid;
package org.libreccm.core.modules.dependencytree.test.cycle;
import org.libreccm.modules.ModuleDescriptor;
import org.libreccm.modules.annotations.RequiredModule;
import org.libreccm.core.modules.CcmModule;
import org.libreccm.core.modules.InitEvent;
import org.libreccm.core.modules.InstallEvent;
import org.libreccm.core.modules.Module;
import org.libreccm.core.modules.RequiredModule;
import org.libreccm.core.modules.ShutdownEvent;
import org.libreccm.core.modules.UnInstallEvent;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@org.libreccm.modules.annotations.Module(
name = "org.libreccm.core.ccm-testmodule-b", version = "1.0.0",
requiredModules = {
@RequiredModule(module = TestModuleRoot.class, minVersion = "1.0.0")})
public class TestModuleB implements ModuleDescriptor {
@Module(requiredModules = {
@RequiredModule(module = TestModuleRoot.class)})
public class TestModuleB implements CcmModule {
@Override
public void prepare() {
public void install(final InstallEvent event) {
//Nothing
}
@Override
public void uninstall() {
public void init(final InitEvent event) {
//Nothing
}
@Override
public void init() {
public void shutdown(final ShutdownEvent event) {
//Nothing
}
@Override
public void shutdown() {
public void uninstall(final UnInstallEvent event) {
//Nothing
}

View File

@ -16,39 +16,42 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree.test.valid;
package org.libreccm.core.modules.dependencytree.test.cycle;
import org.libreccm.modules.ModuleDescriptor;
import org.libreccm.modules.annotations.RequiredModule;
import org.libreccm.core.modules.CcmModule;
import org.libreccm.core.modules.InitEvent;
import org.libreccm.core.modules.InstallEvent;
import org.libreccm.core.modules.Module;
import org.libreccm.core.modules.RequiredModule;
import org.libreccm.core.modules.ShutdownEvent;
import org.libreccm.core.modules.UnInstallEvent;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@org.libreccm.modules.annotations.Module(
name = "org.libreccm.core.ccm-testmodule-c", version = "1.0.0",
requiredModules = {
@RequiredModule(module = TestModuleRoot.class, minVersion = "1.0.0"),
@RequiredModule(module = TestModuleA.class, minVersion = "1.0.0")})
public class TestModuleC implements ModuleDescriptor {
@Module(requiredModules = {
@RequiredModule(module = TestModuleRoot.class),
@RequiredModule(module = TestModuleA.class)})
public class TestModuleC implements CcmModule {
@Override
public void prepare() {
public void install(final InstallEvent event) {
//Nothing
}
@Override
public void uninstall() {
public void init(final InitEvent event) {
//Nothing
}
@Override
public void init() {
public void shutdown(final ShutdownEvent event) {
//Nothing
}
@Override
public void shutdown() {
public void uninstall(final UnInstallEvent event) {
//Nothing
}

View File

@ -16,39 +16,42 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree.test.cycle;
package org.libreccm.core.modules.dependencytree.test.cycle;
import org.libreccm.modules.ModuleDescriptor;
import org.libreccm.modules.annotations.RequiredModule;
import org.libreccm.core.modules.CcmModule;
import org.libreccm.core.modules.InitEvent;
import org.libreccm.core.modules.InstallEvent;
import org.libreccm.core.modules.Module;
import org.libreccm.core.modules.RequiredModule;
import org.libreccm.core.modules.ShutdownEvent;
import org.libreccm.core.modules.UnInstallEvent;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@org.libreccm.modules.annotations.Module(
name = "org.libreccm.core.ccm-testmodule-root",
version = "1.0.0",
@Module(
requiredModules = {
@RequiredModule(module = TestModuleB.class)})
public class TestModuleRoot implements ModuleDescriptor {
public class TestModuleRoot implements CcmModule {
@Override
public void prepare() {
public void install(final InstallEvent event) {
//Nothing
}
@Override
public void uninstall() {
public void init(final InitEvent event) {
//Nothing
}
@Override
public void init() {
public void shutdown(final ShutdownEvent event) {
//Nothing
}
@Override
public void shutdown() {
public void uninstall(final UnInstallEvent event) {
//Nothing
}

View File

@ -16,38 +16,41 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree.test.valid;
package org.libreccm.core.modules.dependencytree.test.valid;
import org.libreccm.modules.ModuleDescriptor;
import org.libreccm.modules.annotations.RequiredModule;
import org.libreccm.core.modules.CcmModule;
import org.libreccm.core.modules.InitEvent;
import org.libreccm.core.modules.InstallEvent;
import org.libreccm.core.modules.Module;
import org.libreccm.core.modules.RequiredModule;
import org.libreccm.core.modules.ShutdownEvent;
import org.libreccm.core.modules.UnInstallEvent;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@org.libreccm.modules.annotations.Module(
name = "org.libreccm.core.ccm-testmodule-a", version = "1.0.0",
requiredModules = {
@RequiredModule(module = TestModuleRoot.class, minVersion = "1.0.0")})
public class TestModuleA implements ModuleDescriptor {
@Module(requiredModules = {
@RequiredModule(module = TestModuleRoot.class, minVersion = "1.0.0")})
public class TestModuleA implements CcmModule {
@Override
public void prepare() {
public void install(final InstallEvent event) {
//Nothing
}
@Override
public void uninstall() {
public void init(final InitEvent event) {
//Nothing
}
@Override
public void init() {
public void shutdown(final ShutdownEvent event) {
//Nothing
}
@Override
public void shutdown() {
public void uninstall(final UnInstallEvent event) {
//Nothing
}

View File

@ -16,39 +16,41 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree.test.cycle;
package org.libreccm.core.modules.dependencytree.test.valid;
import org.libreccm.modules.dependencytree.test.valid.*;
import org.libreccm.modules.ModuleDescriptor;
import org.libreccm.modules.annotations.RequiredModule;
import org.libreccm.core.modules.CcmModule;
import org.libreccm.core.modules.InitEvent;
import org.libreccm.core.modules.InstallEvent;
import org.libreccm.core.modules.Module;
import org.libreccm.core.modules.RequiredModule;
import org.libreccm.core.modules.ShutdownEvent;
import org.libreccm.core.modules.UnInstallEvent;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@org.libreccm.modules.annotations.Module(
name = "org.libreccm.core.ccm-testmodule-b", version = "1.0.0",
requiredModules = {
@RequiredModule(module = TestModuleRoot.class)})
public class TestModuleB implements ModuleDescriptor {
@Module(requiredModules = {
@RequiredModule(module = TestModuleRoot.class, minVersion = "1.0.0")})
public class TestModuleB implements CcmModule {
@Override
public void prepare() {
public void install(final InstallEvent event) {
//Nothing
}
@Override
public void uninstall() {
public void init(final InitEvent event) {
//Nothing
}
@Override
public void init() {
public void shutdown(final ShutdownEvent event) {
//Nothing
}
@Override
public void shutdown() {
public void uninstall(final UnInstallEvent event) {
//Nothing
}

View File

@ -16,40 +16,42 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree.test.cycle;
package org.libreccm.core.modules.dependencytree.test.valid;
import org.libreccm.modules.dependencytree.test.valid.*;
import org.libreccm.modules.ModuleDescriptor;
import org.libreccm.modules.annotations.RequiredModule;
import org.libreccm.core.modules.CcmModule;
import org.libreccm.core.modules.InitEvent;
import org.libreccm.core.modules.InstallEvent;
import org.libreccm.core.modules.Module;
import org.libreccm.core.modules.RequiredModule;
import org.libreccm.core.modules.ShutdownEvent;
import org.libreccm.core.modules.UnInstallEvent;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@org.libreccm.modules.annotations.Module(
name = "org.libreccm.core.ccm-testmodule-c", version = "1.0.0",
requiredModules = {
@RequiredModule(module = TestModuleRoot.class),
@RequiredModule(module = TestModuleA.class)})
public class TestModuleC implements ModuleDescriptor {
@Module(requiredModules = {
@RequiredModule(module = TestModuleRoot.class, minVersion = "1.0.0"),
@RequiredModule(module = TestModuleA.class, minVersion = "1.0.0")})
public class TestModuleC implements CcmModule {
@Override
public void prepare() {
public void install(final InstallEvent event) {
//Nothing
}
@Override
public void uninstall() {
public void init(final InitEvent event) {
//Nothing
}
@Override
public void init() {
public void shutdown(final ShutdownEvent event) {
//Nothing
}
@Override
public void shutdown() {
public void uninstall(final UnInstallEvent event) {
//Nothing
}

View File

@ -16,36 +16,43 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.modules.dependencytree.test.valid;
package org.libreccm.core.modules.dependencytree.test.valid;
import org.libreccm.core.modules.CcmModule;
import org.libreccm.core.modules.InitEvent;
import org.libreccm.core.modules.InstallEvent;
import org.libreccm.core.modules.Module;
import org.libreccm.core.modules.ShutdownEvent;
import org.libreccm.core.modules.UnInstallEvent;
import org.libreccm.modules.ModuleDescriptor;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
@org.libreccm.modules.annotations.Module(
name = "org.libreccm.core.ccm-testmodule-root", version = "1.0.0")
public class TestModuleRoot implements ModuleDescriptor {
@Module
public class TestModuleRoot implements CcmModule {
@Override
public void prepare() {
public void install(final InstallEvent event) {
//Nothing
}
@Override
public void uninstall() {
public void init(final InitEvent event) {
//Nothing
}
@Override
public void init() {
public void shutdown(final ShutdownEvent event) {
//Nothing
}
@Override
public void shutdown() {
public void uninstall(final UnInstallEvent event) {
//Nothing
}
}

View File

@ -0,0 +1,4 @@
groupId=org.libreccm.core.modules.dependencytree.test.cycle
artifactId=test-module-a
version=1.0.0
build.date=2015-08-26T20:47Z+02:00

View File

@ -0,0 +1,4 @@
groupId=org.libreccm.core.modules.dependencytree.test.cycle
artifactId=test-module-b
version=1.0.0
build.date=2015-08-26T20:47Z+02:00

View File

@ -0,0 +1,4 @@
groupId=org.libreccm.core.modules.dependencytree.test.cycle
artifactId=test-module-c
version=1.0.0
build.date=2015-08-26T20:47Z+02:00

View File

@ -0,0 +1,4 @@
groupId=org.libreccm.core.modules.dependencytree.test.cycle
artifactId=test-module-root
version=1.0.0
build.date=2015-08-26T20:47+02:00

View File

@ -0,0 +1,4 @@
groupId=org.libreccm.core.modules.dependencytree.test.valid
artifactId=test-module-a
version=1.0.0
build.date=2015-08-26T20:47Z+02:00

View File

@ -0,0 +1,4 @@
groupId=org.libreccm.core.modules.dependencytree.test.valid
artifactId=test-module-b
version=1.0.0
build.date=2015-08-26T20:47Z+02:00

View File

@ -0,0 +1,4 @@
groupId=org.libreccm.core.modules.dependencytree.test.valid
artifactId=test-module-c
version=1.0.0
build.date=2015-08-26T20:47Z+02:00

View File

@ -0,0 +1,4 @@
groupId=org.libreccm.core.modules.dependencytree.test.valid
artifactId=test-module-root
version=1.0.0
build.date=2015-08-26T20:47+02:00

View File

@ -0,0 +1 @@
org.libreccm.core.modules.dependencytree.test.cycle.TestModuleA

View File

@ -0,0 +1 @@
org.libreccm.core.modules.dependencytree.test.cycle.TestModuleB

View File

@ -0,0 +1 @@
org.libreccm.core.modules.dependencytree.test.cycle.TestModuleC

View File

@ -0,0 +1 @@
org.libreccm.core.modules.dependencytree.test.cycle.TestModuleRoot

View File

@ -0,0 +1 @@
org.libreccm.core.modules.dependencytree.test.valid.TestModuleA

View File

@ -0,0 +1 @@
org.libreccm.core.modules.dependencytree.test.valid.TestModuleB

View File

@ -0,0 +1 @@
org.libreccm.core.modules.dependencytree.test.valid.TestModuleC

View File

@ -0,0 +1 @@
org.libreccm.core.modules.dependencytree.test.valid.TestModuleRoot