From f2863281f69860b7d2ce5ad4f15bab8b88e79512 Mon Sep 17 00:00:00 2001 From: coderfengyun Date: Fri, 11 Apr 2014 16:43:07 +0800 Subject: [PATCH] Add DFA of extract the parameter by provider Add DFA of extract the parameter by provider --- .../bench4q/agent/api/PluginController.java | 5 --- .../bench4q/agent/plugin/PluginManager.java | 11 ------ .../models/master/plugin/ParamTypeEnum.java | 1 - .../models/master/plugin/PluginInfoModel.java | 35 ++++++++++++++++++ .../bench4q year final.pptx | Bin relative Docs/取参数状态机.vsdx | Bin 0 -> 38901 bytes 6 files changed, 35 insertions(+), 17 deletions(-) create mode 100644 Bench4Q-Share/src/main/java/org/bench4q/share/models/master/plugin/PluginInfoModel.java rename {Bench4Q-Master/relative Docs => relative Docs}/bench4q year final.pptx (100%) create mode 100644 relative Docs/取参数状态机.vsdx diff --git a/Bench4Q-Agent/src/main/java/org/bench4q/agent/api/PluginController.java b/Bench4Q-Agent/src/main/java/org/bench4q/agent/api/PluginController.java index fa870d6a..f903984b 100644 --- a/Bench4Q-Agent/src/main/java/org/bench4q/agent/api/PluginController.java +++ b/Bench4Q-Agent/src/main/java/org/bench4q/agent/api/PluginController.java @@ -78,9 +78,4 @@ public class PluginController { return model; } - @RequestMapping(value = "/info", method = RequestMethod.GET) - @ResponseBody - public void info() { - - } } diff --git a/Bench4Q-Agent/src/main/java/org/bench4q/agent/plugin/PluginManager.java b/Bench4Q-Agent/src/main/java/org/bench4q/agent/plugin/PluginManager.java index f11af4c7..544f2663 100644 --- a/Bench4Q-Agent/src/main/java/org/bench4q/agent/plugin/PluginManager.java +++ b/Bench4Q-Agent/src/main/java/org/bench4q/agent/plugin/PluginManager.java @@ -11,7 +11,6 @@ import org.apache.log4j.Logger; import org.bench4q.agent.helper.ClassHelper; import org.bench4q.agent.helper.ClassLoadRestriction; import org.bench4q.agent.share.DealWithLog; -import org.jdom.input.SAXBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -20,21 +19,11 @@ public class PluginManager { private static final String PLUGIN_PACKAGE_NAME = "org.bench4q.agent.plugin"; private ClassHelper classHelper; private TypeConverter typeConverter; - private SAXBuilder saxBuilder; private Map> plugins; private Logger logger = Logger.getLogger(PluginManager.class); - private SAXBuilder getSaxBuilder() { - return saxBuilder; - } - - private void setSaxBuilder(SAXBuilder saxBuilder) { - this.saxBuilder = saxBuilder; - } - @Autowired public PluginManager(ClassHelper classHelper, TypeConverter typeConverter) { - this.setSaxBuilder(new SAXBuilder()); this.setClassHelper(classHelper); this.setTypeConverter(typeConverter); this.setPlugins(this.getClassHelper().loadClasses(PLUGIN_PACKAGE_NAME, diff --git a/Bench4Q-Share/src/main/java/org/bench4q/share/models/master/plugin/ParamTypeEnum.java b/Bench4Q-Share/src/main/java/org/bench4q/share/models/master/plugin/ParamTypeEnum.java index ed9c38ac..d194d39a 100644 --- a/Bench4Q-Share/src/main/java/org/bench4q/share/models/master/plugin/ParamTypeEnum.java +++ b/Bench4Q-Share/src/main/java/org/bench4q/share/models/master/plugin/ParamTypeEnum.java @@ -2,5 +2,4 @@ package org.bench4q.share.models.master.plugin; public enum ParamTypeEnum { Field, MultiField, CheckBox, Table - } diff --git a/Bench4Q-Share/src/main/java/org/bench4q/share/models/master/plugin/PluginInfoModel.java b/Bench4Q-Share/src/main/java/org/bench4q/share/models/master/plugin/PluginInfoModel.java new file mode 100644 index 00000000..de68527c --- /dev/null +++ b/Bench4Q-Share/src/main/java/org/bench4q/share/models/master/plugin/PluginInfoModel.java @@ -0,0 +1,35 @@ +package org.bench4q.share.models.master.plugin; + +import java.util.List; + +public class PluginInfoModel { + + public static abstract class Type { + } + + public static class Field extends Type { + private String size; + private String text; + } + + public static class NField extends Type { + } + + public static class Table extends Type { + private String column; + } + + public static class Choice extends Type { + } + + public static class CheckBox extends Type { + private List choices; + + } + + public static class ParameterInfoModel { + private String name; + private String label; + private Type type; + } +} diff --git a/Bench4Q-Master/relative Docs/bench4q year final.pptx b/relative Docs/bench4q year final.pptx similarity index 100% rename from Bench4Q-Master/relative Docs/bench4q year final.pptx rename to relative Docs/bench4q year final.pptx diff --git a/relative Docs/取参数状态机.vsdx b/relative Docs/取参数状态机.vsdx new file mode 100644 index 0000000000000000000000000000000000000000..265a8ee660b682d0cd3c3399d6bbc38aaab49b5f GIT binary patch literal 38901 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 literal 0 HcmV?d00001