Hi Claus, Thanks a lot for your guidance!
I've got one follow up question. Is it a strict requirement for component's dependencies to be OSGI-fied? On Mon, Jun 18, 2018 at 9:01 AM Claus Ibsen <claus.ib...@gmail.com> wrote: > 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 > -- -Rafał