CLOVER🍀

That was when it all began.

Scala

自分がよく指定するScalaのコンパイルオプション

よく忘れるので、自分のためにメモ。だいたい、このあたりを指定しています。 scalacOptions ++= Seq( "-deprecation", "-feature", "-unchecked", "-Xlint", "-Ywarn-dead-code", "-Ywarn-nullary-unit", "-Ywarn-numeric-widen", "-Ywarn-unused", "-Ywarn…

Scala × Spring 4.3でコンストラクタインジェクション

今更ですが、Spring 4.3でコンストラクタインジェクションを使う際に、@Autowiredを付けなくてもよくなったという話をちょっと試しておこうかと。Scalaで。Spring 4.3 DIコンテナ関連の主な変更点pom.xmlは載せますが、長いので最後に。 確認用のコードを用…

MavenでScalaを使う時の、個人的pom.xmlテンプレート

Scalaでコードを書く時のビルドツールはたいていsbtを使うわけですが、Java EE関係のものを扱う時にはMavenの方が都合がいいことも多いので、1度MavenでScalaを扱う時の設定をメモっておきます。個人的なテンプレートといった感じで。 pom.xmlを書いてみる M…

JAX-RS Client(RESTEasy)にJackson Scala Moduleを適用する

以前、RESTEasyでJackson Scala Moduleを適用するエントリを書きました。RESTEasyでJackson Scala Moduleを使用する http://d.hatena.ne.jp/Kazuhira/20141101/1414838251こちらはサーバーサイドだったので、今度はクライアントサイドでJackson Scala Module…

クラスをパラメータ化して、その型パラメータをメソッドの戻り値の型にしてJavaから呼び出すとAbstractMethodErrorになるという話

あんた何言ってんの?みたいなタイトルですが、ちょっとハマったので。Scala 2.11.6+sbt 0.13.8で試しています。こういうJavaのインターフェースを用意して src/main/java/org/littlewing/HasVarArgsWithGenerics.java package org.littlewing; public inte…

IntelliJでArquillianのテストをScalaTestと合わせて使う時

ちょっとハマったので、書き残し。sbt(Scala)+ScalaTestとArquillianを一緒に使っていて、なおかつIntelliJでテストを実行する時にはScalaTestとしてではなく、JUnitとして起動すること。テストがキレイに無視されます。どうも、@RunWithアノテーションを…

pom.xmlから、Ensimeの設定ファイルを作る

このところ、Spring Bootなどで遊んでいると、Scalaを使っているにも関わらずMavenを使うような事態になります。 ※極めて、個人の趣向ですで、自分はScalaコードを書く時はEmacs+Ensime+sbtなのですが、Mavenにしてしまうとこの組み合わせが使えません。こ…

Groovy(Geb)とScala(ScalaTest)を使ってSeleniumで遊ぶ

最近、GebというGroovyでSeleniumを簡単に使えるものが流行っているらしいですね。名前もよく見るので、ちょっと試してみることにしました。あと、どうせならということでScalaでもSeleniumを簡単に使うというアプローチがあればということで調べてみたら、S…

Emacs 24でEnsimeを使う

以前からScalaはEmacsで書いているのですが、自分のPCのスペック不足により1度挫折したEnsimeのインストールにチャレンジしてみました。導入手順で参考にしたのは、以下あたり。Quick Start Guide https://github.com/ensime/ensime-server/wiki/Quick-Start…

RESTEasyでJackson Scala Moduleを使用する

JAX-RSでJSONを使う時に、JSON変換部にJackson、かつScala Moduleを使ってみようと思いまして。Add-on module for Jackson to support Scala-specific datatypes https://github.com/FasterXML/jackson-module-scala利用するアプリケーションサーバは、WildF…

Emacs 24に、scala-mode2をインストールする

とりあえず、マニュアルインストールで。elispのパスが通っているところで、 $ git clone https://github.com/hvesalai/scala-mode2.git を実行。あとは、init.elに以下を記述。 ;; scala-mode2 (require 'scala-mode2) (add-to-list 'auto-mode-alist '("\.…

Apache VelocityのScalaラッパーを書いてみました

ちょっと思い立って、Apache Velocity向けのScalaラッパーライブラリを書いてみました。Velocity4s https://github.com/kazuhira-r/velocity4s名前に、何のひねりもありません。あと、単にソースをGitHubに置いているだけなので、あんまり意味ないでしょうけ…

テンプレートエンジンTwirlを試してみる

もう少しScalaのテンプレートエンジンを、と思い、今度はTwirlを触ってみました。Twirl https://github.com/playframework/twirlPlay Frameworkで使われているテンプレートエンジンだそうですね、Play自体使ったことないですけど…。以前はPlayから完全に独立…

Handlebars.scalaのHelperを使ってみる

先ほど、Handlebars.scalaについてのエントリを書きました。Handlebars.scalaを使ってみる http://d.hatena.ne.jp/Kazuhira/20140920/1411200907この続きとして、Handlerbars.scalaのHelperを試してみたいと思います。Helpers https://github.com/mwunsch/ha…

Handlebars.scalaを使ってみる

Scalaでテンプレートエンジンを使うなら、何がいいんだろうと思う今日この頃です。Javaでテンプレートエンジンを使う場合もそうですが!で、今回は最近JAX-RSと組み合わせて遊んでいたHandlebars.scalaをちょっとマジメに見てみることにしました。Handlebars…

ScalaとJAX-RSとコンストラクタインジェクションと

こちらの資料を見て、以下の2枚が気になりまして。Kotlin + JAX-RS http://backpaper0.github.io/ghosts/kotlin-jaxrs.html#/9 http://backpaper0.github.io/ghosts/kotlin-jaxrs.html#/10元ネタはKotlinですが、コンストラクタインジェクションをしようとし…

CDIのBeanManagerを使う(Scalaで)

以前書いたエントリの、リベンジ版です。元ネタは、こちら。CDIのBeanManagerを使う http://d.hatena.ne.jp/Kazuhira/20140208/1391845469CDIで管理されているBeanを取得する際に、@InjectアノテーションではなくてBeanManagerを直接使った場合について書い…

Gradle(2.1)とScala(2.11.2)と

以前、Gradleを使ってScalaプロジェクトを試したことがありましたが、fscがうまく動かなかったりして、なんだかんだで重いなーということで使っていませんでした。が、このことをTwitterでツイートしていたら、今使っているという方にツッコミをいただいたの…

Scala × Arquillianで、Java EEのテスト(WildFly、Java EE 7版)

Java EE 7やWildFlyが出てから、全然触っていなかったArquillianをそろそろまた使ってみようかということで。前にもArquillianを使ったエントリを書いていますが、基本的にはその時と同じです。前提は、以下とします。 言語はScala ビルドツールはsbt テスト…

Scalate 1.7を試してみる

ちょっとしたことがしたくてScalateを別のものと組み合わせて使おうとしてみたのですが、どハマりしたので切り分けを兼ねて単品で使ってみることに。ScalateでScala 2.11に対応したものを使いたければ、Scalate 1.7を使う、でいいんですよね、きっと…。とい…

sbtのテスト関連のメモ

先ほど書いた、こちらのsbt版。Mavenで、「mvn test」等々とオプションのメモ http://d.hatena.ne.jp/Kazuhira/20140816/1408198453まあ、目線はちょっとMavenと違うところもありますが。とりあえず、対象のプロジェクトでsbtは起動しているものとします。ま…

Jerseyをjava -jarで動かす(sbt版)

面白そうなお題があったので、別版を求められていたのはGradleでしたが勝手にsbt版を書いてみました。Jerseyをjava -jarで動かす http://backpaper0.github.io/2014/07/21/jersey_standalone.htmlsbtでmavne-shade-pluginと同じことをするために、sbt-assemb…

sbt-jmhを使って、Scalaでマイクロベンチマーク

以前、マイクロベンチマークツールであるJMHを試してみたというエントリを書きました。JMH http://openjdk.java.net/projects/code-tools/jmh/マイクロベンチマークツール、JMHを試す http://d.hatena.ne.jp/Kazuhira/20140102/1388662362で、その後Scalaで…

ScalaTest 2.2.0のDiagrammedAssertionsを試してみる

ScalaTest 2.2.0がリリースされたようです。2.2.0の変更内容でちょっと気になるものに、「DiagrammedAssertions」というのがあったので試してみました。2.2.0の変更内容はRelease Notesを見ていただければと思うのですが、ScalaTest/Scalactic 2.2.0 Release…

xsbt-web-plugin 0.9.0でServlet&JSPプログラミング

バージョンが上がると使用するコマンドが変わる印象のあるxsbt-web-pluginですが、特にソースコードの自動反映とかを忘れがちなので、今一度まとめてみることにしました。xsbt-web-plugin https://github.com/earldouglas/xsbt-web-pluginxsbt-web-plugin 0.…

JacksonのScalaモジュールを試してみる

先ほどjson4sを試してみましたが、json4sで遊ぶ http://d.hatena.ne.jp/Kazuhira/20140419/1397895464せっかくなのでJacksonのScalaモジュールも試してみたくなりまして。jackson-module-scala https://github.com/FasterXML/jackson-module-scalaこちらは、…

json4sで遊ぶ

Scalaで、JSONを使ってみたくなりまして。ScalaでJSONライブラリというと、以下あたりがいいのかな?json4s https://github.com/json4s/json4s http://json4s.org/argonaut http://argonaut.io/jackson-module-scala https://github.com/FasterXML/jackson-m…

scala.annotation.metaパッケージのアノテーションと、パラメータ付きのアノテーションを一緒に使う

先ほどのBean Validatorでも使いましたが、絶対忘れそうなので独立したエントリとして書いておくことにしました。このようなクラスを用意してみます。 import javax.validation.constraints.{Min, NotNull, Size} case class Book( @NotNull @Size(min = 14,…

HazelcastのGetting Startedを、Scala、Groovy、Clojureで書き直してみた

Hazelcastの開発者の方と、Java上の多言語の話をしていて、なんとなくHazelcastのGetting Startedを他の言語で書き直してみたくなりまして。Getting Started Tutorial http://www.hazelcast.org/getting-started/ Java版 ほぼ、オフィシャルと同じ。クラス名…

Java 8をインストールしたら、sbtでMaxMetaspaceSizeを設定する?

sbtをマニュアルに沿って標準的な設定していると、だいたいPermanentを拡張していると思います。 SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M" java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@" Setup#M…