WIP
[demos/multiple-beans] / src / main / java / de / juplo / demos / multiplebeans / MultipleBeansEnvironmentPostProcessor.java
index 132f6ee..e1313de 100644 (file)
@@ -1,20 +1,31 @@
 package de.juplo.demos.multiplebeans;
 
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+import lombok.AllArgsConstructor;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.env.EnvironmentPostProcessor;
 import org.springframework.core.env.ConfigurableEnvironment;
 import org.springframework.core.env.PropertySource;
 
-import java.util.regex.Pattern;
+import java.util.Arrays;
 
+@AllArgsConstructor
 public class MultipleBeansEnvironmentPostProcessor implements EnvironmentPostProcessor {
-    public final static Pattern PATTERN = Pattern.compile("juplo\\.sites\\[([0-9]+)\\]\\.(.+)");
 
     @Override
     public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
+        String sites = null;
         for (PropertySource source : environment.getPropertySources()) {
-            System.out.println(source.getName());
+            Object found = source.getProperty("juplo.sites");
+            if (found != null)
+                sites = found.toString();
         }
+
+        if (sites == null)
+            throw new IllegalArgumentException("Parameter juplo.sites is not set!");
+
+        application.addInitializers(new MultipleBeansApplicationContextInitializer(
+                Arrays.stream(sites.split(","))
+                .map(site -> site.trim())
+                .toArray(size -> new String[size])));
     }
-}
+}
\ No newline at end of file