Liferay Dev Studioでは、プロジェクトの開発支援のためにLiferay DXPのソースコードを検索することができます。Liferayでは、開発に役立つ優れたリソース(例: 公式書類、 docs.liferay.com、 サンプルプロジェクトなど)を提供していますが、Liferayのコードベース(プラットフォームおよび公式アプリ)でパターンを検索することも有用です。たとえば、Liferayのportal-kernel
JARで提供されているクラスを拡張するカスタムアプリを作成する場合、そのクラスを調べて、Liferay DXPのコードベースの他のエリアでどのように使用されているのかを確認することができます。
これを行うには、Liferay Workspaceで開発する必要があります。 Liferay Workspaceは、高度な検索ができるように設定されたLiferay DXPのソースコードにインデックスを付ける特定のLiferay DXPバージョンを対象とすることで、この機能を提供することができます。この仕組みの詳細については、Managing the Target Platform in Liferay Workspaceのチュートリアルを参照してください。
Liferay Workspaceは、デフォルトではポータルソースのインデックス作成を行いませんので、以下のプロパティをワークスペースのgradle.properties
ファイルに追加して、この機能を有効にする必要があります。
target.platform.index.sources=true
このチュートリアルでは、高度な検索が役に立つ、3つのユースケースを紹介します。
これらの例は、Liferay Dev Studioで検索できるもののほんの一部です。詳細については、Java Searchに関するEclipseのドキュメンテーションを参照してください。
クラス階層の検索
同様のスーパークラスを拡張するクラスを調べることで、独自のアプリを開発するにあたって有用なパターンと例を見つけることができます。たとえば、開発中のアプリがMVCPortletクラスを拡張するとします。MVCPortlet
宣言を右クリックして、*[タイプ階層を開く]*を選択することにより、Dev Studioで同じクラスを拡張するクラスを検索します。
これにより、MVCPortlet
を拡張するターゲットプラットフォームにあるすべてのクラスを確認できるウィンドウが開きます。
これで、クラスまたはインターフェイスのすべての拡張機能と実装を検索して、理想のアプリの開発を支援することができます。
メソッド宣言の検索
場合によっては、クラスまたはインターフェースによって提供される特定のメソッド宣言を調べて、より詳細な検索をすることになることも考えられます。そういった場合に、Liferay Workspaceのターゲットプラットフォームインデックスでメソッドの検索もできます。
拡張するMVCPortletクラスで、 オーバーライドするdoView
メソッドの宣言を検索するとします。これを行うには、カスタムアプリのクラスにあるdoView
メソッド宣言を右クリックし、[宣言] → *[ワークスペース]*を選択します。
レンダリングされた検索ウィンドウには、ターゲットプラットフォーム内でそのメソッドがオーバーライドされている他の出現箇所が表示されます。
アノテーションリファレンスの検索
Liferay DXPのソースコードで使用されているアノテーションは、わかりにくい場合があります。Liferayのターゲットプラットフォームでこういったタイプのアノテーションが存在する場所を検索する機能を使用すると、独自のアプリでそれらを使用する方法を見つけることができます。
たとえば、OSGiモジュールで@Reference
アノテーションを使用するための公式ドキュメンテーションを見つけて、カスタムアプリケーションに実装することができます。Liferay DXPのアプリで実際の例を参照して、他の場所でどのように使用されているかを確認すると便利です。これを検索するには、クラス内のアノテーションを右クリックし、[リファレンス] → *[ワークスペース]*を選択します。
レンダリングされた検索ウィンドウには、そのアノテーションが使用されたターゲットプラットフォーム内の他の出現箇所が表示されます。
これで、Liferay Workspaceで指定された設定済みのターゲットプラットフォームを検索するツールが用意できました。