You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by gp...@apache.org on 2014/11/17 19:27:53 UTC
deltaspike git commit: DELTASPIKE-750 support for optional and
mandatory config-files
Repository: deltaspike
Updated Branches:
refs/heads/master 7cee58435 -> ed8ad5816
DELTASPIKE-750 support for optional and mandatory config-files
Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/ed8ad581
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/ed8ad581
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/ed8ad581
Branch: refs/heads/master
Commit: ed8ad5816bafc030023bbcc8701d7399ce41b345
Parents: 7cee584
Author: gpetracek <gp...@apache.org>
Authored: Mon Nov 17 19:23:00 2014 +0100
Committer: gpetracek <gp...@apache.org>
Committed: Mon Nov 17 19:27:18 2014 +0100
----------------------------------------------------------------------
.../deltaspike/core/api/config/PropertyFileConfig.java | 5 +++++
.../core/impl/config/ConfigurationExtension.java | 10 ++++++++--
.../core/impl/config/DefaultConfigSourceProvider.java | 3 ++-
.../config/EnvironmentPropertyConfigSourceProvider.java | 7 ++++++-
.../propertyconfigsource/MyCustomPropertyFileConfig.java | 6 ++++++
.../example/config/CustomPropertyFileConfig.java | 6 ++++++
6 files changed, 33 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/ed8ad581/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/PropertyFileConfig.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/PropertyFileConfig.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/PropertyFileConfig.java
index 216ebe7..fed736c 100644
--- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/PropertyFileConfig.java
+++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/PropertyFileConfig.java
@@ -44,4 +44,9 @@ public interface PropertyFileConfig extends DeltaSpikeConfig
* @return the full file name (including path) of the property files to pick up.
*/
String getPropertyFileName();
+
+ /**
+ * @return true if the file is optional, false if the specified file has to be in place.
+ */
+ boolean isOptional();
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/ed8ad581/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ConfigurationExtension.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ConfigurationExtension.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ConfigurationExtension.java
index 0bdbf4a..baec960 100644
--- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ConfigurationExtension.java
+++ b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/ConfigurationExtension.java
@@ -110,11 +110,13 @@ public class ConfigurationExtension implements Extension, Deactivatable
*/
private List<ConfigSource> createPropertyConfigSource(Class<? extends PropertyFileConfig> propertyFileConfigClass)
{
+ String fileName = "";
try
{
PropertyFileConfig propertyFileConfig = propertyFileConfigClass.newInstance();
+ fileName = propertyFileConfig.getPropertyFileName();
EnvironmentPropertyConfigSourceProvider environmentPropertyConfigSourceProvider
- = new EnvironmentPropertyConfigSourceProvider(propertyFileConfig.getPropertyFileName());
+ = new EnvironmentPropertyConfigSourceProvider(fileName, propertyFileConfig.isOptional());
return environmentPropertyConfigSourceProvider.getConfigSources();
}
@@ -128,6 +130,10 @@ public class ConfigurationExtension implements Extension, Deactivatable
throw new RuntimeException(CANNOT_CREATE_CONFIG_SOURCE_FOR_CUSTOM_PROPERTY_FILE_CONFIG +
propertyFileConfigClass.getName(), e);
}
+ catch (IllegalStateException e)
+ {
+ throw new IllegalStateException(
+ propertyFileConfigClass.getName() + " points to an invalid file: '" + fileName + "'", e);
+ }
}
-
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/ed8ad581/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/DefaultConfigSourceProvider.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/DefaultConfigSourceProvider.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/DefaultConfigSourceProvider.java
index 8057a70..126ec06 100644
--- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/DefaultConfigSourceProvider.java
+++ b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/DefaultConfigSourceProvider.java
@@ -48,7 +48,8 @@ public class DefaultConfigSourceProvider implements ConfigSourceProvider
configSources.add(new EnvironmentPropertyConfigSource());
configSources.add(new LocalJndiConfigSource());
- EnvironmentPropertyConfigSourceProvider epcsp = new EnvironmentPropertyConfigSourceProvider(PROPERTY_FILE_NAME);
+ EnvironmentPropertyConfigSourceProvider epcsp =
+ new EnvironmentPropertyConfigSourceProvider(PROPERTY_FILE_NAME, true);
configSources.addAll(epcsp.getConfigSources());
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/ed8ad581/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/EnvironmentPropertyConfigSourceProvider.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/EnvironmentPropertyConfigSourceProvider.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/EnvironmentPropertyConfigSourceProvider.java
index 2babf3a..b5daeb4 100644
--- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/EnvironmentPropertyConfigSourceProvider.java
+++ b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/EnvironmentPropertyConfigSourceProvider.java
@@ -40,12 +40,17 @@ class EnvironmentPropertyConfigSourceProvider implements ConfigSourceProvider
private List<ConfigSource> configSources = new ArrayList<ConfigSource>();
- EnvironmentPropertyConfigSourceProvider(String propertyFileName)
+ EnvironmentPropertyConfigSourceProvider(String propertyFileName, boolean optional)
{
try
{
Enumeration<URL> propertyFileUrls = PropertyFileUtils.resolvePropertyFiles(propertyFileName);
+ if (!optional && !propertyFileUrls.hasMoreElements())
+ {
+ throw new IllegalStateException(propertyFileName + " wasn't found.");
+ }
+
while (propertyFileUrls.hasMoreElements())
{
URL propertyFileUrl = propertyFileUrls.nextElement();
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/ed8ad581/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/propertyconfigsource/MyCustomPropertyFileConfig.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/propertyconfigsource/MyCustomPropertyFileConfig.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/propertyconfigsource/MyCustomPropertyFileConfig.java
index 8d3e832..49c4a2f 100644
--- a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/propertyconfigsource/MyCustomPropertyFileConfig.java
+++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/config/propertyconfigsource/MyCustomPropertyFileConfig.java
@@ -30,4 +30,10 @@ public class MyCustomPropertyFileConfig implements PropertyFileConfig
{
return "myconfig.properties";
}
+
+ @Override
+ public boolean isOptional()
+ {
+ return false;
+ }
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/ed8ad581/deltaspike/examples/jse-examples/src/main/java/org/apache/deltaspike/example/config/CustomPropertyFileConfig.java
----------------------------------------------------------------------
diff --git a/deltaspike/examples/jse-examples/src/main/java/org/apache/deltaspike/example/config/CustomPropertyFileConfig.java b/deltaspike/examples/jse-examples/src/main/java/org/apache/deltaspike/example/config/CustomPropertyFileConfig.java
index 2e72834..6e89cd3 100644
--- a/deltaspike/examples/jse-examples/src/main/java/org/apache/deltaspike/example/config/CustomPropertyFileConfig.java
+++ b/deltaspike/examples/jse-examples/src/main/java/org/apache/deltaspike/example/config/CustomPropertyFileConfig.java
@@ -33,4 +33,10 @@ public class CustomPropertyFileConfig implements PropertyFileConfig
{
return "META-INF/location.properties";
}
+
+ @Override
+ public boolean isOptional()
+ {
+ return false;
+ }
}