package-info.javaをコンパイルするために

Javaにおいて、パッケージにいくつかのアノテーションを指定することができます。これをするために、パッケージ定義のみを持つpackage-info.javaファイルを作成する必要があります。例えば、以下のような感じです。

/**
 * This package includes ... classes.
 * @author Yoichiro Tanaka
 */
package jp.eisbahn.foo.bar;

このpackage-info.javaファイルは、コンパイルすることができます。しかし、上記のケースでは、このファイルは不幸にもコンパイルされないでしょう。その理由は、それが実行時に必要とはjavacコマンドが判断しないからです。それ故に、もしpackage-info.classファイルが欲しい場合は、RUNTIME値を持つ何らかのアノテーションを配置する必要があります。

/**
 * This package includes ... classes.
 * @author Yoichiro Tanaka
 */
@RuntimeAnnotation
package jp.eisbahn.foo.bar;

import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Retention;

@Retention(RetentionPolicy.RUNTIME)
@interface RuntimeAnnotation {}

同じファイルの中で、RetentionPolicyクラスのRUNTIME属性を持つアノテーションを定義できます。そのアノテーションをパッケージに追加することで、そのパッケージは実行時に必要とされることになります。その結果として、そのファイルはjavacコマンドによってコンパイルされるでしょう。

PluginやFeatureのファイルを自由に配置する

基本的に、もしアップデートサイトにPluginやFeatureのJarファイルを配置したい場合、Eclipseアップデートサイトにて定義されたルールに従う必要があります。そのルールとは、site.xmlファイルを作成し、PluginのJarファイルを「plugins」という名前のサブディレクトリに置き、そしてFeatureのJarファイルを「features」という名前のサブディレクトリに置くことです。ユーザがこのアップデートサイトにアクセスしてプラグインをインストールする際に、EclipseはこのルールによってこれらのJarファイルを見つけることができます。

しかし、もしアップデートサイトを作りたいとき、何らかの理由でこれらのサブディレクトリを作れないかもしれません。そのとき、あなたは自由にこれらのファイルを配置したいと考えるでしょう。

このケースの場合、site.xmlファイル内で<archive>タグを使用することができます。このタグの指定により、PluginのJarファイルを任意の場所に配置することができるようになります。もちろん、FeatureのJarファイルは、URLを記述することによって場所を指定できるので、任意の場所に配置することが可能です。



  
    
  
  
  ...

Featureが「jp.eisbahn.foo」という名前のPluginを持っているとき、Eclipseは「plugins」という名前のサブディレクトリからそのPluginを探そうとするでしょう。そのとき、PluginのJarファイルのパスは、「plugins/jp.eisbahn.foo_1.0.0.jar」となります(バージョン番号が1.0.0の例)。そして、<archive>タグを使うことで、そのパスを任意のURLに置き換えることができます。上記の例では、そのパスは「http://www.eisbahn.jp/any/foo-plugin.jar」に置き換えられています。

このテクニックは、OSDEのアップデートサイトで使用されました。そのsite.xmlファイルは以下となります。

http://opensocial-development-environment.googlecode.com/svn/update-site-candidate/site.xml

OSDE 0.7.0 Candidate 1をリリースしました

OSDE 0.7.0 Candidate 1をリリースしました。このリリースでは、以下の機能追加を行っています。

  • Jettyのポート番号を変更するための設定 (Issue 104).
  • レイテンシ削減ツール – Evaluator for web performance (Issue 127).
  • レイテンシ削減ツール – JS Compiler (Issue 180).
  • iGoogle上でのガジェット管理/削除 (Issue 155).
  • HasAppフィルタのサポートと、アプリケーションの情報や管理をするっためのApplicationビューの提供 (Issue 106).
  • いくつかのバグフィックス

以下の候補版向けのアップデートサイトを使って、このバージョンをインストールすることができます。
http://opensocial-development-environment.googlecode.com/svn/update-site-candidate/site.xml

バージョン0.7.0から、フィーチャーやプラグインの名前が「com.googlecode.osde」に変更されています。もし0.5.0やそれよりも古いバージョンを使用している場合は、自動で0.7.0にアップデートすることはできません。古いバージョンをアンインストールしてから、0.7.0 Candidate 1をインストールしてください。

このバージョンをテストしていただき、何か問題があれば気軽にフィードバックをください。

後編も公開されました

「2010年のソーシャルWeb」後編も公開されました。

2010年のソーシャルWeb (後編)
http://gihyo.jp/dev/column/newyear/2010/socialweb-prospect-02

広告といくつかの標準仕様に言及しています。

2010年のソーシャルWeb

あけまして、おめでとうございます!2010年も、よろしくお願いいたします!

というわけで、今年のソーシャルWebがどうなっていくのか、昨年末に考えてみました。gihyo.jpに掲載されていますので、ぜひお読みください。

2010年のソーシャルWeb(前編)
http://gihyo.jp/dev/column/newyear/2010/socialweb-prospect-01

後編は、2日の10時頃に公開される予定です。

Get Adobe Flash playerPlugin by wpburn.com wordpress themes