活動を意図的にアーカイブしてテストしたい #salesforce

Salesforceにおける活動のアーカイブとしては、 期日が365日以上前の活動はアーカイブされる この365日という期限に関しては、サポートデスクに依頼することで(必要であれば)延長できる ことまでは書かれています。 さて、1件も活動が登録されていないクリ…

MyBatisのMapperをSpockで全自動テスト

MyBatisのSQLは2Way SQLではない上、動的SQLやスニペットなどによって可読性が損なわれがちということもあり、構文エラーは早めに検知する仕組みを用意した方がよいという印象です。 そこで、Mapperを全スキャンして、SpockでData Driven Testingを行う方法…

ApexでJSON.serializeした時のデータ型ごとの出力形式まとめ #salesforce

Apexでオブジェクト(SObject)を JSON.serialize した時に、データ型ごとの出力形式がどうなるのか、確認しました。 どこかにまとまっているのかもしれませんが…。 データ型が()付きのものは標準項目、それ以外はカスタム項目です。 データ型 出力時のフィ…

GradleでMyBatis Generatorを使う

MyBatisを使ったことがなかったので、評価中です。 MyBatis Generator用のGradleプラグインがあるみたいなので、試してみました。 Gradle - Plugin: com.arenagod.gradle.MybatisGenerator build.gradle build.gradle は以下のような感じです。 plugins { id…

Spring Bootでキャッシュ(Redis)からのデータ取得エラー時のカスタマイズ

(この前書いた以下の記事に近い話ですが、今回はSpring Sessionに限らない話です) Spring Bootでキャッシュ機構としてRedis( org.springframework.boot:spring-boot-starter-data-redis )を使っている場合、デフォルトでは Redis への書き込み、Redis から…

小ネタ) SpockのData Driven Testingでテスト観点をUnrollのメソッド名に記述するとよいかもしれないと思った話

Spockのデータ駆動テスト(Data Driven Testing)では、メソッド名としてデータ変数を含んだ文字列を使うことで、テスト結果を見た時にどこで失敗したか、わかりやすくすることができます。 データ駆動テスト — Spock 1.0-SNAPSHOT さて、この時に利用するデー…

マルチデータソースにおけるGradleでのFlywayタスク実行

マルチデータソース(2つのRDB)を使っている場合に、FlywayのGradle PluginでflywayMigrateなどのタスクを実行し、両方のDBにマイグレーションを実行したい場合。 flyway { user = 'user1' password = 'pass1' url = 'jdbc:xxx://host1/db1' } def flyway2 …

Spring Sessionのバージョンアップとデシリアライズエラー

Spring Security + Spring Sessionを使っている場合、通常、セッションの中身はシリアライズされてセッションストアに保存されます(実際に確認したのはRedisのみ)。 シリアライズされる org.springframework.security.core.context.SecurityContextImpl に…

正解が見えない課題を圧倒的に解決する超仮説思考 #書籍

正解が見えない課題を圧倒的に解決する 超仮説思考作者: 高野研一出版社/メーカー: かんき出版発売日: 2016/08/26メディア: Kindle版この商品を含むブログを見る 印象に残ったところを自分なりにまとめるとこんな感じでした。 5F, 3C, SWOT等のフレームワー…

Spring BootでJettyのログを少しカスタマイズする

Spring Bootでリクエストログを出力するための方法については、以下の記事で紹介されています。 qiita.com 以下の内容はSpring Boot 1.4.3で確認してます。また、Jetty以外のアプリケーションサーバの場合は当然ながら全く違った設定方法になります。 X-Forw…

Cloud First Architecture 設計ガイド #書籍

気が付いたら2017年も1週間が過ぎてしまいました。まさか7月のイベントが2016年の最後のエントリになるとは思いませんでした。 年々顕著にエントリが減ってきているので、今年は週1くらいのペースで書く習慣をつけていきないなと思います。 ネタが少ない時な…

Doma勉強会 in 東京に行ってきた #doma_tokyo

Doma勉強会に行ってきました。 eventdots.jp 最近はJPAを使っていてDomaを使えていないのですが、以前そこそこ長い間(3年以上)Doma(1, 2両方)を使ったシステム開発をしてたので、そのあたりからの進化とか色々知ることができました。 スライドは公開され…

Spring Bootでprototypeスコープを使う方法あれこれ&ベンチマーク

今更感はありますが…。 Spring Boot(というよりSpring)でインジェクションされるコンポーネントのデフォルトのスコープはSingletonになります。 そのため、Singletonスコープのコンポーネントに対して、Singletonより短いスコープであるPrototypeコンポー…

モダンJavaScript(ES6)で書いたコードがIEで動かなかったので対応ポイントをメモ

ES6で書いていたJavaScriptのコードがIE(※)で動かなかったので、その時に対応した内容のメモです。 ※ IEのバージョンは9以上を想定してます。IE8、あるいはそれ以前となるとさらに面倒さが増すので。 各ブラウザの対応状況を知る 各ブラウザの対応状況を調…

forcedotcom/wscにプルリクエストを送ってみた

先日Qiitaにこんな記事を書きました。その続きです。 qiita.com さて、変換仕様をwscを使ってアップロードするメソッドは2つあります。 void BulkConnection#createTransformationSpecFromStream(JobInfo, InputStream) TransformationSpecRequest BulkConne…

5分くらいでわかるSwagger

最近身の回りでSwaggerを聞くことが多くなってきたと感じます。 上記記事でも言及されていますが、AWS API Gateway Importerでも、APIをAPI GatewayにインポートするためのAPIの入力仕様としてSwaggerが使われています。 私もちょっと前から、AWS API Gatewa…

Google Maps API v3で任意のDOMをマーカーにしてアニメーションで移動させたい

なぜかGoogle Maps APIを使うことがここ最近は増えました。 さて、Google Maps API v3を使って地図上にマーカーを表示させる場合、標準APIだけだと少し不足感を感じることがあります。 まず、標準APIで使えるのはデフォルトのピン(画像データ)や、指定した…

Spring Session利用時、Redis上のセッション情報をデバッグするツールを作った

Spring Bootによるアプリケーションでは、Spring Sessionという仕組みでRedisにセッション情報を保持させることができ、複数サーバ間でセッション情報を共有する仕組みを簡単に実現できます。 さて、デバッグのために、Redis上のセッション情報の中身を確認…

developとトピックブランチだけで運用してたらmasterを作ってなかったので作った

GitHubを使った開発フローで、本流であるdevelopと、プルリクを送るためのトピックブランチを使ってサイクルを回していました。 しばらくコミットを重ね、ようやくリリースに至り、masterブランチにdevelopをマージしようとしたところ、masterブランチを作っ…

Boot Campで起動したWindows 7上でUSBメモリが認識しない

(注)プログラムと関係ないですが、ハマった話を書いておきます。 タイトルの通りで、Boot Campで起動したWindows 7上でUSBメモリが認識しない現象に遭遇しました。 この手の症状は検索すると色んな対処法が出てくるのですが、どれを試しても解決に至らず困…

GitHub FlowとPull Request駆動開発をYWTでふりかえり

最近関わったプロジェクトでは、GitHub FlowとPull Requestベースの開発を行いました。 個人的には、まともにこのスタイルで開発するのは初めてだったということもあり、YWT(やったこと、わかったこと、次にやること)形式でふりかえった結果を紹介していきま…

IonicとCordovaのバージョンについて整理してみる

ここ最近はIonicを使ったハイブリッドアプリを開発してました(個人でなく、会社でのプロジェクトです)。 さて、こちらの記事の通り、Cordova Androidに脆弱性が見つかり、修正版がリリースされました。 IonicではCordovaのAPIを利用してネイティブの機能を…

社内LTでゲームフレームワークPhaserについて話をしました

久しぶりのエントリになってしまいました。内容はどうあれアウトプットも大事にしていきたいのですが、ここ最近は社内のBacklogに閉じてしまっているのが悩ましいところです。 さて先日、社内でLT大会がありました。 テーマに縛りがなかったため、色んな話が…

「実戦での Scala ~ 6つの事例から知る Scala の勘所~」に参加してきた #jissenscala

スマートニュース様にて開催された「実戦での Scala 〜 6つの事例から知る Scala の勘所〜 - 実戦での Scala | Doorkeeper」に参加してきました。 簡単にですが、感想を書きたいと思います。 私とScala いきなり「お前なんでここに来たんだ」という感じです…

Jenkins Workflow Pluginを使ってGradleマルチプロジェクトのワークフローを組んでみた(WIP)

先日のJenkinsユーザ・カンファレンスの講演を受けて、Jenkins Workflow Pluginがすごく便利そうだったので、早速試してみました。 Jenkins ユーザ・カンファレンス 2015 東京に参加してきた。 #jenkinsja #juc2015 - Splash of waters - 2nd. Season 想定す…

Jenkins ユーザ・カンファレンス 2015 東京に参加してきた。 #jenkinsja #juc2015

今年もマイペースに更新していきますので、よろしくお願いします。 今年は参加したイベントのレポートを忘れずに書くことを目標にしたいと思います。ということで早速、今年最初の参加イベントである「Jenkins ユーザ・カンファレンス 2015 東京」についての…

Java SE 8とJava EE 7によるアプリケーションのモダナイゼーション~中間ふりかえり~ #javaee

はじめに この記事は、「Java EE Advent Calendar 2014」の5日目の記事となります。 昨日は、@kazuhira_rさんの「JCacheの実装とキャッシュ管理のご紹介」でした。 明日は、@susumuisさんの「ねこ踏んじゃった系エントリ:Tomcatいじめたら意外と強かったこ…

Java EE 5からJava EE 7へのアップデート 〜依存関係の大掃除〜

ちょっと泥臭い話で、Java EE 5からJava EE 7へのアップデートにあたり、利用しているサードパーティ製の追加ライブラリ(依存関係)についても改めてみることにしました。せっかくJava EE 7標準で用意されているのに他の代替ライブラリを使い続けてる、みた…

Java EE 7アプリケーション開発のスタートアップ

前日のエントリで予告しておいたJava EE 7アプリケーション開発のプロジェクトひな形ですが、「結合テストとワンクリックデプロイがすぐに使えるJava EE 7開発のためのbuild.gradle」としてQiitaに投稿したので、そちらをご覧ください。 結合テストとワンク…

Java EE 5からJava EE 7へのアップデート

注)このエントリは前置きです。 Java EE 5で作ったアプリケーションをJava EE 7にアップデートすることを検討中。 実は、3年近く前に、Java EE 6 (JBoss AS 7)へのアップデートを試みたのだけど、諸々の事情があって保留になっていました。。 JBoss AS7を使…