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 2013/11/22 15:21:16 UTC

git commit: DELTASPIKE-445 add a few other known project stage config locations

Updated Branches:
  refs/heads/master f899ad2e8 -> 562412bb4


DELTASPIKE-445 add a few other known project stage config locations


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/562412bb
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/562412bb
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/562412bb

Branch: refs/heads/master
Commit: 562412bb4e5a0fb370951e054562b07e333c6fee
Parents: f899ad2
Author: Mark Struberg <st...@apache.org>
Authored: Fri Nov 22 15:19:38 2013 +0100
Committer: Mark Struberg <st...@apache.org>
Committed: Fri Nov 22 15:20:32 2013 +0100

----------------------------------------------------------------------
 .../core/util/ProjectStageProducer.java         | 24 +++++++--
 .../projectstage/ProjectStageProducerTest.java  | 53 +++++++++++++-------
 2 files changed, 56 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/562412bb/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/ProjectStageProducer.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/ProjectStageProducer.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/ProjectStageProducer.java
index f2e39bf..7a93ab5 100644
--- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/ProjectStageProducer.java
+++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/util/ProjectStageProducer.java
@@ -52,10 +52,22 @@ import java.util.logging.Logger;
 @ApplicationScoped
 public class ProjectStageProducer implements Serializable
 {
+    /**
+     * These config keys will get used to detect the ProjectStage.
+     * We iterate through them until we find the first non-empty value.
+     */
+    public static final String[] CONFIG_SETTING_KEYS =
+            {
+                    "org.apache.deltaspike.ProjectStage",
+                    "javax.faces.PROJECT_STAGE",
+                    "faces.PROJECT_STAGE"
+            };
+
     protected static final Logger LOG = Logger.getLogger(ProjectStageProducer.class.getName());
 
     private static final long serialVersionUID = -2987762608635612074L;
 
+
     /**
      * The detected ProjectStage
      */
@@ -132,11 +144,15 @@ public class ProjectStageProducer implements Serializable
      */
     protected ProjectStage resolveProjectStage()
     {
-        String stageName = ConfigResolver.getPropertyValue("org.apache.deltaspike.ProjectStage");
-
-        if (stageName != null)
+        for (String configLocation : CONFIG_SETTING_KEYS)
         {
-            return ProjectStage.valueOf(stageName);
+            String stageName = ConfigResolver.getPropertyValue(configLocation);
+
+            if (stageName != null && !stageName.isEmpty())
+            {
+                return ProjectStage.valueOf(stageName);
+            }
+
         }
 
         return null;

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/562412bb/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/projectstage/ProjectStageProducerTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/projectstage/ProjectStageProducerTest.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/projectstage/ProjectStageProducerTest.java
index 6a960dc..db88645 100644
--- a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/projectstage/ProjectStageProducerTest.java
+++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/projectstage/ProjectStageProducerTest.java
@@ -34,33 +34,52 @@ public class ProjectStageProducerTest
     @Test
     public void testProjectStageSetByEnvironment()
     {
-        String envName = "org.apache.deltaspike.ProjectStage";
-        String oldEnvVal = "" + System.getProperty(envName);
+        String[] oldEnvVals = new String[ProjectStageProducer.CONFIG_SETTING_KEYS.length];
+        for (int i = 0; i < ProjectStageProducer.CONFIG_SETTING_KEYS.length; i++)
+        {
+            String envName = ProjectStageProducer.CONFIG_SETTING_KEYS[i];
+            oldEnvVals[i] = "" + System.getProperty(envName);
+
+            // and also clean them now
+            System.setProperty(ProjectStageProducer.CONFIG_SETTING_KEYS[i], "");
+        }
+
         try
         {
-            System.setProperty(envName, "SystemTest");
+            for (int i = 0; i < ProjectStageProducer.CONFIG_SETTING_KEYS.length; i++)
+            {
+                String envName = ProjectStageProducer.CONFIG_SETTING_KEYS[i];
+
+                System.setProperty(envName, "SystemTest");
+
+                ProjectStageProducer psp = ProjectStageProducer.getInstance();
+                Assert.assertNotNull(psp);
 
-            ProjectStageProducer psp = ProjectStageProducer.getInstance();
-            Assert.assertNotNull(psp);
+                ProjectStageProducer.setProjectStage(null);
 
-            ProjectStageProducer.setProjectStage(null);
+                ProjectStage ps = psp.getProjectStage();
+                Assert.assertNotNull(ps);
+                Assert.assertEquals(ps, ProjectStage.SystemTest);
+                Assert.assertTrue(ps == ProjectStage.SystemTest);
 
-            ProjectStage ps = psp.getProjectStage();
-            Assert.assertNotNull(ps);
-            Assert.assertEquals(ps, ProjectStage.SystemTest);
-            Assert.assertTrue(ps == ProjectStage.SystemTest);
+                ProjectStageProducer.setProjectStage(null);
+                System.setProperty(envName, "IntegrationTest");
 
-            ProjectStageProducer.setProjectStage(null);
-            System.setProperty(envName, "IntegrationTest");
+                ps = psp.getProjectStage();
+                Assert.assertNotNull(ps);
+                Assert.assertEquals(ps, ProjectStage.IntegrationTest);
+                Assert.assertTrue(ps == ProjectStage.IntegrationTest);
 
-            ps = psp.getProjectStage();
-            Assert.assertNotNull(ps);
-            Assert.assertEquals(ps, ProjectStage.IntegrationTest);
-            Assert.assertTrue(ps == ProjectStage.IntegrationTest);
+                System.setProperty(envName, "");
+            }
         }
         finally
         {
-            System.setProperty(envName, oldEnvVal);
+            // restore the old env values
+            for (int i = 0; i < ProjectStageProducer.CONFIG_SETTING_KEYS.length; i++)
+            {
+                System.setProperty(ProjectStageProducer.CONFIG_SETTING_KEYS[i], oldEnvVals[i]);
+            }
         }
     }
 }