[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Teiid Camel component

Hi Rafal

Welcome to the Camel community.
It sounds great with a camel-teiid component.

Writing a Camel component is very open ended and you have a lot of freedom.

In terms of how to embed Teiid engine then Camel has no restrictions.
If there is one instance in the JVM, then we can let Camel
and use the instance in the camel-teiid component, so the end user do
not have to explicit configure this wiring.

Camel has its Registry abstraction over for example Spring Boot /
ApplicationContext (bean registry) or CDI's BeanManager, or OSGi
Service Registry etc.
So what other components is doing is to lookup in this registry if
there is a single instance of a specific class type, and then use

There is a little guide here how to add a new Camel component

We do have a maven archetype to create a new camel component project,
or what other people sometimes do is to copy an existing component and
then delete/modify its source code.

On Fri, Jun 15, 2018 at 12:48 PM, Rafal Korytkowski
<rkorytkowski@xxxxxxxxxx> wrote:
> Hi,
> We're considering implementing a Camel component for Teiid (
> and looking for your insights on some design aspects and general thoughts.
> Teiid is a data virtualization engine that comes as in-place real-time
> integration of heterogeneous data sources (~50). Teiid exposes them through
> a SQL engine and ODATA REST endpoints. It is typically run as a server
> being accessed by SQL clients.
> Data sources supported by Teiid are pretty much a subset of what Camel
> already supports, but the benefit we see is that it provides the SQL engine
> to access them all in a unified way, which makes integrations more
> straightforward than using custom APIs.
> It is currently possible to use the sql-camel/jdbc-camel component to
> connect to a running Teiid instance, but we are looking for a tighter
> integration by providing a way to embed the Teiid engine in a Camel
> component. It would simplify its usage.
> Would you have any recommendations for writing such a component?
> One aspect we need to consider is, if it would be possible to reuse somehow
> an instance of Teiid within a route or across routes or share some of
> Teiid's metadata so that we do not have to bring up an instance each time.
> Finally, we have just started a similar conversion on the Teiid forum so,
> if you are interested please also see
> --
> -Rafał

Claus Ibsen
----------------- @davsclaus
Camel in Action 2: