Skip to content

Commit 1f155f3

Browse files
authored
Fix logging initialized in annotation processor (#2452)
* Fix logging initialized in annotation processor * Correct
1 parent 7dcd950 commit 1f155f3

File tree

7 files changed

+102
-8
lines changed

7 files changed

+102
-8
lines changed

data-model/src/main/java/io/micronaut/data/model/AbstractPersistentEntity.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package io.micronaut.data.model;
1717

18+
import io.micronaut.core.annotation.Internal;
1819
import io.micronaut.core.annotation.NonNull;
1920
import io.micronaut.core.annotation.Nullable;
2021
import io.micronaut.core.annotation.AnnotationMetadata;
@@ -24,8 +25,6 @@
2425
import io.micronaut.core.reflect.InstantiationUtils;
2526
import io.micronaut.data.annotation.MappedEntity;
2627
import io.micronaut.data.model.naming.NamingStrategy;
27-
import org.slf4j.Logger;
28-
import org.slf4j.LoggerFactory;
2928

3029
import java.util.Map;
3130
import java.util.Optional;
@@ -37,10 +36,9 @@
3736
* @author graemerocher
3837
* @since 1.0.0
3938
*/
39+
@Internal
4040
public abstract class AbstractPersistentEntity implements PersistentEntity {
4141

42-
private static final Logger LOG = LoggerFactory.getLogger(AbstractPersistentEntity.class);
43-
4442
private static final Map<String, NamingStrategy> NAMING_STRATEGIES = new ConcurrentHashMap<>(3);
4543

4644
private final AnnotationMetadataProvider annotationMetadataProvider;
@@ -56,6 +54,16 @@ protected AbstractPersistentEntity(AnnotationMetadataProvider annotationMetadata
5654
this.namingStrategy = getNamingStrategy(annotationMetadataProvider.getAnnotationMetadata());
5755
}
5856

57+
/**
58+
* Log error message.
59+
*
60+
* @param message The message
61+
* @param e The exception
62+
*/
63+
protected void logDebug(String message, Exception e) {
64+
System.err.println(message + " " + e.getMessage());
65+
}
66+
5967
@NonNull
6068
@Override
6169
public String getAliasName() {
@@ -71,7 +79,7 @@ private NamingStrategy getNamingStrategy(AnnotationMetadata annotationMetadata)
7179
}
7280

7381
@NonNull
74-
private static Optional<NamingStrategy> getNamingStrategy(String className, ClassLoader classLoader) {
82+
private Optional<NamingStrategy> getNamingStrategy(String className, ClassLoader classLoader) {
7583
NamingStrategy namingStrategy = NAMING_STRATEGIES.get(className);
7684
if (namingStrategy != null) {
7785
return Optional.of(namingStrategy);
@@ -87,9 +95,7 @@ private static Optional<NamingStrategy> getNamingStrategy(String className, Clas
8795
}
8896
}
8997
} catch (Exception e) {
90-
if (LOG.isDebugEnabled()) {
91-
LOG.debug("Tried, but could not instantiate naming strategy: {}", className, e);
92-
}
98+
logDebug("Tried, but could not instantiate naming strategy: " + className, e);
9399
}
94100
Object o = InstantiationUtils.tryInstantiate(className, classLoader).orElse(null);
95101
if (o instanceof NamingStrategy ns) {

data-model/src/main/java/io/micronaut/data/model/runtime/RuntimePersistentEntity.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
import io.micronaut.data.exceptions.MappingException;
2929
import io.micronaut.data.model.*;
3030
import io.micronaut.data.model.runtime.convert.AttributeConverter;
31+
import org.slf4j.Logger;
32+
import org.slf4j.LoggerFactory;
3133

3234
import java.util.*;
3335
import java.util.stream.Collectors;
@@ -41,6 +43,8 @@
4143
*/
4244
public class RuntimePersistentEntity<T> extends AbstractPersistentEntity implements PersistentEntity {
4345

46+
private static final Logger LOG = LoggerFactory.getLogger(RuntimePersistentEntity.class);
47+
4448
private final BeanIntrospection<T> introspection;
4549
private final RuntimePersistentProperty<T>[] identity;
4650

@@ -129,6 +133,11 @@ public RuntimePersistentEntity(@NonNull BeanIntrospection<T> introspection) {
129133
this.aliasName = super.getAliasName();
130134
}
131135

136+
@Override
137+
protected void logDebug(String message, Exception e) {
138+
LOG.debug(message, e);
139+
}
140+
132141
private static EnumSet<Relation.Cascade> cascades(RuntimePersistentEntity<?> persistentEntity) {
133142
EnumSet<Relation.Cascade> cascades = EnumSet.noneOf(Relation.Cascade.class);
134143
for (RuntimeAssociation<?> association : persistentEntity.getAssociations()) {

settings.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ include 'doc-examples:hibernate-spring-tx-example-java'
123123

124124
include 'doc-examples:jooq-r2dbc-postgres'
125125

126+
include 'test-annotation-processor-java'
127+
126128
// benchmarks
127129
include 'benchmarks:benchmark-micronaut-data-jpa'
128130
include 'benchmarks:benchmark-micronaut-data-jdbc'
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
2+
plugins {
3+
id "io.micronaut.build.internal.data-tck"
4+
}
5+
6+
tasks.named("test") {
7+
useJUnitPlatform()
8+
}
9+
10+
dependencies {
11+
testImplementation projects.micronautDataProcessor
12+
testImplementation mn.micronaut.inject.java.test
13+
testImplementation libs.jupiter.api
14+
testRuntimeOnly libs.jupiter.engine
15+
}
16+
17+
configurations.configureEach {
18+
exclude group: "ch.qos.logback"
19+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
skipDocumentation=true
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
package example;
3+
4+
public class Application {
5+
6+
public static void main(String[] args) {
7+
}
8+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package example;
2+
3+
import io.micronaut.annotation.processing.test.JavaParser;
4+
import org.junit.jupiter.api.Assertions;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.io.ByteArrayOutputStream;
8+
import java.io.PrintStream;
9+
10+
class AnnotationProcessorTest {
11+
12+
@Test
13+
void testSlf4jIsNoBeingInitialized() {
14+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
15+
PrintStream ps = new PrintStream(baos);
16+
PrintStream old = System.err;
17+
System.setErr(ps);
18+
19+
try (JavaParser javaParser = new JavaParser()) {
20+
javaParser.generate("xyz.Foo", """
21+
package xyz;
22+
@io.micronaut.data.annotation.Repository
23+
interface FooRepository extends io.micronaut.data.repository.CrudRepository<Foo, Long> {
24+
}
25+
@io.micronaut.data.annotation.MappedEntity
26+
class Foo {
27+
28+
@io.micronaut.data.annotation.Id
29+
private Long id;
30+
31+
public Long getId() {
32+
return id;
33+
}
34+
35+
public void setId(Long id) {
36+
this.id = id;
37+
}
38+
39+
}
40+
""");
41+
}
42+
43+
System.err.flush();
44+
System.setErr(old);
45+
46+
Assertions.assertEquals("", baos.toString());
47+
}
48+
49+
}

0 commit comments

Comments
 (0)