saba1024のブログ

どうでも良い思いついた事とかプログラミング関係のメモとか書いていきます。

Groovy

Apache Groovyで画像処理の基礎

本記事はG* Advent Calendar 2017の21日目の記事です。 ピクセル Apache Groovyでも、Javaが用意しているBufferedImageとImageIOを利用することで、ピクセル単位で画像を取り扱うことが出来ます。 各ピクセルの正体は単なるInteger(32bit)です。 そしてそ…

Apache GroovyでSSL証明書の有効期限を確認する

本記事はG* Advent Calendar 2017の19日目の記事です。 さて、2016年から正式に公開されたLet's Encryptを利用することで、誰でも無料でSSLを導入してセキュアな通信をお手軽に導入できるようになりました。 しかしLet's Encryptの証明書の有効期限は3ヶ月と…

Java標準の組み込みWebサーバをApache Groovyで利用する

本記事はG* Advent Calendar 2017の18日目の記事です。 @tyamaさんのブログで紹介されていた、@glaforgeさんのこのツイートで初めて、Javaに組み込みWebサーバが存在していることを知りました! ツイート内のコードだとシングルスレッド(HttpServer#start()…

Apache Groovy "as" オペレータの正体

これはG* Advent Calendar 17日目の記事です。 ある値を型Aから型Bに変換するといったコードは頻繁に出てきますよね。 キャストで行えるものが最もシンプルですが、キャストだと変換できないパターンというものが大量に存在します。 例えば以下のコードはそ…

標準ライブラリだけでApache GroovyでWebサーバを実装(3) - 動的な値を返す

これはG* Advent Calendar 2017の4日目の記事です。 この記事は、以下の3つの投稿で成り立っています。 標準ライブラリだけでGroovyでWebサーバを実装(1) - 基礎 標準ライブラリだけでGroovyでWebサーバを実装(2) - Groovyっぽく 標準ライブラリだけでGroovy…

標準ライブラリだけでApache GroovyでWebサーバを実装(2) - Groovyっぽく

これはG* Advent Calendar 2017の3日目の記事です。 この記事は、以下の3つの投稿で成り立っています。 標準ライブラリだけでGroovyでWebサーバを実装(1) - 基礎 標準ライブラリだけでGroovyでWebサーバを実装(2) - Groovyっぽく 標準ライブラリだけでGroovy…

標準ライブラリだけでApache GroovyでWebサーバを実装(1) - 基礎

これはG* Advent Calendar 2017の2日目の記事です。 この記事は、以下の3つの投稿で成り立っています。 標準ライブラリだけでGroovyでWebサーバを実装(1) - 基礎 標準ライブラリだけでGroovyでWebサーバを実装(2) - Groovyっぽく 標準ライブラリだけでGroovy…

Apache GroovyとGrailsでApache Solrを利用する(組み込み)

これはG* Advent Calendar 2017の1日目の記事です。 さて、検索エンジンといえばElasticSearchの勢いが凄いですが、やはりApache Groovyで利用するなら同じApacheファミリーのApache Solrですよね! ただ、RESTful APIを利用してSolrとやりとりするともうソ…

Apache Groovy 2.6でJava8の文法が使える!

表題の通りなのですが、ParrotブランチでGroovy3を垣間見るで示されている内容が、Groovy2.6(2017/09/06時点ではalpha-1)の時点で利用できるようになりまりた。 ざっくりというと、Java8の新構文(lambdaとか)や、Java7で導入されたtry-with-resourcesが…

Groovyでお手軽にカレンダーを生成する

Groovyだと、2つの日付同士のレンジが..で生成できるので非常にお手軽にカレンダーを生成することが出来ます。 うるう年もちゃんと考慮されるので、例えば以下のようなことが出来ます。 String df = "yyyy/MM/dd" // うるう年のある年 Date date1 = Date.par…

GroovyのGrape/Grabでdownload failedが発生する際の対処方法

Groovyでは、プログラムの実行時にMavenリポジトリから自動的に依存ライブラリのダウンロード、クラスパスの設定まで行ってくれるGrape/Grabという機能が有ります。 使い方自体は簡単で、コードの先頭に、 @Grab('org.apache.solr:solr-core:6.6.0') @Grab('…

Groovyで簡単なS式をパースするサンプル

無駄に複雑なコードになってしまっていますが、一応四則演算は実行できるS式のパーサが出来ました。 間違いなくもっとスマートな方法があるはずですが(普通にググれば10行程度でRubyで実装している方もいらっやいます)、今まで基本的にWebプログラミングし…

Ratpackを使ってJsonBuilderとJsonSlurperを試す

概要 GroovyでJSONを生成する(JsonBuilder)という記事と、 GroovyでJSONをパースする(JsonSlurper) という記事を書きました。 それぞれ独立して紹介しても実際にどういう場合に使うの?というイメージが湧きづらいので、実際にRatpackを使って簡単なWeb…

GroovyでJSONをパースする(JsonSlurper)

概要 JsonBuilderを使えば、Groovy上で簡単にJSONを生成できますが、同様に既存のJSON(テキスト)を解析してGroovyで扱う事も非常に簡単です。 そのためには、JsonSlurperというクラスを利用します。 使い方 本当に簡単なので以下のソースを見て頂ければ一…

Groovyの不思議なメソッド「call」

概要 通常のクラスであれば、インスタンスを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を生成する 特に難しい内容ではないのですが、自分で使う時に毎回ググっているので備忘録として纏めます。 JsonBuilderというGroovy標準のクラスを利用することで簡単にJSONを生成することが出来ます。 import groovy.json.* def js…