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. 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. 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 *