1. 10 Aug, 2015 3 commits
  2. 09 Aug, 2015 1 commit
  3. 07 Aug, 2015 1 commit
  4. 05 Aug, 2015 7 commits
  5. 04 Aug, 2015 1 commit
    • Andy Wilkinson's avatar
      Consider @Bean methods with args to determine type created by factory · 905346d0
      Andy Wilkinson authored
      Previously, BeanTypeRegistry would only look for a @Bean method
      with no arguments when trying to determine the type that will be
      created by a factory bean. This meant that the type produced by a
      factory bean declared via a @Bean that has one or more arguments would
      be unknown and any on missing bean conditions look for a bean of the
      type produced by the factory bean would match in error.
      
      This commit updates BeanTypeRegistry to, where possible, use the
      factory method metadata for the bean definition when determining the
      type that will be created. This allows it to determine the type for
      factory bean created by @Bean methods that take arguments and also
      avoids the use reflection to find the factory method. Where factory
      method metadata is not available, the existing reflection-based
      approach is used as a fallback.
      
      Closes gh-3657
      905346d0
  6. 03 Aug, 2015 5 commits
    • Phillip Webb's avatar
      Polish · 2c0ec1b4
      Phillip Webb authored
      2c0ec1b4
    • Andy Wilkinson's avatar
      Merge branch 'gh-3628' into 1.2.x · acfb07bd
      Andy Wilkinson authored
      acfb07bd
    • Andy Wilkinson's avatar
      Polish contribution · 838e0ef3
      Andy Wilkinson authored
      - Extract the logic that coerces the string into a LogLevel into a
        separate method.
      - Add a test that verifies that false is mapped to LogLevel.OFF
      
      Closes gh-3628
      838e0ef3
    • shanman190's avatar
      Make it easier to use YAML configuration to turn off a logger · cbd37b58
      shanman190 authored
      A level named off is used to disable logging for a particular logger.
      YAML interprets off as false, leading to a failed attempt to get the
      LogLevel for FALSE. A workaround is to quote the level, i.e. use "off"
      rather than off.
      
      This commit updates LoggingApplicationListener to coerce the string
      false back to the level off.
      
      Closes gh-3631
      See gh-3628
      cbd37b58
    • Andy Wilkinson's avatar
      Use fast exceptions in hasMoreElements in LaunchedURLClassLoader · d241171f
      Andy Wilkinson authored
      When nested jars are being used, hasMoreElements requires opening a
      connection for an entry in every nested jar. If that entry doesn't
      exist, a FileNotFoundException is thrown to indicate that a particular
      jar doesn't contain the requested entry. This exception is used to
      indicate the lack of an entry and is then swallowed, i.e. its stack
      trace is of no importance. This means that the performance of
      hasMoreElements can be improved by switching on fast exceptions while
      it's being called. When fast exceptions are switched on a general
      purpose pre-initialized FileNotFoundException is thrown rather than
      creating a new FileNotFoundException instance each time.
      
      In certain situations, the use of fast exceptions as described above
      can improve performance fairly significantly. The JRE's default SAAJ
      implementation uses META-INF/services-based discovery for _every_
      request that's handled by Spring Web Services. Each discovery attempt
      results in hasMoreElements being called making its performance
      critical to throughput.
      
      See gh-3640
      d241171f
  7. 27 Jul, 2015 2 commits
  8. 23 Jul, 2015 2 commits
  9. 22 Jul, 2015 2 commits
    • Andy Wilkinson's avatar
      Avoid changing root logger level when setting level of unconfigured logger · a43cd18a
      Andy Wilkinson authored
      Previously getLoggerConfig(loggerName) was used to retrieve the
      LoggerConfig object on which the level was to be set. As described in the
      method’s javadoc it will “remove tokens from the package name as
      necessary or return the root LoggerConfig if no other matches were found”.
      This is problematic as, if there’s no configuration for the logger whose
      level is being configured, the level will be applied to a logger from an
      outer package or to the root logger.
      
      This commit updates Log4J2LoggingSystem to use the configuration’s map of
      LoggerConfigs, rather than calling getLoggerConfig. In the event of the
      level being set on an unconfigured logger, this will produce a null
      LoggerConfig. When a null LoggerConfig is encountered, a new one is
      created with the appropriate level. If the config already exists, its
      level is set as it was before.
      
      The code that was accessing the root logger using a magic null value
      (which was then coerced into the root logger’s name (an empty string))
      has also been updated to make it clearer that they are purposefully
      dealing with the root logger.
      
      Closes gh-3550
      a43cd18a
    • Andy Wilkinson's avatar
      Upgrade to Groovy 2.4.4 · 9b6538d5
      Andy Wilkinson authored
      Typically, a Spring Boot maintenance release would not move to a new
      minor version of a dependency. However there is a security
      vulnerability in Groovy [1] and 2.4.4 is the only release which
      contains a fix for it.
      
      The commit upgrades to 2.4.4, thereby ensuring that users of Groovy
      are not vulnerable by default. Users of Groovy whose applications are
      not affected by the vulnerability may choose to downgrade back to
      2.3.11 by overriding Spring Boot's dependency management.
      
      Closes gh-3540
      
      [1] http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3253
      9b6538d5
  10. 20 Jul, 2015 3 commits
  11. 13 Jul, 2015 6 commits
  12. 09 Jul, 2015 2 commits
    • Phillip Webb's avatar
      Formatting · 4b17f3ce
      Phillip Webb authored
      4b17f3ce
    • Andy Wilkinson's avatar
      Favour entries in source jar over standard libraries when repackaging · 68e54e1d
      Andy Wilkinson authored
      When writing a jar, once an entry has been written it will never be
      overwritten, i.e. the first write of a given entry will win. Previously,
      when repackaging a jar, the existing contents were written followed by
      any libraries. This caused a problem when repackaged a WAR file and
      a library needed to be unpacked as the existing entry in WEB-INF/lib
      would prevent the library with the UNPACK comment from being written.
      This was addressed in f761916b by inverting the order so libraries
      would take precedence over entries in the source jar.
      
      It’s now become apparent that this change in the order causes a problem
      for users who are obfuscating their code. The obfuscated code exists in
      the source jar but is also provided to the repackager in its original
      form as a library. When libraries take precedence, this means that the
      code in its original form ends up in the repackaged war and the
      obfuscation is lost.
      
      This commit updates the repackager to write libraries that require
      unpacking first. This allows the UNPACK comment to be written even if
      there’s also a source entry for the library. Next, source entries are
      written. This allows obfuscated source entries to take precedence over
      any unobfuscated library equivalents. Lastly, standard libraries that
      do not require unpacking are written into the repackaged archive.
      
      Closes gh-3444
      68e54e1d
  13. 08 Jul, 2015 1 commit
    • Phillip Webb's avatar
      Fix Flyway and Liquibase JPA 'depends-on' setup · 7da80891
      Phillip Webb authored
      Ensure that FlywayAutoConfiguration and LiquibaseAutoConfiguration occur
      after HibernateJpaAutoConfiguration so that the DependsOnPostProcessor
      condition can correctly check for a LocalContainerEntityManagerFactory
      bean.
      
      Fixes gh-3437
      7da80891
  14. 06 Jul, 2015 1 commit
  15. 02 Jul, 2015 3 commits