Apache Camel: Qué es un componente

En el post anterior creamos un componente en Camel, y ahora vamos a ver en detalle qué es un componente, mirando el código de nuestro proyecto.

  • Componente (HelloWorldComponent.java)

Para extender Camel podemos crear un componente, que nos permite interactuar con diferentes APIs, protocolos, etc… Su principal función es crear endpoints.

protected Endpoint createEndpoint(String uri,
                      String remaining, Map<String,
                      Object> parameters) throws Exception {
   Endpoint endpoint = new HelloWorldEndpoint(uri, this);
   setProperties(endpoint, parameters);
   return endpoint;
}

El método setProperties permite asignar propiedades a un endpoint. Veamos un ejemplo:

componente:endpoint?prop1=val1&prop2=val2

En este ejemplo, el método setProperties trataría de invocar setProp1(«val1») y setProp2(«val2») sobre el endpoint.

A los componentes se les asocia un nombre que se usa en la URI que define un endpoint. Podemos ver esta asociación en el fichero helloworld (en src/main/resources/META-INF/services/org/apache/camel/component)

class=com.wordpress.anadreamy.HelloWorldComponent

Con esta simple asociación podriamos utilizar helloworld (el nombre del fichero) como el nombre del componente dentro de la URI.

from("helloworld://foo")
 .to("helloworld://bar")

Referencia: Camel in Action

Un comentario en “Apache Camel: Qué es un componente

Deja un comentario