LoginSignup
5
5

More than 5 years have passed since last update.

Apache Camel 2.19.0 の新機能

Last updated at Posted at 2017-05-10

Apache Camel 2.19.0 がリリースされたので、注目機能をまとめてみる。
http://camel.apache.org/camel-2190-release.html

Apache Camel とは

Apache Camel は 軽量かつ高機能なインテグレーションフレームワーク。Java で作られているが、Scala、Kotlin、Clojure など他の JVM 言語上でも使えるはずである。

  • デフォルトで 200 以上用意されているコンポーネントを使って、様々な外部サービスやインタフェースに接続できる。
  • Java / XML DSL で Enterprise Integration Patterns (EIP) が完全に実装されていて、外部からの入出力メッセージをきれいにルーティングできる。
  • 単一の JAR ライブラリとしてプログラムに組み込む用途から、JBoss Fuse のようなフルスタックの ESB サーバのコアルーティングエンジンとしての用途まで、幅広く使える。
  • Spring Boot をサポートしていて、クラウド上でのマイクロサービスな使い方もできる。

2.19.0 の注目機能

一番の目玉は、Camel Connector の導入。その他、追加された機能は数が多いので、細かいものは省略して注目すべきもののみ以下にリストアップした。(全部を確認したい方は、こちらを参照。)

  • Camel Connector が新たに導入された。Connector は Component よりもユースケースを絞って、すぐに外部システムと連携できるようにしたもの。本格的なインテグレーションエンジニアでないシチズンインテグレータ(a.k.a. iPaaS ユーザ)が、簡単にシステム間連携を組めることを目指したもの。
  • Spring Boot
    • Spring Boot 1.5.x にアップグレード。
    • すべての Camel Spring Boot starter コンポーネントがメタデータのデフォルト値を持つようにし、各種開発ツールから確認できるようにした。
    • Camel Spring Boot starter コンポーネントは自動設定を org.apache.camel.springboot.CamelAutoConfiguration に依存するようにした。こうすることで、単体テストで org.apache.camel.springboot.CamelAutoConfiguration を除くことで Camel Spring Boot の自動設定を無効にできるようになった。
  • ツール系
    • Camel Maven Plugin に camel:validate ゴールを追加。コンパイル時に Java / XML ルート DSL のバリデーションができる。
    • Camel Main、Spring Boot、および Camel Maven Plugin が自動で JVM を停止するようになった。停止条件は、一定時間の経過、全メッセージ処理終了、および一定のアイドル時間、を設定できる。
    • Camel Maven Plugin が XML DSLからのライブリロードをできるようになった。Main クラスからも、ライブリロードの設定が可能。
    • OWASP dependency check Maven プラグインのサポート。
  • Camel 3.0 で廃止予定のコンポーネントと camel-core API をさらに非推奨にした。
  • Camel のソースコードを Java 9 でもビルドできるようにした。
  • ReloadStrategy SPI を導入した。これにより、カスタムプロバイダがルートのライブリロードを開始できるようになる。
  • Camel Catalog による、特定のコンポーネント、言語、データ形式しかサポートしないカスタムランタイムプロバイダのサポート。サンプルは camel-catalog-provider-karaf (Karaf) と camel-catalog-provider-springboot (Spring Boot) を参照。
  • Failover Load Balancer に inheritErrorHandler=false を設定した場合、ロードバランサが枯渇したあとに Camel の Error Handler が実行されるようになった。
  • Camel ルートの XML ダンプが xpath 表記のカスタム名前空間を含むようにした。同様に、XML Camel ルートを編集すると xpath 表記の名前空間が追加される。
  • RouteIdFactory の追加。RouteIdFactory を使えば、ルート ID を route1route2 よりも意味のある名前に自動設定できる。
  • Simple 言語に skip 関数を追加。
  • Jetty 9.3 へアップグレード。(Karaf 4.0.x ユーザ向けに Jetty 9.2 は引き続きサポート。)
  • サンプルのまとめをソースコードから生成するようにしたので、常に最新の状態を確認できるようになった。https://github.com/apache/camel/tree/master/examples#examples
  • データ型に基づく宣言的な Transformer と Validator を導入。使い方のサンプルは camel-example-transformer-blueprintcamel-example-transformer-cdicamel-example-transformer-democamel-example-validator-spring-boot を参照。

コンポーネント別の新機能

  • Bean コンポーネント
    • Callable インスタンスを返すメソッドを呼び出した場合、その Callable のメソッドも呼び出すようにした。それによって、Groovy の関数/クロージャなどが呼び出せるようになった。
  • Salesforce コンポーネント
    • limits, recent items, approvals and composite API のサポート。
  • NATS コンポーネント
    • TLS とコネクション自動フラッシュのサポート。
  • Metrics コンポーネント
    • Gauge タイプサポート。
  • File コンポーネント
    • idempotent-changed または idempotent-rename によるクラスタリングの読込ロック・ストラテジのサポート。
  • CDI コンポーネント
    • RouteBuilder auto-configuration can now be disabled from Camel CDI configuration
    • Camel contexts automatic start can now be disabled from Camel CDI configuration
    • Camel CDI now provides support for TransactionErrorHandler and TransactionPolicy via JTA
  • Kafka コンポーネント
    • オフセット状態をオフラインに保存(stateRepository)して、前回のオフセットから再開できるようにした。
    • コンポーネントをより簡単に設定/利用できるように改良した。
    • Idempotent Consumer EIP 向けの、Kafka によるトピックベースのべき等リポジトリの導入。
    • メッセージ送信時にメッセージボディを自動で型変換するようにした(デフォルトのシリアライザは String)。また、keypartitionKey をエンドポイント URI で指定できるようになった。
    • Kafka Consumer が停止時に自動コミットできるようになった。autoCommitOnStop オプションの値は次の通り: sync, async, none
  • Box コンポーネント
    • v2 Java API に移行。
  • JPA コンポーネント
    • JPA Producer のクエリサポート追加。

2.19.0 の新機能に関するブログ

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5