Petals SE Camel

Add Camel endpoints parameters for consuming services

Details

  • Type: Improvement Request Improvement Request
  • Status: Resolved Resolved
  • Priority: Minor Minor
  • Resolution: Fixed
  • Affects Version/s: 0.5.1, 1.0.0
  • Fix Version/s: 0.5.2, 1.0.1
  • Component/s: None
  • Security Level: Public
  • Description:
    Hide

    In JBI, a Consumes must specify the interface, but doesn't have to specify the service or the endpoint name.
    The CDK itself enables to specify operation and MEP.

    In the Camel SE, one consumes corresponds to a Camel endpoint.

    In case a Consumes does not specify one of the aforementioned elements, it could be useful for a route implementor to have parameters to force these.

    In order to stay on the safe side, we shouldn't accept overriding already specified elements and errors should be thrown during the deployment of the SU.

    We should thus add the following parameters:

    • "serviceName" to specify the service name (with a QName)
    • "endpointName" to specify the endpoint name (with a String)
    • "operation" to specify the operation (with a QName)
    • "exchangePattern" to specify the MEP (with Camel ExchangePattern, since this parameter already exists within Camel)

    QName should be expressed in String using the format accepted by QName.valueOf().
    ExchangePattern should be expressed in String using the format accepted by ExchangePattern.valueOf().

    Show
    In JBI, a Consumes must specify the interface, but doesn't have to specify the service or the endpoint name. The CDK itself enables to specify operation and MEP. In the Camel SE, one consumes corresponds to a Camel endpoint. In case a Consumes does not specify one of the aforementioned elements, it could be useful for a route implementor to have parameters to force these. In order to stay on the safe side, we shouldn't accept overriding already specified elements and errors should be thrown during the deployment of the SU. We should thus add the following parameters:
    • "serviceName" to specify the service name (with a QName)
    • "endpointName" to specify the endpoint name (with a String)
    • "operation" to specify the operation (with a QName)
    • "exchangePattern" to specify the MEP (with Camel ExchangePattern, since this parameter already exists within Camel)
    QName should be expressed in String using the format accepted by QName.valueOf(). ExchangePattern should be expressed in String using the format accepted by ExchangePattern.valueOf().
  • Environment:
    -

Activity

Hide
Christophe DENEUX added a comment - Wed, 3 Feb 2016 - 10:18:49 +0100 - edited

Can you explain why a consume could not specify elements mentioned below ? Do you imagine to use dynamic service name, endpoint name, operation or MEP ?

Show
Christophe DENEUX added a comment - Wed, 3 Feb 2016 - 10:18:49 +0100 - edited Can you explain why a consume could not specify elements mentioned below ? Do you imagine to use dynamic service name, endpoint name, operation or MEP ?
Hide
Victor NOËL added a comment - Wed, 3 Feb 2016 - 10:55:39 +0100

Concerning service name and endpoint name, it is obvious that a Consumes can be specified without them, so that one can exploit endpoint resolution by the NMR as usually done with Petals.
In certain case, one could desire to nevertheless specify a specific service name, or even a specific endpoint name from its code, in accordance to what the JBI API provides to create exchange or resolve endpoints at component level.

Concerning the operation (and the MEP, they are related), one could decide to want to specify them in their route instead of the jbi.xml.
The justification could be that one does not want to declare one Consumes per operation.

Show
Victor NOËL added a comment - Wed, 3 Feb 2016 - 10:55:39 +0100 Concerning service name and endpoint name, it is obvious that a Consumes can be specified without them, so that one can exploit endpoint resolution by the NMR as usually done with Petals. In certain case, one could desire to nevertheless specify a specific service name, or even a specific endpoint name from its code, in accordance to what the JBI API provides to create exchange or resolve endpoints at component level. Concerning the operation (and the MEP, they are related), one could decide to want to specify them in their route instead of the jbi.xml. The justification could be that one does not want to declare one Consumes per operation.

People

Dates

  • Created:
    Wed, 3 Feb 2016 - 09:54:18 +0100
    Updated:
    Wed, 3 Feb 2016 - 10:57:03 +0100
    Resolved:
    Wed, 3 Feb 2016 - 10:57:03 +0100