Provide driver 4 support for extra codecs

Description

Java driver 3.x has many codecs in the extras module. Most of these do not have any equivalent for driver 4.x.

Add support for:

Arrays

  1. AbstractArrayCodec

  2. AbstractPrimitiveArrayCodec

  3. DoubleArrayCodec

  4. FloatArrayCodec

  5. IntArrayCodec

  6. LongArrayCodec

  7. ObjectArrayCodec

Temporal types

  1. SimpleDateCodec

  2. SimpleTimestampCodec

  3. LocalDateTimeCodec (could take the ZoneId as a parameter instead of hard-coded UTC)

  4. ZonedDateTimeCodec (storing a tuple, which is different from the current one)

  5. ZoneIdCodec

Enums

  1. EnumNameCodec

  2. EnumOrdinalCodec

JDK 8

  1. OptionalCodec

Json

  1. JacksonJsonCodec

Most of the above codecs could be added directly to driver-core, as all the dependencies required, including Jackson, are already present.

However the codecs for Joda Time and other Json libraries would require additional dependencies, we may chose to not include them for now.

For Json, if we could come up with an abstract parent class that is agnostic of the actual Json library, that would at least allow users to create their own Json codecs very easily.

Environment

None

Pull Requests

None

Assignee

Alexandre Dutra

Reporter

Alexandre Dutra

Labels

None

PM Priority

None

Affects versions

None

Fix versions

Pull Request

None

Doc Impact

None

Size

None

External issue ID

None

External issue ID

None

Priority

Major
Configure