しおしお

IntelliJ IDEAのことなんかを書いてます

Spring Session & RedisでJacksonを使ったシリアライズを試してみる

Spring SessionでRedisにセッション情報を格納する際に、Jacksonを使ってシリアライズをできるみたいなので試してみました。*1 ライブラリのバージョンなど build.gradleを参照ください。 Sessionの格納先をRedisにする application.propertiesに以下を追加…

IntelliJのDocker integrationプラグインからExecした時に保存されるコマンド履歴を削除する方法

IntelliJさんのDocker Integrationプラグインを使うとIDE上からdocker execできて便利ですよね。でも、コマンド名間違えちゃった場合にそれが記憶されて、次にExecしようとした時に誤ったコマンド名が候補に出てくるの邪魔ですね… そんなときは設定ファイル…

Gradle 5.0でMavenのBOMを使おう

Managing Transitive Dependenciesあたりをお試ししてみました。 implementation platformを使ってみる build.gradle BOMをimplementation platformに指定します。 BOMで定義されているバージョンを使用するので、個別のライブラリ(この例ではjackson-databi…

Spring Cloud Configを使ってみる

Spring Cloud Configを使って、アプリケーションが使う環境毎に異なる設定値をちゃんと構成管理してみる。Spring Cloud Configは、設定値をAPIで配信するConfig Serverが必要となる。アプリケーションは、Config Serverから環境に応じた設定値を取得して動作…

VeeValidateで入力値のバリデーションをしてみる

VeeValidateのインストール 現時点の最新版は、2.1.3になります。 npm install vee-validate --save VeeValidateをVueに追加する import Vue from 'vue'; import VeeValidate from 'vee-validate'; Vue.use(VeeValidate); 入力フォームにバリデーションルー…

IntelliJ IDEAのDatabase WindowからDoma2用Entityを生成する

IntelliJ IDEAのDatabase WindowsからDoma2用のEntityを生成してみたお話です。IntelliJのデフォルトの状態だと下の画像のようにGenerated POJOsしか選択できません。ここに、Doma2用のEntityを生成するスクリプトを追加してEntityを生成できるようにします…

Spring Cloud AWSで異なるリージョンにあるSESを使ってみる

Spring Cloud AWSのSESでアプリケーションとは異なるリージョンにあるSESを使う方法 *1 アプリケーションのリージョンの指定 リージョンの指定は、application.propertiesにこんな感じに設定します。 cloud.aws.region.auto=false cloud.aws.region.static=a…

Dockerfile不要のコンテナビルダーのGradleプラグインを触ってみた

↓を見て便利そうなのでどんな感じなのかなと触ってみました。Dockerfile不要のJava向けコンテナビルダー。MavenやGradleのプラグインとして動作する / “Google Cloud Platform Blog: Introducing Jib — build Java …” https://t.co/bAsxCO4lGr— progrhyme (@…

SonarQubeの結果をUpsourceに連携してみた

External inspections support - Help | Upsource を参考にやってみました。 SonarQubeにUpsourceに連携するための拡張をインストールする upsource-sonar-plugin-0.1-SNAPSHOT.jarをダウンロードして、 $SONARQUBE_HOME/extensions/pluginsにおいてあげます…

AWS Secrets Managerの値をSpring Bootでいい感じに使えるようにした

AWS Secrets Manager | シークレットをローテーション、管理、取得 | アマゾン ウェブ サービス (AWS)に保存した値を、アプリケーションの設定値として使えるようにしてみた。 例えば、 @Valueを使って、Secrets Managerの値を設定したりできる感じ 作ったも…

Spring Cloud AWSを使ってS3にファイルを保存してみた

Spring Cloud for Amazon Web Servicesを使ってS3にファイルを保存してみたお話です。 依存ライブラリ compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.cloud:spring-cloud-starter-aws') バージョンはこんな感…

IntelliJ IDEA 2018.1 Public Previewでpostfix code completionが追加できるようになってた

IntelliJ IDEA 2018.1 Public Previewでpostfix code completionが追加できるようになってたのでお試ししてみた。登録方法はこんな感じ。 Postfix Completionの設定画面から追加ダイアログを開く 流れ的にはこんな感じ。 ここにハマりポイントがあって、「+…

Gradle4.6-rc1からのBOMサポート

Gradle 5.0のfeature previewでGradle5.0からはデフォルトで有効になるかもしれないやつらしいです。 Gradle4.6 RC1で使う場合には、enableFeaturePreview('IMPROVED_POM_SUPPORT')をsettings.gradleに追加してこの機能を有効化する必要がある。 settings.gr…

Gradle4.6-rc1からのJUnit5サポートを試してみた

Gradle4.6からのJUnit5サポートをお試ししてみた。これより古いバージョンはGradleからJUnit5のテストを実行する - しおしおのエントリのようにする必要があると。 build.gradleの内容 test.useJUnitPlatformでJUnit5を有効化してあげる。 これだけでよくて…

Gradle&JUnit5でJaCoCoを使う

Gradle&JUnit5の組み合わせでJaCoCoを使用した場合、デフォルトだとテスト実行時のカバレッジを取得することができない。*1 なので、この組み合わせでJaCoCoでカバレッジをとりたい場合は、JaCoCoプラグインの設定を変更する必要がある。 JaCoCoプラグインへ…

JaCoCo0.8.0を試してみる

Release 0.8.0 · jacoco/jacoco · GitHubのtry-with-resources対応などなど良さげそうに見えたので試してみた。 try-with-resourcesを使った実装を作成 雑にこんな感じで… public void test() throws IOException { try (InputStream stream = new ByteArray…

IntelliJ IDEA 2017.3 EAPからのeditor-based REST clientを試す

IntelliJ IDEA 2017.3(今はEAP)から追加されたeditor-based REST clientを試してみたよ。 詳しくは、What’s New in IntelliJ IDEA 2017.3 EAP? | IntelliJ IDEA BlogのToolsに書かれてるよ。 試すために作ったサーバ側のコード GETとPOSTを確認するためだけ…

GradleからJUnit5のテストを実行する

junit5-gradle-consumerを参考にするとさくっとGradleで実行できるようになる。 build.gradle JUnit Platform Gradle Pluginを設定して、testRuntimeにjunit-jupiter-engineを追加してあげる必要がる。 buildscript { repositories { mavenCentral() } depen…

JUnit5のParameterized Testを試してみる

実験的機能っぽいけど、JUnit5でもParameterized Testsができるみたいなので、お試ししてみたよ。 必要なライブラリを追加 junit-jupiter-apiとParameterized Testをするために必要なjunit-jupiter-paramsを追加してあげる。 testCompile 'org.junit.jupiter…

GradleのcompileOnly知らなかったので使ってみた

Gradle2.12からコンパイル専用のスコープが導入されていたらしいので試してみた。 build.gradleの定義 compileOnlyを使うことで、コンパイル時のみ依存するライブラリを定義できる。 testCompileOnlyを使うと、テストのコンパイルじのみ必要なライブラリを定…

sphinx-javalinkを使ってSphinxドキュメントからJavadocへのリンクをはってみる

Sphinxで作ったドキュメントから、Javadocへのリンクをはれる拡張のsphinx-javalinkの使い方。 ※昔書いた、sphinxからjavadocへのリンク簡単に貼れる拡張 - しおしおのほうが使い方は簡単なんだけど、Java8で作られたドキュメントへのリンクがうまくできない…

IntelliJ IDEAのjump to colors and fontsが便利過ぎる件

いまいさんのこんなツィート見かけて、かなり便利そうなのでちょっと試してみた。IntelliJさん,"Jump to Colors and Fonts"なんで便利な機能,いつの間に作ったんやw— いまいまさのぶ (@masanobuimai) 2017年7月27日なにが便利かというと、jump to colors …

Gradleのsonarqubeプラグインを使ってみる

Analyzing with SonarQube Scanner for Gradle - Scanners - Doc SonarQubeを使ってGradleなプロジェクトの品質チェックを行う方法。 sonarqubeプラグインを導入する Gradleのbuildスクリプトに以下を追加する。(バージョンは現時点での最新) plugins { id "…

proxy環境下でUpsourceを使う

proxy環境下にUpsourceを構築して、外の世界のリポジトリ(例えばgithub)のコードを参照したい場合の設定方法。※古いバージョン(Upsource 2017.1以前)では、多分この方法ではproxyを突破することができないと思います。 かなり初期の頃は、どう頑張ってもpr…

JBeret SEで起動したJOBを停止する

JBeret SEで起動したJOBをJMXを使って停止させてみる。*1 MXBeanを作る インタフェースと実装はこんな感じに。 とりあえず、executionIdとステータスやジョブ名を参照できるようにして、操作としてstopを定義してみた。 インタフェース public interface Job…

IntelliJ IDEA2017.2でパンくずリストをエディタの上部に表示する

IntelliJ IDEA2017.2 EAPにしたらパンくずリストが、こんな感じにエディタの下に表示されるようになってしまった。 これを、2017.1の時と同じようにエディタの上部に表示するように変更してみた。※build no:172.2465.6からは、下に書いた面倒なことをやらな…

PostgreSQLでREAD COMMITEDとdelete->insertの組み合わせの問題のメモ

PostgreSQLのREAD COMMITEDでdelete->insertを使った場合、あるはずのレコードに対する削除がされずにinsertで一意制約違反が発生するらしい。。。 テーブルの状態 postgres=> select * from hoge; id ---- 1 2つのトランザクションで以下のSQLを実行 delete…

DomaでOracle12CのIdentity Columnを使ってみた

DomaでOracle12CのIdentity Columnを使う方法です。DomaのOracleDialectなどなどでは、使うことが出来ないので色々いじってあげる必要があります。 Oracle12C用のDialectを作る 基本は、OracleDialectと同じでいいので継承して作ります。 変更点は、Identity…

JBeretでジョブ定義ファイルの置き場所を変えてみる

JBeretでは、org.jberet.spi.JobXmlResolverの実装クラスを作ることで、ジョブ定義のXMLファイルの置き場所を変更できる。 JobXmlResolverの実装クラスを作る JobXmlResolverのJavadocによると、resolveJobXml以外は任意となっているので、 任意メソッドの空…

JBeretのカスタムなCDIスコープを試す

JBeret1.2から追加されたカスタムCDIスコープを試してみた。 JBeretのバージョン compile 'org.jberet:jberet-core:1.2.2.Final' StepScope 1つのStepがスコープとなるので、同一ステップ内であれば同じBeanのインスタンスが使用される。 Stepが変わるとBean…