読者です 読者をやめる 読者になる 読者になる

JDK7→JDK8にバージョンアップした時の作業まとめ

12/25 追記 JDK8でmaven releaseプラグイン経由でJARを生成するときにjavadocを作成しててエラーになった。 maven-javadoc-pluginのconfiguration <additionalparam>-Xdoclint:none</additionalparam> を追加した サーバ構成 インフラの構成ファイルはchefで管理 アプリケーションサーバ 約50台 …

Flyway Rollupをつくった

https://github.com/hachi-eiji/flyway-rollup仕事でFlywayを使ってるのですが、いくつが問題が出てきて 開発が進むとファイルが増える(V100とかまでできた) flywayのlocationsを安定版(本番で稼働中)と開発用(自分が開発中)でディレクトリを分けた場合に、 …

Agile Samurai Base Camp 2014 Re:TDDで学んだことを反映してみる

Agile Samurai Base Camp 2014 Re:TDDに参加してきました - 個人的なまとめでかいたようにJUnit+Grooy+Spockでテストのテンプレを書いてみました。 コードはこちら https://github.com/hachi-eiji/java-spock-practice正直Groovyは初めて書いた(ネットで落ち…

GitHub Enterprise,JRebel,Jira,HipChat使い始めました

異動後、約1ヶ月経過したのでまとめる 自分のなかで生産性が変わったもの ・SubversionからGitHubEnterprise(GHE)に変わった Git-flowをベースにdevelopブランチにマージするときにPull Request(PR)を投げてレビューしてもらうようにしています。ローカルで…

Vagrant + Jetty + Intellij IDEAでリモートデバッグ

Webアプリを作成していて、現在時間を変更しないといけないケースというのがあります。ローカル環境で開発してると時間を変更すると色々問題なので、Vagrantを使うと便利です。ローカルのpom.xmlを以下のようにしてビルドするときにrootディレクトリ以下にWE…

Javaだっていいじゃない

/.Jに聞け:Javaを使うメリットは?あると思ってますよ。ぱっと思いつくところでは 静的型付け言語。型推論あるし Eclipse,Intellij IDEA などのIDE強力 いろいろなノウハウが溜まってる それなりに人材がいるのでメンバーの入れ替えや補充を考えやすい ちゃ…

SpringのDI + PowerMockでのテスト

いままではテスト対象クラスで定義しているDI部分をEasyMockで、staticメソッドのMockをPowerMockで書くことがほとんどでした。 昨日テストケースを書くときに@PostConstructで定義されている部分があったので、普通にDIを使って書いてたのですが、staticメ…

Java7 のObjectsクラス

Java7 になってtry-catch-resourceとかDiamond Operatorとか色々入ってきていますが、java.util.Objectsクラスが入って来ました。 比較するオブジェクトがnullのときに、ぬるぽガッってならないので便利ですね。JavaDocを見てると、equalsとdeepEqualsという…

ユニットテストとJavaBeansのsetterの悩み

久しぶり(?)にJavaネタ。 昨日/今日とユニットテストを書いてて、悩んだというか飽きてました。理由はテストを実行するときにJavaBeansにデータをセットしてたのですが、これがめんどくさい。最初はEclipseの保管機能とかで書いてたのですが、時間が経つ…

現在日付を含めたコードのテスト

こんなレガシーコードがありました。現在日付がちゃんと設定されているかテストしたいんですがどうしたもんか… テストコード書きやがれ。 import java.util.Date; public class Hoge { // テスト対象 public HogeBean execute() { HogeBean bean = new HogeB…

SpringMVCのエラー系・異常系画面遷移

社内の人が研修でSpringMVCやってるらしいので、流行りに乗ってやってみました。といっても、やることと 1. システム例外発生時のエラー画面遷移 2. DBからデータを検索してきたときに、404エラーへ飛ばす。 の2本でお送りします。ソースはGitHub上へここへ…

SpringMVC,MongoDBを使ってみたその6

ということで、今回MongoDBの例外処理です。例外を故意に発生させてどのような動きになるか確認してみたいと思います。 とりあえず適当に一番下のような検証コードを実装してみました。 エラーを起こした結果、あれ?MongoExceptionは発生したけど、resultは…

SpringMVC、MongoDBを使ってみたその5

登録・更新処理 登録・更新はhidden項目に_idがあるかどうかで判断しています。 (セキュリティ的にはセッションに_idに入れておくとか、DESで暗号化したものをhiddenに入れろとかツッコミは甘んじてお受けします) MongoDBではsaveメソッドを使うと、_idがMon…

SpringMVC、MongoDBを使ってみたその4

今回はエラーチェックです。 エラーチェックの方法 エラーチェックはhibernateが用意しているものと自作をします。 やることは サーバ名、OS、IPアドレス必須 IPアドレスがIPアドレス(IPv4)の記法に一致しているか。(あんまり厳密にはみません) インストール…

SpringMVC、MongoDBを使ってみたその3

今日はGETのデータの取得方法です。 GETでデータを取得する。 今回もアノテーションが大活躍です。というか、アノテーションしかないなぁ… やりたいこと http://localhost:8080/sample/edit/ として詳細データを取得する ポイント アノテーション@RequestMap…

SpringMVC、MongoDBを使ってみたその2

今回はMongoDBはなしです。SpringMVCのみに触れます。 画面を表示する 画面を表示するControllerクラスを実装します。 1) @Controllerアノテーションをつけると、このクラスがコントローラクラスとなります。 2) @RequestMapping(value = "/", method = Requ…

SpringMVC、MongoDBを使ってみたその1

SpringMVC、MongoDBを使って簡単なWebアプリを作ってます。 まだ全部作ってはないけど、最初にハマったところをメモ。下のようなサイトを参考にさせて頂きました。 http://journal.mycom.co.jp/articles/2010/04/09/spring5/index.html http://d.hatena.ne.j…

AndroidのXML解析

業務システムをAndroidで作ろうしているのだが、XML解析をするときに慣れている、Apache Digesterを使いたかったが、使えない。以下のようなエラーが出てくる。 05-21 01:23:07.486: ERROR/Digester(5455): Digester.getParser: 05-21 01:23:07.486: ERROR/D…

正規表現

長い文字を設定するとめっちゃおそくなる場合があるので、長い文字でもチェックしよう。

Tomcatのメモリリーク

Tomcatのメモリリークを探すには、以下のオプションを埋め込んで、ヒープ内のクラス統計情報をとる。 -verbose:gc -XX:+PrintClassHistogramとれたデータをExcelかなんかでグラフ化して、右肩上がりのものがあれば怪しい。[参考] http://www.atmarkit.co.jp/…

Jamesのデバッグ方法

ApacheからJamesのソースとバイナリの両方を落としてくる。 ソースはEclipse上に配置してコンパイル。 Eclipse付属のJUnit4もビルドパスに含める。 James側 バイナリの/bin/run.batの90行目のデバッグオプションを外す。 起動時に「Listening for transport …

Tomcatネタ

肥え続けるTomcatと胃を痛めるトラブルハッカー

jmakiを使ってみる。

どこかのサイトでJavaを使ってAjaxサイトを簡単に作ろうぜぃという記事を見たので、 早速本家サイトからダウンロードしてみる。 サンプルとしてすでにあったYahoo(Goole) Mapと連携したアプリを使ってみる。 ほぅ…いちいちJavaScriptを書かなくていいのは便…