quarkusio / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
13.77k stars 2.68k forks source link

Support for using Fauna DB with Quarkus Native Image #16774

Open HasseNasse opened 3 years ago

HasseNasse commented 3 years ago

Description

Would be nice if quarkus would allow usage of Fauna DB drivers in native image mode. JVM mode works fine but when we run this in native mode we get the following error.

2021-04-23 18:27:24,112 ERROR [io.qua.ver.htt.run.QuarkusErrorHandler] (executor-thread-1) HTTP Request to /articles? failed, error id: a3f2fe19-64a8-4cf9-8b51-56a66b43e4ab-1: org.jboss.resteasy.spi.UnhandledException: java.lang.IllegalArgumentException: No serializer found for class com.faunadb.client.query.Fn$UnescapedObject and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)

Implementation ideas

(If you have any implementation ideas, they can go here, however please note that all design change proposals should be posted to the Quarkus developer mailing list (or the corresponding Google Group; see the decisions process document for more information).

gsmet commented 3 years ago

If you prepare a simple Maven project with some tests working in JVM mode, I can have a look. But the tests would have to be self contained. I don't know if they have some containers you can start from TestContainers?

HasseNasse commented 3 years ago

@gsmet Thanks, I'll cook something up and get back asap.

HasseNasse commented 3 years ago

@gsmet Below you can find the reproducer: https://github.com/HasseNasse/simple-fauna-quarkus-app

gsmet commented 3 years ago

@HasseNasse thanks for the reproducer. Would it be possible to make it work without requiring any AWS infra?

The idea would be to make use of https://hub.docker.com/r/fauna/faunadb as I suppose this starts a proper container and avoid the use of S3 and AWS altogether? But reading this page, I'm not even sure you can get Fauna to work locally without tying it to a proper account on their infra?

If we want to have proper testing for this, we need as little adherence as possible to external resources.

HasseNasse commented 3 years ago

I quickly glanced over the doc of the faunadb image This image is meant to be used only for offline development and it seems to be possible to spin up a local instance of faunadb without necessarily requiring a account. I can try moving away from AWS and implement the reproducer against the docker container instead.

mmailaender commented 3 years ago

Are there any news regarding this? Would be amazing to see this live :)