You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2015/03/01 20:59:00 UTC
tomee git commit: resetting system properties by default for
TomEEEmbeddedRule
Repository: tomee
Updated Branches:
refs/heads/develop 0b0c97414 -> 59b2ecc7c
resetting system properties by default for TomEEEmbeddedRule
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/59b2ecc7
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/59b2ecc7
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/59b2ecc7
Branch: refs/heads/develop
Commit: 59b2ecc7cc087cd59c4536ccd4c92d346fe8cf60
Parents: 0b0c974
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Sun Mar 1 20:58:40 2015 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Sun Mar 1 20:58:40 2015 +0100
----------------------------------------------------------------------
.../tomee/embedded/junit/TomEEEmbeddedRule.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/59b2ecc7/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/junit/TomEEEmbeddedRule.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/junit/TomEEEmbeddedRule.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/junit/TomEEEmbeddedRule.java
index 83af365..c9cd6d8 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/junit/TomEEEmbeddedRule.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/junit/TomEEEmbeddedRule.java
@@ -28,12 +28,14 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
+import java.util.Properties;
import static java.util.Arrays.asList;
public class TomEEEmbeddedRule implements TestRule {
private final Configuration configuration;
private final File docBase;
+ private boolean resetSystemProperties = true;
private final String context;
private final Collection<Object> injects = new LinkedList<>();
@@ -64,6 +66,11 @@ public class TomEEEmbeddedRule implements TestRule {
return this;
}
+ public TomEEEmbeddedRule resetSystemPropertiesAfter(final boolean value) {
+ resetSystemProperties = value;
+ return this;
+ }
+
public TomEEEmbeddedRule stopInjectionOn(final Object instance) {
this.injects.remove(instance);
return this;
@@ -85,12 +92,22 @@ public class TomEEEmbeddedRule implements TestRule {
return new Statement() {
@Override
public void evaluate() throws Throwable {
+ final Properties properties = new Properties();
+ if (resetSystemProperties) {
+ properties.putAll(System.getProperties());
+ }
+
try (final Container container = new Container(configuration)
.deployClasspathAsWebApp(context, docBase, toCallers())) {
for (final Object o : injects) {
container.inject(o);
}
statement.evaluate();
+ } finally {
+ if (resetSystemProperties) { // issue is we set System Properties like default loader which breaks other tests
+ System.getProperties().clear();
+ System.getProperties().putAll(properties);
+ }
}
}
};