ライセンス有効期限情報、関連イベント処理

利用期間が指定されたライセンス(試用版ライセンスを含む)を使用している場合に、有効期限前に管理者が期限を把握し、対応できる機能を提供します。ユーザー定義のイベントハンドラを設定することができます。

1.2.4以降のバージョンや2.0.4以降のバージョンでサポートする機能です。

Java SPIを使用したイベントハンドラの設定は2.0.4以降のバージョンでのみサポートします。

ライセンスの有効期間が終了すると、サービス要求に対して応答は行われず、例外として処理されます。

次の機能をサポートします。

ライセンス有効期間

ライセンスに記載された開始日より前、および満了日後の一定期間についても、ライセンスは有効として扱われます。

ライセンス開始日を基準に7日前から、新しいライセンスファイルに差し替えて使用することができます。

たとえば、ライセンス開始日が2025年9月15日、ライセンス満了日が2025年11月15日の場合、有効期間は次のとおりです。


9月

7日

9月

8日

(開始日の

7日前)

9月

15日

(開始日)

10月

15日

(満了日の

30日前)

11月

15日

(満了日)

11月

16日

(満了日の

1日後)

11月

22日

(満了日の

7日後)

11月

23日

ライセンス

有効

×

×

警告

メッセージ

×

×

×

×

×

×

エラー

メッセージ

×

×

×

×

×

×

イベントハンドラの設定

ログファイルに警告メッセージやエラーメッセージを出力するだけでなく、ユーザーイベントを発生させることで、管理者がライセンスの満了日を把握し、適切な対応を行うことができます。

1

LicenseExpirationHandlerインターフェースを実装したサービス実装クラスを作成してください。

warn、expired関数をオーバーライドし、管理者にライセンスの状態を通知できるコードを実装します。

package license;

import com.nexacro.java.xapi.license.LicenseExpirationHandler;

public class UserLicenseExpirationHandler implements LicenseExpirationHandler {

	@Override
	public void expired() {
		// License has expired → Notify administrator about expiration
	}

	@Override
	public void warn(int remainDay) {
		// License will expire soon (remainDay days left) → Notify administrator in advance
	}
}

2

作成したサービス実装クラス名をx-api.propertiesファイルの設定に追加してください。

パッケージ名を含むクラス名を追加します。

platform.license.expiration.defaulthandler=license.UserLicenseExpirationHandler

Java SPIを使用したイベントハンドラの設定

本機能はJDK 1.8以降の環境およびX-API 2.0.4以降のバージョンでサポートしています。

1

nexacro-xapi-java-main-2.x.x.jar を解凍します。

2

LicenseExpirationHandlerインターフェースを実装したサービス実装クラスを作成します。

warn、expired関数をオーバーライドし、管理者にライセンスの状態を通知できるコードを実装します。

package license;

import com.nexacro.java.xapi.license.LicenseExpirationHandler;

public class UserLicenseExpirationHandler implements LicenseExpirationHandler {

	@Override
	public void expired() {
		// License has expired → Notify administrator about expiration
	}

	@Override
	public void warn(int remainDay) {
		// License will expire soon (remainDay days left) → Notify administrator in advance
	}
}

3

LicenseExpirationHandlerProviderインターフェースを実装したサービスプロバイダ実装クラスを作成します。

package license;

import com.nexacro.java.xapi.license.LicenseExpirationHandlerProvider;

public class UserLicenseExpirationHandlerProvider implements LicenseExpirationHandlerProvider {
    @Override
    public LicenseExpirationHandler getLicenseExpirationHandler() {
        return new UserLicenseExpirationHandler();
    }
}

4

サービスプロバイダ登録ファイルを新規作成します。

META-INF/services/ フォルダ配下に、サービスインターフェースの完全修飾クラス名をファイル名とするファイルを作成します。

META-INF/services/com.nexacro.java.xapi.license.LicenseExpirationHandlerProvider

5

サービスプロバイダ登録ファイルに、作成したサービスプロバイダのクラス名を記述します。

登録ファイルをテキストエディタで開き、パッケージ名を含むサービスプロバイダのクラス名(完全修飾クラス名)を記述してください。

license.UserLicenseExpirationHandlerProvider

6

作成したファイルを jar ファイルとして圧縮してください。

警告・エラーメッセージへのプレフィックス追加

ログファイル上でライセンス関連の警告メッセージおよびエラーメッセージを識別できるよう、プレフィックス文字列を追加できます。

1

作成したイベントハンドラクラス名をx-api.propertiesファイルの設定に追加してください。

platform.license.expiration.log.prefix={{XAPI-LICENSE}}