Published by ghik almost 2 years ago
Published by sebaciv about 2 years ago
ScalaDurationExtensions
Published by ghik about 2 years ago
constantDeclarations
static analyzer rule for checking syntax of Scala constantsPublished by sebaciv over 2 years ago
Dependency updates: Jetty, MongoDriver, ScalaJS, Akka
Published by wodomierz over 2 years ago
Blocking Either as IO in BlockingUtils
Published by ghik over 2 years ago
DefaultBlocking.ioScheduler
caches the schedulerPublished by ghik over 2 years ago
Published by sebaciv over 2 years ago
Published by ghik over 2 years ago
BsonInput.readDouble()
implementations accept INT32
(#413 by @pulewicz)Published by ghik over 2 years ago
Changes in BSON serialization (in commons-mongo
module):
Long
is serialized to BsonInt32
if the value is small enoughBigInt
is serialized to BsonInt64
or BsonInt32
if the value is small enoughBigDecimal
is serialized to BsonDecimal128
where possible (#410)BsonReaderInput
based on BsonBinaryReader
can now read document fields in any order (#411)
peekField
was implementedBsonDocumentReader
due to upstream bug in its implementationPublished by ghik over 2 years ago
RetryStrategy.exponentially
Published by ghik over 2 years ago
GenCodec
: allow interpreting BSON Int32
as Long
when readingPublished by ghik almost 3 years ago
commons-mongo
:
MongoPolyDataCompanion
(Scala 2.13 only)Published by ghik almost 3 years ago
TypedMap
and added support for it in Mongo APIFloatWrapperCompanion
, DoubleWrapperCompanion
and BooleanWrapperCompanion
Published by ghik over 3 years ago
GenCodec
creates a List
instead of Vector
when deserializing scala.collection.Seq
or scala.collection.immutable.Seq
#76commons-annotations
module removed, annotations moved to commons-core
commons-rest
, commons-akka
and commons-kafka
AnnotationAggregate
redesigned to use aggregated
method rather than dummy type memberAnnotation
and StaticAnnotation
in CommonAliases
Async
moved from RawRest
into concurrent
packagedeclareSize
, sizePolicy
for Output
s and knownSize
for Input
sPublished by ghik almost 6 years ago
REST framework:
udash-rest
and deprecated. For backwards compatibility, it has been moved to separate, cross compiled module, commons-rest
.Changes in GenCodec
(breaking)
SimpleOutput
from Output
and SimpleInput
from Input
- this primarily makes writing wrappers easier. For wrapping, convenience abstract classes have been implemented.isNull
removed from Input
. Instead, readNull()
returns Boolean
to indicate whether there was null
or not.readCustom
and writeCustom
as a more principled way Input
and Output
implementations may support custom native values like ObjectId
.InputMetadata
which may be used by Input
and Output
implementations to provide additional information to codecs, e.g. JsonType
by JsonStringInput
.GenObjectCodec
as a public sub-typeclass of GenCodec
. It has materialize
, HasGenObjectCodec
etc.Changes in RedisDriver
(breaking)
RedisNodeClient
and RedisClusterClient
thanks to a separate connection pool maintained by RedisNodeClient
for themRedisSerialization
HashKey
type member is renamed to Field
Record
type which has a separate RedisRecordCodec
serialization typeclass which can be derived from GenObjectCodec
. Records are used in Redis hash and stream commands.RedisDataCodec
no longer uses StreamOutput/Input
- simple values are serialized as plain strings while complex values are serialized to JSON before being sent to Redis. This is a major breaking change in serialization format used by Redis driver to save Scala types into Redis.RetryStrategy
is now more composableTRYAGAIN
Redis Cluster errors with configurable retry strategyClusterConfig
- primarily new retry strategiesPublished by ghik about 6 years ago
RestRequest
val
s and var
s in macro instances@annotated
) - previously it was only possible to specify them on metadata parametersPublished by ghik about 6 years ago
MacroInstances
no longer requires methods in Instances
trait to be parameterless@allowIncomplete
meta-annotation for metadata classes which makes it possible to materialize partial metadata for RPCs and ADTsPublished by ghik about 6 years ago
MacroCommons
from commons-macros
no longer requires commons-annotations
or commons-core
in classpath of macro callsites (breaking for client classes extending MacroCommons
)AnnotationOf
, AnnotationsOf
, OptAnnotationOf
and implicits for capturing self-annotations into super constructor arguments: SelfAnnotation
, SelfAnnotations
, SelfOptAnnotation
RpcMacroInstances
into RPC-independent MacroInstances
(breaking)example
field into OpenAPI Schema
in REST framework (breaking)RpcImplicitsProvider
, instead one should rely on implicit injection through MacroInstances
into companion objects (breaking)GenCodecMacros
now use the same implicit resolution & caching engine as RPC/ADT metadata macrosRestStructure
refactored/simplified (breaking)Published by ghik about 6 years ago
Changes in RPC/ADT macro engines:
@reifyEncodedAnnot
removed, allowed @composite
parameters to be @optional
instead@reifyDefaultValue
for reifying Scala-level default values of case class fieldsoverloadedOnly
flag for @rpcNamePrefix
which causes it to be used only for overloads of RPC methodsImplicitNotFound
typeclass for customizing implicit-not-found compilation errors for arbitrary typesREST framework:
RestResponse
)HEAD
and OPTIONS
requestsoperationId
in generated Operation
objects now defaults to RPC methods plain name, without the HTTP method prefix (e.g. soSomething
instead of post_doSomething
) unless the method is overloaded.@operationIdPrefix
annotation for prefix methodsPathItemAdjuster
for adjusting OpenAPI PathItem
objects@operationId
, @nullable
, @tags
, @bodyDescription
, @responseDescription
, @pathDescription
, @summary
, @pathSummary
, @title
, @schemaDescription
GenCodec
:
GenCodec.Auto
removed