Claus Ibsen created CAMEL-10795:
-----------------------------------

             Summary: PingCheck API
                 Key: CAMEL-10795
                 URL: https://issues.apache.org/jira/browse/CAMEL-10795
             Project: Camel
          Issue Type: New Feature
          Components: camel-core
            Reporter: Claus Ibsen
             Fix For: 2.19.0


Related to CAMEL-10026 about Health Check API

We need some way for Camel components to be able to more easily validate if 
they can connect to their remote system.

And for that the user must configure the Camel component/endpoint accordingly 
with details such as username/password/tokens/ other beans etc.

How this is done varies from Camel component to component, but most of them 
uses endpoint options.

So we may want to introduce some interface (whether the name Pingable is a good 
name is up for discussion)

{code}
interface Pingable {
    PingResult ping(Map<String, String> config);
    boolean canPing(Map<String, String> config);
}

class PingResult {
 private boolean isSuccess();
 private String errorMessage();
}
{code}

This API is just a little suggestion.

The parameters should ideally be type less, eg Map<String, String> as the user 
configures this in endpoint uris, XML DSL etc. and therefore we should be able 
to do this without having to use Java code per see.

Also we may want to have canPing as a method to check if the component can 
accept the ping or not. In some cases it may not be able to do the ping.

For example camel-http component would just require the following information 
in the Map<String, String>

httpUri=http://myserver/foo/bar

Where httpUri is the name of the option accordingly to the table at
https://github.com/apache/camel/blob/master/components/camel-http/src/main/docs/http-component.adoc

And then it depends on each Camel component how they do the ping check, the 
http component may do a HTTP HEAD or a HTTP GET etc and check the HTTP response 
code etc.

Notice this is not intended entirely for runtime health check, but for 
validating/testing Camel components can work with the user given configuration 
to connect to the remote system.




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

Reply via email to