/*
 * 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 org.springframework.boot.web.context;

import org.springframework.boot.web.server.WebServer;
import org.springframework.context.ApplicationContext;
import org.springframework.util.ObjectUtils;

Interface to be implemented by application contexts that create and manage the lifecycle of an embedded WebServer.
Author:Phillip Webb
Since:2.0.0
/** * Interface to be implemented by {@link ApplicationContext application contexts} that * create and manage the lifecycle of an embedded {@link WebServer}. * * @author Phillip Webb * @since 2.0.0 */
public interface WebServerApplicationContext extends ApplicationContext {
Returns the WebServer that was created by the context or null if the server has not yet been created.
Returns:the web server
/** * Returns the {@link WebServer} that was created by the context or {@code null} if * the server has not yet been created. * @return the web server */
WebServer getWebServer();
Returns the namespace of the web server application context or null if no namespace has been set. Used for disambiguation when multiple web servers are running in the same application (for example a management context running on a different port).
Returns:the server namespace
/** * Returns the namespace of the web server application context or {@code null} if no * namespace has been set. Used for disambiguation when multiple web servers are * running in the same application (for example a management context running on a * different port). * @return the server namespace */
String getServerNamespace();
Returns true if the specified context is a WebServerApplicationContext with a matching server namespace.
Params:
  • context – the context to check
  • serverNamespace – the server namespace to match against
Returns:true if the server namespace of the context matches
Since:2.1.8
/** * Returns {@code true} if the specified context is a * {@link WebServerApplicationContext} with a matching server namespace. * @param context the context to check * @param serverNamespace the server namespace to match against * @return {@code true} if the server namespace of the context matches * @since 2.1.8 */
static boolean hasServerNamespace(ApplicationContext context, String serverNamespace) { return (context instanceof WebServerApplicationContext) && ObjectUtils .nullSafeEquals(((WebServerApplicationContext) context).getServerNamespace(), serverNamespace); } }