|
|
@ -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; |
|
|
|