사용 기간이 지정된 라이선스(또는 개발용 라이선스) 사용 시 만료일 이전에 관리자가 이를 인지하고 조치할 수 있는 기능을 제공합니다. 사용자 정의 이벤트 핸들러를 설정할 수 있습니다.
1.2.4 또는 2.0.4 이후 버전에서 지원하는 기능입니다.
Java SPI를 사용하는 이벤트 핸들러 설정하기는 2.0.4 이후 버전만 지원합니다.
라이선스 유효 기간이 끝나면 서비스 요청 시 응답을 하지 않고 exception 처리됩니다.
다음과 같은 기능을 지원합니다.
라이선스 사용 기간 전, 후 유효한 라이선스 처리
라이선스 사용 기간 만료일 -30일 이후:
1시간 간격으로 실행
로그 파일에 경고 메시지 출력
이벤트 핸들러 설정 시 warn 함수 실행
라이선스 만료일 +1일 이후:
request 메서드 실행 시 실행
로그 파일에 오류 메시지 출력
이벤트 핸들러 설정 시 expired 함수 실행
라이선스 경고, 오류 메시지에 prefix 추가
라이선스 유효 기간
라이선스에 명시된 시작일 이전, 만료일 이후 일정 기간은 라이선스가 유효한 것으로 처리합니다.
라이선스 시작일 기준으로 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일 | |
|---|---|---|---|---|---|---|---|---|
라이선스 유효 | X | O | O | O | O | O | O | X |
경고 메시지 | X | X | X | O | O | X | X | X |
오류 메시지 | X | X | X | X | X | O | O | X |
이벤트 핸들러 설정하기
로그 파일에 경고, 오류 메시지를 출력하는 것 외에 사용자 이벤트를 발생시켜 관리자가 라이선스 만료일을 인지할 수 있도록 조치할 수 있습니다.
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 이상 환경, 2.0.10 이후 버전에서 지원하는 기능입니다.
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 파일로 압축하세요.
경고, 오류 메시지에 prefix 추가하기
로그 파일에서 라이선스 관련 경고, 오류 메시지를 구분할 수 있게 prefix 텍스트를 추가할 수 있습니다.
1
작성한 이벤트 핸들러 클래스명을 x-api.properties 파일 설정에 추가하세요.
platform.license.expiration.log.prefix={{XAPI-LICENSE}}