From 9f6d8c67785d6024ac0499516f8e7cd99dda5843 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 19 Jul 2017 08:50:26 -0700 Subject: [PATCH] Add ConfigurableReactiveWebApplicationContext Split the current `ReactiveWebApplicationContext` into two distinct interfaces to mirror other Spring context interfaces. The `ReactiveWebApplicationContext` interface now only exposes getters. The `ConfigurableReactiveWebApplicationContext` exposes setters and extends from `ConfigurableApplicationContext`. Fixes gh-9794 --- ...igurableReactiveWebApplicationContext.java | 36 +++++++++++++++++++ .../GenericReactiveWebApplicationContext.java | 5 +-- .../ReactiveWebApplicationContext.java | 6 ---- 3 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 spring-boot/src/main/java/org/springframework/boot/web/reactive/context/ConfigurableReactiveWebApplicationContext.java diff --git a/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/ConfigurableReactiveWebApplicationContext.java b/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/ConfigurableReactiveWebApplicationContext.java new file mode 100644 index 0000000000..09ee1f1f9e --- /dev/null +++ b/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/ConfigurableReactiveWebApplicationContext.java @@ -0,0 +1,36 @@ +/* + * Copyright 2012-2017 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.web.reactive.context; + +import org.springframework.context.ConfigurableApplicationContext; + +/** + * Interface to provide configuration for a reactive web application. + * + * @author Stephane Nicoll + * @since 2.0.0 + */ +public interface ConfigurableReactiveWebApplicationContext + extends ConfigurableApplicationContext, ReactiveWebApplicationContext { + + /** + * Set the namespace for this reactive web application context. + * @param namespace the namespace for the context + */ + void setNamespace(String namespace); + +} diff --git a/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/GenericReactiveWebApplicationContext.java b/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/GenericReactiveWebApplicationContext.java index 38deb96123..a3b73c13e2 100644 --- a/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/GenericReactiveWebApplicationContext.java +++ b/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/GenericReactiveWebApplicationContext.java @@ -33,8 +33,9 @@ import org.springframework.util.StringUtils; * @author Brian Clozel * @since 2.0.0 */ -public class GenericReactiveWebApplicationContext extends - AnnotationConfigApplicationContext implements ReactiveWebApplicationContext { +public class GenericReactiveWebApplicationContext + extends AnnotationConfigApplicationContext + implements ConfigurableReactiveWebApplicationContext { private String namespace; diff --git a/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/ReactiveWebApplicationContext.java b/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/ReactiveWebApplicationContext.java index 402d64d02d..703bc469cb 100644 --- a/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/ReactiveWebApplicationContext.java +++ b/spring-boot/src/main/java/org/springframework/boot/web/reactive/context/ReactiveWebApplicationContext.java @@ -26,12 +26,6 @@ import org.springframework.context.ApplicationContext; */ public interface ReactiveWebApplicationContext extends ApplicationContext { - /** - * Set the namespace for this reactive web application context. - * @param namespace the namespace for the context - */ - void setNamespace(String namespace); - /** * Return the namespace for this reactive web application context, if any. * @return the namespace or {@code null}