From 208d93be5169e5d69347cd8f9d2775e7818d7d69 Mon Sep 17 00:00:00 2001 From: Juan Carlos Galvis Date: Mon, 12 Apr 2021 20:33:17 -0500 Subject: [PATCH] add ObjectMapper bean generation for redis, mongodb and jpa driven adapters --- README.md | 2 +- config/hooks/pre-commit | 2 +- gradle.properties | 2 +- .../java/co/com/bancolombia/Constants.java | 2 +- .../factory/adapters/DrivenAdapterJPA.java | 2 ++ .../adapters/DrivenAdapterMongoDB.java | 2 ++ .../factory/adapters/DrivenAdapterRedis.java | 2 ++ .../factory/commons/ObjectMapperFactory.java | 20 +++++++++++++++++++ .../commons/object-mapper/definition.json | 6 ++++++ .../object-mapper-config.java.mustache | 16 +++++++++++++++ .../redis-repository/build.gradle.mustache | 4 +++- .../redis-template/build.gradle.mustache | 4 +++- .../redis-repository/build.gradle.mustache | 4 +++- .../redis-template/build.gradle.mustache | 4 +++- .../appservice/build.gradle.mustache | 1 - 15 files changed, 64 insertions(+), 9 deletions(-) create mode 100644 src/main/java/co/com/bancolombia/factory/commons/ObjectMapperFactory.java create mode 100644 src/main/resources/commons/object-mapper/definition.json create mode 100644 src/main/resources/commons/object-mapper/object-mapper-config.java.mustache diff --git a/README.md b/README.md index 77b11866..d9a292cf 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ To use the plugin you need Gradle version 5.6 or later, to start add the followi ```groovy plugins { - id "co.com.bancolombia.cleanArchitecture" version "1.9.0" + id "co.com.bancolombia.cleanArchitecture" version "1.9.1" } ``` diff --git a/config/hooks/pre-commit b/config/hooks/pre-commit index 625d9620..d9429c7d 100644 --- a/config/hooks/pre-commit +++ b/config/hooks/pre-commit @@ -14,7 +14,7 @@ set -e REPO_ROOT_DIR="$(git rev-parse --show-toplevel)" -files=$((git diff --cached --name-only --diff-filter=ACMR | grep -Ei "\.java$") || true) +files=$(git diff --cached --name-only --diff-filter=ACMR | grep -Ei "\.java$" || true) if [ ! -z "${files}" ]; then comma_files=$(echo "$files" | paste -s -d "," -) "${REPO_ROOT_DIR}/gradlew" goJF -DgoogleJavaFormat.include="$comma_files" &>/dev/null diff --git a/gradle.properties b/gradle.properties index 8e3ce9bc..32cacf07 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ package=co.com.bancolombia -systemProp.version=1.9.0 +systemProp.version=1.9.1 diff --git a/src/main/java/co/com/bancolombia/Constants.java b/src/main/java/co/com/bancolombia/Constants.java index 2af0af62..0c7d7549 100644 --- a/src/main/java/co/com/bancolombia/Constants.java +++ b/src/main/java/co/com/bancolombia/Constants.java @@ -16,7 +16,7 @@ public class Constants { public static final String COBERTURA_VERSION = "3.0.0"; public static final String RCOMMONS_ASYNC_COMMONS_STARTER_VERSION = "1.0.0-beta5"; public static final String RCOMMONS_OBJECT_MAPPER_VERSION = "0.1.0"; - public static final String PLUGIN_VERSION = "1.9.0"; + public static final String PLUGIN_VERSION = "1.9.1"; public static final String TOMCAT_EXCLUSION = "compile.exclude group: \"org.springframework.boot\", module:\"spring-boot-starter-tomcat\""; diff --git a/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterJPA.java b/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterJPA.java index 8c1799a6..093e1c1f 100644 --- a/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterJPA.java +++ b/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterJPA.java @@ -3,6 +3,7 @@ import co.com.bancolombia.exceptions.CleanException; import co.com.bancolombia.factory.ModuleBuilder; import co.com.bancolombia.factory.ModuleFactory; +import co.com.bancolombia.factory.commons.ObjectMapperFactory; import java.io.IOException; public class DrivenAdapterJPA implements ModuleFactory { @@ -24,5 +25,6 @@ public void buildModule(ModuleBuilder builder) throws IOException, CleanExceptio if (builder.getBooleanParam("include-secret")) { new DrivenAdapterSecrets().buildModule(builder); } + new ObjectMapperFactory().buildModule(builder); } } diff --git a/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterMongoDB.java b/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterMongoDB.java index e94ef35a..d73efa50 100644 --- a/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterMongoDB.java +++ b/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterMongoDB.java @@ -3,6 +3,7 @@ import co.com.bancolombia.exceptions.CleanException; import co.com.bancolombia.factory.ModuleBuilder; import co.com.bancolombia.factory.ModuleFactory; +import co.com.bancolombia.factory.commons.ObjectMapperFactory; import java.io.IOException; import org.gradle.api.logging.Logger; @@ -24,5 +25,6 @@ public void buildModule(ModuleBuilder builder) throws IOException, CleanExceptio if (builder.getBooleanParam("include-secret")) { new DrivenAdapterSecrets().buildModule(builder); } + new ObjectMapperFactory().buildModule(builder); } } diff --git a/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterRedis.java b/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterRedis.java index c15dc582..0617d6d7 100644 --- a/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterRedis.java +++ b/src/main/java/co/com/bancolombia/factory/adapters/DrivenAdapterRedis.java @@ -3,6 +3,7 @@ import co.com.bancolombia.exceptions.CleanException; import co.com.bancolombia.factory.ModuleBuilder; import co.com.bancolombia.factory.ModuleFactory; +import co.com.bancolombia.factory.commons.ObjectMapperFactory; import java.io.IOException; import lombok.AllArgsConstructor; import org.gradle.api.logging.Logger; @@ -29,6 +30,7 @@ public void buildModule(ModuleBuilder builder) throws IOException, CleanExceptio if (builder.getBooleanParam("include-secret")) { new DrivenAdapterSecrets().buildModule(builder); } + new ObjectMapperFactory().buildModule(builder); } protected String getPathMode(Mode mode) { diff --git a/src/main/java/co/com/bancolombia/factory/commons/ObjectMapperFactory.java b/src/main/java/co/com/bancolombia/factory/commons/ObjectMapperFactory.java new file mode 100644 index 00000000..219ef5f2 --- /dev/null +++ b/src/main/java/co/com/bancolombia/factory/commons/ObjectMapperFactory.java @@ -0,0 +1,20 @@ +package co.com.bancolombia.factory.commons; + +import co.com.bancolombia.Constants; +import co.com.bancolombia.exceptions.CleanException; +import co.com.bancolombia.factory.ModuleBuilder; +import co.com.bancolombia.factory.ModuleFactory; +import java.io.IOException; + +public class ObjectMapperFactory implements ModuleFactory { + + @Override + public void buildModule(ModuleBuilder builder) throws IOException, CleanException { + builder.setupFromTemplate("commons/object-mapper"); + builder.appendDependencyToModule( + "app-service", + "compile 'org.reactivecommons.utils:object-mapper:" + + Constants.RCOMMONS_OBJECT_MAPPER_VERSION + + "'"); + } +} diff --git a/src/main/resources/commons/object-mapper/definition.json b/src/main/resources/commons/object-mapper/definition.json new file mode 100644 index 00000000..6f0161c2 --- /dev/null +++ b/src/main/resources/commons/object-mapper/definition.json @@ -0,0 +1,6 @@ +{ + "folders": [], + "files": { + "commons/object-mapper/object-mapper-config.java.mustache": "applications/app-service/src/main/java/{{packagePath}}/config/ObjectMapperConfig.java" + } +} diff --git a/src/main/resources/commons/object-mapper/object-mapper-config.java.mustache b/src/main/resources/commons/object-mapper/object-mapper-config.java.mustache new file mode 100644 index 00000000..55c00273 --- /dev/null +++ b/src/main/resources/commons/object-mapper/object-mapper-config.java.mustache @@ -0,0 +1,16 @@ +package {{package}}.config; + +import org.reactivecommons.utils.ObjectMapper; +import org.reactivecommons.utils.ObjectMapperImp; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class ObjectMapperConfig { + + @Bean + public ObjectMapper objectMapper() { + return new ObjectMapperImp(); + } + +} diff --git a/src/main/resources/driven-adapter/redis-reactive/redis-repository/build.gradle.mustache b/src/main/resources/driven-adapter/redis-reactive/redis-repository/build.gradle.mustache index fb5f711d..6fddd0b6 100644 --- a/src/main/resources/driven-adapter/redis-reactive/redis-repository/build.gradle.mustache +++ b/src/main/resources/driven-adapter/redis-reactive/redis-repository/build.gradle.mustache @@ -1,5 +1,7 @@ dependencies { compile project(':model') compile 'org.springframework.boot:spring-boot-starter-data-redis-reactive' - compile 'org.reactivecommons.utils:object-mapper:0.1.0' + implementation 'org.reactivecommons.utils:object-mapper-api:{{objectMapperVersion}}' + + testCompile 'org.reactivecommons.utils:object-mapper:{{objectMapperVersion}}' } diff --git a/src/main/resources/driven-adapter/redis-reactive/redis-template/build.gradle.mustache b/src/main/resources/driven-adapter/redis-reactive/redis-template/build.gradle.mustache index 7c648656..e6d10632 100644 --- a/src/main/resources/driven-adapter/redis-reactive/redis-template/build.gradle.mustache +++ b/src/main/resources/driven-adapter/redis-reactive/redis-template/build.gradle.mustache @@ -2,5 +2,7 @@ dependencies { compile project(':model') compile 'org.springframework.boot:spring-boot-starter-data-redis-reactive' compile 'com.fasterxml.jackson.core:jackson-databind' - compile 'org.reactivecommons.utils:object-mapper:0.1.0' + implementation 'org.reactivecommons.utils:object-mapper-api:{{objectMapperVersion}}' + + testCompile 'org.reactivecommons.utils:object-mapper:{{objectMapperVersion}}' } diff --git a/src/main/resources/driven-adapter/redis/redis-repository/build.gradle.mustache b/src/main/resources/driven-adapter/redis/redis-repository/build.gradle.mustache index e29e2002..ee3c33ce 100644 --- a/src/main/resources/driven-adapter/redis/redis-repository/build.gradle.mustache +++ b/src/main/resources/driven-adapter/redis/redis-repository/build.gradle.mustache @@ -1,5 +1,7 @@ dependencies { compile project(':model') compile 'org.springframework.boot:spring-boot-starter-data-redis' - compile 'org.reactivecommons.utils:object-mapper:0.1.0' + implementation 'org.reactivecommons.utils:object-mapper-api:{{objectMapperVersion}}' + + testCompile 'org.reactivecommons.utils:object-mapper:{{objectMapperVersion}}' } diff --git a/src/main/resources/driven-adapter/redis/redis-template/build.gradle.mustache b/src/main/resources/driven-adapter/redis/redis-template/build.gradle.mustache index 6d3a5e56..b3dd479d 100644 --- a/src/main/resources/driven-adapter/redis/redis-template/build.gradle.mustache +++ b/src/main/resources/driven-adapter/redis/redis-template/build.gradle.mustache @@ -2,5 +2,7 @@ dependencies { compile project(':model') compile 'org.springframework.boot:spring-boot-starter-data-redis' compile 'com.fasterxml.jackson.core:jackson-databind' - compile 'org.reactivecommons.utils:object-mapper:0.1.0' + implementation 'org.reactivecommons.utils:object-mapper-api:{{objectMapperVersion}}' + + testCompile 'org.reactivecommons.utils:object-mapper:{{objectMapperVersion}}' } diff --git a/src/main/resources/structure/applications/appservice/build.gradle.mustache b/src/main/resources/structure/applications/appservice/build.gradle.mustache index b046a333..772b0be8 100644 --- a/src/main/resources/structure/applications/appservice/build.gradle.mustache +++ b/src/main/resources/structure/applications/appservice/build.gradle.mustache @@ -4,7 +4,6 @@ dependencies { implementation project(':model') implementation project(':usecase') compile 'org.springframework.boot:spring-boot-starter' - {{#reactive}}compile 'org.reactivecommons.utils:object-mapper:{{objectMapperVersion}}'{{/reactive}} runtime('org.springframework.boot:spring-boot-devtools') }