Thanks for bringing up this topic Ioannis.

On 4 January 2012 09:24, Ioannis Canellos <ioca...@gmail.com> wrote:
> As camel component list grows, I can see a lot of components doing similar
> things, but every component does things in its own way. A very common
> example are key/value components, here are some:
>
> camel-cache
> camel-hazelcast
> camel-krati
> camel-solr
> etc.


While writing some of the camel components recently I also had hard
time figuring out what is the preferred way of doing these tasks,
because there is no consistency among existing components.

>
> Each of the components listed above, behaves differently. Each component
> uses its own headers. Some components support key/values in the query
> string, some others don't and even when they do the names of the query
> parameters might be different.
>
> The result is lack transparency/conformity. I think that it would be a
> great improvement to abstract some of the key/value concepts (a
> KeyValueEndpoint/KeyValueProducer/KeyValueConsumer maybe?) and align those
> components so that they all work in a similar fashion.

In addition to abstracting these components, having some guidelines
for consistent naming of the header keys and URI options would also be
helpful I believe.

It seems like the current convention is to name headers like: Camel +
ComponentName+ HeaderName but it is not used this way everywhere.

my 2p
Bilgin

>
> Some of the components above also use serialization internally in order to
> serialize/deserialize key & value (e.g. krati/hbase). For this case data
> formats are not a really good fit (imho). I think that it would make sense
> to have an abstractions serializer that could be passed to an endpoint that
> supports pluggable serialization.
>
> What do you think?
>
> --
> *Ioannis Canellos*
> *
> FuseSource <http://fusesource.com>
>
> **
> Blog: http://iocanel.blogspot.com
> **
> Apache Karaf <http://karaf.apache.org/> Committer & PMC
> Apache Camel <http://camel.apache.org/> Committer
> Apache ServiceMix <http://servicemix.apache.org/>  Committer
> Apache Gora <http://incubator.apache.org/gora/> Committer
> Apache DirectMemory <http://incubator.apache.org/directmemory/> Committer
> *

Reply via email to