Skip to content

Commit 3339459

Browse files
committed
3.2.6 代码更新
1 parent cca6646 commit 3339459

File tree

6 files changed

+15
-7
lines changed

6 files changed

+15
-7
lines changed

VERSIONS.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,4 +128,8 @@ public Object execute(InstructionSet[] instructionSets,IExpressContext<String,Ob
128128
## 3.2.5版本[2021-8-23]
129129
(1)支持强大的数组符号访问属性功能(List,Map,Array):ArrayPorpertyMixTest
130130
(2)支持lambda表达式,stream方式操作集合书写更高效(List,Map):LambdaTest
131-
(3)解决数组类型的方法匹配bug:ArrayMisType
131+
(3)解决数组类型的方法匹配bug:ArrayMisType
132+
133+
## 3.2.6版本[2021-11-24]
134+
(1)彻底解决ExpressRunner重入问题,可以嵌套使用:RecursivelyRunnerTest
135+
(2)重磅特性:通过@QLAlias对字段和方法上添加注解,实现中文字段和中文方法调用:QLAliasTest

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<groupId>com.alibaba</groupId>
77
<artifactId>QLExpress</artifactId>
88
<packaging>jar</packaging>
9-
<version>3.2.5</version>
9+
<version>3.2.6</version>
1010
<name>QLExpress</name>
1111
<description>QLExpress is a powerful, lightweight, dynamic language for the Java platform aimed at improving developers’ productivity in different business scenes.</description>
1212
<url>https://github.com/alibaba/QLExpress</url>

src/main/java/com/ql/util/express/annotation/QLAlias.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
*
3737
*/
3838
@Inherited
39-
@Target({TYPE, FIELD, METHOD})
39+
@Target({TYPE, FIELD, METHOD, PARAMETER})
4040
@Retention(RetentionPolicy.RUNTIME)
4141
public @interface QLAlias {
4242
/**

src/main/java/com/ql/util/express/annotation/QLAliasUtils.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,13 @@ private static Field findQLAliasFieldsWithCache(Class baseClass, String property
5757
if(result == null){
5858
fieldsCache.put(key, void.class);
5959
}else{
60-
((Field)result).setAccessible(true);
6160
fieldsCache.put(key,result);
6261
}
6362
}else if(result == void.class){
6463
result = null;
6564
}
6665
return (Field)result;
67-
}
66+
}
6867

6968
public static Field findQLAliasFields(Class baseClass, String propertyName) {
7069

src/test/java/com/ql/util/express/annotation/AnnotationTest.java renamed to src/test/java/com/ql/util/express/annotation/QLAliasTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* @author tianqiao@come-future.com
1313
* 2021-11-15 5:51 下午
1414
*/
15-
public class AnnotationTest {
15+
public class QLAliasTest {
1616

1717
@Test
1818
public void testQLAlias() throws Exception {
@@ -27,6 +27,8 @@ public void testQLAlias() throws Exception {
2727
"患者.生日()==患者.生日","true",//get方法和字段名字一样是不冲突的
2828
"患者.患者姓名 + ' 今年 '+ 患者.获取年龄() +' 岁'","老王 今年 34 岁",//任意方法的注解
2929
};
30+
31+
//1、测试对象的方法,字段上的别名标签
3032
IExpressContext<String, Object> context = new DefaultContext<String, Object>();
3133
Person person = new Patient();
3234
person.setName("老王");
@@ -39,7 +41,7 @@ public void testQLAlias() throws Exception {
3941
assertTrue((""+result).equals(exps[i+1]));
4042
}
4143

42-
//业务调用也可以通过对象的QLAlias直接来自动产生系统变量
44+
//2、外部业务调用方也可以利用类、参数的QLAlias注解,自动注入ExpressContext
4345
QLAliasContext context2 = new QLAliasContext();
4446
context2.putAutoParams(person);//等价于context2.put("患者", person);
4547
for (int i=0;i<exps.length;i+=2) {

src/test/java/com/ql/util/express/bugfix/RecursivelyRunnerTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77

88
import java.lang.reflect.Method;
99

10+
/**
11+
* 可重入性单元测试
12+
*/
1013
public class RecursivelyRunnerTest {
1114

1215
static ExpressRunner runner = new ExpressRunner();

0 commit comments

Comments
 (0)