Search code examples
apache-camelhbaseapache-camel-3

Can Apache Camel integrate with an old component version?


I wonder if it is possible to integrate an old version of a Camel component, with an application of a newer Apache Camel version. In my case I want to integrate to Hbase server version 1.2, that is supported only with HBase client 1.2. Therefore even though I want to use a 3.1 Camel version, I want to use the 3.0.1 version of Camel-HBase component. Is it a fine thing to do?

Or is there any place that I can see the versions of the libraries Apache Camel supports?


Solution

  • You can check the Camel dependencies POM to find the versions of dependencies that are imported by the different components.

    See the dependencies POM of Camel 3.10.x. You will find <hbase-version>2.3.1</hbase-version> in it.

    Another source is Maven Central where you can see the dependency versions of a specific Camel component version.

    See Camel-HBase 3.1.0 that references Hbase-client 1.2.6.

    However, normally one cannot choose the Camel version to match a specific component dependency version. In general it is the other way round. You want or have to work with an already existing version or you want to use a current version to get the best of the framework.

    If you build a new application with Camel 3.10.x, you get the hbase-client in version 2.3.1.

    If newer Hbase client versions are not compatible with Hbase 1.2 it becomes difficult.

    • you get lots of problems when you mix and match Camel component versions
    • even if you can build your application with an older Camel version, you could never upgrade

    The only solution I see would be to isolate the Hbase integration in its own (freezed) application with an older Camel version that matches your desired Hbase-client version.