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

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. 「インストールの詳細」ダイアログ・ボックスを閉じて、アプリケーション・サーバーのインポート・フレームワークの使用を開始します。