You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2011/05/25 20:54:38 UTC

svn commit: r1127630 - in /myfaces/extensions/cdi/trunk/core/impl/src: main/java/org/apache/myfaces/extensions/cdi/core/impl/config/PropertyFileResolver.java test/resources/META-INF/myfaces-extcdi.properties test/resources/myfaces-extcdi.properties

Author: gpetracek
Date: Wed May 25 18:54:37 2011
New Revision: 1127630

URL: http://svn.apache.org/viewvc?rev=1127630&view=rev
Log:
EXTCDI-185 optional property file based configuration (add/re-introduce the approach of mark)

Added:
    myfaces/extensions/cdi/trunk/core/impl/src/test/resources/META-INF/myfaces-extcdi.properties
Modified:
    myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/config/PropertyFileResolver.java
    myfaces/extensions/cdi/trunk/core/impl/src/test/resources/myfaces-extcdi.properties

Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/config/PropertyFileResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/config/PropertyFileResolver.java?rev=1127630&r1=1127629&r2=1127630&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/config/PropertyFileResolver.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/config/PropertyFileResolver.java Wed May 25 18:54:37 2011
@@ -23,10 +23,13 @@ import org.apache.myfaces.extensions.cdi
 import org.apache.myfaces.extensions.cdi.core.api.util.ClassUtils;
 
 import javax.enterprise.inject.Typed;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
 import java.util.MissingResourceException;
+import java.util.Properties;
 import java.util.ResourceBundle;
 
 /**
@@ -38,6 +41,8 @@ public class PropertyFileResolver extend
 {
     private static final String BASE_NAME = "org.apache.myfaces.extensions.cdi.";
 
+    private static final String FILE_NAME = "myfaces-extcdi";
+
     /**
      * {@inheritDoc}
      */
@@ -52,7 +57,7 @@ public class PropertyFileResolver extend
         }
 
         //TODO
-        if(key.endsWith("_"))
+        if (key.endsWith("_"))
         {
             key = key.substring(0, key.length() - 1);
         }
@@ -60,14 +65,14 @@ public class PropertyFileResolver extend
         String bundleName;
 
         //TODO
-        if(key.contains("@") && key.lastIndexOf("@") < key.indexOf("."))
+        if (key.contains("@") && key.lastIndexOf("@") < key.indexOf("."))
         {
             bundleName = key.substring(0, key.indexOf("."));
             bundleName = bundleName.replace("@", ".");
         }
         else
         {
-            bundleName= BASE_NAME + key.substring(0, key.indexOf("."));
+            bundleName = BASE_NAME + key.substring(0, key.indexOf("."));
         }
 
         ResourceBundle resourceBundle;
@@ -81,26 +86,86 @@ public class PropertyFileResolver extend
             }
             catch (MissingResourceException e)
             {
-                resourceBundle = ResourceBundle.getBundle("myfaces-extcdi");
+                resourceBundle = null;
+            }
+
+            if (resourceBundle == null)
+            {
+                try
+                {
+                    resourceBundle = ResourceBundle.getBundle(FILE_NAME);
+                }
+                catch (MissingResourceException e2)
+                {
+                    resourceBundle = null;
+                }
             }
 
+            String configKey = key.substring(key.indexOf(".") + 1);
+            String configuredValue = null;
+
             if (resourceBundle != null)
             {
-                String configuredValue = resourceBundle.getString(key.substring(key.indexOf(".") + 1));
+                try
+                {
+                    configuredValue = resourceBundle.getString(configKey);
+                    add(configuredValue);
+                }
+                catch (MissingResourceException e)
+                {
+                    resourceBundle = null;
+                }
+            }
 
-                add(configuredValue);
+            if (resourceBundle == null)
+            {
+                Properties properties = getProperties("META-INF/" + FILE_NAME + ".properties");
 
-                if (configuredValue == null)
+                if (properties != null)
                 {
-                    return Collections.emptyList();
+                    configuredValue = properties.getProperty(configKey);
+                    add(configuredValue);
                 }
             }
+
+            if (configuredValue == null)
+            {
+                return Collections.emptyList();
+            }
         }
-        catch (MissingResourceException e2)
+        catch (Exception e)
         {
             return Collections.emptyList();
         }
 
         return getConfiguredValues(descriptor.getTargetType());
     }
+
+    /**
+     * Load properties from a configuration file with the given resourceName.
+     *
+     * @param resourceName name of the resource
+     * @return Properties or <code>null</code> if the given property file doesn't exist
+     */
+    //TODO
+    private static Properties getProperties(String resourceName)
+    {
+        Properties properties = null;
+        ClassLoader classLoader = ClassUtils.getClassLoader(resourceName);
+        InputStream inputStream = classLoader.getResourceAsStream(resourceName);
+        if (inputStream != null)
+        {
+            properties = new Properties();
+            try
+            {
+                properties.load(inputStream);
+            }
+            catch (IOException e)
+            {
+                return null;
+            }
+        }
+
+        return properties;
+    }
 }

Added: myfaces/extensions/cdi/trunk/core/impl/src/test/resources/META-INF/myfaces-extcdi.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/test/resources/META-INF/myfaces-extcdi.properties?rev=1127630&view=auto
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/test/resources/META-INF/myfaces-extcdi.properties (added)
+++ myfaces/extensions/cdi/trunk/core/impl/src/test/resources/META-INF/myfaces-extcdi.properties Wed May 25 18:54:37 2011
@@ -0,0 +1 @@
+db=test-db
\ No newline at end of file

Modified: myfaces/extensions/cdi/trunk/core/impl/src/test/resources/myfaces-extcdi.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/test/resources/myfaces-extcdi.properties?rev=1127630&r1=1127629&r2=1127630&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/test/resources/myfaces-extcdi.properties (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/test/resources/myfaces-extcdi.properties Wed May 25 18:54:37 2011
@@ -1,2 +1 @@
-db=test-db
 server_name=s1
\ No newline at end of file