From 2208c9f4c0194c3bab2876704a4abb52d5ef5624 Mon Sep 17 00:00:00 2001 From: JesseBrault0709 <62299747+JesseBrault0709@users.noreply.github.com> Date: Mon, 12 Jun 2023 09:36:01 +0200 Subject: [PATCH] Updated Slf4j, and ModelCollectionTests. --- .../ssg/dsl/ModelCollection.groovy | 23 +++++++++++++--- .../ssg/dsl/ModelCollectionTests.groovy | 26 +++++++++++++++++++ buildSrc/src/main/groovy/ssg.common.gradle | 16 ++++++------ cli/build.gradle | 8 +++--- 4 files changed, 58 insertions(+), 15 deletions(-) create mode 100644 api/src/test/groovy/com/jessebrault/ssg/dsl/ModelCollectionTests.groovy diff --git a/api/src/main/groovy/com/jessebrault/ssg/dsl/ModelCollection.groovy b/api/src/main/groovy/com/jessebrault/ssg/dsl/ModelCollection.groovy index 6e7f6e7..2a6987f 100644 --- a/api/src/main/groovy/com/jessebrault/ssg/dsl/ModelCollection.groovy +++ b/api/src/main/groovy/com/jessebrault/ssg/dsl/ModelCollection.groovy @@ -4,6 +4,10 @@ import com.jessebrault.ssg.model.Model import groovy.transform.EqualsAndHashCode import groovy.transform.NullCheck import org.jetbrains.annotations.Nullable +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.slf4j.Marker +import org.slf4j.MarkerFactory import java.util.function.Predicate @@ -11,6 +15,10 @@ import java.util.function.Predicate @EqualsAndHashCode(includeFields = true) final class ModelCollection { + private static final Logger logger = LoggerFactory.getLogger(ModelCollection) + private static final Marker enter = MarkerFactory.getMarker('ENTER') + private static final Marker exit = MarkerFactory.getMarker('EXIT') + @Delegate private final Collection> models = [] @@ -36,11 +44,20 @@ final class ModelCollection { Optional.ofNullable(this.getByNameAndType(name, type)) } - def ModelCollection findAllByType(Class type) { + def ModelCollection findAllByType(Class type) { + logger.trace(enter, 'type: {}', type) def es = this.models.findResults { - type.isAssignableFrom(it.get().class) ? it as Model : null + def itType = it.get().class + def itResult = type.isAssignableFrom(itType) + logger.debug( + 'it: {}, itType: {}, itType.classLoader: {}, itResult: {}', + it, itType, itType.classLoader, itResult + ) + itResult ? it as Model : null } - new ModelCollection<>(es) + def result = new ModelCollection<>(es) + logger.trace(exit, 'result: {}', result) + result } def Optional> findOne(Class type, Predicate filter) { diff --git a/api/src/test/groovy/com/jessebrault/ssg/dsl/ModelCollectionTests.groovy b/api/src/test/groovy/com/jessebrault/ssg/dsl/ModelCollectionTests.groovy new file mode 100644 index 0000000..eb5b42d --- /dev/null +++ b/api/src/test/groovy/com/jessebrault/ssg/dsl/ModelCollectionTests.groovy @@ -0,0 +1,26 @@ +package com.jessebrault.ssg.dsl + +import com.jessebrault.ssg.model.Models +import org.junit.jupiter.api.Test + +import static org.junit.jupiter.api.Assertions.assertEquals + +final class ModelCollectionTests { + + interface Message {} + + static final class TextMessage implements Message {} + + static final class MailMessage implements Message {} + + @Test + void findAllByType() { + def textModel = Models.of('text', new TextMessage()) + def mailModel = Models.of('mail', new MailMessage()) + def models = new ModelCollection([textModel, mailModel]) + assertEquals(2, models.findAllByType(Message).size()) + assertEquals(1, models.findAllByType(TextMessage).size()) + assertEquals(1, models.findAllByType(MailMessage).size()) + } + +} diff --git a/buildSrc/src/main/groovy/ssg.common.gradle b/buildSrc/src/main/groovy/ssg.common.gradle index 3e39049..0ef9e83 100644 --- a/buildSrc/src/main/groovy/ssg.common.gradle +++ b/buildSrc/src/main/groovy/ssg.common.gradle @@ -23,9 +23,9 @@ dependencies { * Logging */ // https://mvnrepository.com/artifact/org.slf4j/slf4j-api - api 'org.slf4j:slf4j-api:1.7.36' + api 'org.slf4j:slf4j-api:2.0.7' - testFixturesApi 'org.slf4j:slf4j-api:1.7.36' + testFixturesApi 'org.slf4j:slf4j-api:2.0.7' /** * TESTING @@ -48,17 +48,17 @@ dependencies { /** * Test Logging */ - // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl - testRuntimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0' + // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j2-impl + testRuntimeOnly 'org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0' // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core - testRuntimeOnly 'org.apache.logging.log4j:log4j-core:2.19.0' + testRuntimeOnly 'org.apache.logging.log4j:log4j-core:2.20.0' - // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl - testFixturesRuntimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0' + // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j2-impl + testFixturesRuntimeOnly 'org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0' // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core - testFixturesRuntimeOnly 'org.apache.logging.log4j:log4j-core:2.19.0' + testFixturesRuntimeOnly 'org.apache.logging.log4j:log4j-core:2.20.0' } test { diff --git a/cli/build.gradle b/cli/build.gradle index 54e7a03..b8ede26 100644 --- a/cli/build.gradle +++ b/cli/build.gradle @@ -17,13 +17,13 @@ dependencies { * Logging */ // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api - implementation 'org.apache.logging.log4j:log4j-api:2.19.0' + implementation 'org.apache.logging.log4j:log4j-api:2.20.0' - // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl - runtimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0' + // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j2-impl + runtimeOnly 'org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0' // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core - implementation 'org.apache.logging.log4j:log4j-core:2.19.0' + implementation 'org.apache.logging.log4j:log4j-core:2.20.0' } application {