2. l 開発フェーズでは、開発に使⽤するエディターに併せて以下の開発ツーが選
べる
l Eclipse + Fuse Tooling plugin
l IntelliJ IDEA + Apache Camel IDEA plugin
l Visual Studio Code + Extension Pack for Apache Camel
l ビルドフェーズでは、以下のMaven Pluginが使える
l Camel Maven Plugin
l Camel Report Maven Plugin
l 運⽤フェーズでは、以下の管理ツールが使える
l WebコンソールのHawtio
l JMX系ツールのJconsole, Java Mission Control , VisualVM
Camelツールの⼀覧
2020
2
3. l メリット:
l グラフィックエディターで開発及びデバッグ可能 (XML DSLを開発時のみ)
l エンドポイントのオプションを⾃動補完 (XML DSLを開発時のみ)
l CamelのドキュメントがIDE内で参照可能
l デメリット:
l メモリ消費が⼤きい(2GB以上)、動作が重い
Eclipse + Fuse Tooling plugin
2020
3
グラフィックエディターで開発 グラフィックエディターでデバッグ
4. l メリット:
l エンドポイントのオプションを⾃動補完 (XML DSL及びJava DSL)
l 動作が軽い
l デメリット:
l IntelliJ IDEA Community版の機能が制限されている、Ultimate版は有償
IntelliJ IDEA + Apache Camel IDEA plugin
2020
4
JavaDSL開発時に⾃動補完
5. l メリット:
l エンドポイントのオプションを⾃動補完 (XML DSL及びJava DSL)
l 動作が軽い、プラグインが多く、マルチ⾔語、マルチ環境の開発に適している
l VSCode⾃体は⼈気である、普及率50%超えた(2018 à 34.9%、2019 à 50.7%)
l デメリット:
l PCか, Macかの実⾏環境が不可⽋
Visual Studio Code + Extension Pack for Apache Camel
2020
5
JavaDSL開発時に⾃動補完
6. l Eclipse Che
l Red Hat CodeReady Workspaces
l メリット:
l インブラウザのIDEなので、ブラウザさえあれば開発可能
l 開発環境⾃体はコンテナ化されるので、ローカルPCを汚さないし、開発の再開が速い
l ⾃動補完 & Remote Debug
l プラグインが多く、マルチ⾔語の開発に適している
l デメリット:
l まだ開発途上
l 現時点、動作が重い
今後はどうなる
2020
6
7. l 特徴:
l OSビルドイン or インブラウザ
l 3DエンジンベースのGUI
l AIによる⾃動⽣成と⾃動補完
l 開発環境も、実⾏環境もリモートにホストされる
将来はどうなる
2020
7
8. l Fabric8チームがApache camelへ寄付した
l Camel 2.20以降にビルドイン(Camel 2.x系のみ)
l Cheers — fabric8 Camel Maven Plugin to validate Camel endpoints from source code
l Camel Maven Plugin のできること:
l camel:validate : Maven プロジェクトのソースコードを検証し、Camel エンドポイント
URI を検証し、URI⽂法と無効なオプションを検出する
Camel Maven Plugin
2020
8
9. l Camel Maven Pluginの使い⽅:
l 1. pom.xmlに<plugin>を追加
l 2. mvn camel:validate を実⾏
Camel Maven Plugin
2020
9
<!-- run using camel:validate -->
<plugin>
<groupId>org.apache.camel</groupId>
<artifactId>camel-maven-plugin</artifactId>
<version>${camel-version}</version>
<executions>
<execution>
<configuration>
<!-- lets not fail the build on errors -->
<failOnError>false</failOnError>
<!-- lets also check the unit test source code -->
<includeTest>true</includeTest>
</configuration>
<!-- validate during build of the project -->
<phase>process-classes</phase>
<goals>
<goal>validate</goal>
</goals>
</execution>
</executions>
</plugin>
エラー検出例
10. l Camel Maven Plugin の拡張
l Camel 3.x系で使⽤可能
l Camel Report Maven Pluginのできること:
l Camel-report:validate : Maven プロジェクトのソースコードを検証し、Camel エン
ドポイント URI を検証し、URI⽂法と無効なオプションを検出する
l Camel-report:route-coverage : Unit Test実⾏後、Camel Routeのカバリッジを報告
する
l Camel Maven Pluginの使い⽅:
l CAMEL REPORT MAVEN PLUGIN
Camel Report Maven Plugin
2020
10
11. l Camel 2.17以降のリリースには、リリースに含まれる内容に関するあらゆる
種類の情報が記載された「Camel Catalog」も提供される
l Camel Catalogは、前述のツール内でも使⽤されている
l Camel CatalogはJar形式で配布、以下の情報が含まれる
l 各種コンポーネント、データフォーマット、⾔語、EIPなどの⼀覧
l Spring-boot, Apache Karafランタイムの情報
l 全オプションに関する詳細がJSON Schema形式で配布
l カテゴライズされたオプション
l XML DSLに使われるXML Schema
l Camel Archetype
l CamelのWebサイトのドキュメント(adoc、html形式)
l CamelエンドポイントURI、シンプル⾔語のValidator
l CamelエンドポイントURIの⽣成⽤のAPI
l Java, JMX, REST API
Camel Catalog: 情報の⾦鉱
2020
11
12. l “Itʼs a pluggable management console for Java stuff that supports any kind of
JVM, any kind of container (Tomcat, Jetty, Spring Boot, Karaf, JBoss, WildFly,
fabric8, etc.), and any kind of Java technology and middleware.”
̶http://hawt.io/faq/index.html
l Hawtioのできること:
l JVM内で実⾏しているCamel Application (Camel Context)の⼀覧表⽰
l Camel Context、Camel Routeの実⾏時統計情報表⽰
l Camel Context、Camel RouteのStart/Stop/Pause/Resumeの操作
l Camel Route(XML DSL & Java DSL)のグラフィック表⽰
l Camel Routeのライブトレーシングとデバッグ
Hawtio
2020
12
13. l Hawtioを有効化する⽅法:
l Karafの場合:
l Spring-boot2の場合:
l Pom.xml
l application.properties
l Main.javaの場合:
l Pom.xml
Hawtio
2020
13
<dependency>
<groupId>io.hawt</groupId>
<artifactId>hawtio-springboot</artifactId>
</dependency>
karaf@root()> feature:repo-add hawtio 1.5.6
karaf@root()> feature:install hawtio
# Fuse console settings
management.endpoints.web.exposure.include=hawtio,jolokia
management.endpoint.hawtio.enabled=true
management.endpoint.jolokia.enabled=true
management.endpoints.web.base-path=/
hawtio.authenticationEnabled=false
<!-- allows to run the example with hawtio -->
<plugin>
<groupId>io.hawt</groupId>
<artifactId>hawtio-maven-plugin</artifactId>
<version>${hawtio-version}</version>
<configuration>
<mainClass>camelinaction.MainApp</mainClass>
</configuration>
</plugin>
※ “mvn compile hawtio:run”
で起動する。