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