Extプラグインによるコアクラスのオーバーライド

LiferayのDXPでのExtプラグインを使用するためのサポートを使用する場合は、Liferayのデジタル・エンタープライズのコアクラスをオーバーライドしている(例えば、 ポータルIMPLポータルカーネルなど)。 コアクラスを区別するために、「 Finding Core Liferay Portal Artifacts セクションを参照できます。 Extプラグインを作成する前に、Ext Plugins による一般化された カスタマイズのチュートリアルを確認してください。

解決

例として、 portal-impl.jarある PortalImpl コアクラスを上書きするサンプルExtプラグインを作成します。 サーバーのノード名を返す PortalImpl.getComputerName() メソッドを編集します。 Extプラグインは PortalImpl クラス全体をオーバーライドし、サーバーが返すノード名を変更するメソッドを追加します。

  1. プラグインSDKの/ extフォルダーに移動し、次のコマンドを実行します。

    create.[bat|sh]  portal-impl-override "PortalImpl Override"
    

    Extプラグインが生成され、Plugins SDKの / ext フォルダーに、指定した名前の後に -ext 続くようになります(例: portal-impl-override-spring)。

  2. Liferay DXPインストールでのサーバーノード名の表示は、デフォルトで false に設定されています。 このプロパティを有効にする必要があります。 これを行うには、Liferayバンドルのルートフォルダーに移動し、 portal-ext.properties ファイルを作成します。 そのファイルに、次のプロパティを挿入します。

    web.server.display.node=true
    

    Liferayバンドルを再起動すると、サーバーのノード名が表示されます。

  3. / ext-impl / src フォルダーで、オーバーライドするクラスのフォルダー構造に一致するフォルダー構造を作成します(例: com / liferay / portal / util)。 次に、既存のコアクラスをオーバーライドする新しいJavaクラスを作成します。新しいクラスは元のクラスと同じ名前でなければなりません。

  4. 元のクラス(たとえば、 PortalImpl)のロジックをすべて新しいクラスにコピーします。 次に、カスタマイズするメソッドを変更します。 この例では、 getComputerName() メソッドを編集します。 したがって、以下のメソッドに置き換えます。

    @Override
    public String getComputerName() {
        return “sample_portalimpl_ext_installed_successfully_” + _computerName;
    }
    

    新しいクラスで定義されたメソッドは、 PortalImpl.getComputerName() メソッドをオーバーライドします。 sample_portalimpl_ext_installed_successfully_ 文字列がサーバーのノード名の前に追加されました。

Extプラグインがデプロイされると、新しいJavaクラスがコア PortalImpl クラスをオーバーライドします。

驚くばかり! Liferay Digital EnterpriseのコアクラスをオーバーライドするExtプラグインを作成しました。 「 プラグイン 導入」セクションの指示に従って、プラグインをサーバーに導入します。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています