diff --git a/spring-boot-docs/pom.xml b/spring-boot-docs/pom.xml index 617f5fd18e0..551aed9291a 100644 --- a/spring-boot-docs/pom.xml +++ b/spring-boot-docs/pom.xml @@ -730,6 +730,13 @@ jedis true + + + org.springframework.boot + spring-boot + test-jar + test + diff --git a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index e40c1e4a52c..5f3bcf82cc7 100644 --- a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -149,11 +149,7 @@ For example: [source,java,indent=0] ---- - new SpringApplicationBuilder() - .bannerMode(Banner.Mode.OFF) - .sources(Parent.class) - .child(Application.class) - .run(args); +include::{code-examples}/builder/SpringApplicationBuilderExample.java[tag=hierarchy] ---- NOTE: There are some restrictions when creating an `ApplicationContext` hierarchy, e.g. diff --git a/spring-boot-docs/src/main/java/org/springframework/boot/builder/SpringApplicationBuilderExample.java b/spring-boot-docs/src/main/java/org/springframework/boot/builder/SpringApplicationBuilderExample.java new file mode 100644 index 00000000000..a08a18021da --- /dev/null +++ b/spring-boot-docs/src/main/java/org/springframework/boot/builder/SpringApplicationBuilderExample.java @@ -0,0 +1,54 @@ +/* + * Copyright 2012-2016 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.builder; + +import org.springframework.boot.Banner; + +/** + * Examples of using {@link SpringApplicationBuilder}. + * + * @author Andy Wilkinson + */ +public class SpringApplicationBuilderExample { + + public void hierarchyWithDisabledBanner(String[] args) { + // @formatter:off + // tag::hierarchy[] + new SpringApplicationBuilder() + .sources(Parent.class) + .child(Application.class) + .bannerMode(Banner.Mode.OFF) + .run(args); + // end::hierarchy[] + // @formatter:on + } + + /** + * Parent application configuration. + */ + static class Parent { + + } + + /** + * Application configuration. + */ + static class Application { + + } + +} diff --git a/spring-boot-docs/src/test/java/org/springframework/boot/builder/SpringApplicationBuilderExampleTests.java b/spring-boot-docs/src/test/java/org/springframework/boot/builder/SpringApplicationBuilderExampleTests.java new file mode 100644 index 00000000000..0287b21da8b --- /dev/null +++ b/spring-boot-docs/src/test/java/org/springframework/boot/builder/SpringApplicationBuilderExampleTests.java @@ -0,0 +1,47 @@ +/* + * Copyright 2012-2016 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.builder; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.springframework.boot.test.rule.OutputCapture; +import org.springframework.boot.testutil.ClassPathExclusions; +import org.springframework.boot.testutil.FilteredClassPathRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Tests for {@link SpringApplicationBuilderExample}. + * + * @author Andy Wilkinson + */ +@RunWith(FilteredClassPathRunner.class) +@ClassPathExclusions("spring-web-*.jar") +public class SpringApplicationBuilderExampleTests { + + @Rule + public OutputCapture outputCapture = new OutputCapture(); + + @Test + public void contextHierarchyWithDisabledBanner() { + new SpringApplicationBuilderExample().hierarchyWithDisabledBanner(new String[0]); + assertThat(this.outputCapture.toString()).doesNotContain(":: Spring Boot ::"); + } + +}