1. 04 3月, 2015 1 次提交
    • S
      Register lazy @JmsListener components · 5c9f09c2
      Stephane Nicoll 提交于
      Support the creation and registration of message listener containers in
      a lazy manner, that is after the container initialization has completed.
      
      Such support brought an interesting brainstorming of the thread safety
      if JmsListenerEndpointRegistrar and JmsListenerEndpointRegistry so those
      have also been revisited as part of this commit.
      
      Issue: SPR-12774
      5c9f09c2
  2. 08 12月, 2014 1 次提交
    • S
      Fix detection of the @SendTo annotation · adc7ad7f
      Stephane Nicoll 提交于
      Previously, the default reply destination could not be discovered if the
      @JmsListener annotation was placed on a bean that is eligible for
      proxying as the proxy method is used internally and does not reveal
      an annotation placed on the implementation.
      
      This commit makes sure to resolve the most specific method when
      searching that annotation.
      
      Issue: SPR-12513
      adc7ad7f
  3. 21 10月, 2014 1 次提交
  4. 08 8月, 2014 1 次提交
  5. 01 8月, 2014 1 次提交
    • S
      Move JmsHandlerMethodFactory to spring-messaging · 7d1e33d8
      Stephane Nicoll 提交于
      This commit moves JmsHandlerMethodFactory and its default
      implementation to the messaging abstraction. Working on a similar
      support for AMQP revealed that this factory has nothing that is JMS
      specific and is exactly identical in the case of AMQP.
      
      Issue: SPR-12053
      7d1e33d8
  6. 30 7月, 2014 1 次提交
  7. 29 7月, 2014 1 次提交
  8. 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
  9. 18 7月, 2014 1 次提交
  10. 14 7月, 2014 1 次提交
    • S
      Customize concurrency at listener level · 29bdbcea
      Stephane Nicoll 提交于
      Prior to this commit, customizing the concurrency to use fo a given JMS
      listener involved to define it in a specific listener-container. As
      this is quite restrictive, users may stop using the XML namespace
      support altogether to fallback on regular abstract bean definition for
      the container.
      
      This commit adds a concurrency attribute to the jms and jca listener
      element as well as on the @JmsListener annotation. If the value is set,
      it takes precedence; otherwise the value provided by the factory is
      used.
      
      Issue: SPR-11988
      29bdbcea
  11. 10 7月, 2014 1 次提交
  12. 07 7月, 2014 1 次提交
  13. 09 5月, 2014 2 次提交
    • S
      Add back-off attribute to JMS namespace · 49040a29
      Stephane Nicoll 提交于
       This commit adds a "back-off" attribute to the jms:listener-container
       element so that a BackOff instance can be provided for users of the
       XML namespace.
      
       Issue: SPR-11746
      49040a29
    • S
      Configurable back off for listener recovery · 6a048312
      Stephane Nicoll 提交于
      Prior to this commit, DefaultMessageListenerContainer was recovering
      on failure using a fixed time interval, potentially in an infinite way.
      
      This commit adds an extra "backoff" property to the container that
      permits to fine tune the recovery interval using a BackOff instance.
      
      FixedBackOff provides a fixed interval between two attempts and a
      maximum number of retries. ExponentialBackOff increases an initial
      interval until a maximum interval has been reached. A BackOff instance
      can return a special "STOP" time value that indicates that no further
      attemps should be made. DefaultMessageListenerContainer uses this
      value to stop the container.
      
      protected method "sleepInbetweenRecoveryAttempts" has been renamed
      to "applyBackOff" and now returns a boolean that indicate if the
      back off has been applied and a new attempt should now be made.
      
      Issue: SPR-11746
      6a048312
  14. 24 4月, 2014 3 次提交
    • S
      polishing · 6aa16b74
      Stephane Nicoll 提交于
      This commit removes the queue attribute of the JmsListener annotation
      as this information should be provided by the container factory and not
      by each individual listener endpoints.
      
      There was a side effect that an annotation value cannot be null, which
      was forcing the container to be a queue-based container by default.
      
      Issue: SPR-9882
      6aa16b74
    • S
      @SendTo support for jms listener endpoints · bded025d
      Stephane Nicoll 提交于
      This commit replaces the "responseDestination" attribute on the
      JmsListener annotation by a support of the standard SendTo annotation.
      
      Issue: SPR-11707
      bded025d
    • S
      Default JmsListenerContainerFactory lookup · 4b0aba63
      Stephane Nicoll 提交于
      Prior to this commit, the default JmsListenerContainerFactory to use
      must be explicitly set. Since having a single container factory is a
      fairly common use case, we look up the default one automatically
      using the bean name "jmsListenerContainerFactory".
      
      It is still possible to provide an explicit default but since it refers
      more to "the" container factory to use, the parameter has been
      renamed to "containerFactory" which is shorter and more explicit.
      
      The lookup strategy is lazy: if all endpoints are providing an
      explicit container factory and no container factory with the
      "jmsListenerContainerFactory" bean name exists, no exception
      will be thrown.
      
      Issue : SPR-11706
      4b0aba63
  15. 17 4月, 2014 1 次提交
    • S
      JMS annotation-driven endpoints. · 713dd60f
      Stephane Nicoll 提交于
      This commit adds the support of JMS annotated endpoint. Can be
      activated both by @EnableJms or <jms:annotation-driven/> and
      detects methods of managed beans annotated with @JmsListener,
      either directly or through a meta-annotation.
      
      Containers are created and managed under the cover by a registry
      at application startup time. Container creation is delegated to a
      JmsListenerContainerFactory that is identified by the containerFactory
      attribute of the JmsListener annotation. Containers can be
      retrieved from the registry using a custom id that can be specified
      directly on the annotation.
      
      A "factory-id" attribute is available on the container element of
      the XML namespace. When it is present, the configuration defined at
      the namespace level is used to build a JmsListenerContainerFactory
      that is exposed with the value of the "factory-id" attribute. This can
      be used as a smooth migration path for users having listener containers
      defined at the namespace level. It is also possible to migrate all
      listeners to annotated endpoints and yet keep the
      <jms:listener-container> or <jms:jca-listener-container> element to
      share the container configuration.
      
      The configuration can be fine-tuned by implementing the
      JmsListenerConfigurer interface which gives access to the registrar
      used to register endpoints. This includes a programmatic registration
      of endpoints in complement to the declarative approach. A default
      JmsListenerContainerFactory can also be specified to be used if no
      containerFactory has been set on the annotation.
      
      Annotated methods can have flexible method arguments that are similar
      to what @MessageMapping provides. In particular, jms listener endpoint
      methods can fully use the messaging abstraction, including convenient
      header accessors. It is also possible to inject the raw
      javax.jms.Message and the Session for more advanced use cases. The
      payload can be injected as long as the conversion service is able to
      convert it from the original type of the JMS payload. By
      default, a DefaultJmsHandlerMethodFactory is used but it can be
      configured further to support additional method arguments or to
      customize conversion and validation support.
      
      The return type of an annotated method can also be an instance of
      Spring's Message abstraction. Instead of just converting the payload,
      such response type allows to communicate standard and custom headers.
      
      The JmsHeaderMapper infrastructure from Spring integration has also
      been migrated to the Spring framework. SimpleJmsHeaderMapper is based
      on SI's DefaultJmsHeaderMapper. The simple implementation maps all
      JMS headers so that the generated Message abstraction has all the
      information stored in the protocol specific message.
      
      Issue: SPR-9882
      713dd60f
  16. 11 12月, 2013 1 次提交
  17. 28 8月, 2013 1 次提交
  18. 14 5月, 2013 1 次提交
  19. 19 3月, 2013 1 次提交
  20. 02 1月, 2013 1 次提交
  21. 29 12月, 2012 4 次提交
  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