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 2020/04/10 15:46:07 UTC

[deltaspike] branch master updated: fix side effect of setting project stage per System.properties

This is an automated email from the ASF dual-hosted git repository.

struberg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/deltaspike.git


The following commit(s) were added to refs/heads/master by this push:
     new 4d10c2f  fix side effect of setting project stage per System.properties
4d10c2f is described below

commit 4d10c2f7fce34d380f92d5d89de97e0550eb40c3
Author: Mark Struberg <st...@apache.org>
AuthorDate: Fri Apr 10 17:35:07 2020 +0200

    fix side effect of setting project stage per System.properties
    
    This did lead to randomly failing tests depending on the order
    in which the unit tests did run.
---
 .../ExcludeTestProjectStageWarFileDevelopment.java     | 18 +++++++++++++++---
 .../test/core/api/exclude/ExcludeWarFileTest.java      | 16 +++++++++++++---
 .../test/core/api/exclude/uc001/EntityExcludeTest.java | 16 +++++++++++++---
 3 files changed, 41 insertions(+), 9 deletions(-)

diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeTestProjectStageWarFileDevelopment.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeTestProjectStageWarFileDevelopment.java
index f1da788..ed94cdb 100644
--- a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeTestProjectStageWarFileDevelopment.java
+++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeTestProjectStageWarFileDevelopment.java
@@ -19,14 +19,18 @@
 package org.apache.deltaspike.test.core.api.exclude;
 
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.test.util.ArchiveUtils;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.After;
+import org.junit.AfterClass;
 import org.junit.runner.RunWith;
 
 /**
@@ -44,16 +48,24 @@ public class ExcludeTestProjectStageWarFileDevelopment extends ExcludeTestProjec
         String simpleName = ExcludeTestProjectStageWarFileDevelopment.class.getSimpleName();
         String archiveName = simpleName.substring(0, 1).toLowerCase() + simpleName.substring(1);
 
-        System.setProperty("org.apache.deltaspike.ProjectStage", "Development");
-        ProjectStageProducer.setProjectStage(null);
+        // in case the Arquillian adapter doesn't properly handle resources on the classpath
+        ProjectStageProducer.setProjectStage(ProjectStage.Development);
 
         JavaArchive testJar = ShrinkWrap.create(JavaArchive.class, "excludeTestProjectStageDevelopmentTest.jar")
                 .addPackage(ExcludeTestProjectStageWarFileDevelopment.class.getPackage())
-                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
+                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
+                .addAsResource(new StringAsset("org.apache.deltaspike.ProjectStage = Development"),
+                    "apache-deltaspike.properties"); // when deployed on some remote container
 
         return ShrinkWrap.create(WebArchive.class, archiveName + ".war")
                 .addAsLibraries(ArchiveUtils.getDeltaSpikeCoreArchive())
                 .addAsLibraries(testJar)
                 .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
     }
+
+    @AfterClass
+    public static void resetProjectStage() {
+        ProjectStageProducer.setProjectStage(null);
+    }
+
 }
diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeWarFileTest.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeWarFileTest.java
index 515b4d4..156201d 100644
--- a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeWarFileTest.java
+++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/ExcludeWarFileTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.deltaspike.test.core.api.exclude;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.impl.exclude.extension.ExcludeExtension;
 import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.test.core.impl.activation.TestClassDeactivator;
@@ -27,8 +28,10 @@ import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.AfterClass;
 import org.junit.runner.RunWith;
 
 import javax.enterprise.inject.spi.Extension;
@@ -49,8 +52,8 @@ public class ExcludeWarFileTest extends ExcludeTest
         String simpleName = ExcludeWarFileTest.class.getSimpleName();
         String archiveName = simpleName.substring(0, 1).toLowerCase() + simpleName.substring(1);
 
-        System.setProperty("org.apache.deltaspike.ProjectStage", "Production");
-        ProjectStageProducer.setProjectStage(null);
+        // in case the Arquillian adapter doesn't properly handle resources on the classpath
+        ProjectStageProducer.setProjectStage(ProjectStage.Production);
 
         URL fileUrl = ExcludeWarFileTest.class.getClassLoader()
                 .getResource("META-INF/apache-deltaspike.properties");
@@ -59,7 +62,9 @@ public class ExcludeWarFileTest extends ExcludeTest
                 .addPackage(ExcludeWarFileTest.class.getPackage())
                 .addPackage(TestClassDeactivator.class.getPackage())
                 .addAsManifestResource(FileUtils.getFileForURL(fileUrl.toString()))
-                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
+                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
+                .addAsResource(new StringAsset("org.apache.deltaspike.ProjectStage = Production"),
+                    "apache-deltaspike.properties"); // when deployed on some remote container;
 
         return ShrinkWrap.create(WebArchive.class, archiveName + ".war")
                 .addAsLibraries(ArchiveUtils.getDeltaSpikeCoreArchive())
@@ -67,4 +72,9 @@ public class ExcludeWarFileTest extends ExcludeTest
                 .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
                 .addAsServiceProvider(Extension.class, ExcludeExtension.class);
     }
+
+    @AfterClass
+    public static void resetProjectStage() {
+        ProjectStageProducer.setProjectStage(null);
+    }
 }
diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/uc001/EntityExcludeTest.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/uc001/EntityExcludeTest.java
index d1a5cce..88f944f 100644
--- a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/uc001/EntityExcludeTest.java
+++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/exclude/uc001/EntityExcludeTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.deltaspike.test.core.api.exclude.uc001;
 
+import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.api.provider.BeanProvider;
 import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.apache.deltaspike.test.util.ArchiveUtils;
@@ -25,8 +26,10 @@ import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
 import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -40,12 +43,14 @@ public class EntityExcludeTest
         String simpleName = EntityExcludeTest.class.getSimpleName();
         String archiveName = simpleName.substring(0, 1).toLowerCase() + simpleName.substring(1);
 
-        System.setProperty("org.apache.deltaspike.ProjectStage", "Development");
-        ProjectStageProducer.setProjectStage(null);
+        // in case the Arquillian adapter doesn't properly handle resources on the classpath
+        ProjectStageProducer.setProjectStage(ProjectStage.Development);
 
         JavaArchive testJar = ShrinkWrap.create(JavaArchive.class, archiveName + ".jar")
                 .addPackage(EntityExcludeTest.class.getPackage())
-                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
+                .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
+                .addAsResource(new StringAsset("org.apache.deltaspike.ProjectStage = Development"),
+                    "apache-deltaspike.properties"); // when deployed on some remote container;
 
         return ShrinkWrap.create(WebArchive.class, archiveName + ".war")
                 .addAsLibraries(ArchiveUtils.getDeltaSpikeCoreArchive())
@@ -53,6 +58,11 @@ public class EntityExcludeTest
                 .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
     }
 
+    @AfterClass
+    public static void resetProjectStage() {
+        ProjectStageProducer.setProjectStage(null);
+    }
+
     @Test
     public void entityWithoutExclusion()
     {