AppScan® Source では、Apache Tomcat および WebSphere® Application Server Liberty プロファイルから Java™ アプリケーションをインポートできます。このトピックで説明するように、アプリケーション・サーバーのインポート・フレームワークを拡張することにより、他のアプリケーションから Java™ アプリケーションをインポートできます。
このタスクについて
アプリケーション・サーバーのインポート・フレームワークには、付属の API 資料が含まれます。この資料は PDF では提供されていません。Adobe™ PDF を使用してこのヘルプ・トピックにアクセスしている場合、AppScan® Source for Analysis オンライン・ヘルプを起動して、にナビゲートするか、http://help.hcl-software.com/appscan/Source/10.1.0/index.htmlでヘルプのそのセクションを見つけることでのみ、この API 文書にアクセスできます。
アプリケーション・サーバーのインポート・フレームワークを拡張するには、以下の手順に従います。この手順で、以下の作業を行います。
手順
- AppScan® Source アプリケーション・サーバーのインポート・フレームワークに必要な依存関係のために Eclipse 統合開発環境を構成します。
- Eclipseのメインメニューから、 を選択します。
- 「設定」ダイアログ・ボックスで、 「プラグイン開発」 を展開し、 「ターゲット・プラットフォーム」を選択します。
- 「ターゲット・プラットフォームの設定」ページで、新しいターゲット定義を作成するために、 「追加」 をクリックします。
- 「ターゲットの定義」ウィザード・ページで、 「何もしない: 空のターゲット定義で開始」 を選択してから 「次へ」をクリックします。
- 「ターゲット・コンテンツ」ウィザード・ページで、 「名前」 フィールドにターゲットの名前を入力して、 「追加」 をクリックし、 AppScan® Source インストール・ディレクトリーを追加します ( インストールとユーザー・データ・ファイルの場所を参照)。
- オプション: 「場所のコンテンツを表示」 を選択して、プラグインが使用可能であることを確認します。
- 「完了」をクリックします。
- 「ターゲット・プラットフォームの設定」ページで、新しく作成したターゲット・プラットフォームを選択し、 「適用」をクリックします。その後で 「OK」をクリックします。
- Eclipse で新規プラグインを作成します。
- メインメニューから を選択して「新規プロジェクト」ウィザードを開きます。
- 「選択」ウィザード・ページで、 「プラグイン・プロジェクト」 を選択してから 「次へ」をクリックします。
- 「プラグイン・プロジェクト」ページで、 「プロジェクト名」 フィールドにプラグインの名前 (このヘルプ・トピックでは例として
com.example.appserverimporter
という名前を使用します) を入力し、 「次へ」をクリックします。
- 「コンテンツ」ページで、 「アクティベーターとしてプラグインのライフサイクルを制御する Java クラスを生成」 を選択解除してから 「終了」をクリックします。
- 先ほど作成したプラグインで、必要な依存関係を設定します。
- META-INF\MANIFEST.MF を開き、 「依存関係」 タブを選択します。
- エディターの 「必須プラグイン」 セクションで、以下の作業を行います。
- 「追加」 をクリックして、 com.ouncelabs.core.appserverimporter および org.eclipse.core.runtimeを追加します。
- 追加した com.ouncelabs.core.appserverimporter プラグインを選択し、 「プロパティー」をクリックしますプラグイン・プロパティーで、「最小バージョン」フィールドと「最大バージョン」フィールドの項目を削除し、「OK」をクリックします。
- org.eclipse.core.runtime プラグインに対して上記ステップを繰り返します。
- メインメニューから を選択して、エディターで行ったすべての変更を保存します。
- 次のステップでは、アプリケーション・サーバーに対する拡張を定義します。そのステップでは引き続き META-INF\MANIFEST.MF エディターで作業します。
- 以下のステップを実行して、アプリケーション・サーバー用にインポーター拡張を定義します。
- 「拡張」 タブを選択して、 「追加」 をクリックし、
com.ouncelabs.appserver
を追加してから、メインメニューで を選択します。
- 「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>
- メインメニューから を選択して、 plugin.xmlで行ったすべての変更を保存します。
- 新しいアプリケーション・サーバー・インポーターの動作を定義するインポーター・クラス (この例では、
com.example.appserverimporter.MyAppServerImporter
) を作成します。このクラスは、このフレームワークの BaseAppServerImporter
BaseAppServerImporter
インターフェースの基本実装である AppServerImporter
AppServerImporter
を拡張したものでなければなりません。このクラスで以下を行います。
AppServerImporter.importAppServer(String)
を実装します。これは、フレームワークにより、インポートする Java™ EE プロジェクトとそれらの場所を判別するために使用されます。通常、各プロジェクトには Java™ EE プロジェクトの名前とパスのみが必要です。EAR プロジェクトが作成される場合、その中に含まれている Java™ EE プロジェクトは、 AppScan® Source ユーザー・インターフェースでプロジェクトを選択するときに非表示になります。その場合、EAR 全体がインポートされます。そうでない場合、すべてのプロジェクトは、個別に選択できるようにリストされます。 該当する場合は、以下のメソッドを使用することを強く推奨します。
BaseAppServerImporter.processDropInsFolder(AppServerProfile, File)
BaseAppServerImporter.processEARFile(AppServerProfile, File)
AppServerImporter.isValidLocation(String)
を実装します。これは、インストール・ディレクトリーを指定してサーバーのタイプを検出するために使用されます。
- オプション:
BaseAppServerImporter.getJSPCompilerType()
をオーバーライドします。このメソッドは、AppScan® Source プロジェクトに使用される JSP コンパイラーを返します。これが実行されない場合、基本実装は NULL を返し、製品のデフォルトの JSP コンパイラーが使用されます。
- オプション: 拡張オプションとして、プリコンパイル済み JSP コンパイラーを使用するように JSP コンパイルをカスタマイズできます (JSP コンパイルはインポート前またはインポート中に行われます)。
BaseAppServerImporter.getJSPCompilerType()
をオーバーライドして JSPCompilerType.PRECOMPILED
を返します。
- JMX、 Java™ API、外部スクリプトを呼び出して JSP ファイルをコンパイルするか、単にクラス・ファイルを AppScan® Source プロジェクトのステージング・ディレクトリーにコピーするように、
BaseAppServerImporter.getJSPCompilerType()
をオーバーライドします。Application.getStagingDirectory(Project)
Application.getStagingDirectory(Project)
を使用してステージング・ディレクトリーを取得します。
BaseAppServerImporter.createJSPCompilerSupport()
をオーバーライドして JSPCompilerSupport
JSPCompilerSupport
のカスタム・エクステンションを返します。これは、JSP ファイルと生成されたクラス・ファイルとの間のマッピングを保持して、JSP コンパイルの後に検証するために使用されます。
BaseAppServerImporter.createClasspathProvider()
をオーバーライドして AppServerClasspathProvider
AppServerClasspathProvider
のカスタム・インプリメンテーションを返します。このクラスは、サーバー・ライブラリーに対する依存関係を持つ Java™ または JSP ファイルをコンパイルするために必要です。このクラスは BaseAppServerClasspathProvider
BaseAppServerClasspathProvider
を拡張する必要があります。BaseAppServerClasspathProvider.installDirectory
が呼び出される時点で、 getClasspathEntries()
があらかじめアプリケーション・サーバーのインストール・ディレクトリーに設定されることに注意してください。
- 以下のステップを実行して、プラグインをテストします。
- メインメニューから を選択します (デバッグ・モードでテストする場合は、 を選択します)。
- 新しい Eclipse アプリケーション 構成を作成します。
- 新規構成の「メイン」タブに進みます。「実行するプログラム」セクションで、「プロダクトの実行」を選択して、com.ouncelabs.osa.rcp.product を実行するように設定します。
- 「引数」タブに進みます。「作業ディレクトリー」 セクションで、 「その他」 を選択して、フィールドに AppScan® Source データ・ディレクトリーを入力します ( インストールとユーザー・データ・ファイルの場所を参照)。
- 「プラグイン」タブで、「起動対象」の選択項目を「以下で選択したプラグインのみ」に設定します。「ワークスペース」を展開して、作成したプラグインが選択されていることを確認してから、「ターゲット・プラットフォーム」でそれらのプラグインを選択解除します。
- 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
- 「構成の実行」ダイアログ・ボックスで 「実行」 をクリックする前に、 AppScan® Source インストール・ディレクトリーに移動して、 bin\OunceScanner.exeを実行します。
- 「構成の実行」ダイアログ・ボックスに戻り、 「実行」 をクリックし、 AppScan® Source for Analysis を起動して、プラグインをテストします。
- 以下のステップを実行して、AppScan® Source for Analysis に対してプラグインを有効にします。
- プロジェクトを右クリックして、 「エクスポート」を選択します。
- エクスポート・ウィザードの「選択」ページで、 「プラグイン開発」を展開し、 「デプロイ可能なプラグインおよびフラグメント」を選択してから 「次へ」をクリックします。
- 「デプロイ可能なプラグインおよびフラグメント」ページで、以下のようにします。
- 「宛先」タブに進み、マシン上の一時ディレクトリーを参照して「ディレクトリー」を設定します。
- 「オプション」タブに進み、「個々の JAR アーカイブとしてプラグインをパッケージ」および「限定子の置換」を選択します。
- 「完了」をクリックします。
- プラグインのエクスポート先として使用した一時ディレクトリーを見つけて、その plugins\ フォルダーを開きます。このフォルダー内で、作成された .jar ファイルを見つけて <install_dir>\dropins(<install_dir> は AppScan® Source インストールの場所です)にコピーします。
注:
- \dropins ディレクトリーが存在しない場合は、手動で作成する必要があります。
- AppScan® Source インストール・ディレクトリーを変更するには、管理特権が必要になる可能性があります。
- <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/ の場所はコンマ (,
) で区切ります。
- AppScan® Source for Analysis を始動します。
- メインメニューから を選択して、 「インストールの詳細」をクリックします。「プラグイン」 タブを選択し、プラグインがリストされていることを確認します。
- 「インストールの詳細」ダイアログ・ボックスを閉じて、アプリケーション・サーバーのインポート・フレームワークの使用を開始します。