camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Luca Burgazzoli (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CAMEL-10031) camel-spring-boot - Add endpoint options as type-safe configuration properties
Date Tue, 09 May 2017 05:40:04 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-10031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16001029#comment-16001029
] 

Luca Burgazzoli edited comment on CAMEL-10031 at 5/9/17 5:39 AM:
-----------------------------------------------------------------

Would it make sense to have an hook on the component to inject an "endpoint options processor"
? Because not all the endpoints have a getter/setter for the options (most of the new component
have a configuration class instead) the auto configuration task may not be trivial.

As far as I remember there was  also a discussion on how to assign an id to an endpoint and
if we can make that we can do something like:

{code:java}
from("ftp://bar@myserver/path?id=test")
  .to("...")
{code}

{code:java}
// Use the dot notation for maps as the [] may not work
// in some properties back-end (i.e. k8s' configmaps/secrets)
camel.component.ftp.endpoints.test..password = secret
{code}

The hook (which is added by spring-boot auto configuration) will then inspect the components
option for an id field and adds the options from spring-boot related to such id.
For xml we can leverage the id on the element.
 
The hook may be triggered between:
{code:java} Endpoint createEndpoint(String uri) {code}

And:
{code:java} Endpoint createEndpoint(String uri, String remaining, Map<String,Object>
parameters) {code}

An interesting side effect of this implementation is that secrets like username and password
may be provided by the vault back-end or i.e. kubernetes secrets for application that have
spring-cloud-kubernetes without requiring to create the endpoints outside the route.


was (Author: lb):
Would it make sense to have an hook on the component to inject an "endpoint options processor"
? Because not all the endpoints have a getter/setter for the options (most of the new component
have a configuration class instead) the auto configuration task may not be trivial.

As far as I remember there was  also a discussion on how to assign an id to an endpoint and
if we can make that we can do something like:

{code:java}
from("ftp://bar@myserver/path?id=test")
  .to("...")
{code}

{code}
# Use the dot notation for maps as the [] may not work
# in some properties back-end (i.e. k8s' configmaps/secrets)
camel.component.ftp.endpoints.test..password = secret
{code}

The hook (which is added by spring-boot auto configuration) will then inspect the components
option for an id field and adds the options from spring-boot related to such id.
For xml we can leverage the id on the element.
 
The hook may be triggered between:
{code:java} Endpoint createEndpoint(String uri) {code}

And:
{code:java} Endpoint createEndpoint(String uri, String remaining, Map<String,Object>
parameters) {code}

An interesting side effect of this implementation is that secrets like username and password
may be provided by the vault back-end or i.e. kubernetes secrets for application that have
spring-cloud-kubernetes without requiring to create the endpoints outside the route.

> camel-spring-boot - Add endpoint options as type-safe configuration properties
> ------------------------------------------------------------------------------
>
>                 Key: CAMEL-10031
>                 URL: https://issues.apache.org/jira/browse/CAMEL-10031
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-spring-boot
>            Reporter: Claus Ibsen
>            Assignee: Nicola Ferraro
>
> See CAMEL-9419.
> We can now configure this for all the components. But for endpoints its a bit more as
you can have many endpoints with different configuration.
> So either you assign an id to the endpoint you configure, and then need to refer to the
endpoint by id, in the camel routes. Or we figure out something else. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message