@ -16,6 +16,10 @@ import com.fr.plugin.manage.PluginManager;
import com.fr.plugin.manage.control.PluginControllerHelper ;
import com.fr.plugin.manage.control.PluginControllerHelper ;
import com.fr.plugin.manage.control.PluginExtraInfo ;
import com.fr.plugin.manage.control.PluginExtraInfo ;
import com.fr.plugin.manage.control.PluginTask ;
import com.fr.plugin.manage.control.PluginTask ;
import com.fr.plugin.observer.PluginEvent ;
import com.fr.plugin.observer.PluginEventListener ;
import com.fr.plugin.observer.PluginEventType ;
import com.fr.plugin.observer.PluginListenerRegistration ;
import com.fr.stable.StringUtils ;
import com.fr.stable.StringUtils ;
import com.fr.stable.TemplateIOErrorContextHolder ;
import com.fr.stable.TemplateIOErrorContextHolder ;
import com.fr.third.guava.cache.Cache ;
import com.fr.third.guava.cache.Cache ;
@ -39,6 +43,7 @@ public class DesignerAppUtils {
private static final int DEFAULT_MAX_CACHE_SIZE = 50 ;
private static final int DEFAULT_MAX_CACHE_SIZE = 50 ;
private static final int DEFAULT_CONCURRENCY_LEVEL = 8 ;
private static final int DEFAULT_CONCURRENCY_LEVEL = 8 ;
private static final long DEFAULT_EXPIRE_HOURS = 1 ;
private static final long DEFAULT_EXPIRE_HOURS = 1 ;
private static boolean enablePluginTipDialog = true ;
private static final Cache < String , Multimap < String , PluginMarkerAdapter > > ERROR_CACHE = CacheBuilder . newBuilder ( )
private static final Cache < String , Multimap < String , PluginMarkerAdapter > > ERROR_CACHE = CacheBuilder . newBuilder ( )
. maximumSize ( DEFAULT_MAX_CACHE_SIZE )
. maximumSize ( DEFAULT_MAX_CACHE_SIZE )
@ -46,6 +51,21 @@ public class DesignerAppUtils {
. concurrencyLevel ( DEFAULT_CONCURRENCY_LEVEL )
. concurrencyLevel ( DEFAULT_CONCURRENCY_LEVEL )
. build ( ) ;
. build ( ) ;
public static void initPluginAllActiveListener ( ) {
PluginListenerRegistration . getInstance ( ) . listen ( PluginEventType . BeforeAllActive , new PluginEventListener ( ) {
@Override
public void on ( PluginEvent event ) {
enablePluginTipDialog = false ;
}
} ) ;
PluginListenerRegistration . getInstance ( ) . listen ( PluginEventType . AfterAllActive , new PluginEventListener ( ) {
@Override
public void on ( PluginEvent event ) {
enablePluginTipDialog = true ;
}
} ) ;
}
/ * *
/ * *
* 弹出指定的插件信息 ,
* 弹出指定的插件信息 ,
* 并失效缓存
* 并失效缓存
@ -77,7 +97,7 @@ public class DesignerAppUtils {
* @return 格式化后的多行插件错误信息详情
* @return 格式化后的多行插件错误信息详情
* /
* /
public static String dealWithErrorDetailMultiLineAndCache ( String key ) {
public static String dealWithErrorDetailMultiLineAndCache ( String key ) {
if ( ! DesignerEnvManager . getEnvManager ( ) . isShowTemplateMissingPlugin ( ) ) {
if ( ! DesignerEnvManager . getEnvManager ( ) . isShowTemplateMissingPlugin ( ) | | ! enablePluginTipDialog ) {
// 直接清空不提示
// 直接清空不提示
TemplateIOErrorContextHolder . reset ( ) ;
TemplateIOErrorContextHolder . reset ( ) ;
return StringUtils . EMPTY ;
return StringUtils . EMPTY ;