From fd409c53403d7c2c64cfd36a6ec6b5dd31978d87 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 3 Nov 2020 10:25:00 +0100 Subject: [PATCH] Remove CloudfoundryEnvironmentPostProcessor Closes gh-1144 --- .../CloudfoundryEnvironmentPostProcessor.java | 81 ------------------- .../main/resources/META-INF/spring.factories | 3 - ...dfoundryEnvironmentPostProcessorTests.java | 72 ----------------- 3 files changed, 156 deletions(-) delete mode 100644 initializr-web/src/main/java/io/spring/initializr/web/autoconfigure/CloudfoundryEnvironmentPostProcessor.java delete mode 100755 initializr-web/src/test/java/io/spring/initializr/web/autoconfigure/CloudfoundryEnvironmentPostProcessorTests.java diff --git a/initializr-web/src/main/java/io/spring/initializr/web/autoconfigure/CloudfoundryEnvironmentPostProcessor.java b/initializr-web/src/main/java/io/spring/initializr/web/autoconfigure/CloudfoundryEnvironmentPostProcessor.java deleted file mode 100644 index 778b1973..00000000 --- a/initializr-web/src/main/java/io/spring/initializr/web/autoconfigure/CloudfoundryEnvironmentPostProcessor.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.spring.initializr.web.autoconfigure; - -import java.util.LinkedHashMap; -import java.util.Map; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.context.config.ConfigFileApplicationListener; -import org.springframework.boot.env.EnvironmentPostProcessor; -import org.springframework.core.Ordered; -import org.springframework.core.env.ConfigurableEnvironment; -import org.springframework.core.env.MapPropertySource; -import org.springframework.core.env.MutablePropertySources; -import org.springframework.core.env.PropertySource; -import org.springframework.util.StringUtils; - -/** - * Post-process the environment to extract the service credentials provided by - * CloudFoundry. Injects the elastic service URI if present. - * - * @author Stephane Nicoll - */ -public class CloudfoundryEnvironmentPostProcessor implements EnvironmentPostProcessor, Ordered { - - private static final String PROPERTY_SOURCE_NAME = "defaultProperties"; - - private static final int ORDER = ConfigFileApplicationListener.DEFAULT_ORDER + 1; - - @Override - public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication springApplication) { - - Map map = new LinkedHashMap<>(); - String uri = environment.getProperty("vcap.services.stats-index.credentials.uri"); - if (StringUtils.hasText(uri)) { - map.put("initializr.stats.elastic.uri", uri); - addOrReplace(environment.getPropertySources(), map); - } - } - - @Override - public int getOrder() { - return ORDER; - } - - private static void addOrReplace(MutablePropertySources propertySources, Map map) { - MapPropertySource target = null; - if (propertySources.contains(PROPERTY_SOURCE_NAME)) { - PropertySource source = propertySources.get(PROPERTY_SOURCE_NAME); - if (source instanceof MapPropertySource) { - target = (MapPropertySource) source; - for (String key : map.keySet()) { - if (!target.containsProperty(key)) { - target.getSource().put(key, map.get(key)); - } - } - } - } - if (target == null) { - target = new MapPropertySource(PROPERTY_SOURCE_NAME, map); - } - if (!propertySources.contains(PROPERTY_SOURCE_NAME)) { - propertySources.addLast(target); - } - } - -} diff --git a/initializr-web/src/main/resources/META-INF/spring.factories b/initializr-web/src/main/resources/META-INF/spring.factories index 94a6d411..bd32ea84 100644 --- a/initializr-web/src/main/resources/META-INF/spring.factories +++ b/initializr-web/src/main/resources/META-INF/spring.factories @@ -1,5 +1,2 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ io.spring.initializr.web.autoconfigure.InitializrAutoConfiguration - -org.springframework.boot.env.EnvironmentPostProcessor=\ -io.spring.initializr.web.autoconfigure.CloudfoundryEnvironmentPostProcessor diff --git a/initializr-web/src/test/java/io/spring/initializr/web/autoconfigure/CloudfoundryEnvironmentPostProcessorTests.java b/initializr-web/src/test/java/io/spring/initializr/web/autoconfigure/CloudfoundryEnvironmentPostProcessorTests.java deleted file mode 100755 index dec862ec..00000000 --- a/initializr-web/src/test/java/io/spring/initializr/web/autoconfigure/CloudfoundryEnvironmentPostProcessorTests.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2012-2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.spring.initializr.web.autoconfigure; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.SpringApplication; -import org.springframework.mock.env.MockEnvironment; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link CloudfoundryEnvironmentPostProcessor}. - * - * @author Stephane Nicoll - */ -class CloudfoundryEnvironmentPostProcessorTests { - - private final CloudfoundryEnvironmentPostProcessor postProcessor = new CloudfoundryEnvironmentPostProcessor(); - - private final MockEnvironment environment = new MockEnvironment(); - - private final SpringApplication application = new SpringApplication(); - - @Test - void parseUriWithCredentials() { - this.environment.setProperty("vcap.services.stats-index.credentials.uri", - "https://user:pass@example.com/bar/biz?param=one"); - this.postProcessor.postProcessEnvironment(this.environment, this.application); - - assertThat(this.environment.getProperty("initializr.stats.elastic.uri")) - .isEqualTo("https://user:pass@example.com/bar/biz?param=one"); - assertThat(this.environment.getProperty("initializr.stats.elastic.username")).isNull(); - assertThat(this.environment.getProperty("initializr.stats.elastic.password")).isNull(); - } - - @Test - void parseUri() { - this.environment.setProperty("vcap.services.stats-index.credentials.uri", - "https://example.com/bar/biz?param=one"); - this.postProcessor.postProcessEnvironment(this.environment, this.application); - - assertThat(this.environment.getProperty("initializr.stats.elastic.uri")) - .isEqualTo("https://example.com/bar/biz?param=one"); - assertThat(this.environment.getProperty("initializr.stats.elastic.username")).isNull(); - assertThat(this.environment.getProperty("initializr.stats.elastic.password")).isNull(); - } - - @Test - void parseNoVcapUri() { - this.postProcessor.postProcessEnvironment(this.environment, this.application); - - assertThat(this.environment.getProperty("initializr.stats.elastic.uri")).isNull(); - assertThat(this.environment.getProperty("initializr.stats.elastic.username")).isNull(); - assertThat(this.environment.getProperty("initializr.stats.elastic.password")).isNull(); - } - -}