Polishing

This commit is contained in:
Juergen Hoeller 2019-03-07 17:55:32 +01:00
parent b8f29962ac
commit 6c87ef09c1
19 changed files with 117 additions and 110 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -156,8 +156,7 @@ public abstract class YamlProcessor {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("Loading from YAML: " + resource); logger.debug("Loading from YAML: " + resource);
} }
Reader reader = new UnicodeReader(resource.getInputStream()); try (Reader reader = new UnicodeReader(resource.getInputStream())) {
try {
for (Object object : yaml.loadAll(reader)) { for (Object object : yaml.loadAll(reader)) {
if (object != null && process(asMap(object), callback)) { if (object != null && process(asMap(object), callback)) {
count++; count++;
@ -171,9 +170,6 @@ public abstract class YamlProcessor {
" from YAML resource: " + resource); " from YAML resource: " + resource);
} }
} }
finally {
reader.close();
}
} }
catch (IOException ex) { catch (IOException ex) {
handleProcessError(resource, ex); handleProcessError(resource, ex);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -663,7 +663,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess
* Return whether this bean has the specified qualifier. * Return whether this bean has the specified qualifier.
*/ */
public boolean hasQualifier(String typeName) { public boolean hasQualifier(String typeName) {
return this.qualifiers.keySet().contains(typeName); return this.qualifiers.containsKey(typeName);
} }
/** /**

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -40,8 +40,10 @@ import org.springframework.lang.Nullable;
public interface DeferredImportSelector extends ImportSelector { public interface DeferredImportSelector extends ImportSelector {
/** /**
* Return a specific import group or {@code null} if no grouping is required. * Return a specific import group.
* @return the import group class or {@code null} * <p>The default implementations return {@code null} for no grouping required.
* @return the import group class, or {@code null} if none
* @since 5.0
*/ */
@Nullable @Nullable
default Class<? extends Group> getImportGroup() { default Class<? extends Group> getImportGroup() {
@ -61,11 +63,12 @@ public interface DeferredImportSelector extends ImportSelector {
void process(AnnotationMetadata metadata, DeferredImportSelector selector); void process(AnnotationMetadata metadata, DeferredImportSelector selector);
/** /**
* Return the {@link Entry entries} of which class(es) should be imported for this * Return the {@link Entry entries} of which class(es) should be imported
* group. * for this group.
*/ */
Iterable<Entry> selectImports(); Iterable<Entry> selectImports();
/** /**
* An entry that holds the {@link AnnotationMetadata} of the importing * An entry that holds the {@link AnnotationMetadata} of the importing
* {@link Configuration} class and the class name to import. * {@link Configuration} class and the class name to import.
@ -97,16 +100,16 @@ public interface DeferredImportSelector extends ImportSelector {
} }
@Override @Override
public boolean equals(Object o) { public boolean equals(Object other) {
if (this == o) { if (this == other) {
return true; return true;
} }
if (o == null || getClass() != o.getClass()) { if (other == null || getClass() != other.getClass()) {
return false; return false;
} }
Entry entry = (Entry) o; Entry entry = (Entry) other;
return Objects.equals(this.metadata, entry.metadata) && return (Objects.equals(this.metadata, entry.metadata) &&
Objects.equals(this.importClassName, entry.importClassName); Objects.equals(this.importClassName, entry.importClassName));
} }
@Override @Override

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2013 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -58,7 +58,6 @@ public interface ImportBeanDefinitionRegistrar {
* @param importingClassMetadata annotation metadata of the importing class * @param importingClassMetadata annotation metadata of the importing class
* @param registry current bean definition registry * @param registry current bean definition registry
*/ */
public void registerBeanDefinitions( void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry);
AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry);
} }

View File

@ -20,12 +20,12 @@ import org.springframework.core.type.AnnotationMetadata;
/** /**
* Interface to be implemented by types that determine which @{@link Configuration} * Interface to be implemented by types that determine which @{@link Configuration}
* class(es) should be imported based on a given selection criteria, usually one or more * class(es) should be imported based on a given selection criteria, usually one or
* annotation attributes. * more annotation attributes.
* *
* <p>An {@link ImportSelector} may implement any of the following * <p>An {@link ImportSelector} may implement any of the following
* {@link org.springframework.beans.factory.Aware Aware} interfaces, and their respective * {@link org.springframework.beans.factory.Aware Aware} interfaces,
* methods will be called prior to {@link #selectImports}: * and their respective methods will be called prior to {@link #selectImports}:
* <ul> * <ul>
* <li>{@link org.springframework.context.EnvironmentAware EnvironmentAware}</li> * <li>{@link org.springframework.context.EnvironmentAware EnvironmentAware}</li>
* <li>{@link org.springframework.beans.factory.BeanFactoryAware BeanFactoryAware}</li> * <li>{@link org.springframework.beans.factory.BeanFactoryAware BeanFactoryAware}</li>
@ -33,10 +33,10 @@ import org.springframework.core.type.AnnotationMetadata;
* <li>{@link org.springframework.context.ResourceLoaderAware ResourceLoaderAware}</li> * <li>{@link org.springframework.context.ResourceLoaderAware ResourceLoaderAware}</li>
* </ul> * </ul>
* *
* <p>ImportSelectors are usually processed in the same way as regular {@code @Import} * <p>{@code ImportSelector} implementations are usually processed in the same way
* annotations, however, it is also possible to defer selection of imports until all * as regular {@code @Import} annotations, however, it is also possible to defer
* {@code @Configuration} classes have been processed (see {@link DeferredImportSelector} * selection of imports until all {@code @Configuration} classes have been processed
* for details). * (see {@link DeferredImportSelector} for details).
* *
* @author Chris Beams * @author Chris Beams
* @since 3.1 * @since 3.1

View File

@ -92,24 +92,24 @@ import org.springframework.util.ReflectionUtils;
* to detect special beans defined in its internal bean factory: * to detect special beans defined in its internal bean factory:
* Therefore, this class automatically registers * Therefore, this class automatically registers
* {@link org.springframework.beans.factory.config.BeanFactoryPostProcessor BeanFactoryPostProcessors}, * {@link org.springframework.beans.factory.config.BeanFactoryPostProcessor BeanFactoryPostProcessors},
* {@link org.springframework.beans.factory.config.BeanPostProcessor BeanPostProcessors} * {@link org.springframework.beans.factory.config.BeanPostProcessor BeanPostProcessors},
* and {@link org.springframework.context.ApplicationListener ApplicationListeners} * and {@link org.springframework.context.ApplicationListener ApplicationListeners}
* which are defined as beans in the context. * which are defined as beans in the context.
* *
* <p>A {@link org.springframework.context.MessageSource} may also be supplied * <p>A {@link org.springframework.context.MessageSource} may also be supplied
* as a bean in the context, with the name "messageSource"; otherwise, message * as a bean in the context, with the name "messageSource"; otherwise, message
* resolution is delegated to the parent context. Furthermore, a multicaster * resolution is delegated to the parent context. Furthermore, a multicaster
* for application events can be supplied as "applicationEventMulticaster" bean * for application events can be supplied as an "applicationEventMulticaster" bean
* of type {@link org.springframework.context.event.ApplicationEventMulticaster} * of type {@link org.springframework.context.event.ApplicationEventMulticaster}
* in the context; otherwise, a default multicaster of type * in the context; otherwise, a default multicaster of type
* {@link org.springframework.context.event.SimpleApplicationEventMulticaster} will be used. * {@link org.springframework.context.event.SimpleApplicationEventMulticaster} will be used.
* *
* <p>Implements resource loading through extending * <p>Implements resource loading by extending
* {@link org.springframework.core.io.DefaultResourceLoader}. * {@link org.springframework.core.io.DefaultResourceLoader}.
* Consequently treats non-URL resource paths as class path resources * Consequently treats non-URL resource paths as class path resources
* (supporting full class path resource names that include the package path, * (supporting full class path resource names that include the package path,
* e.g. "mypackage/myresource.dat"), unless the {@link #getResourceByPath} * e.g. "mypackage/myresource.dat"), unless the {@link #getResourceByPath}
* method is overwritten in a subclass. * method is overridden in a subclass.
* *
* @author Rod Johnson * @author Rod Johnson
* @author Juergen Hoeller * @author Juergen Hoeller
@ -390,7 +390,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader
else { else {
applicationEvent = new PayloadApplicationEvent<>(this, event); applicationEvent = new PayloadApplicationEvent<>(this, event);
if (eventType == null) { if (eventType == null) {
eventType = ((PayloadApplicationEvent) applicationEvent).getResolvableType(); eventType = ((PayloadApplicationEvent<?>) applicationEvent).getResolvableType();
} }
} }
@ -713,7 +713,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader
} }
/** /**
* Instantiate and invoke all registered BeanPostProcessor beans, * Instantiate and register all BeanPostProcessor beans,
* respecting explicit order if given. * respecting explicit order if given.
* <p>Must be called before any instantiation of application beans. * <p>Must be called before any instantiation of application beans.
*/ */

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -639,7 +639,7 @@ public abstract class ObjectUtils {
/** /**
* Determine the class name for the given object. * Determine the class name for the given object.
* <p>Returns {@code "null"} if {@code obj} is {@code null}. * <p>Returns a {@code "null"} String if {@code obj} is {@code null}.
* @param obj the object to introspect (may be {@code null}) * @param obj the object to introspect (may be {@code null})
* @return the corresponding class name * @return the corresponding class name
*/ */
@ -650,7 +650,7 @@ public abstract class ObjectUtils {
/** /**
* Return a String representation of the specified Object. * Return a String representation of the specified Object.
* <p>Builds a String representation of the contents in case of an array. * <p>Builds a String representation of the contents in case of an array.
* Returns {@code "null"} if {@code obj} is {@code null}. * Returns a {@code "null"} String if {@code obj} is {@code null}.
* @param obj the object to build a String representation for * @param obj the object to build a String representation for
* @return a String representation of {@code obj} * @return a String representation of {@code obj}
*/ */
@ -696,8 +696,8 @@ public abstract class ObjectUtils {
* Return a String representation of the contents of the specified array. * Return a String representation of the contents of the specified array.
* <p>The String representation consists of a list of the array's elements, * <p>The String representation consists of a list of the array's elements,
* enclosed in curly braces ({@code "{}"}). Adjacent elements are separated * enclosed in curly braces ({@code "{}"}). Adjacent elements are separated
* by the characters {@code ", "} (a comma followed by a space). Returns * by the characters {@code ", "} (a comma followed by a space).
* {@code "null"} if {@code array} is {@code null}. * Returns a {@code "null"} String if {@code array} is {@code null}.
* @param array the array to build a String representation for * @param array the array to build a String representation for
* @return a String representation of {@code array} * @return a String representation of {@code array}
*/ */
@ -727,8 +727,8 @@ public abstract class ObjectUtils {
* Return a String representation of the contents of the specified array. * Return a String representation of the contents of the specified array.
* <p>The String representation consists of a list of the array's elements, * <p>The String representation consists of a list of the array's elements,
* enclosed in curly braces ({@code "{}"}). Adjacent elements are separated * enclosed in curly braces ({@code "{}"}). Adjacent elements are separated
* by the characters {@code ", "} (a comma followed by a space). Returns * by the characters {@code ", "} (a comma followed by a space).
* {@code "null"} if {@code array} is {@code null}. * Returns a {@code "null"} String if {@code array} is {@code null}.
* @param array the array to build a String representation for * @param array the array to build a String representation for
* @return a String representation of {@code array} * @return a String representation of {@code array}
*/ */
@ -759,8 +759,8 @@ public abstract class ObjectUtils {
* Return a String representation of the contents of the specified array. * Return a String representation of the contents of the specified array.
* <p>The String representation consists of a list of the array's elements, * <p>The String representation consists of a list of the array's elements,
* enclosed in curly braces ({@code "{}"}). Adjacent elements are separated * enclosed in curly braces ({@code "{}"}). Adjacent elements are separated
* by the characters {@code ", "} (a comma followed by a space). Returns * by the characters {@code ", "} (a comma followed by a space).
* {@code "null"} if {@code array} is {@code null}. * Returns a {@code "null"} String if {@code array} is {@code null}.
* @param array the array to build a String representation for * @param array the array to build a String representation for
* @return a String representation of {@code array} * @return a String representation of {@code array}
*/ */
@ -790,8 +790,8 @@ public abstract class ObjectUtils {
* Return a String representation of the contents of the specified array. * Return a String representation of the contents of the specified array.
* <p>The String representation consists of a list of the array's elements, * <p>The String representation consists of a list of the array's elements,
* enclosed in curly braces ({@code "{}"}). Adjacent elements are separated * enclosed in curly braces ({@code "{}"}). Adjacent elements are separated
* by the characters {@code ", "} (a comma followed by a space). Returns * by the characters {@code ", "} (a comma followed by a space).
* {@code "null"} if {@code array} is {@code null}. * Returns a {@code "null"} String if {@code array} is {@code null}.
* @param array the array to build a String representation for * @param array the array to build a String representation for
* @return a String representation of {@code array} * @return a String representation of {@code array}
*/ */
@ -821,8 +821,8 @@ public abstract class ObjectUtils {
* Return a String representation of the contents of the specified array. * Return a String representation of the contents of the specified array.
* <p>The String representation consists of a list of the array's elements, * <p>The String representation consists of a list of the array's elements,
* enclosed in curly braces ({@code "{}"}). Adjacent elements are separated * enclosed in curly braces ({@code "{}"}). Adjacent elements are separated
* by the characters {@code ", "} (a comma followed by a space). Returns * by the characters {@code ", "} (a comma followed by a space).
* {@code "null"} if {@code array} is {@code null}. * Returns a {@code "null"} String if {@code array} is {@code null}.
* @param array the array to build a String representation for * @param array the array to build a String representation for
* @return a String representation of {@code array} * @return a String representation of {@code array}
*/ */
@ -853,8 +853,8 @@ public abstract class ObjectUtils {
* Return a String representation of the contents of the specified array. * Return a String representation of the contents of the specified array.
* <p>The String representation consists of a list of the array's elements, * <p>The String representation consists of a list of the array's elements,
* enclosed in curly braces ({@code "{}"}). Adjacent elements are separated * enclosed in curly braces ({@code "{}"}). Adjacent elements are separated
* by the characters {@code ", "} (a comma followed by a space). Returns * by the characters {@code ", "} (a comma followed by a space).
* {@code "null"} if {@code array} is {@code null}. * Returns a {@code "null"} String if {@code array} is {@code null}.
* @param array the array to build a String representation for * @param array the array to build a String representation for
* @return a String representation of {@code array} * @return a String representation of {@code array}
*/ */
@ -885,8 +885,8 @@ public abstract class ObjectUtils {
* Return a String representation of the contents of the specified array. * Return a String representation of the contents of the specified array.
* <p>The String representation consists of a list of the array's elements, * <p>The String representation consists of a list of the array's elements,
* enclosed in curly braces ({@code "{}"}). Adjacent elements are separated * enclosed in curly braces ({@code "{}"}). Adjacent elements are separated
* by the characters {@code ", "} (a comma followed by a space). Returns * by the characters {@code ", "} (a comma followed by a space).
* {@code "null"} if {@code array} is {@code null}. * Returns a {@code "null"} String if {@code array} is {@code null}.
* @param array the array to build a String representation for * @param array the array to build a String representation for
* @return a String representation of {@code array} * @return a String representation of {@code array}
*/ */
@ -916,8 +916,8 @@ public abstract class ObjectUtils {
* Return a String representation of the contents of the specified array. * Return a String representation of the contents of the specified array.
* <p>The String representation consists of a list of the array's elements, * <p>The String representation consists of a list of the array's elements,
* enclosed in curly braces ({@code "{}"}). Adjacent elements are separated * enclosed in curly braces ({@code "{}"}). Adjacent elements are separated
* by the characters {@code ", "} (a comma followed by a space). Returns * by the characters {@code ", "} (a comma followed by a space).
* {@code "null"} if {@code array} is {@code null}. * Returns a {@code "null"} String if {@code array} is {@code null}.
* @param array the array to build a String representation for * @param array the array to build a String representation for
* @return a String representation of {@code array} * @return a String representation of {@code array}
*/ */
@ -947,8 +947,8 @@ public abstract class ObjectUtils {
* Return a String representation of the contents of the specified array. * Return a String representation of the contents of the specified array.
* <p>The String representation consists of a list of the array's elements, * <p>The String representation consists of a list of the array's elements,
* enclosed in curly braces ({@code "{}"}). Adjacent elements are separated * enclosed in curly braces ({@code "{}"}). Adjacent elements are separated
* by the characters {@code ", "} (a comma followed by a space). Returns * by the characters {@code ", "} (a comma followed by a space).
* {@code "null"} if {@code array} is {@code null}. * Returns a {@code "null"} String if {@code array} is {@code null}.
* @param array the array to build a String representation for * @param array the array to build a String representation for
* @return a String representation of {@code array} * @return a String representation of {@code array}
*/ */

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -147,8 +147,11 @@ public class MethodJmsListenerEndpoint extends AbstractJmsListenerEndpoint imple
Assert.state(this.messageHandlerMethodFactory != null, Assert.state(this.messageHandlerMethodFactory != null,
"Could not create message listener - MessageHandlerMethodFactory not set"); "Could not create message listener - MessageHandlerMethodFactory not set");
MessagingMessageListenerAdapter messageListener = createMessageListenerInstance(); MessagingMessageListenerAdapter messageListener = createMessageListenerInstance();
Object bean = getBean();
Method method = getMethod();
Assert.state(bean != null && method != null, "No bean+method set on endpoint");
InvocableHandlerMethod invocableHandlerMethod = InvocableHandlerMethod invocableHandlerMethod =
this.messageHandlerMethodFactory.createInvocableHandlerMethod(getBean(), getMethod()); this.messageHandlerMethodFactory.createInvocableHandlerMethod(bean, method);
messageListener.setHandlerMethod(invocableHandlerMethod); messageListener.setHandlerMethod(invocableHandlerMethod);
String responseDestination = getDefaultResponseDestination(); String responseDestination = getDefaultResponseDestination();
if (StringUtils.hasText(responseDestination)) { if (StringUtils.hasText(responseDestination)) {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -34,6 +34,7 @@ import org.springframework.validation.ObjectError;
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class MethodArgumentNotValidException extends MethodArgumentResolutionException { public class MethodArgumentNotValidException extends MethodArgumentResolutionException {
@Nullable
private final BindingResult bindingResult; private final BindingResult bindingResult;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -67,18 +67,20 @@ import org.springframework.validation.Validator;
* protocols such as STOMP. * protocols such as STOMP.
* *
* <p>{@link #clientInboundChannel()} and {@link #clientOutboundChannel()} deliver * <p>{@link #clientInboundChannel()} and {@link #clientOutboundChannel()} deliver
* messages to and from remote clients to several message handlers such as * messages to and from remote clients to several message handlers such as the
* following.
* <ul> * <ul>
* <li>{@link #simpAnnotationMethodMessageHandler()}</li> * <li>{@link #simpAnnotationMethodMessageHandler()}</li>
* <li>{@link #simpleBrokerMessageHandler()}</li> * <li>{@link #simpleBrokerMessageHandler()}</li>
* <li>{@link #stompBrokerRelayMessageHandler()}</li> * <li>{@link #stompBrokerRelayMessageHandler()}</li>
* <li>{@link #userDestinationMessageHandler()}</li> * <li>{@link #userDestinationMessageHandler()}</li>
* </ul> * </ul>
* while {@link #brokerChannel()} delivers messages from within the application to the *
* <p>{@link #brokerChannel()} delivers messages from within the application to the
* the respective message handlers. {@link #brokerMessagingTemplate()} can be injected * the respective message handlers. {@link #brokerMessagingTemplate()} can be injected
* into any application component to send messages. * into any application component to send messages.
* *
* <p>Subclasses are responsible for the part of the configuration that feed messages * <p>Subclasses are responsible for the parts of the configuration that feed messages
* to and from the client inbound/outbound channels (e.g. STOMP over WebSocket). * to and from the client inbound/outbound channels (e.g. STOMP over WebSocket).
* *
* @author Rossen Stoyanchev * @author Rossen Stoyanchev
@ -403,7 +405,7 @@ public abstract class AbstractMessageBrokerConfiguration implements ApplicationC
* Override this method to add custom message converters. * Override this method to add custom message converters.
* @param messageConverters the list to add converters to, initially empty * @param messageConverters the list to add converters to, initially empty
* @return {@code true} if default message converters should be added to list, * @return {@code true} if default message converters should be added to list,
* {@code false} if no more converters should be added. * {@code false} if no more converters should be added
*/ */
protected boolean configureMessageConverters(List<MessageConverter> messageConverters) { protected boolean configureMessageConverters(List<MessageConverter> messageConverters) {
return true; return true;
@ -448,9 +450,8 @@ public abstract class AbstractMessageBrokerConfiguration implements ApplicationC
protected abstract SimpUserRegistry createLocalUserRegistry(@Nullable Integer order); protected abstract SimpUserRegistry createLocalUserRegistry(@Nullable Integer order);
/** /**
* Return a {@link org.springframework.validation.Validator * Return an {@link org.springframework.validation.Validator} instance for
* org.springframework.validation.Validators} instance for validating * validating {@code @Payload} method arguments.
* {@code @Payload} method arguments.
* <p>In order, this method tries to get a Validator instance: * <p>In order, this method tries to get a Validator instance:
* <ul> * <ul>
* <li>delegating to getValidator() first</li> * <li>delegating to getValidator() first</li>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -267,7 +267,7 @@ public class StompDecoder {
if (index + 1 >= inString.length()) { if (index + 1 >= inString.length()) {
throw new StompConversionException("Illegal escape sequence at index " + index + ": " + inString); throw new StompConversionException("Illegal escape sequence at index " + index + ": " + inString);
} }
Character c = inString.charAt(index + 1); char c = inString.charAt(index + 1);
if (c == 'r') { if (c == 'r') {
sb.append('\r'); sb.append('\r');
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -64,7 +64,7 @@ public class MultiServerUserRegistry implements SimpUserRegistry, SmartApplicati
* Create an instance wrapping the local user registry. * Create an instance wrapping the local user registry.
*/ */
public MultiServerUserRegistry(SimpUserRegistry localRegistry) { public MultiServerUserRegistry(SimpUserRegistry localRegistry) {
Assert.notNull(localRegistry, "'localRegistry' is required."); Assert.notNull(localRegistry, "'localRegistry' is required");
this.id = generateId(); this.id = generateId();
this.localRegistry = localRegistry; this.localRegistry = localRegistry;
this.delegateApplicationEvents = this.localRegistry instanceof SmartApplicationListener; this.delegateApplicationEvents = this.localRegistry instanceof SmartApplicationListener;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2017 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -38,6 +38,8 @@ import org.springframework.test.annotation.DirtiesContext.HierarchyMode;
* *
* @author Sam Brannen * @author Sam Brannen
* @since 2.5 * @since 2.5
* @see TestContextManager
* @see TestExecutionListener
*/ */
public interface TestContext extends AttributeAccessor, Serializable { public interface TestContext extends AttributeAccessor, Serializable {
@ -47,7 +49,7 @@ public interface TestContext extends AttributeAccessor, Serializable {
* <p>Implementations of this method are responsible for loading the * <p>Implementations of this method are responsible for loading the
* application context if the corresponding context has not already been * application context if the corresponding context has not already been
* loaded, potentially caching the context as well. * loaded, potentially caching the context as well.
* @return the application context * @return the application context (never {@code null})
* @throws IllegalStateException if an error occurs while retrieving the * @throws IllegalStateException if an error occurs while retrieving the
* application context * application context
*/ */
@ -62,7 +64,7 @@ public interface TestContext extends AttributeAccessor, Serializable {
/** /**
* Get the current {@linkplain Object test instance} for this test context. * Get the current {@linkplain Object test instance} for this test context.
* <p>Note: this is a mutable property. * <p>Note: this is a mutable property.
* @return the current test instance (may be {@code null}) * @return the current test instance (never {@code null})
* @see #updateState(Object, Method, Throwable) * @see #updateState(Object, Method, Throwable)
*/ */
Object getTestInstance(); Object getTestInstance();
@ -70,7 +72,7 @@ public interface TestContext extends AttributeAccessor, Serializable {
/** /**
* Get the current {@linkplain Method test method} for this test context. * Get the current {@linkplain Method test method} for this test context.
* <p>Note: this is a mutable property. * <p>Note: this is a mutable property.
* @return the current test method * @return the current test method (never {@code null})
* @see #updateState(Object, Method, Throwable) * @see #updateState(Object, Method, Throwable)
*/ */
Method getTestMethod(); Method getTestMethod();

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2017 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.test.web.reactive.server; package org.springframework.test.web.reactive.server;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@ -32,7 +33,7 @@ class DefaultMockServerSpec extends AbstractMockServerSpec<DefaultMockServerSpec
DefaultMockServerSpec(WebHandler webHandler) { DefaultMockServerSpec(WebHandler webHandler) {
Assert.notNull(webHandler, "'WebHandler' is required"); Assert.notNull(webHandler, "WebHandler is required");
this.webHandler = webHandler; this.webHandler = webHandler;
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2017 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.test.web.reactive.server; package org.springframework.test.web.reactive.server;
import org.springframework.web.server.adapter.WebHttpHandlerBuilder; import org.springframework.web.server.adapter.WebHttpHandlerBuilder;
@ -51,7 +52,7 @@ public interface MockServerConfigurer {
/** /**
* Invoked just before the mock server is built. Use this hook to inspect * Invoked just before the mock server is built. Use this hook to inspect
* and/or modify application-declared filtes and exception handlers, * and/or modify application-declared filters and exception handlers.
* @param builder the builder for the {@code HttpHandler} that will handle * @param builder the builder for the {@code HttpHandler} that will handle
* requests (i.e. the mock server) * requests (i.e. the mock server)
*/ */

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2017 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.test.web.reactive.server; package org.springframework.test.web.reactive.server;
import org.springframework.http.client.reactive.ClientHttpConnector; import org.springframework.http.client.reactive.ClientHttpConnector;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -30,7 +30,6 @@ import org.springframework.test.util.XpathExpectationsHelper;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.util.MimeType; import org.springframework.util.MimeType;
/** /**
* XPath assertions for the {@link WebTestClient}. * XPath assertions for the {@link WebTestClient}.
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -32,6 +32,30 @@ import org.springframework.lang.Nullable;
*/ */
public abstract class AbstractRequestCondition<T extends AbstractRequestCondition<T>> implements RequestCondition<T> { public abstract class AbstractRequestCondition<T extends AbstractRequestCondition<T>> implements RequestCondition<T> {
/**
* Indicates whether this condition is empty, i.e. whether or not it
* contains any discrete items.
* @return {@code true} if empty; {@code false} otherwise
*/
public boolean isEmpty() {
return getContent().isEmpty();
}
/**
* Return the discrete items a request condition is composed of.
* <p>For example URL patterns, HTTP request methods, param expressions, etc.
* @return a collection of objects (never {@code null})
*/
protected abstract Collection<?> getContent();
/**
* The notation to use when printing discrete items of content.
* <p>For example {@code " || "} for URL patterns or {@code " && "}
* for param expressions.
*/
protected abstract String getToStringInfix();
@Override @Override
public boolean equals(@Nullable Object other) { public boolean equals(@Nullable Object other) {
if (this == other) { if (this == other) {
@ -62,28 +86,4 @@ public abstract class AbstractRequestCondition<T extends AbstractRequestConditio
return builder.toString(); return builder.toString();
} }
/**
* Indicates whether this condition is empty, i.e. whether or not it
* contains any discrete items.
* @return {@code true} if empty; {@code false} otherwise
*/
public boolean isEmpty() {
return getContent().isEmpty();
}
/**
* Return the discrete items a request condition is composed of.
* <p>For example URL patterns, HTTP request methods, param expressions, etc.
* @return a collection of objects, never {@code null}
*/
protected abstract Collection<?> getContent();
/**
* The notation to use when printing discrete items of content.
* <p>For example {@code " || "} for URL patterns or {@code " && "}
* for param expressions.
*/
protected abstract String getToStringInfix();
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2018 the original author or authors. * Copyright 2002-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -44,7 +44,7 @@ public abstract class AbstractRequestCondition<T extends AbstractRequestConditio
/** /**
* Return the discrete items a request condition is composed of. * Return the discrete items a request condition is composed of.
* <p>For example URL patterns, HTTP request methods, param expressions, etc. * <p>For example URL patterns, HTTP request methods, param expressions, etc.
* @return a collection of objects, never {@code null} * @return a collection of objects (never {@code null})
*/ */
protected abstract Collection<?> getContent(); protected abstract Collection<?> getContent();