Groovy
本記事はG* Advent Calendar 2017の21日目の記事です。 ピクセル Apache Groovyでも、Javaが用意しているBufferedImageとImageIOを利用することで、ピクセル単位で画像を取り扱うことが出来ます。 各ピクセルの正体は単なるInteger(32bit)です。 そしてそ…
本記事はG* Advent Calendar 2017の19日目の記事です。 さて、2016年から正式に公開されたLet's Encryptを利用することで、誰でも無料でSSLを導入してセキュアな通信をお手軽に導入できるようになりました。 しかしLet's Encryptの証明書の有効期限は3ヶ月と…
本記事はG* Advent Calendar 2017の18日目の記事です。 @tyamaさんのブログで紹介されていた、@glaforgeさんのこのツイートで初めて、Javaに組み込みWebサーバが存在していることを知りました! ツイート内のコードだとシングルスレッド(HttpServer#start()…
これはG* Advent Calendar 17日目の記事です。 ある値を型Aから型Bに変換するといったコードは頻繁に出てきますよね。 キャストで行えるものが最もシンプルですが、キャストだと変換できないパターンというものが大量に存在します。 例えば以下のコードはそ…
これはG* Advent Calendar 2017の4日目の記事です。 この記事は、以下の3つの投稿で成り立っています。 標準ライブラリだけでGroovyでWebサーバを実装(1) - 基礎 標準ライブラリだけでGroovyでWebサーバを実装(2) - Groovyっぽく 標準ライブラリだけでGroovy…
これはG* Advent Calendar 2017の3日目の記事です。 この記事は、以下の3つの投稿で成り立っています。 標準ライブラリだけでGroovyでWebサーバを実装(1) - 基礎 標準ライブラリだけでGroovyでWebサーバを実装(2) - Groovyっぽく 標準ライブラリだけでGroovy…
これはG* Advent Calendar 2017の2日目の記事です。 この記事は、以下の3つの投稿で成り立っています。 標準ライブラリだけでGroovyでWebサーバを実装(1) - 基礎 標準ライブラリだけでGroovyでWebサーバを実装(2) - Groovyっぽく 標準ライブラリだけでGroovy…
これはG* Advent Calendar 2017の1日目の記事です。 さて、検索エンジンといえばElasticSearchの勢いが凄いですが、やはりApache Groovyで利用するなら同じApacheファミリーのApache Solrですよね! ただ、RESTful APIを利用してSolrとやりとりするともうソ…
表題の通りなのですが、ParrotブランチでGroovy3を垣間見るで示されている内容が、Groovy2.6(2017/09/06時点ではalpha-1)の時点で利用できるようになりまりた。 ざっくりというと、Java8の新構文(lambdaとか)や、Java7で導入されたtry-with-resourcesが…
Groovyだと、2つの日付同士のレンジが..で生成できるので非常にお手軽にカレンダーを生成することが出来ます。 うるう年もちゃんと考慮されるので、例えば以下のようなことが出来ます。 String df = "yyyy/MM/dd" // うるう年のある年 Date date1 = Date.par…
Groovyでは、プログラムの実行時にMavenリポジトリから自動的に依存ライブラリのダウンロード、クラスパスの設定まで行ってくれるGrape/Grabという機能が有ります。 使い方自体は簡単で、コードの先頭に、 @Grab('org.apache.solr:solr-core:6.6.0') @Grab('…
無駄に複雑なコードになってしまっていますが、一応四則演算は実行できるS式のパーサが出来ました。 間違いなくもっとスマートな方法があるはずですが(普通にググれば10行程度でRubyで実装している方もいらっやいます)、今まで基本的にWebプログラミングし…
概要 GroovyでJSONを生成する(JsonBuilder)という記事と、 GroovyでJSONをパースする(JsonSlurper) という記事を書きました。 それぞれ独立して紹介しても実際にどういう場合に使うの?というイメージが湧きづらいので、実際にRatpackを使って簡単なWeb…
概要 JsonBuilderを使えば、Groovy上で簡単にJSONを生成できますが、同様に既存のJSON(テキスト)を解析してGroovyで扱う事も非常に簡単です。 そのためには、JsonSlurperというクラスを利用します。 使い方 本当に簡単なので以下のソースを見て頂ければ一…
概要 通常のクラスであれば、インスタンスをnewで生成して、メソッドを呼び出します。 class Hoge { def test(String message) { "${message} in Hoge#test" } } def hoge = new Hoge() assert hoge.test("test") == "test in Hoge#test" Groovyのクロージャ…
GroovyのコードとしてJSONを生成する 特に難しい内容ではないのですが、自分で使う時に毎回ググっているので備忘録として纏めます。 JsonBuilderというGroovy標準のクラスを利用することで簡単にJSONを生成することが出来ます。 import groovy.json.* def js…