0e31555c39755c823be8d7a54b0b0d6a1576260e
[demos/multiple-beans] / src / main / java / de / juplo / demos / multiplebeans / MultipleBeansEnvironmentPostProcessor.java
1 package de.juplo.demos.multiplebeans;
2
3 import org.springframework.boot.SpringApplication;
4 import org.springframework.boot.env.EnvironmentPostProcessor;
5 import org.springframework.core.env.ConfigurableEnvironment;
6 import org.springframework.core.env.PropertySource;
7
8 import java.util.Arrays;
9
10 public class MultipleBeansEnvironmentPostProcessor implements EnvironmentPostProcessor {
11
12     @Override
13     public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
14         String sites = null;
15         for (PropertySource source : environment.getPropertySources()) {
16             Object found = source.getProperty("juplo.sites");
17             if (found != null)
18                 sites = found.toString();
19         }
20
21         if (sites == null)
22             throw new IllegalArgumentException("Parameter juplo.sites is not set!");
23
24         application.addInitializers(new MultipleBeansApplicationContextInitializer(
25                 Arrays.stream(sites.split(","))
26                 .map(site -> site.trim())
27                 .toArray(size -> new String[size])));
28     }
29 }