1. 24 Feb, 2016 7 commits
  2. 23 Feb, 2016 2 commits
    • Andy Wilkinson's avatar
      Allow endpoint paths to be configured via endpoint.<name>.path · 617c9732
      Andy Wilkinson authored
      Support for configuring an endpoint’s path separately from its id was
      introduced in 97255785, but it didn’t work for a variety of reasons:
      
       1. Some custom MVC endpoints did not have configuration properties
          bound to them
       2. Some generic endpoints rejected the path property as they were
          configured not to ignore unknown fields
       3. The property used to configure the path was dependent on the id
          of the endpoint. This meant that the path property’s name would
          change if the endpoint’s id was changed
      
      This commit addresses these problems:
      
       1. @ConfigurationProperties has been added to custom MvcEndpoints where
          it was missing
       2. Generic endpoints have been updated to ignore unknown fields,
          allowing the path of their MVC adapter to be configured
       3. Rather than using the id of a generic endpoint to determine the name
          of its path property, the prefix or value of the endpoint’s
          @ConfigurationProperties annotation is used instead. Any generic
          endpoint that is not annotated with @ConfigurationProperties is
          ignored, making its path unconfigurable.
      
      Closes gh-5105
      617c9732
    • Stephane Nicoll's avatar
      Rework ListenerContainerFactory configurers · c4205d04
      Stephane Nicoll authored
      Rework commit b726974b to avoid exposing setters that would permit anyone
      to change Spring Boot's defaults. Also, since these are configurers of a
      specific instance, they should be named accordingly.
      
      Closes gh-5138
      c4205d04
  3. 22 Feb, 2016 7 commits
    • Andy Wilkinson's avatar
      Do not try to auto-configure Jolokia if Spring MVC is not on classpath · f94e8bd2
      Andy Wilkinson authored
      The Jolokia auto-configuration requires ServletWrappingController from
      Spring MVC to be on the classpath. This commit updates the
      auto-configuration to make it conditional on the presence of this
      class.
      
      Closes gh-5153
      f94e8bd2
    • Andy Wilkinson's avatar
      Break cycle caused by JndiDataSourceAutoConfiguration · b4cda625
      Andy Wilkinson authored
      There's a long cycle when Spring Data REST, Data JPA and Actuator
      are used in an app that retrieves its DataSource from JNDI. The cycle
      is:
      
      - WebMvcAutoConfiguration
      - HttpMessageConverters
      - MappingJackson2HttpMessageConverter (needs an ObjectMapper)
      - SpringBootRepositoryRestMvcConfiguration
      - ObjectMapper
      - RepositoryResourceMappings (part of a custom Jackson module)
      - Repositories
      - EntityManagerFactory (Triggered by application's Spring Data JPA repository)
      - HibernateJpaAutoConfiguration
      - JndiDataSourceAutoConfiguration
      - MBeanExporter (Used to prevent export of DataSource MBean that's already in JMX)
      - EndpointMBeanExportAutoConfiguration
      - ObjectMapper (Used to format JSON produced by the exported endpoints)
      
      Spring Data Rest caused the ObjectMapper to depend on JPA. JPA depends
      on the DataSource. JnidDataSourceAutoConfiguration depends on the
      MBeanExporter. Actuator's MBeanExporter requires an ObjectMapper to
      produce JSON strings.
      
      This commit breaks the cycle by making JndiDataSourceAutoConfiguration
      access the MBeanExporter lazily. Rather than using `@Lazy`. which does
      not work with `@Autowired(required=false)`, the application context
      is injected and the MBeanExporter is retrieved manually when it is
      needed.
      
      Closes gh-4980
      b4cda625
    • Andy Wilkinson's avatar
      Merge pull request #5190 from Gary Russell · d05f9417
      Andy Wilkinson authored
      * gh-5190:
        Upgrade to Spring Integration 4.2.5.RELEASE
      d05f9417
    • Gary Russell's avatar
      Upgrade to Spring Integration 4.2.5.RELEASE · 5e180641
      Gary Russell authored
      Closes gh-5190
      5e180641
    • Andy Wilkinson's avatar
      Upgrade to Undertow 1.3.18.Final · 1c00fdd8
      Andy Wilkinson authored
      Closes gh-5182
      1c00fdd8
    • Andy Wilkinson's avatar
      Upgrade to Groovy 2.4.6 · 5d256196
      Andy Wilkinson authored
      Closes gh-4149
      5d256196
    • Stephane Nicoll's avatar
      Fix Hazelcast Cache auto-configuration ordering · 094f7aa2
      Stephane Nicoll authored
      Spring Boot supports the automatic configuration of an additional
      HazelcastInstance if one already exists and an explicit property has been
      set to use a different configuration for caching. So three cases are
      supported really: no `HazelcastInstance` exists so we need to create one
      anyway or an `HazelcastInstance` already exists; in that latter case, we
      should either reuse it or create a new one.
      
      Unfortunately, the conditions that checked those three use cases were
      not ordered consistently and we could easily get in a situation where
      both conditions were evaluated.
      
      This commit makes sure that we  first check if an `HazelcastInstance`
      exists and then (and only then) we create the missing `HazelcastInstance`
      used for caching. The tests have also been improved to validate the
      proper `HazelcastInstance` is used for caching.
      
      Closes gh-5181
      094f7aa2
  4. 20 Feb, 2016 2 commits
  5. 18 Feb, 2016 1 commit
    • Andy Wilkinson's avatar
      Increase timeout for startup of embedded Cassandra · d3074a08
      Andy Wilkinson authored
      The integration tests for the Spring Data Cassandra sample application
      fail intermittently, apparently due to Cassandra failing to start
      within the default timeout period of 10000ms.
      
      In attempt to get the tests to pass reliably, this commit increases
      the timeout to 60000ms (1 minute).
      d3074a08
  6. 16 Feb, 2016 2 commits
  7. 15 Feb, 2016 1 commit
  8. 12 Feb, 2016 5 commits
    • Stephane Nicoll's avatar
      Allow to easily customize ListenerContainerFactory · b726974b
      Stephane Nicoll authored
      Previously, if one wants to create a custom `JmsListenerContainerFactory`
      or `RabbitListenerContainerFactory`, a bunch of code from the auto-
      configuration must be duplicated.
      
      This commit introduces two services to configure such factory for JMS
      and AMQP with the same sensible defaults that were applied by the
      auto-configufrations.
      
      Closes gh-5138
      b726974b
    • Andy Wilkinson's avatar
      Improve handling of connection failures in remote debug tunnel · 1c170b35
      Andy Wilkinson authored
      Previously, if an application had been started without remote
      debugging enabled, an attempt to connect to it via
      RemoteSpringApplication and the HTTP tunnel would result in the
      application being hammered by connection attempts for 30 seconds.
      
      This commit updates the tunnel server to respond with Service
      Unavailable (503) when a connection attempt is made and the JVM
      does not have remote debugging enabled. When the client receives a
      503 response, it now logs a warning message describing the possible
      problem before closing the connection.
      
      The client has also been updated to provide improved diagnostics when
      a connection to the tunnel server cannot be established, for example
      because the remote URL is incorrect, or the remote application isn't
      running.
      
      Lastly, the client has been updated so that it continues to accept
      connections when a connection to the server is closed. This allows
      the user to correct a problem with the remote application, such as
      restarting it with remote debugging enabled, without having to also
      restart the process that's running RemoteSpringApplication.
      
      Closes gh-5021
      1c170b35
    • Andy Wilkinson's avatar
      Only access parameters in WebRequestTraceFilter when they are included · 607dba97
      Andy Wilkinson authored
      Previously, WebRequestTraceFilter would call request.getParameterMap()
      before deciding whether or not the parameters should be included in
      the trace. For a POST request, this had the unwanted side-effect
      of always reading the request body.
      
      This commit updates WebRequestTraceFilter so that it checks that
      parameters are to be included in the trace before calling
      request.getParameterMap()
      
      Closes gh-5089
      607dba97
    • Andy Wilkinson's avatar
      Upgrade to Tomcat 8.0.32 · 815da8b8
      Andy Wilkinson authored
      Closes gh-5122
      815da8b8
    • Andy Wilkinson's avatar
  9. 11 Feb, 2016 10 commits
    • Andy Wilkinson's avatar
    • Andy Wilkinson's avatar
      Polishing · 7787321d
      Andy Wilkinson authored
      7787321d
    • Andy Wilkinson's avatar
      ddfadce9
    • Stephane Nicoll's avatar
      Polish documentation · 4cbbd48f
      Stephane Nicoll authored
      Closes gh-5131
      4cbbd48f
    • Andy Wilkinson's avatar
      Remove redundant public modifier · 31aa5ad8
      Andy Wilkinson authored
      31aa5ad8
    • Andy Wilkinson's avatar
      Shut down in-memory database when DevTools restarts the context · a8f4708f
      Andy Wilkinson authored
      Previously an in-memory database that wasn’t pooled (an
      EmbeddedDatabase) would be shutdown when the context restarted, but
      an in-memory database wrapped in a connection pool was not. This meant
      that the former would be be wiped clean after each restart, whereas the
      latter would not. In addition to being inconsistent, this also
      caused problems with schema.sql and data.sql scripts when using
      DevTools. If you were using an in-memory database wrapped in a
      connection pool, a failure may occur during a restart as the scripts
      were not being run against in clean database.
      
      This commit adds an auto-configured bean to DevTools that, when the
      context is being closed, will execute “SHUTDOWN” if it identifies that
      the DataSource is not an EmbeddedDatabase and is for an in-memory
      database.
      
      Closes gh-4699
      a8f4708f
    • Stephane Nicoll's avatar
      Document how to configure access logging · abf9d66e
      Stephane Nicoll authored
      Also, the section on `server.*` configuration was poor so this commit
      also improves it.
      
      Closes gh-4989
      abf9d66e
    • Andy Wilkinson's avatar
      Preserve ordering when auto-configuring WebSocket MessageConverters · fc2e51a7
      Andy Wilkinson authored
      Previously, WebSocketMessagingAutoConfiguration added a single
      additional converter. This was a MappingJackson2MessageConverter
      configured with the auto-configured ObjectMapper.
      AbstractMessageBrokerConfiguration places additional converters before
      any of the default converters. This meant that the auto-configuration
      had the unwanted side-effect of changing the ordering of the
      converters. A MappingJackson2MessageConverter was now first in the
      list, whereas, by default, it's last in the list after a
      StringMessageConverter and a ByteArrayMessageConverter.
      
      This commit updates WebSocketMessagingAutoConfiguration so that it
      switches off the registration of the default converters and registers
      a StringMessageConverter, ByteArrayMessageConverter and
      MappingJackson2MessageConverter in that order. A test has been
      added to verify that the types of these three converters match
      the types of the default converters. A second test that verifies
      that String responses are converted correctly has also been added
      alongside the existing test that verified the behaviour for JSON
      responses.
      
      Closes gh-5123
      fc2e51a7
    • Stephane Nicoll's avatar
      Polish Javadoc · c10943c6
      Stephane Nicoll authored
      Closes gh-4936
      c10943c6
    • Stephane Nicoll's avatar
      Clarify precedence of property sources · 594c8910
      Stephane Nicoll authored
      When the `locations` attribute is set for a given bean annotated with
      `@ConfigurationProperties`, the configuration at these specified
      locations take precedence over any other property sources. This means
      that such values can't be overridden by a system property or a command
      line switch for instance.
      
      This commit clarifies this rules in the documentation.
      
      Closes gh-5111
      594c8910
  10. 10 Feb, 2016 3 commits