Submit Search
Upload
WildFly Swarm - Rightsize Your Java EE Apps
•
8 likes
•
5,147 views
Yoshimasa Tanabe
Follow
2016-06-27 JJUGナイトセミナー Javaフレームワーク特集 https://jjug.doorkeeper.jp/events/46954
Read less
Read more
Software
Report
Share
Report
Share
1 of 52
Download now
Download to read offline
Recommended
WildFly Swarm In Progress
WildFly Swarm In Progress
Yoshimasa Tanabe
Introduction to WildFly Swarm
Introduction to WildFly Swarm
Yoshimasa Tanabe
Introduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjug
Yoshimasa Tanabe
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
Yoshimasa Tanabe
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷java
Yoshimasa Tanabe
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
Norito Agetsuma
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
Norito Agetsuma
Recommended
WildFly Swarm In Progress
WildFly Swarm In Progress
Yoshimasa Tanabe
Introduction to WildFly Swarm
Introduction to WildFly Swarm
Yoshimasa Tanabe
Introduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjug
Yoshimasa Tanabe
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
Yoshimasa Tanabe
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷java
Yoshimasa Tanabe
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
Norito Agetsuma
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
Norito Agetsuma
Java EE8 Report
Java EE8 Report
Norito Agetsuma
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
Hiroyuki Ohnaka
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
賢 秋穂
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Masatoshi Tada
Hello Java
Hello Java
Chihiro Ito
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
Masatoshi Tada
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ
jjugccc2018 app review postmortem
jjugccc2018 app review postmortem
tamtam180
Java SE 再入門
Java SE 再入門
minazou67
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
Takahiro YAMADA
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
Ryuji Yamashita
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
はじめてのSpring Boot
はじめてのSpring Boot
なべ
JavaOne2015報告会 Java EE アップデート #j1jp
JavaOne2015報告会 Java EE アップデート #j1jp
Norito Agetsuma
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Java女子部
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
Toshiaki Maki
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今
Koichi Sakata
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
Ryusuke Kajiyama
Advanced database monitoring in modern java
Advanced database monitoring in modern java
Chihiro Ito
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
From Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjug
Toshiaki Maki
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
Hiroyuki Ito
More Related Content
What's hot
Java EE8 Report
Java EE8 Report
Norito Agetsuma
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
Hiroyuki Ohnaka
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
賢 秋穂
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Masatoshi Tada
Hello Java
Hello Java
Chihiro Ito
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
Masatoshi Tada
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ
jjugccc2018 app review postmortem
jjugccc2018 app review postmortem
tamtam180
Java SE 再入門
Java SE 再入門
minazou67
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
Takahiro YAMADA
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
Ryuji Yamashita
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
はじめてのSpring Boot
はじめてのSpring Boot
なべ
JavaOne2015報告会 Java EE アップデート #j1jp
JavaOne2015報告会 Java EE アップデート #j1jp
Norito Agetsuma
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Java女子部
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
Toshiaki Maki
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今
Koichi Sakata
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
Ryusuke Kajiyama
Advanced database monitoring in modern java
Advanced database monitoring in modern java
Chihiro Ito
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
What's hot
(20)
Java EE8 Report
Java EE8 Report
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
20160521 大規模映像配信サービスの Java8による全面リニューアルの裏側
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Hello Java
Hello Java
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
jjugccc2018 app review postmortem
jjugccc2018 app review postmortem
Java SE 再入門
Java SE 再入門
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
はじめてのSpring Boot
はじめてのSpring Boot
JavaOne2015報告会 Java EE アップデート #j1jp
JavaOne2015報告会 Java EE アップデート #j1jp
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
Seasar2で作った俺たちのサービスの今
Seasar2で作った俺たちのサービスの今
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
Advanced database monitoring in modern java
Advanced database monitoring in modern java
Spring bootでweb 基本編
Spring bootでweb 基本編
Viewers also liked
From Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjug
Toshiaki Maki
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
Hiroyuki Ito
缶詰屋さんの課題解決にスクラムを使ってみた
缶詰屋さんの課題解決にスクラムを使ってみた
Toshiyuki Ohtomo
Eclipse IoT - ecosystem
Eclipse IoT - ecosystem
Boris Adryan
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
Presentation
Presentation
Laxman Kumar
AD Authenticate All The Things
AD Authenticate All The Things
Alan Williams
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Leo Lorieri
Openshift v3-a-revolucao-dos-containers-3
Openshift v3-a-revolucao-dos-containers-3
Ricardo Martinelli de Oliveira
Sprint 38 review
Sprint 38 review
ManageIQ
Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016
Charles Moulliard
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly Swarm
Comsysto Reply GmbH
WildFly Swarm: Criando Microservices com Java EE 7
WildFly Swarm: Criando Microservices com Java EE 7
George Gastaldi
JBoss AS7
JBoss AS7
nekop
JBoss AS7 rev2
JBoss AS7 rev2
nekop
Security enforcement of Microservices with API Management
Security enforcement of Microservices with API Management
Charles Moulliard
JBoss Application Server 入門~ Seasar2を動かして見よう!~ on Seasar Conference 2009 White
JBoss Application Server 入門~ Seasar2を動かして見よう!~ on Seasar Conference 2009 White
bose999
RedHat MW 2015
RedHat MW 2015
omatsuha
Security enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & Keycloak
Charles Moulliard
Wicket + EJB3 on JBoss (Japanese)
Wicket + EJB3 on JBoss (Japanese)
bose999
Viewers also liked
(20)
From Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjug
アジャイルメトリクス実践ガイド
アジャイルメトリクス実践ガイド
缶詰屋さんの課題解決にスクラムを使ってみた
缶詰屋さんの課題解決にスクラムを使ってみた
Eclipse IoT - ecosystem
Eclipse IoT - ecosystem
Swaggerで始めるモデルファーストなAPI開発
Swaggerで始めるモデルファーストなAPI開発
Presentation
Presentation
AD Authenticate All The Things
AD Authenticate All The Things
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Openshift v3-a-revolucao-dos-containers-3
Openshift v3-a-revolucao-dos-containers-3
Sprint 38 review
Sprint 38 review
Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly Swarm
WildFly Swarm: Criando Microservices com Java EE 7
WildFly Swarm: Criando Microservices com Java EE 7
JBoss AS7
JBoss AS7
JBoss AS7 rev2
JBoss AS7 rev2
Security enforcement of Microservices with API Management
Security enforcement of Microservices with API Management
JBoss Application Server 入門~ Seasar2を動かして見よう!~ on Seasar Conference 2009 White
JBoss Application Server 入門~ Seasar2を動かして見よう!~ on Seasar Conference 2009 White
RedHat MW 2015
RedHat MW 2015
Security enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & Keycloak
Wicket + EJB3 on JBoss (Japanese)
Wicket + EJB3 on JBoss (Japanese)
Similar to WildFly Swarm - Rightsize Your Java EE Apps
Gradle handson
Gradle handson
Nemoto Yusuke
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
Akio Katayama
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)
torutk
Active Object
Active Object
y-uti
Android4.2徹底解剖!
Android4.2徹底解剖!
leverages_event
R5 3 type annotation
R5 3 type annotation
EIICHI KIMURA
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
はじめてのJPA
はじめてのJPA
kawaba
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
NTT DATA OSS Professional Services
Cve 2013-0422
Cve 2013-0422
abend_cve_9999_0001
2012年javaメモリリーク
2012年javaメモリリーク
torutk
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
Takahiro YAMADA
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Yuji Kubota
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
David Buck
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
Yuta Kawadai
第12回 つ部 ミーティング兼忘年会 LT資料
第12回 つ部 ミーティング兼忘年会 LT資料
Kenji Nagase
React Native GUIDE
React Native GUIDE
dcubeio
TDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Nobuhiro Sue
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
akira6592
Java in the World of Container by David Buck
Java in the World of Container by David Buck
オラクルエンジニア通信
Similar to WildFly Swarm - Rightsize Your Java EE Apps
(20)
Gradle handson
Gradle handson
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)
Active Object
Active Object
Android4.2徹底解剖!
Android4.2徹底解剖!
R5 3 type annotation
R5 3 type annotation
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
はじめてのJPA
はじめてのJPA
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
Cve 2013-0422
Cve 2013-0422
2012年javaメモリリーク
2012年javaメモリリーク
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
OpenJDKソムリエと巡るJDKワイナリーツアー #sfggjp #javajo
Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
第12回 つ部 ミーティング兼忘年会 LT資料
第12回 つ部 ミーティング兼忘年会 LT資料
React Native GUIDE
React Native GUIDE
TDC20111031_Groovy_Geb
TDC20111031_Groovy_Geb
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
Java in the World of Container by David Buck
Java in the World of Container by David Buck
WildFly Swarm - Rightsize Your Java EE Apps
1.
Rightsize Your Java
EE Apps 田邊 義真 @emaggame http://morec.at 2016-06-27 JJUG ナイトセミナー Java フレームワーク特集
2.
Topics ● WildFly/WildFly Swarm ? ● 基本的な使い方 ● Fractions ● 便利な機能 ● コミュニティ
3.
WildFly? WildFly Swarm??
4.
● wildfly.org ● Java EE 7
対応 AP サーバ ● 高速な起動 ● 高度な管理インタフェース ● Module Class Loader
5.
● wildfly-swarm.io ● WildFly を組込んだ uber
jar を作成可能 ● 機能 (Fraction) に応じた構成の実現 ● 各種インテグレーション ( 例 Netflix OSS)
6.
Monolithic Application Server All
In One のため、スリム化は自身で行う必要がある https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-guide/content/getting-started/basics.html
7.
WildFly Swarm Uberjar ● 分割と再構築 ● Fraction
という単位で構成 ● アプリケーションに必要なもののみ利用できる https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-guide/content/getting-started/basics.html
8.
基本的な使い方
9.
利用したい Fraction を選択 <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>jaxrs</artifactId> </dependency>
10.
Java EE アプリケーションを書く @Path("/hello") public
class HelloWorld { @GET @Produces(MediaType.APPLICATION_JSON) public String hello() { return "{"message" : "Hello, WildFly Swarm!"}"; } }
11.
main() メソッド public class
App { public static void main(String[] args) ... { // WildFly を表す Container container = new Container(args); // デプロイするアプリケーション JAXRSArchive deployment = ...; // WildFly の起動とアプリケーションのデプロイ container.start().deploy(deployment); } }
12.
uber jar にするためのプラグイン <plugin> <groupId>org.wildfly.swarm</groupId> <artifactId>wildfly-swarm-plugin</artifactId> <configuration> <mainClass>your.awesome.App</mainClass> </configuration> <executions><execution> <goals><goal>package</goal></goals> </execution> </executions> </plugin>
13.
あとは実行するだけ ● mvn package &&
java -jar yourapp-swarm.jar ● mvn wildfly-swarm:run ● Run main() from IDE $ curl localhost:8080/hello {"message" : "Hello, WildFly Swarm!"} Gradle も利用できます https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-guide/content/getting-started/tooling/gradle-plugin.html
14.
通常の WildFly との比較 ● WildFly 1.Download/Install 2.設定 3.起動
& デプロイ ● WildFly Swarm 1.依存性で解決 2.設定・起動・デプロイは すべて main() で記述
15.
Fractions
16.
Fraction ● 機能や設定の単位 ● Convention over configuration
17.
Fractions 一覧※ core jolokia vertx drools netflix spring spring-boot topology-jgroups topology-consul topology-openshift swagger keycloak logstash servers camel ※ これは大まかな
( リポジトリの ) 単位。 実際に依存性を追加する単位を知りたい場合は以下サイトの View all available dependencies をクリック http://wildfly-swarm.io/generator/
18.
Fractions 一覧※ core jolokia vertx drools netflix spring spring-boot topology-jgroups topology-consul topology-openshift swagger keycloak logstash servers camel この資料で紹介 ※ これは大まかな
( リポジトリの ) 単位。 実際に依存性を追加する単位を知りたい場合は以下サイトの View all available dependencies をクリック http://wildfly-swarm.io/generator/
19.
core ● Java EE や
WildFly の subsystem 相当 – JAX-RS, CDI, JPA, … – Undertow, Datasources, Logging, ...
20.
Datasources(core) <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>datasources</artifactId> </dependency> ※jpa を利用する場合は自動的に追加される <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>jpa</artifactId> </dependency>
21.
Datasources(core) Container container =
... container.fraction(new DatasourcesFraction() .jdbcDriver(<jdbc driver settings>) .dataSource(myDS, ds -> ds .driverName(...) .connectionUrl(...) .userName(...) .password(...) ) ); WildFly の設定内容がそのまま API になっている
22.
テスト書いてないとか ...
23.
!!!
24.
Arquillian(core) ● arquillian.org ● 実際に AP サーバを起動
/ デプロイしてテストする 本物の EJB や CDI コンテナを利用できる ● 通常 WildFly を事前にインストールする必要あり – WildFly Swarm では不要
25.
Arquillian(core) <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>arquillian</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.arquillian.junit</groupId> <artifactId>arquillian-junit-container</artifactId> <scope>test</scope> </dependency>
26.
Arquillian(core) @RunWith(Arquillian.class) public class AwesomeIT
implements ContainerFactory { @Deployment public static Archive createDeployment() {...} @Override public Container newContainer(String... args) {...} @Test public void test() {...} } 1.0.0.CR2 で ContainerFactory を implements しない方法も追加 http://wildfly-swarm.io/posts/announcement-1-0-0-cr2/#_arquillian_testing_improvements
27.
テストもばっちり ! ∩ ∩
28.
Ribbon/Hystrix(Netflix OSS) ● github.com/Netflix Ribbon Service A Service
A' クライアントサイド ロードバランシング Hystrix Service A サーキットブレーカ Service Afallback
29.
Ribbon/Hystrix(Netflix OSS) <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>ribbon</artifactId> </dependency> <dependency> <groupId>org.jboss.arquillian.junit</groupId> <artifactId>hystrix</artifactId> </dependency>
30.
Ribbon/Hystrix(Netflix OSS) ● Ribbon や
Hystrix を使う下準備を支援 ● 現状、アノテーションで有効というわけではなく、 Ribbon/Hystrix の API を書く必要あり※ ● 利用例としては公式チュートリアルがわかりやすい – http://wildfly-swarm.io/tutorial/ ※ ボイラープレートを減らすための issue は切られている https://issues.jboss.org/browse/SWARM-521
31.
Topology ● サービスディスカバリ Service A Service Discovery
32.
Topology ● サービスディスカバリ ● 実装として以下の 3 種類が利用できる –
jgroups – consul – openshift <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>topology-x</artifactId> </dependency>
33.
Topology ● 実装によらず同じようにサービス登録可能※ JAXRSArchive deployment =
… deployment .as(TopologyArchive.class) .advertise("awesome-service"); ※consul の URL などは別途 API ないしシステムプロパティなどで渡す
34.
Topology(consul での例 ) consul-ui
の画面 サービスを 8080/8180 ポートで 2 インスタンスで立ち上げている
35.
Keycloak ● keycloak.org ● いろいろな認証 / 認可に対応した
SSO サーバ ● WildFly Swarm では認証クライアント設定用 API を提供
36.
Keycloak JAXRSArchive deployment =
… deployment.as(Secured.class) .protect("/entries/*") .withMethod("POST", "PUT", "DELETE") .withRoles("author"); <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>keycloak</artifactId> </dependency>
37.
Swagger ● swagger.io ● API からドキュメントやモックを生成 ● Swagger を
JAX-RS で利用する場合の下準備を いろいろやってくれる
38.
Swagger <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>swagger</artifactId> </dependency>
39.
Swagger @Path("/time") @Api(...) public class TimeResource
{ @GET @Path("/now") @Produces(MediaType.APPLICATION_JSON) @ApiOperation(...) public String get() {…} }
40.
Swagger $ curl localhost:8080/swagger.json ... { "swagger":
"2.0", ... "paths": { "/time/now": { "get": { "summary": "Get the current time", "description": "Returns the time as a string", "produces": ["application/json"], "responses": {"200": ... ... }
41.
Swagger UI によるドキュメント化
42.
Swagger UI によるドキュメント化
43.
Spring/Spring Boot ● Spring +
WildFly はよく見かける組み合わせ 現状ユーザガイド未記載なので、サンプルを参照 https://github.com/wildfly-swarm/wildfly-swarm-examples/tree/master/spring https://github.com/wildfly-swarm/wildfly-swarm-examples/tree/master/spring-boot 突然現れるバナー
44.
便利な機能
45.
project-stages.yml https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-guide/content/configuration/#_configuration_overlays_using_stage_properties # defualt ステージ database: connection: url:
jdbc:h2:mem:dev --- project: stage: production database: connection: url: jdbc:postgresql://localhost:5432/awesome-db
46.
project-stages.yml ● 起動時にステージ名を渡す – -Dswarm.project.stage=<stage name> Container
container = … container .stageConfig() .resolve("database.connection.url") .getValue() https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-guide/content/configuration/#_configuration_overlays_using_stage_properties
47.
コミュニティ
48.
コミュニティ ● @wildflyswarm ● Google Groups ● IRC(#wildfly-swarm on
Freenode) ● ドキュメント – https://wildfly-swarm.gitbooks.io/wildfly-swarm-users-guide/content/ ● サンプル – https://github.com/wildfly-swarm/wildfly-swarm-examples
49.
コミュニティ http://wildfly-swarm.io/posts/announcement-1-0-0-cr2/ ● わかる範囲での質問の受け答え ● バグ報告 ● ちょっとした p-r ● ヘルパーメソッド追加 ● バグフィックス ● サンプル追加 ● 最初のバージョンが出てからウォッチ 自分がやったこと
50.
さいごに
51.
WildFly Swarm Tour ● ひととおり
WildFly Swarm を触ってみるガイド – 最新の WildFly Swarm に追従 – JAX-RS/CDI/JPA – Arquillian – Keycloak – Docker https://emag.gitbooks.io/wildfly-swarm-tour/content/
52.
所感 ● まだ GA ではないもののだいぶ安定してきた ● 開発からまだ
1 年、そこまで色がついておらず、 今後生かすも殺すもコミュニティ次第と感じる ● ぜひ応援お願いします !!
Download now