Fix broken links in Javadoc

This commit removes several links that were broken due to the removal
of various APIs in 6.0.

See gh-27480
This commit is contained in:
Sam Brannen
2021-09-28 13:34:33 +02:00
parent 3dc84c2d92
commit 93efb20a53
24 changed files with 150 additions and 198 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2021 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.
@@ -38,8 +38,7 @@ import org.springframework.lang.Nullable;
* <p>Note: This is by no means a sophisticated CacheManager; it comes with no
* cache configuration options. However, it may be useful for testing or simple
* caching scenarios. For advanced local caching needs, consider
* {@link org.springframework.cache.jcache.JCacheCacheManager},
* {@link org.springframework.cache.ehcache.EhCacheCacheManager},
* {@link org.springframework.cache.jcache.JCacheCacheManager} or
* {@link org.springframework.cache.caffeine.CaffeineCacheManager}.
*
* @author Juergen Hoeller

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2021 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.
@@ -17,22 +17,17 @@
package org.springframework.scheduling;
/**
* Extension of the Runnable interface, adding special callbacks
* Extension of the {@link Runnable} interface, adding special callbacks
* for long-running operations.
*
* <p>This interface closely corresponds to the CommonJ Work interface,
* but is kept separate to avoid a required CommonJ dependency.
*
* <p>Scheduling-capable TaskExecutors are encouraged to check a submitted
* Runnable, detecting whether this interface is implemented and reacting
* as appropriately as they are able to.
*
* @author Juergen Hoeller
* @since 2.0
* @see commonj.work.Work
* @see org.springframework.core.task.TaskExecutor
* @see SchedulingTaskExecutor
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
*/
public interface SchedulingAwareRunnable extends Runnable {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2021 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.
@@ -28,7 +28,7 @@ import org.springframework.core.task.AsyncTaskExecutor;
*
* <p>Note: {@link SchedulingTaskExecutor} implementations are encouraged to also
* implement the {@link org.springframework.core.task.AsyncListenableTaskExecutor}
* interface. This is not required due to the dependency on Spring 4.0's new
* interface. This is not required due to the dependency on Spring 4.0's
* {@link org.springframework.util.concurrent.ListenableFuture} interface,
* which would make it impossible for third-party executor implementations
* to remain compatible with both Spring 4.0 and Spring 3.x.
@@ -37,7 +37,6 @@ import org.springframework.core.task.AsyncTaskExecutor;
* @since 2.0
* @see SchedulingAwareRunnable
* @see org.springframework.core.task.TaskExecutor
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
*/
public interface SchedulingTaskExecutor extends AsyncTaskExecutor {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2016 the original author or authors.
* Copyright 2002-2021 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.
@@ -26,12 +26,12 @@ import org.springframework.lang.Nullable;
import org.springframework.util.ClassUtils;
/**
* Special ObjectInputStream subclass that resolves class names
* against a specific ClassLoader. Serves as base class for
* {@link org.springframework.remoting.rmi.CodebaseAwareObjectInputStream}.
* Special {@link ObjectInputStream} subclass that resolves class names
* against a specific {@link ClassLoader}.
*
* @author Juergen Hoeller
* @since 2.5.5
* @see org.springframework.core.serializer.DefaultDeserializer
*/
public class ConfigurableObjectInputStream extends ObjectInputStream {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2021 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.
@@ -38,7 +38,6 @@ import org.springframework.util.Assert;
* @author Costin Leau
* @author Sam Brannen
* @since 3.0
* @see org.jboss.vfs.VirtualFile
*/
public class VfsResource extends AbstractResource {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2021 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.
@@ -35,8 +35,9 @@ import org.springframework.util.ReflectionUtils;
* (package {@code org.jboss.vfs}) and is in particular compatible with
* JBoss AS 7 and WildFly 8+.
*
* <p>Thanks go to Marius Bogoevici for the initial patch.
* <b>Note:</b> This is an internal class and should not be used outside the framework.
* <p>Thanks go to Marius Bogoevici for the initial implementation.
*
* <p><b>Note:</b> This is an internal class and should not be used outside the framework.
*
* @author Costin Leau
* @author Juergen Hoeller

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2021 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.
@@ -45,7 +45,6 @@ import org.springframework.util.concurrent.ListenableFutureTask;
* @see #setConcurrencyLimit
* @see SyncTaskExecutor
* @see org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
*/
@SuppressWarnings("serial")
public class SimpleAsyncTaskExecutor extends CustomizableThreadCreator

View File

@@ -62,11 +62,10 @@ import org.springframework.util.backoff.FixedBackOff;
* abstraction. By default, the specified number of invoker tasks will be created
* on startup, according to the {@link #setConcurrentConsumers "concurrentConsumers"}
* setting. Specify an alternative {@code TaskExecutor} to integrate with an existing
* thread pool facility (such as a Jakarta EE server's), for example using a
* {@link org.springframework.scheduling.commonj.WorkManagerTaskExecutor CommonJ WorkManager}.
* With a native JMS setup, each of those listener threads is going to use a
* cached JMS {@code Session} and {@code MessageConsumer} (only refreshed in case
* of failure), using the JMS provider's resources as efficiently as possible.
* thread pool facility (such as a Jakarta EE server's). With a native JMS setup,
* each of those listener threads is going to use a cached JMS {@code Session} and
* {@code MessageConsumer} (only refreshed in case of failure), using the JMS provider's
* resources as efficiently as possible.
*
* <p>Message reception and listener execution can automatically be wrapped
* in transactions by passing a Spring
@@ -224,7 +223,6 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe
* will occupy a number of threads for its entire lifetime.
* @see #setConcurrentConsumers
* @see org.springframework.core.task.SimpleAsyncTaskExecutor
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
*/
public void setTaskExecutor(Executor taskExecutor) {
this.taskExecutor = taskExecutor;

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2021 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.
@@ -177,7 +177,6 @@ public class SimpleMessageListenerContainer extends AbstractMessageListenerConta
* {@link jakarta.jms.MessageListener} will work fine, in general.
* @see #setConcurrentConsumers
* @see org.springframework.core.task.SimpleAsyncTaskExecutor
* @see org.springframework.scheduling.commonj.WorkManagerTaskExecutor
*/
public void setTaskExecutor(Executor taskExecutor) {
this.taskExecutor = taskExecutor;

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2021 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.
@@ -31,8 +31,6 @@ import jakarta.jms.Session;
* @since 1.1
* @see org.springframework.jms.core.JmsTemplate#setMessageConverter
* @see org.springframework.jms.listener.adapter.MessageListenerAdapter#setMessageConverter
* @see org.springframework.jms.remoting.JmsInvokerClientInterceptor#setMessageConverter
* @see org.springframework.jms.remoting.JmsInvokerServiceExporter#setMessageConverter
*/
public interface MessageConverter {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2021 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.
@@ -39,21 +39,22 @@ import org.springframework.util.Assert;
*
* <pre class="code">
* &lt;bean class="org.springframework.jca.endpoint.GenericMessageEndpointManager"&gt;
* &lt;property name="resourceAdapter" ref="resourceAdapter"/&gt;
* &lt;property name="messageEndpointFactory"&gt;
* &lt;bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"&gt;
* &lt;property name="messageListener" ref="messageListener"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;property name="activationSpec"&gt;
* &lt;bean class="org.apache.activemq.ra.ActiveMQActivationSpec"&gt;
* &lt;property name="destination" value="myQueue"/&gt;
* &lt;property name="destinationType" value="jakarta.jms.Queue"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;/bean&gt;</pre>
* &lt;property name="resourceAdapter" ref="resourceAdapter"/&gt;
* &lt;property name="messageEndpointFactory"&gt;
* &lt;bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"&gt;
* &lt;property name="messageListener" ref="messageListener"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;property name="activationSpec"&gt;
* &lt;bean class="org.apache.activemq.ra.ActiveMQActivationSpec"&gt;
* &lt;property name="destination" value="myQueue"/&gt;
* &lt;property name="destinationType" value="jakarta.jms.Queue"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;/bean&gt;
* </pre>
*
* In this example, Spring's own {@link GenericMessageEndpointFactory} is used
* <p>In this example, Spring's own {@link GenericMessageEndpointFactory} is used
* to point to a standard message listener object that happens to be supported
* by the specified target ResourceAdapter: in this case, a JMS
* {@link jakarta.jms.MessageListener} object as supported by the ActiveMQ
@@ -61,37 +62,38 @@ import org.springframework.util.Assert;
*
* <pre class="code">
* &lt;bean id="messageListener" class="com.myorg.messaging.myMessageListener"&gt;
* ...
* &lt;/bean&gt;</pre>
* &lt;!-- ... --&gt;
* &lt;/bean&gt;
* </pre>
*
* The target ResourceAdapter may be configured as a local Spring bean as well
* <p>The target ResourceAdapter may be configured as a local Spring bean as well
* (the typical case) or obtained from JNDI (e.g. on WebLogic). For the
* example above, a local ResourceAdapter bean could be defined as follows
* (matching the "resourceAdapter" bean reference above):
*
* <pre class="code">
* &lt;bean id="resourceAdapter" class="org.springframework.jca.support.ResourceAdapterFactoryBean"&gt;
* &lt;property name="resourceAdapter"&gt;
* &lt;bean class="org.apache.activemq.ra.ActiveMQResourceAdapter"&gt;
* &lt;property name="serverUrl" value="tcp://localhost:61616"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;property name="workManager"&gt;
* &lt;bean class="org.springframework.jca.work.SimpleTaskWorkManager"/&gt;
* &lt;/property&gt;
* &lt;/bean&gt;</pre>
* &lt;property name="resourceAdapter"&gt;
* &lt;bean class="org.apache.activemq.ra.ActiveMQResourceAdapter"&gt;
* &lt;property name="serverUrl" value="tcp://localhost:61616"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;property name="workManager"&gt;
* &lt;bean class="..."/&gt;
* &lt;/property&gt;
* &lt;/bean&gt;
* </pre>
*
* For a different target resource, the configuration would simply point to a
* <p>For a different target resource, the configuration would simply point to a
* different ResourceAdapter and a different ActivationSpec object (which are
* both specific to the resource provider), and possibly a different message
* listener (e.g. a CCI {@link jakarta.resource.cci.MessageListener} for a
* resource adapter which is based on the JCA Common Client Interface).
*
* <p>The asynchronous execution strategy can be customized through the
* "workManager" property on the ResourceAdapterFactoryBean (as shown above).
* Check out {@link org.springframework.jca.work.SimpleTaskWorkManager}'s
* javadoc for its configuration options; alternatively, any other
* JCA-compliant WorkManager can be used (e.g. Geronimo's).
* "workManager" property on the ResourceAdapterFactoryBean as shown above,
* where {@code <bean class="..."/>} should be replaced with configuration for
* any JCA-compliant {@code WorkManager}.
*
* <p>Transactional execution is a responsibility of the concrete message endpoint,
* as built by the specified MessageEndpointFactory. {@link GenericMessageEndpointFactory}
@@ -101,43 +103,45 @@ import org.springframework.util.Assert;
*
* <pre class="code">
* &lt;bean class="org.springframework.jca.endpoint.GenericMessageEndpointManager"&gt;
* &lt;property name="resourceAdapter" ref="resourceAdapter"/&gt;
* &lt;property name="messageEndpointFactory"&gt;
* &lt;bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"&gt;
* &lt;property name="messageListener" ref="messageListener"/&gt;
* &lt;property name="transactionManager" ref="transactionManager"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;property name="activationSpec"&gt;
* &lt;bean class="org.apache.activemq.ra.ActiveMQActivationSpec"&gt;
* &lt;property name="destination" value="myQueue"/&gt;
* &lt;property name="destinationType" value="jakarta.jms.Queue"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;property name="resourceAdapter" ref="resourceAdapter"/&gt;
* &lt;property name="messageEndpointFactory"&gt;
* &lt;bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"&gt;
* &lt;property name="messageListener" ref="messageListener"/&gt;
* &lt;property name="transactionManager" ref="transactionManager"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;property name="activationSpec"&gt;
* &lt;bean class="org.apache.activemq.ra.ActiveMQActivationSpec"&gt;
* &lt;property name="destination" value="myQueue"/&gt;
* &lt;property name="destinationType" value="jakarta.jms.Queue"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;/bean&gt;
*
* &lt;bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/&gt;</pre>
* &lt;bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/&gt;
* </pre>
*
* Alternatively, check out your resource provider's ActivationSpec object,
* <p>Alternatively, check out your resource provider's ActivationSpec object,
* which should support local transactions through a provider-specific config flag,
* e.g. ActiveMQActivationSpec's "useRAManagedTransaction" bean property.
*
* <pre class="code">
* &lt;bean class="org.springframework.jca.endpoint.GenericMessageEndpointManager"&gt;
* &lt;property name="resourceAdapter" ref="resourceAdapter"/&gt;
* &lt;property name="messageEndpointFactory"&gt;
* &lt;bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"&gt;
* &lt;property name="messageListener" ref="messageListener"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;property name="activationSpec"&gt;
* &lt;bean class="org.apache.activemq.ra.ActiveMQActivationSpec"&gt;
* &lt;property name="destination" value="myQueue"/&gt;
* &lt;property name="destinationType" value="jakarta.jms.Queue"/&gt;
* &lt;property name="useRAManagedTransaction" value="true"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;/bean&gt;</pre>
* &lt;property name="resourceAdapter" ref="resourceAdapter"/&gt;
* &lt;property name="messageEndpointFactory"&gt;
* &lt;bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"&gt;
* &lt;property name="messageListener" ref="messageListener"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;property name="activationSpec"&gt;
* &lt;bean class="org.apache.activemq.ra.ActiveMQActivationSpec"&gt;
* &lt;property name="destination" value="myQueue"/&gt;
* &lt;property name="destinationType" value="jakarta.jms.Queue"/&gt;
* &lt;property name="useRAManagedTransaction" value="true"/&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;/bean&gt;
* </pre>
*
* @author Juergen Hoeller
* @since 2.5

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2021 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.
@@ -57,9 +57,8 @@ import org.springframework.lang.Nullable;
* order to make the connector interact with an XA transaction coordinator.
* Alternatively, simply use the native local transaction facilities of the
* exposed API (e.g. CCI local transactions), or use a corresponding
* implementation of Spring's PlatformTransactionManager SPI
* (e.g. {@link org.springframework.jca.cci.connection.CciLocalTransactionManager})
* to drive local transactions.
* implementation of Spring's PlatformTransactionManager SPI to drive local
* transactions.
*
* @author Juergen Hoeller
* @since 1.2
@@ -67,7 +66,6 @@ import org.springframework.lang.Nullable;
* @see #setConnectionManager
* @see jakarta.resource.cci.ConnectionFactory
* @see jakarta.resource.cci.Connection#getLocalTransaction
* @see org.springframework.jca.cci.connection.CciLocalTransactionManager
*/
public class LocalConnectionFactoryBean implements FactoryBean<Object>, InitializingBean {

View File

@@ -62,54 +62,51 @@ import org.springframework.lang.Nullable;
* <p>Example usage with
* {@link MappingJackson2HttpMessageConverter}:
*
* <pre class="code">{@code
* <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
* <property name="objectMapper">
* <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
* <pre class="code">
* &lt;bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"&gt;
* &lt;property name="objectMapper"&gt;
* &lt;bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
* p:autoDetectFields="false"
* p:autoDetectGettersSetters="false"
* p:annotationIntrospector-ref="jaxbAnnotationIntrospector" />
* </property>
* </bean>
* }</pre>
* p:annotationIntrospector-ref="jaxbAnnotationIntrospector" /&gt;
* &lt;/property&gt;
* &lt;/bean&gt;</pre>
*
* <p>Example usage with MappingJackson2JsonView:
*
* <pre class="code">{@code
* <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
* <property name="objectMapper">
* <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
* <pre class="code">
* &lt;bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"&gt;
* &lt;property name="objectMapper"&gt;
* &lt;bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
* p:failOnEmptyBeans="false"
* p:indentOutput="true">
* <property name="serializers">
* <array>
* <bean class="org.mycompany.MyCustomSerializer" />
* </array>
* </property>
* </bean>
* </property>
* </bean>
* }</pre>
* p:indentOutput="true"&gt;
* &lt;property name="serializers"&gt;
* &lt;array&gt;
* &lt;bean class="org.mycompany.MyCustomSerializer" /&gt;
* &lt;/array&gt;
* &lt;/property&gt;
* &lt;/bean&gt;
* &lt;/property&gt;
* &lt;/bean&gt;</pre>
*
* <p>In case there are no specific setters provided (for some rarely used options),
* you can still use the more general methods {@link #setFeaturesToEnable} and
* {@link #setFeaturesToDisable}.
*
* <pre class="code">{@code
* <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
* <property name="featuresToEnable">
* <array>
* <util:constant static-field="com.fasterxml.jackson.databind.SerializationFeature.WRAP_ROOT_VALUE"/>
* <util:constant static-field="com.fasterxml.jackson.databind.SerializationFeature.CLOSE_CLOSEABLE"/>
* </array>
* </property>
* <property name="featuresToDisable">
* <array>
* <util:constant static-field="com.fasterxml.jackson.databind.MapperFeature.USE_ANNOTATIONS"/>
* </array>
* </property>
* </bean>
* }</pre>
* <pre class="code">
* &lt;bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"&gt;
* &lt;property name="featuresToEnable"&gt;
* &lt;array&gt;
* &lt;util:constant static-field="com.fasterxml.jackson.databind.SerializationFeature.WRAP_ROOT_VALUE"/&gt;
* &lt;util:constant static-field="com.fasterxml.jackson.databind.SerializationFeature.CLOSE_CLOSEABLE"/&gt;
* &lt;/array&gt;
* &lt;/property&gt;
* &lt;property name="featuresToDisable"&gt;
* &lt;array&gt;
* &lt;util:constant static-field="com.fasterxml.jackson.databind.MapperFeature.USE_ANNOTATIONS"/&gt;
* &lt;/array&gt;
* &lt;/property&gt;
* &lt;/bean&gt;</pre>
*
* <p>It also automatically registers the following well-known modules if they are
* detected on the classpath:
@@ -127,11 +124,10 @@ import org.springframework.lang.Nullable;
* <p>In case you want to configure Jackson's {@link ObjectMapper} with a custom {@link Module},
* you can register one or more such Modules by class name via {@link #setModulesToInstall}:
*
* <pre class="code">{@code
* <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
* <property name="modulesToInstall" value="myapp.jackson.MySampleModule,myapp.jackson.MyOtherModule"/>
* </bean
* }</pre>
* <pre class="code">
* &lt;bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"&gt;
* &lt;property name="modulesToInstall" value="myapp.jackson.MySampleModule,myapp.jackson.MyOtherModule"/&gt;
* &lt;/bean&gt;</pre>
*
* <p>Compatible with Jackson 2.9 to 2.12, as of Spring 5.3.
*

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2016 the original author or authors.
* Copyright 2002-2021 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.
@@ -49,12 +49,6 @@ import jakarta.servlet.http.HttpServletResponse;
* return value gives a clearer signature to callers other than the
* DispatcherServlet, indicating that there will never be a view to render.
*
* <p>As of Spring 2.0, Spring's HTTP-based remote exporters, such as
* {@link org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter}
* and {@link org.springframework.remoting.caucho.HessianServiceExporter},
* implement this interface rather than the more extensive Controller interface,
* for minimal dependencies on Spring-specific web infrastructure.
*
* <p>Note that HttpRequestHandlers may optionally implement the
* {@link org.springframework.web.servlet.mvc.LastModified} interface,
* just like Controllers can, <i>provided that they run within Spring's
@@ -71,8 +65,6 @@ import jakarta.servlet.http.HttpServletResponse;
* @see org.springframework.web.servlet.mvc.Controller
* @see org.springframework.web.servlet.mvc.LastModified
* @see org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
* @see org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter
* @see org.springframework.remoting.caucho.HessianServiceExporter
*/
@FunctionalInterface
public interface HttpRequestHandler {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2021 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.
@@ -36,13 +36,6 @@ import org.springframework.web.context.WebApplicationContext;
* in Spring's root web application context. The target bean name must match the
* HttpRequestHandlerServlet servlet-name as defined in {@code web.xml}.
*
* <p>This can for example be used to expose a single Spring remote exporter,
* such as {@link org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter}
* or {@link org.springframework.remoting.caucho.HessianServiceExporter},
* per HttpRequestHandlerServlet definition. This is a minimal alternative
* to defining remote exporters as beans in a DispatcherServlet context
* (with advanced mapping and interception facilities being available there).
*
* @author Juergen Hoeller
* @since 2.0
* @see org.springframework.web.HttpRequestHandler

View File

@@ -61,8 +61,6 @@ public interface MultipartFile extends InputStreamSource {
* this one one somewhere for reference, if necessary.
* @return the original filename, or the empty String if no file has been chosen
* in the multipart form, or {@code null} if not defined or not available
* @see org.apache.commons.fileupload.FileItem#getName()
* @see org.springframework.web.multipart.commons.CommonsMultipartFile#setPreserveFilename
* @see <a href="https://tools.ietf.org/html/rfc7578#section-4.2">RFC 7578, Section 4.2</a>
* @see <a href="https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload">Unrestricted File Upload</a>
*/
@@ -133,7 +131,6 @@ public interface MultipartFile extends InputStreamSource {
* @throws IOException in case of reading or writing errors
* @throws IllegalStateException if the file has already been moved
* in the filesystem and is not available anymore for another transfer
* @see org.apache.commons.fileupload.FileItem#write(File)
* @see jakarta.servlet.http.Part#write(String)
*/
void transferTo(File dest) throws IOException, IllegalStateException;

View File

@@ -25,7 +25,8 @@ import org.springframework.lang.Nullable;
/**
* Provides additional methods for dealing with multipart content within a
* servlet request, allowing to access uploaded files.
* Implementations also need to override the standard
*
* <p>Implementations also need to override the standard
* {@link jakarta.servlet.ServletRequest} methods for parameter access, making
* multipart parameters available.
*

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2015 the original author or authors.
* Copyright 2002-2021 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.
@@ -24,10 +24,8 @@ import jakarta.servlet.http.HttpServletRequest;
* Implementations are typically usable both within an application context
* and standalone.
*
* <p>There are two concrete implementations included in Spring, as of Spring 3.1:
* <p>Spring provides the following concrete implementation:
* <ul>
* <li>{@link org.springframework.web.multipart.commons.CommonsMultipartResolver}
* for Apache Commons FileUpload
* <li>{@link org.springframework.web.multipart.support.StandardServletMultipartResolver}
* for the Servlet 3.0+ Part API
* </ul>
@@ -77,7 +75,6 @@ import jakarta.servlet.http.HttpServletRequest;
* @since 29.09.2003
* @see MultipartHttpServletRequest
* @see MultipartFile
* @see org.springframework.web.multipart.commons.CommonsMultipartResolver
* @see org.springframework.web.multipart.support.ByteArrayMultipartFileEditor
* @see org.springframework.web.multipart.support.StringMultipartFileEditor
* @see org.springframework.web.servlet.DispatcherServlet

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2021 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.
@@ -34,8 +34,8 @@ import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
/**
* Abstract base implementation of the MultipartHttpServletRequest interface.
* Provides management of pre-generated MultipartFile instances.
* Abstract base implementation of the {@link MultipartHttpServletRequest} interface.
* <p>Provides management of pre-generated {@link MultipartFile} instances.
*
* @author Juergen Hoeller
* @author Arjen Poutsma

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2021 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.
@@ -35,8 +35,6 @@ import org.springframework.web.multipart.MultipartFile;
* {@link org.springframework.web.multipart.MultipartHttpServletRequest}
* interface. Provides management of pre-generated parameter values.
*
* <p>Used by {@link org.springframework.web.multipart.commons.CommonsMultipartResolver}.
*
* @author Trevor D. Cook
* @author Juergen Hoeller
* @author Arjen Poutsma

View File

@@ -34,11 +34,8 @@ import org.springframework.web.multipart.MultipartResolver;
*
* <p>This resolver variant uses your Servlet container's multipart parser as-is,
* potentially exposing the application to container implementation differences.
* See {@link org.springframework.web.multipart.commons.CommonsMultipartResolver}
* for an alternative implementation using a local Commons FileUpload library
* within the application, providing maximum portability across Servlet containers.
* Also, see this resolver's configuration option for
* {@link #setStrictServletCompliance strict Servlet compliance}, narrowing the
* {@linkplain #setStrictServletCompliance strict Servlet compliance}, narrowing the
* applicability of Spring's {@link MultipartHttpServletRequest} to form data only.
*
* <p><b>Note:</b> In order to use Servlet 3.0 based multipart parsing,
@@ -52,21 +49,19 @@ import org.springframework.web.multipart.MultipartResolver;
*
* <pre class="code">
* public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
* // ...
* &#064;Override
* protected void customizeRegistration(ServletRegistration.Dynamic registration) {
* // ...
* &#064;Override
* protected void customizeRegistration(ServletRegistration.Dynamic registration) {
* // Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold
* registration.setMultipartConfig(new MultipartConfigElement("/tmp"));
* }
* }
* </pre>
* }</pre>
*
* @author Juergen Hoeller
* @since 3.1
* @see #setResolveLazily
* @see #setStrictServletCompliance
* @see HttpServletRequest#getParts()
* @see org.springframework.web.multipart.commons.CommonsMultipartResolver
*/
public class StandardServletMultipartResolver implements MultipartResolver {
@@ -99,10 +94,6 @@ public class StandardServletMultipartResolver implements MultipartResolver {
* switch this flag to "true": Only "multipart/form-data" requests will be
* wrapped with a {@link MultipartHttpServletRequest} then; other kinds of
* requests will be left as-is, allowing for custom processing in user code.
* <p>Note that Commons FileUpload and therefore
* {@link org.springframework.web.multipart.commons.CommonsMultipartResolver}
* supports any "multipart/" request type. However, it restricts processing
* to POST requests which standard Servlet multipart parsers might not do.
* @since 5.3.9
*/
public void setStrictServletCompliance(boolean strictServletCompliance) {

View File

@@ -117,10 +117,9 @@ import org.springframework.web.util.WebUtils;
* {@link org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator}.
*
* <li>The dispatcher's strategy for resolving multipart requests is determined by a
* {@link org.springframework.web.multipart.MultipartResolver} implementation.
* Implementations for Apache Commons FileUpload and Servlet 3 are included; the typical
* choice is {@link org.springframework.web.multipart.commons.CommonsMultipartResolver}.
* The MultipartResolver bean name is "multipartResolver"; default is none.
* {@link org.springframework.web.multipart.MultipartResolver} implementation. An
* implementation for Servlet 3 is included. The MultipartResolver bean name is
* "multipartResolver"; default is none.
*
* <li>Its locale resolution strategy is determined by a {@link LocaleResolver}.
* Out-of-the-box implementations work via HTTP accept header, cookie, or session.

View File

@@ -39,7 +39,7 @@ import org.springframework.web.servlet.view.groovy.GroovyMarkupViewResolver;
import org.springframework.web.servlet.view.script.ScriptTemplateViewResolver;
/**
* Parse the {@code view-resolvers} MVC namespace element and register
* Parses the {@code view-resolvers} MVC namespace element and registers
* {@link org.springframework.web.servlet.ViewResolver} bean definitions.
*
* <p>All registered resolvers are wrapped in a single (composite) ViewResolver
@@ -49,13 +49,12 @@ import org.springframework.web.servlet.view.script.ScriptTemplateViewResolver;
* <p>When content negotiation is enabled the order property is set to highest priority
* instead with the ContentNegotiatingViewResolver encapsulating all other registered
* view resolver instances. That way the resolvers registered through the MVC namespace
* form self-encapsulated resolver chain.
* form a self-encapsulated resolver chain.
*
* @author Sivaprasad Valluru
* @author Sebastien Deleuze
* @author Rossen Stoyanchev
* @since 4.1
* @see TilesConfigurerBeanDefinitionParser
* @see FreeMarkerConfigurerBeanDefinitionParser
* @see GroovyMarkupConfigurerBeanDefinitionParser
* @see ScriptTemplateConfigurerBeanDefinitionParser

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2021 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.
@@ -36,7 +36,7 @@ import org.springframework.web.socket.server.HandshakeFailureException;
/**
* WebSphere support for upgrading an {@link HttpServletRequest} during a
* WebSocket handshake. To modify properties of the underlying
* {@link javax.websocket.server.ServerContainer} you can use
* {@link jakarta.websocket.server.ServerContainer} you can use
* {@link ServletServerContainerFactoryBean} in XML configuration or, when using
* Java configuration, access the container instance through the
* "javax.websocket.server.ServerContainer" ServletContext attribute.