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

Create Couchbase Source Kamelet #542

Open
oscerd opened this issue Oct 13, 2021 · 4 comments
Open

Create Couchbase Source Kamelet #542

oscerd opened this issue Oct 13, 2021 · 4 comments
Assignees

Comments

@oscerd
Copy link
Contributor

oscerd commented Oct 13, 2021

No description provided.

@oscerd oscerd self-assigned this Oct 13, 2021
@oscerd
Copy link
Contributor Author

oscerd commented Nov 9, 2021

This is failing with

Consumer Consumer[couchbase://http://localhost:8091?bucket=beer-sample&password=xxxxxx] failed polling endpoint: couchbase://http://localhost:8091?bucket=beer-sample&password=xxxxxx. Will try again at next poll. Caused by: [com.couchbase.client.core.error.DecodingFailureException - Deserialization of content into target class com.couchbase.client.core.deps.com.fasterxml.jackson.databind.JsonNode failed; encoded = ["21st_amendment_brewery_cafe"]]: com.couchbase.client.core.error.DecodingFailureException: Deserialization of content into target class com.couchbase.client.core.deps.com.fasterxml.jackson.databind.JsonNode failed; encoded = ["21st_amendment_brewery_cafe"]
	at com.couchbase.client.java.codec.JacksonJsonSerializer.deserialize(JacksonJsonSerializer.java:137)
	at com.couchbase.client.java.view.ViewRow.lambda$decode$0(ViewRow.java:126)
	at java.base/java.util.Optional.map(Optional.java:265)
	at com.couchbase.client.java.view.ViewRow.decode(ViewRow.java:122)
	at com.couchbase.client.java.view.ViewRow.keyAs(ViewRow.java:77)
	at org.apache.camel.component.couchbase.CouchbaseConsumer.poll(CouchbaseConsumer.java:121)
	at org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:190)
	at org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:107)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.couchbase.client.core.deps.com.fasterxml.jackson.databind.JsonNode` (no Creators, like default constructor, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information
 at [Source: (byte[])"["21st_amendment_brewery_cafe"]"; line: 1, column: 1]
	at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)
	at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1764)
	at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)
	at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1209)
	at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserialize(AbstractDeserializer.java:274)
	at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4593)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3609)
	at com.couchbase.client.java.codec.JacksonJsonSerializer.deserialize(JacksonJsonSerializer.java:134)

This seems to happen with kamelet only.

@oscerd
Copy link
Contributor Author

oscerd commented Nov 10, 2021

Blocked by apache/camel-quarkus#3283

@oscerd
Copy link
Contributor Author

oscerd commented Nov 10, 2021

The kamelet at the moment

apiVersion: camel.apache.org/v1alpha1
kind: Kamelet
metadata:
  name: couchbase-source
  annotations:
    camel.apache.org/kamelet.support.level: "Preview"
    camel.apache.org/catalog.version: "main-SNAPSHOT"
    camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEwMCIgd2lkdGg9IjEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMkQ3MkI4IiBkPSJNNzQuMTc0IDMxLjgwN2w3LjQzNyA1LjM2N3YtNy42MDJsLTcuNDgtOC43NjV2MTAuOTU3bC4wNDMuMDE1eiIvPjxwYXRoIGZpbGw9IiM1Mjk0Q0YiIGQ9Ik01OS44MzggODUuNjY2bDE0LjI5My03LjE0NlYyMC43OTFsLTE0LjMwMy03LjEyNHoiLz48cGF0aCBmaWxsPSIjMjA1Qjk4IiBkPSJNMzkuNDk2IDg1LjY2NkwyNS4yMDMgNzguNTJWMjAuNzkxbDE0LjMwMy03LjEyNHoiLz48cGF0aCBmaWxsPSIjMkQ3MkI4IiBkPSJNMzkuNTA2IDEzLjY2N2gyMC4zMjF2NzEuOTk5SDM5LjUwNnpNNzQuMTMxIDY3LjU2NFY3OC41Mmw3LjQ4LTguNzY0di03LjYwMmwtNy40MzcgNS4zOTd6TTc0LjEzMSA2Mi45MzZsLjA0My0uMDEgNy40MzctNHYtNy42NDlsLTcuNDguNjg4ek03NC4xNzQgMzYuNDI5bC0uMDQzLS4wMVY0Ny4zNWw3LjQ4LjY5OXYtNy42NDV6Ii8+PHBhdGggZmlsbD0iIzFBNDc2RiIgZD0iTTgxLjYxMSA0OC4wNDlsLTcuNDgtLjY5OS0xNC4zMDMtLjU3MkgzOS41MDZsLTE0LjMwMy41NzJWMzYuNDQzbC0uMDE1LjAwOC4wMTUtLjAzMiAxNC4zMDMtMy4zMTRINTkuODI4bDE0LjMwMyAzLjMxNCA1LjI1OCAyLjc5NXYtMS43OTdsMi4yMjItLjI0My03LjQ4LTUuNDEtMTQuMzAzLTQuNDMySDM5LjUwNmwtMTQuMzAzIDQuNDMyVjIwLjgwN2wtNy40OCA4Ljc2M3Y3LjY1M2wuMDU4LS4wNDIgMi4xNjQuMjM2djEuODM0bC0yLjIyMiAxLjE4OXY3LjYxNWwuMDU4LS4wMDYgMi4xNjQuMDMydjMuMTk2bC0xLjg2Ny4wMjgtLjM1NS0uMDM0djcuNjE4bDIuMjIyIDEuMTk1djEuODU1bC0yLjEyOS4yMzUtLjA5My0uMDd2Ny42NTJsNy40OCA4Ljc2NFY2Ny41NjRsMTQuMzAzIDQuNDMySDU5LjgyOGwxNC4zNDUtNC40NDUgNy40MzgtNS4zNjctMi4yMjItLjI0NXYtMS44MThsLTUuMjE2IDIuODA1LTE0LjM0NSAzLjI5NXYuMDA0SDM5LjUwNnYtLjAwNGwtMTQuMzQ4LTMuMjk1LS4wMjUtLjA1MS4wNy4wMzdWNTEuOTY1bDE0LjMwMy41N3YuMDE0SDU5LjgyOHYtLjAxNGwxNC4zMDMtLjU3IDcuNDgtLjY1Ni0yLjIyMi0uMDMydi0zLjE5NnoiLz48L3N2Zz4="
    camel.apache.org/provider: "Apache Software Foundation"
    camel.apache.org/kamelet.group: "Couchbase"
  labels:
    camel.apache.org/kamelet.type: "source"
spec:
  definition:
    title: "Couchbase Source"
    description: |-
      Receive entries from couchbase.
    required:
      - protocol
      - hostname
      - bucket
    type: object
    properties:
      protocol:
        title: Protocol
        description: The protocol to use
        type: string
      hostname:
        title: Hostname
        description: The hostname to use
        type: string
      port:
        title: Port
        description: The port to use
        type: int
        default: 8091
      bucket:
        title: Bucket
        description: The bucket to use
        type: string
      username:
        title: Username
        description: Username to connect to Couchbase.
        type: string
        x-descriptors:
        - urn:camel:group:credentials
      password:
        title: Password
        description: Password to connect to Couchbase.
        type: string
        format: password
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:password
        - urn:camel:group:credentials
  types:
    out:
      mediaType: application/json
  dependencies:
  - "camel:jackson"
  - "camel:couchbase"
  - "camel:kamelet"
  flow:
    from:
      uri: "couchbase:{{protocol}}://{{hostname}}:{{port}}"
      parameters:
        bucket: "{{bucket}}"
        username: "{{?username}}"
        password: "{{?password}}"
      steps:
      - marshal:
          json: {}
      - to: "kamelet:sink"

@oscerd
Copy link
Contributor Author

oscerd commented Nov 12, 2021

So, the problem is that couchbase client is shading jackson deps. This mean we need to remove any jackson dependency in the kamelet but also avoid to import jackson dependency from Quarkus dependency. Quarkus core is importing jackson databind, so this cannot work as Kamelet for the moment.

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

No branches or pull requests

1 participant