Fail Gradle build for Javadoc warnings

In order to catch Javadoc errors in the build, we now enable the
`Xwerror` flag for the `javadoc` tool. In addition, we now use
`Xdoclint:syntax` instead of `Xdoclint:none` in order to validate
syntax within our Javadoc.

This commit fixes all resulting Javadoc errors and warnings.

This commit also upgrades to Undertow 2.2.12.Final and fixes the
artifact names for exclusions for the Servlet and annotations APIs.

The incorrect exclusion of the Servlet API resulted in the Servlet API
being on the classpath twice for the javadoc task, which resulted in the
following warnings in previous builds.

javadoc: warning - Multiple sources of package comments found for package "javax.servlet"
javadoc: warning - Multiple sources of package comments found for package "javax.servlet.http"
javadoc: warning - Multiple sources of package comments found for package "javax.servlet.descriptor"
javadoc: warning - Multiple sources of package comments found for package "javax.servlet.annotation"

Closes gh-27480
This commit is contained in:
Sam Brannen 2021-09-29 14:02:37 +02:00
parent 040445612f
commit 96e4d3a530
81 changed files with 251 additions and 250 deletions

View File

@ -139,14 +139,14 @@ configure(allprojects) { project ->
entry 'tomcat-embed-core'
entry 'tomcat-embed-websocket'
}
dependencySet(group: 'io.undertow', version: '2.2.10.Final') {
dependencySet(group: 'io.undertow', version: '2.2.12.Final') {
entry 'undertow-core'
entry('undertow-websockets-jsr') {
exclude group: "org.jboss.spec.javax.websocket", name: "jboss-websocket-api_1.1_spec"
}
entry('undertow-servlet') {
exclude group: "org.jboss.spec.javax.servlet", name: "jboss-servlet-api_3.1_spec"
exclude group: "org.jboss.spec.javax.annotation", name: "jboss-annotations-api_1.2_spec"
exclude group: "org.jboss.spec.javax.servlet", name: "jboss-servlet-api_4.0_spec"
exclude group: "org.jboss.spec.javax.annotation", name: "jboss-annotations-api_1.3_spec"
}
}
@ -371,7 +371,6 @@ configure([rootProject] + javaProjects) { project ->
"https://docs.oracle.com/javaee/7/api/",
"https://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/", // CommonJ
"https://www.ibm.com/docs/api/v1/content/SSEQTP_8.5.5/com.ibm.websphere.javadoc.doc/web/apidocs/",
"https://glassfish.java.net/nonav/docs/v3/api/",
"https://docs.jboss.org/jbossas/javadoc/4.0.5/connector/",
"https://docs.jboss.org/jbossas/javadoc/7.1.2.Final/",
"https://tiles.apache.org/tiles-request/apidocs/",

View File

@ -46,8 +46,9 @@ task api(type: Javadoc) {
stylesheetFile = file("src/docs/api/stylesheet.css")
splitIndex = true
links(project.ext.javadocLinks)
addStringOption('Xdoclint:none', '-quiet')
if(JavaVersion.current().isJava9Compatible()) {
addBooleanOption('Xdoclint:syntax', true) // only check syntax with doclint
addBooleanOption('Xwerror', true) // fail build on Javadoc warnings
if (JavaVersion.current().isJava9Compatible()) {
addBooleanOption('html5', true)
}
}

View File

@ -25,9 +25,11 @@ import org.springframework.lang.Nullable;
/**
* Convenient TargetSourceCreator using bean name prefixes to create one of three
* well-known TargetSource types:
* <li>: CommonsPool2TargetSource
* <li>% ThreadLocalTargetSource
* <li>! PrototypeTargetSource
* <ul>
* <li>: CommonsPool2TargetSource</li>
* <li>% ThreadLocalTargetSource</li>
* <li>! PrototypeTargetSource</li>
* </ul>
*
* @author Rod Johnson
* @author Stephane Nicoll

View File

@ -540,7 +540,7 @@ public abstract class BeanUtils {
/**
* Find a JavaBeans PropertyEditor following the 'Editor' suffix convention
* (e.g. "mypackage.MyDomainClass" -> "mypackage.MyDomainClassEditor").
* (e.g. "mypackage.MyDomainClass" &rarr; "mypackage.MyDomainClassEditor").
* <p>Compatible to the standard JavaBeans convention as implemented by
* {@link java.beans.PropertyEditorManager} but isolated from the latter's
* registered default editors for primitive types.

View File

@ -134,8 +134,8 @@ public abstract class PropertyAccessorUtils {
/**
* Determine the canonical name for the given property path.
* Removes surrounding quotes from map keys:<br>
* {@code map['key']} -> {@code map[key]}<br>
* {@code map["key"]} -> {@code map[key]}
* {@code map['key']} &rarr; {@code map[key]}<br>
* {@code map["key"]} &rarr; {@code map[key]}
* @param propertyName the bean property path
* @return the canonical representation of the property path
*/

View File

@ -47,17 +47,17 @@ import org.springframework.util.ClassUtils;
* which uses this class to call a static initialization method:
*
* <pre class="code">
* &lt;bean id="myObject" class="org.springframework.beans.factory.config.MethodInvokingBean">
* &lt;property name="staticMethod" value="com.whatever.MyClass.init"/>
* &lt;/bean></pre>
* &lt;bean id="myObject" class="org.springframework.beans.factory.config.MethodInvokingBean"&gt;
* &lt;property name="staticMethod" value="com.whatever.MyClass.init"/&gt;
* &lt;/bean&gt;</pre>
*
* <p>An example of calling an instance method to start some server bean:
*
* <pre class="code">
* &lt;bean id="myStarter" class="org.springframework.beans.factory.config.MethodInvokingBean">
* &lt;property name="targetObject" ref="myServer"/>
* &lt;property name="targetMethod" value="start"/>
* &lt;/bean></pre>
* &lt;bean id="myStarter" class="org.springframework.beans.factory.config.MethodInvokingBean"&gt;
* &lt;property name="targetObject" ref="myServer"/&gt;
* &lt;property name="targetMethod" value="start"/&gt;
* &lt;/bean&gt;</pre>
*
* @author Juergen Hoeller
* @since 4.0.3

View File

@ -56,24 +56,24 @@ import org.springframework.lang.Nullable;
* which uses this class to call a static factory method:
*
* <pre class="code">
* &lt;bean id="myObject" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
* &lt;property name="staticMethod" value="com.whatever.MyClassFactory.getInstance"/>
* &lt;/bean></pre>
* &lt;bean id="myObject" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
* &lt;property name="staticMethod" value="com.whatever.MyClassFactory.getInstance"/&gt;
* &lt;/bean&gt;</pre>
*
* <p>An example of calling a static method then an instance method to get at a
* Java system property. Somewhat verbose, but it works.
*
* <pre class="code">
* &lt;bean id="sysProps" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
* &lt;property name="targetClass" value="java.lang.System"/>
* &lt;property name="targetMethod" value="getProperties"/>
* &lt;/bean>
* &lt;bean id="sysProps" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
* &lt;property name="targetClass" value="java.lang.System"/&gt;
* &lt;property name="targetMethod" value="getProperties"/&gt;
* &lt;/bean&gt;
*
* &lt;bean id="javaVersion" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
* &lt;property name="targetObject" ref="sysProps"/>
* &lt;property name="targetMethod" value="getProperty"/>
* &lt;property name="arguments" value="java.version"/>
* &lt;/bean></pre>
* &lt;bean id="javaVersion" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"&gt;
* &lt;property name="targetObject" ref="sysProps"/&gt;
* &lt;property name="targetMethod" value="getProperty"/&gt;
* &lt;property name="arguments" value="java.version"/&gt;
* &lt;/bean&gt;</pre>
*
* @author Colin Sampaleanu
* @author Juergen Hoeller

View File

@ -83,22 +83,22 @@ import org.springframework.util.StringUtils;
* <p>A sample config in an XML-based
* {@link org.springframework.beans.factory.BeanFactory} might look as follows:
*
* <pre class="code">&lt;beans>
* <pre class="code">&lt;beans&gt;
*
* &lt;!-- Prototype bean since we have state -->
* &lt;bean id="myService" class="a.b.c.MyService" singleton="false"/>
* &lt;!-- Prototype bean since we have state --&gt;
* &lt;bean id="myService" class="a.b.c.MyService" singleton="false"/&gt;
*
* &lt;!-- will lookup the above 'myService' bean by *TYPE* -->
* &lt;!-- will lookup the above 'myService' bean by *TYPE* --&gt;
* &lt;bean id="myServiceFactory"
* class="org.springframework.beans.factory.config.ServiceLocatorFactoryBean">
* &lt;property name="serviceLocatorInterface" value="a.b.c.ServiceFactory"/>
* &lt;/bean>
* class="org.springframework.beans.factory.config.ServiceLocatorFactoryBean"&gt;
* &lt;property name="serviceLocatorInterface" value="a.b.c.ServiceFactory"/&gt;
* &lt;/bean&gt;
*
* &lt;bean id="clientBean" class="a.b.c.MyClientBean">
* &lt;property name="myServiceFactory" ref="myServiceFactory"/>
* &lt;/bean>
* &lt;bean id="clientBean" class="a.b.c.MyClientBean"&gt;
* &lt;property name="myServiceFactory" ref="myServiceFactory"/&gt;
* &lt;/bean&gt;
*
*&lt;/beans></pre>
*&lt;/beans&gt;</pre>
*
* <p>The attendant {@code MyClientBean} class implementation might then
* look something like this:
@ -135,22 +135,22 @@ import org.springframework.util.StringUtils;
* <p>A sample config in an XML-based
* {@link org.springframework.beans.factory.BeanFactory} might look as follows:
*
* <pre class="code">&lt;beans>
* <pre class="code">&lt;beans&gt;
*
* &lt;!-- Prototype beans since we have state (both extend MyService) -->
* &lt;bean id="specialService" class="a.b.c.SpecialService" singleton="false"/>
* &lt;bean id="anotherService" class="a.b.c.AnotherService" singleton="false"/>
* &lt;!-- Prototype beans since we have state (both extend MyService) --&gt;
* &lt;bean id="specialService" class="a.b.c.SpecialService" singleton="false"/&gt;
* &lt;bean id="anotherService" class="a.b.c.AnotherService" singleton="false"/&gt;
*
* &lt;bean id="myServiceFactory"
* class="org.springframework.beans.factory.config.ServiceLocatorFactoryBean">
* &lt;property name="serviceLocatorInterface" value="a.b.c.ServiceFactory"/>
* &lt;/bean>
* class="org.springframework.beans.factory.config.ServiceLocatorFactoryBean"&gt;
* &lt;property name="serviceLocatorInterface" value="a.b.c.ServiceFactory"/&gt;
* &lt;/bean&gt;
*
* &lt;bean id="clientBean" class="a.b.c.MyClientBean">
* &lt;property name="myServiceFactory" ref="myServiceFactory"/>
* &lt;/bean>
* &lt;bean id="clientBean" class="a.b.c.MyClientBean"&gt;
* &lt;property name="myServiceFactory" ref="myServiceFactory"/&gt;
* &lt;/bean&gt;
*
*&lt;/beans></pre>
*&lt;/beans&gt;</pre>
*
* <p>The attendant {@code MyClientBean} class implementation might then
* look something like this:

View File

@ -86,7 +86,7 @@ public abstract class YamlProcessor {
* </pre>
* when mapped with
* <pre class="code">
* setDocumentMatchers(properties ->
* setDocumentMatchers(properties -&gt;
* ("prod".equals(properties.getProperty("environment")) ? MatchStatus.FOUND : MatchStatus.NOT_FOUND));
* </pre>
* would end up as

View File

@ -1342,7 +1342,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
* @param beanName the name of the bean
* @param mbd the bean definition for the bean
* @param explicitArgs argument values passed in programmatically via the getBean method,
* or {@code null} if none (-> use constructor argument values from bean definition)
* or {@code null} if none (implying the use of constructor argument values from bean definition)
* @return a BeanWrapper for the new instance
* @see #getBean(String, Object[])
*/
@ -1363,7 +1363,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
* @param mbd the bean definition for the bean
* @param ctors the chosen candidate constructors
* @param explicitArgs argument values passed in programmatically via the getBean method,
* or {@code null} if none (-> use constructor argument values from bean definition)
* or {@code null} if none (implying the use of constructor argument values from bean definition)
* @return a BeanWrapper for the new instance
*/
protected BeanWrapper autowireConstructor(

View File

@ -39,7 +39,7 @@ import org.springframework.util.xml.XmlValidationModeDetector;
* when starting your JVM. For example, to use the Oracle {@link DocumentBuilder},
* you might start your application like as follows:
*
* <pre code="class">java -Djavax.xml.parsers.DocumentBuilderFactory=oracle.xml.jaxp.JXDocumentBuilderFactory MyMainClass</pre>
* <pre class="code">java -Djavax.xml.parsers.DocumentBuilderFactory=oracle.xml.jaxp.JXDocumentBuilderFactory MyMainClass</pre>
*
* @author Rob Harrop
* @author Juergen Hoeller

View File

@ -71,13 +71,13 @@ public class PluggableSchemaResolver implements EntityResolver {
private final String schemaMappingsLocation;
/** Stores the mapping of schema URL -> local schema path. */
/** Stores the mapping of schema URL &rarr; local schema path. */
@Nullable
private volatile Map<String, String> schemaMappings;
/**
* Loads the schema URL -> schema file location mappings using the default
* Loads the schema URL &rarr; schema file location mappings using the default
* mapping file pattern "META-INF/spring.schemas".
* @param classLoader the ClassLoader to use for loading
* (can be {@code null}) to use the default ClassLoader)
@ -89,7 +89,7 @@ public class PluggableSchemaResolver implements EntityResolver {
}
/**
* Loads the schema URL -> schema file location mappings using the given
* Loads the schema URL &rarr; schema file location mappings using the given
* mapping file pattern.
* @param classLoader the ClassLoader to use for loading
* (can be {@code null}) to use the default ClassLoader)

View File

@ -896,7 +896,7 @@ public class MimeMessageHelper {
* <p><b>NOTE:</b> Invoke {@code addInline} <i>after</i> {@link #setText};
* else, mail readers might not be able to resolve inline references correctly.
* @param contentId the content ID to use. Will end up as "Content-ID" header
* in the body part, surrounded by angle brackets: e.g. "myId" -> "&lt;myId&gt;".
* in the body part, surrounded by angle brackets: e.g. "myId" &rarr; "&lt;myId&gt;".
* Can be referenced in HTML source via src="cid:myId" expressions.
* @param dataSource the {@code javax.activation.DataSource} to take
* the content from, determining the InputStream and the content type
@ -923,7 +923,7 @@ public class MimeMessageHelper {
* <p><b>NOTE:</b> Invoke {@code addInline} <i>after</i> {@link #setText};
* else, mail readers might not be able to resolve inline references correctly.
* @param contentId the content ID to use. Will end up as "Content-ID" header
* in the body part, surrounded by angle brackets: e.g. "myId" -> "&lt;myId&gt;".
* in the body part, surrounded by angle brackets: e.g. "myId" &rarr; "&lt;myId&gt;".
* Can be referenced in HTML source via src="cid:myId" expressions.
* @param file the File resource to take the content from
* @throws MessagingException in case of errors
@ -950,7 +950,7 @@ public class MimeMessageHelper {
* <p><b>NOTE:</b> Invoke {@code addInline} <i>after</i> {@link #setText};
* else, mail readers might not be able to resolve inline references correctly.
* @param contentId the content ID to use. Will end up as "Content-ID" header
* in the body part, surrounded by angle brackets: e.g. "myId" -> "&lt;myId&gt;".
* in the body part, surrounded by angle brackets: e.g. "myId" &rarr; "&lt;myId&gt;".
* Can be referenced in HTML source via src="cid:myId" expressions.
* @param resource the resource to take the content from
* @throws MessagingException in case of errors
@ -976,7 +976,7 @@ public class MimeMessageHelper {
* <p><b>NOTE:</b> Invoke {@code addInline} <i>after</i> {@code setText};
* else, mail readers might not be able to resolve inline references correctly.
* @param contentId the content ID to use. Will end up as "Content-ID" header
* in the body part, surrounded by angle brackets: e.g. "myId" -> "&lt;myId&gt;".
* in the body part, surrounded by angle brackets: e.g. "myId" &rarr; "&lt;myId&gt;".
* Can be referenced in HTML source via src="cid:myId" expressions.
* @param inputStreamSource the resource to take the content from
* @param contentType the content type to use for the element

View File

@ -156,7 +156,7 @@ public class AnnotationBeanNameGenerator implements BeanNameGenerator {
/**
* Derive a default bean name from the given bean definition.
* <p>The default implementation simply builds a decapitalized version
* of the short class name: e.g. "mypackage.MyJdbcDao" -> "myJdbcDao".
* of the short class name: e.g. "mypackage.MyJdbcDao" &rarr; "myJdbcDao".
* <p>Note that inner classes will thus have names of the form
* "outerClassName.InnerClassName", which because of the period in the
* name may be an issue if you are autowiring by name.

View File

@ -315,7 +315,7 @@ public class ReloadableResourceBundleMessageSource extends AbstractResourceBased
/**
* Calculate the filenames for the given bundle basename and Locale,
* appending language code, country code, and variant code.
* E.g.: basename "messages", Locale "de_AT_oo" -> "messages_de_AT_OO",
* <p>For example, basename "messages", Locale "de_AT_oo" &rarr; "messages_de_AT_OO",
* "messages_de_AT", "messages_de".
* <p>Follows the rules defined by {@link java.util.Locale#toString()}.
* @param basename the basename of the bundle

View File

@ -56,7 +56,7 @@ import org.springframework.util.Assert;
* For example:
*
* <pre class="code">&lt;property name="jndiEnvironment"&gt;
* &lt;props>
* &lt;props&gt;
* &lt;prop key="java.naming.factory.initial"&gt;com.sun.jndi.cosnaming.CNCtxFactory&lt;/prop&gt;
* &lt;prop key="java.naming.provider.url"&gt;iiop://localhost:1050&lt;/prop&gt;
* &lt;/props&gt;

View File

@ -43,7 +43,7 @@ import org.springframework.util.ClassUtils;
* For example:
*
* <pre class="code">&lt;property name="jndiEnvironment"&gt;
* &lt;props>
* &lt;props&gt;
* &lt;prop key="java.naming.factory.initial"&gt;com.sun.jndi.cosnaming.CNCtxFactory&lt;/prop&gt;
* &lt;prop key="java.naming.provider.url"&gt;iiop://localhost:1050&lt;/prop&gt;
* &lt;/props&gt;

View File

@ -52,7 +52,7 @@ import org.springframework.util.ReflectionUtils;
* For example:
*
* <pre class="code">&lt;property name="jndiEnvironment"&gt;
* &lt;props>
* &lt;props&gt;
* &lt;prop key="java.naming.factory.initial"&gt;com.sun.jndi.cosnaming.CNCtxFactory&lt;/prop&gt;
* &lt;prop key="java.naming.provider.url"&gt;iiop://localhost:1050&lt;/prop&gt;
* &lt;/props&gt;

View File

@ -87,7 +87,7 @@ public class ResourceBundleThemeSource implements HierarchicalThemeSource, BeanC
/**
* Set the prefix that gets applied to the ResourceBundle basenames,
* i.e. the theme names.
* E.g.: basenamePrefix="test.", themeName="theme" -> basename="test.theme".
* E.g.: basenamePrefix="test.", themeName="theme" &rarr; basename="test.theme".
* <p>Note that ResourceBundle names are effectively classpath locations: As a
* consequence, the JDK's standard ResourceBundle treats dots as package separators.
* This means that "test.theme" is effectively equivalent to "test/theme",

View File

@ -83,8 +83,8 @@ public interface Errors {
* {@code pushNestedPath(String)} call.
* <p>Using the nested path stack allows to set temporary nested paths
* for subobjects without having to worry about a temporary path holder.
* <p>For example: current path "spouse.", pushNestedPath("child") ->
* result path "spouse.child."; popNestedPath() -> "spouse." again.
* <p>For example: current path "spouse.", pushNestedPath("child") &rarr;
* result path "spouse.child."; popNestedPath() &rarr; "spouse." again.
* @param subPath the sub path to push onto the nested path stack
* @see #popNestedPath
*/

View File

@ -310,10 +310,10 @@ public class Constants {
* Convert the given bean property name to a constant name prefix.
* <p>Uses a common naming idiom: turning all lower case characters to
* upper case, and prepending upper case characters with an underscore.
* <p>Example: "imageSize" -> "IMAGE_SIZE"<br>
* Example: "imagesize" -> "IMAGESIZE".<br>
* Example: "ImageSize" -> "_IMAGE_SIZE".<br>
* Example: "IMAGESIZE" -> "_I_M_A_G_E_S_I_Z_E"
* <p>Example: "imageSize" &rarr; "IMAGE_SIZE"<br>
* Example: "imagesize" &rarr; "IMAGESIZE".<br>
* Example: "ImageSize" &rarr; "_IMAGE_SIZE".<br>
* Example: "IMAGESIZE" &rarr; "_I_M_A_G_E_S_I_Z_E"
* @param propertyName the name of the bean property
* @return the corresponding constant name prefix
* @see #getValuesForProperty

View File

@ -91,7 +91,6 @@ public interface SmartClassLoader {
* not being possible (thrown by the default implementation in this interface)
* @since 5.3.4
* @see ClassLoader#defineClass(String, byte[], int, int, ProtectionDomain)
* @see java.lang.invoke.MethodHandles.Lookup#defineClass(byte[])
*/
default Class<?> publicDefineClass(String name, byte[] b, @Nullable ProtectionDomain protectionDomain) {
throw new UnsupportedOperationException();

View File

@ -70,9 +70,9 @@ public class FileSystemResource extends AbstractResource implements WritableReso
* <p>Note: When building relative resources via {@link #createRelative},
* it makes a difference whether the specified resource base path here
* ends with a slash or not. In the case of "C:/dir1/", relative paths
* will be built underneath that root: e.g. relative path "dir2" ->
* will be built underneath that root: e.g. relative path "dir2" &rarr;
* "C:/dir1/dir2". In the case of "C:/dir1", relative paths will apply
* at the same directory level: relative path "dir2" -> "C:/dir2".
* at the same directory level: relative path "dir2" &rarr; "C:/dir2".
* @param path a file path
* @see #FileSystemResource(Path)
*/
@ -87,7 +87,7 @@ public class FileSystemResource extends AbstractResource implements WritableReso
* Create a new {@code FileSystemResource} from a {@link File} handle.
* <p>Note: When building relative resources via {@link #createRelative},
* the relative path will apply <i>at the same directory level</i>:
* e.g. new File("C:/dir1"), relative path "dir2" -> "C:/dir2"!
* e.g. new File("C:/dir1"), relative path "dir2" &rarr; "C:/dir2"!
* If you prefer to have relative paths built underneath the given root directory,
* use the {@link #FileSystemResource(String) constructor with a file path}
* to append a trailing slash to the root path: "C:/dir1/", which indicates
@ -111,7 +111,7 @@ public class FileSystemResource extends AbstractResource implements WritableReso
* path cleaning and {@link #createRelative(String)} handling.
* <p>Note: When building relative resources via {@link #createRelative},
* the relative path will apply <i>at the same directory level</i>:
* e.g. Paths.get("C:/dir1"), relative path "dir2" -> "C:/dir2"!
* e.g. Paths.get("C:/dir1"), relative path "dir2" &rarr; "C:/dir2"!
* If you prefer to have relative paths built underneath the given root directory,
* use the {@link #FileSystemResource(String) constructor with a file path}
* to append a trailing slash to the root path: "C:/dir1/", which indicates

View File

@ -64,7 +64,7 @@ public class PathResource extends AbstractResource implements WritableResource {
* Create a new PathResource from a Path handle.
* <p>Note: Unlike {@link FileSystemResource}, when building relative resources
* via {@link #createRelative}, the relative path will be built <i>underneath</i>
* the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" -> "C:/dir1/dir2"!
* the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" &rarr; "C:/dir1/dir2"!
* @param path a Path handle
*/
public PathResource(Path path) {
@ -76,7 +76,7 @@ public class PathResource extends AbstractResource implements WritableResource {
* Create a new PathResource from a Path handle.
* <p>Note: Unlike {@link FileSystemResource}, when building relative resources
* via {@link #createRelative}, the relative path will be built <i>underneath</i>
* the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" -> "C:/dir1/dir2"!
* the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" &rarr; "C:/dir1/dir2"!
* @param path a path
* @see java.nio.file.Paths#get(String, String...)
*/
@ -89,7 +89,7 @@ public class PathResource extends AbstractResource implements WritableResource {
* Create a new PathResource from a Path handle.
* <p>Note: Unlike {@link FileSystemResource}, when building relative resources
* via {@link #createRelative}, the relative path will be built <i>underneath</i>
* the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" -> "C:/dir1/dir2"!
* the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" &rarr; "C:/dir1/dir2"!
* @param uri a path URI
* @see java.nio.file.Paths#get(URI)
*/

View File

@ -475,14 +475,14 @@ public class AntPathMatcher implements PathMatcher {
/**
* Given a pattern and a full path, determine the pattern-mapped part. <p>For example: <ul>
* <li>'{@code /docs/cvs/commit.html}' and '{@code /docs/cvs/commit.html} -> ''</li>
* <li>'{@code /docs/*}' and '{@code /docs/cvs/commit} -> '{@code cvs/commit}'</li>
* <li>'{@code /docs/cvs/*.html}' and '{@code /docs/cvs/commit.html} -> '{@code commit.html}'</li>
* <li>'{@code /docs/**}' and '{@code /docs/cvs/commit} -> '{@code cvs/commit}'</li>
* <li>'{@code /docs/**\/*.html}' and '{@code /docs/cvs/commit.html} -> '{@code cvs/commit.html}'</li>
* <li>'{@code /*.html}' and '{@code /docs/cvs/commit.html} -> '{@code docs/cvs/commit.html}'</li>
* <li>'{@code *.html}' and '{@code /docs/cvs/commit.html} -> '{@code /docs/cvs/commit.html}'</li>
* <li>'{@code *}' and '{@code /docs/cvs/commit.html} -> '{@code /docs/cvs/commit.html}'</li> </ul>
* <li>'{@code /docs/cvs/commit.html}' and '{@code /docs/cvs/commit.html} &rarr; ''</li>
* <li>'{@code /docs/*}' and '{@code /docs/cvs/commit} &rarr; '{@code cvs/commit}'</li>
* <li>'{@code /docs/cvs/*.html}' and '{@code /docs/cvs/commit.html} &rarr; '{@code commit.html}'</li>
* <li>'{@code /docs/**}' and '{@code /docs/cvs/commit} &rarr; '{@code cvs/commit}'</li>
* <li>'{@code /docs/**\/*.html}' and '{@code /docs/cvs/commit.html} &rarr; '{@code cvs/commit.html}'</li>
* <li>'{@code /*.html}' and '{@code /docs/cvs/commit.html} &rarr; '{@code docs/cvs/commit.html}'</li>
* <li>'{@code *.html}' and '{@code /docs/cvs/commit.html} &rarr; '{@code /docs/cvs/commit.html}'</li>
* <li>'{@code *}' and '{@code /docs/cvs/commit.html} &rarr; '{@code /docs/cvs/commit.html}'</li> </ul>
* <p>Assumes that {@link #match} returns {@code true} for '{@code pattern}' and '{@code path}', but
* does <strong>not</strong> enforce this.
*/

View File

@ -43,7 +43,7 @@ import org.springframework.lang.Nullable;
*
* <pre class="code">
* Assert.notNull(clazz, "The class must not be null");
* Assert.isTrue(i > 0, "The value must be greater than zero");</pre>
* Assert.isTrue(i &gt; 0, "The value must be greater than zero");</pre>
*
* <p>Mainly for internal use within the framework; for a more comprehensive suite
* of assertion utilities consider {@code org.apache.commons.lang3.Validate} from

View File

@ -288,7 +288,7 @@ public class MethodInvoker {
* Algorithm that judges the match between the declared parameter types of a candidate method
* and a specific list of arguments that this method is supposed to be invoked with.
* <p>Determines a weight that represents the class hierarchy difference between types and
* arguments. A direct match, i.e. type Integer -> arg of class Integer, does not increase
* arguments. A direct match, i.e. type Integer &rarr; arg of class Integer, does not increase
* the result - all direct matches means weight 0. A match between type Object and arg of
* class Integer would increase the weight by 2, due to the superclass 2 steps up in the
* hierarchy (i.e. Object) being the last one that still matches the required type Object.

View File

@ -94,7 +94,7 @@ public interface PathMatcher {
* Given a pattern and a full path, extract the URI template variables. URI template
* variables are expressed through curly brackets ('{' and '}').
* <p>For example: For pattern "/hotels/{hotel}" and path "/hotels/1", this method will
* return a map containing "hotel"->"1".
* return a map containing "hotel" &rarr; "1".
* @param pattern the path pattern, possibly containing URI templates
* @param path the full path to extract template variables from
* @return a map, containing variable names as keys; variables values as values

View File

@ -571,7 +571,7 @@ public abstract class StringUtils {
/**
* Extract the filename from the given Java resource path,
* e.g. {@code "mypath/myfile.txt" -> "myfile.txt"}.
* e.g. {@code "mypath/myfile.txt" &rarr; "myfile.txt"}.
* @param path the file path (may be {@code null})
* @return the extracted filename, or {@code null} if none
*/
@ -587,7 +587,7 @@ public abstract class StringUtils {
/**
* Extract the filename extension from the given Java resource path,
* e.g. "mypath/myfile.txt" -> "txt".
* e.g. "mypath/myfile.txt" &rarr; "txt".
* @param path the file path (may be {@code null})
* @return the extracted filename extension, or {@code null} if none
*/
@ -612,7 +612,7 @@ public abstract class StringUtils {
/**
* Strip the filename extension from the given Java resource path,
* e.g. "mypath/myfile.txt" -> "mypath/myfile".
* e.g. "mypath/myfile.txt" &rarr; "mypath/myfile".
* @param path the file path
* @return the path with stripped filename extension
*/

View File

@ -81,8 +81,8 @@ public class InvertibleComparator<T> implements Comparator<T>, Serializable {
}
/**
* Invert the sort order: ascending -> descending or
* descending -> ascending.
* Invert the sort order: ascending &rarr; descending or
* descending &rarr; ascending.
*/
public void invertOrder() {
this.ascending = !this.ascending;

View File

@ -111,7 +111,7 @@ public class LazyConnectionDataSourceProxy extends DelegatingDataSource {
/**
* Set the default auto-commit mode to expose when no target Connection
* has been fetched yet (-> actual JDBC Connection default not known yet).
* has been fetched yet (when the actual JDBC Connection default is not known yet).
* <p>If not specified, the default gets determined by checking a target
* Connection on startup. If that check fails, the default will be determined
* lazily on first access of a Connection.
@ -123,7 +123,7 @@ public class LazyConnectionDataSourceProxy extends DelegatingDataSource {
/**
* Set the default transaction isolation level to expose when no target Connection
* has been fetched yet (-> actual JDBC Connection default not known yet).
* has been fetched yet (when the actual JDBC Connection default is not known yet).
* <p>This property accepts the int constant value (e.g. 8) as defined in the
* {@link java.sql.Connection} interface; it is mainly intended for programmatic
* use. Consider using the "defaultTransactionIsolationName" property for setting

View File

@ -48,7 +48,7 @@ import org.springframework.util.StringUtils;
* &lt;property name="targetDataSource" ref="myTargetDataSource"/&gt;
* &lt;property name="username" value="myusername"/&gt;
* &lt;property name="password" value="mypassword"/&gt;
* &lt;/bean></pre>
* &lt;/bean&gt;</pre>
*
* <p>If the "username" is empty, this proxy will simply delegate to the
* standard {@code getConnection()} method of the target DataSource.

View File

@ -55,7 +55,7 @@ import org.springframework.util.StringUtils;
* &lt;property name="targetConnectionFactory" ref="myTargetConnectionFactory"/&gt;
* &lt;property name="username" value="myusername"/&gt;
* &lt;property name="password" value="mypassword"/&gt;
* &lt;/bean></pre>
* &lt;/bean&gt;</pre>
*
* <p>If the "username" is empty, this proxy will simply delegate to the standard
* {@code createConnection()} method of the target ConnectionFactory.

View File

@ -33,7 +33,7 @@ import org.springframework.beans.BeanWrapper;
* <p>An ActivationSpec factory is effectively dependent on the concrete
* JMS provider, e.g. on ActiveMQ. This default implementation simply
* guesses the ActivationSpec class name from the provider's class name
* ("ActiveMQResourceAdapter" -> "ActiveMQActivationSpec" in the same package,
* ("ActiveMQResourceAdapter" &rarr; "ActiveMQActivationSpec" in the same package,
* or "ActivationSpecImpl" in the same package as the ResourceAdapter class),
* and populates the ActivationSpec properties as suggested by the
* JCA 1.5 specification (Appendix B). Specify the 'activationSpecClass'
@ -68,7 +68,7 @@ public class DefaultJmsActivationSpecFactory extends StandardJmsActivationSpecFa
/**
* This implementation guesses the ActivationSpec class name from the
* provider's class name: e.g. "ActiveMQResourceAdapter" ->
* provider's class name: e.g. "ActiveMQResourceAdapter" &rarr;
* "ActiveMQActivationSpec" in the same package, or a class named
* "ActivationSpecImpl" in the same package as the ResourceAdapter class.
*/

View File

@ -104,7 +104,7 @@ public class JmsMessageEndpointManager extends GenericMessageEndpointManager
* {@link #setActivationSpecConfig JmsActivationSpecConfig} objects.
* <p>This factory is dependent on the concrete JMS provider, e.g. on ActiveMQ.
* The default implementation simply guesses the ActivationSpec class name
* from the provider's class name (e.g. "ActiveMQResourceAdapter" ->
* from the provider's class name (e.g. "ActiveMQResourceAdapter" &rarr;
* "ActiveMQActivationSpec" in the same package), and populates the
* ActivationSpec properties as suggested by the JCA 1.5 specification
* (plus a couple of autodetected vendor-specific properties).

View File

@ -200,7 +200,7 @@ public class MessageMappingMessageHandler extends AbstractMethodMessageHandler<C
* {@code @ControllerAdvice} bean. You can use the following adapter code
* to register {@code @ControllerAdvice} beans here:
* <pre>
* ControllerAdviceBean.findAnnotatedBeans(context).forEach(bean ->
* ControllerAdviceBean.findAnnotatedBeans(context).forEach(bean -&gt;
* messageHandler.registerMessagingAdvice(new ControllerAdviceWrapper(bean));
*
* public class ControllerAdviceWrapper implements MessagingAdviceBean {

View File

@ -461,7 +461,7 @@ public class RSocketMessageHandler extends MessageMappingMessageHandler {
* RSocketMessageHandler.responder(strategies, new ClientHandler());
*
* RSocketRequester.builder()
* .rsocketConnector(connector -> connector.acceptor(responder))
* .rsocketConnector(connector -&gt; connector.acceptor(responder))
* .connectTcp("localhost", server.address().getPort());
* </pre>
*

View File

@ -46,7 +46,7 @@ import org.springframework.util.ConcurrentReferenceHashMap;
* &lt;bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&gt;
* ...
* &lt;property name="jpaPropertyMap"&gt;
* &lt;map>
* &lt;map&gt;
* &lt;entry key="hibernate.resource.beans.container"&gt;
* &lt;bean class="org.springframework.orm.hibernate5.SpringBeanContainer"/&gt;
* &lt;/entry&gt;

View File

@ -44,8 +44,8 @@ import org.springframework.util.Assert;
* ConnectionFactory factory =
*
* DatabaseClient client = DatabaseClient.create(factory);
* Mono&gtActor;lt actor = client.sql("select first_name, last_name from t_actor")
* .map(row -> new Actor(row.get("first_name, String.class"),
* Mono&lt;Actor&gt; actor = client.sql("select first_name, last_name from t_actor")
* .map(row -&gt; new Actor(row.get("first_name, String.class"),
* row.get("last_name, String.class")))
* .first();
* </pre>
@ -190,7 +190,7 @@ public interface DatabaseClient extends ConnectionAccessor {
* before it is executed. For example:
* <pre class="code">
* DatabaseClient client = ;
* client.sql("SELECT book_id FROM book").filter(statement -> statement.fetchSize(100))
* client.sql("SELECT book_id FROM book").filter(statement -&gt; statement.fetchSize(100))
* </pre>
* @param filterFunction the filter to be added to the chain
*/
@ -205,7 +205,7 @@ public interface DatabaseClient extends ConnectionAccessor {
* before it is executed. For example:
* <pre class="code">
* DatabaseClient client = ;
* client.sql("SELECT book_id FROM book").filter((statement, next) -> next.execute(statement.fetchSize(100)))
* client.sql("SELECT book_id FROM book").filter((statement, next) -&gt; next.execute(statement.fetchSize(100)))
* </pre>
* @param filter the filter to be added to the chain
*/

View File

@ -36,7 +36,7 @@ import org.reactivestreams.Publisher;
* For example:
* <p><pre class="code">
* DatabaseClient.builder()
* .executeFunction(statement -> statement.execute())
* .executeFunction(statement -&gt; statement.execute())
* .build();
* </pre>
*

View File

@ -256,7 +256,7 @@ public abstract class AbstractRequestExpectationManager implements RequestExpect
/**
* Invoke this for an expectation that has been matched.
* <p>The count of the given expectation is incremented, then it is
* either stored if remainingCount > 0 or removed otherwise.
* either stored if remainingCount &gt; 0 or removed otherwise.
*/
public void update(RequestExpectation expectation) {
expectation.incrementAndValidate();

View File

@ -80,7 +80,7 @@ public class FluxExchangeResult<T> extends ExchangeResult {
* .exchange()
* .expectStatus().isOk()
* .returnResult()
* .consumeWith(result -> assertThat(...);
* .consumeWith(result -&gt; assertThat(...);
* </pre>
* @param consumer the consumer for {@code "this"} instance
*/

View File

@ -448,15 +448,15 @@ public interface WebTestClient {
* <pre>
* client.get().uri("/accounts/1")
* .exchange()
* .expectBody(Person.class).consumeWith(exchangeResult -> ... ));
* .expectBody(Person.class).consumeWith(exchangeResult -&gt; ... ));
*
* client.get().uri("/accounts")
* .exchange()
* .expectBodyList(Person.class).consumeWith(exchangeResult -> ... ));
* .expectBodyList(Person.class).consumeWith(exchangeResult -&gt; ... ));
*
* client.get().uri("/accounts/1")
* .exchange()
* .expectBody().consumeWith(exchangeResult -> ... ));
* .expectBody().consumeWith(exchangeResult -&gt; ... ));
* </pre>
* <p>Note that the configured consumer does not apply to responses
* decoded to {@code Flux<T>} which can be consumed outside the workflow
@ -802,8 +802,8 @@ public interface WebTestClient {
* <pre class="code">
* webTestClient.get().uri("/hello").exchange()
* .expectAll(
* responseSpec -> responseSpec.expectStatus().isOk(),
* responseSpec -> responseSpec.expectBody(String.class).isEqualTo("Hello, World!")
* responseSpec -&gt; responseSpec.expectStatus().isOk(),
* responseSpec -&gt; responseSpec.expectBody(String.class).isEqualTo("Hello, World!")
* );
* </pre>
* @param consumers the list of {@code ResponseSpec} consumers

View File

@ -43,7 +43,7 @@ import org.springframework.util.Assert;
* <pre class="code">
* &lt;bean id="myTargetConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"&gt;
* &lt;property name="jndiName" value="java:comp/env/cci/mycf"/&gt;
* &lt;/bean>
* &lt;/bean&gt;
*
* &lt;bean id="myConnectionFactory" class="org.springframework.jca.cci.connection.ConnectionSpecConnectionFactoryAdapter"&gt;
* &lt;property name="targetConnectionFactory" ref="myTargetConnectionFactory"/&gt;

View File

@ -79,7 +79,7 @@ import org.springframework.transaction.PlatformTransactionManager;
* deriving concrete child bean definitions for specific target objects.
* This reduces the per-bean definition effort to a minimum.
*
* <pre code="class">
* <pre class="code">
* &lt;bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
* abstract="true"&gt;
* &lt;property name="transactionManager" ref="transactionManager"/&gt;

View File

@ -576,14 +576,13 @@ public final class ContentDisposition {
Builder filename(String filename);
/**
* Set the value of the {@literal filename*} that will be encoded as
* defined in the RFC 5987. Only the US-ASCII, UTF-8 and ISO-8859-1
* Set the value of the {@code filename} that will be encoded as
* defined in RFC 5987. Only the US-ASCII, UTF-8, and ISO-8859-1
* charsets are supported.
* <p><strong>Note:</strong> Do not use this for a
* {@code "multipart/form-data"} requests as per
* <a link="https://tools.ietf.org/html/rfc7578#section-4.2">RFC 7578, Section 4.2</a>
* and also RFC 5987 itself mentions it does not apply to multipart
* requests.
* {@code "multipart/form-data"} request since
* <a href="https://tools.ietf.org/html/rfc7578#section-4.2">RFC 7578, Section 4.2</a>
* and also RFC 5987 mention it does not apply to multipart requests.
*/
Builder filename(String filename, Charset charset);

View File

@ -285,21 +285,21 @@ public enum HttpStatus {
I_AM_A_TEAPOT(418, Series.CLIENT_ERROR, "I'm a teapot"),
/**
* @deprecated See
* <a href="https://tools.ietf.org/rfcdiff?difftype=--hwdiff{@literal &}url2=draft-ietf-webdav-protocol-06.txt">
* <a href="https://tools.ietf.org/rfcdiff?difftype=--hwdiff&amp;url2=draft-ietf-webdav-protocol-06.txt">
* WebDAV Draft Changes</a>
*/
@Deprecated
INSUFFICIENT_SPACE_ON_RESOURCE(419, Series.CLIENT_ERROR, "Insufficient Space On Resource"),
/**
* @deprecated See
* <a href="https://tools.ietf.org/rfcdiff?difftype=--hwdiff{@literal &}url2=draft-ietf-webdav-protocol-06.txt">
* <a href="https://tools.ietf.org/rfcdiff?difftype=--hwdiff&amp;url2=draft-ietf-webdav-protocol-06.txt">
* WebDAV Draft Changes</a>
*/
@Deprecated
METHOD_FAILURE(420, Series.CLIENT_ERROR, "Method Failure"),
/**
* @deprecated
* See <a href="https://tools.ietf.org/rfcdiff?difftype=--hwdiff{@literal &}url2=draft-ietf-webdav-protocol-06.txt">
* See <a href="https://tools.ietf.org/rfcdiff?difftype=--hwdiff&amp;url2=draft-ietf-webdav-protocol-06.txt">
* WebDAV Draft Changes</a>
*/
@Deprecated

View File

@ -42,15 +42,15 @@ public interface ClientHttpRequestInterceptor {
* request and response to the next entity in the chain.
* <p>A typical implementation of this method would follow the following pattern:
* <ol>
* <li>Examine the {@linkplain HttpRequest request} and body</li>
* <li>Examine the {@linkplain HttpRequest request} and body.</li>
* <li>Optionally {@linkplain org.springframework.http.client.support.HttpRequestWrapper
* wrap} the request to filter HTTP attributes.</li>
* <li>Optionally modify the body of the request.</li>
* <li><strong>Either</strong>
* <ul>
* <li><strong>Either</strong>
* <li>execute the request using
* {@link ClientHttpRequestExecution#execute(org.springframework.http.HttpRequest, byte[])},</li>
* <strong>or</strong>
* <li><strong>or</strong></li>
* <li>do not execute the request to block the execution altogether.</li>
* </ul>
* <li>Optionally wrap the response to filter HTTP attributes.</li>

View File

@ -55,7 +55,7 @@ import org.springframework.util.xml.StaxUtils;
* <p>Given the following XML:
*
* <pre class="code">
* &lt;root>
* &lt;root&gt;
* &lt;child&gt;foo&lt;/child&gt;
* &lt;child&gt;bar&lt;/child&gt;
* &lt;/root&gt;

View File

@ -38,11 +38,11 @@ import org.springframework.util.Assert;
* <p>A usage example:
*
* <pre class="code">
* &lt;bean class="org.springframework.http.converter.ObjectToStringHttpMessageConverter">
* &lt;constructor-arg>
* &lt;bean class="org.springframework.context.support.ConversionServiceFactoryBean"/>
* &lt;/constructor-arg>
* &lt;/bean>
* &lt;bean class="org.springframework.http.converter.ObjectToStringHttpMessageConverter"&gt;
* &lt;constructor-arg&gt;
* &lt;bean class="org.springframework.context.support.ConversionServiceFactoryBean"/&gt;
* &lt;/constructor-arg&gt;
* &lt;/bean&gt;
* </pre>
*
* @author <a href="mailto:dmitry.katsubo@gmail.com">Dmitry Katsubo</a>

View File

@ -25,7 +25,7 @@ import org.springframework.http.MediaType;
* that can read and write Atom feeds. Specifically, this converter can handle {@link Feed}
* objects from the <a href="https://github.com/rometools/rome">ROME</a> project.
*
* <p>><b>NOTE: As of Spring 4.1, this is based on the {@code com.rometools}
* <p><b>NOTE: As of Spring 4.1, this is based on the {@code com.rometools}
* variant of ROME, version 1.5. Please upgrade your build dependency.</b>
*
* <p>By default, this converter reads and writes the media type ({@code application/atom+xml}).

View File

@ -25,7 +25,7 @@ import org.springframework.http.MediaType;
* that can read and write RSS feeds. Specifically, this converter can handle {@link Channel}
* objects from the <a href="https://github.com/rometools/rome">ROME</a> project.
*
* <p>><b>NOTE: As of Spring 4.1, this is based on the {@code com.rometools}
* <p><b>NOTE: As of Spring 4.1, this is based on the {@code com.rometools}
* variant of ROME, version 1.5. Please upgrade your build dependency.</b>
*
* <p>By default, this converter reads and writes the media type ({@code application/rss+xml}).

View File

@ -135,7 +135,7 @@ public class SimpleHttpServerJaxWsServiceExporter extends AbstractJaxWsServiceEx
* Set the base path for context publication. Default is "/".
* <p>For each context publication path, the service name will be
* appended to this base address. E.g. service name "OrderService"
* -> "/OrderService".
* &rarr; "/OrderService".
* @see javax.xml.ws.Endpoint#publish(Object)
* @see javax.jws.WebService#serviceName()
*/

View File

@ -52,7 +52,7 @@ public class SimpleJaxWsServiceExporter extends AbstractJaxWsServiceExporter {
* Default is "http://localhost:8080/".
* <p>For each actual publication address, the service name will be
* appended to this base address. E.g. service name "OrderService"
* -> "http://localhost:8080/OrderService".
* &rarr; "http://localhost:8080/OrderService".
* @see javax.xml.ws.Endpoint#publish(String)
* @see javax.jws.WebService#serviceName()
*/

View File

@ -61,8 +61,8 @@ import org.springframework.util.ReflectionUtils;
*
* <pre class="code">
* &lt;absolute-ordering&gt;
* &lt;name>some_web_fragment&lt;/name&gt;
* &lt;name>spring_web&lt;/name&gt;
* &lt;name&gt;some_web_fragment&lt;/name&gt;
* &lt;name&gt;spring_web&lt;/name&gt;
* &lt;/absolute-ordering&gt;
* </pre>
*

View File

@ -36,15 +36,15 @@ import javax.servlet.ServletException;
* follows:
* <pre class="code">
* &lt;servlet&gt;
* &lt;servlet-name>dispatcher&lt;/servlet-name&gt;
* &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt;
* &lt;servlet-class&gt;
* org.springframework.web.servlet.DispatcherServlet
* &lt;/servlet-class&gt;
* &lt;init-param>
* &lt;param-name>contextConfigLocation&lt;/param-name&gt;
* &lt;param-value>/WEB-INF/spring/dispatcher-config.xml&lt;/param-value&gt;
* &lt;init-param&gt;
* &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
* &lt;param-value&gt;/WEB-INF/spring/dispatcher-config.xml&lt;/param-value&gt;
* &lt;/init-param&gt;
* &lt;load-on-startup>1&lt;/load-on-startup&gt;
* &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
* &lt;/servlet&gt;
*
* &lt;servlet-mapping&gt;

View File

@ -36,33 +36,33 @@ import org.springframework.web.jsf.FacesContextUtils;
* <p>Configure this resolver in your {@code faces-config.xml} file as follows:
*
* <pre class="code">
* &lt;application>
* &lt;application&gt;
* ...
* &lt;el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver&lt;/el-resolver>
* &lt;/application></pre>
* &lt;el-resolver&gt;org.springframework.web.jsf.el.SpringBeanFacesELResolver&lt;/el-resolver&gt;
* &lt;/application&gt;</pre>
*
* All your JSF expressions can then implicitly refer to the names of
* Spring-managed service layer beans, for example in property values of
* JSF-managed beans:
*
* <pre class="code">
* &lt;managed-bean>
* &lt;managed-bean-name>myJsfManagedBean&lt;/managed-bean-name>
* &lt;managed-bean-class>example.MyJsfManagedBean&lt;/managed-bean-class>
* &lt;managed-bean-scope>session&lt;/managed-bean-scope>
* &lt;managed-property>
* &lt;property-name>mySpringManagedBusinessObject&lt;/property-name>
* &lt;value>#{mySpringManagedBusinessObject}&lt;/value>
* &lt;/managed-property>
* &lt;/managed-bean></pre>
* &lt;managed-bean&gt;
* &lt;managed-bean-name&gt;myJsfManagedBean&lt;/managed-bean-name&gt;
* &lt;managed-bean-class&gt;example.MyJsfManagedBean&lt;/managed-bean-class&gt;
* &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
* &lt;managed-property&gt;
* &lt;property-name&gt;mySpringManagedBusinessObject&lt;/property-name&gt;
* &lt;value&gt;#{mySpringManagedBusinessObject}&lt;/value&gt;
* &lt;/managed-property&gt;
* &lt;/managed-bean&gt;</pre>
*
* with "mySpringManagedBusinessObject" defined as Spring bean in
* applicationContext.xml:
*
* <pre class="code">
* &lt;bean id="mySpringManagedBusinessObject" class="example.MySpringManagedBusinessObject">
* &lt;bean id="mySpringManagedBusinessObject" class="example.MySpringManagedBusinessObject"&gt;
* ...
* &lt;/bean></pre>
* &lt;/bean&gt;</pre>
*
* @author Juergen Hoeller
* @since 2.5

View File

@ -45,10 +45,10 @@ import org.springframework.web.jsf.FacesContextUtils;
* <p>Configure this resolver in your {@code faces-config.xml} file as follows:
*
* <pre class="code">
* &lt;application>
* &lt;application&gt;
* ...
* &lt;el-resolver>org.springframework.web.jsf.el.WebApplicationContextFacesELResolver&lt;/el-resolver>
* &lt;/application></pre>
* &lt;el-resolver&gt;org.springframework.web.jsf.el.WebApplicationContextFacesELResolver&lt;/el-resolver&gt;
* &lt;/application&gt;</pre>
*
* @author Juergen Hoeller
* @since 2.5

View File

@ -248,7 +248,7 @@ public interface ServerWebExchange {
* Configure a consumer to modify the current request using a builder.
* <p>Effectively this:
* <pre>
* exchange.mutate().request(builder-> builder.method(HttpMethod.PUT));
* exchange.mutate().request(builder -&gt; builder.method(HttpMethod.PUT));
*
* // vs...
*

View File

@ -290,11 +290,11 @@ public class UrlPathHelper {
* i.e. the part of the request's URL beyond the part that called the servlet,
* or "" if the whole URL has been used to identify the servlet.
* <p>Detects include request URL if called within a RequestDispatcher include.
* <p>E.g.: servlet mapping = "/*"; request URI = "/test/a" -> "/test/a".
* <p>E.g.: servlet mapping = "/"; request URI = "/test/a" -> "/test/a".
* <p>E.g.: servlet mapping = "/test/*"; request URI = "/test/a" -> "/a".
* <p>E.g.: servlet mapping = "/test"; request URI = "/test" -> "".
* <p>E.g.: servlet mapping = "/*.test"; request URI = "/a.test" -> "".
* <p>E.g.: servlet mapping = "/*"; request URI = "/test/a" &rarr; "/test/a".
* <p>E.g.: servlet mapping = "/"; request URI = "/test/a" &rarr; "/test/a".
* <p>E.g.: servlet mapping = "/test/*"; request URI = "/test/a" &rarr; "/a".
* <p>E.g.: servlet mapping = "/test"; request URI = "/test" &rarr; "".
* <p>E.g.: servlet mapping = "/*.test"; request URI = "/a.test" &rarr; "".
* @param request current HTTP request
* @param pathWithinApp a precomputed path within the application
* @return the path within the servlet mapping, or ""

View File

@ -32,7 +32,7 @@ import reactor.core.publisher.Mono;
*
* Mono&lt;String&gt; bodyMono = exchangeFunction
* .exchange(request)
* .flatMap(response -> response.bodyToMono(String.class));
* .flatMap(response -&gt; response.bodyToMono(String.class));
* </pre>
*
* @author Arjen Poutsma

View File

@ -522,7 +522,7 @@ public interface WebClient {
* Mono&lt;Object&gt; entityMono = client.get()
* .uri("/persons/1")
* .accept(MediaType.APPLICATION_JSON)
* .exchangeToMono(response -> {
* .exchangeToMono(response -&gt; {
* if (response.statusCode().equals(HttpStatus.OK)) {
* return response.bodyToMono(Person.class);
* }
@ -554,7 +554,7 @@ public interface WebClient {
* Mono&lt;Object&gt; entityMono = client.get()
* .uri("/persons")
* .accept(MediaType.APPLICATION_JSON)
* .exchangeToFlux(response -> {
* .exchangeToFlux(response -&gt; {
* if (response.statusCode().equals(HttpStatus.OK)) {
* return response.bodyToFlux(Person.class);
* }
@ -751,7 +751,7 @@ public interface WebClient {
* Provide a function to map specific error status codes to an error
* signal to be propagated downstream instead of the response.
* <p>By default, if there are no matching status handlers, responses
* with status codes >= 400 are mapped to
* with status codes &gt;= 400 are mapped to
* {@link WebClientResponseException} which is created with
* {@link ClientResponse#createException()}.
* <p>To suppress the treatment of a status code as an error and process
@ -766,7 +766,7 @@ public interface WebClient {
* .retrieve()
* .bodyToMono(Account.class)
* .onErrorResume(WebClientResponseException.class,
* ex -> ex.getRawStatusCode() == 404 ? Mono.empty() : Mono.error(ex));
* ex -&gt; ex.getRawStatusCode() == 404 ? Mono.empty() : Mono.error(ex));
* </pre>
* @param statusPredicate to match responses with
* @param exceptionFunction to map the response to an error signal

View File

@ -670,7 +670,7 @@ public abstract class RouterFunctions {
* <pre class="code">
* RouterFunction&lt;ServerResponse&gt; nestedRoute =
* RouterFunctions.route()
* .nest(RequestPredicates.path("/user"), () ->
* .nest(RequestPredicates.path("/user"), () -&gt;
* RouterFunctions.route()
* .GET(this::listUsers)
* .POST(this::createUser)
@ -695,7 +695,7 @@ public abstract class RouterFunctions {
* <pre class="code">
* RouterFunction&lt;ServerResponse&gt; nestedRoute =
* RouterFunctions.route()
* .nest(RequestPredicates.path("/user"), builder ->
* .nest(RequestPredicates.path("/user"), builder -&gt;
* builder.GET(this::listUsers)
* .POST(this::createUser))
* .build();
@ -740,7 +740,7 @@ public abstract class RouterFunctions {
* <pre class="code">
* RouterFunction&lt;ServerResponse&gt; nestedRoute =
* RouterFunctions.route()
* .path("/user", builder ->
* .path("/user", builder -&gt;
* builder.GET(this::listUsers)
* .POST(this::createUser))
* .build();
@ -762,7 +762,7 @@ public abstract class RouterFunctions {
* RouterFunction&lt;ServerResponse&gt; filteredRoute =
* RouterFunctions.route()
* .GET("/user", this::listUsers)
* .filter((request, next) -> {
* .filter((request, next) -&gt; {
* // check for authentication headers
* if (isAuthenticated(request)) {
* return next.handle(request);
@ -788,7 +788,7 @@ public abstract class RouterFunctions {
* RouterFunction&lt;ServerResponse&gt; filteredRoute =
* RouterFunctions.route()
* .GET("/user", this::listUsers)
* .before(request -> {
* .before(request -&gt; {
* log(request);
* return request;
* })
@ -809,7 +809,7 @@ public abstract class RouterFunctions {
* RouterFunction&lt;ServerResponse&gt; filteredRoute =
* RouterFunctions.route()
* .GET("/user", this::listUsers)
* .after((request, response) -> {
* .after((request, response) -&gt; {
* log(response);
* return response;
* })
@ -829,8 +829,8 @@ public abstract class RouterFunctions {
* RouterFunction&lt;ServerResponse&gt; filteredRoute =
* RouterFunctions.route()
* .GET("/user", this::listUsers)
* .onError(e -> e instanceof IllegalStateException,
* (e, request) -> ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
* .onError(e -&gt; e instanceof IllegalStateException,
* (e, request) -&gt; ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
* .build();
* </pre>
* @param predicate the type of exception to filter
@ -850,7 +850,7 @@ public abstract class RouterFunctions {
* RouterFunctions.route()
* .GET("/user", this::listUsers)
* .onError(IllegalStateException.class,
* (e, request) -> ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
* (e, request) -&gt; ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
* .build();
* </pre>
* @param exceptionType the type of exception to filter

View File

@ -310,7 +310,7 @@ public interface ServerRequest {
* public Mono&lt;ServerResponse&gt; myHandleMethod(ServerRequest request) {
* Instant lastModified = // application-specific calculation
* return request.checkNotModified(lastModified)
* .switchIfEmpty(Mono.defer(() -> {
* .switchIfEmpty(Mono.defer(() -&gt; {
* // further request processing, actually building content
* return ServerResponse.ok().body(...);
* }));
@ -344,7 +344,7 @@ public interface ServerRequest {
* public Mono&lt;ServerResponse&gt; myHandleMethod(ServerRequest request) {
* String eTag = // application-specific calculation
* return request.checkNotModified(eTag)
* .switchIfEmpty(Mono.defer(() -> {
* .switchIfEmpty(Mono.defer(() -&gt; {
* // further request processing, actually building content
* return ServerResponse.ok().body(...);
* }));
@ -381,7 +381,7 @@ public interface ServerRequest {
* Instant lastModified = // application-specific calculation
* String eTag = // application-specific calculation
* return request.checkNotModified(lastModified, eTag)
* .switchIfEmpty(Mono.defer(() -> {
* .switchIfEmpty(Mono.defer(() -&gt; {
* // further request processing, actually building content
* return ServerResponse.ok().body(...);
* }));

View File

@ -45,7 +45,7 @@ import org.springframework.util.PatternMatchUtils;
* specified prefix and/or suffix. Exporting an attribute that holds the
* RequestContext to all views is explicitly supported.
*
* <p>Example: prefix="templates/", suffix=".ftl", viewname="test" ->
* <p>Example: prefix="templates/", suffix=".ftl", viewname="test" &rarr;
* "templates/test.ftl"
*
* <p>As a special feature, redirect URLs can be specified via the "redirect:"

View File

@ -45,13 +45,13 @@ import reactor.core.publisher.Mono;
* public Mono&lt;Void&gt; handle(WebSocketSession session) {
*
* Flux&lt;WebSocketMessage&gt; output = session.receive()
* .doOnNext(message -> {
* .doOnNext(message -&gt; {
* // ...
* })
* .concatMap(message -> {
* .concatMap(message -&gt; {
* // ...
* })
* .map(value -> session.textMessage("Echo " + value));
* .map(value -&gt; session.textMessage("Echo " + value));
*
* return session.send(output);
* }
@ -68,10 +68,10 @@ import reactor.core.publisher.Mono;
* public Mono&lt;Void&gt; handle(WebSocketSession session) {
*
* Mono&lt;Void&gt; input = session.receive()
* .doOnNext(message -> {
* .doOnNext(message -&gt; {
* // ...
* })
* .concatMap(message -> {
* .concatMap(message -&gt; {
* // ...
* })
* .then();

View File

@ -1268,7 +1268,7 @@ public class DispatcherServlet extends FrameworkServlet {
}
/**
* No handler found -> set appropriate HTTP response status.
* No handler found &rarr; set appropriate HTTP response status.
* @param request current HTTP request
* @param response current HTTP response
* @throws Exception if preparing the response failed

View File

@ -303,7 +303,7 @@ public class ModelAndView {
/**
* Add all attributes contained in the provided Map to the model.
* @param modelMap a Map of attributeName -> attributeValue pairs
* @param modelMap a Map of attributeName &rarr; attributeValue pairs
* @see ModelMap#addAllAttributes(Map)
* @see #getModelMap()
*/

View File

@ -582,7 +582,7 @@ public abstract class RouterFunctions {
* <pre class="code">
* RouterFunction&lt;ServerResponse&gt; nestedRoute =
* RouterFunctions.route()
* .nest(RequestPredicates.path("/user"), () ->
* .nest(RequestPredicates.path("/user"), () -&gt;
* RouterFunctions.route()
* .GET(this::listUsers)
* .POST(this::createUser)
@ -607,7 +607,7 @@ public abstract class RouterFunctions {
* <pre class="code">
* RouterFunction&lt;ServerResponse&gt; nestedRoute =
* RouterFunctions.route()
* .nest(RequestPredicates.path("/user"), builder ->
* .nest(RequestPredicates.path("/user"), builder -&gt;
* builder.GET(this::listUsers)
* .POST(this::createUser))
* .build();
@ -652,7 +652,7 @@ public abstract class RouterFunctions {
* <pre class="code">
* RouterFunction&lt;ServerResponse&gt; nestedRoute =
* RouterFunctions.route()
* .path("/user", builder ->
* .path("/user", builder -&gt;
* builder.GET(this::listUsers)
* .POST(this::createUser))
* .build();
@ -674,7 +674,7 @@ public abstract class RouterFunctions {
* RouterFunction&lt;ServerResponse&gt; filteredRoute =
* RouterFunctions.route()
* .GET("/user", this::listUsers)
* .filter((request, next) -> {
* .filter((request, next) -&gt; {
* // check for authentication headers
* if (isAuthenticated(request)) {
* return next.handle(request);
@ -700,7 +700,7 @@ public abstract class RouterFunctions {
* RouterFunction&lt;ServerResponse&gt; filteredRoute =
* RouterFunctions.route()
* .GET("/user", this::listUsers)
* .before(request -> {
* .before(request -&gt; {
* log(request);
* return request;
* })
@ -721,7 +721,7 @@ public abstract class RouterFunctions {
* RouterFunction&lt;ServerResponse&gt; filteredRoute =
* RouterFunctions.route()
* .GET("/user", this::listUsers)
* .after((request, response) -> {
* .after((request, response) -&gt; {
* log(response);
* return response;
* })
@ -741,8 +741,8 @@ public abstract class RouterFunctions {
* RouterFunction&lt;ServerResponse&gt; filteredRoute =
* RouterFunctions.route()
* .GET("/user", this::listUsers)
* .onError(e -> e instanceof IllegalStateException,
* (e, request) -> ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
* .onError(e -&gt; e instanceof IllegalStateException,
* (e, request) -&gt; ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
* .build();
* </pre>
* @param predicate the type of exception to filter
@ -762,7 +762,7 @@ public abstract class RouterFunctions {
* RouterFunctions.route()
* .GET("/user", this::listUsers)
* .onError(IllegalStateException.class,
* (e, request) -> ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
* (e, request) -&gt; ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build())
* .build();
* </pre>
* @param exceptionType the type of exception to filter

View File

@ -259,7 +259,7 @@ public interface ServerRequest {
* public ServerResponse myHandleMethod(ServerRequest request) {
* Instant lastModified = // application-specific calculation
* return request.checkNotModified(lastModified)
* .orElseGet(() -> {
* .orElseGet(() -&gt; {
* // further request processing, actually building content
* return ServerResponse.ok().body(...);
* });
@ -293,7 +293,7 @@ public interface ServerRequest {
* public ServerResponse myHandleMethod(ServerRequest request) {
* String eTag = // application-specific calculation
* return request.checkNotModified(eTag)
* .orElseGet(() -> {
* .orElseGet(() -&gt; {
* // further request processing, actually building content
* return ServerResponse.ok().body(...);
* });
@ -330,7 +330,7 @@ public interface ServerRequest {
* Instant lastModified = // application-specific calculation
* String eTag = // application-specific calculation
* return request.checkNotModified(lastModified, eTag)
* .orElseGet(() -> {
* .orElseGet(() -&gt; {
* // further request processing, actually building content
* return ServerResponse.ok().body(...);
* });

View File

@ -267,14 +267,14 @@ public interface ServerResponse {
* <p>For example:
* <pre class="code">
* public ServerResponse handleSse(ServerRequest request) {
* return ServerResponse.sse(sse -> sse.send("Hello World!"));
* return ServerResponse.sse(sse -&gt; sse.send("Hello World!"));
* }
* </pre>
*
* <p>or, to set both the id and event type:
* <pre class="code">
* public ServerResponse handleSse(ServerRequest request) {
* return ServerResponse.sse(sse -> sse
* return ServerResponse.sse(sse -&gt; sse
* .id("42)
* .event("event")
* .send("Hello World!"));
@ -296,14 +296,14 @@ public interface ServerResponse {
* <p>For example:
* <pre class="code">
* public ServerResponse handleSse(ServerRequest request) {
* return ServerResponse.sse(sse -> sse.send("Hello World!"));
* return ServerResponse.sse(sse -&gt; sse.send("Hello World!"));
* }
* </pre>
*
* <p>or, to set both the id and event type:
* <pre class="code">
* public ServerResponse handleSse(ServerRequest request) {
* return ServerResponse.sse(sse -> sse
* return ServerResponse.sse(sse -&gt; sse
* .id("42)
* .event("event")
* .send("Hello World!"));

View File

@ -61,7 +61,6 @@ import org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver;
* <p>This exception resolver is enabled by default in the common Spring
* {@link org.springframework.web.servlet.DispatcherServlet}.
*
* <p>
* <table>
* <caption>Supported Exceptions</caption>
* <thead>

View File

@ -244,7 +244,7 @@ public abstract class WebContentGenerator extends WebApplicationObjectSupport {
* <ul>
* <li>seconds == -1 (default value): no generation cache-related headers</li>
* <li>seconds == 0: "Cache-Control: no-store" will prevent caching</li>
* <li>seconds > 0: "Cache-Control: max-age=seconds" will ask to cache content</li>
* <li>seconds &gt; 0: "Cache-Control: max-age=seconds" will ask to cache content</li>
* </ul>
* <p>For more specific needs, a custom {@link org.springframework.http.CacheControl}
* should be used.

View File

@ -51,7 +51,7 @@ import org.springframework.web.util.WebUtils;
* &lt;/bean&gt;</pre>
*
* Every view name returned from a handler will be translated to a JSP
* resource (for example: "myView" -> "/WEB-INF/jsp/myView.jsp"), using
* resource (for example: "myView" &rarr; "/WEB-INF/jsp/myView.jsp"), using
* this view class by default.
*
* @author Rod Johnson

View File

@ -47,7 +47,7 @@ import org.springframework.web.servlet.support.RequestContext;
* &lt;/bean&gt;</pre>
*
* Every view name returned from a handler will be translated to a JSP
* resource (for example: "myView" -> "/WEB-INF/jsp/myView.jsp"), using
* resource (for example: "myView" &rarr; "/WEB-INF/jsp/myView.jsp"), using
* this view class to enable explicit JSTL support.
*
* <p>The specified MessageSource loads messages from "messages.properties" etc

View File

@ -49,7 +49,7 @@ import org.springframework.web.servlet.View;
* specified prefix and/or suffix. Exporting an attribute that holds the
* RequestContext to all views is explicitly supported.
*
* <p>Example: prefix="/WEB-INF/jsp/", suffix=".jsp", viewname="test" ->
* <p>Example: prefix="/WEB-INF/jsp/", suffix=".jsp", viewname="test" &rarr;
* "/WEB-INF/jsp/test.jsp"
*
* <p>As a special feature, redirect URLs can be specified via the "redirect:"
@ -342,14 +342,16 @@ public class UrlBasedViewResolver extends AbstractCachingViewResolver implements
}
/**
* Specify whether views resolved by this resolver should add path variables to the model or not.
* <p>>The default setting is to let each View decide (see {@link AbstractView#setExposePathVariables}.
* However, you can use this property to override that.
* Specify whether views resolved by this resolver should add path
* variables to the model or not.
* <p>The default setting is to let each View decide
* (see {@link AbstractView#setExposePathVariables}). However, you
* can use this property to override that.
* @param exposePathVariables
* <ul>
* <li>{@code true} - all Views resolved by this resolver will expose path variables
* <li>{@code false} - no Views resolved by this resolver will expose path variables
* <li>{@code null} - individual Views can decide for themselves (this is used by the default)
* <li>{@code null} - individual Views can decide for themselves (this is used by default)
* </ul>
* @see AbstractView#setExposePathVariables
*/

View File

@ -29,7 +29,7 @@ import com.rometools.rome.feed.atom.Feed;
* Abstract superclass for Atom Feed views, using the
* <a href="https://github.com/rometools/rome">ROME</a> package.
*
* <p>><b>NOTE: As of Spring 4.1, this is based on the {@code com.rometools}
* <p><b>NOTE: As of Spring 4.1, this is based on the {@code com.rometools}
* variant of ROME, version 1.5. Please upgrade your build dependency.</b>
*
* <p>Application-specific view classes will extend this class.

View File

@ -33,7 +33,7 @@ import org.springframework.web.servlet.view.AbstractView;
* Abstract base class for Atom and RSS Feed views, using the
* <a href="https://github.com/rometools/rome">ROME</a> package.
*
* <p>><b>NOTE: As of Spring 4.1, this is based on the {@code com.rometools}
* <p><b>NOTE: As of Spring 4.1, this is based on the {@code com.rometools}
* variant of ROME, version 1.5. Please upgrade your build dependency.</b>
*
* <p>Application-specific view classes will typically extend from either

View File

@ -31,7 +31,7 @@ import org.springframework.http.MediaType;
* Abstract superclass for RSS Feed views, using the
* <a href="https://github.com/rometools/rome">ROME</a> package.
*
* <p>><b>NOTE: As of Spring 4.1, this is based on the {@code com.rometools}
* <p><b>NOTE: As of Spring 4.1, this is based on the {@code com.rometools}
* variant of ROME, version 1.5. Please upgrade your build dependency.</b>
*
* <p>Application-specific view classes will extend this class.

View File

@ -42,7 +42,7 @@ import org.springframework.web.context.ServletContextAware;
*
* <pre class="code">
* &lt;bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"&gt;
* &lt;property name="templateLoaderPath"&gt;&lt;value&gt;/WEB-INF/freemarker/&lt;/value>&lt;/property&gt;
* &lt;property name="templateLoaderPath"&gt;&lt;value&gt;/WEB-INF/freemarker/&lt;/value&gt;&lt;/property&gt;
* &lt;/bean&gt;</pre>
*
* This bean must be included in the application context of any application

View File

@ -88,17 +88,17 @@ import org.springframework.web.context.ServletContextAware;
* <p>A typical TilesConfigurer bean definition looks as follows:
*
* <pre class="code">
* &lt;bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
* &lt;property name="definitions">
* &lt;list>
* &lt;value>/WEB-INF/defs/general.xml&lt;/value>
* &lt;value>/WEB-INF/defs/widgets.xml&lt;/value>
* &lt;value>/WEB-INF/defs/administrator.xml&lt;/value>
* &lt;value>/WEB-INF/defs/customer.xml&lt;/value>
* &lt;value>/WEB-INF/defs/templates.xml&lt;/value>
* &lt;/list>
* &lt;/property>
* &lt;/bean>
* &lt;bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"&gt;
* &lt;property name="definitions"&gt;
* &lt;list&gt;
* &lt;value&gt;/WEB-INF/defs/general.xml&lt;/value&gt;
* &lt;value&gt;/WEB-INF/defs/widgets.xml&lt;/value&gt;
* &lt;value&gt;/WEB-INF/defs/administrator.xml&lt;/value&gt;
* &lt;value&gt;/WEB-INF/defs/customer.xml&lt;/value&gt;
* &lt;value&gt;/WEB-INF/defs/templates.xml&lt;/value&gt;
* &lt;/list&gt;
* &lt;/property&gt;
* &lt;/bean&gt;
* </pre>
*
* The values in the list are the actual Tiles XML files containing the definitions.
@ -108,14 +108,14 @@ import org.springframework.web.context.ServletContextAware;
* definitions is used to indicate locale information, for example:
*
* <pre class="code">
* &lt;bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
* &lt;property name="definitions">
* &lt;list>
* &lt;value>/WEB-INF/defs/tiles.xml&lt;/value>
* &lt;value>/WEB-INF/defs/tiles_fr_FR.xml&lt;/value>
* &lt;/list>
* &lt;/property>
* &lt;/bean>
* &lt;bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"&gt;
* &lt;property name="definitions"&gt;
* &lt;list&gt;
* &lt;value&gt;/WEB-INF/defs/tiles.xml&lt;/value&gt;
* &lt;value&gt;/WEB-INF/defs/tiles_fr_FR.xml&lt;/value&gt;
* &lt;/list&gt;
* &lt;/property&gt;
* &lt;/bean&gt;
* </pre>
*
* @author mick semb wever