Camel In Action 2nd edition 読書会
2021年3⽉30⽇
19. Camel Tooling
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
l メリット:
l グラフィックエディターで開発及びデバッグ可能 (XML DSLを開発時のみ)
l エンドポイントのオプションを⾃動補完 (XML DSLを開発時のみ)
l CamelのドキュメントがIDE内で参照可能
l デメリット:
l メモリ消費が⼤きい(2GB以上)、動作が重い
Eclipse + Fuse Tooling plugin
2020
3
グラフィックエディターで開発 グラフィックエディターでデバッグ
l メリット:
l エンドポイントのオプションを⾃動補完 (XML DSL及びJava DSL)
l 動作が軽い
l デメリット:
l IntelliJ IDEA Community版の機能が制限されている、Ultimate版は有償
IntelliJ IDEA + Apache Camel IDEA plugin
2020
4
JavaDSL開発時に⾃動補完
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開発時に⾃動補完
l Eclipse Che
l Red Hat CodeReady Workspaces
l メリット:
l インブラウザのIDEなので、ブラウザさえあれば開発可能
l 開発環境⾃体はコンテナ化されるので、ローカルPCを汚さないし、開発の再開が速い
l ⾃動補完 & Remote Debug
l プラグインが多く、マルチ⾔語の開発に適している
l デメリット:
l まだ開発途上
l 現時点、動作が重い
今後はどうなる
2020
6
l 特徴:
l OSビルドイン or インブラウザ
l 3DエンジンベースのGUI
l AIによる⾃動⽣成と⾃動補完
l 開発環境も、実⾏環境もリモートにホストされる
将来はどうなる
2020
7
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
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>
エラー検出例
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
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
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
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”
で起動する。
l Hawtioの使い⽅:
l ブラウザで、http://localhost:8080/hawtio へアクセス
※ karafの場合は8181ポート
Hawtio
14
Hawtioでデバッグ例
1
2
3

More Related Content

PDF
15. running deploying camel
PDF
Monix Taskが便利だという話
PPT
Ruby on Rails3 Tutorial Chapter3
PPT
Ruby on Rails3 Tutorial Chapter2
PDF
CakePHP 1 to 2 Migration tips 100
PDF
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
PPTX
<第1回>Laravelハンズオンセミナー
PDF
Ruby on Rails Tutorial
15. running deploying camel
Monix Taskが便利だという話
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter2
CakePHP 1 to 2 Migration tips 100
SpringOne Platform 2016 報告会「A Lite Rx API for the JVM」/ 井口 貝 @ SmartNews, Inc.
<第1回>Laravelハンズオンセミナー
Ruby on Rails Tutorial

What's hot (20)

PDF
FlexUnit4とMockitoFlex
PPTX
120517 revert tomcat7
PDF
PDF
Head toward Java 15 and Java 16
PDF
Node.js勉強会 Framework Koa
PDF
behatエクステンションの作り方
PDF
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
PDF
Head toward Java 16 (Night Seminar Edition)
PDF
Open Liberty: オープンソースになったWebSphere Liberty
PDF
CakePHP2.0 performance, upgrade shell
PDF
Migration Guide from Java 8 to Java 11 #jjug
PDF
scala-kaigi1-sbt
PDF
MoteMote Compiler Plugin
PDF
JavaFX 2.0 - リッチクライアントのためのUI基盤
PDF
Plugman code-reading
PPTX
Spring Rooで作るGWTアプリケーション
PDF
Catch up Java 12 and Java 13
PDF
Head toward Java 13 and Java 14 #jjug
PDF
20120307 CakePHP Study in Tokyo
PDF
WildFly Swarmではじめる「パーツとしてのJavaEE」
FlexUnit4とMockitoFlex
120517 revert tomcat7
Head toward Java 15 and Java 16
Node.js勉強会 Framework Koa
behatエクステンションの作り方
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
Head toward Java 16 (Night Seminar Edition)
Open Liberty: オープンソースになったWebSphere Liberty
CakePHP2.0 performance, upgrade shell
Migration Guide from Java 8 to Java 11 #jjug
scala-kaigi1-sbt
MoteMote Compiler Plugin
JavaFX 2.0 - リッチクライアントのためのUI基盤
Plugman code-reading
Spring Rooで作るGWTアプリケーション
Catch up Java 12 and Java 13
Head toward Java 13 and Java 14 #jjug
20120307 CakePHP Study in Tokyo
WildFly Swarmではじめる「パーツとしてのJavaEE」
Ad

Similar to 19. camel tooling (11)

PDF
Agileツール適合化分科会(構成管理・ビルドツール)
ODP
Nseg20120929
PPT
Maven2 plugin
PDF
Gws 20140418 camel_groovy
PDF
11.6 camel error handling summary
PDF
TDD勉強会キックオフ for Java
PDF
Gws 20120521 gradle
PDF
Groovy base gradle_20130309
PPTX
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
PDF
Kaleidox
PDF
Gradle布教活動
Agileツール適合化分科会(構成管理・ビルドツール)
Nseg20120929
Maven2 plugin
Gws 20140418 camel_groovy
11.6 camel error handling summary
TDD勉強会キックオフ for Java
Gws 20120521 gradle
Groovy base gradle_20130309
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
Kaleidox
Gradle布教活動
Ad

More from Jian Feng (6)

PDF
17. camel clustering
PDF
13. parallel processing
PDF
11.4 camel on exception
PDF
11.2 camel error handler
PDF
10.2 camel rest dsl
PDF
10.1 res tful services
17. camel clustering
13. parallel processing
11.4 camel on exception
11.2 camel error handler
10.2 camel rest dsl
10.1 res tful services

19. camel tooling

  • 1. Camel In Action 2nd edition 読書会 2021年3⽉30⽇ 19. Camel Tooling
  • 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” で起動する。
  • 14. l Hawtioの使い⽅: l ブラウザで、http://localhost:8080/hawtio へアクセス ※ karafの場合は8181ポート Hawtio 14 Hawtioでデバッグ例 1 2 3