Tracの導入
プロジェクト作成
# mkdir /home/trac # trac-admin /home/trac/project initenv プロジェクト名:project データベース名:(未入力でEnter) Subversionのリポジトリのパス:/home/svn/project テンプレートのパス:(未入力でEnter)
Shift_JISのソースコードをブラウザへ表示する為の設定
# vi /home/trac/project/conf/trac.ini [trac] default_charset = japanese.shift_jis ignore_auth_case = false
Subversionのサイトファイルを編集
# vi /etc/httpd/conf.d/subversion.confAuthType Basic AuthName "Trac Authentication" AuthUserFile /home/svn/project/.htpasswd Require valid-user ScriptAlias /trac/project /usr/share/trac/cgi-bin/trac.cgiSetEnv TRAC_ENV "/home/trac/project"
サーバをリスタート
# /etc/init.d/httpd restart
Subversionの導入
Subversionのインストール
バージョン:subversion-1.2.1-0.1.1.fc3.rf
# yum install subversion # yum install mod_dav_svn
トランク、タブ、ブランチの作成
# export SVN_EDITOR='vi' # svn mkdir \ file:///home/svn/project/trunk \ file:///home/svn/project/tags \ file:///home/svn/project/branches
インポート
# mkdir sen # echo HelloWorld! > sen/text.txt # svn import sen file:///home/svn/project/trunk/sen
WebDAV設定ファイル作成
# vi /etc/httpd/conf.d/subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.soDAV svn SVNPath /home/svn/project AuthType Basic AuthName "Subversion Repository" AuthUserFile /home/svn/project/.htpasswd Require valid-user
ユーザの作成
# htpasswd -cm /home/svn/project/.htpasswd admin New password: Re-type new password: Adding password for user admin
サーバをリスタート
# /etc/init.d/httpd restart
■
SubversionとTracを導入したのでメモ
メタアノテーションとは?
以下のものが、java.lang.annotationパッケージに定義されています。
①Target
②Retention
③Documented
④Inherited
①Target
アノテーション型の宣言にのみ利用できるもので
アノテーションの対象を指定します。
java.lang.annotation.ElementType.ANNOTATION_TYPE - アノテーション
java.lang.annotation.ElementType.CONSTRUCTOR - コンストラクタ
java.lang.annotation.ElementType.FIELD - フィールド
java.lang.annotation.ElementType.LOCAL_VARIABLE - ローカル変数
java.lang.annotation.ElementType.METHOD - メソッド
java.lang.annotation.ElementType.PACKAGE - パッケージ
java.lang.annotation.ElementType.PARAMETER - パラメータ
java.lang.annotation.ElementType.TYPE - クラス、インタフェース、列挙型
import java.lang.annotation.ElementType; import java.lang.annotation.Target; @Target(ElementType.FIELD) public @interface AnnotationTest { String value(); }
このアノテーションは、フィールド以外に指定するとコンパイル時に怒られます。
②Retention
アノテーション型の宣言にのみ利用できるもので
アノテーションの利用局面を指定します。
java.lang.annotation.RetentionPolicy.CLASS
- コンパイル後、クラスファイルに記録される。しかし、実行時に VM に読み込まれない。
java.lang.annotation.RetentionPolicy.RUNTIME
- コンパイル後、クラスファイルに記録される。実行時に VM に読み込まれる。
java.lang.annotation.RetentionPolicy.SOURCE
- コンパイル時に破棄される。
import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface AnnotationTest { String value(); }
デフォルトはCLASSが指定される。
その為、実行時にリフレクションAPIを使用して、アノテーションにアクセスしたようなら
RUNTIME を指定する必要がある。
しかし、SOURCEやCLASSのアノテーションに関してもapt(Annotation Processor Tool)
というコマンドが提供されており、パーサの役割を果たしてくれるとのこと。
暇があればまた調べてみよう。
独自アノテーションの作成
アノテーションの宣言は @interface キーワードを用います。
また、java.lang.annotation.Annotationを暗黙的に継承する為、別のアノテーション
を継承させるといった使い方はできません。
①メンバを持たないアノテーション
public @interface AnnotationTest { }
②1つのメンバを持つアノテーション
public @interface AnnotationTest { String value(); }
特にメンバが1つの場合、valueというメンバを定義します。
③複数のメンバを持つアノテーション
public @interface AnnotationTest { int id(); String[] names(); String comment() default "no comment."; // デフォルトを指定すると省略できる AnnotationTypeEnum type(); // 列挙型 } public enum AnnotationTypeEnum { TYPE_1, TYPE_2, TYPE_3 }
※.列挙型を指定した例
※.デフォルト値を指定すると省略可能。(デフォルト値の指定には、defaultキーワードを使う。)
また、メソッドの戻り値には、プリミティブ型、String、Class、列挙型、アノテーション型
しか指定できないとのこと。