Skip to content

Commit 9425ee5

Browse files
authored
Update metadata for ch.qos.logback:logback-classic:1.4.1 (#248)
* Added logback metadata for logback.xml usage * Added logback metadata for logback.xml usage * Added logback metadata for logback.xml usage * Added logback metadata for logback.xml usage * Added metadata for ConsoleAppender Jansi usage
1 parent 9ff644b commit 9425ee5

File tree

9 files changed

+166
-7
lines changed

9 files changed

+166
-7
lines changed

metadata/ch.qos.logback/logback-classic/1.4.1/reflect-config.json

Lines changed: 83 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
11
[
2+
{
3+
"name": "ch.qos.logback.classic.encoder.PatternLayoutEncoder",
4+
"condition": {
5+
"typeReachable": "ch.qos.logback.core.model.processor.ImplicitModelHandler"
6+
},
7+
"methods": [
8+
{
9+
"name": "<init>",
10+
"parameterTypes": []
11+
}
12+
]
13+
},
214
{
315
"name": "ch.qos.logback.classic.pattern.CallerDataConverter",
416
"condition": {
@@ -110,7 +122,7 @@
110122
{
111123
"name": "ch.qos.logback.classic.pattern.LineSeparatorConverter",
112124
"condition": {
113-
"typeReachable": "ch.qos.logback.core.util.OptionHelper"
125+
"typeReachable": "ch.qos.logback.core.pattern.parser.Compiler"
114126
},
115127
"methods": [
116128
{
@@ -170,7 +182,7 @@
170182
{
171183
"name": "ch.qos.logback.classic.pattern.MessageConverter",
172184
"condition": {
173-
"typeReachable": "ch.qos.logback.core.util.OptionHelper"
185+
"typeReachable": "ch.qos.logback.core.pattern.parser.Compiler"
174186
},
175187
"methods": [
176188
{
@@ -311,6 +323,61 @@
311323
}
312324
]
313325
},
326+
{
327+
"name": "ch.qos.logback.core.ConsoleAppender",
328+
"condition": {
329+
"typeReachable": "ch.qos.logback.core.model.processor.AppenderModelHandler"
330+
},
331+
"methods": [
332+
{
333+
"name": "<init>",
334+
"parameterTypes": []
335+
}
336+
]
337+
},
338+
{
339+
"name": "ch.qos.logback.core.ConsoleAppender",
340+
"condition": {
341+
"typeReachable": "ch.qos.logback.core.util.OptionHelper"
342+
},
343+
"queryAllPublicMethods": true,
344+
"methods": [
345+
{
346+
"name": "setWithJansi",
347+
"parameterTypes": [
348+
"boolean"
349+
]
350+
}
351+
]
352+
},
353+
{
354+
"name": "ch.qos.logback.core.OutputStreamAppender",
355+
"condition": {
356+
"typeReachable": "ch.qos.logback.core.joran.util.PropertySetter"
357+
},
358+
"methods": [
359+
{
360+
"name": "setEncoder",
361+
"parameterTypes": [
362+
"ch.qos.logback.core.encoder.Encoder"
363+
]
364+
}
365+
]
366+
},
367+
{
368+
"name": "ch.qos.logback.core.encoder.LayoutWrappingEncoder",
369+
"condition": {
370+
"typeReachable": "ch.qos.logback.core.joran.util.PropertySetter"
371+
},
372+
"methods": [
373+
{
374+
"name": "setParent",
375+
"parameterTypes": [
376+
"ch.qos.logback.core.spi.ContextAware"
377+
]
378+
}
379+
]
380+
},
314381
{
315382
"name": "ch.qos.logback.core.pattern.IdentityCompositeConverter",
316383
"condition": {
@@ -323,6 +390,20 @@
323390
}
324391
]
325392
},
393+
{
394+
"name": "ch.qos.logback.core.pattern.PatternLayoutEncoderBase",
395+
"condition": {
396+
"typeReachable": "ch.qos.logback.core.model.processor.ImplicitModelHandler"
397+
},
398+
"methods": [
399+
{
400+
"name": "setPattern",
401+
"parameterTypes": [
402+
"java.lang.String"
403+
]
404+
}
405+
]
406+
},
326407
{
327408
"name": "ch.qos.logback.core.pattern.ReplacingCompositeConverter",
328409
"condition": {

metadata/ch.qos.logback/logback-classic/1.4.1/resource-config.json

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
{
2-
"bundles": [],
32
"resources": {
43
"includes": [
54
{
@@ -14,12 +13,20 @@
1413
"typeReachable": "org.slf4j.LoggerFactory"
1514
}
1615
},
16+
{
17+
"pattern": "\\Qlogback.xml\\E",
18+
"condition": {
19+
"typeReachable": "ch.qos.logback.core.util.Loader"
20+
}
21+
},
1722
{
1823
"pattern": "\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E",
1924
"condition": {
2025
"typeReachable": "org.slf4j.LoggerFactory"
2126
}
2227
}
2328
]
24-
}
29+
},
30+
"bundles": [
31+
]
2532
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
The metadata has been generated by executing the following script:
2+
3+
```bash
4+
./generate-metadata.sh
5+
```
6+
7+
The generated metadata can be found in the `build/native/agent-output/test` directory.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"rules": [
3+
{
4+
"excludeClasses": ".**"
5+
},
6+
{
7+
"includeClasses": "ch.qos.logback.**"
8+
}
9+
]
10+
}

tests/src/ch.qos.logback/logback-classic/1.4.1/build.gradle

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,17 @@ dependencies {
1515
testImplementation 'org.assertj:assertj-core:3.22.0'
1616
}
1717

18+
task updateGeneratedMetadata {
19+
doLast {
20+
final ant = new groovy.ant.AntBuilder()
21+
final metadataDir = project.projectDir.toString() + "/build/native/agent-output/test"
22+
// replace typeReachable value for entries generated by LogbackTests test class
23+
ant.replace(file: metadataDir + "/reflect-config.json",
24+
token: "org.graalvm.logback.LogbackTests",
25+
value: "ch.qos.logback.core.util.OptionHelper")
26+
}
27+
}
28+
1829
graalvmNative {
1930
binaries {
2031
test {
@@ -28,5 +39,6 @@ graalvmNative {
2839
userCodeFilterPath = "user-code-filter.json"
2940
}
3041
}
42+
accessFilterFiles.from("access-filter.json")
3143
}
3244
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env bash
2+
3+
./gradlew clean
4+
./gradlew test --tests "org.graalvm.logback.LogbackTests" -Pagent
5+
./gradlew updateGeneratedMetadata

tests/src/ch.qos.logback/logback-classic/1.4.1/src/test/java/org/graalvm/logback/LogbackTests.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
1818
import ch.qos.logback.classic.spi.ILoggingEvent;
1919
import ch.qos.logback.core.ConsoleAppender;
20+
import ch.qos.logback.core.joran.util.PropertySetter;
21+
import ch.qos.logback.core.joran.util.beans.BeanDescriptionCache;
2022
import org.junit.jupiter.api.AfterEach;
2123
import org.junit.jupiter.api.BeforeEach;
2224
import org.junit.jupiter.api.Test;
@@ -44,6 +46,27 @@ public void setUp() {
4446
System.setOut(new PrintStream(this.outputStreamCaptor));
4547
}
4648

49+
@Test
50+
void debugMessageLoggedViaExternalConfig() {
51+
Logger logger = context.getLogger(Logger.ROOT_LOGGER_NAME);
52+
logger.debug("test message");
53+
assertThat(outputStreamCaptor.toString()).isEqualTo("test message\n");
54+
}
55+
56+
@Test
57+
void traceMessageSkippedViaExternalConfig() {
58+
Logger logger = context.getLogger(Logger.ROOT_LOGGER_NAME);
59+
logger.trace("test message");
60+
assertThat(outputStreamCaptor.toString()).isBlank();
61+
}
62+
63+
@Test
64+
void consoleAppenderPropertySetter() {
65+
ConsoleAppender consoleAppender = new ConsoleAppender();
66+
PropertySetter propertySetter = new PropertySetter(new BeanDescriptionCache(null), consoleAppender);
67+
propertySetter.setProperty("withJansi", "true");
68+
assertThat(consoleAppender.isWithJansi()).isTrue();
69+
}
4770

4871
@ParameterizedTest
4972
@MethodSource("converterSource")
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
4+
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
5+
<encoder>
6+
<pattern>%msg%n</pattern>
7+
</encoder>
8+
</appender>
9+
10+
<root level="DEBUG">
11+
<appender-ref ref="STDOUT" />
12+
</root>
13+
14+
</configuration>
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
22
"rules": [
33
{
4-
"excludeClasses": "**"
4+
"includeClasses": "ch.qos.logback.**"
55
},
66
{
7-
"includeClasses": "ch.qos.logback.**"
7+
"includeClasses": "org.slf4j.LoggerFactory"
88
},
99
{
10-
"includeClasses": "org.slf4j.**"
10+
"includeClasses": "org.graalvm.logback.LogbackTests"
1111
}
1212
]
1313
}

0 commit comments

Comments
 (0)