From 39f7d84f0c62267879c6d8c5c025596b0c5b9186 Mon Sep 17 00:00:00 2001 From: canonical Date: Thu, 30 Nov 2023 20:36:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9sonaqube=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nop-api-core/pom.xml | 11 +- .../io/nop/api/core/context/BaseContext.java | 2 +- .../api/core/context/BaseContextProvider.java | 4 + .../core/model/_gen/_ActionAuthModel.java | 2 + .../auth/core/model/_gen/_AuthRoleModel.java | 2 + .../auth/core/model/_gen/_DataAuthModel.java | 2 + .../core/model/_gen/_ObjDataAuthModel.java | 2 + .../core/model/_gen/_RoleDataAuthModel.java | 2 + .../auth/service/login/LoginServiceImpl.java | 7 +- .../java/io/nop/auth/sso/SsoConstants.java | 6 +- .../nop/auth/sso/jwk/JWKPublicKeyLocator.java | 2 +- .../nop/autotest/junit/JunitAutoTestCase.java | 12 +- .../junit/VariantsArgumentProvider.java | 9 +- .../biz/model/_gen/_BizActionArgModel.java | 2 + .../nop/biz/model/_gen/_BizActionModel.java | 2 + .../biz/model/_gen/_BizCacheEvictModel.java | 2 + .../io/nop/biz/model/_gen/_BizCacheModel.java | 2 + .../nop/biz/model/_gen/_BizLoaderModel.java | 2 + .../biz/model/_gen/_BizMakerCheckerModel.java | 2 + .../java/io/nop/biz/model/_gen/_BizModel.java | 2 + .../nop/biz/model/_gen/_BizObserveModel.java | 2 + .../nop/biz/model/_gen/_BizReturnModel.java | 2 + .../io/nop/biz/model/_gen/_BizTccModel.java | 2 + .../io/nop/biz/model/_gen/_BizTxnModel.java | 2 + .../_{objSchema.simpleClassName}.java.xgen | 2 + .../nop/commons/collections/IntHashMap.java | 10 +- .../merge/SortedIteratorMergerWithLimit.java | 3 +- .../concurrent/RoundRobinSupplier.java | 56 +++++---- .../batch/BlockingSourceConsumeTask.java | 1 + .../executor/StandardThreadPoolExecutor.java | 9 +- .../concurrent/executor/TaskQueue.java | 4 +- .../concurrent/lock/LocalFileLock.java | 14 ++- .../lock/impl/LocalResourceLockManager.java | 21 ++-- .../concurrent/thread/ThreadHelper.java | 5 +- .../io/nop/commons/crypto/HashHelper.java | 7 ++ .../io/nop/commons/io/net/NetAddress.java | 24 ++-- .../io/stream/ByteBufferOutputStream.java | 3 +- .../io/nop/commons/io/stream/ByteQueue.java | 5 + .../commons/io/stream/ChannelInputStream.java | 2 +- .../io/stream/FileRandomOutputStream.java | 2 + .../text/tokenizer/SimpleTextTokenizer.java | 4 + .../commons/text/tokenizer/TextScanner.java | 36 +----- .../java/io/nop/commons/util/ArrayHelper.java | 2 +- .../java/io/nop/commons/util/ClassHelper.java | 42 ++----- .../java/io/nop/commons/util/DateHelper.java | 26 +---- .../java/io/nop/commons/util/FileHelper.java | 40 +++---- .../java/io/nop/commons/util/MathHelper.java | 19 +-- .../io/nop/commons/util/MavenDirHelper.java | 2 + .../io/nop/commons/util/ProjectDirHelper.java | 4 +- .../io/nop/commons/util/StringHelper.java | 64 ++++------- .../java/io/nop/commons/util/URLHelper.java | 18 +-- .../nop/commons/util/retry/RetryHelper.java | 4 +- .../nop/commons/util/retry/RetryPolicy.java | 4 +- .../io/nop/commons/util/TestDateHelper.java | 12 ++ .../config/impl/DefaultConfigProvider.java | 4 +- .../config/router/ConfigRouterProcessor.java | 2 +- .../config/source/DynamicConfigSource.java | 6 +- .../source/file/AbstractFileConfigSource.java | 2 +- .../config/source/jdbc/JdbcConfigSource.java | 6 +- .../io/nop/config/starter/ConfigStarter.java | 2 +- .../core/context/ExecutionContextImpl.java | 10 +- .../io/nop/core/context/MaintenanceFlag.java | 12 +- .../core/exceptions/ErrorMessageManager.java | 4 +- .../io/nop/core/i18n/I18nMessagesLoader.java | 2 +- .../lang/json/serialize/JsonSerializer.java | 2 +- .../main/java/io/nop/core/lang/xml/XNode.java | 2 +- .../lang/xml/handler/CollectXmlHandler.java | 9 +- .../graph/GraphBreadthFirstIterator.java | 9 +- .../model/graph/GraphDepthFirstIterator.java | 10 +- .../graph/LowestCommonAncestorFinder.java | 5 +- .../nop/core/model/loop/impl/NestedLoop.java | 2 +- .../core/model/table/impl/AbstractTable.java | 14 +-- .../model/tree/impl/DepthFirstIterator.java | 13 +-- .../model/tree/impl/WidthFirstIterator.java | 8 +- .../bean/ArrayBeanCollectionAdapter.java | 4 + .../resource/cache/ResourceCacheEntry.java | 2 +- .../resource/deps/ResourceDependsManager.java | 2 +- .../core/resource/find/SimplePathPattern.java | 4 +- .../nop/core/resource/impl/FileResource.java | 18 +-- .../core/resource/impl/ZipEntryResource.java | 2 +- .../resource/record/csv/CsvRecordOutput.java | 5 +- .../core/resource/scan/ClassPathScanner.java | 2 +- .../core/resource/scan/FileScanHelper.java | 2 +- .../resource/store/InMemoryResourceStore.java | 1 + .../resource/watch/NioFileWatchService.java | 14 +-- .../io/nop/core/resource/zip/JdkZipInput.java | 4 +- .../nop/core/resource/zip/JdkZipOutput.java | 3 +- .../nop/core/resource/zip/ZipFileWatcher.java | 4 +- .../type/utils/JavaGenericTypeHelper.java | 14 +-- .../io/nop/core/unittest/BaseTestCase.java | 3 + .../io/nop/dao/dialect/DialectSelector.java | 4 +- .../model/_gen/_DialectDiscoverySqls.java | 2 + .../model/_gen/_DialectErrorCodeModel.java | 2 + .../dialect/model/_gen/_DialectFeatures.java | 2 + .../dao/dialect/model/_gen/_DialectModel.java | 2 + .../dao/dialect/model/_gen/_DialectSqls.java | 2 + .../dialect/model/_gen/_SqlDataTypeModel.java | 2 + .../dialect/model/_gen/_SqlFunctionModel.java | 2 + .../model/_gen/_SqlNativeFunctionModel.java | 2 + .../dialect/model/_gen/_SqlTemplateModel.java | 2 + .../dao/seq/SnowflakeSequenceGeneator.java | 7 +- .../io/nop/excel/format/ExcelDateHelper.java | 2 +- .../imp/model/_gen/_ImportFieldModel.java | 2 + .../excel/imp/model/_gen/_ImportModel.java | 2 + .../imp/model/_gen/_ImportSheetModel.java | 2 + .../excel/model/_gen/_ExcelAnnotation.java | 2 + .../excel/model/_gen/_ExcelBorderStyle.java | 2 + .../io/nop/excel/model/_gen/_ExcelCell.java | 2 + .../excel/model/_gen/_ExcelClientAnchor.java | 2 + .../excel/model/_gen/_ExcelColumnConfig.java | 2 + .../model/_gen/_ExcelConditionalStyle.java | 2 + .../io/nop/excel/model/_gen/_ExcelFont.java | 2 + .../excel/model/_gen/_ExcelHeaderFooter.java | 2 + .../io/nop/excel/model/_gen/_ExcelImage.java | 2 + .../excel/model/_gen/_ExcelPageBreaks.java | 2 + .../excel/model/_gen/_ExcelPageMargins.java | 2 + .../nop/excel/model/_gen/_ExcelPageSetup.java | 2 + .../io/nop/excel/model/_gen/_ExcelPrint.java | 2 + .../nop/excel/model/_gen/_ExcelProperty.java | 2 + .../nop/excel/model/_gen/_ExcelRichText.java | 2 + .../excel/model/_gen/_ExcelRichTextPart.java | 2 + .../io/nop/excel/model/_gen/_ExcelRow.java | 2 + .../io/nop/excel/model/_gen/_ExcelSheet.java | 2 + .../excel/model/_gen/_ExcelSheetOptions.java | 2 + .../io/nop/excel/model/_gen/_ExcelStyle.java | 2 + .../io/nop/excel/model/_gen/_ExcelTable.java | 2 + .../nop/excel/model/_gen/_ExcelWorkbook.java | 2 + .../nop/excel/model/_gen/_XptCellModel.java | 2 + .../io/nop/excel/model/_gen/_XptRowModel.java | 2 + .../nop/excel/model/_gen/_XptSheetModel.java | 2 + .../excel/model/_gen/_XptWorkbookModel.java | 2 + .../io/nop/excel/model/_gen/_XptXplModel.java | 2 + .../fsm/model/_gen/_StateMachineModel.java | 2 + .../io/nop/fsm/model/_gen/_StateModel.java | 2 + .../fsm/model/_gen/_StateTransitionModel.java | 2 + .../gateway/model/_gen/_GatewayModel.java | 2 + .../model/_gen/_GatewayOnPathModel.java | 2 + .../model/_gen/_GatewayRouteModel.java | 2 + .../nop/ioc/model/_gen/_BeanAliasModel.java | 2 + .../nop/ioc/model/_gen/_BeanBuildModel.java | 2 + .../model/_gen/_BeanCollectBeansValue.java | 2 + .../ioc/model/_gen/_BeanCollectionValue.java | 2 + .../ioc/model/_gen/_BeanConditionModel.java | 2 + .../nop/ioc/model/_gen/_BeanConfigModel.java | 2 + .../ioc/model/_gen/_BeanConstantModel.java | 2 + .../ioc/model/_gen/_BeanConstantValue.java | 2 + .../model/_gen/_BeanConstructorArgModel.java | 2 + .../nop/ioc/model/_gen/_BeanEntryValue.java | 2 + .../nop/ioc/model/_gen/_BeanIdRefValue.java | 2 + .../model/_gen/_BeanIfPropertyCondition.java | 2 + .../nop/ioc/model/_gen/_BeanImportModel.java | 2 + .../ioc/model/_gen/_BeanInterceptorModel.java | 2 + .../ioc/model/_gen/_BeanIocInjectValue.java | 2 + .../io/nop/ioc/model/_gen/_BeanListModel.java | 2 + .../io/nop/ioc/model/_gen/_BeanListValue.java | 2 + .../ioc/model/_gen/_BeanListenerModel.java | 2 + .../io/nop/ioc/model/_gen/_BeanMapModel.java | 2 + .../io/nop/ioc/model/_gen/_BeanMapValue.java | 2 + .../io/nop/ioc/model/_gen/_BeanModel.java | 2 + .../io/nop/ioc/model/_gen/_BeanNullValue.java | 2 + .../ioc/model/_gen/_BeanOnConfigRefresh.java | 2 + .../ioc/model/_gen/_BeanPointcutModel.java | 2 + .../ioc/model/_gen/_BeanPropEntryValue.java | 2 + .../io/nop/ioc/model/_gen/_BeanPropValue.java | 2 + .../ioc/model/_gen/_BeanPropertyModel.java | 2 + .../nop/ioc/model/_gen/_BeanPropsValue.java | 2 + .../io/nop/ioc/model/_gen/_BeanRefValue.java | 2 + .../io/nop/ioc/model/_gen/_BeanSetModel.java | 2 + .../io/nop/ioc/model/_gen/_BeanSetValue.java | 2 + .../nop/ioc/model/_gen/_BeanSimpleValue.java | 2 + .../_gen/_BeanUnlessPropertyCondition.java | 2 + .../io/nop/ioc/model/_gen/_BeanValue.java | 2 + .../io/nop/ioc/model/_gen/_BeanXplValue.java | 2 + .../io/nop/ioc/model/_gen/_BeansModel.java | 2 + .../job/core/trigger/TriggerExecutorImpl.java | 16 +-- .../io/nop/job/core/utils/CronExpression.java | 13 +-- .../io/nop/js/engine/JavaScriptService.java | 2 +- .../io/nop/js/engine/JavaScriptWorker.java | 3 +- .../JavaLoggerConfigurator.java | 2 +- .../io/nop/log/log4j2/Log4j2Configurator.java | 2 +- .../nop/log/logback/LogbackConfigurator.java | 2 +- .../nop/message/pulsar/PulsarConsumeTask.java | 15 +-- .../impl/LettuceRedisConnectionProvider.java | 1 - .../common/model/PackagingURIHelper.java | 62 +++++----- .../common/model/internal/ContentType.java | 4 +- .../ooxml/docx/parse/WordTemplateParser.java | 2 +- .../io/nop/orm/model/_gen/_OrmAliasModel.java | 2 + .../nop/orm/model/_gen/_OrmColumnModel.java | 2 + .../orm/model/_gen/_OrmComponentModel.java | 2 + .../model/_gen/_OrmComponentPropModel.java | 2 + .../orm/model/_gen/_OrmComputeArgModel.java | 2 + .../orm/model/_gen/_OrmComputePropModel.java | 2 + .../nop/orm/model/_gen/_OrmDomainModel.java | 2 + .../nop/orm/model/_gen/_OrmEntityModel.java | 2 + .../orm/model/_gen/_OrmIndexColumnModel.java | 2 + .../io/nop/orm/model/_gen/_OrmIndexModel.java | 2 + .../nop/orm/model/_gen/_OrmJoinOnModel.java | 2 + .../java/io/nop/orm/model/_gen/_OrmModel.java | 2 + .../nop/orm/model/_gen/_OrmPackageModel.java | 2 + .../nop/orm/model/_gen/_OrmRefSetModel.java | 2 + .../orm/model/_gen/_OrmReferenceModel.java | 2 + .../model/_gen/_OrmToManyReferenceModel.java | 2 + .../model/_gen/_OrmToOneReferenceModel.java | 2 + .../orm/model/_gen/_OrmUniqueKeyModel.java | 2 + .../_gen/_OrmInterceptorActionModel.java | 2 + .../_gen/_OrmInterceptorEntityModel.java | 2 + .../_gen/_OrmInterceptorModel.java | 2 + .../java/io/nop/orm/pdm/PdmModelParser.java | 108 +----------------- .../driver/TdEntityPersistDriver.java | 9 +- .../java/io/nop/orm/dao/DaoQueryHelper.java | 13 +-- .../java/io/nop/orm/dao/OrmEntityDao.java | 32 ++---- .../driver/jdbc/JdbcEntityPersistDriver.java | 2 +- .../java/io/nop/orm/mdx/MdxQueryExecutor.java | 2 +- .../nop/orm/persister/OrmRevisionHelper.java | 10 +- .../java/io/nop/orm/sql/GenSqlHelper.java | 2 +- .../io/nop/orm/sql/GenSqlTransformer.java | 2 +- .../orm/sql_lib/_gen/_EqlSqlItemModel.java | 2 + .../orm/sql_lib/_gen/_NativeSqlItemModel.java | 2 + .../orm/sql_lib/_gen/_QuerySqlItemModel.java | 2 + .../nop/orm/sql_lib/_gen/_SqlFieldModel.java | 2 + .../orm/sql_lib/_gen/_SqlFragmentModel.java | 2 + .../orm/sql_lib/_gen/_SqlItemArgModel.java | 2 + .../nop/orm/sql_lib/_gen/_SqlItemModel.java | 2 + .../io/nop/orm/sql_lib/_gen/_SqlLibModel.java | 2 + .../RandomAccessFileRecordBinaryInput.java | 14 +-- .../model/_gen/_RecordComputedFieldMeta.java | 2 + .../io/nop/record/model/_gen/_RecordEnum.java | 2 + .../record/model/_gen/_RecordEnumOption.java | 2 + .../record/model/_gen/_RecordFieldMeta.java | 2 + .../record/model/_gen/_RecordFieldSwitch.java | 2 + .../model/_gen/_RecordFieldSwitchCase.java | 2 + .../model/_gen/_RecordFileBodyMeta.java | 2 + .../record/model/_gen/_RecordFileMeta.java | 2 + .../record/model/_gen/_RecordObjectMeta.java | 2 + .../record/model/_gen/_RecordParamMeta.java | 2 + .../record/model/_gen/_RecordTypeMeta.java | 2 + .../model/_gen/_RuleDecisionMatrixModel.java | 2 + .../model/_gen/_RuleDecisionTreeModel.java | 2 + .../model/_gen/_RuleInputDefineModel.java | 2 + .../nop/rule/core/model/_gen/_RuleModel.java | 2 + .../model/_gen/_RuleOutputDefineModel.java | 2 + .../model/_gen/_RuleOutputValueModel.java | 2 + .../core/model/_gen/_RuleTableCellModel.java | 2 + .../web/filter/ServletHttpServerContext.java | 5 +- .../cep/model/_gen/_CepPatternGroupModel.java | 2 + .../cep/model/_gen/_CepPatternModel.java | 2 + .../cep/model/_gen/_CepPatternPartModel.java | 2 + .../model/_gen/_CepPatternSingleModel.java | 2 + .../task/model/_gen/_AwaitTaskStepModel.java | 2 + .../task/model/_gen/_ChooseTaskStepModel.java | 2 + .../task/model/_gen/_DelayTaskStepModel.java | 2 + .../task/model/_gen/_EndTaskStepModel.java | 2 + .../task/model/_gen/_ExitTaskStepModel.java | 2 + .../task/model/_gen/_FlowTaskStepModel.java | 2 + .../task/model/_gen/_ForkNTaskStepModel.java | 2 + .../task/model/_gen/_ForkTaskStepModel.java | 2 + .../task/model/_gen/_InvokeTaskStepModel.java | 2 + .../task/model/_gen/_LoopNTaskStepModel.java | 2 + .../task/model/_gen/_LoopTaskStepModel.java | 2 + .../model/_gen/_ParallelTaskStepModel.java | 2 + .../task/model/_gen/_ScriptTaskStepModel.java | 2 + .../model/_gen/_SequentialTaskStepModel.java | 2 + .../task/model/_gen/_SimpleTaskStepModel.java | 2 + .../task/model/_gen/_SleepTaskStepModel.java | 2 + .../task/model/_gen/_SubTaskStepModel.java | 2 + .../model/_gen/_SuspendTaskStepModel.java | 2 + .../nop/task/model/_gen/_TaskBeanModel.java | 2 + .../task/model/_gen/_TaskChooseCaseModel.java | 2 + .../model/_gen/_TaskChooseOtherwiseModel.java | 2 + .../task/model/_gen/_TaskDeciderModel.java | 2 + .../task/model/_gen/_TaskDecoratorModel.java | 2 + .../task/model/_gen/_TaskExecutableModel.java | 2 + .../nop/task/model/_gen/_TaskFlowModel.java | 2 + .../nop/task/model/_gen/_TaskInputModel.java | 2 + .../task/model/_gen/_TaskInvokeArgModel.java | 2 + .../nop/task/model/_gen/_TaskOutputModel.java | 2 + .../task/model/_gen/_TaskRateLimitModel.java | 2 + .../nop/task/model/_gen/_TaskRetryModel.java | 2 + .../nop/task/model/_gen/_TaskStepModel.java | 2 + .../nop/task/model/_gen/_TaskStepsModel.java | 2 + .../task/model/_gen/_TaskThrottleModel.java | 2 + .../task/model/_gen/_XplTaskStepModel.java | 2 + .../nop/xui/model/_gen/_UiComponentModel.java | 2 + .../io/nop/xui/model/_gen/_UiDisplayMeta.java | 2 + .../nop/xui/model/_gen/_UiFormCellModel.java | 2 + .../io/nop/xui/model/_gen/_UiFormModel.java | 2 + .../nop/xui/model/_gen/_UiFormRuleModel.java | 2 + .../nop/xui/model/_gen/_UiGridColModel.java | 2 + .../io/nop/xui/model/_gen/_UiGridModel.java | 2 + .../io/nop/xui/model/_gen/_UiHrefModel.java | 2 + .../io/nop/xui/model/_gen/_UiImportModel.java | 2 + .../nop/xui/model/_gen/_UiRefViewModel.java | 2 + .../wf/core/model/_gen/_WfActionModel.java | 2 + .../wf/core/model/_gen/_WfArgVarModel.java | 2 + .../model/_gen/_WfAssignmentActorModel.java | 2 + .../core/model/_gen/_WfAssignmentModel.java | 2 + .../nop/wf/core/model/_gen/_WfEndModel.java | 2 + .../wf/core/model/_gen/_WfJoinStepModel.java | 2 + .../wf/core/model/_gen/_WfListenerModel.java | 2 + .../io/nop/wf/core/model/_gen/_WfModel.java | 2 + .../nop/wf/core/model/_gen/_WfModelAuth.java | 2 + .../wf/core/model/_gen/_WfRefActionModel.java | 2 + .../nop/wf/core/model/_gen/_WfRetryModel.java | 2 + .../wf/core/model/_gen/_WfReturnVarModel.java | 2 + .../nop/wf/core/model/_gen/_WfStartModel.java | 2 + .../nop/wf/core/model/_gen/_WfStepModel.java | 2 + .../core/model/_gen/_WfSubFlowArgModel.java | 2 + .../wf/core/model/_gen/_WfSubFlowModel.java | 2 + .../model/_gen/_WfSubFlowReturnModel.java | 2 + .../core/model/_gen/_WfSubFlowStartModel.java | 2 + .../wf/core/model/_gen/_WfSubscribeModel.java | 2 + .../core/model/_gen/_WfTransitionModel.java | 2 + .../_gen/_WfTransitionToAssignedModel.java | 2 + .../model/_gen/_WfTransitionToEmptyModel.java | 2 + .../model/_gen/_WfTransitionToEndModel.java | 2 + .../core/model/_gen/_WfTransitionToModel.java | 2 + .../model/_gen/_WfTransitionToStepModel.java | 2 + .../nop-wf-meta/_templates/_NopWfAction.json | 2 + .../_templates/_NopWfStepInstance.json | 2 + .../_templates/_WfChangeActorRequestBean.json | 11 ++ .../resources/_vfs/i18n/en/_nop-wf.i18n.yaml | 15 +++ .../_vfs/i18n/zh-CN/_nop-wf.i18n.yaml | 15 +++ .../wf/model/NopWfAction/_NopWfAction.xmeta | 8 ++ .../_NopWfStepInstance.xmeta | 8 ++ pom.xml | 8 +- 325 files changed, 939 insertions(+), 606 deletions(-) create mode 100644 nop-wf/nop-wf-meta/_templates/_WfChangeActorRequestBean.json diff --git a/nop-api-core/pom.xml b/nop-api-core/pom.xml index 1e6c8e35a..cd773c0a5 100644 --- a/nop-api-core/pom.xml +++ b/nop-api-core/pom.xml @@ -35,6 +35,7 @@ 5.9.2 2.0.6 + VERBOSE @@ -110,10 +111,17 @@ 3.3.0 + + + org.apache.maven.plugins + maven-resources-plugin + 3.3.1 + + org.apache.maven.plugins maven-source-plugin - 3.2.1 + 3.3.0 attach-sources @@ -124,6 +132,7 @@ + \ No newline at end of file diff --git a/nop-api-core/src/main/java/io/nop/api/core/context/BaseContext.java b/nop-api-core/src/main/java/io/nop/api/core/context/BaseContext.java index cbe8bddb9..97eda1e31 100644 --- a/nop-api-core/src/main/java/io/nop/api/core/context/BaseContext.java +++ b/nop-api-core/src/main/java/io/nop/api/core/context/BaseContext.java @@ -245,7 +245,7 @@ public void close() { IContext context = BaseContextProvider.contextHolder().get(); if (context == this) { - BaseContextProvider.contextHolder().remove(); + BaseContextProvider.clear(); } this.closed = true; this.attributes.clear(); diff --git a/nop-api-core/src/main/java/io/nop/api/core/context/BaseContextProvider.java b/nop-api-core/src/main/java/io/nop/api/core/context/BaseContextProvider.java index 8ae72ace3..95bf7e988 100644 --- a/nop-api-core/src/main/java/io/nop/api/core/context/BaseContextProvider.java +++ b/nop-api-core/src/main/java/io/nop/api/core/context/BaseContextProvider.java @@ -19,6 +19,10 @@ public IContext currentContext() { return t_context.get(); } + public static void clear(){ + t_context.remove(); + } + @Override public IContext getOrCreateContext() { IContext context = t_context.get(); diff --git a/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_ActionAuthModel.java b/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_ActionAuthModel.java index a7cfbef7a..936fc5288 100644 --- a/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_ActionAuthModel.java +++ b/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_ActionAuthModel.java @@ -120,6 +120,7 @@ public boolean hasSites(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -133,6 +134,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_AuthRoleModel.java b/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_AuthRoleModel.java index 899cd4da6..1ad6a79d5 100644 --- a/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_AuthRoleModel.java +++ b/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_AuthRoleModel.java @@ -119,6 +119,7 @@ public void setPrimary(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_DataAuthModel.java b/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_DataAuthModel.java index affce795f..7f1497fa0 100644 --- a/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_DataAuthModel.java +++ b/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_DataAuthModel.java @@ -67,6 +67,7 @@ public boolean hasObjs(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -78,6 +79,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_ObjDataAuthModel.java b/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_ObjDataAuthModel.java index 0533e0763..9dc7e4104 100644 --- a/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_ObjDataAuthModel.java +++ b/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_ObjDataAuthModel.java @@ -119,6 +119,7 @@ public boolean hasRoleAuths(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -130,6 +131,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_RoleDataAuthModel.java b/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_RoleDataAuthModel.java index 40554b217..7b1e0eb49 100644 --- a/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_RoleDataAuthModel.java +++ b/nop-auth/nop-auth-core/src/main/java/io/nop/auth/core/model/_gen/_RoleDataAuthModel.java @@ -147,6 +147,7 @@ public void setRoleId(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -156,6 +157,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-auth/nop-auth-service/src/main/java/io/nop/auth/service/login/LoginServiceImpl.java b/nop-auth/nop-auth-service/src/main/java/io/nop/auth/service/login/LoginServiceImpl.java index 5d8969e44..2ffe59dd7 100644 --- a/nop-auth/nop-auth-service/src/main/java/io/nop/auth/service/login/LoginServiceImpl.java +++ b/nop-auth/nop-auth-service/src/main/java/io/nop/auth/service/login/LoginServiceImpl.java @@ -153,9 +153,7 @@ public CompletionStage loginAsync(LoginRequest request, Map loginAsync(LoginRequest request, Map currentKeys = new ConcurrentHashMap<>(); + private volatile ConcurrentHashMap currentKeys = new ConcurrentHashMap<>(); private volatile long lastRequestTime = 0; diff --git a/nop-autotest/nop-autotest-junit/src/main/java/io/nop/autotest/junit/JunitAutoTestCase.java b/nop-autotest/nop-autotest-junit/src/main/java/io/nop/autotest/junit/JunitAutoTestCase.java index 5b178b4a1..c3bdd5f34 100644 --- a/nop-autotest/nop-autotest-junit/src/main/java/io/nop/autotest/junit/JunitAutoTestCase.java +++ b/nop-autotest/nop-autotest-junit/src/main/java/io/nop/autotest/junit/JunitAutoTestCase.java @@ -65,10 +65,11 @@ public void destroy(ExtensionContext ctx) { } protected void configExecutionMode(TestInfo testInfo) { - if (testInfo.getTestMethod().isEmpty()) + Method method = testInfo.getTestMethod().orElse(null); + if (method == null) return; - EnableSnapshot enableSnapshot = testInfo.getTestMethod().get().getAnnotation(EnableSnapshot.class); + EnableSnapshot enableSnapshot = method.getAnnotation(EnableSnapshot.class); if (enableSnapshot != null && !CFG_AUTOTEST_DISABLE_SNAPSHOT.get()) { setCheckOutput(enableSnapshot.checkOutput()); setLocalDb(enableSnapshot.localDb()); @@ -101,8 +102,11 @@ protected void configExecutionMode(TestInfo testInfo) { } protected String getCaseDataPath(TestInfo testInfo) { - Guard.checkArgument(testInfo.getTestMethod().isPresent()); - return AutoTestDataHelper.getTestDataPath(testInfo.getTestClass().get(), testInfo.getTestMethod().get()); + Class testClass = testInfo.getTestClass().orElse(null); + Method testMethod = testInfo.getTestMethod().orElse(null); + if(testClass == null || testMethod == null) + throw new IllegalArgumentException("null test info"); + return AutoTestDataHelper.getTestDataPath(testClass, testMethod); } protected void checkEquals(ErrorCode errorCode, String fileName, Object expected, Object value) { diff --git a/nop-autotest/nop-autotest-junit/src/main/java/io/nop/autotest/junit/VariantsArgumentProvider.java b/nop-autotest/nop-autotest-junit/src/main/java/io/nop/autotest/junit/VariantsArgumentProvider.java index 6fe94b9cc..b3cbd17f1 100644 --- a/nop-autotest/nop-autotest-junit/src/main/java/io/nop/autotest/junit/VariantsArgumentProvider.java +++ b/nop-autotest/nop-autotest-junit/src/main/java/io/nop/autotest/junit/VariantsArgumentProvider.java @@ -33,11 +33,12 @@ public void accept(EnableVariants enableVariants) { @Override public Stream provideArguments(ExtensionContext context) { - Guard.checkArgument(context.getTestClass().isPresent()); - Guard.checkArgument(context.getTestMethod().isPresent()); - Class testClass = context.getTestClass().get(); - Method testMethod = context.getTestMethod().get(); + Class testClass = context.getTestClass().orElse(null); + Method testMethod = context.getTestMethod().orElse(null); + + if(testClass == null || testMethod == null) + throw new IllegalArgumentException("null test info"); String dataDir = AutoTestDataHelper.getTestDataPath(testClass, testMethod); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizActionArgModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizActionArgModel.java index 30a312973..d48edada3 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizActionArgModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizActionArgModel.java @@ -225,6 +225,7 @@ public void setType(io.nop.core.type.IGenericType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -236,6 +237,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizActionModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizActionModel.java index 7470ad012..3bfaaaff3 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizActionModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizActionModel.java @@ -509,6 +509,7 @@ public void setType(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -534,6 +535,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizCacheEvictModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizCacheEvictModel.java index 89bae5cf9..becfce1bb 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizCacheEvictModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizCacheEvictModel.java @@ -67,6 +67,7 @@ public void setCacheName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizCacheModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizCacheModel.java index 1c2b7704a..1ace8f8b2 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizCacheModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizCacheModel.java @@ -67,6 +67,7 @@ public void setCacheName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizLoaderModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizLoaderModel.java index ef97091ed..9b747f44e 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizLoaderModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizLoaderModel.java @@ -197,6 +197,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -212,6 +213,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizMakerCheckerModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizMakerCheckerModel.java index 0107febed..a4029160c 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizMakerCheckerModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizMakerCheckerModel.java @@ -67,6 +67,7 @@ public void setTryMethod(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizModel.java index 0ef6a6cd9..9c8a5dff9 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizModel.java @@ -301,6 +301,7 @@ public void setWfName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -318,6 +319,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizObserveModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizObserveModel.java index 0270d11e4..783ca2f8a 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizObserveModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizObserveModel.java @@ -119,6 +119,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizReturnModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizReturnModel.java index 9cedde3d5..7908a345b 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizReturnModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizReturnModel.java @@ -121,6 +121,7 @@ public void setType(io.nop.core.type.IGenericType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -132,6 +133,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizTccModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizTccModel.java index da114952f..5e624d01f 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizTccModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizTccModel.java @@ -67,6 +67,7 @@ public void setConfirmMethod(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizTxnModel.java b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizTxnModel.java index df704e79c..ba1e4b37f 100644 --- a/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizTxnModel.java +++ b/nop-biz/src/main/java/io/nop/biz/model/_gen/_BizTxnModel.java @@ -93,6 +93,7 @@ public void setTxnGroup(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-codegen/src/main/resources/_vfs/nop/templates/xdsl/src/main/java/{objMeta.packagePath}/_gen/_{objSchema.simpleClassName}.java.xgen b/nop-codegen/src/main/resources/_vfs/nop/templates/xdsl/src/main/java/{objMeta.packagePath}/_gen/_{objSchema.simpleClassName}.java.xgen index 799d4ff99..124ed5594 100644 --- a/nop-codegen/src/main/resources/_vfs/nop/templates/xdsl/src/main/java/{objMeta.packagePath}/_gen/_{objSchema.simpleClassName}.java.xgen +++ b/nop-codegen/src/main/resources/_vfs/nop/templates/xdsl/src/main/java/{objMeta.packagePath}/_gen/_{objSchema.simpleClassName}.java.xgen @@ -117,6 +117,7 @@ public abstract class _${objSchema.simpleClassName} extends ${baseClass} ${implI + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -131,6 +132,7 @@ public abstract class _${objSchema.simpleClassName} extends ${baseClass} ${implI } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-commons/src/main/java/io/nop/commons/collections/IntHashMap.java b/nop-commons/src/main/java/io/nop/commons/collections/IntHashMap.java index e19db5043..e7660e811 100644 --- a/nop-commons/src/main/java/io/nop/commons/collections/IntHashMap.java +++ b/nop-commons/src/main/java/io/nop/commons/collections/IntHashMap.java @@ -229,8 +229,11 @@ public V put(int key, V value) { } public void putAll(IntHashMap map) { - for (Entry entry : map.entries()) + Iterator> it = map.entries(); + while(it.hasNext()) { + Entry entry = it.next(); put(entry.key, entry.value); + } } /** @@ -1030,7 +1033,7 @@ protected void findNextIndex() { } } - static public class Entries extends MapIterator implements Iterable>, Iterator> { + static public class Entries extends MapIterator implements Iterator> { private Entry entry = new Entry(); public Entries(IntHashMap map, boolean reset) { @@ -1064,9 +1067,6 @@ public boolean hasNext() { return hasNext; } - public Iterator> iterator() { - return this; - } } static public class Values extends MapIterator implements Iterator { diff --git a/nop-commons/src/main/java/io/nop/commons/collections/merge/SortedIteratorMergerWithLimit.java b/nop-commons/src/main/java/io/nop/commons/collections/merge/SortedIteratorMergerWithLimit.java index 5e89ebbf8..1fe2d0653 100644 --- a/nop-commons/src/main/java/io/nop/commons/collections/merge/SortedIteratorMergerWithLimit.java +++ b/nop-commons/src/main/java/io/nop/commons/collections/merge/SortedIteratorMergerWithLimit.java @@ -21,6 +21,7 @@ import java.util.Comparator; import java.util.Iterator; +import java.util.NoSuchElementException; import java.util.PriorityQueue; // Copied From Apache Kylin @@ -108,7 +109,7 @@ public boolean hasNext() { @Override public E next() { if (!nextFetched) { - throw new IllegalStateException("Should hasNext() before next()"); + throw new NoSuchElementException("Should hasNext() before next()"); } // if (last != null) { diff --git a/nop-commons/src/main/java/io/nop/commons/concurrent/RoundRobinSupplier.java b/nop-commons/src/main/java/io/nop/commons/concurrent/RoundRobinSupplier.java index f2d4d7129..161affd8a 100644 --- a/nop-commons/src/main/java/io/nop/commons/concurrent/RoundRobinSupplier.java +++ b/nop-commons/src/main/java/io/nop/commons/concurrent/RoundRobinSupplier.java @@ -21,7 +21,7 @@ public class RoundRobinSupplier implements AutoCloseable, Supplier { private final Supplier factory; - private volatile AtomicReferenceArray objects; + private volatile AtomicReferenceArray objects; //NOSONAR private final AtomicInteger nextIndex = new AtomicInteger(); public RoundRobinSupplier(Supplier factory, int size) { @@ -44,34 +44,42 @@ public T get() { return objects.get(index); } - public synchronized void resize(int size) { + public void resize(int size) { Guard.positiveInt(size, "cache size"); - AtomicReferenceArray objects = this.objects; - if (objects.length() > size) { - AtomicReferenceArray array = new AtomicReferenceArray<>(size); - for (int i = 0; i < size; i++) { - array.set(i, objects.get(i)); - } - // 缩小 - this.objects = array; - closeNext(objects, size); - } else if (objects.length() < size) { - // 扩大 - AtomicReferenceArray newObjects = new AtomicReferenceArray<>(size); - try { - for (int i = 0; i < objects.length(); i++) { - newObjects.set(i, objects.get(i)); - } + AtomicReferenceArray toClose = null; + try { + synchronized (this) { + AtomicReferenceArray objects = this.objects; + if (objects.length() > size) { + AtomicReferenceArray array = new AtomicReferenceArray<>(size); + for (int i = 0; i < size; i++) { + array.set(i, objects.get(i)); + } + // 缩小 + this.objects = array; + toClose = objects; + } else if (objects.length() < size) { + // 扩大 + AtomicReferenceArray newObjects = new AtomicReferenceArray<>(size); + try { + for (int i = 0; i < objects.length(); i++) { + newObjects.set(i, objects.get(i)); + } - for (int i = objects.length(); i < size; i++) { - newObjects.set(i, factory.get()); + for (int i = objects.length(); i < size; i++) { + newObjects.set(i, factory.get()); + } + } catch (Exception e) { + toClose = newObjects; + throw NopException.adapt(e); + } + this.objects = newObjects; } - } catch (Exception e) { - closeNext(newObjects, size); - throw NopException.adapt(e); } - this.objects = newObjects; + } finally { + if (toClose != null) + closeNext(toClose, size); } } diff --git a/nop-commons/src/main/java/io/nop/commons/concurrent/batch/BlockingSourceConsumeTask.java b/nop-commons/src/main/java/io/nop/commons/concurrent/batch/BlockingSourceConsumeTask.java index af51daf03..7db967bf4 100644 --- a/nop-commons/src/main/java/io/nop/commons/concurrent/batch/BlockingSourceConsumeTask.java +++ b/nop-commons/src/main/java/io/nop/commons/concurrent/batch/BlockingSourceConsumeTask.java @@ -52,6 +52,7 @@ public void run() { try { source.drainTo(items, batchSize, config.getMinWaitMillis(), config.getMaxWaitMillis()); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); throw NopException.adapt(e); } diff --git a/nop-commons/src/main/java/io/nop/commons/concurrent/executor/StandardThreadPoolExecutor.java b/nop-commons/src/main/java/io/nop/commons/concurrent/executor/StandardThreadPoolExecutor.java index 5844650ec..d87b41a01 100644 --- a/nop-commons/src/main/java/io/nop/commons/concurrent/executor/StandardThreadPoolExecutor.java +++ b/nop-commons/src/main/java/io/nop/commons/concurrent/executor/StandardThreadPoolExecutor.java @@ -19,11 +19,7 @@ import io.nop.commons.CommonConstants; import io.nop.commons.concurrent.thread.NopThread; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.RejectedExecutionException; -import java.util.concurrent.RejectedExecutionHandler; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; @@ -166,6 +162,7 @@ public void execute(Runnable command, long timeout, TimeUnit unit) { throw new RejectedExecutionException("nop.err.thread-pool-executor.queue-full"); } } catch (InterruptedException x) { + Thread.currentThread().interrupt(); submittedCount.decrementAndGet(); throw new RejectedExecutionException(x); } @@ -192,7 +189,7 @@ public void contextStopping() { } // setCorePoolSize(0) wakes idle threads - this.setCorePoolSize(0); + this.setCorePoolSize(0); //NOSONAR // TaskQueue.take() takes care of timing out, so that we are sure that // all threads of the pool are renewed in a limited time, something like diff --git a/nop-commons/src/main/java/io/nop/commons/concurrent/executor/TaskQueue.java b/nop-commons/src/main/java/io/nop/commons/concurrent/executor/TaskQueue.java index 65033b003..74ed32f88 100644 --- a/nop-commons/src/main/java/io/nop/commons/concurrent/executor/TaskQueue.java +++ b/nop-commons/src/main/java/io/nop/commons/concurrent/executor/TaskQueue.java @@ -30,7 +30,7 @@ class TaskQueue extends LinkedBlockingQueue { private static final long serialVersionUID = 1L; - private transient volatile StandardThreadPoolExecutor parent = null; + private transient volatile StandardThreadPoolExecutor parent = null; //NOSONAR // No need to be volatile. This is written and read in a single thread // (when stopping a context and firing the listeners) @@ -48,7 +48,7 @@ public TaskQueue(Collection c) { super(c); } - public void setParent(StandardThreadPoolExecutor tp) { + public synchronized void setParent(StandardThreadPoolExecutor tp) { parent = tp; } diff --git a/nop-commons/src/main/java/io/nop/commons/concurrent/lock/LocalFileLock.java b/nop-commons/src/main/java/io/nop/commons/concurrent/lock/LocalFileLock.java index 61ccbf6b1..c01f8e245 100644 --- a/nop-commons/src/main/java/io/nop/commons/concurrent/lock/LocalFileLock.java +++ b/nop-commons/src/main/java/io/nop/commons/concurrent/lock/LocalFileLock.java @@ -19,10 +19,7 @@ import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; -import static io.nop.commons.CommonErrors.ARG_PATH; -import static io.nop.commons.CommonErrors.ARG_WAIT_TIME; -import static io.nop.commons.CommonErrors.ERR_FILE_ACQUIRE_LOCK_FAIL; -import static io.nop.commons.CommonErrors.ERR_FILE_ACQUIRE_LOCK_TIMEOUT; +import static io.nop.commons.CommonErrors.*; public class LocalFileLock implements Lock { @@ -54,18 +51,22 @@ private boolean tryLock(long timeoutMs, boolean interruptable) throws Interrupte channel = randomAccessFile.getChannel(); lock = channel.tryLock(); + if(timeoutMs <= 0) + break; + if (lock == null) { IoHelper.safeCloseObject(channel); IoHelper.safeCloseObject(randomAccessFile); try { Thread.sleep(pollIntervalMs); - } catch (InterruptedException e) { + } catch (InterruptedException e) { //NOSONAR if (interruptable) throw e; } } } while (lock == null && !CoreMetrics.isExpiredNanos(expireNanos)); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); throw e; } catch (Exception e) { throw new NopException(ERR_FILE_ACQUIRE_LOCK_FAIL, e).param(ARG_WAIT_TIME, timeoutMs).param(ARG_PATH, @@ -82,6 +83,7 @@ public void lock() { if (!result) throw new NopException(ERR_FILE_ACQUIRE_LOCK_TIMEOUT).param(ARG_PATH, lockFile.getAbsolutePath()); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); throw new NopException(ERR_FILE_ACQUIRE_LOCK_FAIL, e).param(ARG_PATH, lockFile.getAbsolutePath()); } } @@ -97,7 +99,7 @@ public void lockInterruptibly() throws InterruptedException { public boolean tryLock() { try { return tryLock(0, false); - } catch (InterruptedException e) { + } catch (InterruptedException e) { //NOSONAR return false; } } diff --git a/nop-commons/src/main/java/io/nop/commons/concurrent/lock/impl/LocalResourceLockManager.java b/nop-commons/src/main/java/io/nop/commons/concurrent/lock/impl/LocalResourceLockManager.java index bcbd9225f..323d5a641 100644 --- a/nop-commons/src/main/java/io/nop/commons/concurrent/lock/impl/LocalResourceLockManager.java +++ b/nop-commons/src/main/java/io/nop/commons/concurrent/lock/impl/LocalResourceLockManager.java @@ -7,6 +7,7 @@ */ package io.nop.commons.concurrent.lock.impl; +import io.nop.api.core.exceptions.NopException; import io.nop.api.core.time.CoreMetrics; import io.nop.api.core.util.Guard; import io.nop.commons.concurrent.executor.GlobalExecutors; @@ -14,18 +15,14 @@ import io.nop.commons.concurrent.lock.IResourceLock; import io.nop.commons.concurrent.lock.IResourceLockManager; import io.nop.commons.concurrent.lock.IResourceLockState; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import jakarta.annotation.Nonnull; import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.sql.Timestamp; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.*; public class LocalResourceLockManager implements IResourceLockManager, IResourceLockManagerImplementor { static final Logger LOG = LoggerFactory.getLogger(LocalResourceLockManager.class); @@ -170,9 +167,13 @@ public IResourceLockState tryLockWithLease(String resourceId, String lockerId, l existingLock, waitTime - usedTime); try { - existingLock.getLatch().await(waitTime - usedTime, TimeUnit.MILLISECONDS); + boolean b = existingLock.getLatch().await(waitTime - usedTime, TimeUnit.MILLISECONDS); + if (!b) { + LOG.debug("nop.lock.await-timeout"); + } } catch (InterruptedException e) { - return null; + Thread.currentThread().interrupt(); + throw NopException.adapt(e); } } while (true); } diff --git a/nop-commons/src/main/java/io/nop/commons/concurrent/thread/ThreadHelper.java b/nop-commons/src/main/java/io/nop/commons/concurrent/thread/ThreadHelper.java index cf4fb6808..09f3bc59e 100644 --- a/nop-commons/src/main/java/io/nop/commons/concurrent/thread/ThreadHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/concurrent/thread/ThreadHelper.java @@ -75,10 +75,13 @@ public static boolean shutdownAndAwaitTermination(ExecutorService service, long return service.isTerminated(); } - public static void sleep(long time) { + public static boolean sleep(long time) { try { Thread.sleep(time); + return true; } catch (InterruptedException e) { //NOPMD + Thread.currentThread().interrupt(); + return false; } } } \ No newline at end of file diff --git a/nop-commons/src/main/java/io/nop/commons/crypto/HashHelper.java b/nop-commons/src/main/java/io/nop/commons/crypto/HashHelper.java index 21a109ee2..e1d2a86e4 100644 --- a/nop-commons/src/main/java/io/nop/commons/crypto/HashHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/crypto/HashHelper.java @@ -57,6 +57,13 @@ protected MessageDigest initialValue() { // private static final ThreadLocal HMAC_SHA_256 = createThreadLocalMac("HmacSHA256"); + public static void clear(){ + MD5_DIGEST.remove(); + SHA_1_DIGEST.remove(); + SHA_256_DIGEST.remove(); + SHA_512_DIGEST.remove(); + } + /** * 对输入字符串进行sha1散列,带salt达到更高的安全性. */ diff --git a/nop-commons/src/main/java/io/nop/commons/io/net/NetAddress.java b/nop-commons/src/main/java/io/nop/commons/io/net/NetAddress.java index 78c4c4175..ecc841181 100644 --- a/nop-commons/src/main/java/io/nop/commons/io/net/NetAddress.java +++ b/nop-commons/src/main/java/io/nop/commons/io/net/NetAddress.java @@ -42,7 +42,7 @@ public class NetAddress implements Serializable { */ private final int port; - private transient volatile InetSocketAddress addr; + private transient volatile InetSocketAddress addr; //NOSONAR public NetAddress(String host, int port) { this.host = host; @@ -135,17 +135,19 @@ public int hashCode() { public InetSocketAddress resolve() { if (addr != null) return addr; - if (host == null || host.isEmpty()) { - addr = new InetSocketAddress(port); - } else { - try { - InetAddress netAddr = DnsResolver.instance().resolve(host); - addr = new InetSocketAddress(netAddr, port); - } catch (Exception e) { - throw new NopException(ERR_NET_UNKNOWN_HOST, e).param(ARG_HOST, host); + synchronized (this) { + if (host == null || host.isEmpty()) { + addr = new InetSocketAddress(port); + } else { + try { + InetAddress netAddr = DnsResolver.instance().resolve(host); + addr = new InetSocketAddress(netAddr, port); + } catch (Exception e) { + throw new NopException(ERR_NET_UNKNOWN_HOST, e).param(ARG_HOST, host); + } } + return addr; } - return addr; } /** @@ -161,7 +163,7 @@ public InetSocketAddress resolve() { public static NetAddress fromString(String hostPortString) { Guard.notNull(hostPortString, "net.err_null_hostPort_string"); String host; - String portString = null; + String portString = ""; if (hostPortString.startsWith("[")) { String[] hostAndPort = getHostAndPortFromBracketedHost(hostPortString); diff --git a/nop-commons/src/main/java/io/nop/commons/io/stream/ByteBufferOutputStream.java b/nop-commons/src/main/java/io/nop/commons/io/stream/ByteBufferOutputStream.java index dd66f20db..76e6800cb 100644 --- a/nop-commons/src/main/java/io/nop/commons/io/stream/ByteBufferOutputStream.java +++ b/nop-commons/src/main/java/io/nop/commons/io/stream/ByteBufferOutputStream.java @@ -112,7 +112,8 @@ public void write(int b) throws IOException { * @throws IOException if an I/O error occurs. */ public void writeTo(OutputStream out) throws IOException { - WritableByteChannel channel = Channels.newChannel(out); + // 无需关闭channel,否则会自动关闭内部的OutputStream + WritableByteChannel channel = Channels.newChannel(out); //NOSONAR ByteBuffer bb = buf.duplicate(); bb.flip(); channel.write(bb); diff --git a/nop-commons/src/main/java/io/nop/commons/io/stream/ByteQueue.java b/nop-commons/src/main/java/io/nop/commons/io/stream/ByteQueue.java index 40978cdc7..39ae72d98 100644 --- a/nop-commons/src/main/java/io/nop/commons/io/stream/ByteQueue.java +++ b/nop-commons/src/main/java/io/nop/commons/io/stream/ByteQueue.java @@ -17,6 +17,8 @@ */ package io.nop.commons.io.stream; +import io.nop.commons.util.IoHelper; + import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; @@ -295,6 +297,9 @@ public String readToString(Charset charset) { } while (true); } catch (IOException e) { // NOPMD // ignore error + }finally { + IoHelper.safeCloseObject(reader); + IoHelper.safeCloseObject(in); } return sb.toString(); } diff --git a/nop-commons/src/main/java/io/nop/commons/io/stream/ChannelInputStream.java b/nop-commons/src/main/java/io/nop/commons/io/stream/ChannelInputStream.java index 401dfd0c5..fc7e94a05 100644 --- a/nop-commons/src/main/java/io/nop/commons/io/stream/ChannelInputStream.java +++ b/nop-commons/src/main/java/io/nop/commons/io/stream/ChannelInputStream.java @@ -50,7 +50,7 @@ public int read() throws IOException { if (n <= 0) return -1; buf.position(0); - return buf.get(); + return buf.get() & 0xFF; } /** diff --git a/nop-commons/src/main/java/io/nop/commons/io/stream/FileRandomOutputStream.java b/nop-commons/src/main/java/io/nop/commons/io/stream/FileRandomOutputStream.java index 7d6a0ed78..75957a1ac 100644 --- a/nop-commons/src/main/java/io/nop/commons/io/stream/FileRandomOutputStream.java +++ b/nop-commons/src/main/java/io/nop/commons/io/stream/FileRandomOutputStream.java @@ -91,6 +91,8 @@ public boolean lock() throws IOException { try { Thread.sleep(LOCK_SLEEP_TIME); } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + throw NopException.adapt(e); } } catch (Exception e) { throw NopException.adapt(e); diff --git a/nop-commons/src/main/java/io/nop/commons/text/tokenizer/SimpleTextTokenizer.java b/nop-commons/src/main/java/io/nop/commons/text/tokenizer/SimpleTextTokenizer.java index 4eeeaa1fe..71046a8bc 100644 --- a/nop-commons/src/main/java/io/nop/commons/text/tokenizer/SimpleTextTokenizer.java +++ b/nop-commons/src/main/java/io/nop/commons/text/tokenizer/SimpleTextTokenizer.java @@ -11,6 +11,7 @@ import io.nop.commons.text.MutableString; import java.util.Iterator; +import java.util.NoSuchElementException; public class SimpleTextTokenizer implements ITextTokenizer { public static SimpleTextTokenizer INSTANCE = new SimpleTextTokenizer(); @@ -26,6 +27,9 @@ public boolean hasNext() { @Override public IToken next() { + if (!hasNext()) + throw new NoSuchElementException(); + SourceLocation loc = sc.location(); if (Character.isJavaIdentifierStart(sc.cur)) { String text = sc.nextJavaVar(); diff --git a/nop-commons/src/main/java/io/nop/commons/text/tokenizer/TextScanner.java b/nop-commons/src/main/java/io/nop/commons/text/tokenizer/TextScanner.java index b1b5b3293..b9e708a0d 100644 --- a/nop-commons/src/main/java/io/nop/commons/text/tokenizer/TextScanner.java +++ b/nop-commons/src/main/java/io/nop/commons/text/tokenizer/TextScanner.java @@ -20,38 +20,7 @@ import java.util.function.Predicate; import static io.nop.api.core.ApiErrors.ARG_VALUE; -import static io.nop.commons.CommonErrors.ARG_CUR; -import static io.nop.commons.CommonErrors.ARG_EOF; -import static io.nop.commons.CommonErrors.ARG_EXPECTED; -import static io.nop.commons.CommonErrors.ARG_POS; -import static io.nop.commons.CommonErrors.ARG_READER_STATE; -import static io.nop.commons.CommonErrors.ARG_START_LOC; -import static io.nop.commons.CommonErrors.ERR_SCAN_BLANK_EXPECTED; -import static io.nop.commons.CommonErrors.ERR_SCAN_COMMENT_UNEXPECTED_EOF; -import static io.nop.commons.CommonErrors.ERR_SCAN_ILLEGAL_ESCAPE_CHAR; -import static io.nop.commons.CommonErrors.ERR_SCAN_INVALID_CHAR; -import static io.nop.commons.CommonErrors.ERR_SCAN_INVALID_DOUBLE_STRING; -import static io.nop.commons.CommonErrors.ERR_SCAN_INVALID_ESCAPE_UNICODE; -import static io.nop.commons.CommonErrors.ERR_SCAN_INVALID_FLOAT_STRING; -import static io.nop.commons.CommonErrors.ERR_SCAN_INVALID_HEX_INT_STRING; -import static io.nop.commons.CommonErrors.ERR_SCAN_INVALID_LONG_STRING; -import static io.nop.commons.CommonErrors.ERR_SCAN_INVALID_NUMBER_STRING; -import static io.nop.commons.CommonErrors.ERR_SCAN_INVALID_PROP_PATH; -import static io.nop.commons.CommonErrors.ERR_SCAN_INVALID_VAR; -import static io.nop.commons.CommonErrors.ERR_SCAN_INVALID_XML_NAME; -import static io.nop.commons.CommonErrors.ERR_SCAN_NEXT_UNTIL_UNEXPECTED_EOF; -import static io.nop.commons.CommonErrors.ERR_SCAN_NOT_ALLOW_TWO_SEPARATOR_IN_XML_NAME; -import static io.nop.commons.CommonErrors.ERR_SCAN_NOT_DIGIT; -import static io.nop.commons.CommonErrors.ERR_SCAN_NOT_END_PROPERLY; -import static io.nop.commons.CommonErrors.ERR_SCAN_NOT_HEX_CHAR; -import static io.nop.commons.CommonErrors.ERR_SCAN_NUMBER_NOT_INT; -import static io.nop.commons.CommonErrors.ERR_SCAN_STRING_NOT_END; -import static io.nop.commons.CommonErrors.ERR_SCAN_TOKEN_END_EXPECTED; -import static io.nop.commons.CommonErrors.ERR_SCAN_UNEXPECTED_CHAR; -import static io.nop.commons.CommonErrors.ERR_SCAN_UNEXPECTED_STR; -import static io.nop.commons.CommonErrors.ERR_SCAN_UNEXPECTED_TOKEN; -import static io.nop.commons.CommonErrors.ERR_TEXT_ILLEGAL_HEX_STRING; -import static io.nop.commons.CommonErrors.ERR_TEXT_NUMBER_STARTS_WITH_ZERO; +import static io.nop.commons.CommonErrors.*; import static io.nop.commons.util.StringHelper.isGraphQLNamePart; import static io.nop.commons.util.StringHelper.isGraphQLNameStart; @@ -989,7 +958,8 @@ public void nextDoubleEscapeString(char escapeChar, IntConsumer consumer) { throw newError(ERR_SCAN_STRING_NOT_END).param(ARG_START_LOC, loc); if (cur == escapeChar) { if (peek() == escapeChar) { - consumer.accept(escapeChar); + if (consumer != null) + consumer.accept(escapeChar); next(); next(); continue; diff --git a/nop-commons/src/main/java/io/nop/commons/util/ArrayHelper.java b/nop-commons/src/main/java/io/nop/commons/util/ArrayHelper.java index 7ff32d678..53ab5bc5d 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/ArrayHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/util/ArrayHelper.java @@ -45,7 +45,7 @@ public static T[] assign(@Nonnull T[] array, int i, T o) { return array; } - public static T[] assign(@Nonnull T[] array, int i, T o, Class componentType) { + public static T[] assign(T[] array, int i, T o, Class componentType) { if (array == null) { Class type = componentType == null ? o.getClass() : componentType; array = (T[]) Array.newInstance(type, i + 1); diff --git a/nop-commons/src/main/java/io/nop/commons/util/ClassHelper.java b/nop-commons/src/main/java/io/nop/commons/util/ClassHelper.java index f2dcb17bb..a87ff090a 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/ClassHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/util/ClassHelper.java @@ -29,37 +29,15 @@ import java.io.IOException; import java.lang.annotation.Annotation; -import java.lang.reflect.Array; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; +import java.lang.reflect.*; import java.net.URL; import java.net.URLClassLoader; import java.net.URLDecoder; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.SortedMap; -import java.util.SortedSet; -import java.util.TreeMap; -import java.util.TreeSet; +import java.util.*; import static io.nop.api.core.ApiErrors.ARG_CLASS_NAME; import static io.nop.api.core.ApiErrors.ARG_EXPECTED_TYPE; -import static io.nop.commons.CommonErrors.ARG_CLASS; -import static io.nop.commons.CommonErrors.ERR_LOAD_CLASS_NOT_EXPECTED_TYPE; -import static io.nop.commons.CommonErrors.ERR_REFLECT_NEW_INSTANCE_FAIL; +import static io.nop.commons.CommonErrors.*; @NoReflection @@ -349,7 +327,7 @@ public static Class forName(String name, ClassLoader classLoader) throws Clas try { return (clToUse != null ? clToUse.loadClass(name) : Class.forName(name)); } catch (ClassNotFoundException ex) { - LOG.debug("nop.class-not-found:class={},classLoader={}",name,clToUse); + LOG.debug("nop.class-not-found:class={},classLoader={}", name, clToUse); int lastDotIndex = name.lastIndexOf(PACKAGE_SEPARATOR); if (lastDotIndex != -1) { String innerClassName = name.substring(0, lastDotIndex) + INNER_CLASS_SEPARATOR @@ -749,7 +727,7 @@ public static String getCanonicalClassName(Class clazz) { return clazz == null ? null : clazz.getCanonicalName(); } - static Optional> _vertxDataObject = null; + private static Class _vertxDataObject = null; public static boolean isVertxDataObject(Class clazz) { if (_vertxDataObject == null) { @@ -757,11 +735,15 @@ public static boolean isVertxDataObject(Class clazz) { try { dataObject = (Class) getSafeClassLoader().loadClass("io.vertx.codegen.annotations.DataObject"); } catch (Exception e) { + LOG.trace("nop.commons.not-find-vertx-data-object"); + } + _vertxDataObject = dataObject; + if (dataObject == null) { + _vertxDataObject = DataBean.class; } - _vertxDataObject = Optional.ofNullable(dataObject); } - if (_vertxDataObject.isPresent()) { - return clazz.getAnnotation(_vertxDataObject.get()) != null; + if (_vertxDataObject != DataBean.class) { + return clazz.getAnnotation(_vertxDataObject) != null; } else { return false; } diff --git a/nop-commons/src/main/java/io/nop/commons/util/DateHelper.java b/nop-commons/src/main/java/io/nop/commons/util/DateHelper.java index 9fd5f2794..f889462a3 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/DateHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/util/DateHelper.java @@ -11,24 +11,10 @@ import java.sql.Timestamp; import java.text.SimpleDateFormat; -import java.time.DayOfWeek; -import java.time.Duration; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.MonthDay; -import java.time.Period; -import java.time.ZoneId; -import java.time.ZoneOffset; -import java.time.ZonedDateTime; +import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; -import java.util.TimeZone; +import java.util.*; /** * 获得本月的天数 localDate.lengthOfMonth() 获得本年的天数 localDate.lengthOfYear() 判断是否闰年 localDate.isLeapYear() @@ -176,11 +162,9 @@ public static long getMonthEndTs(long ts) { public static long getMonthEndWithTimeZoneTs(TimeZone timeZone, long ts) { Calendar calendar = Calendar.getInstance(timeZone, Locale.ROOT); - calendar.setTimeInMillis(ts); - calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONDAY), calendar.get(Calendar.DAY_OF_MONTH), 0, - 0, 0); + calendar.setTimeInMillis(getDayStartWithTimeZoneTs(timeZone, ts)); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); - calendar.set(Calendar.HOUR_OF_DAY, 24); + calendar.set(Calendar.HOUR_OF_DAY, 24); //NOSONAR return calendar.getTimeInMillis(); } @@ -347,7 +331,7 @@ public static LocalDate toDayOfWeek(LocalDate date, int dayOfWeek) { if (dayOfWeek <= 0 || dayOfWeek > 7) throw new IllegalArgumentException("invalid dayOfWeek:" + dayOfWeek); - return date.plusDays(-date.getDayOfWeek().getValue() + dayOfWeek); + return date.plusDays(-date.getDayOfWeek().getValue() + (long) dayOfWeek); } public static LocalDateTime toZone(LocalDateTime dateTime, ZoneId zone) { diff --git a/nop-commons/src/main/java/io/nop/commons/util/FileHelper.java b/nop-commons/src/main/java/io/nop/commons/util/FileHelper.java index 2ca657665..e75600fb4 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/FileHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/util/FileHelper.java @@ -13,34 +13,19 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.RandomAccessFile; -import java.io.Writer; +import java.io.*; import java.net.URL; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.channels.FileLock; -import java.nio.file.DirectoryNotEmptyException; -import java.nio.file.FileAlreadyExistsException; -import java.nio.file.FileVisitResult; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardCopyOption; +import java.nio.file.*; import java.nio.file.attribute.PosixFilePermission; import java.util.HashSet; import java.util.Properties; import java.util.Set; import java.util.function.Function; -import static io.nop.commons.CommonErrors.ARG_DEST; -import static io.nop.commons.CommonErrors.ARG_PATH; -import static io.nop.commons.CommonErrors.ERR_FILE_WRITE_CONFLICT; -import static io.nop.commons.CommonErrors.ERR_IO_COPY_DEST_NOT_DIRECTORY; -import static io.nop.commons.CommonErrors.ERR_IO_COPY_DEST_NOT_FILE; +import static io.nop.commons.CommonErrors.*; public class FileHelper { static final Logger LOG = LoggerFactory.getLogger(FileHelper.class); @@ -253,12 +238,12 @@ public static boolean prepareCopy(final File src, final File dest, final boolean if (overwrite) { if (Files.isSymbolicLink(dest.toPath()) && unlinkSymlinkIfOverwrite) { // unlink (a.k.a delete the symlink path) - dest.delete(); + return dest.delete(); } else if (!dest.canWrite()) { // if the file *isn't* "writable" (see javadoc of // File.canWrite() on what that means) // we delete it. - dest.delete(); + return dest.delete(); } // if dest is writable, the copy will overwrite it without // requiring a delete } else { @@ -278,7 +263,8 @@ public static void deleteAll(File file) { deleteAll(sub); } } - file.delete(); + if (!file.delete()) + LOG.error("nop.file.delete-fail:file={}", file); } public static boolean deleteIfExists(File file) throws IOException { @@ -329,13 +315,13 @@ private static Set getPermissions(int mode) { } // add others permissions if ((mode & 0x0004) > 0) { - perms.add(PosixFilePermission.OTHERS_READ); + perms.add(PosixFilePermission.OTHERS_READ); //NOSONAR } if ((mode & 0x0002) > 0) { - perms.add(PosixFilePermission.OTHERS_WRITE); + perms.add(PosixFilePermission.OTHERS_WRITE); //NOSONAR } if ((mode & 0x0001) > 0) { - perms.add(PosixFilePermission.OTHERS_EXECUTE); + perms.add(PosixFilePermission.OTHERS_EXECUTE); //NOSONAR } return perms; } @@ -350,6 +336,8 @@ public static URL toURL(File file) { public static File getAttachmentFile(Class clazz, String attachmentFileName) { File file = getClassFile(clazz); + if (file == null) + throw new IllegalStateException("null class file"); return new File(file.getParentFile(), attachmentFileName); } @@ -386,7 +374,8 @@ public static void removeChildWithPrefix(File dir, String prefix) { if (children != null) { for (File child : children) { if (child.getName().startsWith(prefix)) - child.delete(); + if (!child.delete()) + LOG.error("nop.err.file.remove-file-fail:file={}", child); } } } @@ -447,6 +436,7 @@ private static void sleep(int time) { try { Thread.sleep(time); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); LOG.warn("sleep wrong", e); } } diff --git a/nop-commons/src/main/java/io/nop/commons/util/MathHelper.java b/nop-commons/src/main/java/io/nop/commons/util/MathHelper.java index 2e464ac06..b05afb8fc 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/MathHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/util/MathHelper.java @@ -34,7 +34,6 @@ import io.nop.api.core.annotations.core.Description; import io.nop.api.core.annotations.core.Locale; import io.nop.api.core.annotations.core.NoReflection; -import io.nop.api.core.convert.ConvertHelper; import io.nop.api.core.exceptions.NopException; import io.nop.api.core.util.IWithWeight; import io.nop.commons.util.random.DefaultSecureRandom; @@ -51,14 +50,8 @@ import java.util.List; import java.util.Objects; -import static io.nop.api.core.convert.ConvertHelper.toBigDecimal; -import static io.nop.api.core.convert.ConvertHelper.toBigInteger; -import static io.nop.api.core.convert.ConvertHelper.toDouble; -import static io.nop.api.core.convert.ConvertHelper.toInt; -import static io.nop.api.core.convert.ConvertHelper.toLong; -import static io.nop.commons.CommonErrors.ARG_V1; -import static io.nop.commons.CommonErrors.ARG_V2; -import static io.nop.commons.CommonErrors.ERR_MATH_NOT_COMPARABLE; +import static io.nop.api.core.convert.ConvertHelper.*; +import static io.nop.commons.CommonErrors.*; import static io.nop.commons.util.StringHelper.isEmptyObject; /** @@ -351,13 +344,13 @@ public static long modPowerOfTwoForLong(long a, int b) { public static int compareWithConversion(Object v1, Object v2) { int result; - if (v1 == v2) { + if (Objects.equals(v1, v2)) { result = 0; } else { // null 小于所有值 - if (isEmptyObject(v1)) + if (v1 == null || isEmptyObject(v1)) return -1; - if (isEmptyObject(v2)) + if (v2 == null || isEmptyObject(v2)) return 1; int t1 = getNumericType(v1), t2 = getNumericType(v2), type = getNumericType(t1, t2); @@ -1440,7 +1433,7 @@ static int sum(List items) { /** * copy from flink MathUtils - * + *

* Pseudo-randomly maps a long (64-bit) to an integer (32-bit) using some bit-mixing for better * distribution. * diff --git a/nop-commons/src/main/java/io/nop/commons/util/MavenDirHelper.java b/nop-commons/src/main/java/io/nop/commons/util/MavenDirHelper.java index d4d611983..f6d025f82 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/MavenDirHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/util/MavenDirHelper.java @@ -31,6 +31,8 @@ public static File guessProjectDir() { public static File projectDir(Class clazz) { File dir = getClassesDir(clazz); + if (dir == null) + return null; // classes -> target -> project return dir.getParentFile().getParentFile(); } diff --git a/nop-commons/src/main/java/io/nop/commons/util/ProjectDirHelper.java b/nop-commons/src/main/java/io/nop/commons/util/ProjectDirHelper.java index 850426dfe..f1f6c3b61 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/ProjectDirHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/util/ProjectDirHelper.java @@ -72,7 +72,7 @@ public static Path getProjectDir(Path p) { } currentPath = currentPath.getParent(); } - LOG.warn("Unable to find a project directory for {}.", p.toString()); + LOG.warn("Unable to find a project directory for {}.", p); return null; } @@ -87,7 +87,7 @@ public static BuildTool findBuildTool(Path project) { } currentPath = currentPath.getParent(); } - LOG.warn("Unable to find a build tool in {} or in any parent.", project.toString()); + LOG.warn("Unable to find a build tool in {} or in any parent.", project); return null; } diff --git a/nop-commons/src/main/java/io/nop/commons/util/StringHelper.java b/nop-commons/src/main/java/io/nop/commons/util/StringHelper.java index 59c9cef0e..b3942b9b7 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/StringHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/util/StringHelper.java @@ -37,36 +37,14 @@ import java.text.NumberFormat; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.Deque; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.StringTokenizer; -import java.util.UUID; +import java.util.*; import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.regex.Pattern; import static io.nop.commons.CommonConfigs.CFG_UTILS_STRING_MAX_PAD_LEN; import static io.nop.commons.CommonConfigs.CFG_UTILS_STRING_MAX_REPEAT_LEN; -import static io.nop.commons.CommonErrors.ARG_LENGTH; -import static io.nop.commons.CommonErrors.ARG_PARAM_NAME; -import static io.nop.commons.CommonErrors.ARG_QUERY; -import static io.nop.commons.CommonErrors.ARG_STR; -import static io.nop.commons.CommonErrors.ERR_TEXT_ILLEGAL_HEX_STRING; -import static io.nop.commons.CommonErrors.ERR_TEXT_INVALID_UNICODE; -import static io.nop.commons.CommonErrors.ERR_TEXT_INVALID_UUID_RANGE; -import static io.nop.commons.CommonErrors.ERR_UTILS_DUPLICATE_PARAM_NAME_IS_NOT_ALLOWED_IN_SIMPLE_QUERY; -import static io.nop.commons.CommonErrors.ERR_UTILS_INVALID_QUOTED_STRING; +import static io.nop.commons.CommonErrors.*; /** * 所有关于String的常用帮助函数。为方便在EL表达式中调用,所有参数都允许为null。 为了与EL表达式集成,第一个参数一般情况下应该是String或者CharSequence类型。 @@ -142,8 +120,8 @@ public static String escape(CharSequence str, char[] fromChars, String[] toStrs) if (str == null || str.length() == 0 || fromChars == null || fromChars.length == 0) return str == null ? null : str.toString(); - Guard.checkArgument(toStrs != null && fromChars.length == toStrs.length, - "escape fromChars and toChars length not match"); + if (toStrs == null || fromChars.length != toStrs.length) + throw new IllegalArgumentException("escape fromChars and toChars length not match"); int sz = str.length(); StringBuilder buf = null; @@ -242,8 +220,8 @@ public static int escapeTo(CharSequence str, char[] fromChars, String[] toStrs, if (str == null || str.length() == 0 || fromChars == null || fromChars.length == 0) return 0; - Guard.checkArgument(toStrs != null && fromChars.length == toStrs.length, - "escape fromChars and toChars length not match"); + if (toStrs == null || fromChars.length != toStrs.length) + throw new IllegalArgumentException("escape fromChars and toChars length not match"); int count = 0; int sz = str.length(); @@ -722,7 +700,7 @@ public static byte[] hexToBytes(String str) { if (str == null) return null; - if (str.length() == 0) + if (str.isEmpty()) return EMPTY_BYTES; if (startsWithIgnoreCase(str, "0x")) @@ -827,8 +805,8 @@ public static String replaceChars(String str, String searchChars, String replace if (isEmpty(str) || isEmpty(searchChars)) { return str; } - Guard.checkArgument(replaceChars != null && searchChars.length() == replaceChars.length(), - "replaceChars and searchChars length not match"); + if (replaceChars == null || searchChars.length() != replaceChars.length()) + throw new IllegalArgumentException("replaceChars and searchChars length not match"); final int strLength = str.length(); StringBuilder buf = null; @@ -838,7 +816,7 @@ public static String replaceChars(String str, String searchChars, String replace if (index >= 0) { if (buf == null) { buf = new StringBuilder(strLength); - buf.append(str.substring(0, i)); + buf.append(str, 0, i); } buf.append(replaceChars.charAt(index)); } else if (buf != null) { @@ -1105,22 +1083,21 @@ public static String camelCase(String str, char separator, boolean firstUpper) { if (str == null || str.isEmpty()) return str; + str = str.toLowerCase(); if (str.indexOf(separator) < 0) { - if (firstUpper) + if (firstUpper) { return Character.toUpperCase(str.charAt(0)) + str.substring(1); + } return str; } StringBuilder sb = new StringBuilder(); boolean nextIsUpper = false; - if (str.length() > 1 && str.charAt(1) == separator) { - char c = firstUpper ? Character.toUpperCase(str.charAt(0)) : str.charAt(0); - sb.append(c); - } else { - char c = firstUpper ? Character.toUpperCase(str.charAt(0)) : str.charAt(0); - sb.append(c); - } + + char cc = firstUpper ? Character.toUpperCase(str.charAt(0)) : str.charAt(0); + sb.append(cc); + for (int i = 1, n = str.length(); i < n; i++) { char c = str.charAt(i); if (c == separator) { @@ -1391,7 +1368,10 @@ public static String sha256Hash(String str, String salt) { @Deterministic public static String hmacSha256(String str, String salt) { - return bytesToHex(HashHelper.hmacSha256(utf8Bytes(str), utf8Bytes(salt))); + byte[] bytes = utf8Bytes(str); + if (bytes == null) + return null; + return bytesToHex(HashHelper.hmacSha256(bytes, utf8Bytes(salt))); } @Deterministic @@ -2958,7 +2938,7 @@ public static int utf8Length(CharSequence str) { } @Deterministic - public static String limitUtf8Len(CharSequence str, int utfLen){ + public static String limitUtf8Len(CharSequence str, int utfLen) { return limitUtfLen(str, 0, utfLen); } diff --git a/nop-commons/src/main/java/io/nop/commons/util/URLHelper.java b/nop-commons/src/main/java/io/nop/commons/util/URLHelper.java index eeb02f06a..ff966d6e5 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/URLHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/util/URLHelper.java @@ -24,15 +24,9 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.net.HttpURLConnection; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLConnection; +import java.net.*; -import static io.nop.commons.CommonErrors.ARG_URL; -import static io.nop.commons.CommonErrors.ERR_UTILS_INVALID_URL; -import static io.nop.commons.CommonErrors.ERR_UTILS_URL_OPEN_STREAM_FAIL; +import static io.nop.commons.CommonErrors.*; public class URLHelper { static final Logger LOG = LoggerFactory.getLogger(URLHelper.class); @@ -106,10 +100,16 @@ public static URL buildJarURL(File file, String path) { } public static boolean exists(URL url) { + if(url == null) + return false; + try { if (isFileURL(url)) { // Proceed with file system resolution - return getFile(url).exists(); + File file = getFile(url); + if (file == null) + return false; + return file.exists(); } else { // Try a URL connection content-length header URLConnection con = url.openConnection(); diff --git a/nop-commons/src/main/java/io/nop/commons/util/retry/RetryHelper.java b/nop-commons/src/main/java/io/nop/commons/util/retry/RetryHelper.java index 650fb25bf..13390234b 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/retry/RetryHelper.java +++ b/nop-commons/src/main/java/io/nop/commons/util/retry/RetryHelper.java @@ -28,8 +28,10 @@ public static T retryCall(IRetryPolicy retryPolicy, Callable task, if (delay > 0) { try { Thread.sleep(delay); - } catch (Exception ex) { //NOPMD - suppressed EmptyCatchBlock + } catch (InterruptedException ex) { //NOPMD - suppressed EmptyCatchBlock // ignore + Thread.currentThread().interrupt(); + throw NopException.adapt(e); } } retryTimes++; diff --git a/nop-commons/src/main/java/io/nop/commons/util/retry/RetryPolicy.java b/nop-commons/src/main/java/io/nop/commons/util/retry/RetryPolicy.java index 796a550e5..7629d8d49 100644 --- a/nop-commons/src/main/java/io/nop/commons/util/retry/RetryPolicy.java +++ b/nop-commons/src/main/java/io/nop/commons/util/retry/RetryPolicy.java @@ -163,12 +163,12 @@ public long getRetryDelay(Throwable e, int retryTimes, C context) { if (isExceedRetryCount(retryTimes)) return -1; - int tryDelay = this.getRetryDelay(); + long tryDelay = this.getRetryDelay(); long timeToSleep = 0; if (tryDelay > 0) { boolean exponentialDelay = this.isExponentialDelay(); - int maxRetryDelay = this.getMaxRetryDelay(); + long maxRetryDelay = this.getMaxRetryDelay(); if (maxRetryDelay < tryDelay) { maxRetryDelay = tryDelay; } diff --git a/nop-commons/src/test/java/io/nop/commons/util/TestDateHelper.java b/nop-commons/src/test/java/io/nop/commons/util/TestDateHelper.java index 4f161f983..23044f88b 100644 --- a/nop-commons/src/test/java/io/nop/commons/util/TestDateHelper.java +++ b/nop-commons/src/test/java/io/nop/commons/util/TestDateHelper.java @@ -9,9 +9,11 @@ import org.junit.jupiter.api.Test; +import java.sql.Timestamp; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneOffset; +import java.util.TimeZone; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -58,4 +60,14 @@ public void testZone() { LocalDateTime dt = DateHelper.toZone(LocalDateTime.now(), ZoneOffset.UTC); System.out.println(dt); } + + @Test + public void testMonthEnd() { + LocalDateTime time = LocalDateTime.of(2002, 3, 4, 1, 1, 0); + long ts = DateHelper.getMonthEndWithTimeZoneTs(TimeZone.getDefault(), DateHelper.dateTimeToMillis(time)); + + String str = new Timestamp(ts).toString(); + System.out.println(str); + assertEquals("2002-04-01 00:00:00.0", str); + } } \ No newline at end of file diff --git a/nop-config/src/main/java/io/nop/config/impl/DefaultConfigProvider.java b/nop-config/src/main/java/io/nop/config/impl/DefaultConfigProvider.java index d10d66045..e0d636279 100644 --- a/nop-config/src/main/java/io/nop/config/impl/DefaultConfigProvider.java +++ b/nop-config/src/main/java/io/nop/config/impl/DefaultConfigProvider.java @@ -51,8 +51,8 @@ public class DefaultConfigProvider implements IConfigProvider { private final Map> usedRefs; private IConfigSource configSource; - private volatile Map> configRefs; - private volatile Map configValues; + private volatile Map> configRefs; //NOSONAR + private volatile Map configValues; //NOSONAR private ConfigModel configModel; private final ChangeSubscriptions subscriptions = new ChangeSubscriptions(); diff --git a/nop-config/src/main/java/io/nop/config/router/ConfigRouterProcessor.java b/nop-config/src/main/java/io/nop/config/router/ConfigRouterProcessor.java index 0de095fed..a2f389246 100644 --- a/nop-config/src/main/java/io/nop/config/router/ConfigRouterProcessor.java +++ b/nop-config/src/main/java/io/nop/config/router/ConfigRouterProcessor.java @@ -78,7 +78,7 @@ public VarScope(Map vars) { @Override public boolean containsValue(String name) { - return vars.containsValue(name); + return vars.containsKey(name); } @Override diff --git a/nop-config/src/main/java/io/nop/config/source/DynamicConfigSource.java b/nop-config/src/main/java/io/nop/config/source/DynamicConfigSource.java index 6d3f718a5..0725aaced 100644 --- a/nop-config/src/main/java/io/nop/config/source/DynamicConfigSource.java +++ b/nop-config/src/main/java/io/nop/config/source/DynamicConfigSource.java @@ -15,7 +15,7 @@ public class DynamicConfigSource implements IConfigSource { private final String name; - private volatile Map configVars; + private volatile Map configVars; //NOSONAR private Runnable onClose; private final List onChanges = new CopyOnWriteArrayList<>(); @@ -35,7 +35,9 @@ public Map getConfigValues() { } public void setConfigVars(Map configVars) { - this.configVars = configVars; + synchronized (this) { + this.configVars = configVars; + } triggerOnChange(); } diff --git a/nop-config/src/main/java/io/nop/config/source/file/AbstractFileConfigSource.java b/nop-config/src/main/java/io/nop/config/source/file/AbstractFileConfigSource.java index b7617f873..e48d20db6 100644 --- a/nop-config/src/main/java/io/nop/config/source/file/AbstractFileConfigSource.java +++ b/nop-config/src/main/java/io/nop/config/source/file/AbstractFileConfigSource.java @@ -35,7 +35,7 @@ public abstract class AbstractFileConfigSource implements IConfigSource { */ private final List paths; private final Future refreshFuture; - private volatile Map vars; + private volatile Map vars; //NOSONAR private final List tasks = new CopyOnWriteArrayList<>(); diff --git a/nop-config/src/main/java/io/nop/config/source/jdbc/JdbcConfigSource.java b/nop-config/src/main/java/io/nop/config/source/jdbc/JdbcConfigSource.java index fd802fa58..d770abf2a 100644 --- a/nop-config/src/main/java/io/nop/config/source/jdbc/JdbcConfigSource.java +++ b/nop-config/src/main/java/io/nop/config/source/jdbc/JdbcConfigSource.java @@ -40,7 +40,7 @@ public class JdbcConfigSource implements IConfigSource { private final List onChanges = new CopyOnWriteArrayList<>(); private volatile boolean closed; - private volatile Map vars; + private volatile Map vars; //NOSONAR private int errorCount = 0; @@ -121,8 +121,8 @@ private Map loadConfig() throws SQLException { stm = connection.createStatement(); rs = stm.executeQuery(query); while (rs.next()) { - String name = rs.getString(0); - String value = rs.getString(1); + String name = rs.getString(1); + String value = rs.getString(2); if (!StringHelper.isEmpty(name)) { ValueWithLocation ref = ValueWithLocation.of(s_loc, value); vars.put(name, ref); diff --git a/nop-config/src/main/java/io/nop/config/starter/ConfigStarter.java b/nop-config/src/main/java/io/nop/config/starter/ConfigStarter.java index 89080dcc0..698f552be 100644 --- a/nop-config/src/main/java/io/nop/config/starter/ConfigStarter.java +++ b/nop-config/src/main/java/io/nop/config/starter/ConfigStarter.java @@ -158,7 +158,7 @@ protected void doStart() { configSources.add(jdbcSource); configSources.addAll(baseSource.getConfigSources()); - configSource = new CompositeConfigSource(configSources); + configSource = new CompositeConfigSource(configSources); //NOSONAR } // 7. 加载扩展配置 diff --git a/nop-core/src/main/java/io/nop/core/context/ExecutionContextImpl.java b/nop-core/src/main/java/io/nop/core/context/ExecutionContextImpl.java index 6626d9fcc..06d4e8051 100644 --- a/nop-core/src/main/java/io/nop/core/context/ExecutionContextImpl.java +++ b/nop-core/src/main/java/io/nop/core/context/ExecutionContextImpl.java @@ -112,6 +112,10 @@ public void awaitAsyncResults() { } catch (ExecutionException e) { cancelAll(results); throw NopException.adapt(e.getCause()); + } catch (InterruptedException e) { + cancelAll(results); + Thread.currentThread().interrupt(); + throw NopException.adapt(e); } catch (Exception e) { cancelAll(results); throw NopException.adapt(e); @@ -244,7 +248,7 @@ void fireAfterComplete(Throwable e) { } @Override - public Throwable getError() { + public synchronized Throwable getError() { return error; } @@ -254,11 +258,11 @@ public synchronized void setError(Throwable error) { } @Override - public List getErrorBeans() { + public synchronized List getErrorBeans() { return errorBeans; } - public void setErrorBeans(List errorBeans) { + public synchronized void setErrorBeans(List errorBeans) { this.errorBeans = errorBeans; } diff --git a/nop-core/src/main/java/io/nop/core/context/MaintenanceFlag.java b/nop-core/src/main/java/io/nop/core/context/MaintenanceFlag.java index dfebaa5e1..b77c3adcf 100644 --- a/nop-core/src/main/java/io/nop/core/context/MaintenanceFlag.java +++ b/nop-core/src/main/java/io/nop/core/context/MaintenanceFlag.java @@ -2,17 +2,23 @@ import io.nop.api.core.beans.ErrorBean; +import java.util.concurrent.atomic.AtomicReference; + /** * 系统进入维护状态,禁止外部用户访问 */ public class MaintenanceFlag { - static volatile ErrorBean _error; + static final AtomicReference _error = new AtomicReference<>(); public static void beginMaintenance(ErrorBean error) { - _error = error; + _error.set(error); } public static void endMaintenance() { - _error = null; + _error.set(null); + } + + public static ErrorBean getError() { + return _error.get(); } } \ No newline at end of file diff --git a/nop-core/src/main/java/io/nop/core/exceptions/ErrorMessageManager.java b/nop-core/src/main/java/io/nop/core/exceptions/ErrorMessageManager.java index 6f109d079..227e2b917 100644 --- a/nop-core/src/main/java/io/nop/core/exceptions/ErrorMessageManager.java +++ b/nop-core/src/main/java/io/nop/core/exceptions/ErrorMessageManager.java @@ -203,12 +203,14 @@ protected String getEntityDisplayName(String locale, String entityName) { protected String getFieldDisplayName(String locale, String fieldName, Map params) { String entityName = (String) params.get(ApiConstants.PARAM_ENTITY_NAME); String fullFieldName = fieldName; + boolean useFullName = false; if (!StringHelper.isEmpty(entityName)) { fullFieldName = entityName + '.' + fieldName; + useFullName = true; } String displayName = I18nMessageManager.instance().getMessage(locale, "prop.label." + fullFieldName, null); - if (displayName == null && fullFieldName != fieldName) { + if (displayName == null && useFullName) { int pos = entityName.lastIndexOf('.'); if (pos > 0) { fullFieldName = entityName.substring(pos + 1) + '.' + fieldName; diff --git a/nop-core/src/main/java/io/nop/core/i18n/I18nMessagesLoader.java b/nop-core/src/main/java/io/nop/core/i18n/I18nMessagesLoader.java index c7c435397..eb65ed5c9 100644 --- a/nop-core/src/main/java/io/nop/core/i18n/I18nMessagesLoader.java +++ b/nop-core/src/main/java/io/nop/core/i18n/I18nMessagesLoader.java @@ -111,7 +111,7 @@ void merge(Map merged, String key, ValueWithLocation } else { old = merged.put(key, vl); } - if (old != null && !old.equals(value)) { + if (old != null && !old.equals(vl)) { if (!allowReplace) throw new NopException(ERR_I18N_DUPLICATED_MESSAGE_KEY).param(ARG_KEY,key).param(ARG_LOC_A, old.getLocation()) .param(ARG_VALUE_A, old.getValue()).param(ARG_LOC_B, vl.getLocation()) diff --git a/nop-core/src/main/java/io/nop/core/lang/json/serialize/JsonSerializer.java b/nop-core/src/main/java/io/nop/core/lang/json/serialize/JsonSerializer.java index b4a1ba285..36ed0ebbe 100644 --- a/nop-core/src/main/java/io/nop/core/lang/json/serialize/JsonSerializer.java +++ b/nop-core/src/main/java/io/nop/core/lang/json/serialize/JsonSerializer.java @@ -184,7 +184,7 @@ void writeBean(SourceLocation loc, Object o, IJsonHandler out) { if (value == null) { out.value(loc, null); } else { - if (propModel.getSerializer() != null) { + if (propModel.getSerializer() != null && serializerFactory != null) { IJsonSerializer serializer = serializerFactory.getSerializer(propModel.getSerializer()); if (serializer == null) { throw new NopException(ERR_JSON_UNKNOWN_SERIALIZER_FOR_PROP) diff --git a/nop-core/src/main/java/io/nop/core/lang/xml/XNode.java b/nop-core/src/main/java/io/nop/core/lang/xml/XNode.java index d27aaf640..18e099595 100644 --- a/nop-core/src/main/java/io/nop/core/lang/xml/XNode.java +++ b/nop-core/src/main/java/io/nop/core/lang/xml/XNode.java @@ -659,7 +659,7 @@ public XNode getParentParent() { } public int getTreeLevel() { - if (parent == null) + if (parent != null) return parent.getTreeLevel() + 1; return 0; } diff --git a/nop-core/src/main/java/io/nop/core/lang/xml/handler/CollectXmlHandler.java b/nop-core/src/main/java/io/nop/core/lang/xml/handler/CollectXmlHandler.java index a9bcf2e24..de4ae5d7c 100644 --- a/nop-core/src/main/java/io/nop/core/lang/xml/handler/CollectXmlHandler.java +++ b/nop-core/src/main/java/io/nop/core/lang/xml/handler/CollectXmlHandler.java @@ -211,9 +211,10 @@ void _beginNode(SourceLocation loc, String tagName, Map entry : attrs.entrySet()) { String name = entry.getKey(); String value = ConvertHelper.toString(entry.getValue().getValue()); - if (value != null) { - value = StringHelper.escapeXmlAttr(value); - } + if (value == null) + continue; + + value = StringHelper.escapeXmlAttr(value); if (indent) { int n = name.length() + 4 + value.length(); @@ -280,7 +281,7 @@ public void value(SourceLocation loc, Object value) { s = StringHelper.replace(s, "]]>", "]]]]>"); out.append(s); out.append("]]>"); - }else if(value instanceof RawText){ + } else if (value instanceof RawText) { out.append(((RawText) value).getText()); } else { String s = value.toString(); diff --git a/nop-core/src/main/java/io/nop/core/model/graph/GraphBreadthFirstIterator.java b/nop-core/src/main/java/io/nop/core/model/graph/GraphBreadthFirstIterator.java index 26969296c..2ce360cba 100644 --- a/nop-core/src/main/java/io/nop/core/model/graph/GraphBreadthFirstIterator.java +++ b/nop-core/src/main/java/io/nop/core/model/graph/GraphBreadthFirstIterator.java @@ -16,11 +16,7 @@ */ package io.nop.core.model.graph; -import java.util.ArrayDeque; -import java.util.Deque; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; +import java.util.*; /** * Iterates over the vertices in a directed graph in breadth-first order. @@ -38,6 +34,7 @@ public GraphBreadthFirstIterator(ITargetVertexVisitor graph, V root) { } // tell cpd to start ignoring code - CPD-OFF + /** * Populates a set with the nodes reachable from a given node. */ @@ -68,6 +65,8 @@ private static V next(Deque deque, ITargetVertexVisitor graph, Set } public V next() { + if (!hasNext()) + throw new NoSuchElementException(); return next(deque, graph, set); } } \ No newline at end of file diff --git a/nop-core/src/main/java/io/nop/core/model/graph/GraphDepthFirstIterator.java b/nop-core/src/main/java/io/nop/core/model/graph/GraphDepthFirstIterator.java index 15c18f838..8866a42ab 100644 --- a/nop-core/src/main/java/io/nop/core/model/graph/GraphDepthFirstIterator.java +++ b/nop-core/src/main/java/io/nop/core/model/graph/GraphDepthFirstIterator.java @@ -18,13 +18,7 @@ import io.nop.commons.util.CollectionHelper; -import java.util.ArrayDeque; -import java.util.Collection; -import java.util.Deque; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; +import java.util.*; /** * Iterates over the vertices in a directed graph in depth-first order. @@ -74,6 +68,8 @@ private static V next(Deque deque, ITargetVertexVisitor graph, Set } public V next() { + if (!hasNext()) + throw new NoSuchElementException(); return next(deque, graph, set); } } \ No newline at end of file diff --git a/nop-core/src/main/java/io/nop/core/model/graph/LowestCommonAncestorFinder.java b/nop-core/src/main/java/io/nop/core/model/graph/LowestCommonAncestorFinder.java index 9bc360e88..d1819e6e8 100644 --- a/nop-core/src/main/java/io/nop/core/model/graph/LowestCommonAncestorFinder.java +++ b/nop-core/src/main/java/io/nop/core/model/graph/LowestCommonAncestorFinder.java @@ -117,8 +117,11 @@ public boolean contains(Color other) { } @Override - @SuppressWarnings({"EqualsUnsafeCast"}) public boolean equals(Object other) { + if(this == other) + return true; + if(!(other instanceof Color)) + return false; return this.bitset == ((Color) other).bitset; } diff --git a/nop-core/src/main/java/io/nop/core/model/loop/impl/NestedLoop.java b/nop-core/src/main/java/io/nop/core/model/loop/impl/NestedLoop.java index e9a992e58..7b840700b 100644 --- a/nop-core/src/main/java/io/nop/core/model/loop/impl/NestedLoop.java +++ b/nop-core/src/main/java/io/nop/core/model/loop/impl/NestedLoop.java @@ -47,7 +47,7 @@ protected NestedLoop(NestedLoopModel model, Map globalVars, Stri if (varName != null) { if (!model.isGlobalVar(varName) && !model.isLoopVar(varName)) throw new NopException(ERR_LOOP_VAR_NOT_DEFINED) - .param(ARG_VAR_NAME, varName).param(ARG_GLOBAL_VARS, globalVars.keySet()); + .param(ARG_VAR_NAME, varName).param(ARG_GLOBAL_VARS, this.globalVars.keySet()); } } diff --git a/nop-core/src/main/java/io/nop/core/model/table/impl/AbstractTable.java b/nop-core/src/main/java/io/nop/core/model/table/impl/AbstractTable.java index 60f5c8464..37ee6cf0c 100644 --- a/nop-core/src/main/java/io/nop/core/model/table/impl/AbstractTable.java +++ b/nop-core/src/main/java/io/nop/core/model/table/impl/AbstractTable.java @@ -24,15 +24,7 @@ import java.util.List; -import static io.nop.core.CoreErrors.ARG_CELL; -import static io.nop.core.CoreErrors.ARG_COL_INDEX; -import static io.nop.core.CoreErrors.ARG_MERGE_ACROSS; -import static io.nop.core.CoreErrors.ARG_MERGE_DOWN; -import static io.nop.core.CoreErrors.ARG_ROW_INDEX; -import static io.nop.core.CoreErrors.ERR_TABLE_INVALID_PROXY_CELL; -import static io.nop.core.CoreErrors.ERR_TABLE_MERGE_CELL_EMPTY_OR_PROXY_CELL; -import static io.nop.core.CoreErrors.ERR_TABLE_NOT_PROXY_CELL; -import static io.nop.core.CoreErrors.ERR_TABLE_NO_ENOUGH_FREE_SPACE; +import static io.nop.core.CoreErrors.*; public abstract class AbstractTable extends AbstractComponentModel implements ITable { @@ -661,7 +653,9 @@ public void mergeCell(int rowIndex, int colIndex, int mergeDown, int mergeAcross @Override public void addToRow(int rowIndex, ICell cell) { checkAllowChange(); - Guard.checkArgument(cell != null && !cell.isProxyCell(), "only RealCell is allowed"); + if (cell == null || cell.isProxyCell()) { + throw new IllegalArgumentException("only RealCell is allowed"); + } invalidateColCount(); diff --git a/nop-core/src/main/java/io/nop/core/model/tree/impl/DepthFirstIterator.java b/nop-core/src/main/java/io/nop/core/model/tree/impl/DepthFirstIterator.java index 59edcface..a9136955b 100644 --- a/nop-core/src/main/java/io/nop/core/model/tree/impl/DepthFirstIterator.java +++ b/nop-core/src/main/java/io/nop/core/model/tree/impl/DepthFirstIterator.java @@ -11,10 +11,7 @@ import io.nop.commons.util.CollectionHelper; import io.nop.core.model.tree.ITreeChildrenAdapter; -import java.util.ArrayDeque; -import java.util.Collections; -import java.util.Deque; -import java.util.List; +import java.util.*; import java.util.function.Predicate; public class DepthFirstIterator implements IterableIterator { @@ -58,6 +55,9 @@ public boolean hasNext() { @Override public T next() { + if (!hasNext()) + throw new NoSuchElementException(); + T ret = peek; peek = _next(); return ret; @@ -78,9 +78,4 @@ T _next() { } return o; } - - @Override - public void remove() { - throw new UnsupportedOperationException("remove"); - } } diff --git a/nop-core/src/main/java/io/nop/core/model/tree/impl/WidthFirstIterator.java b/nop-core/src/main/java/io/nop/core/model/tree/impl/WidthFirstIterator.java index d61ec462e..322dd9cee 100644 --- a/nop-core/src/main/java/io/nop/core/model/tree/impl/WidthFirstIterator.java +++ b/nop-core/src/main/java/io/nop/core/model/tree/impl/WidthFirstIterator.java @@ -13,6 +13,7 @@ import java.util.ArrayDeque; import java.util.Collections; import java.util.Deque; +import java.util.NoSuchElementException; import java.util.function.Predicate; public class WidthFirstIterator implements IterableIterator { @@ -49,6 +50,9 @@ public boolean hasNext() { @Override public T next() { + if (!hasNext()) + throw new NoSuchElementException(); + T ret = peek; peek = _next(); return ret; @@ -70,8 +74,4 @@ T _next() { return o; } - @Override - public void remove() { - throw new UnsupportedOperationException("remove"); - } } diff --git a/nop-core/src/main/java/io/nop/core/reflect/bean/ArrayBeanCollectionAdapter.java b/nop-core/src/main/java/io/nop/core/reflect/bean/ArrayBeanCollectionAdapter.java index dbb65d832..301cde7a1 100644 --- a/nop-core/src/main/java/io/nop/core/reflect/bean/ArrayBeanCollectionAdapter.java +++ b/nop-core/src/main/java/io/nop/core/reflect/bean/ArrayBeanCollectionAdapter.java @@ -9,6 +9,7 @@ import java.lang.reflect.Array; import java.util.Iterator; +import java.util.NoSuchElementException; import java.util.function.ObjIntConsumer; public class ArrayBeanCollectionAdapter implements IBeanCollectionAdapter { @@ -53,6 +54,9 @@ public boolean hasNext() { @Override public Object next() { + if (!hasNext()) + throw new NoSuchElementException(); + Object value = getItem(bean, i); i++; return value; diff --git a/nop-core/src/main/java/io/nop/core/resource/cache/ResourceCacheEntry.java b/nop-core/src/main/java/io/nop/core/resource/cache/ResourceCacheEntry.java index 725576331..6f00ea12c 100644 --- a/nop-core/src/main/java/io/nop/core/resource/cache/ResourceCacheEntry.java +++ b/nop-core/src/main/java/io/nop/core/resource/cache/ResourceCacheEntry.java @@ -34,7 +34,7 @@ public class ResourceCacheEntry implements IDestroyable { private final ICreationListener listener; // 值为null表示尚未加载,如果为占位对象NULL,则表示加载过,但是加载得到的结果是null - private volatile Object object; + private volatile Object object; //NOSONAR // 对象记载过程中所记录的依赖资源集合 private ResourceDependencySet deps; diff --git a/nop-core/src/main/java/io/nop/core/resource/deps/ResourceDependsManager.java b/nop-core/src/main/java/io/nop/core/resource/deps/ResourceDependsManager.java index 594d76e05..883a7b028 100644 --- a/nop-core/src/main/java/io/nop/core/resource/deps/ResourceDependsManager.java +++ b/nop-core/src/main/java/io/nop/core/resource/deps/ResourceDependsManager.java @@ -99,7 +99,7 @@ public T collectDependsTo(ResourceDependencySet dep, Supplier task) { */ public T ignoreDepends(Supplier task) { ResourceDependsStack stack = dependsStack.get(); - dependsStack.set(null); + dependsStack.set(null); //NOSONAR try { return task.get(); } finally { diff --git a/nop-core/src/main/java/io/nop/core/resource/find/SimplePathPattern.java b/nop-core/src/main/java/io/nop/core/resource/find/SimplePathPattern.java index 68282fbfb..e87c29d6a 100644 --- a/nop-core/src/main/java/io/nop/core/resource/find/SimplePathPattern.java +++ b/nop-core/src/main/java/io/nop/core/resource/find/SimplePathPattern.java @@ -24,11 +24,11 @@ private SimplePathPattern(List components) { } public static SimplePathPattern of(String pattern) { - if (StringHelper.isEmpty(pattern)) + if (pattern == null || pattern.isEmpty()) return new SimplePathPattern(Collections.emptyList()); if (pattern.startsWith("/")) - pattern = pattern.substring(0); + pattern = pattern.substring(1); if (pattern.endsWith("/")) pattern = pattern.substring(0, pattern.length() - 1); diff --git a/nop-core/src/main/java/io/nop/core/resource/impl/FileResource.java b/nop-core/src/main/java/io/nop/core/resource/impl/FileResource.java index cda85d51f..c646f5cb1 100644 --- a/nop-core/src/main/java/io/nop/core/resource/impl/FileResource.java +++ b/nop-core/src/main/java/io/nop/core/resource/impl/FileResource.java @@ -13,24 +13,15 @@ import io.nop.core.resource.IFile; import io.nop.core.resource.IResource; import io.nop.core.resource.ResourceHelper; - import jakarta.annotation.Nonnull; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; + +import java.io.*; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import static io.nop.core.CoreErrors.ARG_RESOURCE; -import static io.nop.core.CoreErrors.ERR_RESOURCE_CREATE_NEW_FILE_FAIL; -import static io.nop.core.CoreErrors.ERR_RESOURCE_NOT_DIR; -import static io.nop.core.CoreErrors.ERR_RESOURCE_OPEN_INPUT_STREAM_FAIL; -import static io.nop.core.CoreErrors.ERR_RESOURCE_OPEN_OUTPUT_STREAM_FAIL; +import static io.nop.core.CoreErrors.*; public class FileResource extends AbstractFile implements IFile { @@ -82,7 +73,8 @@ public long lastModified() { @Override public void setLastModified(long time) { - file.setLastModified(time); + if (!file.setLastModified(time)) + LOG.info("nop.resource.file.setLastModified.failed:file={}", file); } @Override diff --git a/nop-core/src/main/java/io/nop/core/resource/impl/ZipEntryResource.java b/nop-core/src/main/java/io/nop/core/resource/impl/ZipEntryResource.java index 12dc1a657..8f435cda0 100644 --- a/nop-core/src/main/java/io/nop/core/resource/impl/ZipEntryResource.java +++ b/nop-core/src/main/java/io/nop/core/resource/impl/ZipEntryResource.java @@ -89,7 +89,7 @@ public int hashCode() { @Override public long length() { - return entry.getSize(); + return entry.getSize(); //NOSONAR } @Override diff --git a/nop-core/src/main/java/io/nop/core/resource/record/csv/CsvRecordOutput.java b/nop-core/src/main/java/io/nop/core/resource/record/csv/CsvRecordOutput.java index 212999301..4812e7995 100644 --- a/nop-core/src/main/java/io/nop/core/resource/record/csv/CsvRecordOutput.java +++ b/nop-core/src/main/java/io/nop/core/resource/record/csv/CsvRecordOutput.java @@ -109,11 +109,12 @@ private void writeHeaders(T record) throws IOException { if (headers == null || headers.isEmpty()) { if (record instanceof Map) { headers = CollectionHelper.toStringList(((Map) record).keySet()); - } else { + } else if (record != null) { headers = BeanTool.getReadableComplexPropNames(record.getClass()); } } - writer.printRecord(headers.toArray()); + if (headers != null) + writer.printRecord(headers.toArray()); } @Override diff --git a/nop-core/src/main/java/io/nop/core/resource/scan/ClassPathScanner.java b/nop-core/src/main/java/io/nop/core/resource/scan/ClassPathScanner.java index 3f1d41659..395577b7e 100644 --- a/nop-core/src/main/java/io/nop/core/resource/scan/ClassPathScanner.java +++ b/nop-core/src/main/java/io/nop/core/resource/scan/ClassPathScanner.java @@ -158,7 +158,7 @@ protected void doFindPathMatchingJarResources(URL rootDirURL, String path, BiCon logger.trace("Looking for matching resources in jar file [" + jarFileUrl + "]"); } - for (Enumeration entries = jarFile.entries(); entries.hasMoreElements(); ) { + for (Enumeration entries = jarFile.entries(); entries.hasMoreElements(); ) {//NOSONAR JarEntry entry = entries.nextElement(); String entryPath = entry.getName(); if (entryPath.endsWith("/")) diff --git a/nop-core/src/main/java/io/nop/core/resource/scan/FileScanHelper.java b/nop-core/src/main/java/io/nop/core/resource/scan/FileScanHelper.java index 77079527b..fb69af3f4 100644 --- a/nop-core/src/main/java/io/nop/core/resource/scan/FileScanHelper.java +++ b/nop-core/src/main/java/io/nop/core/resource/scan/FileScanHelper.java @@ -49,7 +49,7 @@ static String normalizeEntryPath(String entryPath) { } public static void scanZip(ZipFile file, String entryPath, BiConsumer action) { - Enumeration en = file.entries(); + Enumeration en = file.entries(); //NOSONAR while (en.hasMoreElements()) { ZipEntry entry = en.nextElement(); if (entry.getName().startsWith(entryPath)) { diff --git a/nop-core/src/main/java/io/nop/core/resource/store/InMemoryResourceStore.java b/nop-core/src/main/java/io/nop/core/resource/store/InMemoryResourceStore.java index 194c3001b..2aa4732ac 100644 --- a/nop-core/src/main/java/io/nop/core/resource/store/InMemoryResourceStore.java +++ b/nop-core/src/main/java/io/nop/core/resource/store/InMemoryResourceStore.java @@ -63,6 +63,7 @@ public void addZipFile(String basePath, IResource zipResource, ZipOptions option throw NopException.adapt(e); } }); + input.close(); } catch (IOException e) { throw NopException.adapt(e); } finally { diff --git a/nop-core/src/main/java/io/nop/core/resource/watch/NioFileWatchService.java b/nop-core/src/main/java/io/nop/core/resource/watch/NioFileWatchService.java index 511a0a16b..0fa4ffc00 100644 --- a/nop-core/src/main/java/io/nop/core/resource/watch/NioFileWatchService.java +++ b/nop-core/src/main/java/io/nop/core/resource/watch/NioFileWatchService.java @@ -15,16 +15,7 @@ import org.slf4j.LoggerFactory; import java.io.IOException; -import java.nio.file.FileSystems; -import java.nio.file.FileVisitOption; -import java.nio.file.FileVisitResult; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.SimpleFileVisitor; -import java.nio.file.StandardWatchEventKinds; -import java.nio.file.WatchEvent; -import java.nio.file.WatchKey; -import java.nio.file.WatchService; +import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; import java.util.EnumSet; import java.util.HashMap; @@ -134,7 +125,8 @@ private void checkChange() { } key.reset(); } catch (InterruptedException e2) { - + Thread.currentThread().interrupt(); + throw NopException.adapt(e2); } } while (isActive()); } catch (IOException e) { diff --git a/nop-core/src/main/java/io/nop/core/resource/zip/JdkZipInput.java b/nop-core/src/main/java/io/nop/core/resource/zip/JdkZipInput.java index 1296ff0d8..ae438eb99 100644 --- a/nop-core/src/main/java/io/nop/core/resource/zip/JdkZipInput.java +++ b/nop-core/src/main/java/io/nop/core/resource/zip/JdkZipInput.java @@ -39,7 +39,7 @@ IStepProgressListener getStepListener(String reason, String path, long size) { @Override public void unzipToDir(IFile dir, Predicate filter) throws IOException { ZipEntry zipEntry = null; - while ((zipEntry = zin.getNextEntry()) != null) { + while ((zipEntry = zin.getNextEntry()) != null) { //NOSONAR String entryName = zipEntry.getName(); if (entryName.endsWith("/") || entryName.endsWith("\\")) continue; @@ -54,7 +54,7 @@ public void unzipToDir(IFile dir, Predicate filter) throws IOException @Override public void unzip(BiFunction processor) throws IOException { ZipEntry zipEntry = null; - while ((zipEntry = zin.getNextEntry()) != null) { + while ((zipEntry = zin.getNextEntry()) != null) { //NOSONAR if (processor.apply(zipEntry, zin) != ProcessResult.CONTINUE) break; } diff --git a/nop-core/src/main/java/io/nop/core/resource/zip/JdkZipOutput.java b/nop-core/src/main/java/io/nop/core/resource/zip/JdkZipOutput.java index b8b6134e0..fc02f4696 100644 --- a/nop-core/src/main/java/io/nop/core/resource/zip/JdkZipOutput.java +++ b/nop-core/src/main/java/io/nop/core/resource/zip/JdkZipOutput.java @@ -111,7 +111,8 @@ public void addStream(ZipEntry entry, InputStream is) throws IOException { } os.putNextEntry(entry); - IoHelper.copy(is, os, CFG_IO_DEFAULT_BUF_SIZE.get(), getStepListener("zip", entry.getName(), entry.getSize())); + IoHelper.copy(is, os, CFG_IO_DEFAULT_BUF_SIZE.get(), + getStepListener("zip", entry.getName(), entry.getSize())); //NOSONAR firstEntry = false; } diff --git a/nop-core/src/main/java/io/nop/core/resource/zip/ZipFileWatcher.java b/nop-core/src/main/java/io/nop/core/resource/zip/ZipFileWatcher.java index 6575d44af..216112d8b 100644 --- a/nop-core/src/main/java/io/nop/core/resource/zip/ZipFileWatcher.java +++ b/nop-core/src/main/java/io/nop/core/resource/zip/ZipFileWatcher.java @@ -60,8 +60,8 @@ public void onFileDelete(Path root, Path path) { }); } - public static void main(String[] args) { - args = new String[]{"c:/watch/a.xpt.xlsx"}; + public static void main(String[] inputArgs) { + String[] args = new String[]{"c:/watch/a.xpt.xlsx"}; NioFileWatchService watchService = new NioFileWatchService(); watchService.start(); diff --git a/nop-core/src/main/java/io/nop/core/type/utils/JavaGenericTypeHelper.java b/nop-core/src/main/java/io/nop/core/type/utils/JavaGenericTypeHelper.java index 49a5a853c..c004fab73 100644 --- a/nop-core/src/main/java/io/nop/core/type/utils/JavaGenericTypeHelper.java +++ b/nop-core/src/main/java/io/nop/core/type/utils/JavaGenericTypeHelper.java @@ -77,7 +77,7 @@ public static Class getRawType(Type type) { /** * Returns true if {@code a} and {@code b} are equal. */ - public static boolean equals(Type a, Type b) { + public static boolean typeEquals(Type a, Type b) { if (a == b) { return true; // Also handles (a == null && b == null). @@ -89,7 +89,7 @@ public static boolean equals(Type a, Type b) { return false; ParameterizedType pa = (ParameterizedType) a; ParameterizedType pb = (ParameterizedType) b; - return equal(pa.getOwnerType(), pb.getOwnerType()) && pa.getRawType().equals(pb.getRawType()) + return equalsObject(pa.getOwnerType(), pb.getOwnerType()) && pa.getRawType().equals(pb.getRawType()) && Arrays.equals(pa.getActualTypeArguments(), pb.getActualTypeArguments()); } else if (a instanceof GenericArrayType) { @@ -97,7 +97,7 @@ public static boolean equals(Type a, Type b) { return false; GenericArrayType ga = (GenericArrayType) a; GenericArrayType gb = (GenericArrayType) b; - return equals(ga.getGenericComponentType(), gb.getGenericComponentType()); + return typeEquals(ga.getGenericComponentType(), gb.getGenericComponentType()); } else if (a instanceof WildcardType) { if (!(b instanceof WildcardType)) @@ -165,7 +165,7 @@ private static int indexOf(Object[] array, Object toFind) { throw new NoSuchElementException(); } - private static boolean equal(Object a, Object b) { + private static boolean equalsObject(Object a, Object b) { return a == b || (a != null && a.equals(b)); } @@ -425,7 +425,7 @@ public Type getOwnerType() { public boolean equals(Object other) { if (this == other) return true; - return other instanceof ParameterizedType && JavaGenericTypeHelper.equals(this, (ParameterizedType) other); + return other instanceof ParameterizedType && JavaGenericTypeHelper.typeEquals(this, (ParameterizedType) other); } @Override @@ -461,7 +461,7 @@ public Type getGenericComponentType() { @Override public boolean equals(Object o) { - return o instanceof GenericArrayType && JavaGenericTypeHelper.equals(this, (GenericArrayType) o); + return o instanceof GenericArrayType && JavaGenericTypeHelper.typeEquals(this, (GenericArrayType) o); } @Override @@ -518,7 +518,7 @@ public Type[] getLowerBounds() { @Override public boolean equals(Object other) { - return other instanceof WildcardType && JavaGenericTypeHelper.equals(this, (WildcardType) other); + return other instanceof WildcardType && JavaGenericTypeHelper.typeEquals(this, (WildcardType) other); } @Override diff --git a/nop-core/src/main/java/io/nop/core/unittest/BaseTestCase.java b/nop-core/src/main/java/io/nop/core/unittest/BaseTestCase.java index 138dc093b..0d6141c3e 100644 --- a/nop-core/src/main/java/io/nop/core/unittest/BaseTestCase.java +++ b/nop-core/src/main/java/io/nop/core/unittest/BaseTestCase.java @@ -128,6 +128,9 @@ public static boolean waitAllBarrier(long timeout) { try { barrier.await(timeout, TimeUnit.MILLISECONDS); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + return false; } catch (Exception e) { return false; } diff --git a/nop-dao/src/main/java/io/nop/dao/dialect/DialectSelector.java b/nop-dao/src/main/java/io/nop/dao/dialect/DialectSelector.java index 1a4202be5..bb15fc8a9 100644 --- a/nop-dao/src/main/java/io/nop/dao/dialect/DialectSelector.java +++ b/nop-dao/src/main/java/io/nop/dao/dialect/DialectSelector.java @@ -9,6 +9,8 @@ import io.nop.api.core.annotations.data.DataBean; +import java.util.Objects; + @DataBean public class DialectSelector implements Comparable { private String dialectName; @@ -83,7 +85,7 @@ int compare(int v1, int v2) { } int compare(String s1, String s2) { - if (s1 == s2) + if (Objects.equals(s1, s2)) return 0; if (s1 == null) return -1; diff --git a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectDiscoverySqls.java b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectDiscoverySqls.java index 9c40e83a1..ebcb012d0 100644 --- a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectDiscoverySqls.java +++ b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectDiscoverySqls.java @@ -327,6 +327,7 @@ public void setSelectViews(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -336,6 +337,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectErrorCodeModel.java b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectErrorCodeModel.java index 2593e65d3..f4477ecac 100644 --- a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectErrorCodeModel.java +++ b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectErrorCodeModel.java @@ -93,6 +93,7 @@ public void setValues(java.util.Set value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectFeatures.java b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectFeatures.java index e4fafdfc7..ff0527375 100644 --- a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectFeatures.java +++ b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectFeatures.java @@ -485,6 +485,7 @@ public void setUseGetStringForDate(java.lang.Boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -494,6 +495,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectModel.java b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectModel.java index 68e4410ae..5556c53a5 100644 --- a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectModel.java +++ b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectModel.java @@ -703,6 +703,7 @@ public void setTableNameCase(io.nop.commons.text.CharacterCase value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -724,6 +725,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectSqls.java b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectSqls.java index c4bb99b49..e05828405 100644 --- a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectSqls.java +++ b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_DialectSqls.java @@ -457,6 +457,7 @@ public void setValidationQuery(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -466,6 +467,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlDataTypeModel.java b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlDataTypeModel.java index 7130b78af..73df87a0d 100644 --- a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlDataTypeModel.java +++ b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlDataTypeModel.java @@ -279,6 +279,7 @@ public void setStdSqlType(io.nop.commons.type.StdSqlType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -288,6 +289,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlFunctionModel.java b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlFunctionModel.java index b6f4de2c2..f5213fe2b 100644 --- a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlFunctionModel.java +++ b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlFunctionModel.java @@ -145,6 +145,7 @@ public void setType(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -154,6 +155,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlNativeFunctionModel.java b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlNativeFunctionModel.java index ae337149c..be6c630fa 100644 --- a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlNativeFunctionModel.java +++ b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlNativeFunctionModel.java @@ -303,6 +303,7 @@ public void setType(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -312,6 +313,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlTemplateModel.java b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlTemplateModel.java index 68930eb5b..2b75223e7 100644 --- a/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlTemplateModel.java +++ b/nop-dao/src/main/java/io/nop/dao/dialect/model/_gen/_SqlTemplateModel.java @@ -197,6 +197,7 @@ public void setType(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -206,6 +207,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-dao/src/main/java/io/nop/dao/seq/SnowflakeSequenceGeneator.java b/nop-dao/src/main/java/io/nop/dao/seq/SnowflakeSequenceGeneator.java index 7902dbf03..8c4c990e7 100644 --- a/nop-dao/src/main/java/io/nop/dao/seq/SnowflakeSequenceGeneator.java +++ b/nop-dao/src/main/java/io/nop/dao/seq/SnowflakeSequenceGeneator.java @@ -20,6 +20,7 @@ import io.nop.api.core.exceptions.NopException; import io.nop.api.core.time.CoreMetrics; import io.nop.api.core.util.Guard; +import io.nop.commons.util.MathHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,8 +56,6 @@ public class SnowflakeSequenceGeneator implements ISequenceGenerator { private long lastTimestamp = -1L; - private static final Random RANDOM = new Random(); - /** * @param twepoch 起始的时间戳 */ @@ -105,12 +104,12 @@ public synchronized long generateLong(String seqName, boolean useDefault) { if (sequence == 0) { // seq 为0的时候表示是下一毫秒时间开始对seq做随机 - sequence = RANDOM.nextInt(100); + sequence = MathHelper.secureRandom().nextInt(100); timestamp = tilNextMillis(lastTimestamp); } } else { // 如果是新的ms开始 - sequence = RANDOM.nextInt(100); + sequence = MathHelper.secureRandom().nextInt(100); } lastTimestamp = timestamp; diff --git a/nop-excel/src/main/java/io/nop/excel/format/ExcelDateHelper.java b/nop-excel/src/main/java/io/nop/excel/format/ExcelDateHelper.java index 2ce8ca22d..769215add 100644 --- a/nop-excel/src/main/java/io/nop/excel/format/ExcelDateHelper.java +++ b/nop-excel/src/main/java/io/nop/excel/format/ExcelDateHelper.java @@ -50,7 +50,7 @@ public class ExcelDateHelper { // add "\u5e74 \u6708 \u65e5"(年月日) for Chinese/Japanese date // format:2017年2月7日 private static final Pattern date_ptrn3b = Pattern - .compile("^[\\[\\]yYmMdDhHsS\\-T/\u5e74\u6708\u65e5,. :\"\\\\]+0*[ampAMP/]*$"); + .compile("^[\\[\\]yYmMdDhHsS\\-T/\u5e74\u6708\u65e5,. :\"\\\\]+0*[ampAMP/]*$"); //NOSONAR // elapsed time patterns: [h],[m] and [s] private static final Pattern date_ptrn4 = Pattern.compile("^\\[([hH]+|[mM]+|[sS]+)\\]"); diff --git a/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportFieldModel.java b/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportFieldModel.java index 00f696709..0a802eaec 100644 --- a/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportFieldModel.java +++ b/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportFieldModel.java @@ -591,6 +591,7 @@ public void setWhen(io.nop.core.lang.eval.IEvalPredicate value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -606,6 +607,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportModel.java b/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportModel.java index df69c7d75..757f86ff9 100644 --- a/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportModel.java +++ b/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportModel.java @@ -301,6 +301,7 @@ public void setXdef(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -314,6 +315,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportSheetModel.java b/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportSheetModel.java index 08ce7e223..0fe7add00 100644 --- a/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportSheetModel.java +++ b/nop-excel/src/main/java/io/nop/excel/imp/model/_gen/_ImportSheetModel.java @@ -535,6 +535,7 @@ public void setWhen(io.nop.core.lang.eval.IEvalPredicate value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -548,6 +549,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelAnnotation.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelAnnotation.java index 84aded2aa..f1083b860 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelAnnotation.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelAnnotation.java @@ -67,6 +67,7 @@ public void setType(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelBorderStyle.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelBorderStyle.java index 831111926..34051fdb0 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelBorderStyle.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelBorderStyle.java @@ -93,6 +93,7 @@ public void setWeight(int value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelCell.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelCell.java index a840e3347..dffac9e5e 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelCell.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelCell.java @@ -275,6 +275,7 @@ public void setValue(java.lang.Object value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -288,6 +289,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelClientAnchor.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelClientAnchor.java index 0851be0b3..29796b169 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelClientAnchor.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelClientAnchor.java @@ -41,6 +41,7 @@ public void setType(io.nop.excel.model.constants.ExcelAnchorType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelColumnConfig.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelColumnConfig.java index fe7505ad6..d48a381f1 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelColumnConfig.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelColumnConfig.java @@ -119,6 +119,7 @@ public void setWidth(java.lang.Double value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelConditionalStyle.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelConditionalStyle.java index 272a53f5d..63c0ec729 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelConditionalStyle.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelConditionalStyle.java @@ -93,6 +93,7 @@ public void setWhen(io.nop.api.core.beans.TreeBean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -106,6 +107,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelFont.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelFont.java index 15b1cb619..554b9b2f3 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelFont.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelFont.java @@ -279,6 +279,7 @@ public void setVerticalAlign(io.nop.excel.model.constants.ExcelFontVerticalAlign + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -288,6 +289,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelHeaderFooter.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelHeaderFooter.java index 1f53f9b7e..1324f36d6 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelHeaderFooter.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelHeaderFooter.java @@ -197,6 +197,7 @@ public void setStyle(io.nop.excel.model.ExcelStyle value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -208,6 +209,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelImage.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelImage.java index 2a481a1ed..4e0951be2 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelImage.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelImage.java @@ -327,6 +327,7 @@ public void setTestExpr(io.nop.core.lang.eval.IEvalPredicate value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -338,6 +339,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageBreaks.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageBreaks.java index 085a1a81f..8ce238874 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageBreaks.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageBreaks.java @@ -67,6 +67,7 @@ public void setRows(java.util.List value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageMargins.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageMargins.java index a36c80ac6..0687d1754 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageMargins.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageMargins.java @@ -171,6 +171,7 @@ public void setTop(java.lang.Double value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -180,6 +181,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageSetup.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageSetup.java index 58d960cca..5d4fd23f0 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageSetup.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPageSetup.java @@ -301,6 +301,7 @@ public void setVerticalCentered(java.lang.Boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -314,6 +315,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPrint.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPrint.java index a8596e6ba..f51b4f908 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPrint.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelPrint.java @@ -223,6 +223,7 @@ public void setVerticalResolution(java.lang.Integer value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -232,6 +233,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelProperty.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelProperty.java index 7d04e5389..64086075b 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelProperty.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelProperty.java @@ -67,6 +67,7 @@ public void setValue(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRichText.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRichText.java index 7af6a7e6b..cb91a3ee0 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRichText.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRichText.java @@ -41,6 +41,7 @@ public void setParts(java.util.List value) + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -52,6 +53,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRichTextPart.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRichTextPart.java index aee39d546..50239a59a 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRichTextPart.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRichTextPart.java @@ -67,6 +67,7 @@ public void setText(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -78,6 +79,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRow.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRow.java index 51e66340d..1a623d58d 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRow.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelRow.java @@ -171,6 +171,7 @@ public void setStyleId(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -184,6 +185,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelSheet.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelSheet.java index 4a0662445..c827c7b74 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelSheet.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelSheet.java @@ -431,6 +431,7 @@ public void setTable(io.nop.excel.model.ExcelTable value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -460,6 +461,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelSheetOptions.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelSheetOptions.java index c2edf365f..c97a57f74 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelSheetOptions.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelSheetOptions.java @@ -93,6 +93,7 @@ public void setSplitVertical(java.lang.Integer value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelStyle.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelStyle.java index c67c9153d..b1b6dcab9 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelStyle.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelStyle.java @@ -509,6 +509,7 @@ public void setWrapText(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -532,6 +533,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelTable.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelTable.java index 78bd74e49..a2033028b 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelTable.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelTable.java @@ -67,6 +67,7 @@ public void setRows(java.util.List value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -80,6 +81,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelWorkbook.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelWorkbook.java index 94ae86e6d..bbeb0c4fc 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelWorkbook.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_ExcelWorkbook.java @@ -223,6 +223,7 @@ public boolean hasStyles(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -242,6 +243,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptCellModel.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptCellModel.java index 1e0fbf8d0..b9982c1eb 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptCellModel.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptCellModel.java @@ -595,6 +595,7 @@ public void setViewerId(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -604,6 +605,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptRowModel.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptRowModel.java index e86e7aa19..def417b9f 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptRowModel.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptRowModel.java @@ -93,6 +93,7 @@ public void setVisibleExpr(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptSheetModel.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptSheetModel.java index 212bdcd53..bf79995bb 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptSheetModel.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptSheetModel.java @@ -279,6 +279,7 @@ public void setTestExpr(io.nop.core.lang.eval.IEvalPredicate value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -288,6 +289,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptWorkbookModel.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptWorkbookModel.java index 640f81c37..b27daaa81 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptWorkbookModel.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptWorkbookModel.java @@ -301,6 +301,7 @@ public boolean hasViewers(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -314,6 +315,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptXplModel.java b/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptXplModel.java index 4edc8649c..f4cd1bee6 100644 --- a/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptXplModel.java +++ b/nop-excel/src/main/java/io/nop/excel/model/_gen/_XptXplModel.java @@ -67,6 +67,7 @@ public void setId(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateMachineModel.java b/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateMachineModel.java index 06100f6d2..3dbb15aed 100644 --- a/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateMachineModel.java +++ b/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateMachineModel.java @@ -253,6 +253,7 @@ public boolean hasStates(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -264,6 +265,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateModel.java b/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateModel.java index 18a9d487d..77d6b1433 100644 --- a/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateModel.java +++ b/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateModel.java @@ -513,6 +513,7 @@ public boolean hasTransitions(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -526,6 +527,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateTransitionModel.java b/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateTransitionModel.java index 42728cf3b..46856c5df 100644 --- a/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateTransitionModel.java +++ b/nop-fsm/src/main/java/io/nop/fsm/model/_gen/_StateTransitionModel.java @@ -223,6 +223,7 @@ public void setWhen(io.nop.core.lang.eval.IEvalPredicate value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -232,6 +233,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayModel.java b/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayModel.java index f9c67ea93..4b0dc9ce7 100644 --- a/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayModel.java +++ b/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayModel.java @@ -67,6 +67,7 @@ public boolean hasRoutes(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -78,6 +79,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayOnPathModel.java b/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayOnPathModel.java index 659099dd7..359ecdaef 100644 --- a/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayOnPathModel.java +++ b/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayOnPathModel.java @@ -67,6 +67,7 @@ public void setPath(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayRouteModel.java b/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayRouteModel.java index 67c4619f3..59a011eb8 100644 --- a/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayRouteModel.java +++ b/nop-graphql/nop-graphql-gateway/src/main/java/io/nop/graphql/gateway/model/_gen/_GatewayRouteModel.java @@ -275,6 +275,7 @@ public void setServiceName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -286,6 +287,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanAliasModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanAliasModel.java index fbca0e22e..f8493a9e6 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanAliasModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanAliasModel.java @@ -67,6 +67,7 @@ public void setName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanBuildModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanBuildModel.java index 94a295d99..2ad8247e8 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanBuildModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanBuildModel.java @@ -45,6 +45,7 @@ public boolean hasBody(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -54,6 +55,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanCollectBeansValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanCollectBeansValue.java index 26042305d..4824a325d 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanCollectBeansValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanCollectBeansValue.java @@ -249,6 +249,7 @@ public void setOnlyConcreteClasses(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -258,6 +259,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanCollectionValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanCollectionValue.java index 95185cb80..951131422 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanCollectionValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanCollectionValue.java @@ -67,6 +67,7 @@ public void setMerge(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -78,6 +79,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConditionModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConditionModel.java index 70dd7fef9..228f4afab 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConditionModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConditionModel.java @@ -301,6 +301,7 @@ public void setUnlessProperty(io.nop.ioc.model.BeanUnlessPropertyCondition value + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -314,6 +315,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConfigModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConfigModel.java index 0c2a6c746..3b1a875c3 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConfigModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConfigModel.java @@ -119,6 +119,7 @@ public void setName(java.util.Set value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstantModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstantModel.java index ea2da4df4..2f8afe15e 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstantModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstantModel.java @@ -171,6 +171,7 @@ public void setStaticField(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -180,6 +181,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstantValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstantValue.java index c829cb5b7..4cc720e16 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstantValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstantValue.java @@ -41,6 +41,7 @@ public void setStaticField(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstructorArgModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstructorArgModel.java index a2c35e01d..c56676a0f 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstructorArgModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanConstructorArgModel.java @@ -119,6 +119,7 @@ public void setValue(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanEntryValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanEntryValue.java index bc7d60423..0a7feb4b6 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanEntryValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanEntryValue.java @@ -93,6 +93,7 @@ public void setValueRef(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIdRefValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIdRefValue.java index c3fbdf2e3..319f4d4a7 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIdRefValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIdRefValue.java @@ -93,6 +93,7 @@ public void setIocOptional(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIfPropertyCondition.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIfPropertyCondition.java index 9fcd56562..e1fbaa7e9 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIfPropertyCondition.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIfPropertyCondition.java @@ -93,6 +93,7 @@ public void setValue(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanImportModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanImportModel.java index 194b7af91..7ba9c2739 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanImportModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanImportModel.java @@ -41,6 +41,7 @@ public void setResource(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanInterceptorModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanInterceptorModel.java index 6d58d1266..cc6dfbbb5 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanInterceptorModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanInterceptorModel.java @@ -67,6 +67,7 @@ public void setOrder(int value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIocInjectValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIocInjectValue.java index 352eacc9f..994f0fdda 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIocInjectValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanIocInjectValue.java @@ -93,6 +93,7 @@ public void setType(io.nop.core.type.IGenericType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListModel.java index 9c2531402..847618663 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListModel.java @@ -197,6 +197,7 @@ public void setScope(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -206,6 +207,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListValue.java index 4d0543dc9..845cee37c 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListValue.java @@ -41,6 +41,7 @@ public void setListClass(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListenerModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListenerModel.java index 56bc5e72b..f49da37bf 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListenerModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanListenerModel.java @@ -171,6 +171,7 @@ public void setSource(io.nop.xlang.api.EvalCode value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -182,6 +183,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanMapModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanMapModel.java index c36b84f28..ec18681c1 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanMapModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanMapModel.java @@ -197,6 +197,7 @@ public void setScope(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -206,6 +207,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanMapValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanMapValue.java index 6526d4175..233101181 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanMapValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanMapValue.java @@ -171,6 +171,7 @@ public void setValueType(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -182,6 +183,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanModel.java index 8a35e8975..6c6ae9166 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanModel.java @@ -251,6 +251,7 @@ public void setPrimary(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -262,6 +263,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanNullValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanNullValue.java index f033ddb65..3f73aaa53 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanNullValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanNullValue.java @@ -15,6 +15,7 @@ public abstract class _BeanNullValue extends io.nop.core.resource.component.AbstractComponentModel { + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -24,6 +25,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanOnConfigRefresh.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanOnConfigRefresh.java index 10e7574dc..5421d214c 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanOnConfigRefresh.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanOnConfigRefresh.java @@ -93,6 +93,7 @@ public void setSource(io.nop.xlang.api.EvalCode value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPointcutModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPointcutModel.java index c49d8e9ec..082eab8c2 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPointcutModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPointcutModel.java @@ -67,6 +67,7 @@ public void setOrder(int value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropEntryValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropEntryValue.java index 0e706e3b9..7cc4bbbef 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropEntryValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropEntryValue.java @@ -67,6 +67,7 @@ public void setKey(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropValue.java index d23ce2cc4..24f225f7e 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropValue.java @@ -41,6 +41,7 @@ public void setBody(io.nop.ioc.model.IBeanPropValue value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -52,6 +53,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropertyModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropertyModel.java index d843d7063..79e3c2b41 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropertyModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropertyModel.java @@ -119,6 +119,7 @@ public void setValue(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropsValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropsValue.java index b08ce3845..f0f7d685b 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropsValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanPropsValue.java @@ -119,6 +119,7 @@ public void setMerge(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -130,6 +131,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanRefValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanRefValue.java index ce439fc14..3088b0776 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanRefValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanRefValue.java @@ -93,6 +93,7 @@ public void setIocOptional(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSetModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSetModel.java index 176ce0f91..a4621503a 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSetModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSetModel.java @@ -197,6 +197,7 @@ public void setScope(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -206,6 +207,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSetValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSetValue.java index fde2b84a4..c7b5df867 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSetValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSetValue.java @@ -41,6 +41,7 @@ public void setSetClass(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSimpleValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSimpleValue.java index 7433600a3..f01c22869 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSimpleValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanSimpleValue.java @@ -67,6 +67,7 @@ public void setType(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanUnlessPropertyCondition.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanUnlessPropertyCondition.java index 7b7a42a17..45389026e 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanUnlessPropertyCondition.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanUnlessPropertyCondition.java @@ -93,6 +93,7 @@ public void setValue(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanValue.java index 6539896cb..5d230df54 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanValue.java @@ -1033,6 +1033,7 @@ public void setScope(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -1054,6 +1055,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanXplValue.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanXplValue.java index df69e56a7..00f0026a6 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanXplValue.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeanXplValue.java @@ -67,6 +67,7 @@ public void setSource(io.nop.xlang.api.EvalCode value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeansModel.java b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeansModel.java index 1829c0361..a22675e2a 100644 --- a/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeansModel.java +++ b/nop-ioc/src/main/java/io/nop/ioc/model/_gen/_BeansModel.java @@ -535,6 +535,7 @@ public boolean hasUtilSets(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -562,6 +563,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-job/nop-job-core/src/main/java/io/nop/job/core/trigger/TriggerExecutorImpl.java b/nop-job/nop-job-core/src/main/java/io/nop/job/core/trigger/TriggerExecutorImpl.java index 0ca729a59..3e8cd0dfe 100644 --- a/nop-job/nop-job-core/src/main/java/io/nop/job/core/trigger/TriggerExecutorImpl.java +++ b/nop-job/nop-job-core/src/main/java/io/nop/job/core/trigger/TriggerExecutorImpl.java @@ -17,22 +17,12 @@ import io.nop.commons.lang.impl.Cancellable; import io.nop.job.api.ITriggerState; import io.nop.job.api.TriggerFireResult; -import io.nop.job.core.ITrigger; -import io.nop.job.core.ITriggerAction; -import io.nop.job.core.ITriggerContext; -import io.nop.job.core.ITriggerExecution; -import io.nop.job.core.ITriggerExecutor; -import io.nop.job.core.ITriggerHook; -import io.nop.job.core.JobCoreConstants; +import io.nop.job.core.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.sql.Timestamp; -import java.util.concurrent.Callable; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.CompletionStage; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.*; import static io.nop.job.core.JobCoreErrors.ERR_JOB_TRIGGER_FIRE_FAIL; @@ -342,7 +332,7 @@ private void onException(ITriggerContext context, TriggerFireResult result, Thro context.onException(current, error); LOG.info("nop.job.on-error:jobName={},epoch={},executionId={},error={}", context.getJobName(), - context.getEpoch(), context.getLastExecutionId(), result.getError(), exception); + context.getEpoch(), context.getLastExecutionId(), error, exception); if (globalHook != null) { globalHook.onException(current, exception, context); diff --git a/nop-job/nop-job-core/src/main/java/io/nop/job/core/utils/CronExpression.java b/nop-job/nop-job-core/src/main/java/io/nop/job/core/utils/CronExpression.java index 8e2b1b3f3..24c3b23c8 100644 --- a/nop-job/nop-job-core/src/main/java/io/nop/job/core/utils/CronExpression.java +++ b/nop-job/nop-job-core/src/main/java/io/nop/job/core/utils/CronExpression.java @@ -18,16 +18,9 @@ import io.nop.api.core.exceptions.NopException; import io.nop.commons.util.StringHelper; - import jakarta.annotation.Nullable; -import java.util.ArrayList; -import java.util.BitSet; -import java.util.Calendar; -import java.util.Collections; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.List; -import java.util.TimeZone; + +import java.util.*; import static io.nop.job.core.JobCoreErrors.ARG_CRON_EXPR; import static io.nop.job.core.JobCoreErrors.ERR_JOB_TRIGGER_PARSE_CRON_EXPR_FAIL; @@ -271,6 +264,8 @@ private void reset(Calendar calendar, List fields) { * Parse the given pattern expression. */ private void parse(String expression) throws IllegalArgumentException { + if (expression == null || expression.isEmpty()) + throw new IllegalArgumentException("empty cron expression"); String[] fields = StringHelper.tokenizeToStringArray(expression, " "); if (!areValidCronFields(fields)) { throw new IllegalArgumentException(String.format( diff --git a/nop-js/src/main/java/io/nop/js/engine/JavaScriptService.java b/nop-js/src/main/java/io/nop/js/engine/JavaScriptService.java index dcc83c6b6..4d729a487 100644 --- a/nop-js/src/main/java/io/nop/js/engine/JavaScriptService.java +++ b/nop-js/src/main/java/io/nop/js/engine/JavaScriptService.java @@ -19,7 +19,7 @@ public class JavaScriptService extends LifeCycleSupport implements IConfigRefreshable, IAsyncFunctionService { private String initScriptPath; private int workerCount = 5; - private volatile JavaScriptWorker[] workers; + private volatile JavaScriptWorker[] workers; //NOSONAR private DefaultThreadPoolExecutor executor; private Function jsLibLoader; diff --git a/nop-js/src/main/java/io/nop/js/engine/JavaScriptWorker.java b/nop-js/src/main/java/io/nop/js/engine/JavaScriptWorker.java index 56eee5723..2a5e3e0e4 100644 --- a/nop-js/src/main/java/io/nop/js/engine/JavaScriptWorker.java +++ b/nop-js/src/main/java/io/nop/js/engine/JavaScriptWorker.java @@ -259,7 +259,8 @@ public void run() { } } } catch (InterruptedException e) { //NOPMD - // ignore + Thread.currentThread().interrupt(); + throw NopException.adapt(e); } } while (!closed); diff --git a/nop-log/nop-log-java/src/main/java/io.nop.log.java/JavaLoggerConfigurator.java b/nop-log/nop-log-java/src/main/java/io.nop.log.java/JavaLoggerConfigurator.java index 266808cd9..70897ca72 100644 --- a/nop-log/nop-log-java/src/main/java/io.nop.log.java/JavaLoggerConfigurator.java +++ b/nop-log/nop-log-java/src/main/java/io.nop.log.java/JavaLoggerConfigurator.java @@ -47,7 +47,7 @@ public void changeLogLevel(String loggerName, LogLevel logLevel) { Level level = toLog4jLevel(logLevel); java.util.logging.Logger logger = java.util.logging.Logger.getLogger(loggerName); if (logger != null) { - logger.setLevel(level); + logger.setLevel(level); //NOSONAR } } diff --git a/nop-log/nop-log-log4j2/src/main/java/io/nop/log/log4j2/Log4j2Configurator.java b/nop-log/nop-log-log4j2/src/main/java/io/nop/log/log4j2/Log4j2Configurator.java index 83a023ebd..f868f3b29 100644 --- a/nop-log/nop-log-log4j2/src/main/java/io/nop/log/log4j2/Log4j2Configurator.java +++ b/nop-log/nop-log-log4j2/src/main/java/io/nop/log/log4j2/Log4j2Configurator.java @@ -53,7 +53,7 @@ public void changeLogLevel(String loggerName, LogLevel logLevel) { } } if (logger != null) { - logger.setLevel(level); + logger.setLevel(level); //NOSONAR } else { loggerContext.getConfiguration().addLogger(loggerName, new NopLoggerConfig(loggerName, level, true)); diff --git a/nop-log/nop-log-logback/src/main/java/io/nop/log/logback/LogbackConfigurator.java b/nop-log/nop-log-logback/src/main/java/io/nop/log/logback/LogbackConfigurator.java index 32ebfe391..d5bfa09d1 100644 --- a/nop-log/nop-log-logback/src/main/java/io/nop/log/logback/LogbackConfigurator.java +++ b/nop-log/nop-log-logback/src/main/java/io/nop/log/logback/LogbackConfigurator.java @@ -42,7 +42,7 @@ public void changeLogLevel(String loggerName, LogLevel logLevel) { LoggerContext context = (LoggerContext) loggerFactory; LOG.info("nop.log.change-log-level:loggerName={},logLevel={}", loggerName, logLevel); Logger logger = context.getLogger(loggerName); - logger.setLevel(toLogbackLevel(logLevel)); + logger.setLevel(toLogbackLevel(logLevel)); //NOSONAR } } diff --git a/nop-message/nop-message-pulsar/src/main/java/io/nop/message/pulsar/PulsarConsumeTask.java b/nop-message/nop-message-pulsar/src/main/java/io/nop/message/pulsar/PulsarConsumeTask.java index bd6a9f7b8..e508d64b1 100644 --- a/nop-message/nop-message-pulsar/src/main/java/io/nop/message/pulsar/PulsarConsumeTask.java +++ b/nop-message/nop-message-pulsar/src/main/java/io/nop/message/pulsar/PulsarConsumeTask.java @@ -8,12 +8,7 @@ package io.nop.message.pulsar; import io.nop.api.core.beans.ApiMessage; -import io.nop.api.core.message.ConsumeLater; -import io.nop.api.core.message.IMessageConsumeContext; -import io.nop.api.core.message.IMessageConsumer; -import io.nop.api.core.message.MessageSendOptions; -import io.nop.api.core.message.MessageSubscriptionConfig; -import io.nop.api.core.message.TopicMessage; +import io.nop.api.core.message.*; import io.nop.api.core.util.FutureHelper; import org.apache.pulsar.client.api.Consumer; import org.apache.pulsar.client.api.Message; @@ -38,6 +33,8 @@ public class PulsarConsumeTask { private final PulsarMessageService service; private final MessageSubscriptionConfig config; + private volatile boolean active = false; + public PulsarConsumeTask(PulsarMessageService service, Executor executor, Consumer pulsarConsumer, MessageSubscriptionConfig config) { this.service = service; @@ -73,7 +70,11 @@ private void runTask() { LOG.error("nop.err.pulsar.consume-fail", e); config.getConsumer().onException(e); } - } while (true); + } while (active); + } + + public void stop() { + active = false; } void batchConsume() throws Exception { diff --git a/nop-nosql/nop-nosql-lettuce/src/main/java/io/nop/nosql/lettuce/impl/LettuceRedisConnectionProvider.java b/nop-nosql/nop-nosql-lettuce/src/main/java/io/nop/nosql/lettuce/impl/LettuceRedisConnectionProvider.java index 61470caef..f465f3326 100644 --- a/nop-nosql/nop-nosql-lettuce/src/main/java/io/nop/nosql/lettuce/impl/LettuceRedisConnectionProvider.java +++ b/nop-nosql/nop-nosql-lettuce/src/main/java/io/nop/nosql/lettuce/impl/LettuceRedisConnectionProvider.java @@ -51,7 +51,6 @@ public StatefulRedisClusterConnection getConnection() { @Override public void refreshConfig() { - this.config = config; if (connectionSupplier != null) { int n = config.getConnectionPoolSize(); if (n <= 0) { diff --git a/nop-ooxml/nop-ooxml-common/src/main/java/io/nop/ooxml/common/model/PackagingURIHelper.java b/nop-ooxml/nop-ooxml-common/src/main/java/io/nop/ooxml/common/model/PackagingURIHelper.java index 987e440fb..4dd78d2fe 100644 --- a/nop-ooxml/nop-ooxml-common/src/main/java/io/nop/ooxml/common/model/PackagingURIHelper.java +++ b/nop-ooxml/nop-ooxml-common/src/main/java/io/nop/ooxml/common/model/PackagingURIHelper.java @@ -157,13 +157,13 @@ public static URI getPackageRootUri() { * @param partUri URI to check. * @return true if the URI false. */ - public static boolean isRelationshipPartURI(URI partUri) { - if (partUri == null) - throw new IllegalArgumentException("partUri"); - - return partUri.getPath() - .matches(".*" + RELATIONSHIP_PART_SEGMENT_NAME + ".*" + RELATIONSHIP_PART_EXTENSION_NAME + "$"); - } +// public static boolean isRelationshipPartURI(URI partUri) { +// if (partUri == null) +// throw new IllegalArgumentException("partUri"); +// +// return partUri.getPath() +// .matches(".*" + RELATIONSHIP_PART_SEGMENT_NAME + ".*" + RELATIONSHIP_PART_EXTENSION_NAME + "$"); +// } /** * Get file name from the specified URI. @@ -410,30 +410,30 @@ public static URI getURIFromPath(String path) { return retUri; } - /** - * Get the source part URI from a specified relationships part. - * - * @param relationshipPartUri The relationship part use to retrieve the source part. - * @return The source part URI from the specified relationships part. - */ - public static URI getSourcePartUriFromRelationshipPartUri(URI relationshipPartUri) { - if (relationshipPartUri == null) - throw new IllegalArgumentException("Must not be null"); - - if (!isRelationshipPartURI(relationshipPartUri)) - throw new IllegalArgumentException("Must be a relationship part"); - - if (relationshipPartUri.compareTo(PACKAGE_RELATIONSHIPS_ROOT_URI) == 0) - return PACKAGE_ROOT_URI; - - String filename = relationshipPartUri.getPath(); - String filenameWithoutExtension = getFilenameWithoutExtension(relationshipPartUri); - filename = filename.substring(0, - ((filename.length() - filenameWithoutExtension.length()) - RELATIONSHIP_PART_EXTENSION_NAME.length())); - filename = filename.substring(0, filename.length() - RELATIONSHIP_PART_SEGMENT_NAME.length() - 1); - filename = combine(filename, filenameWithoutExtension); - return getURIFromPath(filename); - } +// /** +// * Get the source part URI from a specified relationships part. +// * +// * @param relationshipPartUri The relationship part use to retrieve the source part. +// * @return The source part URI from the specified relationships part. +// */ +// public static URI getSourcePartUriFromRelationshipPartUri(URI relationshipPartUri) { +// if (relationshipPartUri == null) +// throw new IllegalArgumentException("Must not be null"); +// +// if (!isRelationshipPartURI(relationshipPartUri)) +// throw new IllegalArgumentException("Must be a relationship part"); +// +// if (relationshipPartUri.compareTo(PACKAGE_RELATIONSHIPS_ROOT_URI) == 0) +// return PACKAGE_ROOT_URI; +// +// String filename = relationshipPartUri.getPath(); +// String filenameWithoutExtension = getFilenameWithoutExtension(relationshipPartUri); +// filename = filename.substring(0, +// ((filename.length() - filenameWithoutExtension.length()) - RELATIONSHIP_PART_EXTENSION_NAME.length())); +// filename = filename.substring(0, filename.length() - RELATIONSHIP_PART_SEGMENT_NAME.length() - 1); +// filename = combine(filename, filenameWithoutExtension); +// return getURIFromPath(filename); +// } /** * Create an OPC compliant part name by throwing an exception if the URI is not valid. diff --git a/nop-ooxml/nop-ooxml-common/src/main/java/io/nop/ooxml/common/model/internal/ContentType.java b/nop-ooxml/nop-ooxml-common/src/main/java/io/nop/ooxml/common/model/internal/ContentType.java index 05a89a81c..1f025294d 100644 --- a/nop-ooxml/nop-ooxml-common/src/main/java/io/nop/ooxml/common/model/internal/ContentType.java +++ b/nop-ooxml/nop-ooxml-common/src/main/java/io/nop/ooxml/common/model/internal/ContentType.java @@ -89,7 +89,7 @@ public final class ContentType { * * CHAR = */ - String token = "[\\x21-\\x7E&&[^()<>@,;:\\\\/\"\\[\\]?={}\\x20\\x09]]"; + String token = "[\\x21-\\x7E&&[^()<>@,;:\\\\/\"\\[\\]?={}\\x20\\x09]]"; //NOSONAR /* * parameter = attribute "=" value @@ -98,7 +98,7 @@ public final class ContentType { * * value = token | quoted-string */ - String parameter = "(" + token + "+)=(\"?" + token + "+\"?)"; + String parameter = "(" + token + "+)=(\"?" + token + "+\"?)"; //NOSONAR /* * Pattern for media type. * diff --git a/nop-ooxml/nop-ooxml-docx/src/main/java/io/nop/ooxml/docx/parse/WordTemplateParser.java b/nop-ooxml/nop-ooxml-docx/src/main/java/io/nop/ooxml/docx/parse/WordTemplateParser.java index 6ef35fbf6..3ab32e609 100644 --- a/nop-ooxml/nop-ooxml-docx/src/main/java/io/nop/ooxml/docx/parse/WordTemplateParser.java +++ b/nop-ooxml/nop-ooxml-docx/src/main/java/io/nop/ooxml/docx/parse/WordTemplateParser.java @@ -208,7 +208,7 @@ void normalizeLinks(List links) { link.getLinkNode().replaceBy(link.getSourceNode()); } else if (link.getLinkType() == WordHyperlink.LinkType.xpl) { XNode node = link.getSourceNode(); - if (node.equals("w:p")) { + if (node.getTagName().equals("w:p")) { link.getLinkNode().closest("w:p").replaceBy(link.getSourceNode()); } else { link.getLinkNode().replaceBy(link.getSourceNode()); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmAliasModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmAliasModel.java index 4b71ebe33..585f3d9bd 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmAliasModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmAliasModel.java @@ -171,6 +171,7 @@ public void setType(io.nop.core.type.IGenericType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -180,6 +181,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmColumnModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmColumnModel.java index c22ba276f..fa34d4248 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmColumnModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmColumnModel.java @@ -645,6 +645,7 @@ public void setUpdatable(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -654,6 +655,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComponentModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComponentModel.java index 9edace00b..5ed05e5ea 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComponentModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComponentModel.java @@ -223,6 +223,7 @@ public void setTagSet(java.util.Set value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -234,6 +235,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComponentPropModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComponentPropModel.java index f16bb9ecd..7486ae8c9 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComponentPropModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComponentPropModel.java @@ -67,6 +67,7 @@ public void setName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComputeArgModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComputeArgModel.java index 983ca2f0e..37af6a8c2 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComputeArgModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComputeArgModel.java @@ -67,6 +67,7 @@ public void setType(io.nop.core.type.IGenericType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComputePropModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComputePropModel.java index 3753586df..b8d49fde6 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComputePropModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmComputePropModel.java @@ -224,6 +224,7 @@ public void setType(io.nop.core.type.IGenericType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -235,6 +236,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmDomainModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmDomainModel.java index dd7f27f62..48eef4ec6 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmDomainModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmDomainModel.java @@ -197,6 +197,7 @@ public void setStdSqlType(io.nop.commons.type.StdSqlType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -206,6 +207,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmEntityModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmEntityModel.java index c73d279da..d3c2c19b5 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmEntityModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmEntityModel.java @@ -1377,6 +1377,7 @@ public void setVersionProp(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -1400,6 +1401,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmIndexColumnModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmIndexColumnModel.java index 272186c70..12ba86b52 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmIndexColumnModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmIndexColumnModel.java @@ -67,6 +67,7 @@ public void setName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmIndexModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmIndexModel.java index 7a2c845ee..801c6f56c 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmIndexModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmIndexModel.java @@ -197,6 +197,7 @@ public void setUnique(java.lang.Boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -208,6 +209,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmJoinOnModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmJoinOnModel.java index cbeece4b6..aca14a704 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmJoinOnModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmJoinOnModel.java @@ -119,6 +119,7 @@ public void setRightValue(java.lang.Object value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmModel.java index 3a85e0839..8c1e42a4b 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmModel.java @@ -301,6 +301,7 @@ public void setVersion(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -318,6 +319,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmPackageModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmPackageModel.java index a578ca0f6..0ef07325a 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmPackageModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmPackageModel.java @@ -145,6 +145,7 @@ public void setName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -154,6 +155,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmRefSetModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmRefSetModel.java index de37efca7..1680f2c54 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmRefSetModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmRefSetModel.java @@ -93,6 +93,7 @@ public boolean hasSort(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -104,6 +105,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmReferenceModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmReferenceModel.java index 1dfae2f38..fc4ef865c 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmReferenceModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmReferenceModel.java @@ -433,6 +433,7 @@ public void setType(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -444,6 +445,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmToManyReferenceModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmToManyReferenceModel.java index 86570ae6c..36a919891 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmToManyReferenceModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmToManyReferenceModel.java @@ -149,6 +149,7 @@ public void setUseGlobalCache(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -160,6 +161,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmToOneReferenceModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmToOneReferenceModel.java index ecbc0e9a9..110b56ede 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmToOneReferenceModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmToOneReferenceModel.java @@ -119,6 +119,7 @@ public void setReverseDepends(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -130,6 +131,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmUniqueKeyModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmUniqueKeyModel.java index 6117375ed..c3624f00b 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmUniqueKeyModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/_gen/_OrmUniqueKeyModel.java @@ -145,6 +145,7 @@ public void setName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -154,6 +155,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorActionModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorActionModel.java index c7aa73cac..8c77baa3d 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorActionModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorActionModel.java @@ -119,6 +119,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorEntityModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorEntityModel.java index 1cf2c6a4d..4f694657d 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorEntityModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorEntityModel.java @@ -75,6 +75,7 @@ public void setName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -86,6 +87,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorModel.java b/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorModel.java index 6523d1553..88cfb2ea0 100644 --- a/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorModel.java +++ b/nop-orm-model/src/main/java/io/nop/orm/model/interceptor/_gen/_OrmInterceptorModel.java @@ -67,6 +67,7 @@ public boolean hasEntities(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -78,6 +79,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm-pdm/src/main/java/io/nop/orm/pdm/PdmModelParser.java b/nop-orm-pdm/src/main/java/io/nop/orm/pdm/PdmModelParser.java index 2a2b507e4..0cad91ddc 100644 --- a/nop-orm-pdm/src/main/java/io/nop/orm/pdm/PdmModelParser.java +++ b/nop-orm-pdm/src/main/java/io/nop/orm/pdm/PdmModelParser.java @@ -26,113 +26,17 @@ import io.nop.dao.dialect.IDialect; import io.nop.dao.dialect.SQLDataType; import io.nop.dao.dialect.model.SqlDataTypeModel; -import io.nop.orm.model.OrmColumnModel; -import io.nop.orm.model.OrmDomainModel; -import io.nop.orm.model.OrmEntityModel; -import io.nop.orm.model.OrmIndexColumnModel; -import io.nop.orm.model.OrmIndexModel; -import io.nop.orm.model.OrmJoinOnModel; -import io.nop.orm.model.OrmModel; -import io.nop.orm.model.OrmModelErrors; -import io.nop.orm.model.OrmPackageModel; -import io.nop.orm.model.OrmRefSetModel; -import io.nop.orm.model.OrmReferenceModel; -import io.nop.orm.model.OrmToOneReferenceModel; -import io.nop.orm.model.OrmUniqueKeyModel; +import io.nop.orm.model.*; import io.nop.xlang.xdef.IStdDomainHandler; import io.nop.xlang.xdef.domain.StdDomainRegistry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeMap; +import java.util.*; import java.util.stream.Collectors; -import static io.nop.orm.model.OrmModelErrors.ARG_DATA_TYPE; -import static io.nop.orm.model.OrmModelErrors.ARG_ENTITY_NAME; -import static io.nop.orm.model.OrmModelErrors.ARG_OTHER_PROP_NAME; -import static io.nop.orm.model.OrmModelErrors.ARG_PROP_NAME; -import static io.nop.orm.model.OrmModelErrors.ERR_ORM_INVALID_DATA_TYPE; -import static io.nop.orm.model.OrmModelErrors.ERR_ORM_MODEL_MULTIPLE_LABEL_PROP; -import static io.nop.orm.model.OrmModelErrors.ERR_ORM_MODEL_MULTIPLE_STATE_PROP; -import static io.nop.orm.model.OrmModelErrors.ERR_ORM_MODEL_MULTIPLE_VERSION_PROP; -import static io.nop.orm.pdm.PdmModelConstants.ASCENDING_NAME; -import static io.nop.orm.pdm.PdmModelConstants.CHILD_ROLE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.CHILD_TABLE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.CODE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.COLUMN1_NAME; -import static io.nop.orm.pdm.PdmModelConstants.COLUMN2_NAME; -import static io.nop.orm.pdm.PdmModelConstants.COLUMNS_NAME; -import static io.nop.orm.pdm.PdmModelConstants.COLUMN_MANDATORY_NAME; -import static io.nop.orm.pdm.PdmModelConstants.COLUMN_NAME; -import static io.nop.orm.pdm.PdmModelConstants.COMMENT_NAME; -import static io.nop.orm.pdm.PdmModelConstants.COMPUTED_EXPRESSION; -import static io.nop.orm.pdm.PdmModelConstants.CONSTRAINT_NAME_NAME; -import static io.nop.orm.pdm.PdmModelConstants.DATATYPE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.DELETE_CONSTRAINT_NAME; -import static io.nop.orm.pdm.PdmModelConstants.DIMENSIONAL_TYPE_DIMENSION; -import static io.nop.orm.pdm.PdmModelConstants.DIMENSIONAL_TYPE_FACT; -import static io.nop.orm.pdm.PdmModelConstants.DIMENSIONAL_TYPE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.DOMAINS_NAME; -import static io.nop.orm.pdm.PdmModelConstants.DOMAIN_NAME; -import static io.nop.orm.pdm.PdmModelConstants.FOREIGN_KEY_CONSTAINT_NAME_NAME; -import static io.nop.orm.pdm.PdmModelConstants.GENERATED_NAME; -import static io.nop.orm.pdm.PdmModelConstants.ID_NAME; -import static io.nop.orm.pdm.PdmModelConstants.ID_POSTFIX; -import static io.nop.orm.pdm.PdmModelConstants.INDEXES_NAME; -import static io.nop.orm.pdm.PdmModelConstants.INDEX_COLUMNS_NAME; -import static io.nop.orm.pdm.PdmModelConstants.JOINS_NAME; -import static io.nop.orm.pdm.PdmModelConstants.KEYS_NAME; -import static io.nop.orm.pdm.PdmModelConstants.KEY_COLUMNS_NAME; -import static io.nop.orm.pdm.PdmModelConstants.KEY_NAME; -import static io.nop.orm.pdm.PdmModelConstants.KEY_PRIMARY_NAME; -import static io.nop.orm.pdm.PdmModelConstants.LENGTH_NAME; -import static io.nop.orm.pdm.PdmModelConstants.MANDATORY_NAME; -import static io.nop.orm.pdm.PdmModelConstants.NAME_NAME; -import static io.nop.orm.pdm.PdmModelConstants.OBJECT1_NAME; -import static io.nop.orm.pdm.PdmModelConstants.OBJECT2_NAME; -import static io.nop.orm.pdm.PdmModelConstants.PACKAGES_NAME; -import static io.nop.orm.pdm.PdmModelConstants.PACKAGE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.PARENT_ROLE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.PARENT_TABLE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.PHYSICAL_DOMAIN_NAME; -import static io.nop.orm.pdm.PdmModelConstants.PRECISION_NAME; -import static io.nop.orm.pdm.PdmModelConstants.REFERENCES_NAME; -import static io.nop.orm.pdm.PdmModelConstants.REFERENCE_JOIN_NAME; -import static io.nop.orm.pdm.PdmModelConstants.REFERENCE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.REF_NAME; -import static io.nop.orm.pdm.PdmModelConstants.SHORTCUT_NAME; -import static io.nop.orm.pdm.PdmModelConstants.STEREOTYPE_BASIC; -import static io.nop.orm.pdm.PdmModelConstants.STEREOTYPE_LABEL; -import static io.nop.orm.pdm.PdmModelConstants.STEREOTYPE_LAZY; -import static io.nop.orm.pdm.PdmModelConstants.STEREOTYPE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.STEREOTYPE_PK; -import static io.nop.orm.pdm.PdmModelConstants.STEREOTYPE_REVISION; -import static io.nop.orm.pdm.PdmModelConstants.STEREOTYPE_STATE; -import static io.nop.orm.pdm.PdmModelConstants.STEREOTYPE_VERSION; -import static io.nop.orm.pdm.PdmModelConstants.STEREOTYPE_WF; -import static io.nop.orm.pdm.PdmModelConstants.TABLES_NAME; -import static io.nop.orm.pdm.PdmModelConstants.TABLE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.TABLE_VIEW1_NAME; -import static io.nop.orm.pdm.PdmModelConstants.TABLE_VIEW2_NAME; -import static io.nop.orm.pdm.PdmModelConstants.TARGET_PREFIX; -import static io.nop.orm.pdm.PdmModelConstants.UNIQUE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.VIEWS_NAME; -import static io.nop.orm.pdm.PdmModelConstants.VIEW_COLUMN_COLUMNS_NAME; -import static io.nop.orm.pdm.PdmModelConstants.VIEW_COLUMN_NAME; -import static io.nop.orm.pdm.PdmModelConstants.VIEW_NAME; -import static io.nop.orm.pdm.PdmModelConstants.VIEW_REFERENCES_NAME; -import static io.nop.orm.pdm.PdmModelConstants.VIEW_REFERENCE_JOINS_NAME; -import static io.nop.orm.pdm.PdmModelConstants.VIEW_REFERENCE_JOIN_NAME; -import static io.nop.orm.pdm.PdmModelConstants.VIEW_REFERENCE_NAME; -import static io.nop.orm.pdm.PdmModelConstants.VIEW_SQLQUERY_NAME; -import static io.nop.orm.pdm.PdmModelConstants._ID_POSTFIX; +import static io.nop.orm.model.OrmModelErrors.*; +import static io.nop.orm.pdm.PdmModelConstants.*; public class PdmModelParser extends AbstractResourceParser { final Logger LOG = LoggerFactory.getLogger(PdmModelParser.class); @@ -800,8 +704,8 @@ RefInfo collectRefInfo(XNode node) { : getChildrenPropName(childTableInfo, oneToOne); } if (refInfo.parentDesc.displayName == null) { - refInfo.parentDesc.displayName = oneToOne ? childTableInfo.getDisplayName() - : childTableInfo.getDisplayName(); + refInfo.parentDesc.displayName = childTableInfo.getDisplayName(); + // : childTableInfo.getDisplayName(); } refInfo.relation = rel; diff --git a/nop-orm-tdengine/src/main/java/io/nop/orm/tdengine/driver/TdEntityPersistDriver.java b/nop-orm-tdengine/src/main/java/io/nop/orm/tdengine/driver/TdEntityPersistDriver.java index 9fc9358ab..a46c8b9d5 100644 --- a/nop-orm-tdengine/src/main/java/io/nop/orm/tdengine/driver/TdEntityPersistDriver.java +++ b/nop-orm-tdengine/src/main/java/io/nop/orm/tdengine/driver/TdEntityPersistDriver.java @@ -31,12 +31,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.TreeMap; +import java.util.*; import java.util.concurrent.CompletionStage; import java.util.stream.Collectors; @@ -97,7 +92,7 @@ public CompletionStage loadAsync(ShardSelection shard, IOrmEntity entity, } private String getQuerySpace(ShardSelection shard) { - if (shard == null) { + if (shard != null) { return DaoHelper.normalizeQuerySpace(shard.getQuerySpace()); } return DaoHelper.normalizeQuerySpace(tableMeta.getEntityModel().getQuerySpace()); diff --git a/nop-orm/src/main/java/io/nop/orm/dao/DaoQueryHelper.java b/nop-orm/src/main/java/io/nop/orm/dao/DaoQueryHelper.java index d7abd7652..eebce4290 100644 --- a/nop-orm/src/main/java/io/nop/orm/dao/DaoQueryHelper.java +++ b/nop-orm/src/main/java/io/nop/orm/dao/DaoQueryHelper.java @@ -29,15 +29,7 @@ import java.util.Map; import java.util.stream.Collectors; -import static io.nop.orm.OrmErrors.ARG_ENTITY_NAME; -import static io.nop.orm.OrmErrors.ARG_FUNC_NAME; -import static io.nop.orm.OrmErrors.ARG_OWNER; -import static io.nop.orm.OrmErrors.ARG_PROP_PATH; -import static io.nop.orm.OrmErrors.ERR_ORM_INVALID_ENTITY_NAME; -import static io.nop.orm.OrmErrors.ERR_ORM_INVALID_FIELD_NAME; -import static io.nop.orm.OrmErrors.ERR_ORM_INVALID_FUNC_NAME; -import static io.nop.orm.OrmErrors.ERR_ORM_INVALID_OWNER_NAME; -import static io.nop.orm.OrmErrors.ERR_ORM_QUERY_EXAMPLE_PROP_NOT_INITED; +import static io.nop.orm.OrmErrors.*; /** * 提供根据Query信息拼接SQL语句的帮助函数 @@ -113,6 +105,9 @@ public static void checkEntityName(String name) { } public static SQL.SqlBuilder queryToSelectFieldsSql(QueryBean query, String delFlagProp) { + if (query == null) + throw new IllegalArgumentException("null query"); + SQL.SqlBuilder sb = newSQL(query); sb.select(); diff --git a/nop-orm/src/main/java/io/nop/orm/dao/OrmEntityDao.java b/nop-orm/src/main/java/io/nop/orm/dao/OrmEntityDao.java index ae471fff8..dc4dff138 100644 --- a/nop-orm/src/main/java/io/nop/orm/dao/OrmEntityDao.java +++ b/nop-orm/src/main/java/io/nop/orm/dao/OrmEntityDao.java @@ -23,35 +23,17 @@ import io.nop.dao.api.IEntityDao; import io.nop.dao.api.IEntityDaoExtension; import io.nop.dao.exceptions.UnknownEntityException; -import io.nop.orm.IOrmBatchLoadQueue; -import io.nop.orm.IOrmEntity; -import io.nop.orm.IOrmSession; -import io.nop.orm.IOrmTemplate; -import io.nop.orm.OrmConstants; -import io.nop.orm.OrmEntityState; +import io.nop.orm.*; import io.nop.orm.model.IColumnModel; import io.nop.orm.model.IEntityModel; import io.nop.orm.model.IEntityPropModel; import io.nop.orm.model.IEntityRelationModel; - import jakarta.annotation.PostConstruct; import jakarta.inject.Inject; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static io.nop.orm.OrmErrors.ARG_DAO_ENTITY_NAME; -import static io.nop.orm.OrmErrors.ARG_ENTITY; -import static io.nop.orm.OrmErrors.ARG_ENTITY_ID; -import static io.nop.orm.OrmErrors.ARG_ENTITY_NAME; -import static io.nop.orm.OrmErrors.ARG_PROP_NAME; -import static io.nop.orm.OrmErrors.ERR_DAO_PROP_NOT_TO_ONE_RELATION; -import static io.nop.orm.OrmErrors.ERR_ORM_DAO_ENTITY_NAME_NOT_FOR_DAO; -import static io.nop.orm.OrmErrors.ERR_ORM_UPDATE_ENTITY_NOT_MANAGED; -import static io.nop.orm.OrmErrors.ERR_ORM_UPDATE_ENTITY_NO_CURRENT_SESSION; + +import java.util.*; + +import static io.nop.orm.OrmErrors.*; public class OrmEntityDao implements IOrmEntityDao { private IOrmTemplate ormTemplate; @@ -625,6 +607,10 @@ public List findPrev(T lastEntity, ITreeBean filter, List ord @Override public IEntityDao propDao(String propName) { IEntityPropModel propModel = _getPropModel(getEntityModel(), propName, false); + if (propModel == null) + throw new NopException(ERR_DAO_PROP_NOT_TO_ONE_RELATION).param(ARG_ENTITY_NAME, this.getEntityName()) + .param(ARG_PROP_NAME, propName); + String propEntityName; if (propModel.isRelationModel()) { propEntityName = ((IEntityRelationModel) propModel).getRefEntityModel().getName(); diff --git a/nop-orm/src/main/java/io/nop/orm/driver/jdbc/JdbcEntityPersistDriver.java b/nop-orm/src/main/java/io/nop/orm/driver/jdbc/JdbcEntityPersistDriver.java index 61e91d450..ff2a7743a 100644 --- a/nop-orm/src/main/java/io/nop/orm/driver/jdbc/JdbcEntityPersistDriver.java +++ b/nop-orm/src/main/java/io/nop/orm/driver/jdbc/JdbcEntityPersistDriver.java @@ -67,7 +67,7 @@ public class JdbcEntityPersistDriver implements IEntityPersistDriver { private IDataParameterBinder[] binders; - private volatile EntitySQL lastUpdateSql; + private volatile EntitySQL lastUpdateSql; //NOSONAR IJdbcTemplate jdbc() { return jdbcTemplate; diff --git a/nop-orm/src/main/java/io/nop/orm/mdx/MdxQueryExecutor.java b/nop-orm/src/main/java/io/nop/orm/mdx/MdxQueryExecutor.java index 32c719644..9f3ee597b 100644 --- a/nop-orm/src/main/java/io/nop/orm/mdx/MdxQueryExecutor.java +++ b/nop-orm/src/main/java/io/nop/orm/mdx/MdxQueryExecutor.java @@ -127,7 +127,7 @@ public List findList(QueryBean query, IRowMapper resultMapper) { List records = new ArrayList<>(ret.size()); for (int i = 0, n = ret.size(); i < n; i++) { IDataRow row = new MapDataRow(meta, true, ret.get(i)); - T record = resultMapper.mapRow(row, i + 1, DefaultFieldMapper.INSTANCE); + T record = resultMapper.mapRow(row, i + 1L, DefaultFieldMapper.INSTANCE); records.add(record); } return records; diff --git a/nop-orm/src/main/java/io/nop/orm/persister/OrmRevisionHelper.java b/nop-orm/src/main/java/io/nop/orm/persister/OrmRevisionHelper.java index 56bea5469..8eab5c52b 100644 --- a/nop-orm/src/main/java/io/nop/orm/persister/OrmRevisionHelper.java +++ b/nop-orm/src/main/java/io/nop/orm/persister/OrmRevisionHelper.java @@ -17,12 +17,7 @@ import java.util.Objects; -import static io.nop.orm.OrmErrors.ARG_REV_BEGIN_VER; -import static io.nop.orm.OrmErrors.ARG_REV_END_VER; -import static io.nop.orm.OrmErrors.ARG_REV_VER; -import static io.nop.orm.OrmErrors.ERR_ORM_ENTITY_ALREADY_EXISTS; -import static io.nop.orm.OrmErrors.ERR_ORM_ENTITY_NOT_CURRENT_REVISION; -import static io.nop.orm.OrmErrors.ERR_ORM_ENTITY_REV_VER_IS_LESS_THAN_HIS_VER; +import static io.nop.orm.OrmErrors.*; public class OrmRevisionHelper { public static void onRevSave(IEntityModel entityModel, IOrmEntity entity, EntityPersisterImpl persister, @@ -48,7 +43,8 @@ public static void onRevSave(IEntityModel entityModel, IOrmEntity entity, Entity int endVerPropId = entityModel.getNopRevEndVarPropId(); if (endVerPropId > 0) { entity.orm_internalSet(endVerPropId, OrmConstants.NOP_VER_MAX_VALUE); - oldEntity.orm_propValue(endVerPropId, ver); + if (oldEntity != null) + oldEntity.orm_propValue(endVerPropId, ver); } if (oldEntity != null) diff --git a/nop-orm/src/main/java/io/nop/orm/sql/GenSqlHelper.java b/nop-orm/src/main/java/io/nop/orm/sql/GenSqlHelper.java index 8f8d1fb5c..04fe6eb87 100644 --- a/nop-orm/src/main/java/io/nop/orm/sql/GenSqlHelper.java +++ b/nop-orm/src/main/java/io/nop/orm/sql/GenSqlHelper.java @@ -394,7 +394,7 @@ public static CollectionSQL genCollectionBatchLoadSqlPart(IDialect dialect, IEnt sb.and(); List ownerJoins = getOwnerBatchLoadJoins(collectionModel); - if (ownerJoins != null) { + if (ownerJoins.size() == 1) { IColumnModel col = (IColumnModel) ownerJoins.get(0).getRightPropModel(); appendCol(sb, dialect, null, col); } else { diff --git a/nop-orm/src/main/java/io/nop/orm/sql/GenSqlTransformer.java b/nop-orm/src/main/java/io/nop/orm/sql/GenSqlTransformer.java index 806e039aa..7ea58cade 100644 --- a/nop-orm/src/main/java/io/nop/orm/sql/GenSqlTransformer.java +++ b/nop-orm/src/main/java/io/nop/orm/sql/GenSqlTransformer.java @@ -195,6 +195,6 @@ void validateParamCount(SQL sql, List paramValues) { int expectCount = sql.getValueMarkerCount(); if (paramCount != expectCount) throw new OrmException(ERR_ORM_SQL_PARAM_COUNT_MISMATCH).param(ARG_SQL, sql) - .param(ARG_COUNT, paramValues.size()).param(ARG_EXPECTED, expectCount); + .param(ARG_COUNT, paramCount).param(ARG_EXPECTED, expectCount); } } \ No newline at end of file diff --git a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_EqlSqlItemModel.java b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_EqlSqlItemModel.java index 71f46caf6..3c47437f5 100644 --- a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_EqlSqlItemModel.java +++ b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_EqlSqlItemModel.java @@ -41,6 +41,7 @@ public void setSource(io.nop.core.lang.sql.ISqlGenerator value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_NativeSqlItemModel.java b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_NativeSqlItemModel.java index 43c9447c6..a4e6dacda 100644 --- a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_NativeSqlItemModel.java +++ b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_NativeSqlItemModel.java @@ -67,6 +67,7 @@ public void setSource(io.nop.core.lang.sql.ISqlGenerator value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_QuerySqlItemModel.java b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_QuerySqlItemModel.java index 7169d8690..ac55be4b8 100644 --- a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_QuerySqlItemModel.java +++ b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_QuerySqlItemModel.java @@ -41,6 +41,7 @@ public void setSource(io.nop.core.lang.xml.IXNodeGenerator value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlFieldModel.java b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlFieldModel.java index d00aefe16..96b1f3b89 100644 --- a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlFieldModel.java +++ b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlFieldModel.java @@ -67,6 +67,7 @@ public void setStdSqlType(io.nop.commons.type.StdSqlType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlFragmentModel.java b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlFragmentModel.java index c2d0872e4..5c4d0933b 100644 --- a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlFragmentModel.java +++ b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlFragmentModel.java @@ -67,6 +67,7 @@ public void setSource(io.nop.core.lang.sql.ISqlGenerator value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlItemArgModel.java b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlItemArgModel.java index ac9f91243..8057f3c28 100644 --- a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlItemArgModel.java +++ b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlItemArgModel.java @@ -173,6 +173,7 @@ public void setSchema(io.nop.xlang.xmeta.ISchema value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -184,6 +185,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlItemModel.java b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlItemModel.java index cc732a109..d46ee4d05 100644 --- a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlItemModel.java +++ b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlItemModel.java @@ -509,6 +509,7 @@ public void setValidateInput(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -524,6 +525,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlLibModel.java b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlLibModel.java index 78e1bbb30..905c8cfc2 100644 --- a/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlLibModel.java +++ b/nop-orm/src/main/java/io/nop/orm/sql_lib/_gen/_SqlLibModel.java @@ -119,6 +119,7 @@ public boolean hasSqls(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -132,6 +133,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/input/RandomAccessFileRecordBinaryInput.java b/nop-record/src/main/java/io/nop/record/input/RandomAccessFileRecordBinaryInput.java index 3febae008..fbc197e6b 100644 --- a/nop-record/src/main/java/io/nop/record/input/RandomAccessFileRecordBinaryInput.java +++ b/nop-record/src/main/java/io/nop/record/input/RandomAccessFileRecordBinaryInput.java @@ -159,7 +159,7 @@ public int readS4be() { if ((b1 | b2 | b3 | b4) < 0) { throw new EOFException(); } else { - return (b1 << 24) + (b2 << 16) + (b3 << 8) + (b4 << 0); + return (b1 << 24) + (b2 << 16) + (b3 << 8) + (b4); } } catch (IOException e) { throw new RuntimeException(e); @@ -181,7 +181,7 @@ public short readS2le() { if ((b1 | b2) < 0) { throw new EOFException(); } else { - return (short) ((b2 << 8) + (b1 << 0)); + return (short) ((b2 << 8) + (b1)); } } catch (IOException e) { throw new RuntimeException(e); @@ -198,7 +198,7 @@ public int readS4le() { if ((b1 | b2 | b3 | b4) < 0) { throw new EOFException(); } else { - return (b4 << 24) + (b3 << 16) + (b2 << 8) + (b1 << 0); + return (b4 << 24) + (b3 << 16) + (b2 << 8) + (b1); } } catch (IOException e) { throw new RuntimeException(e); @@ -234,7 +234,7 @@ public int readU2be() { if ((b1 | b2) < 0) { throw new EOFException(); } else { - return (b1 << 8) + (b2 << 0); + return (b1 << 8) + (b2); } } catch (IOException e) { throw new RuntimeException(e); @@ -251,7 +251,7 @@ public long readU4be() { if ((b1 | b2 | b3 | b4) < 0) { throw new EOFException(); } else { - return (b1 << 24) + (b2 << 16) + (b3 << 8) + (b4 << 0); + return (b1 << 24) + (b2 << 16) + (b3 << 8) + (b4); } } catch (IOException e) { throw new RuntimeException(e); @@ -266,7 +266,7 @@ public int readU2le() { if ((b1 | b2) < 0) { throw new EOFException(); } else { - return (b2 << 8) + (b1 << 0); + return (b2 << 8) + (b1); } } catch (IOException e) { throw new RuntimeException(e); @@ -283,7 +283,7 @@ public long readU4le() { if ((b1 | b2 | b3 | b4) < 0) { throw new EOFException(); } else { - return (b4 << 24) + (b3 << 16) + (b2 << 8) + (b1 << 0); + return (b4 << 24) + (b3 << 16) + (b2 << 8) + (b1); } } catch (IOException e) { throw new RuntimeException(e); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordComputedFieldMeta.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordComputedFieldMeta.java index 225ccb231..1238983a4 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordComputedFieldMeta.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordComputedFieldMeta.java @@ -93,6 +93,7 @@ public void setType(io.nop.core.type.IGenericType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordEnum.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordEnum.java index 78c08fc32..ba91cf279 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordEnum.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordEnum.java @@ -145,6 +145,7 @@ public void setValueType(io.nop.commons.type.StdDataType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -156,6 +157,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordEnumOption.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordEnumOption.java index 2ea9855b8..5ce3c6144 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordEnumOption.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordEnumOption.java @@ -119,6 +119,7 @@ public void setValue(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldMeta.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldMeta.java index 24697cbb2..f554f8ede 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldMeta.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldMeta.java @@ -977,6 +977,7 @@ public void setWrapper(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -988,6 +989,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldSwitch.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldSwitch.java index 330d78100..c66976830 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldSwitch.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldSwitch.java @@ -119,6 +119,7 @@ public void setOn(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -130,6 +131,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldSwitchCase.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldSwitchCase.java index 97ea0469e..2d34c7e43 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldSwitchCase.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFieldSwitchCase.java @@ -67,6 +67,7 @@ public void setWhen(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFileBodyMeta.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFileBodyMeta.java index 210a6298c..f356ab6af 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFileBodyMeta.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFileBodyMeta.java @@ -93,6 +93,7 @@ public void setRepeatUntil(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFileMeta.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFileMeta.java index 8afeebdc4..17dbf4ecc 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFileMeta.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordFileMeta.java @@ -405,6 +405,7 @@ public boolean hasTypes(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -426,6 +427,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordObjectMeta.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordObjectMeta.java index df2316dd0..270f31727 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordObjectMeta.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordObjectMeta.java @@ -197,6 +197,7 @@ public void setRecordType(io.nop.core.type.IGenericType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -212,6 +213,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordParamMeta.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordParamMeta.java index 32fce604e..3e9f0f8be 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordParamMeta.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordParamMeta.java @@ -119,6 +119,7 @@ public void setType(io.nop.core.type.IGenericType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordTypeMeta.java b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordTypeMeta.java index 05efe9bfc..1572bd658 100644 --- a/nop-record/src/main/java/io/nop/record/model/_gen/_RecordTypeMeta.java +++ b/nop-record/src/main/java/io/nop/record/model/_gen/_RecordTypeMeta.java @@ -41,6 +41,7 @@ public void setName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleDecisionMatrixModel.java b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleDecisionMatrixModel.java index 9ac3e2909..b3977bd5b 100644 --- a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleDecisionMatrixModel.java +++ b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleDecisionMatrixModel.java @@ -119,6 +119,7 @@ public void setRowDecider(io.nop.rule.core.model.RuleDecisionTreeModel value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -134,6 +135,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleDecisionTreeModel.java b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleDecisionTreeModel.java index dd1e102c6..af14d3e05 100644 --- a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleDecisionTreeModel.java +++ b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleDecisionTreeModel.java @@ -275,6 +275,7 @@ public void setPredicate(io.nop.core.lang.xml.XNode value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -288,6 +289,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleInputDefineModel.java b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleInputDefineModel.java index a57350e4f..7fe2248f1 100644 --- a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleInputDefineModel.java +++ b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleInputDefineModel.java @@ -67,6 +67,7 @@ public void setMandatory(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleModel.java b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleModel.java index 1c99908b2..15e9fd4b2 100644 --- a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleModel.java +++ b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleModel.java @@ -301,6 +301,7 @@ public void setRuleVersion(java.lang.Long value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -318,6 +319,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleOutputDefineModel.java b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleOutputDefineModel.java index 7ed025e7d..8bd550f46 100644 --- a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleOutputDefineModel.java +++ b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleOutputDefineModel.java @@ -67,6 +67,7 @@ public void setUseWeight(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleOutputValueModel.java b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleOutputValueModel.java index 845f54a82..edbd15060 100644 --- a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleOutputValueModel.java +++ b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleOutputValueModel.java @@ -67,6 +67,7 @@ public void setValueExpr(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleTableCellModel.java b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleTableCellModel.java index fd1154208..f91f94eff 100644 --- a/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleTableCellModel.java +++ b/nop-rule/nop-rule-core/src/main/java/io/nop/rule/core/model/_gen/_RuleTableCellModel.java @@ -93,6 +93,7 @@ public void setPos(io.nop.core.model.table.CellPosition value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -104,6 +105,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-spring/nop-spring-web-starter/src/main/java/io/nop/spring/web/filter/ServletHttpServerContext.java b/nop-spring/nop-spring-web-starter/src/main/java/io/nop/spring/web/filter/ServletHttpServerContext.java index 816c6176e..7fc44bb69 100644 --- a/nop-spring/nop-spring-web-starter/src/main/java/io/nop/spring/web/filter/ServletHttpServerContext.java +++ b/nop-spring/nop-spring-web-starter/src/main/java/io/nop/spring/web/filter/ServletHttpServerContext.java @@ -110,6 +110,7 @@ public void removeCookie(String name) { } Cookie retCookie = new Cookie(name, ""); retCookie.setPath("/"); + retCookie.setHttpOnly(true); retCookie.setMaxAge(0); response.addCookie(retCookie); } @@ -118,7 +119,9 @@ public void removeCookie(String name) { public void removeCookie(String name, String domain, String path) { Cookie retCookie = new Cookie(name, ""); retCookie.setPath(path); - retCookie.setDomain(domain); + if(Objects.nonNull(domain)) + retCookie.setDomain(domain); + retCookie.setHttpOnly(true); retCookie.setMaxAge(0); response.addCookie(retCookie); } diff --git a/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternGroupModel.java b/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternGroupModel.java index cf0484a6d..43aa3a8d7 100644 --- a/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternGroupModel.java +++ b/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternGroupModel.java @@ -145,6 +145,7 @@ public void setStart(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -156,6 +157,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternModel.java b/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternModel.java index 518287089..632353e24 100644 --- a/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternModel.java +++ b/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternModel.java @@ -199,6 +199,7 @@ public void setWithin(java.time.Duration value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -210,6 +211,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternPartModel.java b/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternPartModel.java index 8ef44270f..54a05a909 100644 --- a/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternPartModel.java +++ b/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternPartModel.java @@ -327,6 +327,7 @@ public void setWindowTime(java.time.Duration value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -336,6 +337,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternSingleModel.java b/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternSingleModel.java index b514cb689..f0a7f5e53 100644 --- a/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternSingleModel.java +++ b/nop-stream/nop-stream-cep/src/main/java/io/nop/stream/cep/model/_gen/_CepPatternSingleModel.java @@ -67,6 +67,7 @@ public void setWhere(io.nop.core.lang.eval.IEvalFunction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_AwaitTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_AwaitTaskStepModel.java index 3c5989d14..c7f5bce51 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_AwaitTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_AwaitTaskStepModel.java @@ -41,6 +41,7 @@ public void setDepends(java.util.Set value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ChooseTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ChooseTaskStepModel.java index 49e23c964..44c7c00cc 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ChooseTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ChooseTaskStepModel.java @@ -119,6 +119,7 @@ public void setOtherwise(io.nop.task.model.TaskChooseOtherwiseModel value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -134,6 +135,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_DelayTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_DelayTaskStepModel.java index 52a08a927..2b141f130 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_DelayTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_DelayTaskStepModel.java @@ -41,6 +41,7 @@ public void setDelayMillisExpr(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_EndTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_EndTaskStepModel.java index d55705109..1a834a3f9 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_EndTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_EndTaskStepModel.java @@ -15,6 +15,7 @@ public abstract class _EndTaskStepModel extends io.nop.task.model.TaskStepModel { + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -24,6 +25,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ExitTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ExitTaskStepModel.java index 11030b6c7..aac882aae 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ExitTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ExitTaskStepModel.java @@ -15,6 +15,7 @@ public abstract class _ExitTaskStepModel extends io.nop.task.model.TaskStepModel { + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -24,6 +25,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_FlowTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_FlowTaskStepModel.java index a14989d8e..1bb03e75b 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_FlowTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_FlowTaskStepModel.java @@ -15,6 +15,7 @@ public abstract class _FlowTaskStepModel extends io.nop.task.model.TaskStepsModel { + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -24,6 +25,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ForkNTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ForkNTaskStepModel.java index 3c25cf920..7bfd45dd0 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ForkNTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ForkNTaskStepModel.java @@ -171,6 +171,7 @@ public void setVar(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -182,6 +183,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ForkTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ForkTaskStepModel.java index ae46af519..feec2f3b6 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ForkTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ForkTaskStepModel.java @@ -171,6 +171,7 @@ public void setVar(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -184,6 +185,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_InvokeTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_InvokeTaskStepModel.java index 3aa738c58..91b2af3bc 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_InvokeTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_InvokeTaskStepModel.java @@ -145,6 +145,7 @@ public void setMethod(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -156,6 +157,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_LoopNTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_LoopNTaskStepModel.java index 73b89a92c..63cbc23b1 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_LoopNTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_LoopNTaskStepModel.java @@ -145,6 +145,7 @@ public void setVar(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -154,6 +155,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_LoopTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_LoopTaskStepModel.java index 897b56068..13ed8bc5c 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_LoopTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_LoopTaskStepModel.java @@ -145,6 +145,7 @@ public void setVar(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -154,6 +155,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ParallelTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ParallelTaskStepModel.java index 422d2f03e..cbfd22dbd 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ParallelTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ParallelTaskStepModel.java @@ -119,6 +119,7 @@ public void setJoinType(io.nop.task.model.TaskStepJoinType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -130,6 +131,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ScriptTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ScriptTaskStepModel.java index 865dec078..37bd6eb7d 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ScriptTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_ScriptTaskStepModel.java @@ -67,6 +67,7 @@ public void setSource(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SequentialTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SequentialTaskStepModel.java index d6987020b..ded940e1e 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SequentialTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SequentialTaskStepModel.java @@ -15,6 +15,7 @@ public abstract class _SequentialTaskStepModel extends io.nop.task.model.TaskStepsModel { + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -24,6 +25,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SimpleTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SimpleTaskStepModel.java index a6178b5e6..5ca846592 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SimpleTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SimpleTaskStepModel.java @@ -41,6 +41,7 @@ public void setBean(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SleepTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SleepTaskStepModel.java index e71ed788e..b5430952c 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SleepTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SleepTaskStepModel.java @@ -41,6 +41,7 @@ public void setSleepMillisExpr(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SubTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SubTaskStepModel.java index be4f6c2f7..8f6e1e638 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SubTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SubTaskStepModel.java @@ -41,6 +41,7 @@ public void setTaskName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SuspendTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SuspendTaskStepModel.java index d478b5756..c9a9c275e 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SuspendTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_SuspendTaskStepModel.java @@ -41,6 +41,7 @@ public void setResumeWhen(io.nop.core.lang.eval.IEvalPredicate value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskBeanModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskBeanModel.java index 62b68892c..6aac4246d 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskBeanModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskBeanModel.java @@ -67,6 +67,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskChooseCaseModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskChooseCaseModel.java index 1091abc31..e387b8b9c 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskChooseCaseModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskChooseCaseModel.java @@ -41,6 +41,7 @@ public void setTo(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskChooseOtherwiseModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskChooseOtherwiseModel.java index badb412a9..d4f5bf38b 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskChooseOtherwiseModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskChooseOtherwiseModel.java @@ -41,6 +41,7 @@ public void setTo(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskDeciderModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskDeciderModel.java index 38a94f6e5..db1804297 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskDeciderModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskDeciderModel.java @@ -67,6 +67,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskDecoratorModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskDecoratorModel.java index 9b03cb465..e9d2fcf55 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskDecoratorModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskDecoratorModel.java @@ -93,6 +93,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskExecutableModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskExecutableModel.java index c521a7116..644442429 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskExecutableModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskExecutableModel.java @@ -483,6 +483,7 @@ public void setWhen(io.nop.core.lang.eval.IEvalPredicate value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -506,6 +507,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskFlowModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskFlowModel.java index 9d3c106d9..a0a825cb1 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskFlowModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskFlowModel.java @@ -119,6 +119,7 @@ public void setVersion(long value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskInputModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskInputModel.java index 15c1bb720..8e98bea15 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskInputModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskInputModel.java @@ -119,6 +119,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskInvokeArgModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskInvokeArgModel.java index b5436b1bc..72f303e87 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskInvokeArgModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskInvokeArgModel.java @@ -67,6 +67,7 @@ public void setValueExpr(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskOutputModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskOutputModel.java index c70fea999..8d16092a5 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskOutputModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskOutputModel.java @@ -171,6 +171,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -180,6 +181,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskRateLimitModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskRateLimitModel.java index c45a1b14c..dce6e7487 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskRateLimitModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskRateLimitModel.java @@ -93,6 +93,7 @@ public void setRequestPerSecond(int value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskRetryModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskRetryModel.java index 394179e24..f2eb4267a 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskRetryModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskRetryModel.java @@ -145,6 +145,7 @@ public void setRetryDelay(int value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -154,6 +155,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskStepModel.java index aa488a291..701cac22c 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskStepModel.java @@ -223,6 +223,7 @@ public void setTagSet(java.util.Set value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -232,6 +233,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskStepsModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskStepsModel.java index 6c0daa3a2..f2684c164 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskStepsModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskStepsModel.java @@ -49,6 +49,7 @@ public boolean hasSteps(){ } + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -60,6 +61,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskThrottleModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskThrottleModel.java index 27bedefc7..6dddfad99 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskThrottleModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_TaskThrottleModel.java @@ -93,6 +93,7 @@ public void setMaxWait(int value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_XplTaskStepModel.java b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_XplTaskStepModel.java index c00b55122..8ae012343 100644 --- a/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_XplTaskStepModel.java +++ b/nop-task/nop-task-core/src/main/java/io/nop/task/model/_gen/_XplTaskStepModel.java @@ -41,6 +41,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiComponentModel.java b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiComponentModel.java index 240dd4a41..0fb2737cb 100644 --- a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiComponentModel.java +++ b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiComponentModel.java @@ -177,6 +177,7 @@ public void setTemplate(io.nop.core.resource.tpl.ITextTemplateOutput value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -188,6 +189,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiDisplayMeta.java b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiDisplayMeta.java index d6b57c866..37ef5d14b 100644 --- a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiDisplayMeta.java +++ b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiDisplayMeta.java @@ -1089,6 +1089,7 @@ public void setWidth(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -1102,6 +1103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormCellModel.java b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormCellModel.java index a0e753ad8..36b2ac430 100644 --- a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormCellModel.java +++ b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormCellModel.java @@ -171,6 +171,7 @@ public void setTitlePosition(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -180,6 +181,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormModel.java b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormModel.java index 1f31dd43d..30682b7c8 100644 --- a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormModel.java +++ b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormModel.java @@ -1269,6 +1269,7 @@ public void setWrapWithPanel(java.lang.Boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -1292,6 +1293,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormRuleModel.java b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormRuleModel.java index f5f2b35ac..a523fc076 100644 --- a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormRuleModel.java +++ b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiFormRuleModel.java @@ -119,6 +119,7 @@ public void setRule(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiGridColModel.java b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiGridColModel.java index f8fa4e3b9..da6481873 100644 --- a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiGridColModel.java +++ b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiGridColModel.java @@ -249,6 +249,7 @@ public void setSortable(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -258,6 +259,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiGridModel.java b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiGridModel.java index cb8bcf6b4..3b9cbfb9b 100644 --- a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiGridModel.java +++ b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiGridModel.java @@ -913,6 +913,7 @@ public void setToolbarClassName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -930,6 +931,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiHrefModel.java b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiHrefModel.java index c570d25f3..eaeb73772 100644 --- a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiHrefModel.java +++ b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiHrefModel.java @@ -93,6 +93,7 @@ public void setUrl(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiImportModel.java b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiImportModel.java index c4cd4715e..5dfc9bc8a 100644 --- a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiImportModel.java +++ b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiImportModel.java @@ -96,6 +96,7 @@ public void setItems(java.util.Set value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -105,6 +106,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiRefViewModel.java b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiRefViewModel.java index f5270ea88..e07e4c064 100644 --- a/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiRefViewModel.java +++ b/nop-ui/src/main/java/io/nop/xui/model/_gen/_UiRefViewModel.java @@ -149,6 +149,7 @@ public void setPath(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -158,6 +159,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfActionModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfActionModel.java index 2aef5fb45..0204d74a9 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfActionModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfActionModel.java @@ -665,6 +665,7 @@ public void setWhenSteps(java.util.Set value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -678,6 +679,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfArgVarModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfArgVarModel.java index c1fa48487..2335660b7 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfArgVarModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfArgVarModel.java @@ -147,6 +147,7 @@ public void setSchema(io.nop.xlang.xmeta.ISchema value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -158,6 +159,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfAssignmentActorModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfAssignmentActorModel.java index 478c68733..bf0cbf9fc 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfAssignmentActorModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfAssignmentActorModel.java @@ -197,6 +197,7 @@ public void setVoteWeight(int value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -206,6 +207,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfAssignmentModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfAssignmentModel.java index e95c217a3..e204a399a 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfAssignmentModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfAssignmentModel.java @@ -249,6 +249,7 @@ public void setUseManagerWhenNoAssign(boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -260,6 +261,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfEndModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfEndModel.java index fb503ed24..0ca7e7987 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfEndModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfEndModel.java @@ -93,6 +93,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -104,6 +105,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfJoinStepModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfJoinStepModel.java index 45b5d74f3..7beb2fc43 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfJoinStepModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfJoinStepModel.java @@ -153,6 +153,7 @@ public void setWaitStepNames(java.util.Set value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -162,6 +163,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfListenerModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfListenerModel.java index cc4aefb4f..46c4d1812 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfListenerModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfListenerModel.java @@ -93,6 +93,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfModel.java index c333a995e..9a71228a9 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfModel.java @@ -797,6 +797,7 @@ public void setWfVersion(long value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -820,6 +821,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfModelAuth.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfModelAuth.java index f005174dc..6d250350b 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfModelAuth.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfModelAuth.java @@ -197,6 +197,7 @@ public void setId(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -206,6 +207,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfRefActionModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfRefActionModel.java index 14ea753ad..737c7b92a 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfRefActionModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfRefActionModel.java @@ -41,6 +41,7 @@ public void setName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfRetryModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfRetryModel.java index b267d9e20..3e5cb03f3 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfRetryModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfRetryModel.java @@ -145,6 +145,7 @@ public void setRetryDelay(int value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -154,6 +155,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfReturnVarModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfReturnVarModel.java index 35fbccb52..c9999ba40 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfReturnVarModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfReturnVarModel.java @@ -145,6 +145,7 @@ public void setType(io.nop.core.type.IGenericType value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -154,6 +155,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfStartModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfStartModel.java index ccb6a166e..818b80554 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfStartModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfStartModel.java @@ -145,6 +145,7 @@ public void setWhen(io.nop.core.lang.eval.IEvalPredicate value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -156,6 +157,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfStepModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfStepModel.java index 88fe35ed3..3a41a6f0c 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfStepModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfStepModel.java @@ -795,6 +795,7 @@ public void setWfAppState(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -812,6 +813,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowArgModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowArgModel.java index 2c8d6b644..17f18d1d5 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowArgModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowArgModel.java @@ -93,6 +93,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -102,6 +103,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowModel.java index 3dd03f89e..aaaf89e60 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowModel.java @@ -41,6 +41,7 @@ public void setStart(io.nop.wf.core.model.WfSubFlowStartModel value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -52,6 +53,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowReturnModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowReturnModel.java index 001cfc7f7..d61620262 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowReturnModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowReturnModel.java @@ -119,6 +119,7 @@ public void setVar(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowStartModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowStartModel.java index ab17dc653..12ba8d046 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowStartModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubFlowStartModel.java @@ -171,6 +171,7 @@ public void setWfVersion(java.lang.Long value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -184,6 +185,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubscribeModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubscribeModel.java index 61dd8638d..f6147129c 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubscribeModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfSubscribeModel.java @@ -119,6 +119,7 @@ public void setSource(io.nop.core.lang.eval.IEvalAction value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -128,6 +129,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionModel.java index e2c2ae959..66cee8f42 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionModel.java @@ -275,6 +275,7 @@ public void setWfAppState(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -292,6 +293,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToAssignedModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToAssignedModel.java index 30a346416..bb99823ba 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToAssignedModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToAssignedModel.java @@ -41,6 +41,7 @@ public void setBackLink(java.lang.Boolean value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -50,6 +51,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToEmptyModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToEmptyModel.java index 4ecc7865b..87cfa636f 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToEmptyModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToEmptyModel.java @@ -15,6 +15,7 @@ public abstract class _WfTransitionToEmptyModel extends io.nop.wf.core.model.WfTransitionToModel { + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -24,6 +25,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToEndModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToEndModel.java index 30ed79521..2d5d0d625 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToEndModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToEndModel.java @@ -15,6 +15,7 @@ public abstract class _WfTransitionToEndModel extends io.nop.wf.core.model.WfTransitionToModel { + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -24,6 +25,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToModel.java index b3d55aba7..9ba8dd629 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToModel.java @@ -145,6 +145,7 @@ public void setWhen(io.nop.core.lang.eval.IEvalPredicate value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -154,6 +155,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToStepModel.java b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToStepModel.java index ecb868d53..587cb84de 100644 --- a/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToStepModel.java +++ b/nop-wf/nop-wf-core/src/main/java/io/nop/wf/core/model/_gen/_WfTransitionToStepModel.java @@ -67,6 +67,7 @@ public void setStepName(java.lang.String value){ + @Override public void freeze(boolean cascade){ if(frozen()) return; super.freeze(cascade); @@ -76,6 +77,7 @@ public void freeze(boolean cascade){ } } + @Override protected void outputJson(IJsonHandler out){ super.outputJson(out); diff --git a/nop-wf/nop-wf-meta/_templates/_NopWfAction.json b/nop-wf/nop-wf-meta/_templates/_NopWfAction.json index cbf6d259e..4d953c702 100644 --- a/nop-wf/nop-wf-meta/_templates/_NopWfAction.json +++ b/nop-wf/nop-wf-meta/_templates/_NopWfAction.json @@ -8,6 +8,8 @@ "callerId": "", "callerName": "", "opinion": "", + "errCode": "", + "errMsg": "", "version": 0, "createdBy": "", "createTime": "2000-01-01 14:00:00", diff --git a/nop-wf/nop-wf-meta/_templates/_NopWfStepInstance.json b/nop-wf/nop-wf-meta/_templates/_NopWfStepInstance.json index d41ce0883..dd3affc53 100644 --- a/nop-wf/nop-wf-meta/_templates/_NopWfStepInstance.json +++ b/nop-wf/nop-wf-meta/_templates/_NopWfStepInstance.json @@ -38,6 +38,8 @@ "remindCount": 0, "nextRetryTime": "2000-01-01 14:00:00", "retryCount": 0, + "errCode": "", + "errMsg": "", "priority": 0, "voteWeight": 0, "execOrder": 0.0, diff --git a/nop-wf/nop-wf-meta/_templates/_WfChangeActorRequestBean.json b/nop-wf/nop-wf-meta/_templates/_WfChangeActorRequestBean.json new file mode 100644 index 000000000..8fef81838 --- /dev/null +++ b/nop-wf/nop-wf-meta/_templates/_WfChangeActorRequestBean.json @@ -0,0 +1,11 @@ +{ + "wfName": "", + "wfVersion": 0, + "wfId": "", + "stepId": "", + "actorType": "", + "actorId": "", + "actorDeptId": "", + "ownerId": "", + "attrs": null +} \ No newline at end of file diff --git a/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/en/_nop-wf.i18n.yaml b/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/en/_nop-wf.i18n.yaml index 457cee2b8..9b6aef308 100644 --- a/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/en/_nop-wf.i18n.yaml +++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/en/_nop-wf.i18n.yaml @@ -13,6 +13,7 @@ entity: NopWfVar: Workflow Variables NopWfWork: Work List WfActionRequestBean: Workflow Action Request + WfChangeActorRequestBean: Change Actor Request WfCommandRequestBean: Workflow Command Request WfStartRequestBean: Workflow Start Request WfStartResponseBean: Workflow Start Response @@ -29,6 +30,8 @@ prop: callerId: Caller ID callerName: Caller Name opinion: Opinion + errCode: Error Code + errMsg: Error Message version: Version createdBy: Created By createTime: Create Time @@ -207,6 +210,8 @@ prop: remindCount: Remind Count nextRetryTime: Next Retry Time retryCount: Retry Count + errCode: Error Code + errMsg: Error Message priority: Priority voteWeight: Vote Weight execOrder: Execution Order @@ -295,6 +300,16 @@ prop: stepId: Step ID actionName: Action Name args: Action Args + WfChangeActorRequestBean: + wfName: Workflow Name + wfVersion: Workflow Version + wfId: Workflow ID + stepId: Step ID + actorType: Action Type + actorId: Action ID + actorDeptId: Action Dept ID + ownerId: Owner ID + attrs: Attributes WfCommandRequestBean: wfName: Workflow Name wfVersion: Workflow Version diff --git a/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-wf.i18n.yaml b/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-wf.i18n.yaml index 4cb8cca84..a7cb6ec25 100644 --- a/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-wf.i18n.yaml +++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/i18n/zh-CN/_nop-wf.i18n.yaml @@ -13,6 +13,7 @@ entity: NopWfVar: 工作流状态变量 NopWfWork: 代办工作 WfActionRequestBean: 执行动作请求消息 + WfChangeActorRequestBean: 执行动作请求消息 WfCommandRequestBean: 执行命令请求消息 WfStartRequestBean: 启动工作流请求消息 WfStartResponseBean: 启动工作流响应消息 @@ -26,6 +27,8 @@ prop: createTime: 创建时间 createdBy: 创建人 displayName: 动作显示名称 + errCode: 错误码 + errMsg: 错误消息 execTime: 执行时刻 opinion: 意见 sid: 主键 @@ -184,6 +187,8 @@ prop: createdBy: 创建人 displayName: 步骤显示名称 dueTime: 到期时间 + errCode: 错误码 + errMsg: 错误消息 execOrder: 执行顺序 finishTime: 结束时间 fromAction: 来源操作 @@ -295,6 +300,16 @@ prop: wfId: 工作流ID wfName: 工作流名称 wfVersion: 工作流版本 + WfChangeActorRequestBean: + actorDeptId: 参与者部门ID + actorId: 参与者ID + actorType: 参与者类型 + attrs: 扩展属性 + ownerId: 拥有者ID + stepId: 工作流步骤ID + wfId: 工作流ID + wfName: 工作流名称 + wfVersion: 工作流版本 WfCommandRequestBean: args: 执行参数 wfId: 工作流ID diff --git a/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xmeta index 094f31799..621b160cb 100644 --- a/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xmeta +++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfAction/_NopWfAction.xmeta @@ -54,6 +54,14 @@ insertable="true" updatable="true"> + + + + + + diff --git a/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xmeta b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xmeta index a84f3f8ec..0312be0fc 100644 --- a/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xmeta +++ b/nop-wf/nop-wf-meta/src/main/resources/_vfs/nop/wf/model/NopWfStepInstance/_NopWfStepInstance.xmeta @@ -162,6 +162,14 @@ insertable="true" updatable="true" internal="true" ui:show="X"> + + + + + + diff --git a/pom.xml b/pom.xml index 1ea8ded88..575a352e4 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ 3.11.0 3.0.0-M4 3.1.0 - 3.0.1 + 3.3.0 3.1.0 1.8 3.0.0-M4 @@ -101,6 +101,12 @@ + + org.apache.maven.plugins + maven-resources-plugin + 3.3.1 + + org.apache.maven.plugins maven-source-plugin