Echopraxia v2.0.0 Release Notes
-
API changes
๐ฆ The API package now begins with the package name
com.tersesystems.echopraxia.api
and does not contain theLogger
orLoggerFactory
classes. All the classes incore
andsupport
have been moved toapi
.๐ There is a new
FieldBuilderResult
interface that is responsible for getting fields from a field builder. TheField.BuilderFunction
interface which extendedFunction<FB, List<Field>>
has been replaced with plainFunction<FB, FieldBuilderResult>
. TheField
interface now extendsFieldBuilderResult
. The upshot of this is that bothfb.list
andfield
return aFieldBuilderResult
and there is no more need forfb.only
. AFieldBuilderWithOnly
interface is available for backwards compatibility.FieldBuilderResult.list
will take most aggregate forms;Stream
,Iterator
, etc.๐ The
Field.Builder
interface is nowFieldBuilder
.๐ The
Field.Value
interface and subclasses have been moved to a top level classValue
, i.e.Value.string("foo")
rather thanField.Value.string("foo")
.๐ป There is a
FieldConstants
class that uses a resource bundle to load in hardcoded field constants, such asexception
andstackTrace
. UseFieldConstants.EXCEPTION
to reference.The core logger no longer depends on
FB extends FieldBuilder
, so it is now possible to create custom loggers that don't exposefb.keyValue
orfb.string
.There is a new
Utilities.threadContext()
method which is a cleaner way to manage thread context in custom loggers.๐ Jayway specific predicates removed from
LoggingContext
API.Logger Changes
๐ฆ Logger has been broken out into a different maven package. It is still in the same location
com.tersesystems.echopraxia.Logger
.๐ The
withExecutor
method that returnedAsyncLogger
has been removed.๐ The
withFieldBuilder(Foo.class)
method has been removed, please usewithFieldBuilder(new Foo)
instead.