Java

Maven 3 + cobertura-maven-plugin 2.7 で mvn site すると jar/war が壊れる件

環境 Maven 3.3.9 cobertura-maven-plugin 2.7 現象 Maven 3 と cobertura-maven-plugin 2.7 の組み合わせで mvn site をすると、生成される jar/war に Cobertura の instrument が混入したままパッケージが作られてしまう。 mvn package だけすると問題が…

Kibana4 + Elasticsearch で not_analyzed 指定を忘れた時にやったこと

Elasticsearch をそのまま使うと string フィールドがトークナイズされてしまうので、ユーザーエージェント等スペースを含むフィールドのグラフが意図通り出ない問題に対処した。真面目にやるなら elasticsearchでダウンタイムなしでインデックスのマッピン…

Jenkins でのブランチの自動ビルドに Multi-Branch Project Plugin が便利

環境 Jenkins 1.532.3 Multi-Branch Project Plugin 0.2.2 Multi-Branch Project Plugin GitHub を使っていないプロジェクトで、ブランチが増えたり減ったりする場合に、 そのブランチを自動で Jenkins のビルドジョブにしたい。 そのような場合に Multi-Bra…

Jenkins のプラグインの配布に JitPack.io が便利過ぎる件

JitPack | Publish JVM and Android libraries というサービスがある。GitHub に置いた Java プロジェクトのソースコードをビルドして、Maven リポジトリとして配布してくれるサービスである。 以前はタグを作る必要があったが、現在はコミット ID をバージ…

Jenkins Warning Plugin + Ant + Javadoc で警告を集計

環境 Windows Server 2012 R2 Java 8 u45 Jenkins 1.609 Ant 1.9.4 Jenkins Warning Plugin 4.47 という環境で Javadoc が出すエラー/警告を Jenkins Warning Plugin で集計しようとしたら結構大変だったのでメモ。 設定 プリセットされているパーサーだと A…

Munin の jstat__heap を Java8 対応にした

Munin で Java のヒープを監視するスクリプトに jstat__heap がある。このスクリプトが結構内容が古くて、 Sun JDK 5.0 BEA JRockit 5.0 対応と書いてあっていろいろアレである。とはいえ Java7 まではそのままで使えていたが、Java8 になってパーマネント領…

Java で Airbrake/Errbit を使うときに airbrake-java を使うべきではない

環境 airbrake-java: v2.2.8 errbit-java: v2.3.1 問題 Java + log4j で Airbrake / Errbit を使う場合には、公式である airbrake-java を使うと思う。 しかし、このライブラリは v2.2.8 時点でとんでもない地雷ライブラリだったので使うべきではない。具体…

New Relic on Tomcat で Browser Monitoring が有効にならなかった話

環境 New Relic Agent (java) 3.6.0 Apache Tomcat 7.0.23 こんな感じで Browser を開いても何も表示されない。 対処 JSP のプリコンパイル結果を削除するCATALINA_HOME/work/Catalina/localhost/ の対象のアプリのディレクトリを全部削除すると出るようにな…

Jenkins でキャッチされなかった例外を Bugsnag に送信するプラグイン作った

Jenkins の管理をして、プラグインをインストールしたりアップデートしたりしていると、あまり安定していないバージョンのプラグインにあたってしまって、動きが不安定になることがあります。 過去には、ビルドはすべて成功しているように見えているのに、ロ…

Jenkins で実行中のジョブを favicon に表示するプラグイン作った

Jenkins のジョブの実行状況を確認するのに、ブラウザのタブを切り替えるのすらダルい。そんな自分のために、ブラウザの favicon を見るだけでなんとなく「Jenkins が仕事してるかどうか」を確認できるプラグイン書きました。https://github.com/mallowlabs/…

Jenkins で Tomcat の Parallel Deployment をしやすくするプラグイン作った

以前に Tomcat7 でゼロダウンタイムデプロイ - mallowlabsの備忘録 という記事を書きました。 WAR ファイルに someapp##数字.war という名前をつけるとゼロダウンタイムデプロイできるという内容です。完全なゼロダウンタイムはメモリの問題で難しい場合もあ…

New Relic プラグイン開発入門 (Java 編)

New Relic が New Relic Platform と銘打って、 様々なミドルウェアの監視をプラグインで追加できるようになりました。当然プラグインを開発するための API も提供されています。 実際にプラグインを作ってみたので共有します。 New Relic プラグインの特徴 …

Tomcat7 でゼロダウンタイムデプロイ

「Web アプリのバージョンアップ時に Tomcat を再起動してもいいのは小学生までだよねー」 ということで、Tomcat でダウンタイム無しで Web アプリのバージョンアップをする方法についてまとめてみる。 Parallel Deployment Tomcat 7 から Parallel Deployme…

New Relic を Tomcat 7 (jsvc) で使ってみた

環境 OS : CentOS 5.7 JDK : 1.6.0_27 Tomcat : 7.0.23 Tomcat のインストールパス : /home/tomcat/ New Relic Agent (Java) : 2.10.1 インストール 基本的には、New Relic の setup ページの通りに操作する。newrelic_agent2.10.1.zip を展開し、 /home/tom…

Tomcat でプロファイリングするなら JIP が簡単

Java の Web アプリケーションをプロファイリングするのに JIP (The Java Interactive Profiler) が簡単だったのでその使い方をメモ。 環境 Windows 7 64bit Tomcat 7.0.22 Java 1.6.0_24 JIP 1.2 インストール http://jiprof.sourceforge.net/ から jip-1.2…

JavaDoc を Doclava で生成するようにしたら捗った

Java のドキュメントと言えば JavaDoc ですが 見た目があまりにもダサ過ぎやしませんかね?こんなんじゃ JavaDoc を書くモチベーションが下がってしまいます。 そこで JavaDoc を Doclava で生成するようにしました。Google Code Archive - Long-term storag…

Windows + Tomcat で PrintClassHistogram を使う

環境 Windows 7 Ultimate (64bit) Tomcat 7.0.22 JDK 1.6.0_24 手順 Tomcat + Windows で、ヒープの情報を見る方法を毎回ググっている気がするのでメモ。Tomcat の起動方法 > cd %CATALINA_HOME% > set JAVA_OPTS=-verbose:gc -Xloggc:c:\gc.log -XX:+PrintC…

Jenkins に独自の CSS と JS を挿し込むプラグイン作った

Jenkins のテーマプラグイン的なものを、 Jenkins プラグインの学習のため、書いてみた。GitHub - mallowlabs/simple-theme-plugin: A simple theme plugin for Jenkinsこのプラグインをインストールすることにより、 背景にいるおっさんが気になる フォント…

Jenkins + Maven で JavaNCSS プラグインを使う

Jenkins で Java プロジェクトを継続的インテグレーションする際に 規模を計測するのに JavaNCSS が便利である。 JavaNCSS とは? JavaNCSS の NCSS は Non Commenting Source Statements の略で ソースコードの行のうちコメント(や空行)でない行のことであ…

NetBeans の JavaScript のヒントの実装を読む

いままでのあらすじ NetBeans で JavaScript を書くときに出るヒントがすごい。そのプロパティがどのブラウザが対応しているかを出してくれるので クロスブラウザのコードを書くときに重宝する。 見ての通り、Google Chrome にまで対応していて これを見なが…

JRuby で AST を作る

JRuby で AST 作ってみた。 だって AST が好きだから。 JRuby のバージョンは 1.3.1。 hello.jruby.RubyASTViewer package hello.jruby; import java.io.ByteArrayInputStream; import org.jruby.Ruby; import org.jruby.ast.Node; /** * Ruby AST Viewer * …

Eclipse(CDT) Plugin の右クリックメニューに追加するときの注意

Eclipse プラグイン開発で、Package Explorer の右クリックメニューに 開発したプラグインのメニューを追加するときには org.eclipse.ui.popupMenus の Extension Point を使う。 このとき、ファイルに対してのみメニューを出したい場合には objectClass 属…

Java の class ファイルのバージョンを調べる Ruby スクリプト

Java の .class ファイルのバージョンを確認する必要があったので さくっと Ruby スクリプトを書いた。 [class-version-checker.rb] #!ruby ARGV.each { |path| open(path, "rb") { |file| a = file.read(10) p "#{a[6]*0xff+a[7]}.#{a[4]*0xff+a[5]}" } } …

hibernate関係のメモ

Hibernate. Everything data. - Hibernate hibernateを使ってあるDBから他のDBへデータを変換しながら 転送するようなソフトを書く機会があったのでそのときにハマったことなどを覚え書き。 psqlでUnicode PostgreSQLの話。 UnicodeのDBからUnicodeのDBへデ…