Code Monkey home page Code Monkey logo

variantstore-service's Introduction

Variantstore

Varianstore CI release License: MIT

Introduction

The Variantstore is a Java/Groovy-based service application implemented using the Micronaut framework and enables storage and access to information on genomic variants and metadata from a connected database via a RESTful API.

Features

  • Import variants as Variant Call Format (VCF) files, annotated using SnpEff or VEP
  • Import metadata in JSON together with variants (see Usage for details)
  • Import gene information (Ensembl, GFF3 files)
  • Support for MariaDB and PostgreSQL backend
  • Query information on variants, genes, and cases via (secured) REST endpoints
  • Ask Beacon endpoint if a specific variant exists in the store
  • Export variants in Variant Call Format (VCF) and FHIR

Full Documentation

See Documentation for the full detailed installation, run and configuration instructions.

Detailed documentation of the RESTful API is additionally available on SwaggerHub.

Database

In the current version, the Variantstore service can be used with a MariaDB and PostgreSQL database. If you want to use a different DBMS, you have to provide an implementation for the VariantstoreStorage interface, make sure to use the same database model and set up the datasource accordingly in the application.yml.

Contributions and Support

If you would like to contribute to this pipeline or, please see the contributing guidelines.

For further information or help, don't hesitate to get in touch with us via mail or Twitter.

Credits

The Variantstore was created within the DIFUTURE (Data Integration for Future Medicine) Consortium.

This service was designed and implemented by Christopher Mohr. For a full list of authors, please refer to the file AUTHORS.

variantstore-service's People

Contributors

christopher-mohr avatar wow-such-code avatar zethson avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

muellerdo

variantstore-service's Issues

Enable export of variants as VCF

Add functionality in order to provide variants as VCF file (in addition to JSON as default) via the corresponding /variants endpoint.

Gene information upload by .gff3 fails if reference genome version in file name contains Ensembl version

If the reference genome of the provided .gff3 file is contained in the file name, this information is parsed. If the file name additionally contains the Ensembl version such as GRCh38.87 in the provided test file Homo_sapiens.GRCh38.87.chromosome.Y.gff3 the upload process fails due to a GroovyCastException.

Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '87' with class 'java.lang.String' to class 'java.lang.Integer'
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToNumber(DefaultTypeTransformation.java:172)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.continueCastOnNumber(DefaultTypeTransformation.java:282)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:243)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.castToType(ScriptBytecodeAdapter.java:615)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at life.qbic.variantstore.parser.EnsemblParser.<init>(EnsemblParser.groovy:47)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:249)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at life.qbic.variantstore.controller.GeneController.storeGenes(GeneController.groovy:123)
Mar 22 17:22:13 oncostore-db-proto start_varianstore_jar.sh: at life.qbic.variantstore.controller.$GeneControllerDefinition$$exec3.invokeInternal(Unknown Source)

The minor version should be cased to Integer.

mysql compatibility

Apparently our mariadb scheme is not perfectly compatible with mysql.

If we want any hope of automatically converting our mariadb scheme to postgresql, then this would certainly help, since just about nothing converts mariadb to postgresql directly.

I'm unfortunately pretty positive that manual conversion will be the best solution in the end...

REST Upload via Multipart-Form Body/Form URL

Heyho QBiC Team,

zurzeit muss man, zumindest soweit ich es verstanden habe bzw. wie ich
es gemacht habe, die Dateien, welche man hochladen will, innerhalb des Docker Containers kopieren bzw. in die VM, auf welcher der Variantstore läuft.

Gibt es Pläne von dem plain/text Body der POST Befehle /genes/upload und
/variants/upload auf ein Multipart-Form Body oder Form URL encoded Body zu wechseln?

Bzw. könntet ihr darauf eingehen, warum ihr euch für ein plain/text Body mit url:string Variable
entschieden habt? Weil mit den anderen beiden Bodys könnte der User einen direkten File Upload des z.b. VCF machen ohne Zugriffsrechte auf den Oncostore Container haben zu müssen.

Vielen Dank schon mal für eure Zeit!

Viele Grüße,
Dominik

Integration tests are not skipped

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/zxmzn80/IdeaProjects/oncostore-proto-project/target/generated-sources/groovy-stubs/test/life/qbic/database/MariaDBOncostoreStorageIntegrationTest.java:[19,35] error: cannot find symbol
  symbol:   class OncostoreStorage
  location: package life.qbic.oncostore.service
[ERROR] /home/zxmzn80/IdeaProjects/oncostore-proto-project/target/generated-sources/groovy-stubs/test/life/qbic/database/MariaDBOncostoreStorageIntegrationTest.java:[20,51] error: cannot find symbol
  symbol:   class OncostoreStorage
  location: package life.qbic.oncostore.service

result of

mvn clean package -DSkipITs

Decide on a license

This repository does not have a license yet. In my opinion every public repository should have a license to be safe against unwanted redistributions and to allow open source development to foster.

Gene information (.gff3) upload fails due to missing gene constructor

The upload of gene information in gff3 format currently fails due to a missing empty Gene constructor.

Mar 22 17:23:41 oncostore-db-proto start_varianstore_jar.sh: 17:23:41.201 [pool-2-thread-677] ERROR i.m.h.s.netty.RoutingInBoundHandler - Unexpected error occurred: Could not find matching constructor for: life.qbic.variantstore.model.Gene()
Mar 22 17:23:41 oncostore-db-proto start_varianstore_jar.sh: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: life.qbic.variantstore.model.Gene()
Mar 22 17:23:41 oncostore-db-proto start_varianstore_jar.sh: at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1749)
Mar 22 17:23:41 oncostore-db-proto start_varianstore_jar.sh: at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1556)
Mar 22 17:23:41 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(MetaClassConstructorSite.java:46)
Mar 22 17:23:41 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
Mar 22 17:23:41 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237)
Mar 22 17:23:41 oncostore-db-proto start_varianstore_jar.sh: at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:241)
Mar 22 17:23:41 oncostore-db-proto start_varianstore_jar.sh: at life.qbic.variantstore.parser.EnsemblParser.<init>(EnsemblParser.groovy:61)

This probably happened due to last changes before the release and should be covered by tests.

Packaging error of newest development branch

Heyho QBiC team,

when packaging the current development branch, I got the following errors during the tests.

Maybe, there is link to the following issue? #20

Here is the compile log without errors:

mudomini@misit004:~/projects/DIFUTURE/variantstore$ ./mvnw clean compile
[INFO] Scanning for projects...
Downloading from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/life/qbic/service-parent-pom/2.2.0-SNAPSHOT/maven-metadata.xml
Downloaded from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/life/qbic/service-parent-pom/2.2.0-SNAPSHOT/maven-metadata.xml (604 B at 2.5 kB/s)
Downloading from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/life/qbic/parent-pom/2.2.0-SNAPSHOT/maven-metadata.xml
Downloaded from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/life/qbic/parent-pom/2.2.0-SNAPSHOT/maven-metadata.xml (596 B at 12 kB/s)
[INFO] 
[INFO] -----------------------< life.qbic:variantstore >-----------------------
[INFO] Building variantstore 0.6-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
Downloading from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/net/minidev/json-smart/maven-metadata.xml
Downloading from nexus-releases: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-releases/net/minidev/json-smart/maven-metadata.xml
Downloading from nexus-releases: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-releases/junit/junit-dep/maven-metadata.xml
Downloading from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/junit/junit-dep/maven-metadata.xml
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ variantstore ---
[INFO] Deleting /home/mudomini/projects/DIFUTURE/variantstore/target
[INFO] 
[INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (enforce-maven) @ variantstore ---
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:addSources (default) @ variantstore ---
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:addTestSources (default) @ variantstore ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.8.3:prepare-agent (default-prepare-agent) @ variantstore ---
[INFO] argLine set to -javaagent:/home/mudomini/.m2/repository/org/jacoco/org.jacoco.agent/0.8.3/org.jacoco.agent-0.8.3-runtime.jar=destfile=/home/mudomini/projects/DIFUTURE/variantstore/target/jacoco.exec
[INFO] 
[INFO] --- properties-maven-plugin:1.0.0:set-system-properties (default) @ variantstore ---
[INFO] Set 3 system properties
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:generateStubs (default) @ variantstore ---
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/home/mudomini/.m2/repository/org/codehaus/groovy/groovy/2.5.7/groovy-2.5.7.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Using Groovy 2.5.7 to perform generateStubs.
[INFO] Generated 35 stubs.
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ variantstore ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
[INFO] skip non existing resourceDirectory /home/mudomini/projects/DIFUTURE/variantstore/src/main/webapp
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ variantstore ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 35 source files to /home/mudomini/projects/DIFUTURE/variantstore/target/classes
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:compile (default) @ variantstore ---
[INFO] Using Groovy 2.5.7 to perform compile.
Note: Generating OpenAPI Documentation
Note: Writing OpenAPI YAML to destination: file:/home/mudomini/projects/DIFUTURE/variantstore/target/classes/META-INF/swagger/variantstore-0.6.yml
Note: Writing OpenAPI View to destination: /home/mudomini/projects/DIFUTURE/variantstore/target/classes/META-INF/swagger/views/rapidoc/index.html
Note: Writing OpenAPI View to destination: /home/mudomini/projects/DIFUTURE/variantstore/target/classes/META-INF/swagger/views/swagger-ui/index.html
[INFO] Compiled 87 files.
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:removeStubs (default) @ variantstore ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.073 s
[INFO] Finished at: 2020-05-29T11:15:53+02:00
[INFO] ------------------------------------------------------------------------

Here is the packaing log with testing errors:

mudomini@misit004:~/projects/DIFUTURE/variantstore$ ./mvnw clean package
[INFO] Scanning for projects...
Downloading from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/life/qbic/service-parent-pom/2.2.0-SNAPSHOT/maven-metadata.xml
Downloaded from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/life/qbic/service-parent-pom/2.2.0-SNAPSHOT/maven-metadata.xml (604 B at 2.5 kB/s)
Downloading from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/life/qbic/parent-pom/2.2.0-SNAPSHOT/maven-metadata.xml
Downloaded from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/life/qbic/parent-pom/2.2.0-SNAPSHOT/maven-metadata.xml (596 B at 13 kB/s)
[INFO] 
[INFO] -----------------------< life.qbic:variantstore >-----------------------
[INFO] Building variantstore 0.6-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
Downloading from nexus-releases: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-releases/net/minidev/json-smart/maven-metadata.xml
Downloading from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/net/minidev/json-smart/maven-metadata.xml
Downloading from nexus-snapshots: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-snapshots/junit/junit-dep/maven-metadata.xml
Downloading from nexus-releases: https://qbic-repo.am10.uni-tuebingen.de/repository/maven-releases/junit/junit-dep/maven-metadata.xml
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ variantstore ---
[INFO] Deleting /home/mudomini/projects/DIFUTURE/variantstore/target
[INFO] 
[INFO] --- maven-enforcer-plugin:3.0.0-M2:enforce (enforce-maven) @ variantstore ---
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:addSources (default) @ variantstore ---
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:addTestSources (default) @ variantstore ---
[INFO] 
[INFO] --- jacoco-maven-plugin:0.8.3:prepare-agent (default-prepare-agent) @ variantstore ---
[INFO] argLine set to -javaagent:/home/mudomini/.m2/repository/org/jacoco/org.jacoco.agent/0.8.3/org.jacoco.agent-0.8.3-runtime.jar=destfile=/home/mudomini/projects/DIFUTURE/variantstore/target/jacoco.exec
[INFO] 
[INFO] --- properties-maven-plugin:1.0.0:set-system-properties (default) @ variantstore ---
[INFO] Set 3 system properties
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:generateStubs (default) @ variantstore ---
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/home/mudomini/.m2/repository/org/codehaus/groovy/groovy/2.5.7/groovy-2.5.7.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Using Groovy 2.5.7 to perform generateStubs.
[INFO] Generated 35 stubs.
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ variantstore ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
[INFO] skip non existing resourceDirectory /home/mudomini/projects/DIFUTURE/variantstore/src/main/webapp
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ variantstore ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 35 source files to /home/mudomini/projects/DIFUTURE/variantstore/target/classes
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:compile (default) @ variantstore ---
[INFO] Using Groovy 2.5.7 to perform compile.
Note: Generating OpenAPI Documentation
Note: Writing OpenAPI YAML to destination: file:/home/mudomini/projects/DIFUTURE/variantstore/target/classes/META-INF/swagger/variantstore-0.6.yml
Note: Writing OpenAPI View to destination: /home/mudomini/projects/DIFUTURE/variantstore/target/classes/META-INF/swagger/views/rapidoc/index.html
Note: Writing OpenAPI View to destination: /home/mudomini/projects/DIFUTURE/variantstore/target/classes/META-INF/swagger/views/swagger-ui/index.html
[INFO] Compiled 87 files.
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:removeStubs (default) @ variantstore ---
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:generateTestStubs (default) @ variantstore ---
[INFO] Using Groovy 2.5.7 to perform generateTestStubs.
[INFO] Generated 9 stubs.
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ variantstore ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 8 resources
[INFO] skip non existing resourceDirectory /home/mudomini/projects/DIFUTURE/variantstore/src/test/webapp
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ variantstore ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 9 source files to /home/mudomini/projects/DIFUTURE/variantstore/target/test-classes
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:compileTests (default) @ variantstore ---
[INFO] Using Groovy 2.5.7 to perform compileTests.
[INFO] Compiled 9 files.
[INFO] 
[INFO] --- gmavenplus-plugin:1.6.3:removeTestStubs (default) @ variantstore ---
[INFO] 
[INFO] --- maven-surefire-plugin:3.0.0-M3:test (default-test) @ variantstore ---
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running life.qbic.controller.GeneControllerSpec
11:16:08.953 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [test]
29.05.2020 11:16:13 [INFO] [GeneController] - Resource request for genes with filtering options.
29.05.2020 11:16:13 [INFO] [GeneController] - Resource request for gene: ENSG00000073146
29.05.2020 11:16:13 [INFO] [GeneController] - Resource request for gene: ENSG00000150471
29.05.2020 11:16:13 [INFO] [GeneController] - Resource request for gene: ENSG00000150499
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.066 s - in life.qbic.controller.GeneControllerSpec
[INFO] Running life.qbic.controller.VariantControllerSpec
11:16:14.025 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [test]
29.05.2020 11:16:14 [INFO] [VariantController] - Resource request for variants with filtering options.
29.05.2020 11:16:14 [INFO] [VariantController] - Resource request for variant: 04e1e278-3f46-45cc-9a50-458f76b73513
29.05.2020 11:16:14 [INFO] [VariantController] - Resource request for variant: 2f8fdbe9-12ec-4b98-9ce7-db2b6dfac780
29.05.2020 11:16:14 [INFO] [VariantController] - Resource request for variant: 2f8fdbe9-12ec-4b98-9ce7-db2b6dfac789
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.705 s - in life.qbic.controller.VariantControllerSpec
[INFO] Running life.qbic.controller.PropertyValueSpec
11:16:14.777 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [test]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.056 s - in life.qbic.controller.PropertyValueSpec
[INFO] Running life.qbic.controller.DatabaseSpec
11:16:14.834 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [test]
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.244 s - in life.qbic.controller.DatabaseSpec
[INFO] Running life.qbic.controller.CaseControllerSpec
11:16:15.085 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [test]
29.05.2020 11:16:15 [INFO] [CaseController] - Resource request for cases with filtering options.
29.05.2020 11:16:15 [INFO] [CaseController] - Resource request for case: patient1
29.05.2020 11:16:15 [INFO] [CaseController] - Resource request for case: patient2
29.05.2020 11:16:15 [INFO] [CaseController] - Resource request for case: patientX
29.05.2020 11:16:15 [INFO] [CaseController] - Resource request for cases with filtering options.
29.05.2020 11:16:15 [INFO] [CaseController] - Resource request for cases with filtering options.
29.05.2020 11:16:15 [INFO] [CaseController] - Resource request for cases with filtering options.
29.05.2020 11:16:15 [INFO] [CaseController] - Resource request for cases with filtering options.
[INFO] Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.514 s - in life.qbic.controller.CaseControllerSpec
[INFO] Running life.qbic.controller.SampleControllerSpec
11:16:15.602 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [test]
29.05.2020 11:16:15 [INFO] [SampleController] - Resource request for samples with filtering options.
29.05.2020 11:16:15 [INFO] [SampleController] - Resource request for sample: QTEST001AL
29.05.2020 11:16:15 [INFO] [SampleController] - Resource request for sample: QTEST002AT
29.05.2020 11:16:15 [INFO] [SampleController] - Resource request for sample: QTEST001XX
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.425 s - in life.qbic.controller.SampleControllerSpec
[INFO] Running life.qbic.controller.BeaconControllerSpec
11:16:16.031 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [test]
29.05.2020 11:16:16 [INFO] [BeaconController] - Beacon request for specified variant.
29.05.2020 11:16:16 [INFO] [BeaconController] - Beacon request for specified variant.
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.456 s - in life.qbic.controller.BeaconControllerSpec
[INFO] Running life.qbic.controller.SecuritySpec
11:16:16.490 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [test]
11:16:16.792 [nioEventLoopGroup-8-3] ERROR i.m.h.s.netty.RoutingInBoundHandler - Unexpected error occurred: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
	at io.micronaut.context.AbstractBeanDefinition.lambda$getValueForConstructorArgument$7(AbstractBeanDefinition.java:1060)
	at java.base/java.util.Optional.orElseThrow(Optional.java:408)
	at io.micronaut.context.AbstractBeanDefinition.getValueForConstructorArgument(AbstractBeanDefinition.java:1060)
	at life.qbic.micronaututils.auth.$AuthenticationDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.authentication.$AuthenticatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
	at io.micronaut.security.token.basicauth.$BasicAuthTokenValidatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.token.$TokenAuthenticationFetcherDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.filters.$SecurityFilterDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:623)
	at io.micronaut.web.router.AnnotatedFilterRouteBuilder.lambda$process$1(AnnotatedFilterRouteBuilder.java:107)
	at io.micronaut.web.router.DefaultFilterRoute.getFilter(DefaultFilterRoute.java:66)
	at io.micronaut.web.router.DefaultFilterRoute.match(DefaultFilterRoute.java:82)
	at io.micronaut.web.router.DefaultRouter.findFilters(DefaultRouter.java:282)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.filterPublisher(RoutingInBoundHandler.java:1550)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$prepareRouteForExecution$9(RoutingInBoundHandler.java:1095)
	at io.micronaut.web.router.DefaultUriRouteMatch$1.execute(DefaultUriRouteMatch.java:81)
	at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:122)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.handleRouteMatch(RoutingInBoundHandler.java:711)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:581)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:138)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:196)
	at io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
	at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:191)
	at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:153)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)
11:16:16.796 [nioEventLoopGroup-8-3] WARN  i.n.c.AbstractChannelHandlerContext - An exception 'io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])' [enable DEBUG level for full stacktrace] was thrown by a user handler's exceptionCaught() method while handling the following exception:
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
	at io.micronaut.context.AbstractBeanDefinition.lambda$getValueForConstructorArgument$7(AbstractBeanDefinition.java:1060)
	at java.base/java.util.Optional.orElseThrow(Optional.java:408)
	at io.micronaut.context.AbstractBeanDefinition.getValueForConstructorArgument(AbstractBeanDefinition.java:1060)
	at life.qbic.micronaututils.auth.$AuthenticationDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.authentication.$AuthenticatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
	at io.micronaut.security.token.basicauth.$BasicAuthTokenValidatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.token.$TokenAuthenticationFetcherDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.filters.$SecurityFilterDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:623)
	at io.micronaut.web.router.AnnotatedFilterRouteBuilder.lambda$process$1(AnnotatedFilterRouteBuilder.java:107)
	at io.micronaut.web.router.DefaultFilterRoute.getFilter(DefaultFilterRoute.java:66)
	at io.micronaut.web.router.DefaultFilterRoute.match(DefaultFilterRoute.java:82)
	at io.micronaut.web.router.DefaultRouter.findFilters(DefaultRouter.java:282)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.filterPublisher(RoutingInBoundHandler.java:1550)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$prepareRouteForExecution$9(RoutingInBoundHandler.java:1095)
	at io.micronaut.web.router.DefaultUriRouteMatch$1.execute(DefaultUriRouteMatch.java:81)
	at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:122)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.handleRouteMatch(RoutingInBoundHandler.java:711)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:581)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:138)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:196)
	at io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
	at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:191)
	at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:153)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)
11:16:26.773 [nioEventLoopGroup-8-5] ERROR i.m.h.s.netty.RoutingInBoundHandler - Unexpected error occurred: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
	at io.micronaut.context.AbstractBeanDefinition.lambda$getValueForConstructorArgument$7(AbstractBeanDefinition.java:1060)
	at java.base/java.util.Optional.orElseThrow(Optional.java:408)
	at io.micronaut.context.AbstractBeanDefinition.getValueForConstructorArgument(AbstractBeanDefinition.java:1060)
	at life.qbic.micronaututils.auth.$AuthenticationDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.authentication.$AuthenticatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
	at io.micronaut.security.token.basicauth.$BasicAuthTokenValidatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.token.$TokenAuthenticationFetcherDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.filters.$SecurityFilterDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:623)
	at io.micronaut.web.router.AnnotatedFilterRouteBuilder.lambda$process$1(AnnotatedFilterRouteBuilder.java:107)
	at io.micronaut.web.router.DefaultFilterRoute.getFilter(DefaultFilterRoute.java:66)
	at io.micronaut.web.router.DefaultFilterRoute.match(DefaultFilterRoute.java:82)
	at io.micronaut.web.router.DefaultRouter.findFilters(DefaultRouter.java:282)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.filterPublisher(RoutingInBoundHandler.java:1550)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$prepareRouteForExecution$9(RoutingInBoundHandler.java:1095)
	at io.micronaut.web.router.DefaultUriRouteMatch$1.execute(DefaultUriRouteMatch.java:81)
	at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:122)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.handleRouteMatch(RoutingInBoundHandler.java:711)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:581)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:138)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:196)
	at io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
	at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:191)
	at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:153)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)
11:16:26.775 [nioEventLoopGroup-8-5] WARN  i.n.c.AbstractChannelHandlerContext - An exception 'io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])' [enable DEBUG level for full stacktrace] was thrown by a user handler's exceptionCaught() method while handling the following exception:
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
	at io.micronaut.context.AbstractBeanDefinition.lambda$getValueForConstructorArgument$7(AbstractBeanDefinition.java:1060)
	at java.base/java.util.Optional.orElseThrow(Optional.java:408)
	at io.micronaut.context.AbstractBeanDefinition.getValueForConstructorArgument(AbstractBeanDefinition.java:1060)
	at life.qbic.micronaututils.auth.$AuthenticationDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.authentication.$AuthenticatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
	at io.micronaut.security.token.basicauth.$BasicAuthTokenValidatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.token.$TokenAuthenticationFetcherDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.filters.$SecurityFilterDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:623)
	at io.micronaut.web.router.AnnotatedFilterRouteBuilder.lambda$process$1(AnnotatedFilterRouteBuilder.java:107)
	at io.micronaut.web.router.DefaultFilterRoute.getFilter(DefaultFilterRoute.java:66)
	at io.micronaut.web.router.DefaultFilterRoute.match(DefaultFilterRoute.java:82)
	at io.micronaut.web.router.DefaultRouter.findFilters(DefaultRouter.java:282)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.filterPublisher(RoutingInBoundHandler.java:1550)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$prepareRouteForExecution$9(RoutingInBoundHandler.java:1095)
	at io.micronaut.web.router.DefaultUriRouteMatch$1.execute(DefaultUriRouteMatch.java:81)
	at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:122)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.handleRouteMatch(RoutingInBoundHandler.java:711)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:581)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:138)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:196)
	at io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
	at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:191)
	at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:153)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)
11:16:36.784 [nioEventLoopGroup-8-7] ERROR i.m.h.s.netty.RoutingInBoundHandler - Unexpected error occurred: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
	at io.micronaut.context.AbstractBeanDefinition.lambda$getValueForConstructorArgument$7(AbstractBeanDefinition.java:1060)
	at java.base/java.util.Optional.orElseThrow(Optional.java:408)
	at io.micronaut.context.AbstractBeanDefinition.getValueForConstructorArgument(AbstractBeanDefinition.java:1060)
	at life.qbic.micronaututils.auth.$AuthenticationDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.authentication.$AuthenticatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
	at io.micronaut.security.token.basicauth.$BasicAuthTokenValidatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.token.$TokenAuthenticationFetcherDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.filters.$SecurityFilterDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:623)
	at io.micronaut.web.router.AnnotatedFilterRouteBuilder.lambda$process$1(AnnotatedFilterRouteBuilder.java:107)
	at io.micronaut.web.router.DefaultFilterRoute.getFilter(DefaultFilterRoute.java:66)
	at io.micronaut.web.router.DefaultFilterRoute.match(DefaultFilterRoute.java:82)
	at io.micronaut.web.router.DefaultRouter.findFilters(DefaultRouter.java:282)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.filterPublisher(RoutingInBoundHandler.java:1550)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$prepareRouteForExecution$9(RoutingInBoundHandler.java:1095)
	at io.micronaut.web.router.DefaultUriRouteMatch$1.execute(DefaultUriRouteMatch.java:81)
	at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:122)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.handleRouteMatch(RoutingInBoundHandler.java:711)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:581)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:138)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:196)
	at io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
	at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:191)
	at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:153)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)
11:16:36.786 [nioEventLoopGroup-8-7] WARN  i.n.c.AbstractChannelHandlerContext - An exception 'io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])' [enable DEBUG level for full stacktrace] was thrown by a user handler's exceptionCaught() method while handling the following exception:
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
	at io.micronaut.context.AbstractBeanDefinition.lambda$getValueForConstructorArgument$7(AbstractBeanDefinition.java:1060)
	at java.base/java.util.Optional.orElseThrow(Optional.java:408)
	at io.micronaut.context.AbstractBeanDefinition.getValueForConstructorArgument(AbstractBeanDefinition.java:1060)
	at life.qbic.micronaututils.auth.$AuthenticationDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.authentication.$AuthenticatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
	at io.micronaut.security.token.basicauth.$BasicAuthTokenValidatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.token.$TokenAuthenticationFetcherDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.filters.$SecurityFilterDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:623)
	at io.micronaut.web.router.AnnotatedFilterRouteBuilder.lambda$process$1(AnnotatedFilterRouteBuilder.java:107)
	at io.micronaut.web.router.DefaultFilterRoute.getFilter(DefaultFilterRoute.java:66)
	at io.micronaut.web.router.DefaultFilterRoute.match(DefaultFilterRoute.java:82)
	at io.micronaut.web.router.DefaultRouter.findFilters(DefaultRouter.java:282)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.filterPublisher(RoutingInBoundHandler.java:1550)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$prepareRouteForExecution$9(RoutingInBoundHandler.java:1095)
	at io.micronaut.web.router.DefaultUriRouteMatch$1.execute(DefaultUriRouteMatch.java:81)
	at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:122)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.handleRouteMatch(RoutingInBoundHandler.java:711)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:581)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:138)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:196)
	at io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
	at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:191)
	at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:153)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)
11:16:46.805 [nioEventLoopGroup-8-9] ERROR i.m.h.s.netty.RoutingInBoundHandler - Unexpected error occurred: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
	at io.micronaut.context.AbstractBeanDefinition.lambda$getValueForConstructorArgument$7(AbstractBeanDefinition.java:1060)
	at java.base/java.util.Optional.orElseThrow(Optional.java:408)
	at io.micronaut.context.AbstractBeanDefinition.getValueForConstructorArgument(AbstractBeanDefinition.java:1060)
	at life.qbic.micronaututils.auth.$AuthenticationDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.authentication.$AuthenticatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
	at io.micronaut.security.token.basicauth.$BasicAuthTokenValidatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.token.$TokenAuthenticationFetcherDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.filters.$SecurityFilterDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:623)
	at io.micronaut.web.router.AnnotatedFilterRouteBuilder.lambda$process$1(AnnotatedFilterRouteBuilder.java:107)
	at io.micronaut.web.router.DefaultFilterRoute.getFilter(DefaultFilterRoute.java:66)
	at io.micronaut.web.router.DefaultFilterRoute.match(DefaultFilterRoute.java:82)
	at io.micronaut.web.router.DefaultRouter.findFilters(DefaultRouter.java:282)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.filterPublisher(RoutingInBoundHandler.java:1550)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$prepareRouteForExecution$9(RoutingInBoundHandler.java:1095)
	at io.micronaut.web.router.DefaultUriRouteMatch$1.execute(DefaultUriRouteMatch.java:81)
	at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:122)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.handleRouteMatch(RoutingInBoundHandler.java:711)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:581)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:138)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:196)
	at io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
	at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:191)
	at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:153)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)
11:16:46.806 [nioEventLoopGroup-8-9] WARN  i.n.c.AbstractChannelHandlerContext - An exception 'io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])' [enable DEBUG level for full stacktrace] was thrown by a user handler's exceptionCaught() method while handling the following exception:
io.micronaut.context.exceptions.DependencyInjectionException: Failed to inject value for parameter [config] of class: life.qbic.micronaututils.auth.Authentication

Message: Error resolving property value [userroles.config]. Property doesn't exist
Path Taken: new SecurityFilter(Collection securityRules,[Collection authenticationFetchers],RejectionHandler rejectionHandler,SecurityFilterOrderProvider securityFilterOrderProvider) --> new TokenAuthenticationFetcher([Collection tokenValidators],TokenResolver tokenResolver,ApplicationEventPublisher eventPublisher) --> new BasicAuthTokenValidator([Authenticator authenticator],TokenConfiguration tokenConfiguration) --> new Authenticator([Collection authenticationProviders]) --> new Authentication([String config])
	at io.micronaut.context.AbstractBeanDefinition.lambda$getValueForConstructorArgument$7(AbstractBeanDefinition.java:1060)
	at java.base/java.util.Optional.orElseThrow(Optional.java:408)
	at io.micronaut.context.AbstractBeanDefinition.getValueForConstructorArgument(AbstractBeanDefinition.java:1060)
	at life.qbic.micronaututils.auth.$AuthenticationDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.authentication.$AuthenticatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
	at io.micronaut.security.token.basicauth.$BasicAuthTokenValidatorDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.token.$TokenAuthenticationFetcherDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
	at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
	at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
	at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
	at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
	at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
	at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
	at io.micronaut.security.filters.$SecurityFilterDefinition.build(Unknown Source)
	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:623)
	at io.micronaut.web.router.AnnotatedFilterRouteBuilder.lambda$process$1(AnnotatedFilterRouteBuilder.java:107)
	at io.micronaut.web.router.DefaultFilterRoute.getFilter(DefaultFilterRoute.java:66)
	at io.micronaut.web.router.DefaultFilterRoute.match(DefaultFilterRoute.java:82)
	at io.micronaut.web.router.DefaultRouter.findFilters(DefaultRouter.java:282)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.filterPublisher(RoutingInBoundHandler.java:1550)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$prepareRouteForExecution$9(RoutingInBoundHandler.java:1095)
	at io.micronaut.web.router.DefaultUriRouteMatch$1.execute(DefaultUriRouteMatch.java:81)
	at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:122)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.handleRouteMatch(RoutingInBoundHandler.java:711)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:581)
	at io.micronaut.http.server.netty.RoutingInBoundHandler.channelRead0(RoutingInBoundHandler.java:138)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:196)
	at io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
	at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
	at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:191)
	at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:153)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)
[ERROR] Tests run: 4, Failures: 4, Errors: 0, Skipped: 0, Time elapsed: 40.476 s <<< FAILURE! - in life.qbic.controller.SecuritySpec
[ERROR] /cases is secured(life.qbic.controller.SecuritySpec)  Time elapsed: 10.047 s  <<< FAILURE!
org.spockframework.runtime.WrongExceptionThrownError: Expected exception of type 'io.micronaut.http.client.exceptions.HttpClientResponseException', but got 'io.micronaut.http.client.exceptions.ReadTimeoutException'
	at life.qbic.controller.SecuritySpec./cases is secured(SecuritySpec.groovy:34)
Caused by: io.micronaut.http.client.exceptions.ReadTimeoutException: Read Timeout

[ERROR] /genes is secured(life.qbic.controller.SecuritySpec)  Time elapsed: 10.011 s  <<< FAILURE!
org.spockframework.runtime.WrongExceptionThrownError: Expected exception of type 'io.micronaut.http.client.exceptions.HttpClientResponseException', but got 'io.micronaut.http.client.exceptions.ReadTimeoutException'
	at life.qbic.controller.SecuritySpec./genes is secured(SecuritySpec.groovy:43)
Caused by: io.micronaut.http.client.exceptions.ReadTimeoutException: Read Timeout

[ERROR] /samples is secured(life.qbic.controller.SecuritySpec)  Time elapsed: 10.023 s  <<< FAILURE!
org.spockframework.runtime.WrongExceptionThrownError: Expected exception of type 'io.micronaut.http.client.exceptions.HttpClientResponseException', but got 'io.micronaut.http.client.exceptions.ReadTimeoutException'
	at life.qbic.controller.SecuritySpec./samples is secured(SecuritySpec.groovy:52)
Caused by: io.micronaut.http.client.exceptions.ReadTimeoutException: Read Timeout

[ERROR] /variants is secured(life.qbic.controller.SecuritySpec)  Time elapsed: 10.018 s  <<< FAILURE!
org.spockframework.runtime.WrongExceptionThrownError: Expected exception of type 'io.micronaut.http.client.exceptions.HttpClientResponseException', but got 'io.micronaut.http.client.exceptions.ReadTimeoutException'
	at life.qbic.controller.SecuritySpec./variants is secured(SecuritySpec.groovy:61)
Caused by: io.micronaut.http.client.exceptions.ReadTimeoutException: Read Timeout

[INFO] Running life.qbic.controller.SwaggerSpec
11:16:56.988 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [test]
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.247 s - in life.qbic.controller.SwaggerSpec
[INFO] 
[INFO] Results:
[INFO] 
[ERROR] Failures: 
[ERROR]   SecuritySpec./cases is secured:34->SpecInternals.thrownImpl:63->SpecInternals.checkExceptionThrown:80 Expected exception of type 'io.micronaut.http.client.exceptions.HttpClientResponseException', but got 'io.micronaut.http.client.exceptions.ReadTimeoutException'
[ERROR]   SecuritySpec./genes is secured:43->SpecInternals.thrownImpl:63->SpecInternals.checkExceptionThrown:80 Expected exception of type 'io.micronaut.http.client.exceptions.HttpClientResponseException', but got 'io.micronaut.http.client.exceptions.ReadTimeoutException'
[ERROR]   SecuritySpec./samples is secured:52->SpecInternals.thrownImpl:63->SpecInternals.checkExceptionThrown:80 Expected exception of type 'io.micronaut.http.client.exceptions.HttpClientResponseException', but got 'io.micronaut.http.client.exceptions.ReadTimeoutException'
[ERROR]   SecuritySpec./variants is secured:61->SpecInternals.thrownImpl:63->SpecInternals.checkExceptionThrown:80 Expected exception of type 'io.micronaut.http.client.exceptions.HttpClientResponseException', but got 'io.micronaut.http.client.exceptions.ReadTimeoutException'
[INFO] 
[ERROR] Tests run: 39, Failures: 4, Errors: 0, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 59.373 s
[INFO] Finished at: 2020-05-29T11:16:57+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M3:test (default-test) on project variantstore: There are test failures.
[ERROR] 
[ERROR] Please refer to /home/mudomini/projects/DIFUTURE/variantstore/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Thanks for your time.

Cheers,
Dominik

Startup fails due to java.sql.SQLException: Too many connections

Heyho QBiC team,

when running a previously packaged jar, I got the following error message, now.

It is interesting to know that I was able to successfully run the package a few month ago.
Therefore, maybe it is related to some of the latest changes?

Additionally, I checked the process list in the database and saw some idled processes.
Maybe, there is a connection which is missing a close() ?

Here is the error log:

Building variantstore
Step 1/4 : FROM openjdk:8u171-alpine3.7
 ---> 1caad94162ef
Step 2/4 : RUN apk --no-cache add curl
 ---> Using cache
 ---> 191fd9264836
Step 3/4 : COPY target/variantstore-0.6-SNAPSHOT.jar oncostore.jar
 ---> 4d8554fd1b68
Step 4/4 : CMD java ${JAVA_OPTS} -jar oncostore.jar
 ---> Running in 0666ca9df8d8
Removing intermediate container 0666ca9df8d8
 ---> e351fe4cc663

Successfully built e351fe4cc663
Successfully tagged variantstore_variantstore:latest
WARNING: Image for service variantstore was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating variantstore_db ... done
Creating variantstore_variantstore_1 ... done
Attaching to variantstore_db, variantstore_variantstore_1
db_1            | 2020-05-29 09:10:13+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.3.23+maria~bionic started.
db_1            | 2020-05-29 09:10:14+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
db_1            | 2020-05-29 09:10:14+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.3.23+maria~bionic started.
db_1            | 2020-05-29 09:10:14+00:00 [Note] [Entrypoint]: Initializing database files
db_1            | 
db_1            | 
db_1            | PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
db_1            | To do so, start the server, then issue the following commands:
db_1            | 
db_1            | '/usr/bin/mysqladmin' -u root password 'new-password'
db_1            | '/usr/bin/mysqladmin' -u root -h  password 'new-password'
db_1            | 
db_1            | Alternatively you can run:
db_1            | '/usr/bin/mysql_secure_installation'
db_1            | 
db_1            | which will also give you the option of removing the test
db_1            | databases and anonymous user created by default.  This is
db_1            | strongly recommended for production servers.
db_1            | 
db_1            | See the MariaDB Knowledgebase at http://mariadb.com/kb or the
db_1            | MySQL manual for more instructions.
db_1            | 
db_1            | Please report any problems at http://mariadb.org/jira
db_1            | 
db_1            | The latest information about MariaDB is available at http://mariadb.org/.
db_1            | You can find additional information about the MySQL part at:
db_1            | http://dev.mysql.com
db_1            | Consider joining MariaDB's strong and vibrant community:
db_1            | https://mariadb.org/get-involved/
db_1            | 
db_1            | 2020-05-29 09:10:17+00:00 [Note] [Entrypoint]: Database files initialized
db_1            | 2020-05-29 09:10:17+00:00 [Note] [Entrypoint]: Starting temporary server
db_1            | 2020-05-29 09:10:17+00:00 [Note] [Entrypoint]: Waiting for server startup
db_1            | 2020-05-29  9:10:17 0 [Note] mysqld (mysqld 10.3.23-MariaDB-1:10.3.23+maria~bionic) starting as process 124 ...
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Using Linux native AIO
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Uses event mutexes
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Number of pools: 1
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Using SSE2 crc32 instructions
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Initializing buffer pool, total size = 256M, instances = 1, chunk size = 128M
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Completed initialization of buffer pool
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Creating shared tablespace for temporary tables
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Waiting for purge to start
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: 10.3.23 started; log sequence number 1625448; transaction id 21
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
db_1            | 2020-05-29  9:10:17 0 [Note] Plugin 'FEEDBACK' is disabled.
db_1            | 2020-05-29  9:10:17 0 [Note] InnoDB: Buffer pool(s) load completed at 200529  9:10:17
db_1            | 2020-05-29  9:10:17 0 [Warning] 'user' entry 'root@b2d024b89708' ignored in --skip-name-resolve mode.
db_1            | 2020-05-29  9:10:17 0 [Warning] 'user' entry '@b2d024b89708' ignored in --skip-name-resolve mode.
db_1            | 2020-05-29  9:10:17 0 [Warning] 'proxies_priv' entry '@% root@b2d024b89708' ignored in --skip-name-resolve mode.
db_1            | 2020-05-29  9:10:17 0 [Note] Reading of all Master_info entries succeeded
db_1            | 2020-05-29  9:10:17 0 [Note] Added new Master_info '' to hash table
db_1            | 2020-05-29  9:10:17 0 [Note] mysqld: ready for connections.
db_1            | Version: '10.3.23-MariaDB-1:10.3.23+maria~bionic'  socket: '/var/run/mysqld/mysqld.sock'  port: 0  mariadb.org binary distribution
db_1            | 2020-05-29 09:10:18+00:00 [Note] [Entrypoint]: Temporary server started.
db_1            | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
db_1            | 2020-05-29  9:10:19 10 [Warning] 'proxies_priv' entry '@% root@b2d024b89708' ignored in --skip-name-resolve mode.
db_1            | 2020-05-29 09:10:19+00:00 [Note] [Entrypoint]: Creating database oncostore
db_1            | 
db_1            | 2020-05-29 09:10:19+00:00 [Note] [Entrypoint]: /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/oncostore-init.sql
db_1            | 
db_1            | 
db_1            | 2020-05-29 09:10:19+00:00 [Note] [Entrypoint]: Stopping temporary server
db_1            | 2020-05-29  9:10:19 0 [Note] mysqld (initiated by: root[root] @ localhost []): Normal shutdown
db_1            | 2020-05-29  9:10:19 0 [Note] Event Scheduler: Purging the queue. 0 events
db_1            | 2020-05-29  9:10:19 0 [Note] InnoDB: FTS optimize thread exiting.
db_1            | 2020-05-29  9:10:19 0 [Note] InnoDB: Starting shutdown...
db_1            | 2020-05-29  9:10:19 0 [Note] InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
db_1            | 2020-05-29  9:10:19 0 [Note] InnoDB: Buffer pool(s) dump completed at 200529  9:10:19
db_1            | 2020-05-29  9:10:20 0 [Note] InnoDB: Shutdown completed; log sequence number 1860732; transaction id 128
db_1            | 2020-05-29  9:10:20 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
db_1            | 2020-05-29  9:10:20 0 [Note] mysqld: Shutdown complete
db_1            | 
db_1            | 2020-05-29 09:10:21+00:00 [Note] [Entrypoint]: Temporary server stopped
db_1            | 
db_1            | 2020-05-29 09:10:21+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.
db_1            | 
db_1            | 2020-05-29  9:10:21 0 [Note] mysqld (mysqld 10.3.23-MariaDB-1:10.3.23+maria~bionic) starting as process 1 ...
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Using Linux native AIO
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Uses event mutexes
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Number of pools: 1
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Using SSE2 crc32 instructions
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Initializing buffer pool, total size = 256M, instances = 1, chunk size = 128M
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Completed initialization of buffer pool
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Creating shared tablespace for temporary tables
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Waiting for purge to start
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: 10.3.23 started; log sequence number 1860732; transaction id 130
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
db_1            | 2020-05-29  9:10:21 0 [Note] Plugin 'FEEDBACK' is disabled.
db_1            | 2020-05-29  9:10:21 0 [Note] Server socket created on IP: '::'.
db_1            | 2020-05-29  9:10:21 0 [Warning] 'proxies_priv' entry '@% root@b2d024b89708' ignored in --skip-name-resolve mode.
db_1            | 2020-05-29  9:10:21 0 [Note] Reading of all Master_info entries succeeded
db_1            | 2020-05-29  9:10:21 0 [Note] Added new Master_info '' to hash table
db_1            | 2020-05-29  9:10:21 0 [Note] mysqld: ready for connections.
db_1            | Version: '10.3.23-MariaDB-1:10.3.23+maria~bionic'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution
db_1            | 2020-05-29  9:10:21 0 [Note] InnoDB: Buffer pool(s) load completed at 200529  9:10:21
variantstore_1  | 29.05.2020 09:10:48 [INFO] [Application] - Variantstore started.
variantstore_1  | 09:10:50.643 [main] INFO  io.micronaut.runtime.Micronaut - Startup completed in 1584ms. Server Running: http://ab91479136fc:8080
variantstore_1  | 09:11:50.366 [pool-2-thread-7] ERROR o.m.jdbc.internal.util.pool.Pool - error initializing pool connection
variantstore_1  | java.sql.SQLException: Too many connections
variantstore_1  | 	at org.mariadb.jdbc.internal.com.read.ReadInitialHandShakePacket.<init>(ReadInitialHandShakePacket.java:92)
variantstore_1  | 	at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.handleConnectionPhases(AbstractConnectProtocol.java:688)
variantstore_1  | 	at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:412)
variantstore_1  | 	at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1124)
variantstore_1  | 	at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:560)
variantstore_1  | 	at org.mariadb.jdbc.internal.util.pool.Pool.addConnection(Pool.java:218)
variantstore_1  | 	at org.mariadb.jdbc.internal.util.pool.Pool.<init>(Pool.java:127)
variantstore_1  | 	at org.mariadb.jdbc.internal.util.pool.Pools.retrievePool(Pools.java:53)
variantstore_1  | 	at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:171)
variantstore_1  | 	at org.mariadb.jdbc.Driver.connect(Driver.java:92)
variantstore_1  | 	at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:55)
variantstore_1  | 	at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355)
variantstore_1  | 	at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:115)
variantstore_1  | 	at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:665)
variantstore_1  | 	at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:544)
variantstore_1  | 	at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753)
variantstore_1  | 	at io.micronaut.management.health.indicator.jdbc.JdbcIndicator.lambda$getResult$0(JdbcIndicator.java:85)
variantstore_1  | 	at io.micronaut.core.async.publisher.AsyncSingleResultPublisher$ExecutorServiceSubscription.lambda$request$1(AsyncSingleResultPublisher.java:100)
variantstore_1  | 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
variantstore_1  | 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
variantstore_1  | 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
variantstore_1  | 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
variantstore_1  | 	at java.lang.Thread.run(Thread.java:748)

Here is the process list from the database:

MariaDB [(none)]> show processlist;
+-----+-------------+------------------+-----------+---------+------+--------------------------+------------------+----------+
| Id  | User        | Host             | db        | Command | Time | State                    | Info             | Progress |
+-----+-------------+------------------+-----------+---------+------+--------------------------+------------------+----------+
|   4 | system user |                  | NULL      | Daemon  | NULL | InnoDB purge worker      | NULL             |    0.000 |
|   2 | system user |                  | NULL      | Daemon  | NULL | InnoDB purge worker      | NULL             |    0.000 |
|   1 | system user |                  | NULL      | Daemon  | NULL | InnoDB purge coordinator | NULL             |    0.000 |
|   3 | system user |                  | NULL      | Daemon  | NULL | InnoDB purge worker      | NULL             |    0.000 |
|   5 | system user |                  | NULL      | Daemon  | NULL | InnoDB shutdown handler  | NULL             |    0.000 |
|   9 | root        | localhost        | NULL      | Query   |    0 | Init                     | show processlist |    0.000 |
|  12 | root        | 172.20.0.3:35060 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  13 | root        | 172.20.0.3:35062 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  14 | root        | 172.20.0.3:35064 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  15 | root        | 172.20.0.3:35066 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  16 | root        | 172.20.0.3:35068 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  17 | root        | 172.20.0.3:35070 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  18 | root        | 172.20.0.3:35072 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  19 | root        | 172.20.0.3:35074 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  20 | root        | 172.20.0.3:35076 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  21 | root        | 172.20.0.3:35078 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  22 | root        | 172.20.0.3:35080 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  23 | root        | 172.20.0.3:35082 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  24 | root        | 172.20.0.3:35084 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  25 | root        | 172.20.0.3:35086 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  26 | root        | 172.20.0.3:35088 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  27 | root        | 172.20.0.3:35090 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  28 | root        | 172.20.0.3:35092 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  29 | root        | 172.20.0.3:35094 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  30 | root        | 172.20.0.3:35096 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  31 | root        | 172.20.0.3:35098 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  32 | root        | 172.20.0.3:35100 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  33 | root        | 172.20.0.3:35102 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  34 | root        | 172.20.0.3:35104 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  35 | root        | 172.20.0.3:35106 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  36 | root        | 172.20.0.3:35108 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  37 | root        | 172.20.0.3:35110 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  38 | root        | 172.20.0.3:35112 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  39 | root        | 172.20.0.3:35114 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  40 | root        | 172.20.0.3:35116 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  41 | root        | 172.20.0.3:35118 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  42 | root        | 172.20.0.3:35120 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  43 | root        | 172.20.0.3:35122 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  44 | root        | 172.20.0.3:35124 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  45 | root        | 172.20.0.3:35126 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  46 | root        | 172.20.0.3:35128 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  47 | root        | 172.20.0.3:35130 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  48 | root        | 172.20.0.3:35132 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  49 | root        | 172.20.0.3:35134 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  50 | root        | 172.20.0.3:35136 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  51 | root        | 172.20.0.3:35138 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  52 | root        | 172.20.0.3:35140 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  53 | root        | 172.20.0.3:35142 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  54 | root        | 172.20.0.3:35144 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  55 | root        | 172.20.0.3:35146 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  56 | root        | 172.20.0.3:35148 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  57 | root        | 172.20.0.3:35150 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  58 | root        | 172.20.0.3:35152 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  59 | root        | 172.20.0.3:35154 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  60 | root        | 172.20.0.3:35156 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  61 | root        | 172.20.0.3:35158 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  62 | root        | 172.20.0.3:35160 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  63 | root        | 172.20.0.3:35162 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  64 | root        | 172.20.0.3:35164 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  65 | root        | 172.20.0.3:35166 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  66 | root        | 172.20.0.3:35168 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  67 | root        | 172.20.0.3:35170 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  68 | root        | 172.20.0.3:35172 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  69 | root        | 172.20.0.3:35174 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  70 | root        | 172.20.0.3:35176 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  71 | root        | 172.20.0.3:35178 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  72 | root        | 172.20.0.3:35180 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  73 | root        | 172.20.0.3:35182 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  74 | root        | 172.20.0.3:35184 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  75 | root        | 172.20.0.3:35186 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  76 | root        | 172.20.0.3:35188 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  77 | root        | 172.20.0.3:35190 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  78 | root        | 172.20.0.3:35192 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  79 | root        | 172.20.0.3:35194 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  80 | root        | 172.20.0.3:35196 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  81 | root        | 172.20.0.3:35198 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  82 | root        | 172.20.0.3:35200 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  83 | root        | 172.20.0.3:35202 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  84 | root        | 172.20.0.3:35204 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  85 | root        | 172.20.0.3:35206 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  86 | root        | 172.20.0.3:35208 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  87 | root        | 172.20.0.3:35210 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  88 | root        | 172.20.0.3:35212 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  89 | root        | 172.20.0.3:35214 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  90 | root        | 172.20.0.3:35216 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  91 | root        | 172.20.0.3:35218 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  92 | root        | 172.20.0.3:35220 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  93 | root        | 172.20.0.3:35222 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  94 | root        | 172.20.0.3:35224 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  95 | root        | 172.20.0.3:35226 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  96 | root        | 172.20.0.3:35228 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  97 | root        | 172.20.0.3:35230 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  98 | root        | 172.20.0.3:35232 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
|  99 | root        | 172.20.0.3:35234 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 100 | root        | 172.20.0.3:35236 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 101 | root        | 172.20.0.3:35238 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 102 | root        | 172.20.0.3:35240 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 103 | root        | 172.20.0.3:35242 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 104 | root        | 172.20.0.3:35244 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 105 | root        | 172.20.0.3:35246 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 106 | root        | 172.20.0.3:35248 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 107 | root        | 172.20.0.3:35250 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 108 | root        | 172.20.0.3:35252 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 109 | root        | 172.20.0.3:35254 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 110 | root        | 172.20.0.3:35256 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
| 111 | root        | 172.20.0.3:35258 | oncostore | Sleep   |   18 |                          | NULL             |    0.000 |
+-----+-------------+------------------+-----------+---------+------+--------------------------+------------------+----------+
106 rows in set (0.001 sec)

Thanks for your time.

Cheers,
Dominik

Maven clean package - Error in Packaging Tests

Heyho,

when running './mvnw clean compile' everything works fine.
However, when running './mvnw clean package', I obtained the following bug.

Seems like some tests are not working:

[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running life.qbic.controller.GeneControllerSpec
10:32:28.609 [main] ERROR o.t.d.EnvironmentAndSystemPropertyClientProviderStrategy - ping failed with configuration Environment variables, system properties and defaults. Resolved dockerHost=unix:///var/run/docker.sock due to org.rnorth.ducttape.TimeoutException: Timeout waiting for result with exception
org.rnorth.ducttape.TimeoutException: Timeout waiting for result with exception
	at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:54)
	at org.testcontainers.dockerclient.DockerClientProviderStrategy.ping(DockerClientProviderStrategy.java:182)
	at org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy.test(EnvironmentAndSystemPropertyClientProviderStrategy.java:41)
	at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$getFirstValidStrategy$2(DockerClientProviderStrategy.java:118)
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
	at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:302)
	at java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:731)
	at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
	at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.findAny(ReferencePipeline.java:469)
	at org.testcontainers.dockerclient.DockerClientProviderStrategy.getFirstValidStrategy(DockerClientProviderStrategy.java:154)
	at org.testcontainers.DockerClientFactory.getOrInitializeStrategy(DockerClientFactory.java:126)
	at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:147)
	at org.testcontainers.LazyDockerClient.getDockerClient(LazyDockerClient.java:14)
	at org.testcontainers.LazyDockerClient.listImagesCmd(LazyDockerClient.java:12)
	at org.testcontainers.images.LocalImagesCache.maybeInitCache(LocalImagesCache.java:68)
	at org.testcontainers.images.LocalImagesCache.get(LocalImagesCache.java:32)
	at org.testcontainers.images.AbstractImagePullPolicy.shouldPull(AbstractImagePullPolicy.java:18)
	at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:59)
	at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:26)
	at org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20)
	at org.testcontainers.utility.LazyFuture.get(LazyFuture.java:27)
	at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1277)
	at org.testcontainers.containers.GenericContainer.logger(GenericContainer.java:613)
	at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:320)
	at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:311)
	at org.testcontainers.lifecycle.Startable$start.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:119)
	at life.qbic.controller.TestContainerSpecification.<clinit>(TestContainerSpecification.groovy:19)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.lang.Class.newInstance(Class.java:442)
	at org.spockframework.runtime.BaseSpecRunner.createSpecInstance(BaseSpecRunner.java:104)
	at org.spockframework.runtime.BaseSpecRunner.run(BaseSpecRunner.java:62)
	at org.spockframework.runtime.Sputnik.run(Sputnik.java:63)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:364)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:272)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:237)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:158)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:428)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:562)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:548)
Caused by: java.lang.RuntimeException: java.io.IOException: native connect() failed : No such file or directory
	at com.github.dockerjava.okhttp.OkHttpInvocationBuilder.execute(OkHttpInvocationBuilder.java:301)
	at com.github.dockerjava.okhttp.OkHttpInvocationBuilder.execute(OkHttpInvocationBuilder.java:271)
	at com.github.dockerjava.okhttp.OkHttpInvocationBuilder.get(OkHttpInvocationBuilder.java:239)
	at com.github.dockerjava.core.exec.PingCmdExec.execute(PingCmdExec.java:26)
	at com.github.dockerjava.core.exec.PingCmdExec.execute(PingCmdExec.java:12)
	at com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:21)
	at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35)
	at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$null$4(DockerClientProviderStrategy.java:185)
	at org.rnorth.ducttape.ratelimits.RateLimiter.getWhenReady(RateLimiter.java:51)
	at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$ping$5(DockerClientProviderStrategy.java:183)
	at org.rnorth.ducttape.unreliables.Unreliables.lambda$retryUntilSuccess$0(Unreliables.java:43)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: native connect() failed : No such file or directory
	at com.github.dockerjava.okhttp.UnixDomainSocket.connect(UnixDomainSocket.java:157)
	at com.github.dockerjava.okhttp.UnixSocketFactory$1.connect(UnixSocketFactory.java:27)
	at org.testcontainers.shaded.okhttp3.internal.platform.Platform.connectSocket(Platform.java:130)
	at org.testcontainers.shaded.okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:263)
	at org.testcontainers.shaded.okhttp3.internal.connection.RealConnection.connect(RealConnection.java:183)
	at org.testcontainers.shaded.okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)
	at org.testcontainers.shaded.okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
	at org.testcontainers.shaded.okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)
	at org.testcontainers.shaded.okhttp3.internal.connection.Transmitter.newExchange(Transmitter.java:169)
	at org.testcontainers.shaded.okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)
	at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at org.testcontainers.shaded.okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
	at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at org.testcontainers.shaded.okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
	at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at org.testcontainers.shaded.okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
	at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
	at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
	at org.testcontainers.shaded.okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)
	at org.testcontainers.shaded.okhttp3.RealCall.execute(RealCall.java:81)
	at com.github.dockerjava.okhttp.OkHttpInvocationBuilder.execute(OkHttpInvocationBuilder.java:276)
	... 14 common frames omitted
10:32:28.632 [main] ERROR o.t.d.DockerClientProviderStrategy - Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
10:32:28.632 [main] ERROR o.t.d.DockerClientProviderStrategy -     EnvironmentAndSystemPropertyClientProviderStrategy: failed with exception InvalidConfigurationException (ping failed)
10:32:28.633 [main] ERROR o.t.d.DockerClientProviderStrategy -     UnixSocketClientProviderStrategy: failed with exception InvalidConfigurationException (ping failed). Root cause NoSuchFileException (/var/run/docker.sock)
10:32:28.633 [main] ERROR o.t.d.DockerClientProviderStrategy - As no valid configuration was found, execution cannot continue
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 11.219 s <<< FAILURE! - in life.qbic.controller.GeneControllerSpec
[ERROR] life.qbic.controller.GeneControllerSpec  Time elapsed: 11.184 s  <<< ERROR!
org.spockframework.util.InternalSpockError: Failed to instantiate spec 'GeneControllerSpec'
Caused by: java.lang.ExceptionInInitializerError
Caused by: org.testcontainers.containers.ContainerLaunchException: Container startup failed
Caused by: org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageName=mariadb:10.4, imagePullPolicy=DefaultPullPolicy())
Caused by: java.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configuration

[INFO] Running life.qbic.controller.VariantControllerSpec
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 s <<< FAILURE! - in life.qbic.controller.VariantControllerSpec
[ERROR] life.qbic.controller.VariantControllerSpec  Time elapsed: 0.001 s  <<< ERROR!
org.spockframework.util.InternalSpockError: Failed to instantiate spec 'VariantControllerSpec'
Caused by: java.lang.NoClassDefFoundError: Could not initialize class life.qbic.controller.TestContainerSpecification

[INFO] Running life.qbic.controller.PropertyValueSpec
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 s <<< FAILURE! - in life.qbic.controller.PropertyValueSpec
[ERROR] life.qbic.controller.PropertyValueSpec  Time elapsed: 0 s  <<< ERROR!
org.spockframework.util.InternalSpockError: Failed to instantiate spec 'PropertyValueSpec'
Caused by: java.lang.NoClassDefFoundError: Could not initialize class life.qbic.controller.TestContainerSpecification

[INFO] Running life.qbic.controller.DatabaseSpec
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 s <<< FAILURE! - in life.qbic.controller.DatabaseSpec
[ERROR] life.qbic.controller.DatabaseSpec  Time elapsed: 0.001 s  <<< ERROR!
org.spockframework.util.InternalSpockError: Failed to instantiate spec 'DatabaseSpec'
Caused by: java.lang.NoClassDefFoundError: Could not initialize class life.qbic.controller.TestContainerSpecification

[INFO] Running life.qbic.controller.CaseControllerSpec
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 s <<< FAILURE! - in life.qbic.controller.CaseControllerSpec
[ERROR] life.qbic.controller.CaseControllerSpec  Time elapsed: 0 s  <<< ERROR!
org.spockframework.util.InternalSpockError: Failed to instantiate spec 'CaseControllerSpec'
Caused by: java.lang.NoClassDefFoundError: Could not initialize class life.qbic.controller.TestContainerSpecification

[INFO] Running life.qbic.controller.SampleControllerSpec
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 s <<< FAILURE! - in life.qbic.controller.SampleControllerSpec
[ERROR] life.qbic.controller.SampleControllerSpec  Time elapsed: 0 s  <<< ERROR!
org.spockframework.util.InternalSpockError: Failed to instantiate spec 'SampleControllerSpec'
Caused by: java.lang.NoClassDefFoundError: Could not initialize class life.qbic.controller.TestContainerSpecification

[INFO] Running life.qbic.controller.BeaconControllerSpec
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 s <<< FAILURE! - in life.qbic.controller.BeaconControllerSpec
[ERROR] life.qbic.controller.BeaconControllerSpec  Time elapsed: 0 s  <<< ERROR!
org.spockframework.util.InternalSpockError: Failed to instantiate spec 'BeaconControllerSpec'
Caused by: java.lang.NoClassDefFoundError: Could not initialize class life.qbic.controller.TestContainerSpecification

[INFO] Running life.qbic.controller.SecuritySpec
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 s <<< FAILURE! - in life.qbic.controller.SecuritySpec
[ERROR] life.qbic.controller.SecuritySpec  Time elapsed: 0 s  <<< ERROR!
org.spockframework.util.InternalSpockError: Failed to instantiate spec 'SecuritySpec'
Caused by: java.lang.NoClassDefFoundError: Could not initialize class life.qbic.controller.TestContainerSpecification

[INFO] Running life.qbic.controller.SwaggerSpec
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 s <<< FAILURE! - in life.qbic.controller.SwaggerSpec
[ERROR] life.qbic.controller.SwaggerSpec  Time elapsed: 0.001 s  <<< ERROR!
org.spockframework.util.InternalSpockError: Failed to instantiate spec 'SwaggerSpec'
Caused by: java.lang.NoClassDefFoundError: Could not initialize class life.qbic.controller.TestContainerSpecification

[INFO] 
[INFO] Results:
[INFO] 
[ERROR] Errors: 
[ERROR]   BeaconControllerSpec » InternalSpock Failed to instantiate spec 'BeaconControl...
[ERROR]   CaseControllerSpec » InternalSpock Failed to instantiate spec 'CaseControllerS...
[ERROR]   DatabaseSpec » InternalSpock Failed to instantiate spec 'DatabaseSpec'
[ERROR]   GeneControllerSpec » InternalSpock Failed to instantiate spec 'GeneControllerS...
[ERROR]   PropertyValueSpec » InternalSpock Failed to instantiate spec 'PropertyValueSpe...
[ERROR]   SampleControllerSpec » InternalSpock Failed to instantiate spec 'SampleControl...
[ERROR]   SecuritySpec » InternalSpock Failed to instantiate spec 'SecuritySpec'
[ERROR]   SwaggerSpec » InternalSpock Failed to instantiate spec 'SwaggerSpec'
[ERROR]   VariantControllerSpec » InternalSpock Failed to instantiate spec 'VariantContr...
[INFO] 
[ERROR] Tests run: 9, Failures: 0, Errors: 9, Skipped: 0
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 49.589 s
[INFO] Finished at: 2021-04-20T10:32:28Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test (default-test) on project variantstore: There are test failures.
[ERROR] 
[ERROR] Please refer to /root/variantstore/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Improve documentation and error handling for VCF import

If the metadata is not provided in the right way when using the multiform VCF import, one will get an error like the following:

...
variantstore_app | Caused by: groovy.lang.MissingPropertyException: No such property: is_somatic for class: java.lang.String
variantstore_app | 	at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:65)
variantstore_app | 	at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:65)
variantstore_app | 	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:298)
variantstore_app | 	at life.qbic.variantstore.parser.MetadataReader.parseIsSomatic(MetadataReader.groovy:47)
variantstore_app | 	at life.qbic.variantstore.parser.MetadataReader$parseIsSomatic.callStatic(Unknown Source)
variantstore_app | 	at life.qbic.variantstore.parser.MetadataReader.<init>(MetadataReader.groovy:34)
variantstore_app | 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
variantstore_app | 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
variantstore_app | 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
variantstore_app | 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
variantstore_app | 	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80)
variantstore_app | 	at 
...

We should extend the documentation and provide an example on how to upload VCF files and metadata to make it clear. Additionally, we should provide more descriptive error messages in such cases.

Docker for development testing

Heyho QBiC team,

I wanted to offer the discussion about docker supported development.

Currently, the docker container is based on mounting/copying the compiled jar file into the container and running the jar.

I understand that in an clinical environment, fixation on stable and robust releases are essential. Additionally, limited internet connection can handicap docker utilization.

Nevertheless, as an alternative, it could be fruitful to compile the oncostore inside the container instead of local compiling and then run it afterwards via ./mvnw exec:exec.

This approach can increase the robustness and reproducibility during development, because it is easier to spot e.g. dependency errors due to the clean install inside a fresh container environment.

For my testing of the oncostore, I used your in-house docker-compose script with a custom Dockerfile for the variantstore-app. Basically, the app container just compiles the oncostore and runs it.

./mvnw clean compile
./mvnw exec:exec

Dockerfile: https://github.com/muellerdo/variantstore/blob/development/Dockerfile
Docker-compose: https://github.com/muellerdo/variantstore/blob/development/docker-compose.yml

I am interested in your view on this topic. :)
Thanks in advance for your time.

Cheers,
Dominik Müller

Variant registration fails due to unavailable information

The variant registration (VCF file) fails at some point if some value is unavailable and therefore null with the following error message:

io.micronaut.core.convert.exceptions.ConversionErrorException: Failed to convert argument [Object] for value [null] due to: Property of type [class java.lang.Long] cannot be converted to type: class java.lang.Object

This happens in the find method of the SampleVariant repository.

SampleVariantRepository$Intercepted.findBySampleAndVariantAndVcfinfoAndGenotype(Unknown Source)

Add documentation

Add README content on installation, usage, database scheme, expected formats etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.