<< 5月 2011 | Home | 7月 2011 >>

JIRA 4.3.4 のインストール/アップデート(バージョン 4.3 から)

JIRA はAtlassian社のJava ベースのバグトラッキングシステムで、JBossApacheCodehausでも使われています。
とっつきやすさと高機能をうまく両立しており、また見た目が洗練されている素晴らしい製品です。
オープンソースプロジェクトへは無償ライセンスを提供してくれるので私のプロジェクトでも使っています

今回は4.3から4.3.4へのアップグレードをしました、新規インストールの手順もほとんど同じです。

1. 現行 JIRA のバックアップ、新規インスタンスでインポート
既存 JIRA インスタンスより、
ADMINISTRATION > Import & Export > Backup Data to XML
File name: jirabackup110626.xml > "Backup"

バージョン4.2以前はファイル名としてフルパスを指定する必要がありましたが JIRA 4.2.2 からは : $jirahome/export ディレクトリへ書き出されるためファイル名だけを指定すれば良いようになりました。

無事成功すると Data exported to: /Users/yusukey/jirahome/export/jirabackup110626.xml
と表示されます。
ここで現行インススタンスはシャットダウンします。

2. Atlassian より最新版をダウンロード
http://www.atlassian.com/software/jira/JIRADownloadCenter.jspaより atlassian-jira-4.3.4.tar.gz をダウンロードしました。以前は atlassian-jira-enterprise-4.X.X-standalone.tar.gz という名前でしたがちょっとファイル名の命名規則が変わった模様。

3. MySQL への接続設定
既存データベースに接続させることもできるけれども、最適なスキーマを作るには新規にデータベースを用意した方が良いとのことです。データ自体は先の手順でXMLにエクスポートしているのでデータベースの作成のみでマイグレーションはMySQLのレベルで行う必要はありません。

$ ./mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17958
Server version: 5.1.48 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database jira434 character set utf8;
Query OK, 1 row affected (0.11 sec)

mysql> Bye


conf/server.xml 内に以下の様に記述し、コネクションプールを設定&コンテクストパスを"/jira"に設定。
<Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false">
<!--Resource name="jdbc/JIRADS" auth="Container" type="javax.sql.DataSource"

driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:${catalina.home}/database/jiradb"
username="sa"
password=""

minEvictableIdleTimeMillis="4000"
timeBetweenEvictionRunsMillis="5000"
maxActive="20"
/-->
<Resource name="jdbc/JIRADS" auth="Container" type="javax.sql.DataSource"
username="yusukey"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jira433?useUnicode=true&amp;characterEncoding=UTF8"
validationQuery="SELECT 1"
minEvictableIdleTimeMillis="4000"
timeBetweenEvictionRunsMillis="5000"
maxActive="20" />

validationQueryというのを設定するのがミソです。最近のバージョンではこれを設定していないとJIRAの画面で警告がでます。

4. JIRA のデータソース設定
atlassian-jira/WEB-INF/classes/entityengine.xml を修正
接続 DB を hsql から mysql に、schema-name を削除。
99:    <datasource name="defaultDS" field-type-name="hsql"
100: schema-name="PUBLIC"

99: <datasource name="defaultDS" field-type-name="mysql"
100: <!--削除-->



5. メールセッションの設定
conf/server.xml 内に以下の様に追記してメールセッションを有効にします。
<Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false">
<Resource name="mail/jiraMail"
auth="Container"
type="javax.mail.Session"
mail.transport.protocol="smtp"
mail.smtp.host="smtp.gmail.com"
mail.smtp.port="465"
mail.smtp.auth="true"
mail.smtp.user="jira@yusuke.homeip.net"
password="****"
mail.smtp.starttls.enable="true"
mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
/>


また、atlassian-jira/WEB-INF/lib/ 以下の activation-1.1.1.jar と mail-1.4.1.jar を lib/ 直下に移動します。
jira4.3$ mv ./atlassian-jira/WEB-INF/lib/activation-1.1.1.jar lib/
jira4.3$ mv ./atlassian-jira/WEB-INF/lib/mail-1.4.1.jar lib/


これは Tomcat レベルでメールセッションを設定する場合、クラスパスの階層の兼ね合いから JIRAの WEB-INF/lib 以下に JavaMail 関連のライブラリがあるとメール送信時に NoClassDefFoundError が発生してしまうからです。
JIRA の管理画面で smtp サーバを設定する場合はこの手順は不要です。
しかし、JIRA の管理画面からは Gmail 等 SSL しか受け付けない SMTP サーバを設定する場合必要になります。
参考:
Using Gmail as a JIRA Mail Server
Configuring JIRA to Send SMTP Mail

6. jira.home の設定
atlassian-jira/WEB-INF/classes/jira-application.properties の jira.home に任意のディレクトリを絶対パスで指定します。
jira.home=/Users/yusukey/jirahome


7. 起動パラメータの調整
ヒープサイズ、Permanent領域サイズを bin/setenv.sh では以下のように設定しました。今までヒープサイズは170mに指定していたけれどもデータのインポート時にOutOfMemoryErrorが発生したので270mとしてみました。
JVM_MINIMUM_MEMORY="270m"
JVM_MAXIMUM_MEMORY="270m"
JIRA_MAX_PERM_SIZE=160m

8. AJPポートの設定
ウチのサーバではApacheをフロントに立ててAJPで接続しているのでAJPコネクタをセットアップします。またほかのサービスとポートがかぶらないようシャットダウンポートを9005に、HTTPコネクタを無効にしています。

<Server port="9005" shutdown="SHUTDOWN">
.
.
.
<!--
<Connector port="8080"
.
.
.

</Engine>
<Connector port="9009"
maxHttpHeaderSize="8192" maxThreads="20" minSpareThreads="20" maxSpareThreads="20" useBodyEncodingForURI="true"
protocol="AJP/1.3" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="600000" disableUploadTimeout="true" />
</Service>
</Server>

8. JIRA の起動
startup.sh とかから起動。

9. データのインポート
JIRA にアクセスし、インポート。
Import Existing Data
File name: /Users/yusukey/jirahome/export/jirabackup110626.xml
エクスポート時はディレクトリが固定されていて入力できないのにインポート時はフルパスで入力する必要がありました。ちょっと不親切です。

10. アップグレード完了!
以上でバージョンアップが完了。

gitプラグインもいれたいところですが、まだ4.3には対応していないみたいです。
JIRA Git Plugin - JIRA - Atlassian Plugin Exchange

関連記事:
JIRA 4.3 のインストール/アップデート(バージョン 4.2.2 から) - 侍ズム
JIRA 4.2.2 のインストール/アップデート(バージョン 4.2.0 から) - 侍ズム
JIRA Git Plugin のインストール - 侍ズム
JIRA 4.2 のインストール/アップグレード(バージョン 4.1 から) - 侍ズム
JIRA 4.1 のインストール/アップグレード(バージョン 4.0.2 から) - 侍ズム
JIRA 4.0.0 から JIRA 4.0.2 へのアップグレード - 侍ズム
アトラシアン(Atlassian)製品の価格と購入方法
Atlassian が JIRA4 をリリース - 指名ユーザライセンス制を導入 - 侍ズム
JIRA 3.13.1 へ FishEye プラグイン 2.3 をインストール
JIRA をバージョン 3.13.1 へアップデート - 侍ズム
FishEye 1.6.3 のインストール
JIRA をバージョン 3.12.3 へアップデート

このエントリーをはてなブックマークに追加   

「チケット管理システム大決戦 第二弾」に登壇します

デベロッパーサミットで好評だったセッション、「チケット管理システム大決戦」の第二弾、が今週Shibuya.tracの主催で今週開催されます。

Shibuya.trac第12回勉強会 ~チケット管理システム大決戦 第二弾~

「チケット管理システム」はソフトウェア(とは限りませんが)プロジェクトの課題(追加予定の新機能やバグなど)を管理し、プロジェクトのスムースな運営、情報共有を助けるツールです。高価な商用製品からオープンソースで公開され無償で使えるツールまで数多くあります。

私は長い間Atlassian製のJiraを使ってきたので今回Jiraユーザ代表としてパネルディスカッションに参加することになりました。

Jira以外にはRedmineTracBacklogを愛する猛者達が登壇するそうです。

残念ながら一般枠は定員一杯になっていますが、最近流行の(?)女子枠は若干名残っているみたいです。
6月30日 Shibuya.trac 第12回勉強会 【女子枠】(東京都)
#今みたら残りあと一人でした!!!

恐らくUST中継も誰かがしてくださる・・・のではないかと思います。興味のある方はご覧いただければと思います。
ハッシュタグは恐らく #shibutra。キャンセルが出た場合のお知らせもこちらのハッシュタグでアナウンスされるみたいです。

このエントリーをはてなブックマークに追加   

「Twitter APIポケットリファレンス」予約受付中 #twtr_ref

「Twitter APIポケットリファレンス」が技術評論社から7月15日に発売されます。ただいま予約受付中!

【送料無料】Twitter API ポケットリファレンス

【送料無料】Twitter API ポケットリファレンス
価格:2,499円(税込、送料別)



REST APIから始まりストリーミングAPI、そして今月頭に公開されたばかりのフォローボタンなど、Twitter APIで現時点で公開されているもの全てをカバーしています。

目次は以下の通り。

1章 Twitterの基本
・Twitterの用語と関連する仕組み
2章 Twitter APIの基本
・APIの基本
・アプリケーション開発の事前準備
・Twitter APIの認証
3章 REST API
・REST APIの基本
・REST APIのレートリミット
・REST APIリファレンス
4章 検索API
・検索APIの基本
・検索APIのサンプルコード
5章 ストリーミングAPI
・ストリーミングAPIの基本
・ストリーミングAPIのサンプルコード
・ストリーミングAPIリファレンス
- Streamed Tweets
- User Streams
- Site Streams
6章 Webサイト向けAPI
・Webサイト向けAPIの基本
・フォローボタン
・ツイートボタン
・Web Intents
・@Anywhere
付録
・アプリケーション開発のコツ
・Twitter接続ライブラリ
・リファレンス

図にするとこんな感じ:



100以上あるAPIを統一感を持たせ、かつ引きやすくすることに力を入れました。
特定のプログラミング言語を対象としているわけではありませんが、全般に渡ってPHPとJavaのサンプルコードを掲載しています。
また.Net、Ruby、Pythonのライブラリのセットアップ方法と簡単なOAuth認可/ツイートを行うコードも付録に載せました。
これからTwitter APIを使う方にも、既にAPIを活用している方にも役立つと思います。


裏話:
1年近くこの本に力を注いで来ました。遅筆で編集の池本さんをやきもきさせてしまいましたが、その分良い本に仕上がったのではないかと思います。
現時点ではぶっちゃけ公式ドキュメントよりも正確かつ詳細な情報を掲載していると自負しています。
何しろTwitter API全体のバグ報告(2243件)のうち、これまで私が報告した件数は実に55件にのぼり、本家ドキュメントで修正が追いついていない分も先回りしてこの本には反映させてあるからです。
Twitter4Jの開発を通して得た知識をフル投入しました(Twitter APIのリファレンスであってTwitter4Jの解説本ではありません)。
また数多くの方に査読していただき非常に使いやすく、読みやすくなっていると思います。

関連記事:
新刊ピックアップ:ロングセラーシリーズの新刊・Javaポケットリファレンスの秘密|gihyo.jp … 技術評論社

タグ :
このエントリーをはてなブックマークに追加   

GitHubのマージボタンが便利!

GitHubは4月にマージボタンという機能をリリースしました。
これがヤバい!
The Merge Button - GitHub

pullリクエストが来たら・・・

プルリクエストを選択して・・・


①でコミット内容を確認し、問題なければ②のコミットボタンを押す。


必要に応じてマージメッセージを修正して


マージ完了。
あとはローカルで git pull origin master とすれば良いだけ。

簡単です。プルリクエストが来たけどJiraのissue番号がコメントに記載されていなくて面倒だなーとか思うことありますが、マージ時にメッセージも編集できるのがかなり嬉しいです。

GitHubは生まれてまだ3年なのにコードホスティングサービスとして一番人気を誇るそうです。
GitHub Dominates the Forges - GitHub

手元にある秘蔵のコード、GitHubで全世界に公開してみませんか?

タグ :
このエントリーをはてなブックマークに追加   

Javaソースコードリーディング第4回(Twitter4J)に参加しました

大阪で定期的に開催しているJavaソースコードリーディングというイベントがあるのですが、今回テーマがTwitter4Jということで遠征して参加してきました。

Javaソースコードリーディング 第4回 : ATND

参加者はなんと20名弱も集まりました。狭くはないけどだだっ広くもない株式会社クロノスの研修ルームは大賑わい。ソースコードリーディングというモクモクとする作業をみんなで集まってどうやって進めるのか興味がありました。

まずは@irofがソースコードリーディングの意義とTwitter4Jのパッケージ・クラス構成について解説。ソースコードを読むことでコーディングの手本としたり、読む対象のプロダクトの使い方を学びましょう、というお話でした。今までオープンソースの製品を使っていて不具合に遭遇してパッチを書く必要があったり、ドキュメントが不足していて使い方を調べるためにコードを読むという機会はありましたが、今回のようにソースコードをまず読んでスキルアップや製品の理解に繋げようということはしたことがなかったので面白いアプローチだなーと思いました。
GlassFishやSpring、Guiceのソースコードリーディングイベントがあったら参加したいかも!!!
他にはTwitter4JやTwitter関連のLT。TitaniumやGroovyも絡むネタで面白かったです。
私もしゃべる時間も頂いてTwitter4Jの開発サイクルや利用しているツール群などについて説明させていただきました。



Twitter4Jはもちろん9割方のソースコードは把握しているので今回私は何か質問があればどんどん答えようというスタンスで参加しました。
どれくらいお役に立てたのかわかりませんが、面白い機会だったのではないかと思います。
しかも1件バグを指摘していただき、その場で修正することもできました!
あと寄付金は全然集まってないよ、という話をしたら宿泊費くらいにはなる寄付を即座に頂きました。ありがとうございます!!!!

夜は懇親会。職人気質の皆さんの熱い話が聞けて良かったです。

遠征ということで気を遣っていただき昼ご飯も懇親会も奢っていただきました。恐縮至極です。
また機会があれば参加したいです!

ところで、せっかくソースコードリーディングというイベントだったのでソースコードについてもうちょっと説明すればよかったかなーと反省。別の機会にやりましょうかね!?
USTでもok?それともTwitter API勉強会的なイベントを開くとか?

関連記事:
転石はどん底まで止まらない(・∀・) Javaソースコードリーディング 第4回を見た
Togetter - 「Twitter4j コードリーディング」
言葉をポッケに持ち歩こう: Twitter4jに学ぶ、スピード感
Javaソースコードリーディング#4 で喋ってきた - 日々常々
Javaソースコードリーディング(中の人もいるよ)に行ってきました! - 裏紙

タグ :
このエントリーをはてなブックマークに追加   

「CODA入門〜エレガントなWeb開発・美しいコード〜」を頂きました

Codaの入門書が技術評論社から出るそうです。先日見本誌をいただきました。

Codaはファイル転送ソフトのTransmitで有名なPanic社が出しているMac用のWebオーサリングツールです。Mac OSXネイティブらしいきれいな見栄えとシングルウインドウでHTML、JavaScript等の編集、そしてftp、sftpを使ったサイトの管理まで出来てしまうという強力さが特徴です(Transmitの機能を内蔵しています)。

WebオーサリングツールといえばDreamWeaverがデファクトスタンダードとなっていることもあり入門書が数多く出ています。Codaはこれまで(知る限り)書籍がありませんでした。
今回Codaの入門書が出たことで日本でも一気に普及が弾むのではないでしょうか。
単純に比較はできませんがDreamWeaverが47,500円(サブスクリプションだと月2,000円かな?)のところCodaは11,500円。激安ではないけどエイヤと変えてしまう範囲ではないでしょうか?


本書はあくまでWebの基本を理解している人向けのようで、HTMLやJavaScript、CSS自体のテクニックについては特に触れていません。とにかくCodaを活用するための徹底的な解説本になっています。

Codaは前から気になっているツールで試用してみたことはあったのですが使いこなせる自信がありませんでした。この本を参考にすれば理解がすぐ深まりそうなので今回購入してしまいました!
Mac使いでHTMLを編集することがある人にはお勧めです。

章立ては以下の通りです。
・目次
第1章 基本機能を知る
第2章 サイト管理の使い方とは
第3章 ファイルのナビゲート法
第4章 テキストエディタの効率アップ術
第5章 CSSエディタの使い方
第6章 コラボレーション機能を活用しよう
第7章 リソースの管理方法
第8章 ターミナルの使い方
第9章 効率の良いテスト方法
第10章 プラグインの使い方と作り方

細かい目次は写真にとってみました。
Share photos on twitter with Twitpic Share photos on twitter with Twitpic Share photos on twitter with Twitpic

・Amazonアフィリエイトリンク


・楽天アフィリエイトリンク



・Panic社のサイト
Panic - Shockingly Good Mac Software.


パニック・ジャパン - ショッキングなほどに優れた Mac ソフトウエアをあなたに。


・Codaの紹介ページ
パニック・ジャパン - Coda - Mac OS X 用 シングルウインドウ Web 構築環境

・Codaの購入(AppStore)
(無償、機能制限なしの試用版はPanic社のWebサイトからダウンロードできます)
Coda - Panic, Inc.

タグ :
このエントリーをはてなブックマークに追加