1. 17 7月, 2015 1 次提交
  2. 20 6月, 2015 2 次提交
    • S
      Polishing · 27d1ce84
      Sam Brannen 提交于
      27d1ce84
    • S
      Honor contract of @Repeatable in AnnotationUtils · fb83e83e
      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
      fb83e83e
  3. 21 5月, 2015 1 次提交
  4. 20 5月, 2015 1 次提交
  5. 26 2月, 2015 1 次提交
    • S
      Reduce logging level of EventListenerMethodProcessor · dff2a3d1
      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
      dff2a3d1
  6. 18 2月, 2015 1 次提交
  7. 23 1月, 2015 1 次提交
  8. 01 11月, 2014 1 次提交
    • J
      Revised scheduling lifecycle integration · 65d163e6
      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.
      65d163e6
  9. 07 10月, 2014 1 次提交
  10. 18 9月, 2014 1 次提交
  11. 28 7月, 2014 1 次提交
    • J
      JmsListener/ScheduledAnnotationBeanPostProcessor uses... · 92c657e1
      Juergen Hoeller 提交于
      JmsListener/ScheduledAnnotationBeanPostProcessor uses SmartInitializingSingleton instead of ContextRefreshedEvent
      
      Also reducing the container dependencies to BeanFactory instead of ApplicationContext, wherever possible.
      
      Issue: SPR-12039
      92c657e1
  12. 17 12月, 2013 1 次提交
  13. 23 10月, 2013 1 次提交
    • P
      Add @PropertySources and ignoreResourceNotFound · e95bd9e2
      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
      e95bd9e2
  14. 05 10月, 2013 1 次提交
    • J
      Comprehensive update to the framework's TimeZone handling, including a new... · 4574528a
      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
      4574528a
  15. 30 8月, 2013 1 次提交
  16. 08 8月, 2013 1 次提交
  17. 14 5月, 2013 1 次提交
  18. 08 2月, 2013 1 次提交
  19. 02 1月, 2013 1 次提交
  20. 29 12月, 2012 1 次提交
  21. 22 5月, 2012 2 次提交
    • C
      Support initial delay attribute for scheduled tasks · 53673d6c
      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
      53673d6c
    • C
      Polish scheduled task execution infrastructure · 4d5fe57a
      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
      4d5fe57a
  22. 31 1月, 2012 1 次提交
    • C
      Rename modules {org.springframework.*=>spring-*} · 02a4473c
      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
      02a4473c
  23. 11 12月, 2011 1 次提交
    • C
      Support use of @Scheduled against JDK proxies · d4123d06
      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
      d4123d06
  24. 07 5月, 2011 2 次提交
  25. 11 2月, 2011 1 次提交
  26. 08 6月, 2010 1 次提交
  27. 23 3月, 2010 1 次提交
  28. 12 1月, 2010 1 次提交
  29. 09 1月, 2010 1 次提交
  30. 06 6月, 2009 2 次提交