年別アーカイブ: 2010年

Eclipse CheckStyleの設定 編

CheckStyle を有効にしてコーディングを進めていくと、気になる点がいくつか出てきます。
まずは下の画面をご確認ください。

HelloWrold.java

20100518_01

package-info.java

20100518_02

シンプルなソースであるにもかかわらず、合計5箇所に2種類のCheckStyle警告が出ています。

20100518_03

1つ目は 『sayHelloメソッドを final宣言 or abstract化 or 空メソッドとすること』で、2つめは 『JavaDoc の "。" を ". (ピリオド)" に変更すること』で解消可能なのですが、あまり必要性のないコーディング規約ではないでしょうか。
このあたりがデフォルトのCheckStyle定義の融通が聞かない部分のように思えます。

今回は、デフォルトのCheckStyle定義の中で、個人的にそこまで厳密にルール化する必要があるとは思えない設定を変更していきます。

1. オリジナル定義を作成

デフォルトの2つのCheckStyle定義「Sun Checks」「Sun Checks (Eclipse)」は変更することができないため、別途オリジナルのCheckStyle定義を作成します。

「ウィンドウ」-「設定」メニューから設定画面を表示します。
「CheckStyle」メニューの「グローバル・チェック構成」項目から、「Sun Checks」を選択して「コピー」ボタンを選択します。

20100518_04

チェック構成プロパティ画面が表示されますので、適当な名前 (ここでは「Sun Checks (Original)」としています) と説明を入力して「OK」ボタンを選択してください。

20100518_05

新規に作成した「Sun Checks (Original)」を選択して「構成」ボタンを選択すると、CheckStyle構成画面が表示されます。
この画面からチェック内容の変更を行います。

20100518_06

2. チェック内容の変更

No 警告メッセージ 項目 設定
1 メソッド 'xxx' は拡張するように設計されていません - abstractかfinalか空であるひつようがあります。 case:1 クラス設計 - 拡張のための設計 OFF
2 最初の一文はピリオドで終わらなければなりません。 case:2 JavaDocコメント - スタイルJavaDoc - checkFirstSentence OFF
3 パラメーター xxx は final でなければなりません。 case:3 その他 - Final パラメータ OFF
4 'xxx' がフィールドを隠しています。 case:4 コーディング問題 - 隠しフィールド OFF
5 'xxx' はマジックナンバーです。 case:5 コーディング問題 - マジック・ナンバー OFF

case:1 メソッド 'xxx' は拡張するように設計されていません - abstractかfinalか空であるひつようがあります

前述、HelloWorld.java の sayHello メソッドが該当します。

case:2 最初の一文はピリオドで終わらなければなりません

前述、HelloWorld.java の JavaDoc が該当します。(行の最後が「。」で終わっている。)

case:3 パラメーター xxx は final でなければなりません

メソッドのパラメタがfianl宣言を行っていない場合、警告メッセージが表示されます。

case:4 'xxx' がフィールドを隠しています

フィールド変数とローカル変数 (メソッドのパラメタ変数も含む) が同一の場合、警告メッセージが表示されます。

case:5 'xxx' はマジックナンバーです

数値リテラルを使用している場合、警告メッセージが表示されます。
ただし、-1, 0, 1, 2 は警告対象から除外されます。

3. プロジェクトの使用定義の変更

「プロジェクト」-「プロパティ」メニューから、CheckStyle定義に「Sun Checks (Original)」を指定します。

20100518_07

設定画面から「デフォルトとして設定」を行っておくと、以降作成するプロジェクトでこの変更を行う必要はありません。

[ END ]

Eclipse プロパティエディタプラグイン (CentOS 5.5 64bit) 編

2013/5/8 追記
新しいバージョンについては以下を参照してください。
@see 「Eclipse プロパティエディタ プラグイン (CentOS 6.3 64bit)

Eclipse にプラグインを導入するには2種類の方法があります。
  1. 「新規ソフトウェアのインストール」メニューからのインストール
  2. プラグインを個別にダウンロードし、plugins ディレクトリにコピー

最近は前者でインストール可能なプラグインが多いですが、日本語化プラグインである pleiades の用に後者のプラグインも存在します。

今回は、Eclipse 3.5 にプロパティエディタ をインストールします。
このプラグインは native2ascii コマンドを使用することなく propertiesファイルの編集が可能となるため非常に便利です。

4/25時点では centos_x86_64 (64bit環境) でインストールできませんでした。
centos_i386 (32bit環境) ではインストール・使用可能でしたので、64bit環境に対応していないと割り切り、LimyEclipse プラグインで代替可能していましたが、本日なんとなくためしたところ何故か 64bit環境でもインストール・使用可能となっていました。
kernel含め、CentOS 5.5 にアップデートことが影響しているのかもしれません。
そのため、現在は LimyEclipse は未使用です。

1. updateサイトの登録

「ウィンドウ」-「設定」メニューの「使用可能なソフトウェアサイト」から、プロパティエディタのupdateサイトを登録します。
名前は「プロパティエディタ」、ロケーションは「http://propedit.sourceforge.jp/eclipse/updates/」とします。

20100516_01

「接続のテスト」をおこない、設定に問題ないことを確認します。

20100516_02

2. インストール

「ヘルプ」-「新規ソフトウェアのインストール」メニューからプラグインのインストール画面を表示します。画面上部の「作業対象」ドロップダウンリストからから「プロパティ・エディター」を選択します。

20100516_03

プロパティ・エディターをチェックし、「次へ」を選択します。

プラグインの関連性チェック後、インストール詳細画面を表示します。

20100516_04

内容を確認し、「次へ」を選択します。

最後にライセンスに同意し、「完了」を選択を選択するとプラグインのインストールが開始されます。

20100516_05

エラーなくインストールが完了した場合、Eclipseの再起動が求められます。
ですが、ここでは「いいえ」を選択します。

pleiades プラグインの制約上、新規プラグインのインストールまたは既存プラグインのバージョンアップを行った場合は -clean オプションをつけて Eclipseを再起動する必要があるためです。

Eclipse を一度終了させます。その後、改めて -clean オプションで Eclipse を起動することでプラグインのインストールは完了します。

3. 動作確認

Eclipse の再起動後、適当なプロジェクトで propertiesファイルを作成すると、PropertiesEditor で編propertiesファイルの編集が可能となります。
プロパティエディタプラグインをインストールしていない場合、propertiesファイルには日本語を入力できません (正確には、入力すると保存できません) が、画面のように日本語が入力可能となります。

20100516_06

通常のテキスト・エディターで上記 properites ファイルを開くと、native2ascii でエンコードされていることが確認できます。

20100516_07

[ END ]

Xen環境 kernelのアップデート (バージョンアップ) 編

CentOS 5.4の kernel が更新されたようですので、Domain-0 (64bit版)と Domain-U の centos_x86_64 (64bit版)、centos_i386 (32bit版) のバージョンアップを行いました。
  旧: 2.6.18-164.15.1.el5xen
  新: 2.6.18-194.3.1.el5xen

まずは Domain-0 のバージョンアップを行いました。

# Xen環境の場合、Domain-0 の kernel はバージョンアップしない方がよいのでしょうか。
# そのあたりは知識不足のため、今後影響ないかちょっと不安です。。。

バージョンアップ作業自体はXen環境以外と同様、yumコマンドのみで完了します。

$ su -
# yum update

Domain-0から yumコマンドを実行しました。
/boot/grob/grob.conf の Domain-0 メモリ設定も引き継がれています。(メモリ設定の詳細はこちら )

特に問題なく成功しましたので、あえて Domain-0 を再起動せずに常時起動としている Domain-U であるcentos_x86_64 (64bit版) でyumコマンドを実行したところ、

# yum update
* addons: ftp.jaist.ac.jp
* base: ftp.jaist.ac.jp
* extras: ftp.jaist.ac.jp
* updates: ftp.jaist.ac.jp
Setting up Update Process
No Packages marked for Update

と、「update可能なパッケージはありません」とのこと。
unameコマンドを実行しても旧kernel (2.6.18-164.15.1.el5xen) のままです。

Domain-0 を再起動していないことが原因か? とも思ったのですが、Xenの性格上それもおかしな話なので、ためしに常時起動としていない もう一つの Domain-U である centos_i386 (32bit版) を起動してyumコマンドを実行したところ、こちらは問題なく成功しました。
最新kernelを有効とするために centos_i386 を再起動しても特に問題はありませんでした。

$ uname -a
Linux [ホスト名].[ドメイン名] 2.6.18-194.3.1.el5xen #1 SMP Thu May 13 14:27:32 EDT 2010 i686 athlon i386 GNU/Linux

この時点で Domain-0の kernel はまだ旧kernelのまま。
つまり Domain-0 が旧kernel、Domain-U の centos_i386 (32bit版) が新kerel で動いています。

では、ということで常時起動としてる Domain-U、centos_x86_64 (64bit版) を再起動後、yumコマンドを実行したところ今度は成功。
もう一度再起動して centos_x86_64 も無事新kernelとなりました。

$ uname -a
Linux [ホスト名].[ドメイン名] 2.6.18-194.3.1.el5xen #1 SMP Thu May 13 13:49:53 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

最後に Domain-0 も再起動を行い、Domain-0 も新kernelで起動することを確認。
常時起動の centos_x86_64 と、普段は起動していない centos_i386 も問題なく動作すること最終確認して、バージョンアップ作業が完了しました。

5/19 追記
CentOSのバージョンが 5.4 から 5.5 に upgrade されていることに気づきました。

$ cat /etc/redhat-releaseCentOS release 5.5 (Final)

upgrade 指定でなくてもマイナーバージョンはあがってしまうんですね。
今さら知りました。。。

[ END ]