アプリケーション・サーバーのインポート・フレームワークの拡張

AppScan® ソース では、Apache Tomcat および WebSphere® アプリケーション・サーバー Liberty プロファイルから Java™ アプリケーションをインポートできます。このトピックで説明するように、アプリケーション・サーバーのインポート・フレームワークを拡張することにより、他のアプリケーションから Java アプリケーションをインポートできます。

このタスクについて

アプリケーション・サーバーのインポート・フレームワークには、付属の API 資料が含まれます。この資料は PDF では提供されていません。Adobe™ PDF を使用してこのヘルプ・トピックにアクセスしている場合、 AppScan Source for Analysis オンライン・ヘルプを起動して、 「プロダクト機能の拡張」 > 「アプリケーション・サーバーのインポート・フレームワークの拡張」 > 「アプリケーション・サーバーのインポート拡張 API のクラスおよびメソッド」 にナビゲートするか、 http://help.hcltechsw.com/appscan/Source/10.0.0/index.htmlでヘルプのそのセクションを見つけることでのみ、この API 文書にアクセスできます。

アプリケーション・サーバーのインポート・フレームワークを拡張するには、以下の手順に従います。この手順で、以下の作業を行います。

手順

  1. AppScan ソース アプリケーション・サーバーのインポート・フレームワークに必要な依存関係のために Eclipse 統合開発環境を構成します。
    1. Eclipseのメインメニューから、 「ウィンドウ」 > 「設定」 を選択します。
    2. 「設定」ダイアログ・ボックスで、 「プラグイン開発」 を展開し、 「ターゲット・プラットフォーム」を選択します。
    3. 「ターゲット・プラットフォームの設定」ページで、新しいターゲット定義を作成するために、 「追加」 をクリックします。
    4. 「ターゲットの定義」ウィザード・ページで、 「何もしない: 空のターゲット定義で開始」 を選択してから 「次へ」をクリックします。
    5. 「ターゲット・コンテンツ」ウィザード・ページで、 「名前」 フィールドにターゲットの名前を入力して、 「追加」 をクリックし、 AppScan ソース インストール・ディレクトリーを追加します ( インストールとユーザー・データ・ファイルの場所を参照)。
    6. オプション: 「場所のコンテンツを表示」 を選択して、プラグインが使用可能であることを確認します。
    7. [完了] をクリックします。
    8. 「ターゲット・プラットフォームの設定」ページで、新しく作成したターゲット・プラットフォームを選択し、 「適用」をクリックします。その後で 「OK」をクリックします。
  2. Eclipse で新規プラグインを作成します。
    1. メインメニューから 「ファイル」 > 「新規プロジェクト」 を選択して「新規プロジェクト」ウィザードを開きます。
    2. 「選択」ウィザード・ページで、 「プラグイン・プロジェクト」 を選択してから 「次へ」をクリックします。
    3. 「プラグイン・プロジェクト」ページで、 「プロジェクト名」 フィールドにプラグインの名前 (このヘルプ・トピックでは例として com.example.appserverimporter という名前を使用します) を入力し、 「次へ」をクリックします。
    4. 「コンテンツ」ページで、 「アクティベーターとしてプラグインのライフサイクルを制御する Java クラスを生成」 を選択解除してから 「終了」をクリックします。
  3. 先ほど作成したプラグインで、必要な依存関係を設定します。
    1. META-INF\MANIFEST.MF を開き、 「依存関係」 タブを選択します。
    2. エディターの 「必須プラグイン」 セクションで、以下の作業を行います。
      • 「追加」 をクリックして、 com.ouncelabs.core.appserverimporter および org.eclipse.core.runtimeを追加します。
      • 追加した com.ouncelabs.core.appserverimporter プラグインを選択し、 「プロパティー」をクリックしますプラグイン・プロパティーで、「最小バージョン」フィールドと「最大バージョン」フィールドの項目を削除し、「OK」をクリックします。
      • org.eclipse.core.runtime プラグインに対して上記ステップを繰り返します。
    3. メインメニューから 「ファイル」 > 「保存」 を選択して、エディターで行ったすべての変更を保存します。
    4. 次のステップでは、アプリケーション・サーバーに対する拡張を定義します。そのステップでは引き続き META-INF\MANIFEST.MF エディターで作業します。
  4. 以下のステップを実行して、アプリケーション・サーバー用にインポーター拡張を定義します。
    1. 「拡張」 タブを選択して、 「追加」 をクリックし、 com.ouncelabs.appserver を追加してから、メインメニューで 「ファイル」 > 「保存」 を選択します。
    2. 「plugin.xml」 タブを選択します。次のような内容が表示されます。
      <?xml version="1.0" encoding="UTF-8"?>
      <?eclipse version="3.4"?>
      <plugin>
        <extension
          point="com.ouncelabs.appserver">
        </extension>
      </plugin>

      上記の内容を編集して拡張の定義を完了します。以下に例を示します。

      <?xml version="1.0" encoding="UTF-8"?>
      <?eclipse version="3.4"?>
      <plugin>
        <extension
          point="com.ouncelabs.appserver">
          <importer
           class="com.example.appserverimporter.MyAppServerImporter"
           id="com.example.appserverimporter.myappserver"
           name="My App Server">
         </importer>
       </extension>
      </plugin>
    3. メインメニューから 「ファイル」 > 「保存」 を選択して、 plugin.xmlで行ったすべての変更を保存します。
  5. 新しいアプリケーション・サーバー・インポーターの動作を定義するインポーター・クラス (この例では、 com.example.appserverimporter.MyAppServerImporter) を作成します。このクラスは、このフレームワークの BaseAppServerImporterBaseAppServerImporterインターフェースの基本実装である AppServerImporterAppServerImporter を拡張したものでなければなりません。このクラスで以下を行います。
    1. AppServerImporter.importAppServer(String)を実装します。これは、フレームワークにより、インポートする Java EE プロジェクトとそれらの場所を判別するために使用されます。通常、各プロジェクトには Java EE プロジェクトの名前とパスのみが必要です。EAR プロジェクトが作成される場合、その中に含まれている Java EE プロジェクトは、 AppScan ソース ユーザー・インターフェースでプロジェクトを選択するときに非表示になります。その場合、EAR 全体がインポートされます。そうでない場合、すべてのプロジェクトは、個別に選択できるようにリストされます。

      該当する場合は、以下のメソッドを使用することを強く推奨します。

      • BaseAppServerImporter.processDropInsFolder(AppServerProfile, File)
      • BaseAppServerImporter.processEARFile(AppServerProfile, File)
    2. AppServerImporter.isValidLocation(String) を実装します。これは、インストール・ディレクトリーを指定してサーバーのタイプを検出するために使用されます。
    3. オプション: BaseAppServerImporter.getJSPCompilerType()をオーバーライドします。このメソッドは、AppScan ソース プロジェクトに使用される JSP コンパイラーを返します。これが実行されない場合、基本実装は NULL を返し、製品のデフォルトの JSP コンパイラーが使用されます。
  6. オプション: 拡張オプションとして、プリコンパイル済み JSP コンパイラーを使用するように JSP コンパイルをカスタマイズできます (JSP コンパイルはインポート前またはインポート中に行われます)。
    1. BaseAppServerImporter.getJSPCompilerType() をオーバーライドして JSPCompilerType.PRECOMPILEDを返します。
    2. JMX、 Java API、外部スクリプトを呼び出して JSP ファイルをコンパイルするか、単にクラス・ファイルを AppScan ソース プロジェクトのステージング・ディレクトリーにコピーするように、 BaseAppServerImporter.getJSPCompilerType() をオーバーライドします。Application.getStagingDirectory(Project)Application.getStagingDirectory(Project) を使用してステージング・ディレクトリーを取得します。
    3. BaseAppServerImporter.createJSPCompilerSupport() をオーバーライドして JSPCompilerSupportJSPCompilerSupportのカスタム・エクステンションを返します。これは、JSP ファイルと生成されたクラス・ファイルとの間のマッピングを保持して、JSP コンパイルの後に検証するために使用されます。
    4. BaseAppServerImporter.createClasspathProvider() をオーバーライドして AppServerClasspathProviderAppServerClasspathProviderのカスタム・インプリメンテーションを返します。このクラスは、サーバー・ライブラリーに対する依存関係を持つ Java または JSP ファイルをコンパイルするために必要です。このクラスは BaseAppServerClasspathProviderBaseAppServerClasspathProviderを拡張する必要があります。BaseAppServerClasspathProvider.installDirectory が呼び出される時点で、 getClasspathEntries() があらかじめアプリケーション・サーバーのインストール・ディレクトリーに設定されることに注意してください。
  7. 以下のステップを実行して、プラグインをテストします。
    1. メインメニューから 「実行」 > 「構成の実行」 を選択します (デバッグ・モードでテストする場合は、 「実行」 > 「デバッグ」 を選択します)。
    2. 新しい Eclipse アプリケーション 構成を作成します。
      • 新規構成の「メイン」タブに進みます。「実行するプログラム」セクションで、「プロダクトの実行」を選択して、com.ouncelabs.osa.rcp.product を実行するように設定します。
      • 「引数」タブに進みます。「作業ディレクトリー」 セクションで、 「その他」 を選択して、フィールドに AppScan ソース データ・ディレクトリーを入力します ( インストールとユーザー・データ・ファイルの場所を参照)。
      • 「プラグイン」タブで、「起動対象」の選択項目を「以下で選択したプラグインのみ」に設定します。「ワークスペース」を展開して、作成したプラグインが選択されていることを確認してから、「ターゲット・プラットフォーム」でそれらのプラグインを選択解除します。
        • com.ouncelabs.plugin.base
        • com.ouncelabs.plugin.base
        • com.ouncelabs.plugin.base.nl
        • com.ouncelabs.plugin.base.nl
        • com.ouncelabs.plugin.enhanced
        • com.ouncelabs.plugin.enhanced
        • com.ouncelabs.plugin.enhanced.nl
        • com.ouncelabs.plugin.enhanced.nl
    3. 「構成の実行」ダイアログ・ボックスで 「実行」 をクリックする前に、 AppScan ソース インストール・ディレクトリーに移動して、 bin\OunceScanner.exeを実行します。
    4. 「構成の実行」ダイアログ・ボックスに戻り、 「実行」 をクリックし、 AppScan Source for Analysis を起動して、プラグインをテストします。
  8. 以下のステップを実行して、AppScan Source for Analysis に対してプラグインを有効にします。
    1. プロジェクトを右クリックして、 「エクスポート」を選択します。
    2. エクスポート・ウィザードの「選択」ページで、 「プラグイン開発」を展開し、 「デプロイ可能なプラグインおよびフラグメント」を選択してから 「次へ」をクリックします。
    3. 「デプロイ可能なプラグインおよびフラグメント」ページで、以下のようにします。
      • 「宛先」タブに進み、マシン上の一時ディレクトリーを参照して「ディレクトリー」を設定します。
      • 「オプション」タブに進み、「個々の JAR アーカイブとしてプラグインをパッケージ」および「限定子の置換」を選択します。
      • [完了] をクリックします。
    4. プラグインのエクスポート先として使用した一時ディレクトリーを見つけて、その plugins\ フォルダーを開きます。このフォルダー内で、作成された .jar ファイルを見つけて <install_dir>\dropins (<install_dir>AppScan ソース インストールの場所です)にコピーします。
      注:
      • \dropins ディレクトリーが存在しない場合は、手動で作成する必要があります。
      • AppScan ソース インストール・ディレクトリーを変更するには、管理特権が必要になる可能性があります。
    5. <install_dir>\configuration\org.eclipse.equinox.simpleconfigurator\bundles.infoを検索します。このファイルのバックアップ・コピーを作成してから、ファイルを編集し、ファイルの終わりに以下を追加します。
      <my_plugin>,<my_plugin_version>,
      dropins/<my_plugin>_<my_plugin_version>.jar,4,false
      <my_plugin>,<my_plugin_version>,dropins/<my_plugin>_<my_plugin_version>.jar,4,false

      各部の意味は以下のとおりです。

      • <my_plugin> は、先ほど作成したプラグインの名前です。
      • <my_plugin_version> は、作成したプラグインのバージョン番号です。
      注: このエントリーの先頭にある <my_plugin><my_plugin_version>dropins/ の場所はコンマ (,) で区切ります。
    6. AppScan Source for Analysis を始動します。
    7. メインメニューから 「ヘルプ」 > AppScan Source for Analysisについて」 を選択して、 「インストールの詳細」をクリックします。「プラグイン」 タブを選択し、プラグインがリストされていることを確認します。
    8. 「インストールの詳細」ダイアログ・ボックスを閉じて、アプリケーション・サーバーのインポート・フレームワークの使用を開始します。