micronaut-serialization icon indicating copy to clipboard operation
micronaut-serialization copied to clipboard

Decouple Micronaut Modules from Jackson

Open graemerocher opened this issue 4 years ago • 14 comments

  • [ ] micronaut-gcp
  • [x] micronaut-problem-json [ ] ❌ #94
  • [ ] micronaut-discovery-client
  • [x] micronaut-rabbitmq
  • [x] micronaut-security
  • [ ] micronaut-data
  • [x] micronaut-mqtt
  • [x] micronaut-nats
  • [x] micronaut-liquibase
  • [x] micronaut-pulsar
  • [ ] micronaut-aws
  • [x] micronaut-jms
  • [x] micronaut-sql
  • [x] micronaut-graphql
  • [x] micronaut-kafka

Micronaut GCP

  • https://github.com/micronaut-projects/micronaut-gcp/blob/ce266bc373eae9fd95d68fd7200696af2c57dbaa/gcp-function-http/src/main/java/io/micronaut/gcp/function/http/jackson/ObjectMapperCustomizer.java
  • https://github.com/micronaut-projects/micronaut-gcp/blob/ce266bc373eae9fd95d68fd7200696af2c57dbaa/gcp-pubsub/src/main/java/io/micronaut/gcp/pubsub/serdes/JsonPubSubMessageSerDes.java
  • https://github.com/micronaut-projects/micronaut-gcp/blob/c9f63645a2dde5efe80660760af12f23aff6ff24/gcp-logging/build.gradle#L9

Micronaut Problem JSON

  • https://github.com/micronaut-projects/micronaut-problem-json/blob/29f4645bf1244c9c3079053778be3e6ab1899fb1/problem-json/src/main/java/io/micronaut/problem/conf/MixInThrowableProblem.java

Micronaut Discovery Client

  • Significant uses of Jackson DataBind for Consul/Eureka (https://github.com/micronaut-projects/micronaut-discovery-client/blob/3d6c214f8652d9858580ac0e07e98d4563e9c545/discovery-client/src/main/java/io/micronaut/discovery/consul/client/v1/KeyValue.java) probably best to add a dependency on the data bind module

Micronaut RabbitMQ

  • https://github.com/micronaut-projects/micronaut-rabbitmq/blob/97d228b042c30c71e1665f51f9bfacbf346736ae/rabbitmq/src/main/java/io/micronaut/rabbitmq/serdes/JsonRabbitMessageSerDes.java

Micronaut Security

  • https://github.com/micronaut-projects/micronaut-security/blob/501868df501c1a52b6c90612fb041b023404961d/security/src/main/java/io/micronaut/security/authentication/jackson/SecurityJacksonModule.java#L36
  • https://github.com/micronaut-projects/micronaut-security/blob/98e2eb51015291541261ce7b1c2825a433b96ccc/security-jwt/src/main/java/io/micronaut/security/token/jwt/endpoints/KeysController.java
  • https://github.com/micronaut-projects/micronaut-security/blob/7fb43151fe663707fa769119a8e219169557cf27/security-oauth2/src/main/java/io/micronaut/security/oauth2/endpoint/token/response/OpenIdTokenResponse.java
  • https://github.com/micronaut-projects/micronaut-security/blob/aade741380a4a50dfc4ab120a6a15469c84b0c37/security-oauth2/src/main/java/io/micronaut/security/oauth2/grants/RefreshTokenGrant.java
  • https://github.com/micronaut-projects/micronaut-security/blob/aade741380a4a50dfc4ab120a6a15469c84b0c37/security-oauth2/src/main/java/io/micronaut/security/oauth2/grants/SamlBearerAssertionGrant.java
  • https://github.com/micronaut-projects/micronaut-security/blob/aade741380a4a50dfc4ab120a6a15469c84b0c37/security-oauth2/src/main/java/io/micronaut/security/oauth2/endpoint/token/response/TokenErrorResponse.java
  • https://github.com/micronaut-projects/micronaut-security/blob/aade741380a4a50dfc4ab120a6a15469c84b0c37/security/src/main/java/io/micronaut/security/endpoints/introspection/IntrospectionResponse.java
  • https://github.com/micronaut-projects/micronaut-security/blob/aade741380a4a50dfc4ab120a6a15469c84b0c37/security-oauth2/src/main/java/io/micronaut/security/oauth2/grants/ClientCredentialsGrant.java
  • https://github.com/micronaut-projects/micronaut-security/blob/98e2eb51015291541261ce7b1c2825a433b96ccc/security/src/main/java/io/micronaut/security/endpoints/introspection/IntrospectionController.java
  • https://github.com/micronaut-projects/micronaut-security/blob/501868df501c1a52b6c90612fb041b023404961d/security-oauth2/src/main/java/io/micronaut/security/oauth2/client/OpenIdClientFactory.java

Micronaut Data

  • https://github.com/micronaut-projects/micronaut-data/blob/797257aa8d1176df3bf01520f837c68b5a9da29f/data-model/src/main/java/io/micronaut/data/model/Pageable.java
  • https://github.com/micronaut-projects/micronaut-data/blob/fa62a8f3a4cb39e4d9b936c899816acd80e2016e/data-model/src/main/java/io/micronaut/data/model/Slice.java
  • https://github.com/micronaut-projects/micronaut-data/blob/91dbafaa59e2bf27e634c3cd536630889efe3e48/data-model/src/main/java/io/micronaut/data/model/DefaultPage.java

Micronaut MQTT

  • https://github.com/micronaut-projects/micronaut-mqtt/blob/cf4adeb37df9a0abcff6cdaff8aa9cb5c47740c3/mqtt-core/src/main/java/io/micronaut/mqtt/serdes/JsonMqttPayloadSerDes.java

Micronaut NATs

  • https://github.com/micronaut-projects/micronaut-nats/blob/09dcdf363de4729840087820ff4feb0b24f0e4ee/nats/src/main/java/io/micronaut/nats/serdes/JsonNatsMessageSerDes.java

Micronaut Liquibase

  • https://github.com/micronaut-projects/micronaut-liquibase/blob/2c2da5ffd41b5f1ea09fcfe9d9791c0134ad8bdd/liquibase/src/main/java/io/micronaut/liquibase/endpoint/RanChangeSetSerializer.java

Micronaut Pulsar

  • https://github.com/micronaut-projects/micronaut-pulsar/blob/281fba84ddda21b18444fa854b9de4ba44d40de4/pulsar/src/main/java/io/micronaut/pulsar/schemas/json/JacksonJsonWriter.java
  • https://github.com/micronaut-projects/micronaut-pulsar/blob/281fba84ddda21b18444fa854b9de4ba44d40de4/pulsar/src/main/java/io/micronaut/pulsar/schemas/JsonSchema.java

Micronaut AWS

  • https://github.com/micronaut-projects/micronaut-aws/blob/222f6025a66500d692ba1de570de8f186993df0d/function-aws-api-proxy/src/main/java/io/micronaut/function/aws/proxy/AbstractLambdaContainerHandler.java

Micronaut JMS

  • https://github.com/micronaut-projects/micronaut-jms/blob/246d25a9e2d2695a799d1d8a8b85a57b8bcb2f69/jms-core/build.gradle
  • https://github.com/micronaut-projects/micronaut-jms/blob/72b4a4366145cc1a2b20b0a9cc7cb8041c2772db/jms-core/src/main/java/io/micronaut/jms/serdes/DefaultSerializerDeserializer.java

Micronaut SQL

  • https://github.com/micronaut-projects/micronaut-sql/blob/5fda28e2392ae3bd6d30420bff76bb0046a2d2cf/jooq/src/main/java/io/micronaut/configuration/jooq/JacksonConverterProvider.java

Micronaut GraphQL

  • https://github.com/micronaut-projects/micronaut-graphql/blob/1baa6e48b1cf60037478c3e15e207583402e009b/graphql/src/main/java/io/micronaut/configuration/graphql/JacksonGraphQLJsonSerializer.java

Micronaut Kafka

  • https://github.com/micronaut-projects/micronaut-kafka/blob/66fd3b7248f76b3ee15e5a015e9289c38d3af390/kafka/src/main/java/io/micronaut/configuration/kafka/serde/JsonSerde.java

graemerocher avatar Nov 24 '21 12:11 graemerocher

  • [x] https://github.com/micronaut-projects/micronaut-problem-json/blob/29f4645bf1244c9c3079053778be3e6ab1899fb1/problem-json/src/main/java/io/micronaut/problem/conf/MixInThrowableProblem.java : This essentially "adds" an annotation to another class dynamically depending on a config value. We can't modify the target class (ThrowableProblem) because it's in a library. I see a few options:

  • support mixins in other json mappers

  • only allow this feature for jackson

  • create a custom serializer for this type if there's ever a cross-format approach to doing this

  • wrap ThrowableProblem in another class that hides these fields

The last option seems to be the least intrusive, so I'll take a look if this is feasible.

edit: done, PR: https://github.com/micronaut-projects/micronaut-problem-json/pull/69

yawkat avatar Nov 25 '21 14:11 yawkat

  • [x] micronaut-rabbitmq: still on mn 3.0.3, can't use the json abstractions introduced in 3.1.

yawkat avatar Nov 26 '21 08:11 yawkat

@yawkat have to upgrade the module at the same time

graemerocher avatar Nov 26 '21 08:11 graemerocher

  • micronaut-rabbitmq: https://github.com/micronaut-projects/micronaut-rabbitmq/pull/293
  • micronaut-mqtt: https://github.com/micronaut-projects/micronaut-mqtt/pull/108

yawkat avatar Nov 26 '21 08:11 yawkat

micronaut-nats: https://github.com/micronaut-projects/micronaut-nats/pull/192

yawkat avatar Nov 29 '21 09:11 yawkat

micronaut-liquibase: https://github.com/micronaut-projects/micronaut-liquibase/pull/205

yawkat avatar Nov 30 '21 08:11 yawkat

micronaut-pulsar: https://github.com/micronaut-projects/micronaut-pulsar/pull/141

yawkat avatar Nov 30 '21 09:11 yawkat

micronaut-jms: https://github.com/micronaut-projects/micronaut-jms/pull/188

yawkat avatar Dec 01 '21 08:12 yawkat

micronaut-sql: https://github.com/micronaut-projects/micronaut-sql/pull/516

yawkat avatar Dec 01 '21 10:12 yawkat

micronaut-graphql: https://github.com/micronaut-projects/micronaut-graphql/pull/223

yawkat avatar Dec 03 '21 14:12 yawkat

micronaut-kafka: https://github.com/micronaut-projects/micronaut-kafka/pull/444

yawkat avatar Dec 06 '21 10:12 yawkat

micronaut-security: https://github.com/micronaut-projects/micronaut-security/pull/889

yawkat avatar Jan 04 '22 15:01 yawkat

Problem has this bug https://github.com/micronaut-projects/micronaut-problem-json/issues/94

sdelamo avatar Jan 07 '22 06:01 sdelamo

Doesn’t seem like a bug

graemerocher avatar Jan 07 '22 07:01 graemerocher