You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by st...@apache.org on 2014/11/20 11:42:54 UTC
deltaspike git commit: DELTASPIKE-785 make CdiTestRunner configurable
Repository: deltaspike
Updated Branches:
refs/heads/master ad138369b -> 449ec285b
DELTASPIKE-785 make CdiTestRunner configurable
This is really important to enable CdiTestRunner to pick up
DataSources and other stuff needed when running embedded EE containers.
Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/449ec285
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/449ec285
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/449ec285
Branch: refs/heads/master
Commit: 449ec285b28b0dbee9c49bc005ec0c7ebdcbcacf
Parents: ad13836
Author: Mark Struberg <st...@apache.org>
Authored: Thu Nov 20 11:41:31 2014 +0100
Committer: Mark Struberg <st...@apache.org>
Committed: Thu Nov 20 11:41:31 2014 +0100
----------------------------------------------------------------------
.../testcontrol/api/junit/CdiTestRunner.java | 27 +++++++++++++++++++-
.../api/junit/CdiTestSuiteRunner.java | 7 +++--
2 files changed, 31 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/449ec285/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/junit/CdiTestRunner.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/junit/CdiTestRunner.java b/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/junit/CdiTestRunner.java
index c91bafc..c6f12ef 100644
--- a/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/junit/CdiTestRunner.java
+++ b/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/junit/CdiTestRunner.java
@@ -23,6 +23,7 @@ import org.apache.deltaspike.cdise.api.CdiContainer;
import org.apache.deltaspike.cdise.api.CdiContainerLoader;
import org.apache.deltaspike.cdise.api.ContextControl;
import org.apache.deltaspike.core.api.config.ConfigResolver;
+import org.apache.deltaspike.core.api.config.PropertyLoader;
import org.apache.deltaspike.core.api.projectstage.ProjectStage;
import org.apache.deltaspike.core.api.provider.BeanManagerProvider;
import org.apache.deltaspike.core.api.provider.BeanProvider;
@@ -57,6 +58,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
+import java.util.Properties;
import java.util.Set;
import java.util.Stack;
import java.util.concurrent.CopyOnWriteArraySet;
@@ -64,8 +66,23 @@ import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
+/**
+ * A JUnit test runner to start up with a CDI or embedded JavaEE container.
+ *
+ * <p>If the underlying container supports it you can even pass in a property file
+ * to the bootstrap. You can configure the name of the configuration file via a
+ * {@link org.apache.deltaspike.core.api.config.ConfigResolver} property named
+ * <code>cdiTestRunnerConfig</code>. By default the name of the config file is
+ * <code>cdiTestRunnerConfig.properties</code>.</p>
+ */
public class CdiTestRunner extends BlockJUnit4ClassRunner
{
+ /**
+ * The configuration switch to define the configuration properties file.
+ * By default the property file which gets loaded has the exactly same name.
+ */
+ public static final String TEST_RUNNER_CONFIG = "cdiTestRunnerConfig";
+
private static final Logger LOGGER = Logger.getLogger(CdiTestRunner.class.getName());
private static final boolean USE_TEST_CLASS_AS_CDI_BEAN;
@@ -121,6 +138,14 @@ public class CdiTestRunner extends BlockJUnit4ClassRunner
});
}
+ public static Properties getTestContainerConfig()
+ {
+ String cdiTestRunnerConfig =
+ ConfigResolver.getProjectStageAwarePropertyValue(TEST_RUNNER_CONFIG, TEST_RUNNER_CONFIG);
+ return PropertyLoader.getProperties(cdiTestRunnerConfig);
+ }
+
+
@Override
public void run(RunNotifier runNotifier)
{
@@ -452,7 +477,7 @@ public class CdiTestRunner extends BlockJUnit4ClassRunner
{
if (!CdiTestSuiteRunner.isContainerStarted())
{
- container.boot();
+ container.boot(getTestContainerConfig());
setContainerStarted();
bootExternalContainers(testClass);
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/449ec285/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/junit/CdiTestSuiteRunner.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/junit/CdiTestSuiteRunner.java b/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/junit/CdiTestSuiteRunner.java
index 2cfd918..fc4448c 100644
--- a/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/junit/CdiTestSuiteRunner.java
+++ b/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/junit/CdiTestSuiteRunner.java
@@ -37,8 +37,10 @@ import java.util.logging.Logger;
@SuppressWarnings("UnusedDeclaration")
public class CdiTestSuiteRunner extends Suite
{
+
private static final boolean STOP_CONTAINER;
- private static boolean containerStarted; //TODO
+
+ private static volatile boolean containerStarted; //TODO
private final Class<?> testSuiteClass;
@@ -86,7 +88,7 @@ public class CdiTestSuiteRunner extends Suite
if (!containerStarted)
{
- container.boot();
+ container.boot(CdiTestRunner.getTestContainerConfig());
containerStarted = true;
}
@@ -106,6 +108,7 @@ public class CdiTestSuiteRunner extends Suite
}
}
+
public static boolean isContainerStarted()
{
return containerStarted;