Eclipse インストーラーの作成方法

最終変更 2002 年 5 月 6 日 11:15

Eclipse ベースの製品は、エンド・ユーザーのコンピューターに正しくインストールする必要があります。 特殊目的のパッケージ化ツール、InstallShield および RPM が、インストール、更新、アンインストールを自動化する、実行可能インストーラーをビルドするためによく使用されます。 この注では、Eclipse ベースの製品のインストーラーと、 Eclipse ベースの製品とは別にインストールできる拡張用のインストーラーを作成する方法について説明します。

ここでは、製品開発チームが、 未加工の要素を提供することに責任を持っているものとします。未加工の要素については、エンド・ユーザーのコンピューターに実行可能インストーラーとしてこれらの要素をパッケージする方法を見つける必要があります。 実行可能インストーラーの作成は、エンド・ユーザーと相互作用し、 ファイルをコンピューターに置くために必要な、インストール時アクションをスクリプトすることです。 この注では、これらのインストーラーが行う必要のある操作と、それらが作用する方法を詳細に説明します。 

この注は、Eclipse ベースの製品のインストーラーを作成する責任を持つユーザーのためのレシピです。 すべてのインストーラー作成者が我々のレシピに従うようにお勧めするのには、次の 2 つの理由があります。

製品インストーラーの作成スクリプト

製品インストーラーは自己完結型にすべきです - これは CD で配布され、適切なオペレーティング・システムを持つ任意のマシンにインストールできるものです。

Eclipse は、Java コードを実行するために Java2 Java Runtime Environment (JRE) を必要とします。 JRE は、ライセンス交付を受けたソフトウェアで、Java ベンダーから入手します。 JRE ベンダーから JRE を再配布するライセンスを取得していれば、企業はその製品に JRE を組み込むことができ、 その製品と同時にエンド・ユーザーのコンピューターにインストールできます。 上記以外の方法では、JRE をエンド・ユーザーのコンピューターにあらかじめインストールし、 製品のインストール時に関連付ける必要があります。 いずれにしても、Eclipse ベースの製品には適切な JRE が必要で、その製品のインストーラーは、 JRE をインストールするか、既存の JRE を探してリンクする必要があります。 

JRE を製品と一緒にインストールすると仮定します。 JRE を含むディレクトリーはインストーラー作成スクリプトの 1 つの入力です。 このディレクトリーを <JRE> と表します。 このディレクトリーは標準ディレクトリー構造を持っていて、<JRE> ディレクトリーの下、 jre/bin/java.exe に Java 実行可能ファイル、jre/lib/rt.jar にクラス・ライブラリーを必要とします。 このディレクトリーのスケルトン構造は次のようになります。

<JRE>/
  jre/
    bin/
      java.exe
    lib/
      rt.jar

これらのディレクトリーには追加のファイル (およびサブディレクトリー) があります。 ここでは一般的な構造を示すサンプルのみを示します。 イタリック体の名前は製品に特有のものです。

インストーラー作成スクリプトの 2 番目の入力は、ディレクトリー <product head> で、 製品特定の実行可能ランチャーおよび Eclipse に関係のないファイルを含んでいます。 参照として、このディレクトリーのスケルトン構造は次のようになります (イタリック体は、製品によって変化するファイル名を示します)。

<product head>/
  acmeproduct.exe

インストーラー作成スクリプトの 3 番目の入力は、ディレクトリー <product body> で、 製品用に開発されたフィーチャーおよびプラグインを含みます。 このディレクトリーのスケルトン構造は次のようになります。

<product body>/
  eclipse/
    features/
      com.example.acme.acmefeature_1.0.0/
        feature.xml
      com.example.acme.otherfeature_1.0.0/
        feature.xml
    plugins/
       com.example.acme.acmefeature_1.0.0/
        plugin.xml
        about.ini
        about.properties
        about.mappings
        plugin_customization.ini
        splash.bmp
       com.example.acme.otherfeature_1.0.0/
        plugin.xml
        about.ini
        about.properties
        about.mappings
       com.example.acme.myplugin_1.0.0/
        plugin.xml
        myplugin.jar
       com.example.acme.otherplugin_1.0.0/
        plugin.xml
        otherplugin.jar

インストーラー作成スクリプトの 4 番目の入力は、ディレクトリー <platform> で、 Eclipse プラットフォームそれ自体と組み込まれている任意のサード・パーティー・ツール用のフィーチャーおよびプラグインを含みます。 このディレクトリーには、標準 Eclipse 実行可能ランチャー、eclipse.exe (UNIX 操作環境では eclipse という名前です)、そのコンパニオン startup.jar、 およびインストールのルートで必要な他の Eclipse プラットフォーム・ファイルも含みます。 このディレクトリーのスケルトン構造は次のようになります。

<platform>
  eclipse/
    eclipse.exe
    startup.jar
    features/
      org.eclipse.platform_2.0.0/
      org.eclipse.platform.win32_2.0.0/
      org.eclipse.jdt_2.0.0/
      org.eclipse.pde_2.0.0/
    plugins/
      org.eclipse.platform_2.0.0/
      org.eclipse.core.runtime_2.0.0/
      org.eclipse.core.boot_2.0.0/
      org.eclipse.core.resources_2.0.0/
      org.eclipse.ui_2.0.0/
      org.eclipse.jdt_2.0.0/
      org.eclipse.jdt.core_2.0.0/
      org.eclipse.jdt.ui_2.0.0/
      org.eclipse.pde_2.0.0/
      org.eclipse.pde.core_2.0.0/
      org.eclipse.pde.ui_2.0.0/
      (more org.eclipse.* plug-in directories)

<JRE>、<product head>、 <product body>、および <platform> 入力ディレクトリーの内容が、 エンド・ユーザーのコンピューターにどのファイルがインストールされるかを決定します。

インストーラー作成スクリプトの最後の入力は、製品の基本フィーチャーの ID およびバージョンのストリング、 例えば com.example.acme.acmefeature および 1.0.0 と、製品実行可能ファイルの名前、例えば acmeproduct.exe です。 それ自体の製品実行可能ファイルを必要としない製品の場合、これは標準 Eclipse 実行可能ランチャーのパス eclipse/eclipse.exe になります。 これらのストリングは、インストーラーには特別に重要で、ファイルとディレクトリーの名前中に、 またインストール時に作成されたマーカー・ファイルの内容中に見られます。

インストール時、インストーラーは、以下のような標準的な動作をする必要があります (ステップのリストの最後にさらに詳細があります)。

  1. すべてのプログラムを終了するようにユーザーに伝える
  2. インストールする製品を紹介する
  3. 該当する場合は、登録済み所有者の名前とライセンス・キーをユーザーに問い合わせる
  4. 製品のライセンス交付の合意を表示し、ユーザーに受諾を問い合わせる
  5. 製品をインストールするディスク上のロケーションを推奨する (ユーザーはこのデフォルトをオーバーライドできます)
  6. 製品あるいは拡張がまだ指定したロケーションに保管されていないことをチェックする
  7. インストールの詳細をすべて確認したかをユーザーに問う
  8. 製品インストールのルートにマークを付けるためにマーカー・ファイルを作成する
  9. ファイルをディスクにコピーする (下記を参照) 
  10. 該当する場合は、登録済み所有者の名前とライセンス・キーを「製品概要」の説明に追加する
  11. 製品の実行可能ファイルを実行するデスクトップのショートカットを作成する
  12. 適切なエントリーを作成して、ユーザーが製品をアンインストールできるようにする
  13. 製品の実行可能ファイルを -initialize オプションを指定して起動し、初回の処理をすべて実行する
  14. 製品のリリース・ノートの表示を提供する (「readme」ファイル)

ステップ 5 で指定したロケーションが <install> の場合は、 インストーラーは、<JRE>、<platform>、 <product>、および <product plug-ins> ディレクトリー内のすべてのファイルを、 <install> にコピーします。 

入力ファイル インストール済みファイル
<JRE>/* <install>/eclipse/*
<product head>/* <install>/*
<product body>/* <install>/*
<platform>/* <install>/*

ステップ 8 で作成したマーカー・ファイル <install>/eclipse/.eclipseproduct を 使用して、Eclipse ベースの製品がインストールされたディレクトリーにマークを付けます (主に拡張インストーラーの検出用)。 このマーカー・ファイルは java.io.Properties フォーマット・ファイル (「\」エスケープを持つ ISO 8859-1 文字エンコード) で、 ユーザーが製品を識別するための以下の情報を含み、Eclipse ベースの製品と他を区別します。

name=Acme Visual Tools Pro
id=com.example.acme.acmefeature
version=1.0.0

「ID 」と「バージョン」プロパティーの値は、インストーラー作成スクリプトの入力です。 製品の名前はおそらく既知であり、事前に決まっています。 (製品は通常、このマーカー・ファイルをアクセスすることはなく、製品および拡張のインストーラーのみがこれを読み書きします。)

ステップ 6 では、既存の <install>/eclipse/.eclipseproduct または <install>/eclipse/.eclipseextension ファイルの検査が必要になります。 製品は、他の製品または拡張とまったく同じ場所にはインストールできません。

すべてのファイルをインストールした後は、インストール・ディレクトリーの最上位構造には、 次のファイルおよびサブディレクトリーその他が含まれます。

<install>/
  acmeproduct.exe
  eclipse/
    .eclipseproduct
    eclipse.exe
    startup.jar
    features/
    plugins/
    jre/

製品インストーラーが、登録された所有者の名前やライセンス・キーのようなライセンス情報をユーザーから請求する場合は、 この情報を製品の「製品情報」ダイアログに作成する必要があります (ステップ 10)。

この処理は、基本フィーチャーのプラグインの「about.mapping」ファイルに、 ユーザーの応答を記録することにより行われます。 例えば、<install>/plugins/com.example.acme.acmefeature_1.0.0/about.mapping のようになります。 about.mapping ファイルは、<product head> 入力にすでに存在しているか、 またはインストーラーがインストール時に作成する必要があります。 そのキーは番号です。 「n」キーの値は、「aboutText」プロパティー内のサブストリング「{n}」で置換されます。 例えば、ライセンス・キーがフィールド番号 0 であった場合は、 「 0=T42-24T-ME4U-U4ME」のような行を含む「about.mapping」ファイルを作成する必要があります。

N.B. 「about.mapping」ファイルは、 「java.io.Properties フォーマット・ファイル (「\」エスケープを持つ ISO 8859-1 文字エンコード) です。 インストール時の固有文字エンコードが ISO 8859-1 と異なる場合は、インストーラーは、 固有文字エンコードを Unicode に変換し、必要に応じて「\」エスケープを追加する責任があります。 ストリングが特殊文字 (「\」など) またはラテン文字以外の文字を含む場合は、エスケープが必要です。 例えば、最初の 3 文字にギリシャ語アルファベットを含んでいるフィールド番号 1 の場合は、 「1=\u03B1\u03B2\u03B3」となります。

ステップ 12 では、製品インストーラーは、 特定の -initialize オプション [exact details TBD] を付けた、 その製品の実行可能ファイル  <install>/acmeproduct.exe を起動します。 これにより、Eclipse プラットフォームは、時間を要する最初の処理をすべて実行し、結果をキャッシュに入れるので、 ユーザーがその製品を開始すると、すぐにビジネスで使用できる状態になります。

アンインストーラーの動作

アンインストール時、アンインストーラーは、次のような標準の方法で動作させる必要があります。

  1. ユーザーにすべてのプログラム、特にアンインストールしようとしているものを終了するように伝える
  2. ユーザーにアンインストールする製品を確認するよう求める
  3. すべてのインストール済みファイルを、<install> ディレクトリーから除去する。 また、このインストーラー (例えば Eclipse 更新マネージャー) 以外のパーティーが配置したものを含む、 <install>/eclipse/features および <install>/eclipse/plugins 内の すべてのファイルを除去する
  4. 製品の実行可能ファイル用のデスクトップのショートカットを除去する
  5. 製品のアンインストーラーのエントリーを除去する
  6. 除去されなかったファイルをユーザーに知らせる

製品がアンインストールされるとき、インストール時に置かれたファイルを削除し、 Eclipse 更新マネージャーが作成した更新済みフィーチャーおよびプラグインも一緒に削除します。 重要: アンインストール時、<install> ディレクトリー、 特に <install>/eclipse/workspace/<install>/eclipse/links/、および<install>/eclipse/platform.cfg にある、 重要なデータを含んでいる他のディレクトリーおよびファイルは、製品をアンインストールするとき、 保管しておく必要があります。ユーザーは、重要なデータを失わずに同じロケーションで、 アンインストールおよび再インストールできなければなりません。

製品がすでにインストール済みの場合のインストーラーの動作

製品がすでにユーザーのコンピューターにインストールされているとき、インストーラーは、 インストール済み製品に対してサービス更新またはバージョン・アップグレードをできるようにしておく必要があります。

インストール時、インストーラーは、次のような標準の方法で動作させる必要があります。

  1. ユーザーにすべてのプログラム、特に更新しようとしているものを終了するように伝える
  2. 更新するインストール済み製品を見つける。 必要であれば、既存製品インストール用のディスクを検索、またはユーザーがそれを探すことを可能にする
  3. このインストーラーが更新の互換性があるかどうかを判別する
  4. 該当する場合は、登録済み所有者の名前とライセンス・キーをユーザーに問い合わせる
  5. 製品の更新されたライセンス交付の合意を表示し、ユーザーに受諾を問い合わせる
  6. 更新の詳細をすべて確認しているかをユーザーに問う
  7. ファイルをディスクに更新する (下記を参照) 
  8. 必要なら、製品の実行可能ファイルを実行するデスクトップのショートカットを変更する
  9. 変更済みあるいは新規追加済みファイルをアンインストール時に除去されたファイルのリストに追加する必要がある (実現可能な場所に)
  10. 製品のリリース・ノートの表示を提供する (「readme」ファイル)

ステップ 2 で、インストール済み製品は、「.eclipseproduct」という名前のファイルを含む、 「eclipse」ディレクトリーの存在によって認識できます。 「eclipse」ディレクトリーの親は、製品のインストール・ディレクトリー、 つまり、<install>/eclipse/.eclipseproduct です。 このマーカー・ファイルに含まれる情報は、正しい製品が更新されていることを確認するために、 ユーザーに示す必要があります (ユーザーのコンピューターには、いくつかの Eclipse ベースの製品がある可能性があります)。

インストーラーは、ステップ 3 で互換性検査を行う必要があります。 そこでは、<install>/eclipse/features ディレクトリーのサブディレクトリーに対して、 単純なパターン・マッチングが行われます。 例えば、「com.example.acme.otherfeature_1.0.1」に一致するフォルダーがある場合、 これは特定のサービス更新がインストール済み製品に適用されたことを示します。

ステップ 7 では、インストーラーは、最初からインストールされていたファイルを削除あるいは置換し、 より多くのファイルを追加する場合があります。 重要: <install>/eclipse/workspace/<install>/eclipse/platform.cfg を含むファイルおよびディレクトリーの中には、 インストールで再配置され、 製品をアップグレードするとき保管する必要がある重要なデータ・ファイルを含むものがある可能性があります。 

アップグレード時は、<install>/eclipse/plugins/ 下のファイルのほとんどは、 同じ状態である可能性があります (<install>/eclipse/features/ と同様に)。 そこでは <install>/eclipse/plugins/ を最適化する絶好の機会があります。 プラグイン (あるいはフラグメント) のバージョン番号を持つサブディレクトリーは、 その下にあるファイルが変更された場合にのみ変更されるからです。 言い換えれば、<install>/eclipse/plugins/org.eclipse.ui_2.0.0/ 内のファイルには、 アップグレードの後、このサブディレクトリーも存在している場合は、触れる必要がありません。 プラグインのファイルが変更されていた場合は、 プラグインのバージョン番号は改訂され、 アップグレード済みプラグイン用ファイルは、並列ディレクトリー <install>/eclipse/plugins/org.eclipse.ui_2.0.1/ にインストールされます。 

また、再インストールの場合は、重要なユーザー構成データを失うので、 製品実行可能ファイルを、-initialize を指定して起動してはいけません。

他の場所でインストールされた JRE の関連付け

JRE は、<install>/eclipse/jre/bin/javaw.exe にあることが想定されています。 他の場所に置かれている場合は、コマンド行で -vm オプションを使用して、絶対パスを指定する必要があります。 つまり、 -vm C:\j2jre1.3.0\jre\bin\javaw.exe と指定します。 どの場合も、インストーラーは、このオプションを作成するデスクトップのショートカットのコマンド行に追加する必要があります。

拡張インストーラー作成スクリプト

拡張とは、別個にインストール可能なフィーチャーとそのプラグインのセットで、 同じコンピューターにインストールされた 1 つ以上の Eclipse ベースの製品に関連付け、 そこから使用することができます。 製品と対比した場合、拡張は自己完結型ではありません。 拡張には、製品の実行可能ファイル、Eclipse プラットフォーム、JRE は組み込まれていません。

一般性を失うことなく、拡張は単一フィーチャーからなると想定します。 インストーラー作成スクリプトの最初の入力は、そのフィーチャーおよびプラグインを含むディレクトリー、 <extension> です。 拡張には、Eclipse に関連するファイルはないことを想定します。 そのようなファイルがある場合、それらは <extension>/eclipse/ には入れられず、<extension>/ に入れられます。 このディレクトリーのスケルトン構造は次のようになります。

<extension>/
  eclipse/
    features/
      com.example.wiley.anvilfeature_1.0.0/
        feature.xml
    plugins/
       com.example.wiley.anvilfeature_1.0.0/
        plugin.xml
        about.ini
        about.properties
        about.mappings
       com.example.wiley.mainplugin_1.0.0/
       com.example.wiley.otherplugin_1.0.0/

<extension> 入力ディレクトリーの内容により、 ファイルがエンド・ユーザーのコンピューターにインストールされるファイルが決定されます。

インストーラー作成スクリプトの最後の入力は、拡張のフィーチャー用の ID とバージョンのストリングです。 これは、例えば「com.example.wiley.anvil」および「1.0.0」です。 これらのストリングは、インストーラーには特別に重要で、ファイルとディレクトリーの名前中に、 またインストール時に作成されたマーカー・ファイルの内容中に見られます。

拡張インストーラーは、多くの点で製品インストーラーに類似しています。 相違点を以下に示します。

インストール時、以下のように、インストーラーは標準の方法で動作します。

  1. すべてのプログラムを終了するようにユーザーに伝える
  2. インストールする拡張を紹介する
  3. 該当する場合は、登録済み所有者の名前とライセンス・キーをユーザーに問い合わせる
  4. 拡張のライセンス交付の合意を表示し、ユーザーに受諾を問い合わせる
  5. 拡張をインストールするディスク上のロケーションを推奨する (ユーザーはこのデフォルトをオーバーライドできます)
  6. 製品あるいは別の拡張がまだ指定したロケーションに保管されていないことをチェックする
  7. どの製品がこの拡張を使用するかをユーザーに問い合わせる (ディスクの検索、ブラウズ、またはスキップ) を使用するかユーザーに問い合わせる
  8. オプションで、拡張が選択した製品と互換性があるか判別する
  9. インストールの詳細をすべて確認したかをユーザーに問う
  10. 拡張インストールのルートにマークを付けるためにマーカー・ファイルを作成する
  11. ファイルをディスクにコピーする (下記を参照) 
  12. 登録済み所有者の名前とライセンス・キーを「製品概要」の説明に追加する
  13. 適切なエントリーを作成して、ユーザーが拡張をアンインストールできるようにする
  14. 拡張を製品と関連付ける選択した製品のおのおためにファイルのリンクを作成する
  15. 拡張のリリース・ノートの表示を提供する (「readme」ファイル)

ステップ 5 で指定したロケーションが <install> の場合、 インストーラーは、ステップ 5 で、<extension> ディレクトリー内のすべてのファイルを、 <install> にコピーします。

入力ファイル インストール済みファイル
<extension>/* <install>/*

ステップ 7 では、どの Eclipse 製品も候補になる可能性があります。 Eclipse ベースの製品は、<product install>/eclipse/.eclipseproduct ファイルの存在で認識されます。 ユーザーは、インストール済み製品について制限付きディスク検索を要求可能であるか (「インストール済み製品の検索」ボタン)、または製品を含むディレクトリーにナビゲートされます (「ブラウズ」ボタン)。

インストーラーは、ステップ 8 で互換性検査を行う必要があります。 そこでは、<product install>/eclipse/features ディレクトリーのサブディレクトリーに対して、 単純なパターン・マッチングが行われます。 例えば、「org.eclipse.jdt_2.*」に一致するフォルダーがある場合、 これは JDT がインストール済み製品に組み込まれていることを意味します。 

ステップ 10 で作成したマーカー・ファイル <install>/eclipse/.eclipseextension は、 基本的には拡張インストーラーを探すために、 Eclipse ベースの拡張がインストールされたディレクトリーにマークを付けるために使用されます (製品の .eclipseproduct マーカー・ファイルに類似のもの)。 このマーカー・ファイルは java.io.Properties フォーマット・ファイル (「\」エスケープを持つ ISO 8859-1 文字エンコード) で、 ユーザーが拡張を識別するための以下の情報を含み、Eclipse ベースの拡張と他を区別します。

name=Wiley Anvil Enterprise Edition
id=com.example.wiley.anvilfeature
version=1.0.0

「ID 」と「バージョン」プロパティーの値は、インストーラー作成スクリプトの入力です。 拡張の名前はおそらく既知であり、事前に決まっています。 (製品は通常、このマーカー・ファイルをアクセスすることはなく、製品および拡張のインストーラーのみがこれを読み書きします。)

すべてのファイルをインストールした後は、インストール・ディレクトリーの最上位構造には、 次のファイルおよびサブディレクトリーが含まれます。

<install>/
  eclipse/
    .eclipseextension
    features/
    plugins/

製品インストーラーとの顕著な違いは、ユーザーのコンピューターにすでにインストール済みの他の Eclipse ベースの製品に、 ファイルのリンクも作成することだけです。 (これにより、ユーザーは、新規拡張を Eclipse 更新マネージャーを使用して、 手動で各製品内から関連付ける手間を省くことができます。) 

ステップ 14 で作成されたファイルのリンクは、 <product install>/eclipse/links/com.example.wiley.anvilfeature.link です。 つまり、ファイルは、バージョン番号接尾部より小さい、拡張のフィーチャー・ディレクトリーと同じ名前を持っています。 ファイルのリンクは、 java.io.Properties フォーマット・ファイル (「\」エスケープを持つ ISO 8859-1 文字エンコード) です。 キーは「path」で、その値はインストール済み拡張、<install> の絶対パスです。 つまり、エントリーは path=C:\\Program Files\\Wiley\\Anvil のようになります。 インストーラーは、固有文字エンコードから Unicode へ変換し、必要に応じて「\」エスケープを追加する責任があります。 <install> は一般に (「\」のような) 特殊文字を含んでいて、 名前にラテン以外の文字を持ったディレクトリーを持っている可能性があるので、エスケープは通常は必要です。 製品は始動時にファイルのリンクを読み取ります。 インストーラーは、作成するファイルのリンクの記録を保持しているので、拡張が更新されるか、 アンインストールされるとき、それらを見つけることができます。

アンインストーラーの動作

アンインストール時、アンインストーラーは、次のような標準の方法で動作させる必要があります。

  1. ユーザーにすべてのプログラム、特にアンインストールする拡張を使用している製品を終了するように伝える
  2. ユーザーにアンインストールする拡張を確認するよう求める
  3. すべてのインストール済みファイルを、<install> ディレクトリーから除去する。 また、このインストーラー (例えば Eclipse 更新マネージャー) 以外のパーティーが配置したものを含む、 <install>/eclipse/features および <install>/eclipse/plugins 内の すべてのファイルを除去する
  4. 可能なら、追加されたファイルのリンクをすべての製品から除去する 
  5. 拡張アンインストーラーのエントリーを除去する
  6. 除去されなかったファイルをユーザーに知らせる

拡張がアンインストールされるとき、すべてのプラグインおよびフィーチャーのファイルも削除する必要があります。 これらのサブディレクトリーには、重要なデータ・ファイルは保持されていません。 これにより、ユーザーは、Eclipse 更新マネージャーにより適用された任意の更新を含め、 拡張を完全にアンインストールすることができます。

拡張がすでにインストール済みの場合のインストーラーの動作

拡張がすでにユーザーのコンピューターにインストールされているとき、インストーラーは、 インストール済み拡張に対してサービス更新またはバージョン・アップグレードをできるようにしておく必要があります。

インストール時、インストーラーは、次のような標準の方法で動作させる必要があります。

  1. ユーザーにすべてのプログラム、特に更新する拡張を使用している製品を終了するように伝える
  2. 更新するインストール済み拡張を見つける。 必要であれば、既存拡張インストール用のディスクを検索、またはユーザーがそれを探すことを可能にする
  3. このインストーラーが更新の互換性があるかどうかを判別する
  4. 該当する場合は、登録済み所有者の名前とライセンス・キーをユーザーに問い合わせる
  5. 製品の更新されたライセンス交付の合意を表示し、ユーザーに受諾を問い合わせる
  6. 更新の詳細をすべて確認しているかをユーザーに問う
  7. ファイルをディスクで更新する (下記を参照) 
  8. 変更済みあるいは新規追加済みファイルをアンインストール時に除去されたファイルのリストに追加する必要がある (実現可能な場所に)
  9. 拡張のリリース・ノートの表示を提供する (「readme」ファイル)

ステップ 2 で、インストール済み拡張は、「.eclipseextension」という名前のファイルを含む、 「eclipse」ディレクトリーの存在によって認識できます。 「eclipse」ディレクトリーの親は、拡張のインストール・ディレクトリー、 つまり、<install>/eclipse/.eclipseextension です。 このマーカー・ファイルに含まれる情報は、正しい拡張が更新されていることを確認するために、 ユーザーに示す必要があります (ユーザーのコンピューターには、いくつかの Eclipse ベースの拡張がある可能性があります)。

ステップ 7 では、インストーラーは最初にインストールされた任意のファイルを削除または上書きしてはいけません。 むしろ、フィーチャーおよびプラグインの新規バージョン用のファイルのみを追加する必要があり、 マーカー・ファイル <install>/eclipse/.eclipseextension は再書き込み可能です。 古いバージョンを残しておくと、ユーザーは、更新をバックアウトするオプションが与えられます。 製品インストールをアップグレードすると、<install>/eclipse/plugins/com.example.wiley.otherplugin_1.0.0/ 内の ファイルには、アップグレードの後、このサブディレクトリーも存在している場合は、触れる必要がありません。 プラグインのファイルが変更されていた場合は、プラグインのバージョン番号は改訂され、アップグレード済み プラグイン用ファイルは、並列ディレクトリー <install>/eclipse/plugins/com.example.wiley.otherplugin_1.0.1/ に インストールされます。 

Copyright IBM Corporation and others 2000, 2003.