Skip to content

Commit 75f943f

Browse files
committed
解决 FunctionParser 初始化报错自测失败,删除不再需要的 @jsonfiled
1 parent 85f6b89 commit 75f943f

File tree

4 files changed

+32
-23
lines changed

4 files changed

+32
-23
lines changed

src/main/java/apijson/framework/APIJSONFunctionParser.java

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,8 @@ protected static void onServerError(String msg, boolean shutdown) throws ServerE
335335
public static void test() throws Exception {
336336
test(null);
337337
}
338-
public static <T, M extends Map<String, Object>, L extends List<Object>> void test(APIJSONFunctionParser<T, M, L> function) throws Exception {
338+
public static <T, M extends Map<String, Object>, L extends List<Object>> void test(
339+
APIJSONFunctionParser<T, M, L> functionParser) throws Exception {
339340
int i0 = 1, i1 = -2;
340341
M request = JSON.createJSONObject();
341342
request.put("id", 10);
@@ -360,25 +361,41 @@ public static <T, M extends Map<String, Object>, L extends List<Object>> void te
360361
object.put("key", "success");
361362
request.put("object", object);
362363

363-
if (function == null) {
364-
function = new APIJSONFunctionParser<>(null, null, 1, null, null);
364+
APIJSONParser<T, M, L> parser = (APIJSONParser<T, M, L>) APIJSON_CREATOR.createParser();
365+
parser.setRequest(request);
366+
if (functionParser == null) {
367+
functionParser = (APIJSONFunctionParser<T, M, L>) APIJSON_CREATOR.createFunctionParser();
368+
functionParser.setParser(parser);
369+
functionParser.setMethod(parser.getMethod());
370+
functionParser.setTag(parser.getTag());
371+
functionParser.setVersion(parser.getVersion());
372+
functionParser.setRequest(parser.getRequest());
373+
374+
//if (functionParser instanceof APIJSONFunctionParser) {
375+
((APIJSONFunctionParser) functionParser).setSession(parser.getSession());
376+
//}
365377
}
366378

379+
// functionParser.setKey(null);
380+
// functionParser.setParentPath(null);
381+
// functionParser.setCurrentName(null);
382+
functionParser.setCurrentObject(request);
383+
367384
// 等数据库 Function 表加上 plus 配置再过两个以上迭代(应该是到 5.0)后再取消注释
368385
// Log.i(TAG, "plus(1,-2) = " + function.invoke("plus(i0,i1)", request));
369386
// AssertUtil.assertEqual(-1, function.invoke("plus(i0,i1)", request));
370387

371-
Log.i(TAG, "count([1,2,4,10]) = " + function.invoke("countArray(array)", request));
372-
AssertUtil.assertEqual(4, function.invoke("countArray(array)", request));
388+
Log.i(TAG, "count([1,2,4,10]) = " + functionParser.invoke("countArray(array)", request));
389+
AssertUtil.assertEqual(4, functionParser.invoke("countArray(array)", request));
373390

374-
Log.i(TAG, "isContain([1,2,4,10], 10) = " + function.invoke("isContain(array,id)", request));
375-
AssertUtil.assertEqual(true, function.invoke("isContain(array,id)", request));
391+
Log.i(TAG, "isContain([1,2,4,10], 10) = " + functionParser.invoke("isContain(array,id)", request));
392+
AssertUtil.assertEqual(true, functionParser.invoke("isContain(array,id)", request));
376393

377-
Log.i(TAG, "getFromArray([1,2,4,10], 0) = " + function.invoke("getFromArray(array,@position)", request));
378-
AssertUtil.assertEqual(1, function.invoke("getFromArray(array,@position)", request));
394+
Log.i(TAG, "getFromArray([1,2,4,10], 0) = " + functionParser.invoke("getFromArray(array,@position)", request));
395+
AssertUtil.assertEqual(1, functionParser.invoke("getFromArray(array,@position)", request));
379396

380-
Log.i(TAG, "getFromObject({key:\"success\"}, key) = " + function.invoke("getFromObject(object,key)", request));
381-
AssertUtil.assertEqual("success", function.invoke("getFromObject(object,key)", request));
397+
Log.i(TAG, "getFromObject({key:\"success\"}, key) = " + functionParser.invoke("getFromObject(object,key)", request));
398+
AssertUtil.assertEqual("success", functionParser.invoke("getFromObject(object,key)", request));
382399

383400
}
384401

src/main/java/apijson/framework/APIJSONSQLConfig.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import apijson.JSONArray;
2626
import apijson.JSONObject;
2727
//import apijson.column.ColumnUtil;
28-
import apijson.JSONField;
2928

3029
import apijson.RequestMethod;
3130
import apijson.orm.AbstractSQLConfig;
@@ -110,7 +109,6 @@ public String gainDBVersion() {
110109
return null;
111110
}
112111

113-
@JSONField(serialize = false) // 不在日志打印 账号/密码 等敏感信息,用了 UnitAuto 则一定要加
114112
public String gainDBUri() {
115113
if (isMySQL()) {
116114
return "jdbc:mysql://localhost:3306"; //TODO 改成你自己的,TiDB 可以当成 MySQL 使用,默认端口为 4000
@@ -127,7 +125,6 @@ public String gainDBUri() {
127125
return null;
128126
}
129127

130-
@JSONField(serialize = false) // 不在日志打印 账号/密码 等敏感信息,用了 UnitAuto 则一定要加
131128
public String gainDBAccount() {
132129
if (isMySQL()) {
133130
return "root"; //TODO 改成你自己的
@@ -144,7 +141,6 @@ public String gainDBAccount() {
144141
return null;
145142
}
146143

147-
@JSONField(serialize = false) // 不在日志打印 账号/密码 等敏感信息,用了 UnitAuto 则一定要加
148144
public String gainDBPassword() {
149145
if (isMySQL()) {
150146
return "apijson"; //TODO 改成你自己的,TiDB 可以当成 MySQL 使用, 默认密码为空字符串 ""

src/main/java/apijson/framework/javax/APIJSONFunctionParser.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,16 +203,16 @@ public static <T, M extends Map<String, Object>, L extends List<Object>> M init(
203203
}
204204

205205
Map<String, M> scriptMap = new HashMap<>();
206-
L scriptList = (L) JSON.get(response, "[]"); // response.getJSONArray(SCRIPT_ + "[]");
206+
L scriptList = JSON.get(response, "[]"); // response.getJSONArray(SCRIPT_ + "[]");
207207
if (scriptList != null && ! scriptList.isEmpty()) {
208208
//if (isAll) {
209209
// SCRIPT_MAP = new LinkedHashMap<>();
210210
//}
211211
Map<String, M> newMap = new LinkedHashMap<>();
212212

213213
for (int i = 0; i < scriptList.size(); i++) {
214-
M item = (M) JSON.get(scriptList, i);
215-
item = item == null ? null : (M) JSON.get(item, SCRIPT_);
214+
M item = JSON.get(scriptList, i);
215+
item = item == null ? null : JSON.get(item, SCRIPT_);
216216
if (item == null) { // 关联查不到很正常
217217
continue;
218218
}
@@ -370,7 +370,7 @@ public static <T, M extends Map<String, Object>, L extends List<Object>> void te
370370
Log.i(TAG, "count([1,2,4,10]) = " + function.invoke("countArray(array)", request));
371371
AssertUtil.assertEqual(4, function.invoke("countArray(array)", request));
372372

373-
Log.i(TAG, "isContain([1,2,4,10], 10) = " + function.invoke("isContain(array,id)", request));
373+
Log.i(TAG, "isContain([1,2,4,10], 10) = " + function.invoke("isContainValue(array,id)", request));
374374
AssertUtil.assertEqual(true, function.invoke("isContain(array,id)", request));
375375

376376
Log.i(TAG, "getFromArray([1,2,4,10], 0) = " + function.invoke("getFromArray(array,@position)", request));

src/main/java/apijson/framework/javax/APIJSONSQLConfig.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
package apijson.framework.javax;
1616

1717
import apijson.JSONArray;
18-
import apijson.JSONField;
1918
import apijson.JSONObject;
2019
import apijson.RequestMethod;
2120
import apijson.orm.AbstractSQLConfig;
@@ -105,7 +104,6 @@ public String gainDBVersion() {
105104
return null;
106105
}
107106

108-
@JSONField(serialize = false) // 不在日志打印 账号/密码 等敏感信息,用了 UnitAuto 则一定要加
109107
public String gainDBUri() {
110108
if (isMySQL()) {
111109
return "jdbc:mysql://localhost:3306"; //TODO 改成你自己的,TiDB 可以当成 MySQL 使用,默认端口为 4000
@@ -122,7 +120,6 @@ public String gainDBUri() {
122120
return null;
123121
}
124122

125-
@JSONField(serialize = false) // 不在日志打印 账号/密码 等敏感信息,用了 UnitAuto 则一定要加
126123
public String gainDBAccount() {
127124
if (isMySQL()) {
128125
return "root"; //TODO 改成你自己的
@@ -139,7 +136,6 @@ public String gainDBAccount() {
139136
return null;
140137
}
141138

142-
@JSONField(serialize = false) // 不在日志打印 账号/密码 等敏感信息,用了 UnitAuto 则一定要加
143139
public String gainDBPassword() {
144140
if (isMySQL()) {
145141
return "apijson"; //TODO 改成你自己的,TiDB 可以当成 MySQL 使用, 默认密码为空字符串 ""

0 commit comments

Comments
 (0)