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 <rkorytkow...@redhat.com> 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