5 拡張機能のパッケージ化とデプロイ

この章では、拡張機能を配布するためのパッケージの作成方法について説明します。

この章の内容は次のとおりです。

拡張機能のパッケージ化とデプロイについて

デプロイの前に、拡張機能を作成し、拡張機能JARファイル内でパッケージ化しておく必要があります。

拡張機能をパッケージ化してデプロイするステップは次のとおりです。

  1. まず、拡張機能バンドル・アーカイブとしてパッケージ化されたJARで構成される、拡張機能パッケージを作成します。拡張機能バンドル・アーカイブとは、拡張機能によって使用される拡張機能JARとすべてのサポート・ファイルを含んだJARファイルです。

    拡張機能JARファイルには次のものが含まれます。

    • 拡張機能マニフェスト・ファイルextension.xml

    • 開発時と同じディレクトリ構造で配置された、コンパイル済のクラス・ファイルとリソース。

    拡張機能バンドル・アーカイブには次のものが含まれます。

    • 1つ以上の拡張機能JARファイル。

    • すべてのサポート・ファイル(ライブラリJARファイルなど)。

  2. 次に、拡張機能JARファイルを、配布用の.zipファイルへとパッケージ化します。
  3. JDeveloperで今回初めて開いたプロジェクトの場合(たとえば、旧バージョンのJDeveloper用に記述された拡張機能を移行しようとしている場合など)は、「アプリケーション」ウィンドウでプロジェクトを右クリックし、「ターゲット・プラットフォームへのデプロイ」を選択します。これにより、バンドル・マニフェストmanifest.mfが生成されます(まだ生成されていない場合)。「アプリケーション」ウィンドウをリフレッシュすることが必要になる場合があります。
  4. 拡張機能が外部ライブラリを参照する場合は、「アプリケーション」ウィンドウでMETA-INFノードの下のバンドル・マニフェストmanifest.mfを探して開き、次の行を変更します。
    Bundle-ClassPath: .
    

    変更後:

    Bundle-ClassPath: .,external:jdev-install/jdeveloper/jdev/extensions/library
    

拡張機能のパッケージ化

JDeveloper拡張機能をデプロイのためにパッケージする方法を学びます。

拡張機能プロジェクトを作成すると、OSGiバンドルを作成するための拡張機能デプロイメント・プロファイルも作成されます。詳細は、『Oracle JDeveloperによるアプリケーションの開発』デプロイメント・プロファイルに関する項を参照してください。

デプロイメント・プロファイルの作成方法

OSGiバンドル・プロファイルのパラメータは、「プロジェクト・プロパティ」ダイアログから設定します。

デプロイメント・プロファイルを編集する手順は、次のとおりです。

  1. 「アプリケーション」ウィンドウで、プロジェクトを右クリックして「プロパティ」を選択します。または、「アプリケーション」メニューから「プロジェクト・プロパティ」を選択します。
  2. 「プロジェクト・プロパティ」ダイアログの左側のパネルで、「デプロイメント」を選択します。拡張機能プロファイルExtension (Extension JAR)が選択されます。「編集」をクリックします。
  3. OSGiバンドル・プロファイル・ダイアログのバンドル・オプション・ページで、バンドル名、バージョン、アクティベータなどの詳細方法を入力できます。作業中にヘルプを表示するには、[F1]を押すか、ダイアログから「ヘルプ」をクリックします。

    ダイアログ内の他のページを選択すると、依存関係を設定したり、含めるライブラリを設定できます。詳細は、「依存関係について」を参照してください。

    「デプロイメント・プロファイルのプロパティ」の編集が終了したら、「OK」をクリックします。

OSGiバンドルの作成方法

デプロイメント・プロファイルを編集したら、OSGiバンドルを作成できます。

OSGiバンドルを作成するには、次のようにします。

  1. 「アプリケーション」ウィンドウで、拡張機能プロジェクトを右クリックし、「デプロイ」→「extension-profile」を選択して、拡張機能のデプロイ・ダイアログを開きます。
  2. 「OSGiバンドルにデプロイ」オプションが選択されます。「次へ」をクリックし、サマリー・ページで、作成されるバンドルの詳細情報を確認します。問題なければ、「終了」をクリックします。

Oracle-home/jdeveloper/jdev/extensionsディレクトリに、拡張機能を含んだOSGiバンドルが作成されます。

OSGiバンドルの実行とデバッグは、この場所から自動的に行えます。詳細は、「拡張機能のテストとデバッグ」を参照してください。

拡張機能のデプロイ

JDeveloper拡張機能をデプロイする方法を学びます。

拡張機能をチームに配布するには、拡張機能をファイル・システム上で利用可能にした後、「更新の確認」ウィザード(「ヘルプ」メニューからアクセス)を使用して拡張機能をインストールするようユーザーに指示します。「拡張機能の使用方法」を参照してください。

なお、拡張機能をWeb上の場所でホストして、より広範囲のユーザーがその拡張機能にアクセスできるようにすることもでき、オープンソース・プロジェクトとしてホストすれば、他のユーザーがその拡張機能にさらなる開発を加えて、機能の強化に協力できるようにすることもできます。

オラクル社では、複数のサード・パーティ製JDeveloper拡張機能をホストしています。これらは、http://www.oracle.com/technetwork/developer-tools/jdev/index-099997.htmlから利用できます。このサイトに自作の拡張機能をアップロードする場合は、JDeveloperおよびADFフォーラム(https://forums.oracle.com/forums/forum.jspa?forumID=83)にメッセージを投稿してください。

更新センターで拡張機能を公開する方法

JDeveloper拡張機能の作成とテストが終われば、その拡張機能をJDeveloper更新センターに登録できます。ユーザーは、拡張機能を更新センターからダウンロードし、拡張機能が既存のJDeveloperに自働的に追加されるようにすることができます。

JDeveloper拡張機能を入手するための更新センターは、http://www.oracle.com/technetwork/developer-tools/jdev/index-099997.htmlからアクセスできます。サード・パーティおよび個人によって開発された拡張機能の一覧が掲載されている『Oracle JDeveloperサード・パーティ拡張機能入手ページ』にも、ここからアクセスできます。

JDeveloper更新センターを使用してユーザーが更新をインストールする方法の詳細は、「拡張機能マニフェストの操作」を参照してください。

開発した拡張機能をユーザーがJDeveloperの「更新のチェック」機能を使ってインストールできるようにするには次のようにします。
  1. 対象とする拡張機能用のbundle.xmlファイルを作成します。
  2. 「プロジェクト・プロパティ」で、Jarデプロイメント・プロファイルを作成します。この時、ファイル拡張子は.zipではなく.jarを使用します。
  3. 「プロファイルの依存性」の選択で、拡張機能プロジェクトが選択されていることを確認します。
  4. 「ファイル・グループ」の選択で、bundle.xml用に新規ファイルグループを作成し、そのターゲットディレクトリをMETA-INFとして指定します。
    新規のデプロイメント・プロファイルでプロジェクトをデプロイすると、ZIPファイルが作成されます。このZIPファイルは単独で拡張機能の配布に使用できます。ただし、拡張機能を更新センターから配布したい場合には、更新センター用のXMLファイルを作成する必要があります。
  5. 拡張機能を更新センターから配布したい場合には、更新センター用のXMLファイルを作成する必要があります。これにより、更新のチェック・ダイアログ(「ヘルプ」メニューにあります)を開いたときに更新センターXMLファイルに記述したURLで参照されるような新規の更新センターが作成されます。
作成された拡張機能をユーザーがダウンロードしインストールできるように、ユーザーがその新規更新センターをJDeveloperのインスタンスに加えるようにすることができます。

拡張機能bundle.xml文書

ここでは、拡張機能のデプロイと配布に必要なbundle.xml文書について述べます。

bundle.xml

次の例に示すようなbundle.xmlという名前の文書を作成します。

注意:

bundle.xmlのメタデータには、ここで示す例のようにuネームスペースが含まれている必要があります。
<?xml version = '1.0' encoding = 'UTF-8'?>
<update-bundle version="1.0"
  xmlns="http://xmlns.oracle.com/jdeveloper/updatebundle"
  xmlns:u="http://xmlns.oracle.com/jdeveloper/update">
   <u:update id=" organization.dev.extension ">
    <u:name>Name of Extension</u:name>
    <u:version>1.0</u:version>
    <u:author>YourOrganization</u:author>
    <u:author-url> http://www.organization.com/dev/index.html/</u:author-url>
    <u:description>Provides support for a feature.
    </u:description>
    <u:requirements>
      <u:requires-extension id="oracle.jdeveloper"
        minVersion="12.1.2"
        maxVersion="12.2.1" />
      </u:requires-agreement url="META-INF/agreement.html" />
      </u:requirements> 
    <u:destination>${oracle.home}</u:destination> 
  </u:update>
</update-bundle>

重要な要素および属性

要素または属性
説明
Update Id
拡張機能はそれぞれ一意のIDで識別されます。更新センターで拡張機能が参照される際にはそのIDが使用されます。
Destination
このオプション属性でインストール先を指定します。使用可能なマクロ値は2つあります。
  • oracle.home (デフォルト)。JDeveloperディレクトリで、たとえばC:\oracle\middleware\jdeveloperです。
  • oracle.mw.home。拡張機能やパッチを、JDeveloperディレクトリより上位のミドルウェア・ディレクトリ(たとえば、C:\oracle\middleware)にインストールしたい場合に使用できます。
Requires Agreement
このオプション属性を指定すると、指定したURLがデフォルト・ブラウザに表示され、ユーザーは特定のテクノロジを使用することについて同意を求められます。
Requires Extension minVersionおよびmaxVersion
拡張機能で対応しているJDeveloperのバージョンを指定するために使用します。

更新センターXML文書

ここでは、更新センターXML文書について説明します。このXML文書は、拡張機能をJDeveloperの更新のチェック機能を利用して更新センターから配布する場合に必要となるものです。

更新センターXMLファイル

更新センター・ファイルはbundle.xmlと似ていますが、拡張機能ZIPファイルが置かれている場所を指定するbundle-urlという要素が追加されています。bundle-urlの詳細は、を参照してください。

<?xml version = '1.0' encoding = 'UTF-8'?>
<update-bundle version="1.0"
  xmlns="http://xmlns.oracle.com/jdeveloper/updatebundle"
  xmlns:u="http://xmlns.oracle.com/jdeveloper/update">
   <u:update id=" organization.dev.extension ">
    <u:name>Name of Extension</u:name>
    <u:version>1.0</u:version>
    <u:author>YourOrganization</u:author>
    <u:author-url> http://www.organization.com/dev/index.html/</u:author-url>
    <u:description>
    </u:description>
    <u:requirements>
      <u:requires-extension id="oracle.jdeveloper"
        minVersion="12.1.2"
        maxVersion="12.2.1" />
    </u:requires-agreement url="META-INF/agreement.html" />
    </u:requirements> 
    <u:destination>${oracle.home}</u:destination> 
     <u:bundle-url> http://www.organization.com/dev/extension.zip/</u:bundle-url>
  </u:update>
</update-bundle>