Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add KeyValue Couchbase Support #31

Open
wants to merge 31 commits into
base: master
Choose a base branch
from

Conversation

dearrudam
Copy link
Contributor

Changes

  • Added KeyValue Couchbase support
  • Added info about this new support into the README.md;

@dearrudam
Copy link
Contributor Author

dearrudam commented Jul 16, 2023

@amoscatelli it looks like com.couchbase.client:java-client:3.3.4 doesn't support native compilation...I've tried to solve it by following this doc: https://quarkus.io/version/main/guides/native-reference#i-get-a-analysiserrorparsingerror-when-building-a-native-executable-due-to-an-unresolvedelementexception-what-can-i-do ...

According to this info:

In the unfortunate case where the reference causing the issue is made by a 3rd party library, that you cannot modify, you should consider one of the following:

  1. Use a class/method substitution to remove the said reference.

  2. Add the optional dependency as a non-optional dependency of your project.

The option 1 it's not possible...this com.couchbase.client:java-client:3.3.4 dependency is a required one;

The option 2 says that the com.couchbase.client:java-client:3.3.4 dependency is pointing to many classes that it's not in the classpath... I've tried to add it, but adding the required dependencies arent' a practical process to detect.

Do you think that it's a problem for accepting and merging this PR to the source?

FYI, couchbase also can be used as Document NoSQL database... I'm working on this extension...

@amoscatelli
Copy link
Contributor

I believe is possible to have the coachbase driver working in native mode since there is a quarkus camel extension :

https://camel.apache.org/camel-quarkus/3.0.x/reference/extensions/couchbase.html

Try doing something similar to what I did for ArangoDB

Copy link
Contributor

@amoscatelli amoscatelli Jul 16, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe you need this here

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-couchbase-deployment</artifactId>
</dependency>

Use the bom in the coudhbase parent like I did for Arango

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@amoscatelli, unfortunately, according to the documentation here: https://camel.apache.org/camel-quarkus/3.0.x/reference/extensions/couchbase.html the camel-quarkus-couchbase doesn't support native compilation.

Maybe, we need to manipulate the CI process in order to execute the native compilation in the extensions that supports it only. What do you think about it?

Copy link
Contributor

@amoscatelli amoscatelli Jul 18, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, in the link you posted I miss the part when they talk about lacking native support.

P.S. I saw it ! Sorry I missed that at first. Let me think

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea you are right.
There is also a specific (non camel) extension for this, but they seem to have a problem :
quarkiverse/quarkus-couchbase#22
quarkusio/quarkus#26206

Copy link
Contributor Author

@dearrudam dearrudam Jul 18, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@amoscatelli what do you think about enhancement of the CI process in order to execute the native compilation in the extensions that support it only?

For example, let's do a little step that changes what module should be ignored before the native-compilation build process. With that, we allow developers to use Couchbase in JVM mode, at least...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure ... maybe we could also help that guy to complete the couchbase native extension.
Maybe I'll take a look

Copy link
Contributor

@amoscatelli amoscatelli Jul 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dearrudam they said they are working on it right now, I am talking about the native support.

But there is no ETA.

dearrudam added 19 commits July 17, 2023 08:48
Signed-off-by: Maximillian Arruda <[email protected]>
Signed-off-by: Maximillian Arruda <[email protected]>
Signed-off-by: Maximillian Arruda <[email protected]>
Signed-off-by: Maximillian Arruda <[email protected]>
Signed-off-by: Maximillian Arruda <[email protected]>
Signed-off-by: Maximillian Arruda <[email protected]>
@otaviojava
Copy link
Contributor

@gastaldi could you review/merge this one?

@gastaldi
Copy link
Member

@otaviojava I'd defer that to @amoscatelli, as I don't have enough knowledge about this :)

@amoscatelli
Copy link
Contributor

@gastaldi @otaviojava
this PR offers no native support.

This needs to be fixed before proceeding.

Maybe you could subscribe and hasten on that issue ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants