diff --git a/o2server/x_console/src/main/java/com/x/server/console/action/ActionControl.java b/o2server/x_console/src/main/java/com/x/server/console/action/ActionControl.java index 92b6c2a88810f12adc91faede9d1db253113a257..d948cf86e28e4bc74d37e05e0023e8dbc05b9b79 100644 --- a/o2server/x_console/src/main/java/com/x/server/console/action/ActionControl.java +++ b/o2server/x_console/src/main/java/com/x/server/console/action/ActionControl.java @@ -42,6 +42,7 @@ public class ActionControl extends ActionBase { private static final String CMD_SC = "sc"; private static final String CMD_EN = "en"; private static final String CMD_DE = "de"; + private static final String CMD_GC = "gc"; private static final int REPEAT_MAX = 100; private static final int REPEAT_MIN = 1; @@ -64,12 +65,8 @@ public class ActionControl extends ActionBase { ec(cmd); } else if (cmd.hasOption(CMD_DD)) { dd(cmd); -// } else if (cmd.hasOption(CMD_DS)) { -// ds(cmd); } else if (cmd.hasOption(CMD_RD)) { rd(cmd); -// } else if (cmd.hasOption(CMD_RS)) { -// rs(cmd); } else if (cmd.hasOption(CMD_CLH2)) { clh2(cmd); } else if (cmd.hasOption(CMD_UF)) { @@ -84,6 +81,8 @@ public class ActionControl extends ActionBase { en(cmd); } else if (cmd.hasOption(CMD_DE)) { de(cmd); + } else if (cmd.hasOption(CMD_GC)) { + gc(); } else { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("control command", displayOptions()); @@ -110,6 +109,7 @@ public class ActionControl extends ActionBase { options.addOption(scOption()); options.addOption(enOption()); options.addOption(deOption()); + options.addOption(gcOption()); return options; } @@ -129,6 +129,7 @@ public class ActionControl extends ActionBase { displayOptions.addOption(rstOption()); displayOptions.addOption(scOption()); displayOptions.addOption(enOption()); + displayOptions.addOption(gcOption()); return displayOptions; } @@ -202,6 +203,10 @@ public class ActionControl extends ActionBase { .desc("密码文本解密.").hasArg().build(); } + private static Option gcOption() { + return Option.builder(CMD_GC).longOpt("jvm garbage collection").hasArg(false).desc("垃圾收集.").build(); + } + private void ec(CommandLine cmd) throws Exception { if (BooleanUtils.isNotTrue(Config.currentNode().getEraseContentEnable())) { logger.print("erase content is disabled."); @@ -323,6 +328,11 @@ public class ActionControl extends ActionBase { en.execute(text); } + private void gc() { + GarbageCollection garbageCollection = new GarbageCollection(); + garbageCollection.execute(); + } + private Integer getArgInteger(CommandLine cmd, String opt, Integer defaultValue) { Integer repeat = defaultValue; String r = cmd.getOptionValue(opt); diff --git a/o2server/x_console/src/main/java/com/x/server/console/action/GarbageCollection.java b/o2server/x_console/src/main/java/com/x/server/console/action/GarbageCollection.java new file mode 100644 index 0000000000000000000000000000000000000000..d469598405452f4a78792081209d98973b537801 --- /dev/null +++ b/o2server/x_console/src/main/java/com/x/server/console/action/GarbageCollection.java @@ -0,0 +1,15 @@ +package com.x.server.console.action; + +import com.x.base.core.project.logger.Logger; +import com.x.base.core.project.logger.LoggerFactory; + +public class GarbageCollection { + + private static final Logger LOGGER = LoggerFactory.getLogger(GarbageCollection.class); + + public boolean execute() { + Runtime.getRuntime().gc(); + return true; + } + +} \ No newline at end of file diff --git a/o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/statement/ActionExecuteV2.java b/o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/statement/ActionExecuteV2.java index ef345767d92243d420eb8610de9ab2da57fbbe90..e710d54188f204132ca3854be8a1b907e9f48c14 100644 --- a/o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/statement/ActionExecuteV2.java +++ b/o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/statement/ActionExecuteV2.java @@ -125,6 +125,7 @@ class ActionExecuteV2 extends BaseAction { jpql = this.joinSql(jpql, business); Query query; String upJpql = jpql.toUpperCase(); + LOGGER.debug("script jpql:{}.", jpql); if (upJpql.indexOf(JOIN_KEY) > -1 && upJpql.indexOf(JOIN_ON_KEY) > -1) { query = em.createNativeQuery(jpql); } else { @@ -170,6 +171,7 @@ class ActionExecuteV2 extends BaseAction { jpql = this.joinSql(jpql, business); Query query; String upJpql = jpql.toUpperCase(); + LOGGER.debug("jpql:{}.", jpql); if (upJpql.indexOf(JOIN_KEY) > -1 && upJpql.indexOf(JOIN_ON_KEY) > -1) { query = em.createNativeQuery(jpql); } else { diff --git a/o2server/x_query_assemble_surface/src/main/java/com/x/query/assemble/surface/jaxrs/statement/ActionExecuteV2.java b/o2server/x_query_assemble_surface/src/main/java/com/x/query/assemble/surface/jaxrs/statement/ActionExecuteV2.java index ef42ad418113e8ddfcbf7be8c9dfa3a7189210e1..3969e4b425e208fe8e1a8d6e019dac882deb63bc 100644 --- a/o2server/x_query_assemble_surface/src/main/java/com/x/query/assemble/surface/jaxrs/statement/ActionExecuteV2.java +++ b/o2server/x_query_assemble_surface/src/main/java/com/x/query/assemble/surface/jaxrs/statement/ActionExecuteV2.java @@ -296,11 +296,11 @@ class ActionExecuteV2 extends BaseAction { if (size > 1) { list.add("("); } - for(int i=0; i < size; i++){ + for (int i = 0; i < size; i++) { FilterEntry filterEntry = wi.getFilterList().get(i); - if(i > 0){ + if (i > 0) { String joinTag = filterEntry.logic; - if(StringUtils.isEmpty(joinTag) || !joinTag.equalsIgnoreCase(SQL_OR)){ + if (StringUtils.isEmpty(joinTag) || !joinTag.equalsIgnoreCase(SQL_OR)) { joinTag = SQL_AND; } list.add(joinTag.toUpperCase()); diff --git a/o2server/x_query_assemble_surface/src/test/resources/test.json b/o2server/x_query_assemble_surface/src/test/resources/test.json deleted file mode 100644 index 37c30f1777d8c376c2b8b77645fca55e32eee6d8..0000000000000000000000000000000000000000 --- a/o2server/x_query_assemble_surface/src/test/resources/test.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "selectEntryList": - [ - { - "orderType": "original", - "orderRank": 0, - "selectType": "path", - "attribute": "", - "name": "", - "column": "qsubject", - "displayName": "", - "path": "subject" - }, - - { - "orderType": "original", - "orderRank": 0, - "selectType": "path", - "attribute": "", - "name": "", - "column": "qamount", - "displayName": "", - "path": "amount" - }, - - { - "orderType": "original", - "orderRank": 0, - "selectType": "path", - "attribute": "", - "name": "", - "column": "qphone", - "displayName": "", - "path": "phone" - }, - - { - "orderType": "original", - "orderRank": 0, - "selectType": "path", - "attribute": "", - "name": "", - "column": "qslDate", - "displayName": "", - "path": "slDate" - }, - - { - "orderType": "original", - "orderRank": 0, - "selectType": "path", - "attribute": "", - "name": "", - "column": "qjzDate", - "displayName": "", - "path": "jzDate" - }, - - { - "orderType": "original", - "orderRank": 0, - "selectType": "attribute", - "attribute": "title", - "name": "", - "column": "qtitle", - "displayName": "", - "path": "" - }, - - { - "orderType": "original", - "orderRank": 0, - "selectType": "attribute", - "attribute": "creatorPerson", - "name": "", - "column": "qcreatorPerson", - "displayName": "", - "path": "" - } - ], - - "whereEntry": - { - "applicationList": - [ - "0c2c3d76-5301-4918-8869-f88de8d2fe57" - ], - - "processList": - [ - - ], - - "companyList": - [ - - ], - - "departmentList": - [ - - ], - - "personList": - [ - - ], - - "identityList": - [ - - ] - }, - - "filterEntryList": - [ - - ], - - "calculateEntryList": - [ - - ], - - "groupEntry": - { - "column": "qphone", - "orderType": "original" - }, - - "dateRangeEntry": - { - "dateRangeType": "none", - "dateEffectType": "completed", - "year": "", - "month": "", - "date": "", - "season": 0, - "week": 0, - "adjust": 0 - } -} \ No newline at end of file