You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by st...@apache.org on 2011/02/21 14:31:38 UTC

svn commit: r1072964 - in /myfaces/extensions/cdi/trunk/core/impl/src: main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ test/java/org/apache/myfaces/extensions/cdi/core/test...

Author: struberg
Date: Mon Feb 21 13:31:38 2011
New Revision: 1072964

URL: http://svn.apache.org/viewvc?rev=1072964&view=rev
Log:
EXTCDI-143 fix faces.PROJECT_STAGE and javax.faces.PROJECT_STAGE detection

this unintentionally got dropped with EXTCDI-121

Modified:
    myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java
    myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ConfiguredArtifactUtils.java
    myfaces/extensions/cdi/trunk/core/impl/src/test/java/org/apache/myfaces/extensions/cdi/core/test/impl/projectstage/ProjectStageProducerTest.java

Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java?rev=1072964&r1=1072963&r2=1072964&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/projectstage/ProjectStageProducer.java Mon Feb 21 13:31:38 2011
@@ -164,15 +164,36 @@ public class ProjectStageProducer implem
     }
 
 
+    /**
+     * We need to lookup a few environment variables in a specific order
+     * <ol>
+     *     <li>javax.faces.PROJECT_STAGE</li>
+     *     <li>faces.PROJECT_STAGE</li>
+     * </ol>
+     *
+     * For more information see <a href="https://issues.apache.org/jira/browse/MYFACES-2545">MYFACES-2545</a>
+     * @return the resolved {@link ProjectStage} or <code>null</code> if none defined.
+     */
     protected ProjectStage resolveProjectStage()
     {
-        String stageName = CodiUtils
-                .lookupFromEnvironment(ProjectStage.class.getSimpleName(), String.class); //we have to use a string here
+         //we have to use a string here
+        String stageName = CodiUtils.lookupFromEnvironment("javax.faces.PROJECT_STAGE", String.class);
+
+        if (stageName == null)
+        {
+            stageName = CodiUtils.lookupFromEnvironment("faces.PROJECT_STAGE", String.class);
+        }
+
+        if (stageName == null)
+        {
+            stageName = CodiUtils.lookupFromEnvironment("ProjectStage", String.class);
+        }
 
         if (stageName != null)
         {
             return ProjectStage.valueOf(stageName);
         }
+
         return null;
     }
 }

Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ConfiguredArtifactUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ConfiguredArtifactUtils.java?rev=1072964&r1=1072963&r2=1072964&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ConfiguredArtifactUtils.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ConfiguredArtifactUtils.java Mon Feb 21 13:31:38 2011
@@ -68,7 +68,11 @@ public class ConfiguredArtifactUtils
             if(cachedValueMap != null)
             {
                 List<String> result = new ArrayList<String>();
-                result.addAll(cachedValueMap.get(key));
+                Set<String> cachedValues = cachedValueMap.get(key);
+                if (cachedValues != null && !cachedValues.isEmpty())
+                {
+                    result.addAll(cachedValues);
+                }
                 return (List<T>)result;
             }
             return null;

Modified: myfaces/extensions/cdi/trunk/core/impl/src/test/java/org/apache/myfaces/extensions/cdi/core/test/impl/projectstage/ProjectStageProducerTest.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/test/java/org/apache/myfaces/extensions/cdi/core/test/impl/projectstage/ProjectStageProducerTest.java?rev=1072964&r1=1072963&r2=1072964&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/test/java/org/apache/myfaces/extensions/cdi/core/test/impl/projectstage/ProjectStageProducerTest.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/test/java/org/apache/myfaces/extensions/cdi/core/test/impl/projectstage/ProjectStageProducerTest.java Mon Feb 21 13:31:38 2011
@@ -30,23 +30,31 @@ public class ProjectStageProducerTest
 {
 
     /**
-     * This test checks if the manual {@link ProjectStage} detection via
-     * {@link ProjectStageProducer} works properly.
-     *
+     * Test a ProjectStage which got set by the <i>javax.faces.ProjectStage</i>
      * @throws Exception
      */
     @Test
-    public void testManualDetection() throws Exception
+    public void testProjectStageSetByEnvironment() throws Exception
     {
-        ProjectStageProducer psp = ProjectStageProducer.getInstance();
-        Assert.assertNotNull(psp);
+        String envName = "faces.PROJECT_STAGE";
+        String oldEnvVal = "" + System.getProperty(envName);
+        try
+        {
+            System.setProperty(envName, "SystemTest");
 
-        // first manually reset the ProjectStage
-        ProjectStageProducer.setProjectStage(null);
+            ProjectStageProducer psp = ProjectStageProducer.getInstance();
+            Assert.assertNotNull(psp);
 
-        ProjectStage ps = psp.getProjectStage();
-        Assert.assertNotNull(ps);
-        Assert.assertEquals(ps, ProjectStage.Production);
-        Assert.assertTrue(ps == ProjectStage.Production);
+            ProjectStageProducer.setProjectStage(null);
+
+            ProjectStage ps = psp.getProjectStage();
+            Assert.assertNotNull(ps);
+            Assert.assertEquals(ps, ProjectStage.SystemTest);
+            Assert.assertTrue(ps == ProjectStage.SystemTest);
+        }
+        finally
+        {
+            System.setProperty(envName, oldEnvVal);
+        }
     }
 }