commit 12e55f984d3792a1e44cc437591628cd2a6f978e Author: jinbokai Date: Fri Jul 12 10:04:17 2019 +0800 Initial Commit diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..1640080 --- /dev/null +++ b/build.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugin.xml b/plugin.xml new file mode 100644 index 0000000..2f3a13a --- /dev/null +++ b/plugin.xml @@ -0,0 +1,18 @@ + + + com.fr.plugin.memory.release.strategy + + yes + 1.0 + 10.0 + 2019-07-10 + fanruan.bokai + + + ]]> + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..e690b48 --- /dev/null +++ b/pom.xml @@ -0,0 +1,29 @@ + + + + + 4.0.0 + + + com.fr.plugin + + starter + + 10.0 + + + + jar + + plugin-xxxx + + + + + + ${project.basedir}/../webroot/WEB-INF/plugins/plugin-com.fr.plugin.memory.release.strategy-1.0/classes + + + + diff --git a/src/com/fr/plugin/memory/release/strategy/HighReleaseStrategy.java b/src/com/fr/plugin/memory/release/strategy/HighReleaseStrategy.java new file mode 100644 index 0000000..c7f5e36 --- /dev/null +++ b/src/com/fr/plugin/memory/release/strategy/HighReleaseStrategy.java @@ -0,0 +1,26 @@ +package com.fr.plugin.memory.release.strategy; + +import com.fr.decision.system.monitor.release.HighLoadReleaseStrategy; +import com.fr.log.FineLoggerFactory; + +/** + * @author bokai + */ +public class HighReleaseStrategy extends HighLoadReleaseStrategy { + private static HighReleaseStrategy instance = new HighReleaseStrategy(); + + public static HighReleaseStrategy getInstance(){ + return instance; + } + + @Override + public void release() { + FineLoggerFactory.getLogger().error("High release strategy test"); + } + + @Override + public void checkAtPoint() { + FineLoggerFactory.getLogger().error("High release strategy test"); + } + +} diff --git a/src/com/fr/plugin/memory/release/strategy/ReleaseStrategyProvider.java b/src/com/fr/plugin/memory/release/strategy/ReleaseStrategyProvider.java new file mode 100644 index 0000000..1fb05a0 --- /dev/null +++ b/src/com/fr/plugin/memory/release/strategy/ReleaseStrategyProvider.java @@ -0,0 +1,23 @@ +package com.fr.plugin.memory.release.strategy; + +import com.fr.decision.fun.impl.BaseMemoryReleaseStrategyProcessor; +import com.fr.decision.system.monitor.gc.load.LoadLevel; +import com.fr.decision.system.monitor.release.ReleaseStrategy; +import com.fr.intelli.record.Focus; +import com.fr.intelli.record.Original; +import com.fr.record.analyzer.EnableMetrics; +import java.util.HashMap; +import java.util.Map; + +@EnableMetrics +public class ReleaseStrategyProvider extends BaseMemoryReleaseStrategyProcessor { + + @Override + @Focus(id = StrategyConstant.PLUGIN_ID, text = "Plugin-RELEASE_STRATEGY", source = Original.PLUGIN) + public Map getStrategy() { + Map strategyMap = new HashMap<>(); + strategyMap.put(LoadLevel.HIGH, HighReleaseStrategy.getInstance()); + strategyMap.put(LoadLevel.TERRIBLE, TerribleReleaseStrategy.getInstance()); + return strategyMap; + } +} diff --git a/src/com/fr/plugin/memory/release/strategy/StrategyConstant.java b/src/com/fr/plugin/memory/release/strategy/StrategyConstant.java new file mode 100644 index 0000000..1750354 --- /dev/null +++ b/src/com/fr/plugin/memory/release/strategy/StrategyConstant.java @@ -0,0 +1,5 @@ +package com.fr.plugin.memory.release.strategy; + +public class StrategyConstant { + public static final String PLUGIN_ID = "com.fr.plugin.memory.release.strategy"; +} diff --git a/src/com/fr/plugin/memory/release/strategy/TerribleReleaseStrategy.java b/src/com/fr/plugin/memory/release/strategy/TerribleReleaseStrategy.java new file mode 100644 index 0000000..6f95aa9 --- /dev/null +++ b/src/com/fr/plugin/memory/release/strategy/TerribleReleaseStrategy.java @@ -0,0 +1,26 @@ +package com.fr.plugin.memory.release.strategy; + +import com.fr.decision.system.monitor.release.TerribleLoadReleaseStrategy; +import com.fr.log.FineLoggerFactory; + +/** + * @author bokai + */ +public class TerribleReleaseStrategy extends TerribleLoadReleaseStrategy { + private static TerribleReleaseStrategy instance = new TerribleReleaseStrategy(); + + public static TerribleReleaseStrategy getInstance() { + return instance; + } + + @Override + public void release() { + FineLoggerFactory.getLogger().error("Terrible release strategy test"); + } + + @Override + public void checkAtPoint() { + FineLoggerFactory.getLogger().error("*Terrible release strategy test"); + } + +}