1. 31 3月, 2011 8 次提交
    • R
      Predictable index position for BindingResult keys and parameter annotation... · 3f11fbaf
      Rossen Stoyanchev 提交于
      Predictable index position for BindingResult keys and parameter annotation convenience methods in MethodParameter
      3f11fbaf
    • C
      Increase visibility of MapPropertySource constructor · 006cbb25
      Chris Beams 提交于
      Was protected due to oversight, now public.
      
      Issue: SPR-8107
      006cbb25
    • C
      Introduce (Annotation)SessionFactoryBuilder types · f5768fe0
      Chris Beams 提交于
      Large refactoring of existing *SessionFactoryBean hierarchy designed to
      support configuration of Hibernate SessionFactory objects within
      @Configuration class @Bean methods without forcing use of a
      FactoryBean type, which is generally discouraged due to awkwardness
      of programming model and lifecycle issues.  Refactored and new types
      include:
      
          * Removal of AbstractSessionFactoryBean, replacing it with
            SessionFactoryBeanSupport abstract base class
      
          * Introduction of SessionFactoryBuilder and
            AnnotationSessionFactoryBuilder types, both direct subclasses of
            SessionFactoryBuilderSupport. These types are intended for direct
            use within @Bean methods. They expose method-chainable set*
            methods allowing for concise and convenient use. See JavaDoc
            on both types for usage examples.
      
          * LocalSessionFactoryBean and AnnotationSessionFactoryBean types are
            now subclasses, respectively, of the *Builder types above.
      
      LSFB and ASFB backward-compatibility has been maintained almost
      entirely. The one exception is that there is no longer a protected
      convertHibernateAccessException() method available in the hierarchy.
      This method was not likely often used anyway and has been replaced
      by the new (and public) setPersistenceExceptionTranslator() which
      accepts instances of type HibernateExceptionTranslator as introduced in
      SPR-8076.
      
      LSFB and ASFB setter method signatures have changed. They no longer
      return void in standard JavaBeans style but rather, and due to extending
      the *Builder types above, return the 'this' reference. This posed a
      problem because the Spring container has to date been unable to detect
      and provide dependency injection against non-void returning setter
      methods. This limitation was due to the way that the default JavaBeans
      Introspector class and its getBeanInfo() method works, and prompted the
      introduction and intergration of ExtendedBeanInfo, already completed in
      SPR-8079. So have no concern if you notice this signature change - it
      all works.
      
      Certain deprecations have been made:
      
          * All LSFB/ASFB methods related to Hibernate's CacheProvider SPI,
            reflecting its deprecation in Hibernate 3.3 in favor of the new
            RegionFactory SPI. Note these methods have been preserved only
            on the FactoryBean types. The new *SessionFactoryBuilder
            supertypes do not expose CacheProvider services at all.
      
          * All protected LSFB/ASFB methods that accept a Hibernate
            Configuration parameter, such as newSessionFactory(Configuration),
            postProcessMappings(Configuration) and
            postProcessConfiguration(Configuation), in favor of no-arg methods
            with the same names. Due to the nature of the hierarchy
            refactoring mentioned above, the Configuration instance is always
            available when these methods are called, thus no need to pass it
            in as a parameter.
      
      In the process, our approach to automatic detection of Hibernate dialect
      has been improved (it was in fact broken before). Thanks to James
      Roper for his suggestion in SPR-7936 as to how to fix this.
      
      See HibernateSessionFactoryConfigurationTests as a starting point for
      understanding the new builder-style approach to SessionFactory creation.
      Note especially use of the SessionFactoryBuilder#doWithConfiguration
      method which allows for direct programmatic configuration of the Native
      Hibernate (Annotation)Configuration API.
      
      As a final note, AnnotationConfiguration has been deprecated in
      Hibernate 3.6, and great pains have been taken to ensure that users
      of any supported Hibernate version (3.2 -> 3.6) will never need to
      (a) cast from Configuration to AnnotationConfiguration or (b)
      experience deprecation warnings due to being forced to use the
      AnnotationConfiguration API. Explore the JavaDoc around the
      doWithConfiguration() method and HibernateConfigurationCallback type
      for complete details.
      
      Issue: SPR-8066, SPR-7936, SPR-8076, SPR-8098
      f5768fe0
    • C
      Propagate wrapped exception in SessionFactoryUtils · b0b1116f
      Chris Beams 提交于
      Improve stack traces in certain Hibernate failure cases by properly
      chaining the cause exception.
      
      Issue: SPR-7933
      b0b1116f
    • C
      Introduce HibernateExceptionTranslator · 6809b234
      Chris Beams 提交于
      Designed to allow persistence exception translation of
      HibernateException types without being forced to use
      LocalSessionFactoryBean types.
      
      Committed now in support of the forthcoming introduction of
      *SessionFactoryBuilder types.
      
      Issue: SPR-8076
      6809b234
    • C
      Introduce ExtendedBeanInfo · 2f5085ae
      Chris Beams 提交于
      Decorator for instances returned from
      Introspector#getBeanInfo(Class<?>) that supports detection and inclusion
      of non-void returning setter methods. Fully supports indexed properties
      and otherwise faithfully mimics the default
      BeanInfo#getPropertyDescriptors() behavior, e.g., PropertyDescriptor
      ordering, etc.
      
      This decorator has been integrated with CachedIntrospectionResults
      meaning that, in simple terms, the Spring container now supports
      injection of setter methods having any return type.
      
      Issue: SPR-8079
      2f5085ae
    • S
      [SPR-6184] AnnotationConfigContextLoader now calls... · ec1b230a
      Sam Brannen 提交于
      [SPR-6184] AnnotationConfigContextLoader now calls AnnotationConfigApplicationContext's register(Class<?>...) method in one go, via var-args.
      ec1b230a
    • S
      [SPR-6184] AnnotationConfigContextLoader now extends... · 73249395
      Sam Brannen 提交于
      [SPR-6184] AnnotationConfigContextLoader now extends AbstractGenericContextLoader; added new extension points to AbstractGenericContextLoader.
      73249395
  2. 30 3月, 2011 2 次提交
  3. 29 3月, 2011 12 次提交
  4. 28 3月, 2011 3 次提交
  5. 24 3月, 2011 1 次提交
  6. 23 3月, 2011 1 次提交
  7. 18 3月, 2011 1 次提交
  8. 15 3月, 2011 3 次提交
    • C
      Remove TODOs related to profile logging · 150838bf
      Chris Beams 提交于
      Issue: SPR-8031, SPR-7508, SPR-8057
      150838bf
    • C
      Resolve or eliminate Environment-related TODOs · b50ac748
      Chris Beams 提交于
      Issue: SPR-8031, SPR-7508
      b50ac748
    • C
      @Feature methods accept @Value-annotated params · d471266d
      Chris Beams 提交于
      Previously errors were being raised when trying to inject @Value
      annotated paramaters such as:
      
      @Feature
      public FeatureSpec feature(@Value("#{environment['foo']}") String foo) {
          return new FeatureSpec(foo);
      }
      
      This is not so much because dependency resolution of @Value-annotated
      types was failing, but rather because the 'early bean reference'
      proxying mechanism was throwing an exception if any final type was
      detected as a parameter. This is of course because final types are
      non-subclassable by CGLIB.  On review, however, it's obvious that
      certain final types must be allowed for injection.  @Value injection
      is an obvious one, but the rarer case of a Spring bean of type String
      or int is another.
      
      The explicit guard against final types as parameters to @Feature methods
      has been removed. Final types are still checked for, however, and if
      found, no proxing is attempted.  The dependency is immediately resolved
      against the current BeanFactory and injected into the @Feature method.
      
      This means that @Value injection, @Qualifier injection, etc all work
      as expected, but does mean that premature bean instantiation may occur
      if a user unwittingly injects non-String, non-primitive final bean types
      as @Feature method parameters.
      
      Issue: SPR-7974
      d471266d
  9. 14 3月, 2011 4 次提交
  10. 13 3月, 2011 1 次提交
  11. 12 3月, 2011 2 次提交
  12. 11 3月, 2011 2 次提交