From e70ec39488c0688d8144fa529d58d60ae9564fbd Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Wed, 15 May 2019 06:41:15 +0200 Subject: WIP: Generate Map of Config Profiles from Spring Environment Augmenter - Replace default Config Profile with map of Config Profiles. Now, Augmenter can choose a config profile at runtime and augment it. - Move Augmenter to sub package. WIP - Implement ConfigProfileGenerator, which retrieves Config profiles from Spring Environment and returns an easy-to-use map with profiles that is keyed with profile id's. - Replace application.properties with application.yaml. - Remove Augmenter test cases: They need to be adapted. --- .../at/gv/egiz/moazs/DeliveryRequestAugmenter.java | 68 ---------------------- 1 file changed, 68 deletions(-) delete mode 100644 src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java (limited to 'src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java') diff --git a/src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java b/src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java deleted file mode 100644 index 96197d0..0000000 --- a/src/main/java/at/gv/egiz/moazs/DeliveryRequestAugmenter.java +++ /dev/null @@ -1,68 +0,0 @@ -package at.gv.egiz.moazs; - -import at.gv.zustellung.app2mzs.xsd.ConfigType; -import at.gv.zustellung.app2mzs.xsd.DeliveryRequestType; -import at.gv.zustellung.app2mzs.xsd.DeliveryRequestType.DeliveryRequestTypeBuilder; -import at.gv.zustellung.app2mzs.xsd.ServerType; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import static at.gv.egiz.moazs.util.NullCoalesce.coalesce; -import static at.gv.zustellung.app2mzs.xsd.ConfigType.configTypeBuilder; -import static at.gv.zustellung.app2mzs.xsd.ServerType.*; - -@Component -public class DeliveryRequestAugmenter { - - private final ConfigType defaultMzsConfig; - - @Autowired - public DeliveryRequestAugmenter(ConfigType defaultMzsConfig) { - this.defaultMzsConfig = defaultMzsConfig; - } - - /** - * Augments an incoming {@code request} by filling gaps with config- or default parameters. - * - * @param request - * @return augmented request - */ - public DeliveryRequestType augment(DeliveryRequestType request) { - - var config = merge(request.getConfig(), defaultMzsConfig); - - return new DeliveryRequestTypeBuilder(request) - .withConfig(config) - .build(); - } - - private ConfigType merge(ConfigType primary, ConfigType fallback) { - - var builder = configTypeBuilder(fallback); - - if(primary != null) { - - if(primary.getServer() != null) { - builder.withServer(merge(primary.getServer(), fallback.getServer())); - } - - if(primary.isPerformQueryPersonRequest() != null) { - builder.withPerformQueryPersonRequest(primary.isPerformQueryPersonRequest()); - } - - } - - return builder.build(); - - } - - private ServerType merge(ServerType primary, ServerType fallback) { - - var builder = serverTypeBuilder(fallback); - - if (primary.getX509() != null) builder.withX509 (primary.getX509() ); - if (primary.getZUSEUrlID() != null) builder.withZUSEUrlID(primary.getZUSEUrlID()); - - return builder.build(); - } -} -- cgit v1.2.3