diff --git a/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheManager.java b/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheManager.java index aea913288d..8a29d1fd29 100644 --- a/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheManager.java +++ b/spring-context/src/main/java/org/springframework/cache/concurrent/ConcurrentMapCacheManager.java @@ -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; *
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 diff --git a/spring-context/src/main/java/org/springframework/scheduling/SchedulingAwareRunnable.java b/spring-context/src/main/java/org/springframework/scheduling/SchedulingAwareRunnable.java index d6de8c160a..09a54d2f44 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/SchedulingAwareRunnable.java +++ b/spring-context/src/main/java/org/springframework/scheduling/SchedulingAwareRunnable.java @@ -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. * - *
This interface closely corresponds to the CommonJ Work interface, - * but is kept separate to avoid a required CommonJ dependency. - * *
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 { diff --git a/spring-context/src/main/java/org/springframework/scheduling/SchedulingTaskExecutor.java b/spring-context/src/main/java/org/springframework/scheduling/SchedulingTaskExecutor.java index 2f1dd004ae..7f7d497eb1 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/SchedulingTaskExecutor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/SchedulingTaskExecutor.java @@ -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; * *
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 { diff --git a/spring-core/src/main/java/org/springframework/core/ConfigurableObjectInputStream.java b/spring-core/src/main/java/org/springframework/core/ConfigurableObjectInputStream.java index 52c11eeddf..eb845e4797 100644 --- a/spring-core/src/main/java/org/springframework/core/ConfigurableObjectInputStream.java +++ b/spring-core/src/main/java/org/springframework/core/ConfigurableObjectInputStream.java @@ -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 { diff --git a/spring-core/src/main/java/org/springframework/core/io/VfsResource.java b/spring-core/src/main/java/org/springframework/core/io/VfsResource.java index 6751d60e69..5caf8c5ff0 100644 --- a/spring-core/src/main/java/org/springframework/core/io/VfsResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/VfsResource.java @@ -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 { diff --git a/spring-core/src/main/java/org/springframework/core/io/VfsUtils.java b/spring-core/src/main/java/org/springframework/core/io/VfsUtils.java index c2e3c3537a..1dad62fb18 100644 --- a/spring-core/src/main/java/org/springframework/core/io/VfsUtils.java +++ b/spring-core/src/main/java/org/springframework/core/io/VfsUtils.java @@ -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+. * - *
Thanks go to Marius Bogoevici for the initial patch. - * Note: This is an internal class and should not be used outside the framework. + *
Thanks go to Marius Bogoevici for the initial implementation. + * + *
Note: This is an internal class and should not be used outside the framework. * * @author Costin Leau * @author Juergen Hoeller diff --git a/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java b/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java index fe0104f589..035e873177 100644 --- a/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java +++ b/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java @@ -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 diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java b/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java index 41fc11034f..4f2435ff5c 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java @@ -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. * *
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; diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java b/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java index b45de7781a..12e4eba045 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java @@ -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; diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MessageConverter.java index 433123d195..23b1bdb2e8 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MessageConverter.java @@ -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 { diff --git a/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointManager.java b/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointManager.java index 090c2a20a5..97e0369ef1 100644 --- a/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointManager.java +++ b/spring-tx/src/main/java/org/springframework/jca/endpoint/GenericMessageEndpointManager.java @@ -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; * *
* <bean class="org.springframework.jca.endpoint.GenericMessageEndpointManager"> - * <property name="resourceAdapter" ref="resourceAdapter"/> - * <property name="messageEndpointFactory"> - * <bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"> - * <property name="messageListener" ref="messageListener"/> - * </bean> - * </property> - * <property name="activationSpec"> - * <bean class="org.apache.activemq.ra.ActiveMQActivationSpec"> - * <property name="destination" value="myQueue"/> - * <property name="destinationType" value="jakarta.jms.Queue"/> - * </bean> - * </property> - * </bean>+ * <property name="resourceAdapter" ref="resourceAdapter"/> + * <property name="messageEndpointFactory"> + * <bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"> + * <property name="messageListener" ref="messageListener"/> + * </bean> + * </property> + * <property name="activationSpec"> + * <bean class="org.apache.activemq.ra.ActiveMQActivationSpec"> + * <property name="destination" value="myQueue"/> + * <property name="destinationType" value="jakarta.jms.Queue"/> + * </bean> + * </property> + * </bean> + * * - * In this example, Spring's own {@link GenericMessageEndpointFactory} is used + *
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; * *
* <bean id="messageListener" class="com.myorg.messaging.myMessageListener"> - * ... - * </bean>+ * <!-- ... --> + * </bean> + * * - * The target ResourceAdapter may be configured as a local Spring bean as well + *
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): * *
* <bean id="resourceAdapter" class="org.springframework.jca.support.ResourceAdapterFactoryBean"> - * <property name="resourceAdapter"> - * <bean class="org.apache.activemq.ra.ActiveMQResourceAdapter"> - * <property name="serverUrl" value="tcp://localhost:61616"/> - * </bean> - * </property> - * <property name="workManager"> - * <bean class="org.springframework.jca.work.SimpleTaskWorkManager"/> - * </property> - * </bean>+ * <property name="resourceAdapter"> + * <bean class="org.apache.activemq.ra.ActiveMQResourceAdapter"> + * <property name="serverUrl" value="tcp://localhost:61616"/> + * </bean> + * </property> + * <property name="workManager"> + * <bean class="..."/> + * </property> + * </bean> + * * - * For a different target resource, the configuration would simply point to a + *
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). * *
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
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; * *
* <bean class="org.springframework.jca.endpoint.GenericMessageEndpointManager"> - * <property name="resourceAdapter" ref="resourceAdapter"/> - * <property name="messageEndpointFactory"> - * <bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"> - * <property name="messageListener" ref="messageListener"/> - * <property name="transactionManager" ref="transactionManager"/> - * </bean> - * </property> - * <property name="activationSpec"> - * <bean class="org.apache.activemq.ra.ActiveMQActivationSpec"> - * <property name="destination" value="myQueue"/> - * <property name="destinationType" value="jakarta.jms.Queue"/> - * </bean> - * </property> + * <property name="resourceAdapter" ref="resourceAdapter"/> + * <property name="messageEndpointFactory"> + * <bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"> + * <property name="messageListener" ref="messageListener"/> + * <property name="transactionManager" ref="transactionManager"/> + * </bean> + * </property> + * <property name="activationSpec"> + * <bean class="org.apache.activemq.ra.ActiveMQActivationSpec"> + * <property name="destination" value="myQueue"/> + * <property name="destinationType" value="jakarta.jms.Queue"/> + * </bean> + * </property> * </bean> * - * <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>+ * <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/> + * * - * Alternatively, check out your resource provider's ActivationSpec object, + *
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. * *
* <bean class="org.springframework.jca.endpoint.GenericMessageEndpointManager"> - * <property name="resourceAdapter" ref="resourceAdapter"/> - * <property name="messageEndpointFactory"> - * <bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"> - * <property name="messageListener" ref="messageListener"/> - * </bean> - * </property> - * <property name="activationSpec"> - * <bean class="org.apache.activemq.ra.ActiveMQActivationSpec"> - * <property name="destination" value="myQueue"/> - * <property name="destinationType" value="jakarta.jms.Queue"/> - * <property name="useRAManagedTransaction" value="true"/> - * </bean> - * </property> - * </bean>+ * <property name="resourceAdapter" ref="resourceAdapter"/> + * <property name="messageEndpointFactory"> + * <bean class="org.springframework.jca.endpoint.GenericMessageEndpointFactory"> + * <property name="messageListener" ref="messageListener"/> + * </bean> + * </property> + * <property name="activationSpec"> + * <bean class="org.apache.activemq.ra.ActiveMQActivationSpec"> + * <property name="destination" value="myQueue"/> + * <property name="destinationType" value="jakarta.jms.Queue"/> + * <property name="useRAManagedTransaction" value="true"/> + * </bean> + * </property> + * </bean> + * * * @author Juergen Hoeller * @since 2.5 diff --git a/spring-tx/src/main/java/org/springframework/jca/support/LocalConnectionFactoryBean.java b/spring-tx/src/main/java/org/springframework/jca/support/LocalConnectionFactoryBean.java index fe49bafdf5..2a514d2a32 100644 --- a/spring-tx/src/main/java/org/springframework/jca/support/LocalConnectionFactoryBean.java +++ b/spring-tx/src/main/java/org/springframework/jca/support/LocalConnectionFactoryBean.java @@ -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