* PowerAssertってJavaから使えないの?→無理ぽ。Spock使うしか無さそう。 GroovyのPowerAssert便利なので、なんとかJavaからも・・・つまりJUnitとかTestNGとかから使えないもんかな~と前から思ってたんですが、結論から言うと無理ぽで、テストフレームワークとしてSpock使うしか無さそうでした。 - maven - Using Groovy PowerAssert in Java - Stack Overflow -- http://stackoverflow.com/questions/13742752/using-groovy-powerassert-in-java --- まともに回答されてなさげ。 そもそもPowserAssertはAST変換でかなり頑張って色々組み換えてやってくれてるみたいなので、単純なAPI呼べばOK、みたいな実装にはなってないようです。 - Power Assertを試してみる - ゲンゾウ用ポストイット-new -- http://d.hatena.ne.jp/genzouw/20100121/1264080325 - Groovy 1.7のキモはAST変換である - uehaj's blog -- http://uehaj.hatenablog.com/entry/20090805/1249464678 ということで、Spock使えでFinal Answerっぽいです。 で、なんかSpockをEclipseで弄る時はPowserAssertの出力を等幅フォントで表示するよう調整したほうがよさそうでした。 - Java プロジェクトに Spock を導入するための3ステップ - bluepapa32’s Java Blog -- http://d.hatena.ne.jp/bluepapa32/20111202/1322839627 - Groovy Eclipseを使う際にやっておいた方がいい設定 - @ikikko のはてなブログ -- http://ikikko.hatenablog.com/entry/20110903/1315063416 お仕事の方では、データパターンのサポート重視でTestNGに転んだのですが、Spockにしたほうが正解だったかなぁ・・・と若干後悔してます。 * 軽量なServlet Container無いかな?→なんだかんだでTomcat Embeddedも良さげ? こんなん調べるくらいなら一行でもコード書いたほうが価値があるとか言われると泣きそうなので勘弁して下さい。 Play! FrameworkではNetty使ってるっぽい情報を小耳に挟んだのでどうかなと、ちょっと調べなおしてみました。 重要なのは、Maven/Ivy/Grape/Graldeエコシステムから地雷を踏まずに使える点ですね。やっぱりGroovyの"@Grape"で導入出来るのが良いです。 ** NettyはServletContainer使えるか? もともとNetty自体は汎用的な通信サーバ作るためのフレームワークっぽいので、HTTPサーバくらいまでは用意してくれてますが、J2EEのServletContainerの実装まではNettyには含まれてない・・・っぽい?ざっとggった程度なので断言出来ず。 ただ、こんなふうにわざわざNettyとは別にServletContainerとのつなぎ込みやってる人たちがいるくらいですので、多分そのままではServletContainerとしては使えないのかな~と。 - bigpuritz/netty-servlet-bridge · GitHub -- https://github.com/bigpuritz/netty-servlet-bridge - java - Servlet API implementation using Netty - Stack Overflow -- http://stackoverflow.com/questions/7439955/servlet-api-implementation-using-netty - Anthony Goubard's Weblog -- http://www.jroller.com/agoubard/entry/run_servlets_with_netty - Netty 入門 - 「Netty ベース」の何かに着手する前に - SSSSLIDE -- http://sssslide.com/www.slideshare.net/ts7i/learning-netty Netty自体も十分複雑なので、この時点で早々に"@Grape"によるお手軽アプローチは諦めました。 ** Jettyはどうした?→".orbit"問題があるのでどーも今ひとつ・・・。 やっぱり軽量で他のプロダクトへの組み込みもやりやすいServletContainerとなるとJettyが挙がるわけですが、Maven/Gradleエコシステムならシームレスに使えるものの、Jetty8-9辺りの依存関係に入ってくるアーティファクトか何かの末尾の".orbit"が、Ivy/Grapeエコシステムでトラブルを誘発するため、地雷回避が必須の状況です。 - [#JETTY-1493] Maven Dependency Behaviour Orbit Package Type - jira.codehaus.org -- https://jira.codehaus.org/browse/JETTY-1493 コレさえ無ければ非常に使いやすいのですが・・・。 ** winstoneが開発再開、ただしMaven CentralリポジトリにはUPされてないのでこれも今ひとつ。 長らく開発が停滞していた軽量ServletContainerのWinStoneですが・・・ - Winstone Servlet Container -- http://winstone.sourceforge.net/ GoogleCodeで、オリジナルの作者に許可を貰った上で有志により開発が再開された模様です。 - winstone - Google Project Hosting -- https://code.google.com/p/winstone/ ただ、まだMaven CentralリポジトリにはUPされてないため、なかなか"@Grab"使ったGroovyソースファイル一本でお手軽アプローチは難しそうです。 ** "TJWS", "Tiny Java Web Server and Servlet Container"というのもあるが、やはりMaven Centralリポジトリには挙がってなさげ。 こういうのも見つかりました。 - Tiny Java Web Server aka Miniature JWS -- http://tjws.sourceforge.net/ これもwinstoneと同様、まだMaven CentralリポジトリにはUPされてないため、なかなか"@Grab"使ったGroovyソースファイル一本でお手軽アプローチは難しそうです。 ** easygspというのも・・・。 これは全く毛色の違う話ですが、EasyGSPというGroovyのWebアプリフレームワークがあるようです。 - easygsp - Web development with Groovy made easy - Google Project Hosting -- https://code.google.com/p/easygsp/ ちょっと良くわかりませんが、ある程度大きめのフレームワークっぽいです。 ** Tomcatも組み込めそう。 "Tomcat"という組み込み用のクラスが用意されてて、割りと簡単にTomcatを組み込みで起動とか出来るようにしてくれてるっぽいです。 - Tomcat (Apache Tomcat 7.0.40 API Documentation) -- http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/startup/Tomcat.html 参考: - Create a Java Web Application using Embedded Tomcat | Heroku Dev Center -- https://devcenter.heroku.com/articles/create-a-java-web-application-using-embedded-tomcat - Embedded Tomcat, The Minimal Version | Javalobby -- http://java.dzone.com/articles/embedded-tomcat-minimal - Tomcat Embedded利用時の注意点 - A.R.N [日記] -- http://d.hatena.ne.jp/arn/20081213/p1