aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/config
diff options
context:
space:
mode:
authorChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-05-15 14:55:09 +0200
committerChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-05-15 14:55:09 +0200
commit6959228c5c557df0204a2902807b35d90063b600 (patch)
tree1c32e2b63d0fd8c290d81b569470eea2c7fd5c1a /src/main/java/at/gv/egiz/moazs/config
parentcb95ee0650d3bbc3fe619af0a687f09d39a0a07f (diff)
downloadmoa-zs-6959228c5c557df0204a2902807b35d90063b600.tar.gz
moa-zs-6959228c5c557df0204a2902807b35d90063b600.tar.bz2
moa-zs-6959228c5c557df0204a2902807b35d90063b600.zip
Handle Config Related Edge Cases in Augmenter & ProfileGenerator
ConfigProfileGenerator: - Cancel startup if default Config profile is incomplete. - Add property flag 'verify-completeness-of-default-delivery-request-configuration', which allows admin to disable completeness check. In that case, just log a warning if the default profile is incomplete. Augmenter: - Ensure that after merging the config is complete (or throw an exception otherwise). - Refactor: Move ConfigProfileValidator from ConfigProfileGenerator to dedicated "ConfigProfileValidator" class; Reason: Augmenter needs to check completness of at-runtime-compiled configuration. - Refactor: Rewrote code for better readability. Others - NPE Fix in ConfigProfileMerger: If FallbackConfigProfile/Server is empty, use PrimaryProfile/Server.
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/config')
-rw-r--r--src/main/java/at/gv/egiz/moazs/config/DeliveryRequestAugmenterConfig.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/config/DeliveryRequestAugmenterConfig.java b/src/main/java/at/gv/egiz/moazs/config/DeliveryRequestAugmenterConfig.java
index d5b52c5..01d13f5 100644
--- a/src/main/java/at/gv/egiz/moazs/config/DeliveryRequestAugmenterConfig.java
+++ b/src/main/java/at/gv/egiz/moazs/config/DeliveryRequestAugmenterConfig.java
@@ -1,10 +1,14 @@
package at.gv.egiz.moazs.config;
import at.gv.egiz.moazs.preprocess.ConfigProfileGenerator;
+import at.gv.egiz.moazs.preprocess.ConfigProfileMerger;
+import at.gv.egiz.moazs.preprocess.ConfigProfileValidator;
import at.gv.zustellung.app2mzs.xsd.ConfigType;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.ConfigurableEnvironment;
import java.util.Map;
@@ -13,8 +17,17 @@ public class DeliveryRequestAugmenterConfig {
@Bean
@Autowired
- Map<String, ConfigType> deliveryRequestConfigs(ConfigProfileGenerator generator) {
+ public Map<String, ConfigType> deliveryRequestConfigs(ConfigProfileGenerator generator) {
return generator.generate();
}
+ @Value("${verify-completeness-of-default-delivery-request-configuration:true}")
+ private boolean verifyCompletenessOfDefaultConfiguration;
+
+ @Bean
+ @Autowired
+ public ConfigProfileGenerator configProfileGenerator(ConfigurableEnvironment env, ConfigProfileMerger merger, ConfigProfileValidator validator) {
+ return new ConfigProfileGenerator(env, merger, verifyCompletenessOfDefaultConfiguration, validator);
+ }
+
}