git.net

[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
auto-discover
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
that.

There is a little guide here how to add a new Camel component
http://camel.apache.org/add-new-component-guide.html

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.
http://camel.apache.org/camel-maven-archetypes.html





On Fri, Jun 15, 2018 at 12:48 PM, Rafal Korytkowski
<rkorytkowski@xxxxxxxxxx> wrote:
> Hi,
>
> We're considering implementing a Camel component for Teiid (http://teiid.io/)
> 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
> https://developer.jboss.org/thread/278138
> --
>
> -Rafał



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2