Merge pull request #14285 from eneiascs:ws-auto-configuration-list
* pr/14285: Polish "Fix WSDL locations condition to work with a list" Fix WSDL locations condition to work with a list
This commit is contained in:
		
						commit
						ba18fb529f
					
				| 
						 | 
				
			
			@ -0,0 +1,72 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2012-2018 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
 | 
			
		||||
 *
 | 
			
		||||
 *      http://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 org.springframework.boot.autoconfigure.condition;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.function.Supplier;
 | 
			
		||||
 | 
			
		||||
import org.springframework.boot.context.properties.bind.BindResult;
 | 
			
		||||
import org.springframework.boot.context.properties.bind.Bindable;
 | 
			
		||||
import org.springframework.boot.context.properties.bind.Binder;
 | 
			
		||||
import org.springframework.context.annotation.Condition;
 | 
			
		||||
import org.springframework.context.annotation.ConditionContext;
 | 
			
		||||
import org.springframework.core.type.AnnotatedTypeMetadata;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * {@link Condition} that checks if a property whose value is a list is defined in the
 | 
			
		||||
 * environment.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Eneias Silva
 | 
			
		||||
 * @author Stephane Nicoll
 | 
			
		||||
 * @since 2.0.5
 | 
			
		||||
 */
 | 
			
		||||
public class OnListCondition extends SpringBootCondition {
 | 
			
		||||
 | 
			
		||||
	private static final Bindable<List<String>> SIMPLE_LIST = Bindable
 | 
			
		||||
			.listOf(String.class);
 | 
			
		||||
 | 
			
		||||
	private final String propertyName;
 | 
			
		||||
 | 
			
		||||
	private final Supplier<ConditionMessage.Builder> messageBuilder;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Create a new instance with the property to check and the message builder to use.
 | 
			
		||||
	 * @param propertyName the name of the property
 | 
			
		||||
	 * @param messageBuilder a message builder supplier that should provide a fresh
 | 
			
		||||
	 * instance on each call
 | 
			
		||||
	 */
 | 
			
		||||
	protected OnListCondition(String propertyName,
 | 
			
		||||
			Supplier<ConditionMessage.Builder> messageBuilder) {
 | 
			
		||||
		this.propertyName = propertyName;
 | 
			
		||||
		this.messageBuilder = messageBuilder;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public ConditionOutcome getMatchOutcome(ConditionContext context,
 | 
			
		||||
			AnnotatedTypeMetadata metadata) {
 | 
			
		||||
		BindResult<?> property = Binder.get(context.getEnvironment())
 | 
			
		||||
				.bind(this.propertyName, SIMPLE_LIST);
 | 
			
		||||
		ConditionMessage.Builder messageBuilder = this.messageBuilder.get();
 | 
			
		||||
		if (property.isBound()) {
 | 
			
		||||
			return ConditionOutcome
 | 
			
		||||
					.match(messageBuilder.found("property").items(this.propertyName));
 | 
			
		||||
		}
 | 
			
		||||
		return ConditionOutcome
 | 
			
		||||
				.noMatch(messageBuilder.didNotFind("property").items(this.propertyName));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2012-2017 the original author or authors.
 | 
			
		||||
 * Copyright 2012-2018 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.
 | 
			
		||||
| 
						 | 
				
			
			@ -16,42 +16,21 @@
 | 
			
		|||
 | 
			
		||||
package org.springframework.boot.autoconfigure.couchbase;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionMessage;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.SpringBootCondition;
 | 
			
		||||
import org.springframework.boot.context.properties.bind.BindResult;
 | 
			
		||||
import org.springframework.boot.context.properties.bind.Bindable;
 | 
			
		||||
import org.springframework.boot.context.properties.bind.Binder;
 | 
			
		||||
import org.springframework.context.annotation.ConditionContext;
 | 
			
		||||
import org.springframework.core.type.AnnotatedTypeMetadata;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.OnListCondition;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Condition to determine if {@code spring.couchbase.bootstrap-hosts} is specified.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Stephane Nicoll
 | 
			
		||||
 * @author Madhura Bhave
 | 
			
		||||
 * @author Eneias Silva
 | 
			
		||||
 */
 | 
			
		||||
class OnBootstrapHostsCondition extends SpringBootCondition {
 | 
			
		||||
class OnBootstrapHostsCondition extends OnListCondition {
 | 
			
		||||
 | 
			
		||||
	private static final Bindable<List<String>> STRING_LIST = Bindable
 | 
			
		||||
			.listOf(String.class);
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public ConditionOutcome getMatchOutcome(ConditionContext context,
 | 
			
		||||
			AnnotatedTypeMetadata metadata) {
 | 
			
		||||
		String name = "spring.couchbase.bootstrap-hosts";
 | 
			
		||||
		BindResult<?> property = Binder.get(context.getEnvironment()).bind(name,
 | 
			
		||||
				STRING_LIST);
 | 
			
		||||
		if (property.isBound()) {
 | 
			
		||||
			return ConditionOutcome.match(ConditionMessage
 | 
			
		||||
					.forCondition(OnBootstrapHostsCondition.class.getName())
 | 
			
		||||
					.found("property").items(name));
 | 
			
		||||
		}
 | 
			
		||||
		return ConditionOutcome.noMatch(
 | 
			
		||||
				ConditionMessage.forCondition(OnBootstrapHostsCondition.class.getName())
 | 
			
		||||
						.didNotFind("property").items(name));
 | 
			
		||||
	OnBootstrapHostsCondition() {
 | 
			
		||||
		super("spring.couchbase.bootstrap-hosts",
 | 
			
		||||
				() -> ConditionMessage.forCondition("Couchbase Bootstrap Hosts"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,35 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2012-2018 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
 | 
			
		||||
 *
 | 
			
		||||
 *      http://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 org.springframework.boot.autoconfigure.webservices;
 | 
			
		||||
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionMessage;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.OnListCondition;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Condition to determine if {@code spring.webservices.wsdl-locations} is specified.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Eneias Silva
 | 
			
		||||
 * @author Stephane Nicoll
 | 
			
		||||
 */
 | 
			
		||||
class OnWsdlLocationsCondition extends OnListCondition {
 | 
			
		||||
 | 
			
		||||
	OnWsdlLocationsCondition() {
 | 
			
		||||
		super("spring.webservices.wsdl-locations",
 | 
			
		||||
				() -> ConditionMessage.forCondition("WSDL locations"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -30,7 +30,6 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 | 
			
		|||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
 | 
			
		||||
import org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration;
 | 
			
		||||
| 
						 | 
				
			
			@ -41,6 +40,7 @@ import org.springframework.boot.web.servlet.ServletRegistrationBean;
 | 
			
		|||
import org.springframework.context.ApplicationContext;
 | 
			
		||||
import org.springframework.context.ApplicationContextAware;
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.context.annotation.Conditional;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
import org.springframework.core.io.Resource;
 | 
			
		||||
import org.springframework.util.StringUtils;
 | 
			
		||||
| 
						 | 
				
			
			@ -87,7 +87,7 @@ public class WebServicesAutoConfiguration {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	@Bean
 | 
			
		||||
	@ConditionalOnProperty(prefix = "spring.webservices", name = "wsdl-locations")
 | 
			
		||||
	@Conditional(OnWsdlLocationsCondition.class)
 | 
			
		||||
	public static WsdlDefinitionBeanFactoryPostProcessor wsdlDefinitionBeanFactoryPostProcessor() {
 | 
			
		||||
		return new WsdlDefinitionBeanFactoryPostProcessor();
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,86 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2012-2018 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
 | 
			
		||||
 *
 | 
			
		||||
 *      http://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 org.springframework.boot.autoconfigure.condition;
 | 
			
		||||
 | 
			
		||||
import org.junit.Test;
 | 
			
		||||
 | 
			
		||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.context.annotation.Conditional;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
 | 
			
		||||
import static org.assertj.core.api.Assertions.assertThat;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Tests for {@link OnListCondition}.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Stephane Nicoll
 | 
			
		||||
 */
 | 
			
		||||
public class OnListConditionTests {
 | 
			
		||||
 | 
			
		||||
	private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
 | 
			
		||||
			.withUserConfiguration(TestConfig.class);
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void propertyNotDefined() {
 | 
			
		||||
		this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void propertyDefinedAsCommaSeparated() {
 | 
			
		||||
		this.contextRunner.withPropertyValues("spring.test.my-list=value1")
 | 
			
		||||
				.run((context) -> assertThat(context).hasBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void propertyDefinedAsList() {
 | 
			
		||||
		this.contextRunner.withPropertyValues("spring.test.my-list[0]=value1")
 | 
			
		||||
				.run((context) -> assertThat(context).hasBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void propertyDefinedAsCommaSeparatedRelaxed() {
 | 
			
		||||
		this.contextRunner.withPropertyValues("spring.test.my-list=value1")
 | 
			
		||||
				.run((context) -> assertThat(context).hasBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void propertyDefinedAsListRelaxed() {
 | 
			
		||||
		this.contextRunner.withPropertyValues("spring.test.myList[0]=value1")
 | 
			
		||||
				.run((context) -> assertThat(context).hasBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Configuration
 | 
			
		||||
	@Conditional(TestListCondition.class)
 | 
			
		||||
	protected static class TestConfig {
 | 
			
		||||
 | 
			
		||||
		@Bean
 | 
			
		||||
		public String foo() {
 | 
			
		||||
			return "foo";
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	static class TestListCondition extends OnListCondition {
 | 
			
		||||
 | 
			
		||||
		TestListCondition() {
 | 
			
		||||
			super("spring.test.my-list", () -> ConditionMessage.forCondition("test"));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -16,11 +16,9 @@
 | 
			
		|||
 | 
			
		||||
package org.springframework.boot.autoconfigure.couchbase;
 | 
			
		||||
 | 
			
		||||
import org.junit.After;
 | 
			
		||||
import org.junit.Test;
 | 
			
		||||
 | 
			
		||||
import org.springframework.boot.test.util.TestPropertyValues;
 | 
			
		||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
			
		||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.context.annotation.Conditional;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
| 
						 | 
				
			
			@ -34,50 +32,25 @@ import static org.assertj.core.api.Assertions.assertThat;
 | 
			
		|||
 */
 | 
			
		||||
public class OnBootstrapHostsConditionTests {
 | 
			
		||||
 | 
			
		||||
	private AnnotationConfigApplicationContext context;
 | 
			
		||||
 | 
			
		||||
	@After
 | 
			
		||||
	public void tearDown() {
 | 
			
		||||
		if (this.context != null) {
 | 
			
		||||
			this.context.close();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
 | 
			
		||||
			.withUserConfiguration(TestConfig.class);
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void bootstrapHostsNotDefined() {
 | 
			
		||||
		load(TestConfig.class);
 | 
			
		||||
		assertThat(this.context.containsBean("foo")).isFalse();
 | 
			
		||||
		this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void bootstrapHostsDefinedAsCommaSeparated() {
 | 
			
		||||
		load(TestConfig.class, "spring.couchbase.bootstrap-hosts=value1");
 | 
			
		||||
		assertThat(this.context.containsBean("foo")).isTrue();
 | 
			
		||||
		this.contextRunner.withPropertyValues("spring.couchbase.bootstrap-hosts=value1")
 | 
			
		||||
				.run((context) -> assertThat(context).hasBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void bootstrapHostsDefinedAsList() {
 | 
			
		||||
		load(TestConfig.class, "spring.couchbase.bootstrap-hosts[0]=value1");
 | 
			
		||||
		assertThat(this.context.containsBean("foo")).isTrue();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void bootstrapHostsDefinedAsCommaSeparatedRelaxed() {
 | 
			
		||||
		load(TestConfig.class, "spring.couchbase.bootstrapHosts=value1");
 | 
			
		||||
		assertThat(this.context.containsBean("foo")).isTrue();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void bootstrapHostsDefinedAsListRelaxed() {
 | 
			
		||||
		load(TestConfig.class, "spring.couchbase.bootstrapHosts[0]=value1");
 | 
			
		||||
		assertThat(this.context.containsBean("foo")).isTrue();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private void load(Class<?> config, String... environment) {
 | 
			
		||||
		this.context = new AnnotationConfigApplicationContext();
 | 
			
		||||
		TestPropertyValues.of(environment).applyTo(this.context);
 | 
			
		||||
		this.context.register(config);
 | 
			
		||||
		this.context.refresh();
 | 
			
		||||
		this.contextRunner
 | 
			
		||||
				.withPropertyValues("spring.couchbase.bootstrap-hosts[0]=value1")
 | 
			
		||||
				.run((context) -> assertThat(context).hasBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Configuration
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,68 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2012-2018 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
 | 
			
		||||
 *
 | 
			
		||||
 *      http://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 org.springframework.boot.autoconfigure.webservices;
 | 
			
		||||
 | 
			
		||||
import org.junit.Test;
 | 
			
		||||
 | 
			
		||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.context.annotation.Conditional;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
 | 
			
		||||
import static org.assertj.core.api.Assertions.assertThat;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Tests for {@link OnWsdlLocationsCondition}.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Eneias Silva
 | 
			
		||||
 * @author Stephane Nicoll
 | 
			
		||||
 */
 | 
			
		||||
public class OnWsdlLocationsConditionTests {
 | 
			
		||||
 | 
			
		||||
	private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
 | 
			
		||||
			.withUserConfiguration(TestConfig.class);
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void bootstrapHostsNotDefined() {
 | 
			
		||||
		this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void bootstrapHostsDefinedAsCommaSeparated() {
 | 
			
		||||
		this.contextRunner.withPropertyValues("spring.webservices.wsdl-locations=value1")
 | 
			
		||||
				.run((context) -> assertThat(context).hasBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void bootstrapHostsDefinedAsList() {
 | 
			
		||||
		this.contextRunner
 | 
			
		||||
				.withPropertyValues("spring.webservices.wsdl-locations[0]=value1")
 | 
			
		||||
				.run((context) -> assertThat(context).hasBean("foo"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Configuration
 | 
			
		||||
	@Conditional(OnWsdlLocationsCondition.class)
 | 
			
		||||
	protected static class TestConfig {
 | 
			
		||||
 | 
			
		||||
		@Bean
 | 
			
		||||
		public String foo() {
 | 
			
		||||
			return "foo";
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2012-2017 the original author or authors.
 | 
			
		||||
 * Copyright 2012-2018 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.
 | 
			
		||||
| 
						 | 
				
			
			@ -37,6 +37,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 | 
			
		|||
 * @author Vedran Pavic
 | 
			
		||||
 * @author Stephane Nicoll
 | 
			
		||||
 * @author Andy Wilkinson
 | 
			
		||||
 * @author Eneias Silva
 | 
			
		||||
 */
 | 
			
		||||
public class WebServicesAutoConfigurationTests {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -104,6 +105,19 @@ public class WebServicesAutoConfigurationTests {
 | 
			
		|||
				});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void withWsdlBeansAsList() {
 | 
			
		||||
		this.contextRunner
 | 
			
		||||
				.withPropertyValues(
 | 
			
		||||
						"spring.webservices.wsdl-locations[0]=classpath:/wsdl")
 | 
			
		||||
				.run((context) -> {
 | 
			
		||||
					assertThat(context.getBeansOfType(SimpleWsdl11Definition.class))
 | 
			
		||||
							.hasSize(1).containsKey("service");
 | 
			
		||||
					assertThat(context.getBeansOfType(SimpleXsdSchema.class)).hasSize(1)
 | 
			
		||||
							.containsKey("types");
 | 
			
		||||
				});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private Collection<String> getUrlMappings(ApplicationContext context) {
 | 
			
		||||
		return getServletRegistrationBean(context).getUrlMappings();
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue