You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by gp...@apache.org on 2013/12/15 20:46:32 UTC
[2/2] git commit: DELTASPIKE-466 improved external-container handling
DELTASPIKE-466 improved external-container handling
Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/7ec889fe
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/7ec889fe
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/7ec889fe
Branch: refs/heads/master
Commit: 7ec889fe2e6085fc03b96ec491da3a89376dc6c4
Parents: 7f14a66
Author: gpetracek <gp...@apache.org>
Authored: Sun Dec 15 20:25:15 2013 +0100
Committer: gpetracek <gp...@apache.org>
Committed: Sun Dec 15 20:44:09 2013 +0100
----------------------------------------------------------------------
.../deltaspike/testcontrol/api/TestControl.java | 1 +
.../testcontrol/api/junit/CdiTestRunner.java | 34 ++++++++++++++------
2 files changed, 25 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/7ec889fe/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/TestControl.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/TestControl.java b/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/TestControl.java
index c492c97..baba3cb 100644
--- a/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/TestControl.java
+++ b/deltaspike/modules/test-control/api/src/main/java/org/apache/deltaspike/testcontrol/api/TestControl.java
@@ -55,6 +55,7 @@ public @interface TestControl
/**
* Requires additional service-loader config
+ * Currently only supported on class-level
*/
boolean startExternalContainers() default true;
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/7ec889fe/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 9b331a9..af9d560 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
@@ -632,24 +632,38 @@ public class CdiTestRunner extends BlockJUnit4ClassRunner
private void onScopeStarted(Class<? extends Annotation> scopeClass)
{
- if (this.externalContainers != null)
+ List<ExternalContainer> externalContainerList = collectExternalContainers(this);
+
+ for (ExternalContainer externalContainer : externalContainerList)
{
- for (ExternalContainer externalContainer : this.externalContainers)
- {
- externalContainer.startScope(scopeClass);
- }
+ externalContainer.startScope(scopeClass);
}
}
private void onScopeStopped(Class<? extends Annotation> scopeClass)
{
- if (this.externalContainers != null)
+ List<ExternalContainer> externalContainerList = collectExternalContainers(this);
+
+ for (ExternalContainer externalContainer : externalContainerList)
{
- for (ExternalContainer externalContainer : this.externalContainers)
- {
- externalContainer.stopScope(scopeClass);
- }
+ externalContainer.stopScope(scopeClass);
+ }
+ }
+
+ private static List<ExternalContainer> collectExternalContainers(ContainerAwareTestContext testContext)
+ {
+ List<ExternalContainer> result = new ArrayList<ExternalContainer>();
+
+ if (testContext.externalContainers != null)
+ {
+ result.addAll(testContext.externalContainers);
+ }
+
+ if (testContext.parent != null)
+ {
+ result.addAll(collectExternalContainers(testContext.parent));
}
+ return result;
}
}
}