- 17 7月, 2015 1 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-13236
-
- 20 6月, 2015 2 次提交
-
-
由 Sam Brannen 提交于
-
由 Sam Brannen 提交于
Prior to this commit, the implementation of getRepeatableAnnotation() in Spring's AnnotationUtils complied neither with the contract of getAnnotationsByType() nor with the contract of getDeclaredAnnotationsByType() as defined in AnnotatedElement in Java 8. Specifically, unexpected results can be encountered when using Spring's support for @Repeatable annotations: either annotations show up in the returned set in the wrong order, or annotations are returned in the set that should not even be found based on the semantics of @Repeatable. This commit remedies this problem by deprecating the existing getRepeatableAnnotation() methods and replacing them with new getRepeatableAnnotations() and getDeclaredRepeatableAnnotations() methods that comply with the contracts of Java's getAnnotationsByType() and getDeclaredAnnotationsByType(), respectively. Issue: SPR-13068
-
- 21 5月, 2015 1 次提交
-
-
由 Elizabeth Chatman 提交于
See gh-801
-
- 20 5月, 2015 1 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-12926
-
- 26 2月, 2015 1 次提交
-
-
由 Stephane Nicoll 提交于
Reduce logging level when no target annotation is found a on bean. For consistency, update ScheduledAnnotationBeanPostProcessor and JmsListenerAnnotationBeanPostProcessor that define the same log statement. Issue: SPR-12574
-
- 18 2月, 2015 1 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-12709
-
- 23 1月, 2015 1 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-12641
-
- 01 11月, 2014 1 次提交
-
-
由 Juergen Hoeller 提交于
ScheduledAnnotationBeanPostProcessor uses getBean(Class) for TaskScheduler/ScheduledExecutorService retrieval, allowing for a scheduler bean to be flagged as primary, and for a TaskScheduler bean to override a ScheduledExecutorService bean. ContextLifecycleScheduledTaskRegistrar hooks into SmartInitializingSingleton's afterSingletonsInstantiated callback instead of ContextRefreshedEvent, as a natural consequence of SmartInitializingSingleton's introduction in Spring Framework 4.1 GA.
-
- 07 10月, 2014 1 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-12308
-
- 18 9月, 2014 1 次提交
-
-
由 Juergen Hoeller 提交于
Scheduled/JmsListenerAnnotationBeanPostProcessor avoids needless re-scanning of non-annotated classes Issue: SPR-12189
-
- 28 7月, 2014 1 次提交
-
-
由 Juergen Hoeller 提交于
JmsListener/ScheduledAnnotationBeanPostProcessor uses SmartInitializingSingleton instead of ContextRefreshedEvent Also reducing the container dependencies to BeanFactory instead of ApplicationContext, wherever possible. Issue: SPR-12039
-
- 17 12月, 2013 1 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-11223
-
- 23 10月, 2013 1 次提交
-
-
由 Phillip Webb 提交于
Support repeatable @PropertySource annotations in Java 8 and add @PropertySources container annotation for Java 6/7. Also add an ignoreResourceNotFound attribute to @PropertySource allowing missing property resources to be silently ignored. This commit also introduces some generally useful methods to AnnotationUtils for working with @Repeatable annotations. Issue: SPR-8371
-
- 05 10月, 2013 1 次提交
-
-
由 Juergen Hoeller 提交于
Comprehensive update to the framework's TimeZone handling, including a new TimeZoneAwareLocaleContext and a LocaleContextResolver for Spring MVC A few noteworthy minor changes: LocaleContext.getLocale() may return null in special cases (not by default), which our own accessing classes are able to handle now. If there is a non-null TimeZone user setting, we're exposing it to all collaborating libraries, in particular to JSTL, Velocity and JasperReports. Our JSR-310 and Joda-Time support falls back to checking the general LocaleContext TimeZone now, adapting it to their time zone types, if no more specific setting has been provided. Our DefaultConversionService has TimeZone<->ZoneId converters registered. And finally, we're using a custom parseTimeZoneString method now that doesn't accept the TimeZone.getTimeZone(String) GMT fallback for an invalid time zone id anymore. Issue: SPR-1528
-
- 30 8月, 2013 1 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-10456
-
- 08 8月, 2013 1 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-10532
-
- 14 5月, 2013 1 次提交
-
-
由 Rob Winch 提交于
Issue: SPR-10130
-
- 08 2月, 2013 1 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-8067
-
- 02 1月, 2013 1 次提交
-
-
由 Chris Beams 提交于
This reverts commit 45fa5082, reversing changes made to a312d900.
-
- 29 12月, 2012 1 次提交
-
-
由 Chris Beams 提交于
Issue: SPR-10130
-
- 22 5月, 2012 2 次提交
-
-
由 Chris Beams 提交于
java.util.concurrent's ScheduledExecutorService and its #schedule* methods allow for an 'initialDelay' parameter in milliseconds. Similarly, Spring's TaskExecutor abstraction allows for a concrete 'startTime' expressed as a Date. However, Spring's <task:scheduled> XML element and @Scheduled annotation have, to date, not allowed for an initial delay parameter that can be propagated down to the underlying TaskScheduler/ScheduledExecutorService. This commit introduces initial-delay and #initialDelay attributes to task:scheduled and @Scheduled respectively, both indicating the number of milliseconds to wait before the first invocation of the method in question. Specifying a delay in this fashion is only valid in conjunction with fixed-rate and fixed-delay tasks (i.e. not with cron or trigger tasks). The principal changes required to support these new attributes lie in ScheduledTaskRegistrar, which previously supported registration of tasks in the form of a Runnable and a Long parameter indicating (in the case of fixed-rate and fixed-delay tasks), the interval with which the task should be executed. In order to accommodate a third (and optional) 'initialDelay' parameter, the IntervalTask class has been added as a holder for the Runnable to be executed, the interval in which to run it, and the optional initial delay. For symmetry, a TriggerTask and CronTask have also been added, the latter subclassing the former. And a 'Task' class has been added as a common ancestor for all the above. One oddity of the implementation is in the naming of the new setters in ScheduledTaskRegistrar. Prior to this commit, the setters were named #setFixedDelayTasks, #setFixedRateTasks, etc, each accepting a Map<Runnable, long>. In adding new setters for each task type, each accepting a List<IntervalTask>, List<CronTask> etc, naturally the approach would be to use method overloading and to introduce methods of the same name but with differing parameter types. Unfortunately however, Spring does not support injection against overloaded methods (due to fundamental limitations of the underlying JDK Introspector). This is not a problem when working with the ScheduledTaskRegistrar directly, e.g. from within a @Configuration class that implements SchedulingConfigurer, but is a problem from the point of view of the ScheduledTasksBeanDefinitionParser which parses the <task:scheduled> element - here the ScheduledTaskRegistrar is treated as a Spring bean and is thus subject to these limitations. The solution to this problem was simply to avoid overloading altogether, thus the naming of the new methods ending in "List", e.g. #setFixedDelayTasksList, etc. These methods exist primarily for use by the BeanDefinitionParser and are not really intended for use by application developers. The Javadoc for each of the new methods makes note of this. Issue: SPR-7022
-
由 Chris Beams 提交于
In anticipation of substantive changes required to implement "initial delay" support in the <task:scheduled> element and @Scheduled annotation, the following updates have been made to the components and infrastructure supporting scheduled task execution: - Fix code style violations - Fix compiler warnings - Add Javadoc where missing, update to use {@code} tags, etc. - Organize imports to follow conventions
-
- 31 1月, 2012 1 次提交
-
-
由 Chris Beams 提交于
This renaming more intuitively expresses the relationship between subprojects and the JAR artifacts they produce. Tracking history across these renames is possible, but it requires use of the --follow flag to `git log`, for example $ git log spring-aop/src/main/java/org/springframework/aop/Advisor.java will show history up until the renaming event, where $ git log --follow spring-aop/src/main/java/org/springframework/aop/Advisor.java will show history for all changes to the file, before and after the renaming. See http://chrisbeams.com/git-diff-across-renamed-directories
-
- 11 12月, 2011 1 次提交
-
-
由 Chris Beams 提交于
Prior to this change, ScheduledAnnotationBeanPostProcessor found any @Scheduled methods against the ultimate targetClass for a given bean and then attempted to invoke that method against the bean instance. In cases where the bean instance was in fact a JDK proxy, this attempt would fail because the proxy is not an instance of the target class. Now SABPP still attempts to find @Scheduled methods against the target class, but subsequently checks to see if the bean is a JDK proxy, and if so attempts to find the corresponding method on the proxy itself. If it cannot be found (e.g. the @Scheduled method was declared only at the concrete class level), an appropriate exception is thrown, explaining to the users their options: (a) use proxyTargetClass=true and go with subclass proxies which won't have this problem, or (b) pull the @Scheduled method up into an interface. Issue: SPR-8651
-
- 07 5月, 2011 2 次提交
-
-
由 Chris Beams 提交于
-
由 Chris Beams 提交于
-
- 11 2月, 2011 1 次提交
-
-
由 Juergen Hoeller 提交于
-
- 08 6月, 2010 1 次提交
-
-
由 Juergen Hoeller 提交于
-
- 23 3月, 2010 1 次提交
-
-
由 Juergen Hoeller 提交于
-
- 12 1月, 2010 1 次提交
-
-
由 Mark Fisher 提交于
-
- 09 1月, 2010 1 次提交
-
-
由 Juergen Hoeller 提交于
-
- 06 6月, 2009 2 次提交
-
-
由 Mark Fisher 提交于
-
由 Mark Fisher 提交于
-