From 30af4c066823624e170c68f28162351422e0423e Mon Sep 17 00:00:00 2001 From: Gang Li Date: Wed, 14 Apr 2021 12:47:05 +0800 Subject: [PATCH] Fix EventStoreKey Serializer missing for kafka problem --- README.md | 13 +++++++++++-- docker-compose.yml | 13 ------------- .../change/event/kafka/KafkaEventUtils.java | 3 ++- .../util/jackson/IndyJacksonCustomizer.java | 1 + .../util/jackson/RepoApiSerializerModule.java | 5 +++++ src/main/resources/application.yaml | 6 +++--- 6 files changed, 22 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 3df5cc1..81b7bfa 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,17 @@ # Indy Repository Management Service Indy Repository Management Service is a single full-functional service for only indy repository management, including repository creation, updating, querying and deleting. -## Prerequisite +## Prerequisite for building 1. jdk11 2. mvn 3.6.2+ +## Prerequisite for debugging in local +1. docker 20+ +2. docker-compose 1.20+ + ## Configure +see [src/main/resources/application.yaml](./src/main/resources/application.yaml) for details ## Try it @@ -19,7 +24,11 @@ $ git clone git@github.com:Commonjava/indy-repository-service.git $ cd indy-repository-service $ mvn clean compile ``` -2. Start gateway in debug mode +2. Start depending services: +``` +$ docker-compose up +``` +2. Start in debug mode ``` $ mvn quarkus:dev ``` diff --git a/docker-compose.yml b/docker-compose.yml index 60b66bf..64d4814 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,16 +38,3 @@ services: KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - - indy_repository_service: - image: "indy-repository-service:latest" - container_name: "indy-repository-service" - build: - dockerfile: ./src/main/image/Dockerfile - context: ./ - depends_on: - - cassandra - - kafka - ports: - - "8080:8080" - restart: always diff --git a/src/main/java/org/commonjava/indy/service/repository/change/event/kafka/KafkaEventUtils.java b/src/main/java/org/commonjava/indy/service/repository/change/event/kafka/KafkaEventUtils.java index 58d9f17..121878e 100644 --- a/src/main/java/org/commonjava/indy/service/repository/change/event/kafka/KafkaEventUtils.java +++ b/src/main/java/org/commonjava/indy/service/repository/change/event/kafka/KafkaEventUtils.java @@ -49,7 +49,9 @@ public class KafkaEventUtils public void fireEvent( IndyStoreEvent event ) { + logger.trace( "Firing event to internal: {}", event ); handleEvent( internalEventEmitter, event, "Can not processing internal event." ); + logger.trace( "Firing event to external: {}", event ); handleEvent( eventEmitter, event, "Can not processing external event." ); } @@ -57,7 +59,6 @@ private void handleEvent( Emitter emitter, IndyStoreEvent event, { try { - logger.trace( "Firing event: {}", event ); emitter.send( event ); } catch ( RuntimeException e ) diff --git a/src/main/java/org/commonjava/indy/service/repository/util/jackson/IndyJacksonCustomizer.java b/src/main/java/org/commonjava/indy/service/repository/util/jackson/IndyJacksonCustomizer.java index ef610c5..59beee7 100644 --- a/src/main/java/org/commonjava/indy/service/repository/util/jackson/IndyJacksonCustomizer.java +++ b/src/main/java/org/commonjava/indy/service/repository/util/jackson/IndyJacksonCustomizer.java @@ -63,6 +63,7 @@ public void customize( ObjectMapper mapper ) mapper.disable( SerializationFeature.WRITE_NULL_MAP_VALUES, SerializationFeature.WRITE_EMPTY_JSON_ARRAYS ); mapper.disable( DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES ); +// mapper.disable( SerializationFeature.FAIL_ON_EMPTY_BEANS ); injectSingle( mapper, new RepoApiSerializerModule() ); diff --git a/src/main/java/org/commonjava/indy/service/repository/util/jackson/RepoApiSerializerModule.java b/src/main/java/org/commonjava/indy/service/repository/util/jackson/RepoApiSerializerModule.java index b10246b..7c4cb46 100644 --- a/src/main/java/org/commonjava/indy/service/repository/util/jackson/RepoApiSerializerModule.java +++ b/src/main/java/org/commonjava/indy/service/repository/util/jackson/RepoApiSerializerModule.java @@ -16,6 +16,9 @@ package org.commonjava.indy.service.repository.util.jackson; import com.fasterxml.jackson.databind.module.SimpleModule; +import org.commonjava.event.store.EventStoreKey; +import org.commonjava.event.store.jackson.EventStoreKeyDeserializer; +import org.commonjava.event.store.jackson.EventStoreKeySerializer; import org.commonjava.indy.service.repository.model.StoreKey; import javax.enterprise.context.ApplicationScoped; @@ -32,6 +35,8 @@ public RepoApiSerializerModule() super( "Indy Repository API" ); addDeserializer( StoreKey.class, new StoreKeyDeserializer() ); addSerializer( StoreKey.class, new StoreKeySerializer() ); + addDeserializer( EventStoreKey.class, new EventStoreKeyDeserializer() ); + addSerializer( EventStoreKey.class, new EventStoreKeySerializer() ); } @Override diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index ac3e7f9..185d634 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -16,7 +16,7 @@ quarkus: "org.jboss": level: WARN "org.apache.kafka": - level: ERROR + level: WARN "io.quarkus": level: WARN "io.smallrye": @@ -30,7 +30,7 @@ quarkus: "io.agroal": level: WARN "org.commonjava.indy.service": - level: INFO + level: TRACE console: enable: true file: @@ -63,7 +63,7 @@ mp: deserializer: "org.commonjava.indy.service.repository.change.event.kafka.StoreEventDeserializer" repository: - data-storage: infinispan + data-storage: cassandra # affectedGroupsExclude: ^build-\d+ # disposableStorePattern: # ssl validation configuration for remote