このウィザードで、Web アプリケーション タイプを選択する際に、.war ファイルの場所と名前を指定するよう求められるほか、Java ランタイム クラスを解決するために PreEmptive Protection™ DashO™ で使用する JDK の場所(JDK の導入を参照)も指定するよう求められます。
ウィザードは、含まれるクラスや jar ファイルについて、.war ファイルを調べます。 これらの項目には、JNLP ファイルによって参照される jar ファイルだけでなく Web コンテナによっても使用される、WEB-INF 内の特別な場所が含まれています。
.war ファイルに格納されている jar ファイルに加えて、DashO はサーブレットと JSP API の一部であるクラスを必要とします。 ウィザードは、既知の場所でこれらの jar ファイルへの参照を探し、サポート jar ファイルの一覧にこれらを追加します。 アプリケーションが Web コンテナに対し、log4j ログ サービスなどの Web アプリケーション間で共有されるその他すべてのクラスを提供することを期待している場合は、それをサポート jar ファイルの一覧に追加する必要があります。 サポート ライブラリの一覧には Java モジュール(.jmod)も追加できます。
ウィザードは入力コード内のクラス、メソッド、およびフィールドの修飾に使用されるアノテーションについて尋ね、有効にできる可能性のあるアノテーション ベースのエントリ ポイント規則を提示します。 アノテーションについてよく理解しており、これらのアノテーションで修飾されたコード要素を保持する必要があると確信している場合は、アノテーションのエントリ ポイントを有効にします。
さらに、ウィザードには、Hibernate に使用されるアノテーションに基づいてエントリ ポイント規則を自動生成する機能を有効にするチェック ボックスが表示されます。 チェック ボックスをオンにすると、次の規則が設定されます。
-
javax.persistence.Entityを使ってアノテーションが付けられたクラスが名前変更されたり除去されたりしないようにする。 -
javax.persistence.Entityまたはjavax.persistence.Embeddedを使ってアノテーションが付けられたクラスの以下のメンバーが除去されないようにする。- フィールド
- getter(パラメーターが 0 個で、名前が
getまたはisで始まるメソッド) - setter(パラメーターが 1 個で、名前が
setで始まるメソッド)
最後にウィザードは、ウィザードの出力を保存するディレクトリを尋ねます。 ウィザードは、プロジェクト ファイルに加えて、いくつかのファイルを作成します。
-
obfuscate.xml:.warファイルを開き、DashO プロジェクト ファイルを実行してから、.warファイルを再アセンブルする Ant スクリプト。 -
obfuscate.properties:obfuscate.xmlが読み取る、Java のプロパティ ファイル。 場所の既定値を変更するには、このファイルを使用します。
obfuscate.xml ファイルは、Ant を起動して実行することができます。
ant -f obfuscate.xml
または、別の Ant ファイルから呼び出すこともできます。
<ant antfile="obfuscate.xml"/>
3 つのタスクを実行します。
-
.warファイルをディレクトリに解凍します。 既定のディレクトリは.unwarです。 -
.unwarディレクトリの内容に対して、ウィザードで生成されたプロジェクト ファイルを実行します。 結果は、一時的に.obfusディレクトリに格納されます。 - 名前に
_dashoedを加えた新しいファイルに難読化されたコードを持つ.warファイルを再アセンブルします。
指定したディレクトリに、上書きされるプロジェクト ファイルがある場合は、そのプロジェクトを上書きするかどうかの確認を求められます。
既存のプロジェクトを上書き保存すると、新しい設定が保存され、古いプロジェクトのバックアップが作成されます。
難読化を実行するには、DashO の Ant タスクをインストールする必要があります。 詳細については、DashO の Ant タスクのドキュメント(英語)を参照してください。