You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Nicola Ferraro (JIRA)" <ji...@apache.org> on 2019/04/09 08:49:00 UTC
[jira] [Updated] (CAMEL-13401) Create a webhook meta-component
[ https://issues.apache.org/jira/browse/CAMEL-13401?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nicola Ferraro updated CAMEL-13401:
-----------------------------------
Description:
The intention is to create a meta-component that allows other components to define how they can configure themselves to create push-based consumers by remotely configuring a webhook.
The way it's used is similar to the master component.
E.g.
The following route starts from a Telegram polling consumer:
{code:java}
from("telegram:bots/token")
.to("log:info"){code}
By prepending the _webhook_ uri prefix, we literally _prepend a webhook listener_ to it:
{code:java}
from("webhook:telegram:bots/token")
.to("log:info"){code}
The role of the webhook meta-component is of:
* Exposing one or more endpoints using the rest consumer factory
* Running the delegate endpoint in webhook mode (each component defines the specific rules)
* Registering the webhook at the webhook provider site (specific per component, external URL configurable)
* Unregistering the webhook at the webhook provider site when it's no more necessary (specific per component)
So, the meta-component sets up the infrastructure and orchestrates the workflow.
Registration/deregistration should be configurable:
* In standalone mode, the registration is done at route startup, the deregistration is done at route shutdown
* In Camel K mode, automatic registration is disabled by default, because the deployment can be scale up/down (especially in Knative mode, where this happens automatically):
** Camel K will setup a webhook subscription resource that takes care of externally registering/deregistering the webhook when the integration is created/edited/deleted (will use the webhook component API for this)
With this meta-component, in Camel K + Knative mode, we can create integrations from telegram, slack, github, twitter, dropbox, .... that can scale down to 0 when not used.
> Create a webhook meta-component
> -------------------------------
>
> Key: CAMEL-13401
> URL: https://issues.apache.org/jira/browse/CAMEL-13401
> Project: Camel
> Issue Type: New Feature
> Components: camel-core
> Reporter: Nicola Ferraro
> Assignee: Nicola Ferraro
> Priority: Major
> Fix For: 3.0.0
>
>
> The intention is to create a meta-component that allows other components to define how they can configure themselves to create push-based consumers by remotely configuring a webhook.
> The way it's used is similar to the master component.
>
> E.g.
> The following route starts from a Telegram polling consumer:
> {code:java}
> from("telegram:bots/token")
> .to("log:info"){code}
>
> By prepending the _webhook_ uri prefix, we literally _prepend a webhook listener_ to it:
> {code:java}
> from("webhook:telegram:bots/token")
> .to("log:info"){code}
>
> The role of the webhook meta-component is of:
> * Exposing one or more endpoints using the rest consumer factory
> * Running the delegate endpoint in webhook mode (each component defines the specific rules)
> * Registering the webhook at the webhook provider site (specific per component, external URL configurable)
> * Unregistering the webhook at the webhook provider site when it's no more necessary (specific per component)
> So, the meta-component sets up the infrastructure and orchestrates the workflow.
>
> Registration/deregistration should be configurable:
> * In standalone mode, the registration is done at route startup, the deregistration is done at route shutdown
> * In Camel K mode, automatic registration is disabled by default, because the deployment can be scale up/down (especially in Knative mode, where this happens automatically):
> ** Camel K will setup a webhook subscription resource that takes care of externally registering/deregistering the webhook when the integration is created/edited/deleted (will use the webhook component API for this)
>
> With this meta-component, in Camel K + Knative mode, we can create integrations from telegram, slack, github, twitter, dropbox, .... that can scale down to 0 when not used.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)