The following should help most casual users of the project update their applications:
ContextHolder and all of its
related classes have been removed. This significant change was made for the sake of consistency
with the core Spring project's approach of a single ThreadLocal per use case,
instead of a shared ThreadLocal for multiple use cases as the previous
ContextHolder allowed. This is an important change in 0.9.0. Many applications
will need to modify their code (and possibly web views) if they directly interact with the old
ContextHolder. The replacement security ThreadLocal is called
SecurityContextHolder and provides a single getter/setter for a
SecurityContext.
SecurityContextHolder guarantees to never return a SecurityContext.
SecurityContext provides single getter/setter for Authentication.ContextHolder,
SecureContext and Context to directly call SecurityContextHolder
and work with the SecurityContext (instead of the now removed Context
and SecureContext interfaces).Context
implementations, your applications no longer need to perform checking of null and
unexpected Context implementation types, and the new SecurityContextHolder
is an InheritableThreadLocal - which should make life easier in rich client
environments.