@ -16,11 +16,13 @@
*
*
* /
* /
package com.tencent.cloud.polaris.con fig .listener;
package com.tencent.cloud.polaris.con text .listener;
import com.tencent.cloud.polaris.context.PolarisSDKContextManager ;
import com.tencent.cloud.polaris.context.PolarisSDKContextManager ;
import com.tencent.polaris.configuration.client.internal.RemoteConfigFileRepo ;
import org.springframework.boot.context.event.ApplicationFailedEvent ;
import org.springframework.boot.context.event.ApplicationFailedEvent ;
import org.springframework.boot.context.event.ApplicationPreparedEvent ;
import org.springframework.context.ApplicationEvent ;
import org.springframework.context.ApplicationEvent ;
import org.springframework.context.ApplicationListener ;
import org.springframework.context.ApplicationListener ;
import org.springframework.lang.NonNull ;
import org.springframework.lang.NonNull ;
@ -31,17 +33,22 @@ import org.springframework.lang.NonNull;
* @author shuiqingliu
* @author shuiqingliu
* @since 2023 / 8 / 29
* @since 2023 / 8 / 29
* * /
* * /
public class PolarisCon figNonDaemonThreadStop Listener implements ApplicationListener < ApplicationEvent > {
public class PolarisCon textApplicationEvent Listener implements ApplicationListener < ApplicationEvent > {
private final PolarisSDKContextManager polarisSDKContextManager ;
private final PolarisSDKContextManager polarisSDKContextManager ;
public PolarisCon figNonDaemonThreadStop Listener( PolarisSDKContextManager polarisSDKContextManager ) {
public PolarisCon textApplicationEvent Listener( PolarisSDKContextManager polarisSDKContextManager ) {
this . polarisSDKContextManager = polarisSDKContextManager ;
this . polarisSDKContextManager = polarisSDKContextManager ;
}
}
@Override
@Override
public void onApplicationEvent ( @NonNull ApplicationEvent event ) {
public void onApplicationEvent ( @NonNull ApplicationEvent event ) {
if ( event instanceof ApplicationPreparedEvent ) {
RemoteConfigFileRepo . registerRepoDestroyHook ( polarisSDKContextManager . getSDKContext ( ) ) ;
}
if ( event instanceof ApplicationFailedEvent ) {
if ( event instanceof ApplicationFailedEvent ) {
RemoteConfigFileRepo . registerRepoDestroyHook ( polarisSDKContextManager . getSDKContext ( ) ) ;
//implicit invoke 'destroy' when the spring application fails to start, in order to stop non-daemon threads.
//implicit invoke 'destroy' when the spring application fails to start, in order to stop non-daemon threads.
polarisSDKContextManager . getSDKContext ( ) . destroy ( ) ;
polarisSDKContextManager . getSDKContext ( ) . destroy ( ) ;
}
}