1. 09 Dec, 2015 5 commits
  2. 03 Dec, 2015 3 commits
    • Andy Wilkinson's avatar
      Only clean up logging system when root application context is closed · 00b668b2
      Andy Wilkinson authored
      Previously, LoggingApplicationListener would clean up the logging
      system in response to any application context with which it was
      registered being closed. This caused problems when a child context was
      closed. Specifically, closing the child context would cause any
      SLF4J-based logging systems to unregister the JUL bridge handler
      preventing an JUL logging being bridged into Logback or Log4J2.
      
      This commit updates LoggingApplicationListener so that the logging
      system is only cleaned up when a root application context is
      closed.
      
      Closes gh-4651
      00b668b2
    • Ivan Chen's avatar
      Remove unused test.css from spring-boot-sample-tomcat · d6bd120b
      Ivan Chen authored
      Closes gh-4606
      d6bd120b
    • Vladimir Tsanev's avatar
      Use fast exceptions in findResource(s) · 939b66f4
      Vladimir Tsanev authored
      Some libraries like aspectj are using findResource to see the raw
      bytecode of a class. It will even call findResource for every method of
      every class of beans that are post processed. This can be significant
      performance hit on startup when LaunchedURLClassLoader and there are a
      lot of nested jars.
      
      See gh-3640
      Fixes gh-4557
      939b66f4
  3. 01 Dec, 2015 1 commit
    • Andy Wilkinson's avatar
      Remove inconsistent synchronization from EmbeddedWebApplicationContext · 0214fe4b
      Andy Wilkinson authored
      Previously, EmbeddedWebApplicationContext used synchronized, but did
      not do so consistently. It also synchronized on this so its lock was
      exposed outside of the class, creating a risk of deadlock if a caller
      synchronized incorrectly. Furthermore, not all fields on the class
      were sychronized so the class wasn't truly thread-safe.
      
      This commit attempts to rectify some of the problems above. The use
      of synchronized has been dropped in favour of using a volatile field
      for the embedded servlet container. Whenever this field is accessed,
      a local variable is used to "cache" the value thereby preventing a
      change on another thread from causing unwanted behaviour such as an
      NPE.
      
      Closes gh-4593
      0214fe4b
  4. 29 Nov, 2015 1 commit
  5. 27 Nov, 2015 2 commits
  6. 26 Nov, 2015 2 commits
  7. 25 Nov, 2015 1 commit
  8. 23 Nov, 2015 2 commits
  9. 17 Nov, 2015 1 commit
    • Andy Wilkinson's avatar
      Isolate multiple Undertow deployments · 2fe08194
      Andy Wilkinson authored
      Previously, UndertowEmbeddedServletContainerFactory always used
      Undertow’s default ServletContainer. This meant that if there were two
      UndertowEmbeddedServletContainers created, they would share the same
      ServletContainer and the second one that was created would overwrite
      the deployment for the first. This resulted in a async request
      handling failing as the attempt to look up the deployment for the
      first embedded Undertow instance would incorrectly find the deployment
      for the second.
      
      This commit fixes the problem by ensuring that each 
      UndertowEmbeddedServletContainerFactory uses a separate Undertow
      ServletContainer instance.
      
      Closes gh-4329
      2fe08194
  10. 14 Nov, 2015 1 commit
  11. 13 Nov, 2015 1 commit
  12. 09 Nov, 2015 1 commit
    • Phillip Webb's avatar
      Fully support `-cp` arguments · 49a55875
      Phillip Webb authored
      The CLI application advertises `-cp` support but it appears that only
      `--cp` is really supported. The fix for gh-178 forgot to update the
      call to `getParser().parse(...)`.
      
      See gh-178
      49a55875
  13. 06 Nov, 2015 2 commits
    • Phillip Webb's avatar
      Restore original embedded container shutdown order · f08f8727
      Phillip Webb authored
      Update EmbeddedWebApplicationContext so that the servlet container is
      shutdown after the context is closed. Unfortunately shutting the
      container down before the context has been closed causes exceptions if
      the `/shutdown` actuator endpoint is used. It can also cause the Tomcat
      classloader to throw IllegalStateExceptions if resources are accessed
      during shutdown.
      
      As this commit effectively reverts 0069e41c we need to fix the shutdown
      deadlock issue reported in gh-4130 in a different way. The deadlock can
      be caused when an incoming HTTP connection occurs whilst the context is
      closing. The incoming connection triggers the `FrameworkServlet` to
      call `initWebApplicationContext` which in turn calls `refresh`. The
      `FrameworkServlet` checks `ApplicationContext.isActive()` before
      performing an initialization but prior to this commit we would set
      active to `false` before stopping the servlet container. We now override
      `onClose` rather than `doClose` in `EmbeddedWebApplicationContext` to
      ensure that the active flag is only set to `false` once the servlet
      container has been stopped.
      
      See gh-4130
      Fixes gh-4396
      f08f8727
    • Stephane Nicoll's avatar
      Fix Maven/Gradle wrapper executable flag · 6d90188a
      Stephane Nicoll authored
      Spring Initalizr now bundles a wrapper script for the build system. While
      that wrapper has the necessary execute flag in the zip archive, that flag
      is lost as the zip abstraction does not honor those.
      
      The init command now makes sure to restore the execute flag on `mvnw`
      and `gradlew` if necessary.
      
      Unfortunately, this can't be tested as the Windows build would fail to
      assert that the executable flag has been propertly set.
      
      Closes gh-4392
      6d90188a
  14. 05 Nov, 2015 3 commits
  15. 03 Nov, 2015 2 commits
    • Phillip Webb's avatar
      Polish · 2118242e
      Phillip Webb authored
      2118242e
    • Stephane Nicoll's avatar
      Fix key to disable the metrics filter · 8c140092
      Stephane Nicoll authored
      Commit d0cf6b53 introduced a `endpoints.metrics.filter.enabled` property
      key meant to disable the filter. Unfortunately, the `endpoints.metrics`
      namespace is already managed so setting this property will fail.
      
      We now use the same key than the one used to disable the metrics
      endpoint.
      
      Closes gh-4365
      8c140092
  16. 01 Nov, 2015 1 commit
  17. 30 Oct, 2015 2 commits
    • Andy Wilkinson's avatar
      Ensure that HATEOAS sample does not try to produce XML · 1f923605
      Andy Wilkinson authored
      The HATEOAS sample does not support XML responses. Previously, the
      controller doesn't constrain the media types that it could produce.
      This would result in a failure when handling a request that prefers
      XML responses.
      
      This commit updates the produces clauses in the controller so that
      the sample will only attempt to produce JSON.
      
      Closes gh-4343
      1f923605
    • Andy Wilkinson's avatar
      Update Tomcat multi-connectors sample to configure SSL declaratively · 05b501ce
      Andy Wilkinson authored
      The documentation recommends configuring the HTTP connector in code
      and using application.properties to configure the HTTPS connector
      as it's easier. This commit updates the sample to follow that
      recommendation.
      
      Closes gh-4342
      05b501ce
  18. 22 Oct, 2015 2 commits
    • Stephane Nicoll's avatar
      Filter duplicate · 7c1bf582
      Stephane Nicoll authored
      Improve the initial PR to include a filtering of the profiles that were
      already enabled via the `spring.profiles.active` property.
      
      Also add more tests to prove that each profile is loaded only once
      now.
      
      Closes gh-4273
      7c1bf582
    • Dave Syer's avatar
      Fix logic affecting files loaded · 06bb6bd1
      Dave Syer authored
      The problem fixed here is that the Loader keeps track of the profiles it
      is going to look at for loading files, but ignores any that were already
      active in the Environment if the listener is called initially with
      spring.profiles.active not empty.
      
      Closes gh-4261
      06bb6bd1
  19. 21 Oct, 2015 1 commit
    • Stephane Nicoll's avatar
      Allow PORTFILE to always override the file to use · 2e2ebeb9
      Stephane Nicoll authored
      Previously, the `PORTFILE` system property was not checked if the
      `EmbeddedServerPortFileWriter` was created using the default constructor.
      
      This had the effect to prevent overriding of the port file when this
      listener is created without any file or via `META-INF/spring.factories`.
      
      Closes gh-4254
      2e2ebeb9
  20. 20 Oct, 2015 2 commits
  21. 19 Oct, 2015 4 commits