diff --git a/layoutparser-service/layoutparser-service-server/build.gradle.kts b/layoutparser-service/layoutparser-service-server/build.gradle.kts index 9e76495..8c5ff89 100644 --- a/layoutparser-service/layoutparser-service-server/build.gradle.kts +++ b/layoutparser-service/layoutparser-service-server/build.gradle.kts @@ -6,7 +6,7 @@ plugins { id("io.spring.dependency-management") version "1.1.0" id("org.sonarqube") version "4.2.1.3168" id("io.freefair.lombok") version "8.1.0" - id ("org.graalvm.buildtools.native") version "0.9.23" + //id("org.graalvm.buildtools.native") version "0.9.23" } dependencies { @@ -38,7 +38,7 @@ description = "layoutparser-service-server" java { withJavadocJar() } - +/* // AOT seems to be the name of the generated classes for native images // They are added as a SourceSet, and therefore checkstyle and pmd try to run on it tasks.named("checkstyleAot") { @@ -54,6 +54,27 @@ tasks.named("pmdAotTest") { enabled = false } +graalvmNative { + binaries { + all { + resources.autodetect() + buildArgs.add("--verbose") + buildArgs.add("--add-opens=java.base/java.nio=ALL-UNNAMED") + buildArgs.add("--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED") + buildArgs.add("--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED") + buildArgs.add("--trace-class-initialization=ch.qos.logback.classic.Logger") + buildArgs.add("--trace-object-instantiation=ch.qos.logback.core.AsyncAppenderBase\$Worker") + buildArgs.add("--initialize-at-build-time=org.slf4j.LoggerFactory,ch.qos.logback") + buildArgs.add("--initialize-at-run-time=io.netty") + } + + } +} + +nativeBuild { + buildArgs("-H:ReflectionConfigurationFiles=../../../src/main/resources/reflection-config.json") +} +*/ tasks.named("bootBuildImage") { imageName.set("nexus.knecon.com:5001/ff/${project.name}:${project.version}") if (project.hasProperty("buildbootDockerHostNetwork")) { diff --git a/layoutparser-service/layoutparser-service-server/src/main/resources/reflection-config.json b/layoutparser-service/layoutparser-service-server/src/main/resources/reflection-config.json new file mode 100644 index 0000000..15a1a7b --- /dev/null +++ b/layoutparser-service/layoutparser-service-server/src/main/resources/reflection-config.json @@ -0,0 +1,112 @@ +[ + { + "name": "ch.qos.logback.classic.AsyncAppender", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredFields": true, + "allPublicFields": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "ch.qos.logback.classic.encoder.PatternLayoutEncoder", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredFields": true, + "allPublicFields": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "ch.qos.logback.classic.pattern.DateConverter", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredFields": true, + "allPublicFields": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "ch.qos.logback.classic.pattern.LevelConverter", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredFields": true, + "allPublicFields": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "ch.qos.logback.classic.pattern.LineSeparatorConverter", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredFields": true, + "allPublicFields": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "ch.qos.logback.classic.pattern.LoggerConverter", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredFields": true, + "allPublicFields": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "ch.qos.logback.classic.pattern.MessageConverter", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredFields": true, + "allPublicFields": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "ch.qos.logback.classic.pattern.ThreadConverter", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredFields": true, + "allPublicFields": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "ch.qos.logback.core.ConsoleAppender", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredFields": true, + "allPublicFields": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "ch.qos.logback.core.FileAppender", + "allDeclaredConstructors": true, + "allPublicConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredFields": true, + "allPublicFields": true, + "allDeclaredClasses": true, + "allPublicClasses": true + } +]