You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "winger (Jira)" <ji...@apache.org> on 2021/08/26 12:09:00 UTC

[jira] [Updated] (CAMEL-16894) Support read properties from camel component for kamelets

     [ https://issues.apache.org/jira/browse/CAMEL-16894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

winger updated CAMEL-16894:
---------------------------
    Description: 
As example, it will be possible to use a Kamelet to create a[ Debezium Source Connectors |https://camel.apache.org/components/latest/debezium-summary.html]

 *Definition*

Definite DBZ MySQL Connector named +debezium-mysql-source.kamelet.yaml+ 

{code:java}

apiVersion: camel.apache.org/v1alpha1
kind: Kamelet
metadata:
  name: debezium-mysql-source
  annotations:
    camel.apache.org/kamelet.support.level: "Preview"
    // other ...
  labels:
    camel.apache.org/kamelet.type: "source"
spec:
  definition:
    title: "Debezium MySQL"
    required:
      - databaseServerId
      - databaseServerName
// others...
    properties:
      databaseServerId:
        //...
      databaseServerName:
       //...
      // others ...
  dependencies:
   // ...
  flow:
    from:
      uri: debezium-mysql:{{databaseServerName}}
      parameters:
        databaseServerName: "{{databaseServerName}}"
        databaseServerId: "{{databaseServerId}}"
// others...
      steps:
        - to: "kamelet:sink"
{code}

As example:
{code:java}
from("debezium-mysql:dbz-test-1?databaseServerName=dbz-test-1&databaseServerId=5401&...")
.log("Event received from Debezium : ${body}")
{code}

Using the Kamelet example above, the message property can then be given:
1. by setting a URI Param named databaseServerName and databaseServerId
OR 
2. by setting the property camel.kamelet.debezium-mysql-source.source.databaseServerName and camel.kamelet.debezium-mysql-source.source.databaseServerId

It will be very useful when build this with camel-k projects.
For example create a YAML file like the following one:

{code:java}
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  name: debezium-mysql-source-binding
spec:
  source:
    ref: 
      kind: Kamelet
      apiVersion: camel.apache.org/v1alpha1
      name: debezium-mysql-source
    properties:
      databaseServerId: 5401
      databaseServerName: "dbz-test-1" 
      additionalProperties.transactional.id: 12345
      additionalProperties.max.batch.size: 4096
      ....
{code}

it also works fine.



  was:
As example, it will be possible to use a Kamelet to create a[ Debezium Source Connectors |[https://camel.apache.org/components/latest/debezium-summary.html]]

 *Definition*

Definite DBZ MySQL Connector named +debezium-mysql-source.kamelet.yaml+ 

{code:java}

apiVersion: camel.apache.org/v1alpha1
kind: Kamelet
metadata:
  name: debezium-mysql-source
  annotations:
    camel.apache.org/kamelet.support.level: "Preview"
    // other ...
  labels:
    camel.apache.org/kamelet.type: "source"
spec:
  definition:
    title: "Debezium MySQL"
    required:
      - databaseServerId
      - databaseServerName
// others...
    properties:
      databaseServerId:
        //...
      databaseServerName:
       //...
      // others ...
  dependencies:
   // ...
  flow:
    from:
      uri: debezium-mysql:{{databaseServerName}}
      parameters:
        databaseServerName: "{{databaseServerName}}"
        databaseServerId: "{{databaseServerId}}"
// others...
      steps:
        - to: "kamelet:sink"
{code}

As example:
{code:java}
from("debezium-mysql:dbz-test-1?databaseServerName=dbz-test-1&databaseServerId=5401&...")
.log("Event received from Debezium : ${body}")
{code}

Using the Kamelet example above, the message property can then be given:
1. by setting a URI Param named databaseServerName and databaseServerId
OR 
2. by setting the property camel.kamelet.debezium-mysql-source.source.databaseServerName and camel.kamelet.debezium-mysql-source.source.databaseServerId

It will be very useful when build this with camel-k projects.
For example create a YAML file like the following one:

{code:java}
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  name: debezium-mysql-source-binding
spec:
  source:
    ref: 
      kind: Kamelet
      apiVersion: camel.apache.org/v1alpha1
      name: debezium-mysql-source
    properties:
      databaseServerId: 5401
      databaseServerName: "dbz-test-1" 
      additionalProperties.transactional.id: 12345
      additionalProperties.max.batch.size: 4096
      ....
{code}

it also works fine.




> Support read properties from camel component for kamelets
> ---------------------------------------------------------
>
>                 Key: CAMEL-16894
>                 URL: https://issues.apache.org/jira/browse/CAMEL-16894
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-debezium
>            Reporter: winger
>            Priority: Major
>
> As example, it will be possible to use a Kamelet to create a[ Debezium Source Connectors |https://camel.apache.org/components/latest/debezium-summary.html]
>  *Definition*
> Definite DBZ MySQL Connector named +debezium-mysql-source.kamelet.yaml+ 
> {code:java}
> apiVersion: camel.apache.org/v1alpha1
> kind: Kamelet
> metadata:
>   name: debezium-mysql-source
>   annotations:
>     camel.apache.org/kamelet.support.level: "Preview"
>     // other ...
>   labels:
>     camel.apache.org/kamelet.type: "source"
> spec:
>   definition:
>     title: "Debezium MySQL"
>     required:
>       - databaseServerId
>       - databaseServerName
> // others...
>     properties:
>       databaseServerId:
>         //...
>       databaseServerName:
>        //...
>       // others ...
>   dependencies:
>    // ...
>   flow:
>     from:
>       uri: debezium-mysql:{{databaseServerName}}
>       parameters:
>         databaseServerName: "{{databaseServerName}}"
>         databaseServerId: "{{databaseServerId}}"
> // others...
>       steps:
>         - to: "kamelet:sink"
> {code}
> As example:
> {code:java}
> from("debezium-mysql:dbz-test-1?databaseServerName=dbz-test-1&databaseServerId=5401&...")
> .log("Event received from Debezium : ${body}")
> {code}
> Using the Kamelet example above, the message property can then be given:
> 1. by setting a URI Param named databaseServerName and databaseServerId
> OR 
> 2. by setting the property camel.kamelet.debezium-mysql-source.source.databaseServerName and camel.kamelet.debezium-mysql-source.source.databaseServerId
> It will be very useful when build this with camel-k projects.
> For example create a YAML file like the following one:
> {code:java}
> apiVersion: camel.apache.org/v1alpha1
> kind: KameletBinding
> metadata:
>   name: debezium-mysql-source-binding
> spec:
>   source:
>     ref: 
>       kind: Kamelet
>       apiVersion: camel.apache.org/v1alpha1
>       name: debezium-mysql-source
>     properties:
>       databaseServerId: 5401
>       databaseServerName: "dbz-test-1" 
>       additionalProperties.transactional.id: 12345
>       additionalProperties.max.batch.size: 4096
>       ....
> {code}
> it also works fine.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)