利用期間が指定されたライセンス(試用版ライセンスを含む)を使用している場合に、有効期限前に管理者が期限を把握し、対応できる機能を提供します。ユーザー定義のイベントハンドラを設定することができます。
1.2.4以降のバージョンや2.0.4以降のバージョンでサポートする機能です。
Java SPIを使用したイベントハンドラの設定は2.0.4以降のバージョンでのみサポートします。
ライセンスの有効期間が終了すると、サービス要求に対して応答は行われず、例外として処理されます。
次の機能をサポートします。
ライセンスの有効期限に応じて、次の機能が利用できます。
ライセンス有効期限の30日前から:
1時間間隔で処理が実行されます。
ログファイルに警告メッセージを出力します。
イベントハンドラを設定している場合、warn関数が実行されます。
ライセンス有効期限の1日後から:
requestメソッド実行時に処理が実行されます。
ログファイルにエラーメッセージを出力します。
イベントハンドラが設定されている場合、expired関数が実行されます。
ライセンスの警告メッセージおよびエラーメッセージにプレフィックスを付加できます。
ライセンス有効期間
ライセンスに記載された開始日より前、および満了日後の一定期間についても、ライセンスは有効として扱われます。
ライセンス開始日を基準に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}}