modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java
| 4
modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/StandardServerPluginService.java
| 74 ++++++++++
2 files changed, 77 insertions(+), 1 deletion(-)
New commits:
commit ce289f2f7798a1f1244aef73c56a5572206ce63a
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Mar 4 15:24:01 2011 +0100
execute the DatabaseAndFilePluginDeploymentTest only after all the tests from
plugin.metadata group have been executed, so that the rhq_plugin table is cleaned up.
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java
index 3dc168a..75ed400 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/core/plugin/DatabaseAndFilePluginDeploymentTest.java
@@ -41,7 +41,9 @@ import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
-@Test
+//make sure we run this after the plugins.metadata tests are done so that
+//the db contents don't interfere
+@Test(dependsOnGroups = "plugins.metadata")
public class DatabaseAndFilePluginDeploymentTest extends AbstractEJB3Test {
private static final String PLUGIN_NAME = "DeployTest"; // as defined in
our test descriptors
commit 71803539f68d9ea97680f325aec38391645fce96
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Fri Mar 4 15:22:58 2011 +0100
ok, now the ResourceFactoryManagerTest *really* works.. ;)
diff --git
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/StandardServerPluginService.java
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/StandardServerPluginService.java
index a5ac8df..d17981c 100644
---
a/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/StandardServerPluginService.java
+++
b/modules/enterprise/server/jar/src/test/java/org/rhq/enterprise/server/test/StandardServerPluginService.java
@@ -19,7 +19,25 @@
package org.rhq.enterprise.server.test;
+import java.io.File;
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.rhq.enterprise.server.plugin.pc.AbstractTypeServerPluginContainer;
+import org.rhq.enterprise.server.plugin.pc.MasterServerPluginContainer;
+import org.rhq.enterprise.server.plugin.pc.MasterServerPluginContainerConfiguration;
import org.rhq.enterprise.server.plugin.pc.ServerPluginService;
+import org.rhq.enterprise.server.plugin.pc.alert.AlertServerPluginContainer;
+import org.rhq.enterprise.server.plugin.pc.bundle.BundleServerPluginContainer;
+import org.rhq.enterprise.server.plugin.pc.content.ContentServerPluginContainer;
+import org.rhq.enterprise.server.plugin.pc.content.PackageTypeServerPluginContainer;
+import org.rhq.enterprise.server.plugin.pc.entitlement.EntitlementServerPluginContainer;
+import org.rhq.enterprise.server.plugin.pc.generic.GenericServerPluginContainer;
+import org.rhq.enterprise.server.plugin.pc.perspective.PerspectiveServerPluginContainer;
/**
* An MBean to use as a ServerPluginService for tests that actually don't care
@@ -30,4 +48,60 @@ import org.rhq.enterprise.server.plugin.pc.ServerPluginService;
*/
public class StandardServerPluginService extends ServerPluginService implements
StandardServerPluginServiceMBean {
+ private static final Log LOG = LogFactory.getLog(StandardServerPluginService.class);
+
+ public static class TestMasterServerPluginContainer extends
MasterServerPluginContainer {
+ private List<AbstractTypeServerPluginContainer> serverPluginContainers =
new ArrayList<AbstractTypeServerPluginContainer>();
+
+ public TestMasterServerPluginContainer(
+ List<Class<? extends AbstractTypeServerPluginContainer>>
pluginContainerClasses) {
+
+ for (Class<? extends AbstractTypeServerPluginContainer> cls :
pluginContainerClasses) {
+ try {
+ Constructor<? extends AbstractTypeServerPluginContainer> ctor =
cls
+ .getConstructor(MasterServerPluginContainer.class);
+ AbstractTypeServerPluginContainer container =
ctor.newInstance(this);
+ serverPluginContainers.add(container);
+ } catch (Exception e) {
+ LOG.error("Failed to instantiate server plugin container class:
" + cls.getName(), e);
+ }
+ }
+ }
+
+ @Override
+ protected List<AbstractTypeServerPluginContainer> createPluginContainers()
{
+ return serverPluginContainers;
+ }
+ }
+
+ // public so tests can directly set these
+ public TestMasterServerPluginContainer master;
+ public MasterServerPluginContainerConfiguration masterConfig;
+
+ /**
+ * This list contains all the standard server plugin container classes by default.
+ * Modify it before the master plugin container is started, if you don't want
+ * some of these deployed or if you want to supply a custom one tailored for your
test.
+ */
+ public List<Class<? extends AbstractTypeServerPluginContainer>>
pluginContainerClasses;
+
+ public StandardServerPluginService() {
+ File dir = new File(System.getProperty("java.io.tmpdir"),
"test-server-plugins");
+ this.masterConfig = new MasterServerPluginContainerConfiguration(dir, dir, dir,
null);
+ pluginContainerClasses = new ArrayList<Class<? extends
AbstractTypeServerPluginContainer>>();
+ pluginContainerClasses.add(AlertServerPluginContainer.class);
+ pluginContainerClasses.add(BundleServerPluginContainer.class);
+ pluginContainerClasses.add(ContentServerPluginContainer.class);
+ pluginContainerClasses.add(EntitlementServerPluginContainer.class);
+ pluginContainerClasses.add(GenericServerPluginContainer.class);
+ pluginContainerClasses.add(PackageTypeServerPluginContainer.class);
+ pluginContainerClasses.add(PerspectiveServerPluginContainer.class);
+ }
+
+ @Override
+ protected MasterServerPluginContainer createMasterPluginContainer() {
+ this.master = new TestMasterServerPluginContainer(pluginContainerClasses);
+ this.master.initialize(this.masterConfig);
+ return this.master;
+ }
}
Show replies by date