full error
Invalid type definition for type `com.xenoterracide.brix.configloader.spi.RawFileConfiguration`: Argument #0 has no property name, is not Injectable: can not use as Creator [constructor for com.xenoterracide.brix.configloader.spi.RawFileConfiguration, annotations: {interface com.fasterxml.jackson.annotation.JsonCreator=@com.fasterxml.jackson.annotation.JsonCreator(mode=DEFAULT)}]
at [Source: (File); line: 1, column: 1]
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Invalid type definition for type `com.xenoterracide.brix.configloader.spi.RawFileConfiguration`: Argument #0 has no property name, is not Injectable: can not use as Creator [constructor for com.xenoterracide.brix.configloader.spi.RawFileConfiguration, annotations: {interface com.fasterxml.jackson.annotation.JsonCreator=@com.fasterxml.jackson.annotation.JsonCreator(mode=DEFAULT)}]
at [Source: (File); line: 1, column: 1]
if I'm reading it write, javap
is telling me that the class does have named parameters
com.xenoterracide.brix.configloader.spi.RawFileConfiguration(java.util.Map<java.lang.String, java.lang.String>, java.lang.Boolean, java.lang.String, java.lang.String);
descriptor: (Ljava/util/Map;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=5
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: aload_0
5: aload_1
6: invokestatic #2 // InterfaceMethod java/util/Map.of:()Ljava/util/Map;
9: invokestatic #3 // Method java/util/Objects.requireNonNullElse:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
12: checkcast #4 // class java/util/Map
15: putfield #5 // Field context:Ljava/util/Map;
18: aload_0
19: aload_2
20: putfield #6 // Field overwrite:Ljava/lang/Boolean;
23: aload_0
24: aload_3
25: putfield #7 // Field source:Ljava/lang/String;
28: aload_0
29: aload 4
31: putfield #8 // Field destination:Ljava/lang/String;
34: return
LineNumberTable:
line 33: 0
line 34: 4
line 35: 18
line 36: 23
line 37: 28
line 38: 34
LocalVariableTable:
Start Length Slot Name Signature
0 35 0 this Lcom/xenoterracide/brix/configloader/spi/RawFileConfiguration;
0 35 1 context Ljava/util/Map;
0 35 2 overwrite Ljava/lang/Boolean;
0 35 3 source Ljava/lang/String;
0 35 4 destination Ljava/lang/String;
LocalVariableTypeTable:
Start Length Slot Name Signature
0 35 1 context Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
MethodParameters:
Name Flags
context
overwrite
source
destination
Signature: #34 // (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;)V
RuntimeVisibleAnnotations:
0: #36()
com.fasterxml.jackson.annotation.JsonCreator
RuntimeVisibleTypeAnnotations:
0: #21(): METHOD_FORMAL_PARAMETER, param_index=1
org.checkerframework.checker.nullness.qual.Nullable
1: #21(): METHOD_FORMAL_PARAMETER, param_index=2
org.checkerframework.checker.nullness.qual.Nullable
this is my gradle configuration
tasks.withType<JavaCompile>().configureEach {
options.compilerArgs.addAll(
listOf(
"-parameters",
"-Xlint:deprecation",
"-Xlint:unchecked"
)
)
and the --debug
output
2021-05-12T21:02:29.834-0500 [INFO] [org.gradle.jvm.toolchain.internal.DefaultToolchainJavaCompiler] Compiling with toolchain '/home/xeno/.local/share/sdkman/candidates/java/11.0.10.hs-adpt'.
2021-05-12T21:02:29.834-0500 [DEBUG] [org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler] Compiler arguments: --release 11 -d /home/xeno/IdeaProjects/brix/config-loader/yaml/build/classes/java/test -h /home/xeno/IdeaProjects/brix/config-loader/yaml/build/generated/sources/headers/java/test -g -sourcepath -proc:none -s /home/xeno/IdeaProjects/brix/config-loader/yaml/build/generated/sources/annotationProcessor/java/test -XDuseUnsharedTable=true -classpath /home/xeno/IdeaProjects/brix/config-loader/yaml/build/classes/java/testFixtures:/home/xeno/IdeaProjects/brix/config-loader/yaml/build/classes/java/main:/home/xeno/IdeaProjects/brix/config-loader/api/build/classes/java/main:/home/xeno/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.13.3/ec1508160b93d274b1add34419b897bae84c6ca9/log4j-api-2.13.3.jar:/home/xeno/IdeaProjects/brix/config-loader/spi/build/classes/java/main:/home/xeno/IdeaProjects/brix/cli/api/build/classes/java/main:/home/xeno/IdeaProjects/brix/cli/api/build/classes/java/testFixtures:/home/xeno/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.11/68e9a6adf7cf8eb7e9d31bbc554c7c75eeaac568/commons-lang3-3.11.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.8.0/92999e26e6534606b5678014e66948286298a35c/commons-io-2.8.0.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.apache.tika/tika-core/1.26/9715ed7afac774b2de2e6689d16d1639c29eaf5a/tika-core-1.26.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/io.vavr/vavr/0.10.3/d2feb2bba9bfbfd043c4a25b0a14d568d18a61e3/vavr-0.10.3.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.11.4/ba01014ab0228449be401975b1a7af2f3cdaf1d7/jackson-dataformat-yaml-2.11.4.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.11.4/5d9f3d441f99d721b957e3497f0a6465c764fad4/jackson-databind-2.11.4.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.11.4/593f7b18bab07a76767f181e2a2336135ce82cc4/jackson-core-2.11.4.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test-autoconfigure/2.4.5/b90b78690bed25eb742f20c8584ce67e21b3a3f5/spring-boot-test-autoconfigure-2.4.5.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test/2.4.5/5bf8d6e7dfd30e43c04c7b1980cead057cdf7267/spring-boot-test-2.4.5.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/2.4.5/32887531b5a125d4840a08f9610aec766de73606/spring-boot-autoconfigure-2.4.5.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/2.4.5/d9b82470df2e9549e448d7cef39e578d91f9867f/spring-boot-2.4.5.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/5.3.6/d99d3931528309a4ff49b7d18f76f1657aa16c52/spring-context-5.3.6.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/3.13.0/e29afc6adb63a39286d38dc0e00d164117c02f0d/checker-qual-3.13.0.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-api/5.7.1/a7261dff44e64aea7f621842eac5977fd6d2412d/junit-jupiter-api-5.7.1.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-commons/1.7.1/7c49f0074842d07f4335de2389d624a7437d1407/junit-platform-commons-1.7.1.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-params/5.7.1/6f81b3c053433a8a40a378d2b4f056c5c31e50ff/junit-jupiter-params-5.7.1.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-core/3.18.1/aaa02680dd92a568a4278bb40aa4a6305f632ec0/assertj-core-3.18.1.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/5.3.6/510d9afcfce1fa9a2086906ab87b9989973c251c/spring-aop-5.3.6.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/5.3.6/99cc944fb3454410b47fc98d4b148a6205bfe8f6/spring-beans-5.3.6.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/5.3.6/33ba1d8dfaab0fd60ce4213a206f5d4fc77ce27a/spring-expression-5.3.6.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.3.6/8f91f60f628075701fde72bb5a43a33feeb27e93/spring-core-5.3.6.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.11.4/2c3f5c079330f3a01726686a078979420f547ae4/jackson-annotations-2.11.4.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/5.3.6/53ddfc5cfdf438a1d3346fc2912c3e3049a8cb76/spring-jcl-5.3.6.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.apiguardian/apiguardian-api/1.1.0/fc9dff4bb36d627bdc553de77e1f17efd790876c/apiguardian-api-1.1.0.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.opentest4j/opentest4j/1.2.0/28c11eb91f9b6d8e200631d46e20a7f407f2a046/opentest4j-1.2.0.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/io.vavr/vavr-match/0.10.3/e0c0e10adee0204f71aa6d83a7c2547a5c8c9573/vavr-match-0.10.3.jar:/home/xeno/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.27/359d62567480b07a679dc643f82fc926b100eed5/snakeyaml-1.27.jar -parameters -Xlint:deprecation -Xlint:unchecked /home/xeno/IdeaProjects/brix/config-loader/yaml/src/test/java/com/xenoterracide/brix/configloader/yaml/RawFileConfigurationTest.java /home/xeno/IdeaProjects/brix/config-loader/yaml/src/test/java/com/xenoterracide/brix/configloader/yaml/YamlConfigLoaderTest.java
2021-05-12T21:02:29.834-0500 [INFO] [org.gradle.api.internal.tasks.compile.JdkJavaCompiler] Compiling with JDK Java compiler API.
This is how ObjectMapper
is configured
@Configuration()
class YamlConfig {
@Bean
MimeType yaml( MimeTypes mimeTypes ) throws MimeTypeException {
return mimeTypes.forName( "text/x-yaml" );
}
@Bean
ObjectMapper yamlMapper() {
return new ObjectMapper( new YAMLFactory() )
.enable( DeserializationFeature.FAIL_ON_UNRESOLVED_OBJECT_IDS )
.enable( DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES )
.enable( DeserializationFeature.WRAP_EXCEPTIONS )
.enable( DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES );
}
}
https://scans.gradle.com/s/injralardtfgu
how do I fix it so that Jackson constructor injection works?