Apache Camel: Qué es un endpoint

En el post anterior creamos un componente en Camel, y ahora vamos a aprender qué es un endpoint mirando además el código de nuestro proyecto.

  • Endpoint (HelloWorldEndpoint.java)

Un endpoint es la interface a través de la cual los sistemas externos pueden enviar y recibir mensajes, permitiendo así la integración de sistemas en Camel.

La función de un endpoint es crear productores y consumidores, lo que nos permite usar este endpoint como to y from dentro de una ruta Camel.

public Producer createProducer() throws Exception {
   return new HelloWorldProducer(this);
}
public Consumer createConsumer(Processor processor)
                              throws Exception {
   return new HelloWorldConsumer(this, processor);
}

Si queremos que nuestro componente sólo tenga por ejemplo un productor, se recomienda lanzar una excepción, en este caso al querer crear un consumidor:

public Consumer createConsumer() throws Exception {
   throw new UnsupportedOperationException(
     "No puede recibir mensajes el endpoint:" + getEndpointUri());
}

Se configuran mediante URIs siguiendo el siguiente formato:

[componente]:[contexto]?[opciones]

Ejemplo URI: file:data/inbox

En este ejemplo, Camel comprueba que file es el nombre asociado al componente FileComponent. Entonces, se le «avisa» a este componente de que tiene que crear un FileEndpoint utilizando el resto de la URI. En este caso, data/inbox sería la carpeta dónde se tendrían que leer/escribir  los ficheros (from/to en una ruta respectivamente).

Referencia: Camel in Action

2 comentarios en “Apache Camel: Qué es un endpoint

Deja un comentario