diff --git a/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java b/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java index 9790cf79787..5e19d1940a5 100644 --- a/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java @@ -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"); * you may not use this file except in compliance with the License. @@ -958,6 +958,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA return tokens; } + @Override public String toString() { StringBuilder sb = new StringBuilder(getClass().getName()); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinition.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinition.java index cb266c46601..c64b1a7ee2a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinition.java @@ -352,7 +352,8 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Apply the provided default values to this bean. - * @param defaults the defaults to apply + * @param defaults the default settings to apply + * @since 2.5 */ public void applyDefaults(BeanDefinitionDefaults defaults) { setLazyInit(defaults.isLazyInit()); @@ -515,6 +516,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return whether this bean should be lazily initialized, i.e. not * eagerly instantiated on startup. Only applicable to a singleton bean. + * @return whether to apply lazy-init semantics ({@code false} by default) */ @Override public boolean isLazyInit() { @@ -523,8 +525,9 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Set the autowire mode. This determines whether any automagical detection - * and setting of bean references will happen. Default is AUTOWIRE_NO, - * which means there's no autowire. + * and setting of bean references will happen. Default is AUTOWIRE_NO + * which means there won't be convention-based autowiring by name or type + * (however, there may still be explicit annotation-driven autowiring). * @param autowireMode the autowire mode to set. * Must be one of the constants defined in this class. * @see #AUTOWIRE_NO diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionDefaults.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionDefaults.java index 2a3bd635f93..19bc13b72c3 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionDefaults.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/BeanDefinitionDefaults.java @@ -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"); * you may not use this file except in compliance with the License. @@ -23,16 +23,17 @@ import org.springframework.util.StringUtils; * A simple holder for {@code BeanDefinition} property defaults. * * @author Mark Fisher + * @author Juergen Hoeller * @since 2.5 */ public class BeanDefinitionDefaults { private boolean lazyInit; - private int dependencyCheck = AbstractBeanDefinition.DEPENDENCY_CHECK_NONE; - private int autowireMode = AbstractBeanDefinition.AUTOWIRE_NO; + private int dependencyCheck = AbstractBeanDefinition.DEPENDENCY_CHECK_NONE; + @Nullable private String initMethodName; @@ -40,43 +41,84 @@ public class BeanDefinitionDefaults { private String destroyMethodName; + /** + * Set whether beans should be lazily initialized by default. + *
If {@code false}, the bean will get instantiated on startup by bean
+ * factories that perform eager initialization of singletons.
+ */
public void setLazyInit(boolean lazyInit) {
this.lazyInit = lazyInit;
}
+ /**
+ * Return whether beans should be lazily initialized by default, i.e. not
+ * eagerly instantiated on startup. Only applicable to singleton beans.
+ * @return whether to apply lazy-init semantics ({@code false} by default)
+ */
public boolean isLazyInit() {
return this.lazyInit;
}
- public void setDependencyCheck(int dependencyCheck) {
- this.dependencyCheck = dependencyCheck;
- }
-
- public int getDependencyCheck() {
- return this.dependencyCheck;
- }
-
+ /**
+ * Set the autowire mode. This determines whether any automagical detection
+ * and setting of bean references will happen. Default is AUTOWIRE_NO
+ * which means there won't be convention-based autowiring by name or type
+ * (however, there may still be explicit annotation-driven autowiring).
+ * @param autowireMode the autowire mode to set.
+ * Must be one of the constants defined in {@link AbstractBeanDefinition}.
+ */
public void setAutowireMode(int autowireMode) {
this.autowireMode = autowireMode;
}
+ /**
+ * Return the default autowire mode.
+ */
public int getAutowireMode() {
return this.autowireMode;
}
+ /**
+ * Set the dependency check code.
+ * @param dependencyCheck the code to set.
+ * Must be one of the constants defined in {@link AbstractBeanDefinition}.
+ */
+ public void setDependencyCheck(int dependencyCheck) {
+ this.dependencyCheck = dependencyCheck;
+ }
+
+ /**
+ * Return the default dependency check code.
+ */
+ public int getDependencyCheck() {
+ return this.dependencyCheck;
+ }
+
+ /**
+ * Set the name of the default initializer method.
+ */
public void setInitMethodName(@Nullable String initMethodName) {
this.initMethodName = (StringUtils.hasText(initMethodName) ? initMethodName : null);
}
+ /**
+ * Return the name of the default initializer method.
+ */
@Nullable
public String getInitMethodName() {
return this.initMethodName;
}
+ /**
+ * Set the name of the default destroy method.
+ */
public void setDestroyMethodName(@Nullable String destroyMethodName) {
this.destroyMethodName = (StringUtils.hasText(destroyMethodName) ? destroyMethodName : null);
}
+ /**
+ * Return the name of the default destroy method.
+ */
@Nullable
public String getDestroyMethodName() {
return this.destroyMethodName;
diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java
index 5b0ee945f5b..5672ddcc7a6 100644
--- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java
+++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java
@@ -377,7 +377,7 @@ public class BeanDefinitionParserDelegate {
*/
public BeanDefinitionDefaults getBeanDefinitionDefaults() {
BeanDefinitionDefaults bdd = new BeanDefinitionDefaults();
- bdd.setLazyInit("TRUE".equalsIgnoreCase(this.defaults.getLazyInit()));
+ bdd.setLazyInit(TRUE_VALUE.equalsIgnoreCase(this.defaults.getLazyInit()));
bdd.setAutowireMode(getAutowireMode(DEFAULT_VALUE));
bdd.setInitMethodName(this.defaults.getInitMethod());
bdd.setDestroyMethodName(this.defaults.getDestroyMethod());
diff --git a/spring-core/src/main/java/org/springframework/core/log/LogFormatUtils.java b/spring-core/src/main/java/org/springframework/core/log/LogFormatUtils.java
index cced2bf3d73..c00c33464fc 100644
--- a/spring-core/src/main/java/org/springframework/core/log/LogFormatUtils.java
+++ b/spring-core/src/main/java/org/springframework/core/log/LogFormatUtils.java
@@ -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");
* you may not use this file except in compliance with the License.
@@ -82,8 +82,9 @@ public abstract class LogFormatUtils {
*/
public static void traceDebug(Log logger, Function Setting either this property, {@link #setContextPath "contextPath"}
- * or {@link #setClassesToBeBound "classesToBeBound"} is required.
+ * Setting either this property, {@link #setContextPath "contextPath"} or
+ * {@link #setClassesToBeBound "classesToBeBound"} is required.
*/
public void setPackagesToScan(@Nullable String... packagesToScan) {
this.packagesToScan = packagesToScan;
@@ -270,8 +270,9 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
}
/**
- * Set the JAXB {@code Marshaller} properties. These properties will be set on the
- * underlying JAXB {@code Marshaller}, and allow for features such as indentation.
+ * Set the JAXB {@code Marshaller} properties.
+ * These properties will be set on the underlying JAXB {@code Marshaller},
+ * and allow for features such as indentation.
* @param properties the properties
* @see javax.xml.bind.Marshaller#setProperty(String, Object)
* @see javax.xml.bind.Marshaller#JAXB_ENCODING
@@ -284,8 +285,8 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
}
/**
- * Set the JAXB {@code Unmarshaller} properties. These properties will be set on the
- * underlying JAXB {@code Unmarshaller}.
+ * Set the JAXB {@code Unmarshaller} properties.
+ * These properties will be set on the underlying JAXB {@code Unmarshaller}.
* @param properties the properties
* @see javax.xml.bind.Unmarshaller#setProperty(String, Object)
*/
@@ -338,7 +339,8 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
}
/**
- * Set the schema language. Default is the W3C XML Schema: {@code http://www.w3.org/2001/XMLSchema"}.
+ * Set the schema language.
+ * Default is the W3C XML Schema: {@code http://www.w3.org/2001/XMLSchema"}.
* @see XMLConstants#W3C_XML_SCHEMA_NS_URI
* @see XMLConstants#RELAXNG_NS_URI
*/
@@ -349,8 +351,8 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
/**
* Set the resource resolver, as used to load the schema resources.
* @see SchemaFactory#setResourceResolver(org.w3c.dom.ls.LSResourceResolver)
- * @see #setSchema(Resource)
- * @see #setSchemas(Resource[])
+ * @see #setSchema
+ * @see #setSchemas
*/
public void setSchemaResourceResolver(LSResourceResolver schemaResourceResolver) {
this.schemaResourceResolver = schemaResourceResolver;
@@ -374,10 +376,11 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
}
/**
- * Specify whether the {@link #supports(Class)} returns {@code true} for the {@link JAXBElement} class.
- * Default is {@code false}, meaning that {@code supports(Class)} always returns {@code false} for
- * {@code JAXBElement} classes (though {@link #supports(Type)} can return {@code true}, since it can
- * obtain the type parameters of {@code JAXBElement}).
+ * Specify whether the {@link #supports(Class)} returns {@code true} for the
+ * {@link JAXBElement} class.
+ * Default is {@code false}, meaning that {@code supports(Class)} always returns
+ * {@code false} for {@code JAXBElement} classes (though {@link #supports(Type)} can
+ * return {@code true}, since it can obtain the type parameters of {@code JAXBElement}).
* This property is typically enabled in combination with usage of classes like
* {@link org.springframework.web.servlet.view.xml.MarshallingView MarshallingView},
* since the {@code ModelAndView} does not offer type parameter information at runtime.
@@ -433,8 +436,8 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
* {@code Source} passed to {@link #unmarshal(Source)} is a {@link SAXSource} or
* {@link StreamSource}. It has no effect for {@link DOMSource} or {@link StAXSource}
* instances.
- * Note: setting this option to {@code true} also
- * automatically sets {@link #setSupportDtd} to {@code true}.
+ * Note: setting this option to {@code true} also automatically
+ * sets {@link #setSupportDtd} to {@code true}.
*/
public void setProcessExternalEntities(boolean processExternalEntities) {
this.processExternalEntities = processExternalEntities;
@@ -710,6 +713,21 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
}
}
+ /**
+ * Return a newly created JAXB marshaller.
+ * Note: JAXB marshallers are not necessarily thread-safe.
+ */
+ protected Marshaller createMarshaller() {
+ try {
+ Marshaller marshaller = getJaxbContext().createMarshaller();
+ initJaxbMarshaller(marshaller);
+ return marshaller;
+ }
+ catch (JAXBException ex) {
+ throw convertJaxbException(ex);
+ }
+ }
+
private void marshalStaxResult(Marshaller jaxbMarshaller, Object graph, Result staxResult) throws JAXBException {
XMLStreamWriter streamWriter = StaxUtils.getXMLStreamWriter(staxResult);
if (streamWriter != null) {
@@ -727,26 +745,14 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
}
/**
- * Return a newly created JAXB marshaller. JAXB marshallers are not necessarily thread safe.
- */
- protected Marshaller createMarshaller() {
- try {
- Marshaller marshaller = getJaxbContext().createMarshaller();
- initJaxbMarshaller(marshaller);
- return marshaller;
- }
- catch (JAXBException ex) {
- throw convertJaxbException(ex);
- }
- }
-
- /**
- * Template method that can be overridden by concrete JAXB marshallers for custom initialization behavior.
- * Gets called after creation of JAXB {@code Marshaller}, and after the respective properties have been set.
- * The default implementation sets the {@link #setMarshallerProperties(Map) defined properties}, the {@link
- * #setValidationEventHandler(ValidationEventHandler) validation event handler}, the {@link #setSchemas(Resource[])
- * schemas}, {@link #setMarshallerListener(javax.xml.bind.Marshaller.Listener) listener}, and
- * {@link #setAdapters(XmlAdapter[]) adapters}.
+ * Template method that can be overridden by concrete JAXB marshallers
+ * for custom initialization behavior. Gets called after creation of JAXB
+ * {@code Marshaller}, and after the respective properties have been set.
+ * The default implementation sets the
+ * {@link #setMarshallerProperties defined properties}, the
+ * {@link #setValidationEventHandler validation event handler}, the
+ * {@link #setSchemas schemas}, {@link #setMarshallerListener listener},
+ * and {@link #setAdapters adapters}.
*/
protected void initJaxbMarshaller(Marshaller marshaller) throws JAXBException {
if (this.marshallerProperties != null) {
@@ -809,6 +815,21 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
}
}
+ /**
+ * Return a newly created JAXB unmarshaller.
+ * Note: JAXB unmarshallers are not necessarily thread-safe.
+ */
+ protected Unmarshaller createUnmarshaller() {
+ try {
+ Unmarshaller unmarshaller = getJaxbContext().createUnmarshaller();
+ initJaxbUnmarshaller(unmarshaller);
+ return unmarshaller;
+ }
+ catch (JAXBException ex) {
+ throw convertJaxbException(ex);
+ }
+ }
+
protected Object unmarshalStaxSource(Unmarshaller jaxbUnmarshaller, Source staxSource) throws JAXBException {
XMLStreamReader streamReader = StaxUtils.getXMLStreamReader(staxSource);
if (streamReader != null) {
@@ -875,27 +896,14 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
}
/**
- * Return a newly created JAXB unmarshaller.
- * Note: JAXB unmarshallers are not necessarily thread-safe.
- */
- protected Unmarshaller createUnmarshaller() {
- try {
- Unmarshaller unmarshaller = getJaxbContext().createUnmarshaller();
- initJaxbUnmarshaller(unmarshaller);
- return unmarshaller;
- }
- catch (JAXBException ex) {
- throw convertJaxbException(ex);
- }
- }
-
- /**
- * Template method that can be overridden by concrete JAXB marshallers for custom initialization behavior.
- * Gets called after creation of JAXB {@code Marshaller}, and after the respective properties have been set.
- * The default implementation sets the {@link #setUnmarshallerProperties(Map) defined properties}, the {@link
- * #setValidationEventHandler(ValidationEventHandler) validation event handler}, the {@link #setSchemas(Resource[])
- * schemas}, {@link #setUnmarshallerListener(javax.xml.bind.Unmarshaller.Listener) listener}, and
- * {@link #setAdapters(XmlAdapter[]) adapters}.
+ * Template method that can be overridden by concrete JAXB marshallers
+ * for custom initialization behavior. Gets called after creation of JAXB
+ * {@code Marshaller}, and after the respective properties have been set.
+ * The default implementation sets the
+ * {@link #setUnmarshallerProperties defined properties}, the
+ * {@link #setValidationEventHandler validation event handler}, the
+ * {@link #setSchemas schemas}, {@link #setUnmarshallerListener listener},
+ * and {@link #setAdapters adapters}.
*/
protected void initJaxbUnmarshaller(Unmarshaller unmarshaller) throws JAXBException {
if (this.unmarshallerProperties != null) {
@@ -920,8 +928,8 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi
}
/**
- * Convert the given {@code JAXBException} to an appropriate exception from the
- * {@code org.springframework.oxm} hierarchy.
+ * Convert the given {@code JAXBException} to an appropriate exception
+ * from the {@code org.springframework.oxm} hierarchy.
* @param ex {@code JAXBException} that occurred
* @return the corresponding {@code XmlMappingException}
*/
diff --git a/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java b/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java
index 3b885f39bb7..0b86523081d 100644
--- a/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java
+++ b/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java
@@ -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");
* you may not use this file except in compliance with the License.
@@ -52,14 +52,14 @@ public class CorsConfiguration {
/** Wildcard representing all origins, methods, or headers. */
public static final String ALL = "*";
- private static final List Use this method to flip the initialization model to start with open
* defaults that permit all cross-origin requests for GET, HEAD, and POST
* requests. Note however that this method will not override any existing
* values already set.
- *
* The following defaults are applied if not already set:
* When combining single values like {@code allowCredentials} or
* {@code maxAge}, {@code this} properties are overridden by non-null
* {@code other} properties if any.
- *
* Combining lists like {@code allowedOrigins}, {@code allowedMethods},
* {@code allowedHeaders} or {@code exposedHeaders} is done in an additive
* way. For example, combining {@code ["GET", "POST"]} with
* {@code ["PATCH"]} results in {@code ["GET", "POST", "PATCH"]}, but keep
* in mind that combining {@code ["GET", "POST"]} with {@code ["*"]}
* results in {@code ["*"]}.
- *
* Notice that default permit values set by
* {@link CorsConfiguration#applyPermitDefaultValues()} are overridden by
* any value explicitly defined.
- *
- * @return the combined {@code CorsConfiguration} or {@code this}
+ * @return the combined {@code CorsConfiguration}, or {@code this}
* configuration if the supplied configuration is {@code null}
*/
@Nullable
diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMapping.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMapping.java
index cbf6a1a3177..bb3b6e054f0 100644
--- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMapping.java
+++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMapping.java
@@ -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");
* you may not use this file except in compliance with the License.
@@ -116,7 +116,7 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
public void setAlwaysUseFullPath(boolean alwaysUseFullPath) {
this.urlPathHelper.setAlwaysUseFullPath(alwaysUseFullPath);
if (this.corsConfigurationSource instanceof UrlBasedCorsConfigurationSource) {
- ((UrlBasedCorsConfigurationSource)this.corsConfigurationSource).setAlwaysUseFullPath(alwaysUseFullPath);
+ ((UrlBasedCorsConfigurationSource) this.corsConfigurationSource).setAlwaysUseFullPath(alwaysUseFullPath);
}
}
@@ -127,7 +127,7 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
public void setUrlDecode(boolean urlDecode) {
this.urlPathHelper.setUrlDecode(urlDecode);
if (this.corsConfigurationSource instanceof UrlBasedCorsConfigurationSource) {
- ((UrlBasedCorsConfigurationSource)this.corsConfigurationSource).setUrlDecode(urlDecode);
+ ((UrlBasedCorsConfigurationSource) this.corsConfigurationSource).setUrlDecode(urlDecode);
}
}
@@ -138,7 +138,7 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
public void setRemoveSemicolonContent(boolean removeSemicolonContent) {
this.urlPathHelper.setRemoveSemicolonContent(removeSemicolonContent);
if (this.corsConfigurationSource instanceof UrlBasedCorsConfigurationSource) {
- ((UrlBasedCorsConfigurationSource)this.corsConfigurationSource).setRemoveSemicolonContent(removeSemicolonContent);
+ ((UrlBasedCorsConfigurationSource) this.corsConfigurationSource).setRemoveSemicolonContent(removeSemicolonContent);
}
}
@@ -152,7 +152,7 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
Assert.notNull(urlPathHelper, "UrlPathHelper must not be null");
this.urlPathHelper = urlPathHelper;
if (this.corsConfigurationSource instanceof UrlBasedCorsConfigurationSource) {
- ((UrlBasedCorsConfigurationSource)this.corsConfigurationSource).setUrlPathHelper(urlPathHelper);
+ ((UrlBasedCorsConfigurationSource) this.corsConfigurationSource).setUrlPathHelper(urlPathHelper);
}
}
@@ -172,7 +172,7 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
Assert.notNull(pathMatcher, "PathMatcher must not be null");
this.pathMatcher = pathMatcher;
if (this.corsConfigurationSource instanceof UrlBasedCorsConfigurationSource) {
- ((UrlBasedCorsConfigurationSource)this.corsConfigurationSource).setPathMatcher(pathMatcher);
+ ((UrlBasedCorsConfigurationSource) this.corsConfigurationSource).setPathMatcher(pathMatcher);
}
}
@@ -232,7 +232,7 @@ public abstract class AbstractHandlerMapping extends WebApplicationObjectSupport
@Deprecated
public Map
- *
*/
public CorsConfiguration applyPermitDefaultValues() {
@@ -361,23 +360,19 @@ public class CorsConfiguration {
/**
* Combine the non-null properties of the supplied
* {@code CorsConfiguration} with this one.
- *
*