Jelajahi Sumber

添加urule.debug参数,该参数值为true则规则中定义的控制台输出动作将不再执行,反之则执行,默认为false

jacky6024 8 tahun lalu
induk
melakukan
1d19c5a56d

+ 10 - 2
urule-core/src/main/java/com/bstek/urule/Utils.java

@@ -41,6 +41,7 @@ import com.bstek.urule.model.library.Datatype;
  * @since 2015年1月8日
  */
 public class Utils implements ApplicationContextAware{
+	private static boolean debug;
 	private static ApplicationContext applicationContext;
 	private static Map<String,FunctionDescriptor> functionDescriptorMap=new HashMap<String,FunctionDescriptor>();
 	private static Map<String,FunctionDescriptor> functionDescriptorLabelMap=new HashMap<String,FunctionDescriptor>();
@@ -181,8 +182,15 @@ public class Utils implements ApplicationContextAware{
 		return functionDescriptorMap;
 	}
 	
-	public void setApplicationContext(ApplicationContext applicationContext)
-			throws BeansException {
+	public void setDebug(boolean debug) {
+		Utils.debug = debug;
+	}
+	
+	public static boolean isDebug() {
+		return debug;
+	}
+	
+	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
 		Collection<FunctionDescriptor> functionDescriptors=applicationContext.getBeansOfType(FunctionDescriptor.class).values();
 		for(FunctionDescriptor fun:functionDescriptors){
 			if(fun.isDisabled()){

+ 4 - 0
urule-core/src/main/java/com/bstek/urule/action/ConsolePrintAction.java

@@ -19,6 +19,7 @@ import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
+import com.bstek.urule.Utils;
 import com.bstek.urule.model.rule.Value;
 import com.bstek.urule.runtime.rete.Context;
 import com.bstek.urule.runtime.rete.ValueCompute;
@@ -31,6 +32,9 @@ public class ConsolePrintAction extends AbstractAction {
 	private Value value;
 	private ActionType actionType=ActionType.ConsolePrint;
 	public ActionValue execute(Context context,Object matchedObject,List<Object> allMatchedObjects,Map<String,Object> variableMap) {
+		if(!Utils.isDebug()){
+			return null;
+		}
 		ValueCompute valueCompute=(ValueCompute)context.getApplicationContext().getBean(ValueCompute.BEAN_ID);
 		Object content=valueCompute.complexValueCompute(value, matchedObject, context,allMatchedObjects,variableMap);
 		if(content instanceof BigDecimal){

+ 0 - 1
urule-core/src/main/java/com/bstek/urule/action/ExecuteMethodAction.java

@@ -100,7 +100,6 @@ public class ExecuteMethodAction extends AbstractAction {
 				}
 			}
 		}catch(Exception ex){
-			ex.printStackTrace();
 			throw new RuleException(ex);
 		}
 	}

+ 1 - 0
urule-core/src/main/resources/urule-core-context.properties

@@ -2,6 +2,7 @@ urule.resporityServerUrl=
 urule.dateFormat=
 urule.knowledgeUpdateCycle=0
 urule.tempStorePath=
+urule.debug=true
 
 urule.trimFunctionDisabled=false
 urule.stringLengthFunctionDisabled=false

+ 3 - 1
urule-core/src/main/resources/urule-core-context.xml

@@ -115,7 +115,9 @@
 	
 	<bean id="urule.valueCompute" class="com.bstek.urule.runtime.rete.ValueCompute"></bean>
 
-	<bean id="urule.utils" class="com.bstek.urule.Utils"></bean>
+	<bean id="urule.utils" class="com.bstek.urule.Utils">
+		<property name="debug" value="${urule.debug}"></property>
+	</bean>
 	
 	<bean id="urule.flowResourceBuilder" class="com.bstek.urule.builder.resource.FlowResourceBuilder">
 		<property name="flowDeserializer" ref="urule.flowDeserializer"></property>