Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to WildFly Swarm #jjug

1,704 views

Published on

2015-08-10 JJUG ナイト・セミナー 「ビール片手にLT&納涼会」での発表資料です。

http://www.java-users.jp/?p=1993

Published in: Software
  • Be the first to comment

Introduction to WildFly Swarm #jjug

  1. 1. Introduction to WildFly Swarm 2015-08-10(月) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 http://www.java-users.jp/?p=1993 田邊 義真(たなべ よしまさ) @emaggame http://morec.at
  2. 2. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 2 Java EE で Spring Boot みたいなの やりたい
  3. 3. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 3 選択肢 ● Spring Boot + Java EE API ● Payara Micro ● WildFly Swarm
  4. 4. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 4 Spring Boot + Java EE API ● Spring は Java EE の API もいろいろサポート – JAX-RS, JSR-330 の DI アノテーション, JTA, JMS … ● API だけでも使い慣れたものにしたい、ということであれば いいかも ● 参考 – [翻訳] Spring Boot 1.2における"Bootiful" なJava EEサポート ● https://blog.ik.am/#/entries/296
  5. 5. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 5 Payara Micro ● Payara は GlassFish から fork されたアプリケーションサーバ ● fat-jar ではなく、 以下のように実行 – java -jar payara-micro.jar --deploy test.war – payara-micro.jar を用意すればふつうの war がすぐ動く! ● 参考 – Payara Micro を試してみる ● http://www.coppermine.jp/docs/programming/2015/04/pay ara-micro.html
  6. 6. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 6 WildFly で Spring Boot みたいなの やりたい...
  7. 7. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 7 WildFly Swarm ● WildFly Swarm は WildFly の実験的サブプロジェクト – WildFly = JBoss Application Server が改名 ● WildFly が動作するためのもろもろのライブラリをかき集めて、Java EE アプリケーションを fat-jar として実行できるようにしたもの ● ドキュメントサイト(いずれ gitbooks.io などに変わるかも ) – http://wildfly.org/swarm/ ● GItHub – https://github.com/wildfly-swarm/wildfly-swarm
  8. 8. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 8 WildFly Swarm を動かすまで ● Spring Boot のよさ – Spring Boot の依存性を 1 つ追加するだけで、必要な ライブラリの依存性から設定までを よきにやってくれ、す ぐにアプリケーション作成に着手、 fat-jar で即実行でき る。 カスタマイズは JavaConfig や 設定ファイル で。
  9. 9. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 9 WildFly Swarm を動かすまで ● WildFly Swarm では? – Maven プラグインと、使いたい API の依存性を追加 <dependency> <groupId>org.wildfly.swarm</groupId> <artifactId>wildfly-swarm-jaxrs</artifactId> <version>${version.wildfly-swarm}</version> </dependency> <plugin> <groupId>org.wildfly.swarm</groupId> <artifactId>wildfly-swarm-plugin</artifactId> <version>${version.wildfly-swarm}</version> <configuration> <mainClass>foo.App</mainClass> </configuration> <executions> <execution> <goals> <goal>package</goal> </goals> </execution> </executions> </plugin> JAX-RS
  10. 10. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 10 WildFly Swarm を動かすまで ● WildFly Swarm では? – Gradle プラグインと、使いたい APIの依存性を追加 buildscript { dependencies { classpath "org.wildfly.swarm:wildfly-swarm-plugin:$version" } } apply plugin: 'wildfly-swarm' apply plugin: 'application' mainClassName = 'org.wildfly.swarm.examples.gradle.Main' dependencies { compile "org.wildfly.swarm:wildfly-swarm-jaxrs:$version" } 公式サンプルは以下 http://bit.ly/1N0LIIu
  11. 11. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 11 WildFly Swarm を動かすまで ● WildFly Swarm では? – ふつうの JAX-RS import javax.ws.rs.GET; import javax.ws.rs.Path; @Path("/") public class Hello { @GET public String get() { return "Hello, WildFly Swarm!"; } }
  12. 12. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 12 WildFly Swarm を動かすまで ● WildFly Swarm では? – main() でクラスを登録、必要であれば設定(データソースとか) import org.jboss.shrinkwrap.api.ShrinkWrap; import org.wildfly.swarm.container.Container; import org.wildfly.swarm.jaxrs.JAXRSArchive; public class App { public static void main(String[] args) throws Exception { Container container = new Container(); JAXRSArchive deployment = ShrinkWrap.create(JAXRSArchive.class); deployment.addClass(Hello.class); deployment.addAllDependencies(); container.start().deploy(deployment); } }
  13. 13. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 13 WildFly Swarm を動かすまで ● アプリケーション実行 その1 – java -jar app-swarm.jar ● mvn package/gradle build すると <app-name>- swarm.jar という fat-jar ができる $ java -jar app-swarm.jar <date> INFO [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final <date> INFO [org.jboss.as] (MSC service thread 1-8) WFLYSRV0049: ... ...
  14. 14. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 14 WildFly Swarm を動かすまで ● アプリケーション実行 その2 – mvn wildfly-swarm:run – gradle run
  15. 15. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 15 WildFly Swarm を動かすまで ● アプリケーション実行 その3 – IDE > Run ● IDE から main() 指定で実行できる
  16. 16. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 16 WildFly Swarm 現状 ● Java EE API として JAX-RS, CDI, EJB, JSF, JPA, JMS など、おおよその Java EE API が利用可 ● Netflix や Logstash、 Keycloak(SSOサーバ)など がすぐ利用できるインテグレーションもあり ● ドキュメントはあまりないが、サンプルを見ればなん とかなる – https://github.com/wildfly-swarm/wildfly-swarm- examples
  17. 17. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 17 WildFly Swarm 現状 ● まだ Alpha。 プロダクション環境には非推奨 ● WildFly 本体の設定群に追従する仕組みがな く、WildFly の設定(データソースなど)を全ては使え ない。ただし、なんとかしようとする動きはあり ● https://github.com/wildfly-swarm/wildfly-swarm/issues/98 ● Spring Loaded/Auto restart Class Loader 相当 の機能がなく、JRebel も動かない
  18. 18. 2015-08-10(土) JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 18 最後に ● ぜひ WildFly Swarm を触ってみてください! WildFly 好きには目が離せない プロジェクトです ● 何やらマイクロサービスっぽいそこそこの規模のサンプルも作成中のようです – https://github.com/wildfly-swarm/booker ● APサーバで動いて WF-Swarm で動かない場合は WF-Swarm が対応してい ないだけなので、 issue 登録を! ● 気に入った方は GitHub のウォッチや公式 Twitter アカウントのフォローな ど... – https://twitter.com/wildflyswarm

×