From ffcf2cf0ebfae6469e876330250a39fa552042ce Mon Sep 17 00:00:00 2001 From: wangkang Date: Wed, 11 Apr 2018 14:05:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E9=A1=B9=E7=9B=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aliyun-dysms/aliyun-dysms-dev.properties | 5 + .../aliyun-oss/aliyun-oss-dev.properties | 14 + .../base/base-dev.properties | 24 + .../cors/cors-dev.properties | 4 + .../exception-alert-dev.properties | 5 + .../file/file-dev.properties | 9 + .../file/file-manager-dev.properties | 7 + .../gzip/gzip-dev.properties | 5 + .../hystrix/hystrix-dev.properties | 5 + .../mail/mail-dev.properties | 13 + .../mail/mail-manager-dev.properties | 4 + .../rabbitmq/rabbitmq-dev.properties | 12 + .../redis/redis-dev.properties | 17 + .../ribbon/ribbon-dev.properties | 13 + udf-config-repository/rms/rms-dev.properties | 4 + .../rms/rms-manager-dev.properties | 5 + .../scheduler/scheduler-dev.properties | 4 + .../scheduler-manager-dev.properties | 23 + .../stream/stream-dev.properties | 16 + .../weixin-mp/weixin-mp-dev.properties | 22 + udf-server/pom.xml | 272 ++++++ udf-server/udf-eureka-config-server/pom.xml | 104 ++ .../UdfEurekaConfigServerApplication.java | 28 + .../main/resources/bootstrap-dev.properties | 68 ++ .../src/main/resources/bootstrap.properties | 40 + .../src/main/resources/build_qa.sh | 45 + .../src/main/resources/logback.xml | 5 + .../dysms/web/IAliuyunDysmsController.class | Bin 1457 -> 0 bytes udf-starter-amqp-rabbitmq/.checkstyle | 7 - udf-starter-amqp-rabbitmq/.gitignore | 4 - udf-starter-auth/.checkstyle | 7 - udf-starter-auth/.gitignore | 4 - udf-starter-cache-redis/.checkstyle | 7 - udf-starter-cache-redis/.gitignore | 4 - udf-starter-connection-pool-druid/.checkstyle | 7 - udf-starter-connection-pool-druid/.gitignore | 4 - udf-starter-core/.checkstyle | 7 - udf-starter-core/.gitignore | 4 - udf-starter-cors/.checkstyle | 7 - udf-starter-cors/.gitignore | 4 - udf-starter-dal-mybatis/.checkstyle | 7 - udf-starter-dal-mybatis/.gitignore | 4 - udf-starter-datasource-dynamic/.checkstyle | 7 - udf-starter-datasource-dynamic/.gitignore | 4 - udf-starter-datasource/.checkstyle | 7 - udf-starter-datasource/.gitignore | 4 - udf-starter-file/.checkstyle | 7 - udf-starter-file/.gitignore | 4 - udf-starter-id/.checkstyle | 7 - udf-starter-id/.gitignore | 4 - udf-starter-mail/.checkstyle | 7 - udf-starter-mail/.gitignore | 4 - udf-starter-qrcode/.checkstyle | 7 - udf-starter-qrcode/.gitignore | 4 - udf-starter-rms/.checkstyle | 7 - udf-starter-rms/.gitignore | 4 - udf-starter-scheduler-client/.checkstyle | 7 - udf-starter-scheduler-client/.gitignore | 4 - udf-starter-scheduler/.checkstyle | 7 - udf-starter-scheduler/.gitignore | 4 - pom.xml => udf-stater/pom.xml | 640 ++++++------ .../udf-starter-aliyun-dysms-api}/pom.xml | 0 .../dysms/api/AliyunDysmsProperties.java | 0 .../udf/aliyun/dysms/api/DysmsWarpper.java | 0 .../udf-starter-aliyun-dysms}/pom.xml | 0 .../dysms/web/AliuyunDysmsController.java | 0 .../dysms/web/IAliuyunDysmsController.java | 0 .../udf-starter-amqp-rabbitmq}/pom.xml | 0 .../udf/amqp/rabbitmq/IRabbitmqListener.java | 0 .../itkk/udf/amqp/rabbitmq/MessageLog.java | 0 .../udf/amqp/rabbitmq/RabbitMqConfig.java | 140 +-- .../org/itkk/udf/amqp/rabbitmq/Rabbitmq.java | 0 .../udf/amqp/rabbitmq/RabbitmqConstant.java | 0 .../rabbitmq/RabbitmqListenerBaseAspect.java | 0 .../rabbitmq/RabbitmqListenerLogAspect.java | 0 .../udf/amqp/rabbitmq/RabbitmqMessage.java | 0 .../udf/amqp/rabbitmq/domain/CompleteLog.java | 0 .../udf/amqp/rabbitmq/domain/ErrorLog.java | 0 .../udf/amqp/rabbitmq/domain/ReceiveLog.java | 0 .../udf/amqp/rabbitmq/domain/SendLog.java | 0 .../udf-starter-auth}/pom.xml | 0 .../java/org/itkk/udf/auth/AuthConfig.java | 0 .../main/java/org/itkk/udf/auth/Constant.java | 0 .../java/org/itkk/udf/auth/RmsFilter.java | 0 .../udf-starter-cache-redis}/pom.xml | 0 .../udf/cache/redis/CacheRedisConfig.java | 0 .../udf/cache/redis/CacheRedisProperties.java | 0 .../udf/cache/redis/DefRedisCachePrefix.java | 0 .../itkk/udf/cache/redis/lock/LockResult.java | 0 .../redis/lock/RedisBasedDistributedLock.java | 0 .../pom.xml | 0 .../udf/connection/pool/druid/DruidBuild.java | 0 .../connection/pool/druid/DruidConfig.java | 0 .../pool/druid/DruidMonitorConfig.java | 0 .../udf-starter-core}/pom.xml | 0 .../org/itkk/udf/core/ApplicationConfig.java | 162 ++-- .../org/itkk/udf/core/BaseApplication.java | 118 +-- .../java/org/itkk/udf/core/CleanLogFile.java | 0 .../java/org/itkk/udf/core/RestResponse.java | 256 ++--- .../org/itkk/udf/core/ThreadPoolConfig.java | 100 +- .../udf/core/constant/IdWorkerConstant.java | 0 .../itkk/udf/core/constant/UdfConstant.java | 0 .../core/domain/aliyun/oss/OssListParam.java | 0 .../udf/core/domain/aliyun/oss/OssParam.java | 0 .../domain/datasource/DataSourceMeta.java | 0 .../domain/datasource/IBuildDataSource.java | 0 .../itkk/udf/core/domain/file/FileInfo.java | 118 +-- .../itkk/udf/core/domain/file/FileParam.java | 70 +- .../java/org/itkk/udf/core/domain/id/Id.java | 0 .../udf/core/domain/mail/AttachmentInfo.java | 70 +- .../itkk/udf/core/domain/mail/InlineInfo.java | 70 +- .../itkk/udf/core/domain/mail/MailInfo.java | 188 ++-- .../udf/core/domain/weixin/mp/BaseResult.java | 0 .../core/domain/weixin/mp/Miniprogram.java | 0 .../weixin/mp/SendMessageTemplateDataVo.java | 0 .../weixin/mp/SendMessageTemplateResult.java | 0 .../weixin/mp/SendMessageTemplateVo.java | 0 .../udf/core/exception/AuthException.java | 132 +-- .../itkk/udf/core/exception/ErrorResult.java | 116 +-- .../exception/ParameterValidException.java | 146 +-- .../core/exception/PermissionException.java | 132 +-- .../udf/core/exception/SystemException.java | 128 +-- .../exception/SystemRuntimeException.java | 132 +-- .../core/exception/alert/IExceptionAlert.java | 0 .../exception/handle/ExceptionController.java | 0 .../handle/ExceptionControllerConfig.java | 0 .../core/exception/handle/ExceptionCors.java | 0 .../exception/handle/ExceptionHandle.java | 0 .../handle/RmsResponseErrorHandler.java | 0 .../org/itkk/udf/core/utils/ClassUtil.java | 118 +-- .../org/itkk/udf/core/utils/DateUtil.java | 566 +++++------ .../java/org/itkk/udf/core/utils/IdUtil.java | 0 .../java/org/itkk/udf/core/utils/ZipUtil.java | 0 .../udf/core/utils/excel/ExportExcel.java | 0 .../excel/ExportExcelHeaderMateData.java | 0 .../udf/core/utils/excel/ImportExcel.java | 0 .../java/org/itkk/udf/core/xss/XssFilter.java | 86 +- .../xss/XssHttpServletRequestWrapper.java | 112 +-- .../udf-starter-cors}/pom.xml | 0 .../java/org/itkk/udf/cors/CorsConfig.java | 220 ++--- .../udf-starter-dal-mybatis}/pom.xml | 0 .../itkk/udf/dal/mybatis/MyBatisConfig.java | 0 .../udf/dal/mybatis/MyBatisProperties.java | 0 .../dal/mybatis/plugin/InterceptorUtil.java | 0 .../plugin/pagequery/BoundSqlSqlSource.java | 0 .../dal/mybatis/plugin/pagequery/Page.java | 0 .../plugin/pagequery/PageInterceptor.java | 0 .../mybatis/plugin/pagequery/PageResult.java | 0 .../plugin/pagequery/parser/SqlParser.java | 0 .../tablesplit/BaseTableSplitInterceptor.java | 0 .../plugin/tablesplit/DefaultStrategy.java | 0 .../mybatis/plugin/tablesplit/IStrategy.java | 0 .../QueryTableSplitInterceptor.java | 0 .../tablesplit/TableSplitContextHolder.java | 0 .../tablesplit/TableSplitThreadLocal.java | 0 .../UpdateTableSplitInterceptor.java | 0 .../udf-starter-datasource-dynamic}/pom.xml | 0 .../dynamic/DataSourceThreadLocal.java | 0 .../datasource/dynamic/DbContextHolder.java | 0 .../datasource/dynamic/DynamicDataSource.java | 0 .../dynamic/DynamicDataSourceConfig.java | 0 .../dynamic/DynamicDataSourceException.java | 0 .../udf-starter-datasource}/pom.xml | 0 .../datasource/dynamic/DataSourceConfig.java | 0 .../udf-starter-exception-alert}/pom.xml | 0 .../udf/exception/alert/ExceptionAlert.java | 0 .../exception/alert/ExceptionAlertConfig.java | 0 .../alert/ExceptionAlertConstant.java | 0 .../alert/ExceptionAlertProperties.java | 0 .../udf-starter-file-aliyun-oss-api}/pom.xml | 0 .../aliyun/oss/api/AliyunOssProperties.java | 0 .../udf/file/aliyun/oss/api/OssWarpper.java | 0 .../aliyun/oss/api/domain/PolicyResult.java | 0 .../aliyun/oss/api/download/DownConstant.java | 0 .../aliyun/oss/api/download/DownLoad.java | 0 .../oss/api/download/DownLoadParam.java | 0 .../api/download/DownLoadProcessAspect.java | 0 .../api/download/DownLoadProcessService.java | 0 .../aliyun/oss/api/download/DownloadInfo.java | 0 .../oss/api/download/IDownLoadProcess.java | 0 .../oss/api/meta/AliyunOssAccessMeta.java | 0 .../oss/api/meta/AliyunOssPathMeta.java | 0 .../udf-starter-file-aliyun-oss}/pom.xml | 0 .../aliyun/oss/web/AliyunOssController.java | 0 .../aliyun/oss/web/IAliuyunOssController.java | 0 .../udf-starter-file}/pom.xml | 0 .../java/org/itkk/udf/file/FileException.java | 132 +-- .../org/itkk/udf/file/FileProperties.java | 84 +- .../java/org/itkk/udf/file/meta/PathMeta.java | 82 +- .../itkk/udf/file/service/FileService.java | 322 +++--- .../org/itkk/udf/file/web/FileController.java | 240 ++--- .../itkk/udf/file/web/IFileController.java | 240 ++--- .../udf-starter-id}/pom.xml | 0 .../main/java/org/itkk/udf/id/IdWorker.java | 0 .../java/org/itkk/udf/id/IdWorkerConfig.java | 0 .../java/org/itkk/udf/id/IdWorkerFactory.java | 0 .../org/itkk/udf/id/IdWorkerProperties.java | 0 .../org/itkk/udf/id/domain/CacheValue.java | 0 .../itkk/udf/id/domain/IdWorkerWrapper.java | 0 .../itkk/udf/id/service/IdWorkerService.java | 0 .../itkk/udf/id/web/IIdWorkerController.java | 0 .../itkk/udf/id/web/IdWorkerController.java | 0 .../test/org/itkk/udf/id/IdWorkerTest.java | 0 .../udf-starter-mail}/pom.xml | 0 .../java/org/itkk/udf/mail/MailException.java | 132 +-- .../org/itkk/udf/mail/MailProperties.java | 70 +- .../itkk/udf/mail/service/MailService.java | 302 +++--- .../itkk/udf/mail/web/IMailController.java | 106 +- .../org/itkk/udf/mail/web/MailController.java | 98 +- .../udf-starter-qrcode}/pom.xml | 0 .../itkk/udf/qrcode/domain/QrCodeRequest.java | 0 .../itkk/udf/qrcode/option/BgImgOptions.java | 0 .../itkk/udf/qrcode/option/BgImgStyle.java | 0 .../itkk/udf/qrcode/option/BitMatrixEx.java | 0 .../itkk/udf/qrcode/option/DetectOptions.java | 0 .../itkk/udf/qrcode/option/DrawOptions.java | 0 .../org/itkk/udf/qrcode/option/DrawStyle.java | 0 .../itkk/udf/qrcode/option/ExpandType.java | 0 .../itkk/udf/qrcode/option/LogoOptions.java | 0 .../org/itkk/udf/qrcode/option/LogoStyle.java | 0 .../itkk/udf/qrcode/option/QrCodeOptions.java | 0 .../udf/qrcode/service/QrcodeService.java | 0 .../org/itkk/udf/qrcode/utils/Base64Util.java | 0 .../org/itkk/udf/qrcode/utils/ColorUtil.java | 0 .../org/itkk/udf/qrcode/utils/HttpUtil.java | 0 .../org/itkk/udf/qrcode/utils/ImageUtil.java | 0 .../org/itkk/udf/qrcode/utils/NumUtil.java | 0 .../org/itkk/udf/qrcode/utils/QrCodeUtil.java | 0 .../udf/qrcode/web/IQrcodeController.java | 0 .../itkk/udf/qrcode/web/QrcodeController.java | 0 .../itkk/udf/qrcode/QrCodeServiceTest.java | 0 .../udf-starter-rms}/pom.xml | 0 .../main/java/org/itkk/udf/rms/Constant.java | 146 +-- .../src/main/java/org/itkk/udf/rms/Rms.java | 466 ++++----- .../udf/rms/RmsAuthHandlerInterceptor.java | 278 +++--- .../main/java/org/itkk/udf/rms/RmsConfig.java | 168 ++-- .../java/org/itkk/udf/rms/RmsProperties.java | 86 +- .../itkk/udf/rms/meta/ApplicationMeta.java | 112 +-- .../org/itkk/udf/rms/meta/ServiceMeta.java | 102 +- .../org/itkk/udf/rms/web/RmsController.java | 126 +-- .../udf-starter-scheduler-client}/pom.xml | 0 .../udf/scheduler/client/RmsJobStats.java | 120 +-- .../udf/scheduler/client/SchClientHandle.java | 238 ++--- .../udf/scheduler/client/SchException.java | 132 +-- .../scheduler/client/TriggerDataMapKey.java | 136 +-- .../udf/scheduler/client/TriggerType.java | 112 +-- .../scheduler/client/domain/RmsJobParam.java | 160 +-- .../scheduler/client/domain/RmsJobResult.java | 148 +-- .../client/executor/AbstractExecutor.java | 178 ++-- .../client/service/SchClientService.java | 106 +- .../client/web/ISchClientController.java | 94 +- .../client/web/SchClientController.java | 114 +-- .../dbTables/tables_cloudscape.sql | 0 .../dbTables/tables_cubrid.sql | 0 .../dbTables/tables_db2.sql | 0 .../dbTables/tables_db2_v72.sql | 0 .../dbTables/tables_db2_v8.sql | 0 .../dbTables/tables_db2_v95.sql | 0 .../dbTables/tables_derby.sql | 0 .../dbTables/tables_derby_previous.sql | 0 .../dbTables/tables_firebird.sql | 0 .../dbTables/tables_h2.sql | 0 .../dbTables/tables_hsqldb.sql | 0 .../dbTables/tables_hsqldb_old.sql | 0 .../dbTables/tables_informix.sql | 0 .../dbTables/tables_mysql.sql | 0 .../dbTables/tables_mysql_innodb.sql | 0 .../dbTables/tables_oracle.sql | 0 .../dbTables/tables_pointbase.sql | 0 .../dbTables/tables_postgres.sql | 0 .../dbTables/tables_sapdb.sql | 0 .../dbTables/tables_solid.sql | 0 .../dbTables/tables_sqlServer.sql | 0 .../dbTables/tables_sybase.sql | 0 .../udf-starter-scheduler}/pom.xml | 0 .../scheduler/AutoInitCommandLineRunner.java | 178 ++-- .../AutowiringSpringBeanJobFactory.java | 0 .../itkk/udf/scheduler/IListenerEvent.java | 0 .../org/itkk/udf/scheduler/IRmsJobEvent.java | 0 .../itkk/udf/scheduler/SchedulerConfig.java | 578 +++++------ .../udf/scheduler/SchedulerProperties.java | 106 +- .../scheduler/domain/ScheduledTriggerLog.java | 298 +++--- .../udf/scheduler/impl/DefListenerEvent.java | 0 .../udf/scheduler/impl/DefRmsJobEvent.java | 0 .../udf/scheduler/job/AbstractBaseJob.java | 76 +- .../udf/scheduler/job/AbstractBaseRmsJob.java | 0 .../udf/scheduler/job/ClearScheduledLog.java | 76 +- .../job/ClearScheduledTriggerLog.java | 76 +- .../org/itkk/udf/scheduler/job/RmsJob.java | 52 +- .../job/RmsJobDisallowConcurrent.java | 48 +- .../scheduler/listener/JobDetailListener.java | 144 +-- .../udf/scheduler/listener/SchListener.java | 482 ++++----- .../listener/TriggerDetailListener.java | 160 +-- .../udf/scheduler/meta/CronTriggerMeta.java | 76 +- .../udf/scheduler/meta/JobDetailMeta.java | 134 +-- .../udf/scheduler/meta/SimpleTriggerMeta.java | 78 +- .../itkk/udf/scheduler/meta/TriggerMeta.java | 168 ++-- .../udf/scheduler/service/JobService.java | 486 +++++----- .../scheduler/service/ListenerService.java | 502 +++++----- .../scheduler/service/SchedulerService.java | 78 +- .../udf/scheduler/service/TriggerService.java | 916 +++++++++--------- .../udf/scheduler/web/IJobController.java | 188 ++-- .../web/ISchClientCallbackController.java | 92 +- .../scheduler/web/ISchedulerController.java | 90 +- .../udf/scheduler/web/ITriggerController.java | 226 ++--- .../itkk/udf/scheduler/web/JobController.java | 158 +-- .../web/SchClientCallbackController.java | 106 +- .../scheduler/web/SchedulerController.java | 72 +- .../udf/scheduler/web/TriggerController.java | 128 +-- .../src/main/resources/def_quartz.properties | 0 .../udf-starter-swagger2}/pom.xml | 0 .../org/itkk/udf/swagger2/Swagger2Config.java | 0 .../udf-starter-weixin-mp-api}/pom.xml | 0 .../java/org/itkk/udf/weixin/mp/api/Menu.java | 0 .../udf/weixin/mp/api/MessageTemplate.java | 0 .../org/itkk/udf/weixin/mp/api/Oauth2.java | 0 .../org/itkk/udf/weixin/mp/api/Token.java | 0 .../java/org/itkk/udf/weixin/mp/api/User.java | 0 .../udf/weixin/mp/api/WeixinMpApiConfig.java | 0 .../weixin/mp/api/WeixinMpApiProperties.java | 0 .../udf/weixin/mp/api/WeixinMpConsont.java | 0 .../udf/weixin/mp/api/WeixinMpException.java | 0 .../udf/weixin/mp/api/domain/AccessToken.java | 0 .../itkk/udf/weixin/mp/api/domain/Menu.java | 0 .../udf/weixin/mp/api/domain/MenuGroup.java | 0 .../udf/weixin/mp/api/domain/Oauth2Token.java | 0 .../weixin/mp/api/domain/Oauth2UserInfo.java | 0 .../udf/weixin/mp/api/domain/UserInfo.java | 0 .../mp/api/meta/WeixinMpApiAuthMeta.java | 0 .../itkk/udf/weixin/mp/api/utils/ShaOne.java | 0 .../udf-starter-weixin-mp}/pom.xml | 0 .../mp/service/WeixinMpCallbackService.java | 0 .../mp/web/IWeixinMpCallbackController.java | 0 333 files changed, 7984 insertions(+), 7387 deletions(-) create mode 100644 udf-config-repository/aliyun-dysms/aliyun-dysms-dev.properties create mode 100644 udf-config-repository/aliyun-oss/aliyun-oss-dev.properties create mode 100644 udf-config-repository/base/base-dev.properties create mode 100644 udf-config-repository/cors/cors-dev.properties create mode 100644 udf-config-repository/exception-alert/exception-alert-dev.properties create mode 100644 udf-config-repository/file/file-dev.properties create mode 100644 udf-config-repository/file/file-manager-dev.properties create mode 100644 udf-config-repository/gzip/gzip-dev.properties create mode 100644 udf-config-repository/hystrix/hystrix-dev.properties create mode 100644 udf-config-repository/mail/mail-dev.properties create mode 100644 udf-config-repository/mail/mail-manager-dev.properties create mode 100644 udf-config-repository/rabbitmq/rabbitmq-dev.properties create mode 100644 udf-config-repository/redis/redis-dev.properties create mode 100644 udf-config-repository/ribbon/ribbon-dev.properties create mode 100644 udf-config-repository/rms/rms-dev.properties create mode 100644 udf-config-repository/rms/rms-manager-dev.properties create mode 100644 udf-config-repository/scheduler/scheduler-dev.properties create mode 100644 udf-config-repository/scheduler/scheduler-manager-dev.properties create mode 100644 udf-config-repository/stream/stream-dev.properties create mode 100644 udf-config-repository/weixin-mp/weixin-mp-dev.properties create mode 100644 udf-server/pom.xml create mode 100644 udf-server/udf-eureka-config-server/pom.xml create mode 100644 udf-server/udf-eureka-config-server/src/main/java/org/itkk/udf/eureka/config/server/UdfEurekaConfigServerApplication.java create mode 100644 udf-server/udf-eureka-config-server/src/main/resources/bootstrap-dev.properties create mode 100644 udf-server/udf-eureka-config-server/src/main/resources/bootstrap.properties create mode 100644 udf-server/udf-eureka-config-server/src/main/resources/build_qa.sh create mode 100644 udf-server/udf-eureka-config-server/src/main/resources/logback.xml delete mode 100644 udf-starter-aliyun-dysms/target/classes/org/itkk/udf/aliyun/dysms/web/IAliuyunDysmsController.class delete mode 100644 udf-starter-amqp-rabbitmq/.checkstyle delete mode 100644 udf-starter-amqp-rabbitmq/.gitignore delete mode 100644 udf-starter-auth/.checkstyle delete mode 100644 udf-starter-auth/.gitignore delete mode 100644 udf-starter-cache-redis/.checkstyle delete mode 100644 udf-starter-cache-redis/.gitignore delete mode 100644 udf-starter-connection-pool-druid/.checkstyle delete mode 100644 udf-starter-connection-pool-druid/.gitignore delete mode 100644 udf-starter-core/.checkstyle delete mode 100644 udf-starter-core/.gitignore delete mode 100644 udf-starter-cors/.checkstyle delete mode 100644 udf-starter-cors/.gitignore delete mode 100644 udf-starter-dal-mybatis/.checkstyle delete mode 100644 udf-starter-dal-mybatis/.gitignore delete mode 100644 udf-starter-datasource-dynamic/.checkstyle delete mode 100644 udf-starter-datasource-dynamic/.gitignore delete mode 100644 udf-starter-datasource/.checkstyle delete mode 100644 udf-starter-datasource/.gitignore delete mode 100644 udf-starter-file/.checkstyle delete mode 100644 udf-starter-file/.gitignore delete mode 100644 udf-starter-id/.checkstyle delete mode 100644 udf-starter-id/.gitignore delete mode 100644 udf-starter-mail/.checkstyle delete mode 100644 udf-starter-mail/.gitignore delete mode 100644 udf-starter-qrcode/.checkstyle delete mode 100644 udf-starter-qrcode/.gitignore delete mode 100644 udf-starter-rms/.checkstyle delete mode 100644 udf-starter-rms/.gitignore delete mode 100644 udf-starter-scheduler-client/.checkstyle delete mode 100644 udf-starter-scheduler-client/.gitignore delete mode 100644 udf-starter-scheduler/.checkstyle delete mode 100644 udf-starter-scheduler/.gitignore rename pom.xml => udf-stater/pom.xml (97%) rename {udf-starter-aliyun-dysms-api => udf-stater/udf-starter-aliyun-dysms-api}/pom.xml (100%) rename {udf-starter-aliyun-dysms-api => udf-stater/udf-starter-aliyun-dysms-api}/src/main/java/org/itkk/udf/aliyun/dysms/api/AliyunDysmsProperties.java (100%) rename {udf-starter-aliyun-dysms-api => udf-stater/udf-starter-aliyun-dysms-api}/src/main/java/org/itkk/udf/aliyun/dysms/api/DysmsWarpper.java (100%) rename {udf-starter-aliyun-dysms => udf-stater/udf-starter-aliyun-dysms}/pom.xml (100%) rename {udf-starter-aliyun-dysms => udf-stater/udf-starter-aliyun-dysms}/src/main/java/org/itkk/udf/aliyun/dysms/web/AliuyunDysmsController.java (100%) rename {udf-starter-aliyun-dysms => udf-stater/udf-starter-aliyun-dysms}/src/main/java/org/itkk/udf/aliyun/dysms/web/IAliuyunDysmsController.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/pom.xml (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/IRabbitmqListener.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/MessageLog.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitMqConfig.java (96%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/Rabbitmq.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqConstant.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqListenerBaseAspect.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqListenerLogAspect.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqMessage.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/CompleteLog.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/ErrorLog.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/ReceiveLog.java (100%) rename {udf-starter-amqp-rabbitmq => udf-stater/udf-starter-amqp-rabbitmq}/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/SendLog.java (100%) rename {udf-starter-auth => udf-stater/udf-starter-auth}/pom.xml (100%) rename {udf-starter-auth => udf-stater/udf-starter-auth}/src/main/java/org/itkk/udf/auth/AuthConfig.java (100%) rename {udf-starter-auth => udf-stater/udf-starter-auth}/src/main/java/org/itkk/udf/auth/Constant.java (100%) rename {udf-starter-auth => udf-stater/udf-starter-auth}/src/main/java/org/itkk/udf/auth/RmsFilter.java (100%) rename {udf-starter-cache-redis => udf-stater/udf-starter-cache-redis}/pom.xml (100%) rename {udf-starter-cache-redis => udf-stater/udf-starter-cache-redis}/src/main/java/org/itkk/udf/cache/redis/CacheRedisConfig.java (100%) rename {udf-starter-cache-redis => udf-stater/udf-starter-cache-redis}/src/main/java/org/itkk/udf/cache/redis/CacheRedisProperties.java (100%) rename {udf-starter-cache-redis => udf-stater/udf-starter-cache-redis}/src/main/java/org/itkk/udf/cache/redis/DefRedisCachePrefix.java (100%) rename {udf-starter-cache-redis => udf-stater/udf-starter-cache-redis}/src/main/java/org/itkk/udf/cache/redis/lock/LockResult.java (100%) rename {udf-starter-cache-redis => udf-stater/udf-starter-cache-redis}/src/main/java/org/itkk/udf/cache/redis/lock/RedisBasedDistributedLock.java (100%) rename {udf-starter-connection-pool-druid => udf-stater/udf-starter-connection-pool-druid}/pom.xml (100%) rename {udf-starter-connection-pool-druid => udf-stater/udf-starter-connection-pool-druid}/src/main/java/org/itkk/udf/connection/pool/druid/DruidBuild.java (100%) rename {udf-starter-connection-pool-druid => udf-stater/udf-starter-connection-pool-druid}/src/main/java/org/itkk/udf/connection/pool/druid/DruidConfig.java (100%) rename {udf-starter-connection-pool-druid => udf-stater/udf-starter-connection-pool-druid}/src/main/java/org/itkk/udf/connection/pool/druid/DruidMonitorConfig.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/pom.xml (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/ApplicationConfig.java (95%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/BaseApplication.java (97%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/CleanLogFile.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/RestResponse.java (96%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/ThreadPoolConfig.java (96%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/constant/IdWorkerConstant.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/constant/UdfConstant.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/aliyun/oss/OssListParam.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/aliyun/oss/OssParam.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/datasource/DataSourceMeta.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/datasource/IBuildDataSource.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/file/FileInfo.java (95%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/file/FileParam.java (95%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/id/Id.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/mail/AttachmentInfo.java (95%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/mail/InlineInfo.java (95%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/mail/MailInfo.java (96%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/weixin/mp/BaseResult.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/weixin/mp/Miniprogram.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateDataVo.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateResult.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateVo.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/AuthException.java (94%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/ErrorResult.java (95%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/ParameterValidException.java (95%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/PermissionException.java (94%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/SystemException.java (94%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/SystemRuntimeException.java (94%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/alert/IExceptionAlert.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/handle/ExceptionController.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/handle/ExceptionControllerConfig.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/handle/ExceptionCors.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/handle/ExceptionHandle.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/exception/handle/RmsResponseErrorHandler.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/utils/ClassUtil.java (96%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/utils/DateUtil.java (96%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/utils/IdUtil.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/utils/ZipUtil.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/utils/excel/ExportExcel.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/utils/excel/ExportExcelHeaderMateData.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/utils/excel/ImportExcel.java (100%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/xss/XssFilter.java (96%) rename {udf-starter-core => udf-stater/udf-starter-core}/src/main/java/org/itkk/udf/core/xss/XssHttpServletRequestWrapper.java (96%) rename {udf-starter-cors => udf-stater/udf-starter-cors}/pom.xml (100%) rename {udf-starter-cors => udf-stater/udf-starter-cors}/src/main/java/org/itkk/udf/cors/CorsConfig.java (96%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/pom.xml (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/MyBatisConfig.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/MyBatisProperties.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/InterceptorUtil.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/BoundSqlSqlSource.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/Page.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/PageInterceptor.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/PageResult.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/parser/SqlParser.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/BaseTableSplitInterceptor.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/DefaultStrategy.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/IStrategy.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/QueryTableSplitInterceptor.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/TableSplitContextHolder.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/TableSplitThreadLocal.java (100%) rename {udf-starter-dal-mybatis => udf-stater/udf-starter-dal-mybatis}/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/UpdateTableSplitInterceptor.java (100%) rename {udf-starter-datasource-dynamic => udf-stater/udf-starter-datasource-dynamic}/pom.xml (100%) rename {udf-starter-datasource-dynamic => udf-stater/udf-starter-datasource-dynamic}/src/main/java/org/itkk/udf/datasource/dynamic/DataSourceThreadLocal.java (100%) rename {udf-starter-datasource-dynamic => udf-stater/udf-starter-datasource-dynamic}/src/main/java/org/itkk/udf/datasource/dynamic/DbContextHolder.java (100%) rename {udf-starter-datasource-dynamic => udf-stater/udf-starter-datasource-dynamic}/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSource.java (100%) rename {udf-starter-datasource-dynamic => udf-stater/udf-starter-datasource-dynamic}/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSourceConfig.java (100%) rename {udf-starter-datasource-dynamic => udf-stater/udf-starter-datasource-dynamic}/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSourceException.java (100%) rename {udf-starter-datasource => udf-stater/udf-starter-datasource}/pom.xml (100%) rename {udf-starter-datasource => udf-stater/udf-starter-datasource}/src/main/java/org/itkk/udf/datasource/dynamic/DataSourceConfig.java (100%) rename {udf-starter-exception-alert => udf-stater/udf-starter-exception-alert}/pom.xml (100%) rename {udf-starter-exception-alert => udf-stater/udf-starter-exception-alert}/src/main/java/org/itkk/udf/exception/alert/ExceptionAlert.java (100%) rename {udf-starter-exception-alert => udf-stater/udf-starter-exception-alert}/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertConfig.java (100%) rename {udf-starter-exception-alert => udf-stater/udf-starter-exception-alert}/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertConstant.java (100%) rename {udf-starter-exception-alert => udf-stater/udf-starter-exception-alert}/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertProperties.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/pom.xml (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/AliyunOssProperties.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/OssWarpper.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/domain/PolicyResult.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownConstant.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoad.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadParam.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadProcessAspect.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadProcessService.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownloadInfo.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/IDownLoadProcess.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/meta/AliyunOssAccessMeta.java (100%) rename {udf-starter-file-aliyun-oss-api => udf-stater/udf-starter-file-aliyun-oss-api}/src/main/java/org/itkk/udf/file/aliyun/oss/api/meta/AliyunOssPathMeta.java (100%) rename {udf-starter-file-aliyun-oss => udf-stater/udf-starter-file-aliyun-oss}/pom.xml (100%) rename {udf-starter-file-aliyun-oss => udf-stater/udf-starter-file-aliyun-oss}/src/main/java/org/itkk/udf/file/aliyun/oss/web/AliyunOssController.java (100%) rename {udf-starter-file-aliyun-oss => udf-stater/udf-starter-file-aliyun-oss}/src/main/java/org/itkk/udf/file/aliyun/oss/web/IAliuyunOssController.java (100%) rename {udf-starter-file => udf-stater/udf-starter-file}/pom.xml (100%) rename {udf-starter-file => udf-stater/udf-starter-file}/src/main/java/org/itkk/udf/file/FileException.java (94%) rename {udf-starter-file => udf-stater/udf-starter-file}/src/main/java/org/itkk/udf/file/FileProperties.java (95%) rename {udf-starter-file => udf-stater/udf-starter-file}/src/main/java/org/itkk/udf/file/meta/PathMeta.java (93%) rename {udf-starter-file => udf-stater/udf-starter-file}/src/main/java/org/itkk/udf/file/service/FileService.java (97%) rename {udf-starter-file => udf-stater/udf-starter-file}/src/main/java/org/itkk/udf/file/web/FileController.java (96%) rename {udf-starter-file => udf-stater/udf-starter-file}/src/main/java/org/itkk/udf/file/web/IFileController.java (97%) rename {udf-starter-id => udf-stater/udf-starter-id}/pom.xml (100%) rename {udf-starter-id => udf-stater/udf-starter-id}/src/main/java/org/itkk/udf/id/IdWorker.java (100%) rename {udf-starter-id => udf-stater/udf-starter-id}/src/main/java/org/itkk/udf/id/IdWorkerConfig.java (100%) rename {udf-starter-id => udf-stater/udf-starter-id}/src/main/java/org/itkk/udf/id/IdWorkerFactory.java (100%) rename {udf-starter-id => udf-stater/udf-starter-id}/src/main/java/org/itkk/udf/id/IdWorkerProperties.java (100%) rename {udf-starter-id => udf-stater/udf-starter-id}/src/main/java/org/itkk/udf/id/domain/CacheValue.java (100%) rename {udf-starter-id => udf-stater/udf-starter-id}/src/main/java/org/itkk/udf/id/domain/IdWorkerWrapper.java (100%) rename {udf-starter-id => udf-stater/udf-starter-id}/src/main/java/org/itkk/udf/id/service/IdWorkerService.java (100%) rename {udf-starter-id => udf-stater/udf-starter-id}/src/main/java/org/itkk/udf/id/web/IIdWorkerController.java (100%) rename {udf-starter-id => udf-stater/udf-starter-id}/src/main/java/org/itkk/udf/id/web/IdWorkerController.java (100%) rename {udf-starter-id => udf-stater/udf-starter-id}/src/main/test/org/itkk/udf/id/IdWorkerTest.java (100%) rename {udf-starter-mail => udf-stater/udf-starter-mail}/pom.xml (100%) rename {udf-starter-mail => udf-stater/udf-starter-mail}/src/main/java/org/itkk/udf/mail/MailException.java (94%) rename {udf-starter-mail => udf-stater/udf-starter-mail}/src/main/java/org/itkk/udf/mail/MailProperties.java (95%) rename {udf-starter-mail => udf-stater/udf-starter-mail}/src/main/java/org/itkk/udf/mail/service/MailService.java (97%) rename {udf-starter-mail => udf-stater/udf-starter-mail}/src/main/java/org/itkk/udf/mail/web/IMailController.java (97%) rename {udf-starter-mail => udf-stater/udf-starter-mail}/src/main/java/org/itkk/udf/mail/web/MailController.java (96%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/pom.xml (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/domain/QrCodeRequest.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/option/BgImgOptions.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/option/BgImgStyle.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/option/BitMatrixEx.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/option/DetectOptions.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/option/DrawOptions.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/option/DrawStyle.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/option/ExpandType.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/option/LogoOptions.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/option/LogoStyle.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/option/QrCodeOptions.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/service/QrcodeService.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/utils/Base64Util.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/utils/ColorUtil.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/utils/HttpUtil.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/utils/ImageUtil.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/utils/NumUtil.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/utils/QrCodeUtil.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/web/IQrcodeController.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/main/java/org/itkk/udf/qrcode/web/QrcodeController.java (100%) rename {udf-starter-qrcode => udf-stater/udf-starter-qrcode}/src/test/java/org/itkk/udf/qrcode/QrCodeServiceTest.java (100%) rename {udf-starter-rms => udf-stater/udf-starter-rms}/pom.xml (100%) rename {udf-starter-rms => udf-stater/udf-starter-rms}/src/main/java/org/itkk/udf/rms/Constant.java (95%) rename {udf-starter-rms => udf-stater/udf-starter-rms}/src/main/java/org/itkk/udf/rms/Rms.java (97%) rename {udf-starter-rms => udf-stater/udf-starter-rms}/src/main/java/org/itkk/udf/rms/RmsAuthHandlerInterceptor.java (97%) rename {udf-starter-rms => udf-stater/udf-starter-rms}/src/main/java/org/itkk/udf/rms/RmsConfig.java (96%) rename {udf-starter-rms => udf-stater/udf-starter-rms}/src/main/java/org/itkk/udf/rms/RmsProperties.java (95%) rename {udf-starter-rms => udf-stater/udf-starter-rms}/src/main/java/org/itkk/udf/rms/meta/ApplicationMeta.java (94%) rename {udf-starter-rms => udf-stater/udf-starter-rms}/src/main/java/org/itkk/udf/rms/meta/ServiceMeta.java (93%) rename {udf-starter-rms => udf-stater/udf-starter-rms}/src/main/java/org/itkk/udf/rms/web/RmsController.java (96%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/pom.xml (100%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/RmsJobStats.java (93%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/SchClientHandle.java (96%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/SchException.java (94%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/TriggerDataMapKey.java (94%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/TriggerType.java (94%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobParam.java (95%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobResult.java (96%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/executor/AbstractExecutor.java (96%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/service/SchClientService.java (96%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/web/ISchClientController.java (97%) rename {udf-starter-scheduler-client => udf-stater/udf-starter-scheduler-client}/src/main/java/org/itkk/udf/scheduler/client/web/SchClientController.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_cloudscape.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_cubrid.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_db2.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_db2_v72.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_db2_v8.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_db2_v95.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_derby.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_derby_previous.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_firebird.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_h2.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_hsqldb.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_hsqldb_old.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_informix.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_mysql.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_mysql_innodb.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_oracle.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_pointbase.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_postgres.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_sapdb.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_solid.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_sqlServer.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/dbTables/tables_sybase.sql (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/pom.xml (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/AutoInitCommandLineRunner.java (97%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/AutowiringSpringBeanJobFactory.java (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/IListenerEvent.java (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/IRmsJobEvent.java (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/SchedulerConfig.java (97%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/SchedulerProperties.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/domain/ScheduledTriggerLog.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/impl/DefListenerEvent.java (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/impl/DefRmsJobEvent.java (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseJob.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseRmsJob.java (100%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledLog.java (95%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledTriggerLog.java (95%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/job/RmsJob.java (95%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/job/RmsJobDisallowConcurrent.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/listener/JobDetailListener.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/listener/SchListener.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/listener/TriggerDetailListener.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/meta/CronTriggerMeta.java (94%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/meta/JobDetailMeta.java (94%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/meta/SimpleTriggerMeta.java (95%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/meta/TriggerMeta.java (94%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/service/JobService.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/service/ListenerService.java (97%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/service/SchedulerService.java (95%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/service/TriggerService.java (97%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/web/IJobController.java (98%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/web/ISchClientCallbackController.java (97%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/web/ISchedulerController.java (97%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/web/ITriggerController.java (98%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/web/JobController.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/web/SchClientCallbackController.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/web/SchedulerController.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/java/org/itkk/udf/scheduler/web/TriggerController.java (96%) rename {udf-starter-scheduler => udf-stater/udf-starter-scheduler}/src/main/resources/def_quartz.properties (100%) rename {udf-starter-swagger2 => udf-stater/udf-starter-swagger2}/pom.xml (100%) rename {udf-starter-swagger2 => udf-stater/udf-starter-swagger2}/src/main/java/org/itkk/udf/swagger2/Swagger2Config.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/pom.xml (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/Menu.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/MessageTemplate.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/Oauth2.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/Token.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/User.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpApiConfig.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpApiProperties.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpConsont.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpException.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/domain/AccessToken.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/domain/Menu.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/domain/MenuGroup.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/domain/Oauth2Token.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/domain/Oauth2UserInfo.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/domain/UserInfo.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/meta/WeixinMpApiAuthMeta.java (100%) rename {udf-starter-weixin-mp-api => udf-stater/udf-starter-weixin-mp-api}/src/main/java/org/itkk/udf/weixin/mp/api/utils/ShaOne.java (100%) rename {udf-starter-weixin-mp => udf-stater/udf-starter-weixin-mp}/pom.xml (100%) rename {udf-starter-weixin-mp => udf-stater/udf-starter-weixin-mp}/src/main/java/org/itkk/udf/weixin/mp/service/WeixinMpCallbackService.java (100%) rename {udf-starter-weixin-mp => udf-stater/udf-starter-weixin-mp}/src/main/java/org/itkk/udf/weixin/mp/web/IWeixinMpCallbackController.java (100%) diff --git a/udf-config-repository/aliyun-dysms/aliyun-dysms-dev.properties b/udf-config-repository/aliyun-dysms/aliyun-dysms-dev.properties new file mode 100644 index 0000000..4625167 --- /dev/null +++ b/udf-config-repository/aliyun-dysms/aliyun-dysms-dev.properties @@ -0,0 +1,5 @@ +######################################################## +###aliyun dysms (AliyunDysmsProperties) +######################################################## +org.itkk.aliyun.dysms.properties.accessKeyId= +org.itkk.aliyun.dysms.properties.accessKeySecret= \ No newline at end of file diff --git a/udf-config-repository/aliyun-oss/aliyun-oss-dev.properties b/udf-config-repository/aliyun-oss/aliyun-oss-dev.properties new file mode 100644 index 0000000..c44f468 --- /dev/null +++ b/udf-config-repository/aliyun-oss/aliyun-oss-dev.properties @@ -0,0 +1,14 @@ +######################################################## +###aliyun oss (AliyunOssProperties) (must reboot) +######################################################## +org.itkk.file.aliyun.oss.properties.auth.qa-ew-file.accessId= +org.itkk.file.aliyun.oss.properties.auth.qa-ew-file.accessKey= +org.itkk.file.aliyun.oss.properties.auth.qa-ew-file.endPoint= +org.itkk.file.aliyun.oss.properties.auth.qa-ew-file.expireTime=60 +# +org.itkk.file.aliyun.oss.properties.path.qa-ew-file.bucketName= +org.itkk.file.aliyun.oss.properties.path.qa-ew-file.ossHost= +org.itkk.file.aliyun.oss.properties.path.qa-ew-file.ossInternalHost= +org.itkk.file.aliyun.oss.properties.path.qa-ew-file.cdnHost= +# +org.itkk.file.aliyun.oss.code= \ No newline at end of file diff --git a/udf-config-repository/base/base-dev.properties b/udf-config-repository/base/base-dev.properties new file mode 100644 index 0000000..f8bd5a6 --- /dev/null +++ b/udf-config-repository/base/base-dev.properties @@ -0,0 +1,24 @@ +######################################################## +###SPRING MVC (WebMvcProperties) (must reboot) +######################################################## +spring.mvc.async.request-timeout=-1 +spring.mandatory-file-encoding=${org.itkk.application.config.encoding} +######################################################## +###JACKSON ( JacksonProperties ) +######################################################## +#spring.jackson.dateFormat=${org.itkk.application.config.dateFormat} +#spring.jackson.jodaDateTimeFormat=${org.itkk.application.config.dateFormat} +spring.jackson.timeZone=${org.itkk.application.config.timeZone} +spring.jackson.serialization.INDENT_OUTPUT=true +spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false +spring.jackson.deserialization.FAIL_ON_UNKNOWN_PROPERTIES=false +spring.jackson.parser.ALLOW_SINGLE_QUOTES=true +spring.jackson.parser.ALLOW_UNQUOTED_CONTROL_CHARS=true +######################################################## +###\u91CD\u8BD5\u673A\u5236 ( LoadBalancerRetryProperties ) +######################################################## +spring.cloud.loadbalancer.retry.enabled=true +######################################################## +###\u7CFB\u7EDF\u57DF\u540D +######################################################## +base.host.name= \ No newline at end of file diff --git a/udf-config-repository/cors/cors-dev.properties b/udf-config-repository/cors/cors-dev.properties new file mode 100644 index 0000000..50d14fd --- /dev/null +++ b/udf-config-repository/cors/cors-dev.properties @@ -0,0 +1,4 @@ +######################################################## +###CORS (CorsConfig) (must reboot) +######################################################## +org.itkk.cors.config.demo.mapping=/** \ No newline at end of file diff --git a/udf-config-repository/exception-alert/exception-alert-dev.properties b/udf-config-repository/exception-alert/exception-alert-dev.properties new file mode 100644 index 0000000..99e2b8a --- /dev/null +++ b/udf-config-repository/exception-alert/exception-alert-dev.properties @@ -0,0 +1,5 @@ +######################################################## +###ExceptionAlertProperties +######################################################## +org.itkk.exception.alert.properties.enable=true +org.itkk.exception.alert.properties.excludeType=org.itkk.udf.core.exception.ParameterValidException,org.itkk.udf.core.exception.AuthException,org.springframework.web.bind.MethodArgumentNotValidException,com.ny.ew.zuul.service.store.login.TokenInvalidException,com.ny.ew.zuul.service.company.login.TokenInvalidException,com.ny.ew.zuul.service.weixin.mp.UnBindException,org.itkk.udf.weixin.mp.api.WeixinMpException \ No newline at end of file diff --git a/udf-config-repository/file/file-dev.properties b/udf-config-repository/file/file-dev.properties new file mode 100644 index 0000000..b95ba7c --- /dev/null +++ b/udf-config-repository/file/file-dev.properties @@ -0,0 +1,9 @@ +######################################################## +###MULTIPART (MultipartProperties) +######################################################## +spring.http.multipart.enabled=true +spring.http.multipart.file-size-threshold=0 +#spring.http.multipart.location=d:/testtesttest/ +spring.http.multipart.max-file-size=1MB +spring.http.multipart.max-request-size=10MB +spring.http.multipart.resolve-lazily=false \ No newline at end of file diff --git a/udf-config-repository/file/file-manager-dev.properties b/udf-config-repository/file/file-manager-dev.properties new file mode 100644 index 0000000..b2d3c2f --- /dev/null +++ b/udf-config-repository/file/file-manager-dev.properties @@ -0,0 +1,7 @@ +######################################################## +###FileProperties (FileProperties) +######################################################## +org.itkk.file.properties.rootPath=D:/develop/ew-api-log/ +org.itkk.file.properties.path.test.owner=ew-general-server +org.itkk.file.properties.path.test.path=/file/tttt/ +org.itkk.file.properties.path.test.description=\u6D4B\u8BD5\u8DEF\u5F84 \ No newline at end of file diff --git a/udf-config-repository/gzip/gzip-dev.properties b/udf-config-repository/gzip/gzip-dev.properties new file mode 100644 index 0000000..c14e2aa --- /dev/null +++ b/udf-config-repository/gzip/gzip-dev.properties @@ -0,0 +1,5 @@ +######################################################## +###GZIP (ServerProperties) (must reboot) +######################################################## +server.compression.enabled=true +server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json \ No newline at end of file diff --git a/udf-config-repository/hystrix/hystrix-dev.properties b/udf-config-repository/hystrix/hystrix-dev.properties new file mode 100644 index 0000000..1fd5524 --- /dev/null +++ b/udf-config-repository/hystrix/hystrix-dev.properties @@ -0,0 +1,5 @@ +######################################################## +###\u65AD\u8DEF\u5668 (HystrixCommandProperties) +######################################################## +# \u65AD\u8DEF\u5668\u7684\u8D85\u65F6\u65F6\u95F4\u9700\u8981\u5927\u4E8Eribbon\u7684\u8D85\u65F6\u65F6\u95F4\uFF0C\u4E0D\u7136\u4E0D\u4F1A\u89E6\u53D1\u91CD\u8BD5 +hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000 \ No newline at end of file diff --git a/udf-config-repository/mail/mail-dev.properties b/udf-config-repository/mail/mail-dev.properties new file mode 100644 index 0000000..4984850 --- /dev/null +++ b/udf-config-repository/mail/mail-dev.properties @@ -0,0 +1,13 @@ +######################################################## +###Email (MailProperties) +######################################################## +spring.mail.default-encoding=${org.itkk.application.config.encoding} +spring.mail.host=smtp.163.com +spring.mail.port=465 +spring.mail.test-connection=false +spring.mail.username=udf_admin@163.com +spring.mail.password=123qwe +spring.mail.properties.mail.smtp.auth=true +spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory +spring.mail.properties.mail.smtp.starttls.enable=true +spring.mail.properties.mail.smtp.starttls.required=true \ No newline at end of file diff --git a/udf-config-repository/mail/mail-manager-dev.properties b/udf-config-repository/mail/mail-manager-dev.properties new file mode 100644 index 0000000..1b29dbc --- /dev/null +++ b/udf-config-repository/mail/mail-manager-dev.properties @@ -0,0 +1,4 @@ +######################################################## +###MAIL (MailProperties) +######################################################## +org.itkk.mail.properties.from=udf_admin@163.com \ No newline at end of file diff --git a/udf-config-repository/rabbitmq/rabbitmq-dev.properties b/udf-config-repository/rabbitmq/rabbitmq-dev.properties new file mode 100644 index 0000000..561a4b5 --- /dev/null +++ b/udf-config-repository/rabbitmq/rabbitmq-dev.properties @@ -0,0 +1,12 @@ +######################################################## +###spring.rabbitmq ( RabbitProperties ) +######################################################## +spring.rabbitmq.host=itkk.org +spring.rabbitmq.port=5672 +spring.rabbitmq.username=dev_udf_sample_api +spring.rabbitmq.password=1qazxsw2 +spring.rabbitmq.virtual-host=/dev_udf_sample_api +spring.rabbitmq.template.retry.enabled=true +spring.rabbitmq.listener.simple.retry.enabled=true +spring.rabbitmq.listener.simple.concurrency=5 +spring.rabbitmq.listener.simple.max-concurrency=10 \ No newline at end of file diff --git a/udf-config-repository/redis/redis-dev.properties b/udf-config-repository/redis/redis-dev.properties new file mode 100644 index 0000000..60fcb3f --- /dev/null +++ b/udf-config-repository/redis/redis-dev.properties @@ -0,0 +1,17 @@ +######################################################## +###REDIS (CacheRedisProperties) +######################################################## +org.itkk.cache.redis.properties.prefix=${spring.profiles.active}:${spring.application.name} +######################################################## +###REDIS (RedisProperties) +######################################################## +spring.redis.host=itkk.org +spring.redis.port=6379 +spring.redis.password=1qazxsw2 +#spring.redis.database=0 +#spring.redis.pool.max-idle=8 +#spring.redis.pool.min-idle=0 +#spring.redis.pool.max-active=8 +#spring.redis.pool.max-wait=-1 +#spring.redis.sentinel.master= +#spring.redis.sentinel.nodes= \ No newline at end of file diff --git a/udf-config-repository/ribbon/ribbon-dev.properties b/udf-config-repository/ribbon/ribbon-dev.properties new file mode 100644 index 0000000..bc82d2b --- /dev/null +++ b/udf-config-repository/ribbon/ribbon-dev.properties @@ -0,0 +1,13 @@ +######################################################## +###ribbon ( CommonClientConfigKey , DefaultClientConfigImpl ) +######################################################## +# \u8BF7\u6C42\u8FDE\u63A5\u7684\u8D85\u65F6\u65F6\u95F4 +ribbon.ConnectTimeout=250 +# \u8BF7\u6C42\u5904\u7406\u7684\u8D85\u65F6\u65F6\u95F4 +ribbon.ReadTimeout=1000 +# \u5BF9\u6240\u6709\u64CD\u4F5C\u8BF7\u6C42\u90FD\u8FDB\u884C\u91CD\u8BD5 +ribbon.OkToRetryOnAllOperations=true +# \u5207\u6362\u5B9E\u4F8B\u7684\u91CD\u8BD5\u6B21\u6570 +ribbon.MaxAutoRetriesNextServer=2 +# \u5BF9\u5F53\u524D\u5B9E\u4F8B\u7684\u91CD\u8BD5\u6B21\u6570 +ribbon.MaxAutoRetries=1 \ No newline at end of file diff --git a/udf-config-repository/rms/rms-dev.properties b/udf-config-repository/rms/rms-dev.properties new file mode 100644 index 0000000..04bbe89 --- /dev/null +++ b/udf-config-repository/rms/rms-dev.properties @@ -0,0 +1,4 @@ +######################################################## +###RMS (RmsConfig) +######################################################## +org.itkk.rms.config.rmsPathPatterns=/service/** \ No newline at end of file diff --git a/udf-config-repository/rms/rms-manager-dev.properties b/udf-config-repository/rms/rms-manager-dev.properties new file mode 100644 index 0000000..e82c606 --- /dev/null +++ b/udf-config-repository/rms/rms-manager-dev.properties @@ -0,0 +1,5 @@ +######################################################## +###RMS (RmsProperties) +######################################################## +# application +# service \ No newline at end of file diff --git a/udf-config-repository/scheduler/scheduler-dev.properties b/udf-config-repository/scheduler/scheduler-dev.properties new file mode 100644 index 0000000..49958a5 --- /dev/null +++ b/udf-config-repository/scheduler/scheduler-dev.properties @@ -0,0 +1,4 @@ +######################################################## +###scheduler ( SchedulerConfig ) +######################################################## +#org.itkk.scheduler.config.startupDelay=0 \ No newline at end of file diff --git a/udf-config-repository/scheduler/scheduler-manager-dev.properties b/udf-config-repository/scheduler/scheduler-manager-dev.properties new file mode 100644 index 0000000..f2f0e98 --- /dev/null +++ b/udf-config-repository/scheduler/scheduler-manager-dev.properties @@ -0,0 +1,23 @@ +######################################################## +###scheduler ( SchedulerProperties ) +######################################################## +#jobGroup +org.itkk.scheduler.properties.jobGroup.general=\u901A\u7528 +#triggerGroup +org.itkk.scheduler.properties.triggerGroup.general=\u901A\u7528 +#rmsJob +org.itkk.scheduler.properties.jobDetail.rmsJob.name=generalJob +org.itkk.scheduler.properties.jobDetail.rmsJob.group=general +org.itkk.scheduler.properties.jobDetail.rmsJob.className=org.itkk.udf.scheduler.job.RmsJob +org.itkk.scheduler.properties.jobDetail.rmsJob.description=\u901A\u7528\u4F5C\u4E1A +org.itkk.scheduler.properties.jobDetail.rmsJob.recovery=false +org.itkk.scheduler.properties.jobDetail.rmsJob.durability=true +org.itkk.scheduler.properties.jobDetail.rmsJob.autoInit=true +#rmsJobDisallowConcurrent +org.itkk.scheduler.properties.jobDetail.rmsJobDisallowConcurrent.name=generalJobDisallowConcurrent +org.itkk.scheduler.properties.jobDetail.rmsJobDisallowConcurrent.group=general +org.itkk.scheduler.properties.jobDetail.rmsJobDisallowConcurrent.className=org.itkk.udf.scheduler.job.RmsJobDisallowConcurrent +org.itkk.scheduler.properties.jobDetail.rmsJobDisallowConcurrent.description=\u901A\u7528\u4F5C\u4E1A(\u7981\u6B62\u5E76\u53D1) +org.itkk.scheduler.properties.jobDetail.rmsJobDisallowConcurrent.recovery=false +org.itkk.scheduler.properties.jobDetail.rmsJobDisallowConcurrent.durability=true +org.itkk.scheduler.properties.jobDetail.rmsJobDisallowConcurrent.autoInit=true \ No newline at end of file diff --git a/udf-config-repository/stream/stream-dev.properties b/udf-config-repository/stream/stream-dev.properties new file mode 100644 index 0000000..92f57e9 --- /dev/null +++ b/udf-config-repository/stream/stream-dev.properties @@ -0,0 +1,16 @@ +######################################################## +###stream ( BindingServiceProperties ) +######################################################## +spring.cloud.stream.defaultBinder=defRabbit +# +spring.cloud.stream.binders.defRabbit.type=rabbit +spring.cloud.stream.binders.defRabbit.environment.spring.rabbitmq.host=itkk.org +spring.cloud.stream.binders.defRabbit.environment.spring.rabbitmq.port=5672 +spring.cloud.stream.binders.defRabbit.environment.spring.rabbitmq.username=dev_udf_sample_api +spring.cloud.stream.binders.defRabbit.environment.spring.rabbitmq.password=1qazxsw2 +spring.cloud.stream.binders.defRabbit.environment.spring.rabbitmq.virtual-host=/dev_udf_sample_api +spring.cloud.stream.binders.defRabbit.environment.spring.rabbitmq.template.retry.enabled=true +spring.cloud.stream.binders.defRabbit.environment.spring.rabbitmq.listener.retry.enabled=true +# +#spring.cloud.stream.bindings.test.binder=defRabbit +#spring.cloud.stream.bindings.test.contentType=application/json \ No newline at end of file diff --git a/udf-config-repository/weixin-mp/weixin-mp-dev.properties b/udf-config-repository/weixin-mp/weixin-mp-dev.properties new file mode 100644 index 0000000..eb49837 --- /dev/null +++ b/udf-config-repository/weixin-mp/weixin-mp-dev.properties @@ -0,0 +1,22 @@ +######################################################## +###weixin mp (WeixinMpApiProperties) +######################################################## +org.itkk.weixin.mp.api.properties.auth.customer.appId= +org.itkk.weixin.mp.api.properties.auth.customer.appSecret= +org.itkk.weixin.mp.api.properties.auth.customer.token= +org.itkk.weixin.mp.api.properties.auth.customer.encodingAesKey= +org.itkk.weixin.mp.api.properties.auth.customer.safeModel=true +# +org.itkk.weixin.mp.api.properties.auth.customer.messageTemplateId.purchase_success_notice= +org.itkk.weixin.mp.api.properties.auth.customer.messageTemplateId.consumption_notification= +org.itkk.weixin.mp.api.properties.auth.customer.messageTemplateId.new_booking_order_notification= +# +org.itkk.weixin.mp.api.properties.snsPath.sns_oauth2_access_token=https://api.weixin.qq.com/sns/oauth2/access_token +org.itkk.weixin.mp.api.properties.snsPath.sns_oauth2_refresh_token=https://api.weixin.qq.com/sns/oauth2/refresh_token +org.itkk.weixin.mp.api.properties.snsPath.sns_userinfo=https://api.weixin.qq.com/sns/userinfo +org.itkk.weixin.mp.api.properties.snsPath.sns_auth=https://api.weixin.qq.com/sns/auth +# +org.itkk.weixin.mp.api.properties.apiPath.token=https://api.weixin.qq.com/cgi-bin/token +org.itkk.weixin.mp.api.properties.apiPath.menu_create=https://api.weixin.qq.com/cgi-bin/menu/create +org.itkk.weixin.mp.api.properties.apiPath.user_info=https://api.weixin.qq.com/cgi-bin/user/info +org.itkk.weixin.mp.api.properties.apiPath.message_template_send=https://api.weixin.qq.com/cgi-bin/message/template/send diff --git a/udf-server/pom.xml b/udf-server/pom.xml new file mode 100644 index 0000000..b7c2abc --- /dev/null +++ b/udf-server/pom.xml @@ -0,0 +1,272 @@ + + + 4.0.0 + + org.itkk.udf + udf-server + udf-server + 1.0 + pom + http://itkk.org:81 + + + ${maven.build.timestamp} + 1.0 + 1.0 + 1.5.10.RELEASE + Edgware.SR3 + UTF-8 + 1.8 + 3.7.0 + 3.0.1 + 1.0.0 + 192.168.1.10:5000/org.itkk/java:8 + 192.168.1.10:5000 + wangkangit@163.com + 1.5.6 + + + + udf-eureka-config-server + + + + + + dev + + true + + + dev + + + + + qa + + qa + + + + + pe + + pe + + + + + + + + + org.springframework.boot + spring-boot-dependencies + ${springboot.version} + pom + import + + + + org.springframework.cloud + spring-cloud-dependencies + ${springcloud.version} + pom + import + + + + org.itkk.udf + udf-starter-core + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-exception-alert + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-swagger2 + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-rms + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-cors + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-amqp-rabbitmq + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-file-aliyun-oss-api + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-file-aliyun-oss + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-aliyun-dysms + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-aliyun-dysms-api + ${udf-starter.version} + + + + + + + org.itkk.udf + udf-starter-mail + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-scheduler + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-scheduler-client + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-id + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-datasource + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-connection-pool-druid + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-qrcode + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-auth + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-dal-mybatis + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-cache-redis + ${udf-starter.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + attach-sources + + jar + + + + + + + + + + + + + + + + + + central + Nexus aliyun + default + http://maven.aliyun.com/nexus/content/groups/public/ + + + + + + + central + Nexus aliyun + http://maven.aliyun.com/nexus/content/groups/public/ + default + + true + + + true + + + + diff --git a/udf-server/udf-eureka-config-server/pom.xml b/udf-server/udf-eureka-config-server/pom.xml new file mode 100644 index 0000000..486f1d7 --- /dev/null +++ b/udf-server/udf-eureka-config-server/pom.xml @@ -0,0 +1,104 @@ + + + 4.0.0 + + udf-eureka-config-server + udf-eureka-config-server + jar + http://itkk.org:81 + + + org.itkk.udf + udf-server + 1.0 + + + + 9001 + 8001 + + + + + + org.springframework.boot + spring-boot-starter-security + + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-server + + + + org.springframework.cloud + spring-cloud-config-server + + + + org.springframework.boot + spring-boot-devtools + true + + + + org.itkk.udf + udf-starter-core + + + + org.itkk.udf + udf-starter-exception-alert + + + + org.itkk.udf + udf-starter-amqp-rabbitmq + + + + + + + ${project.basedir}/src/main/resources/ + true + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${springboot.version} + + + + repackage + + + + + + + com.spotify + docker-maven-plugin + ${docker-maven-plugin.version} + + ${docker.registry.host}/${project.groupId}/${project.artifactId}:latest + ${docker.java.base.image} + ${docker.maintainer} + ${server.port} + + ["java","-jar","/${project.build.finalName}.jar"] + + + ${project.build.directory} + ${project.build.finalName}.jar + + + + + + + diff --git a/udf-server/udf-eureka-config-server/src/main/java/org/itkk/udf/eureka/config/server/UdfEurekaConfigServerApplication.java b/udf-server/udf-eureka-config-server/src/main/java/org/itkk/udf/eureka/config/server/UdfEurekaConfigServerApplication.java new file mode 100644 index 0000000..2069ec0 --- /dev/null +++ b/udf-server/udf-eureka-config-server/src/main/java/org/itkk/udf/eureka/config/server/UdfEurekaConfigServerApplication.java @@ -0,0 +1,28 @@ +package org.itkk.udf.eureka.config.server; + +import org.itkk.udf.core.BaseApplication; +import org.springframework.boot.SpringApplication; +import org.springframework.cloud.client.SpringCloudApplication; +import org.springframework.cloud.config.server.EnableConfigServer; +import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; + +/** + * 描述 : 系统入口 + * + * @author wangkang + */ +@SpringCloudApplication +@EnableEurekaServer +@EnableConfigServer +public class UdfEurekaConfigServerApplication extends BaseApplication { + + /** + * 描述 : spring boot的入口,在整个项目中,包括其子项目在内, 只能有一个main方法,否则spring boot启动不起来 + * + * @param args 参数 + */ + public static void main(String[] args) { + SpringApplication.run(UdfEurekaConfigServerApplication.class, args); + } + +} diff --git a/udf-server/udf-eureka-config-server/src/main/resources/bootstrap-dev.properties b/udf-server/udf-eureka-config-server/src/main/resources/bootstrap-dev.properties new file mode 100644 index 0000000..eac0e03 --- /dev/null +++ b/udf-server/udf-eureka-config-server/src/main/resources/bootstrap-dev.properties @@ -0,0 +1,68 @@ +######################################################## +###security (must reboot) +######################################################## +security.user.name=admin +security.user.password=123456 +######################################################## +###eureka.instance ( EurekaInstanceConfigBean ) (must reboot) +######################################################## +eureka.instance.preferIpAddress=true +######################################################## +###eureka.client (EurekaClientConfigBean , EurekaServerConfigBean ) (must reboot) +######################################################## +eureka.client.enabled=true +eureka.client.serviceUrl.defaultZone=http://admin:123456@127.0.0.1:${server.port}/eureka/ +eureka.client.register-with-eureka=true +eureka.client.fetch-registry=true +######################################################## +###spring.cloud.config.server ( ConfigServerProperties ) +######################################################## +spring.cloud.config.server.prefix=config-server +######################################################## +###spring.cloud.config.server.git ( MultipleJGitEnvironmentRepository ) ({application}/{profile}/{label}) +######################################################## +spring.cloud.config.server.git.uri=https://gitee.com/wangkang/udf.git +spring.cloud.config.server.git.searchPaths=udf-config-repository/{application} +spring.cloud.config.server.git.defaultLabel=master +spring.cloud.config.server.git.forcePull=true +spring.cloud.config.server.git.username=udf_admin@163.com +spring.cloud.config.server.git.password=123456!@#$%^ +######################################################## +###spring.rabbitmq ( RabbitProperties ) +######################################################## +spring.rabbitmq.host=itkk.org +spring.rabbitmq.port=5672 +spring.rabbitmq.username=dev_udf_sample_api +spring.rabbitmq.password=1qazxsw2 +spring.rabbitmq.virtual-host=/dev_udf_sample_api +spring.rabbitmq.template.retry.enabled=true +######################################################## +###org.itkk.application.config (ApplicationConfig) +######################################################## +org.itkk.application.config.outputExceptionStackTrace=true +org.itkk.application.config.threadPool.poolSize=100 +######################################################## +###LOGGING (must reboot) +######################################################## +logging.file=d:/develop/${project.groupId}-log/${spring.application.name}_${server.port}_${spring.profiles.active}/base.log +######################################################## +###GZIP (ServerProperties) ((must reboot) +######################################################## +server.compression.enabled=true +server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json +######################################################## +###SPRING MVC (WebMvcProperties) (must reboot) +######################################################## +spring.mvc.async.request-timeout=-1 +spring.mandatory-file-encoding=${org.itkk.application.config.encoding} +######################################################## +###JACKSON ( JacksonProperties ) +######################################################## +#spring.jackson.dateFormat=${org.itkk.application.config.dateFormat} +#spring.jackson.jodaDateTimeFormat=${org.itkk.application.config.dateFormat} +spring.jackson.timeZone=${org.itkk.application.config.timeZone} +spring.jackson.serialization.INDENT_OUTPUT=true +spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=true +spring.jackson.deserialization.FAIL_ON_UNKNOWN_PROPERTIES=true +spring.jackson.parser.ALLOW_SINGLE_QUOTES=true +spring.jackson.parser.ALLOW_UNQUOTED_CONTROL_CHARS=true \ No newline at end of file diff --git a/udf-server/udf-eureka-config-server/src/main/resources/bootstrap.properties b/udf-server/udf-eureka-config-server/src/main/resources/bootstrap.properties new file mode 100644 index 0000000..f7fb283 --- /dev/null +++ b/udf-server/udf-eureka-config-server/src/main/resources/bootstrap.properties @@ -0,0 +1,40 @@ +######################################################## +###INFO ( note : info.build.time is the UTC time ) +######################################################## +info.build.group=${project.groupId} +info.build.artifact=${project.artifactId} +info.build.version=${project.version} +info.build.name=${project.name} +info.build.time=${project.build.date} +info.build.encoding=${project.build.sourceEncoding} +info.build.java.source=${java.version} +info.build.java.target=${java.version} +######################################################## +###IDENTITY +######################################################## +spring.application.name=${project.name} +######################################################## +###WEB PROPERTIES (ServerProperties) +######################################################## +server.port=${server.port} +######################################################## +###MANAGEMENT (ManagementServerProperties) +######################################################## +management.security.enabled=false +######################################################## +###PROFILES +######################################################## +spring.profiles.active=${profiles.activation} +######################################################## +###org.itkk.application.config (ApplicationConfig) (must reboot) +######################################################## +org.itkk.application.config.encoding=UTF-8 +org.itkk.application.config.timeZone=Asia/Shanghai +org.itkk.application.config.dateFormat=yyyy-MM-dd'T'HH:mm:ss:SSSZ +######################################################## +### shutdown +######################################################## +endpoints.shutdown.enabled=true +endpoints.shutdown.sensitive=true +management.port=${management.port} +management.address=127.0.0.1 \ No newline at end of file diff --git a/udf-server/udf-eureka-config-server/src/main/resources/build_qa.sh b/udf-server/udf-eureka-config-server/src/main/resources/build_qa.sh new file mode 100644 index 0000000..836c3ca --- /dev/null +++ b/udf-server/udf-eureka-config-server/src/main/resources/build_qa.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +base_path="udf-sample-api" + +echo 'shutdown application begin' +returnCode=`curl -I -s -X POST "http://127.0.0.1:${management.port}/shutdown"|head -1|cut -d" " -f2` +echo "shutdown status code : $returnCode" +sleep 5 +echo 'shutdown application end' + +echo 'stop application begin' + PID=$(ps -ef | grep ${project.name}-${project.version}.jar | grep -v grep | awk '{ print $2 }') + if [ -z "$PID" ] + then + echo 'application is already stopped' + else + echo kill $PID + kill -9 $PID + fi + rm -rf /${base_path}/${project.name}-${project.version}.jar +echo 'stop application end' + +echo 'clean copy application begin' +rm -rf /${base_path}/${project.name}-${project.version}.jar +cp ../${project.name}-${project.version}.jar /${base_path}/${project.name}-${project.version}.jar +echo 'copy application end' + +echo 'start application begin' +nohup java -server -Xms256m -Xmx256m -XX:+UseG1GC -jar /${base_path}/${project.name}-${project.version}.jar --spring.profiles.active=qa & +echo 'start application end' + +echo 'sleep 60ms begin' +sleep 60 +echo 'sleep 60ms end' + +echo 'check service begin' +returnCode=`curl -I -s "http://127.0.0.1:${management.port}/info"|head -1|cut -d" " -f2` +if [ "$returnCode" == "200" ] +then + echo "service has started"; +else + echo "service has error or start time out of 60ms"; + exit 1; +fi +echo 'check service end' \ No newline at end of file diff --git a/udf-server/udf-eureka-config-server/src/main/resources/logback.xml b/udf-server/udf-eureka-config-server/src/main/resources/logback.xml new file mode 100644 index 0000000..049dc97 --- /dev/null +++ b/udf-server/udf-eureka-config-server/src/main/resources/logback.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/udf-starter-aliyun-dysms/target/classes/org/itkk/udf/aliyun/dysms/web/IAliuyunDysmsController.class b/udf-starter-aliyun-dysms/target/classes/org/itkk/udf/aliyun/dysms/web/IAliuyunDysmsController.class deleted file mode 100644 index ac311e30e4a46d774946b3019713cc506ab4c6b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1457 zcmb7ENlz3(82t*y89)?7ao=~`$~Bs3jN>rIQD6vzB;vl<(;r9LV<-t`&0G{z9>5 zFjwr%V>Tji?A|{0{Kf2p@tN1}zf8WJefRY1hw+&=;{=YZfLaKnKzPFTGR;DR&>jDp zjJb`GtLh(%kZQWhna?$Wlw={US4UMPc~2ac-N)wXM^C0-O-w!im@sP4{9Y_H_v=wm zLZHECmi_2stQN9D;6kFIiQH-kVfd)hH9E@6v@E2*X!lUrdohaJ&7uf%k=I7&3p%pM z7-#|KjC9CtRrx6Ie>YDGv3IJsSn9{U_Nv^g{qDW}OBBmp&*yF~Ct3Rsd483ubusBV zH@Ezz=cWXEx%rw(D%KvqCITFGdm$T$cr2EkVzn)sWcS z@xOs@y;>nVgC?0j`~(iUqB&U4P(J@xpt(SBY3DQ31PIijUjgb;1nMD$*D744@oO3~ z(BLA_2u=9x#@K3HH5*t1YYntOD^@q(1#$(}VO5)f_4xaOc9*dcHr;{Eu*JYu*yf5b z&A@ipflm%QVHd*fM!32q5VZw}Jq}{;Pl&peA(lq>IRg8aC2(MY074&3raP2OcM#Wy Zkr0-4z!3vS;h4J}H*f+6n48l8{SHs1x5xkh diff --git a/udf-starter-amqp-rabbitmq/.checkstyle b/udf-starter-amqp-rabbitmq/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-amqp-rabbitmq/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-amqp-rabbitmq/.gitignore b/udf-starter-amqp-rabbitmq/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-amqp-rabbitmq/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-auth/.checkstyle b/udf-starter-auth/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-auth/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-auth/.gitignore b/udf-starter-auth/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-auth/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-cache-redis/.checkstyle b/udf-starter-cache-redis/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-cache-redis/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-cache-redis/.gitignore b/udf-starter-cache-redis/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-cache-redis/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-connection-pool-druid/.checkstyle b/udf-starter-connection-pool-druid/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-connection-pool-druid/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-connection-pool-druid/.gitignore b/udf-starter-connection-pool-druid/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-connection-pool-druid/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-core/.checkstyle b/udf-starter-core/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-core/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-core/.gitignore b/udf-starter-core/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-core/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-cors/.checkstyle b/udf-starter-cors/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-cors/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-cors/.gitignore b/udf-starter-cors/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-cors/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-dal-mybatis/.checkstyle b/udf-starter-dal-mybatis/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-dal-mybatis/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-dal-mybatis/.gitignore b/udf-starter-dal-mybatis/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-dal-mybatis/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-datasource-dynamic/.checkstyle b/udf-starter-datasource-dynamic/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-datasource-dynamic/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-datasource-dynamic/.gitignore b/udf-starter-datasource-dynamic/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-datasource-dynamic/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-datasource/.checkstyle b/udf-starter-datasource/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-datasource/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-datasource/.gitignore b/udf-starter-datasource/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-datasource/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-file/.checkstyle b/udf-starter-file/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-file/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-file/.gitignore b/udf-starter-file/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-file/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-id/.checkstyle b/udf-starter-id/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-id/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-id/.gitignore b/udf-starter-id/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-id/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-mail/.checkstyle b/udf-starter-mail/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-mail/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-mail/.gitignore b/udf-starter-mail/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-mail/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-qrcode/.checkstyle b/udf-starter-qrcode/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-qrcode/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-qrcode/.gitignore b/udf-starter-qrcode/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-qrcode/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-rms/.checkstyle b/udf-starter-rms/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-rms/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-rms/.gitignore b/udf-starter-rms/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-rms/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-scheduler-client/.checkstyle b/udf-starter-scheduler-client/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-scheduler-client/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-scheduler-client/.gitignore b/udf-starter-scheduler-client/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-scheduler-client/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/udf-starter-scheduler/.checkstyle b/udf-starter-scheduler/.checkstyle deleted file mode 100644 index 7589bde..0000000 --- a/udf-starter-scheduler/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/udf-starter-scheduler/.gitignore b/udf-starter-scheduler/.gitignore deleted file mode 100644 index c541155..0000000 --- a/udf-starter-scheduler/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target/ -/bin/ -/.classpath -/.project diff --git a/pom.xml b/udf-stater/pom.xml similarity index 97% rename from pom.xml rename to udf-stater/pom.xml index 7fbbb0c..c91e0b4 100644 --- a/pom.xml +++ b/udf-stater/pom.xml @@ -1,320 +1,320 @@ - - - 4.0.0 - - org.itkk.udf - udf-starter - 1.0 - pom - udf-starter - http://itkk.org:81 - - - 1.0 - 1.5.10.RELEASE - Edgware.SR3 - UTF-8 - 1.8 - 3.7.0 - 3.0.1 - 2.8.0 - 4.1 - 3.7 - 1.15 - 2.3.0 - 1.1.6 - 1.17 - 3.3.1 - 1.3.1 - 1.1 - 2.8.2 - 1.0.0 - 3.5.0 - 3.17 - 1.0 - - - - udf-starter-core - udf-starter-exception-alert - udf-starter-swagger2 - udf-starter-rms - udf-starter-cors - udf-starter-amqp-rabbitmq - udf-starter-file - udf-starter-file-aliyun-oss - udf-starter-file-aliyun-oss-api - udf-starter-aliyun-dysms - udf-starter-aliyun-dysms-api - udf-starter-mail - udf-starter-scheduler - udf-starter-scheduler-client - udf-starter-id - udf-starter-datasource - udf-starter-connection-pool-druid - udf-starter-qrcode - udf-starter-auth - udf-starter-datasource-dynamic - udf-starter-dal-mybatis - udf-starter-cache-redis - udf-starter-weixin-mp - udf-starter-weixin-mp-api - - - - - - - org.springframework.boot - spring-boot-dependencies - ${springboot.version} - pom - import - - - - org.springframework.cloud - spring-cloud-dependencies - ${springcloud.version} - pom - import - - - - org.itkk.udf - udf-starter-core - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-exception-alert - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-swagger2 - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-rms - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-cors - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-amqp-rabbitmq - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-file - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-file-aliyun-oss - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-file-aliyun-oss-api - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-aliyun-dysms - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-aliyun-dysms-api - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-mail - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-scheduler - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-scheduler-client - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-id - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-datasource - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-datasource-dynamic - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-connection-pool-druid - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-qrcode - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-auth - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-dal-mybatis - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-cache-redis - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-weixin-mp-api - ${udf-starter.version} - - - - org.itkk.udf - udf-starter-weixin-mp - ${udf-starter.version} - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - ${java.version} - ${java.version} - ${project.build.sourceEncoding} - - - - org.apache.maven.plugins - maven-source-plugin - ${maven-source-plugin.version} - - - attach-sources - - jar - - - - - - - - - - - - - - - - - - central - Nexus aliyun - default - http://maven.aliyun.com/nexus/content/groups/public/ - - - maven - maven - http://repo1.maven.org/maven2/ - - true - - - true - - - - - - - - - - central - Nexus aliyun - http://maven.aliyun.com/nexus/content/groups/public/ - default - - true - - - true - - - - maven - maven - http://repo1.maven.org/maven2/ - - true - - - true - - - - - - + + + 4.0.0 + + org.itkk.udf + udf-starter + udf-starter + 1.0 + pom + http://itkk.org:81 + + + 1.0 + 1.5.10.RELEASE + Edgware.SR3 + UTF-8 + 1.8 + 3.7.0 + 3.0.1 + 2.8.0 + 4.1 + 3.7 + 1.15 + 2.3.0 + 1.1.6 + 1.17 + 3.3.1 + 1.3.1 + 1.1 + 2.8.2 + 1.0.0 + 3.5.0 + 3.17 + 1.0 + + + + udf-starter-core + udf-starter-exception-alert + udf-starter-swagger2 + udf-starter-rms + udf-starter-cors + udf-starter-amqp-rabbitmq + udf-starter-file + udf-starter-file-aliyun-oss + udf-starter-file-aliyun-oss-api + udf-starter-aliyun-dysms + udf-starter-aliyun-dysms-api + udf-starter-mail + udf-starter-scheduler + udf-starter-scheduler-client + udf-starter-id + udf-starter-datasource + udf-starter-connection-pool-druid + udf-starter-qrcode + udf-starter-auth + udf-starter-datasource-dynamic + udf-starter-dal-mybatis + udf-starter-cache-redis + udf-starter-weixin-mp + udf-starter-weixin-mp-api + + + + + + + org.springframework.boot + spring-boot-dependencies + ${springboot.version} + pom + import + + + + org.springframework.cloud + spring-cloud-dependencies + ${springcloud.version} + pom + import + + + + org.itkk.udf + udf-starter-core + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-exception-alert + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-swagger2 + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-rms + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-cors + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-amqp-rabbitmq + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-file + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-file-aliyun-oss + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-file-aliyun-oss-api + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-aliyun-dysms + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-aliyun-dysms-api + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-mail + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-scheduler + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-scheduler-client + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-id + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-datasource + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-datasource-dynamic + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-connection-pool-druid + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-qrcode + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-auth + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-dal-mybatis + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-cache-redis + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-weixin-mp-api + ${udf-starter.version} + + + + org.itkk.udf + udf-starter-weixin-mp + ${udf-starter.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + attach-sources + + jar + + + + + + + + + + + + + + + + + + central + Nexus aliyun + default + http://maven.aliyun.com/nexus/content/groups/public/ + + + maven + maven + http://repo1.maven.org/maven2/ + + true + + + true + + + + + + + + + + central + Nexus aliyun + http://maven.aliyun.com/nexus/content/groups/public/ + default + + true + + + true + + + + maven + maven + http://repo1.maven.org/maven2/ + + true + + + true + + + + + + diff --git a/udf-starter-aliyun-dysms-api/pom.xml b/udf-stater/udf-starter-aliyun-dysms-api/pom.xml similarity index 100% rename from udf-starter-aliyun-dysms-api/pom.xml rename to udf-stater/udf-starter-aliyun-dysms-api/pom.xml diff --git a/udf-starter-aliyun-dysms-api/src/main/java/org/itkk/udf/aliyun/dysms/api/AliyunDysmsProperties.java b/udf-stater/udf-starter-aliyun-dysms-api/src/main/java/org/itkk/udf/aliyun/dysms/api/AliyunDysmsProperties.java similarity index 100% rename from udf-starter-aliyun-dysms-api/src/main/java/org/itkk/udf/aliyun/dysms/api/AliyunDysmsProperties.java rename to udf-stater/udf-starter-aliyun-dysms-api/src/main/java/org/itkk/udf/aliyun/dysms/api/AliyunDysmsProperties.java diff --git a/udf-starter-aliyun-dysms-api/src/main/java/org/itkk/udf/aliyun/dysms/api/DysmsWarpper.java b/udf-stater/udf-starter-aliyun-dysms-api/src/main/java/org/itkk/udf/aliyun/dysms/api/DysmsWarpper.java similarity index 100% rename from udf-starter-aliyun-dysms-api/src/main/java/org/itkk/udf/aliyun/dysms/api/DysmsWarpper.java rename to udf-stater/udf-starter-aliyun-dysms-api/src/main/java/org/itkk/udf/aliyun/dysms/api/DysmsWarpper.java diff --git a/udf-starter-aliyun-dysms/pom.xml b/udf-stater/udf-starter-aliyun-dysms/pom.xml similarity index 100% rename from udf-starter-aliyun-dysms/pom.xml rename to udf-stater/udf-starter-aliyun-dysms/pom.xml diff --git a/udf-starter-aliyun-dysms/src/main/java/org/itkk/udf/aliyun/dysms/web/AliuyunDysmsController.java b/udf-stater/udf-starter-aliyun-dysms/src/main/java/org/itkk/udf/aliyun/dysms/web/AliuyunDysmsController.java similarity index 100% rename from udf-starter-aliyun-dysms/src/main/java/org/itkk/udf/aliyun/dysms/web/AliuyunDysmsController.java rename to udf-stater/udf-starter-aliyun-dysms/src/main/java/org/itkk/udf/aliyun/dysms/web/AliuyunDysmsController.java diff --git a/udf-starter-aliyun-dysms/src/main/java/org/itkk/udf/aliyun/dysms/web/IAliuyunDysmsController.java b/udf-stater/udf-starter-aliyun-dysms/src/main/java/org/itkk/udf/aliyun/dysms/web/IAliuyunDysmsController.java similarity index 100% rename from udf-starter-aliyun-dysms/src/main/java/org/itkk/udf/aliyun/dysms/web/IAliuyunDysmsController.java rename to udf-stater/udf-starter-aliyun-dysms/src/main/java/org/itkk/udf/aliyun/dysms/web/IAliuyunDysmsController.java diff --git a/udf-starter-amqp-rabbitmq/pom.xml b/udf-stater/udf-starter-amqp-rabbitmq/pom.xml similarity index 100% rename from udf-starter-amqp-rabbitmq/pom.xml rename to udf-stater/udf-starter-amqp-rabbitmq/pom.xml diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/IRabbitmqListener.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/IRabbitmqListener.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/IRabbitmqListener.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/IRabbitmqListener.java diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/MessageLog.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/MessageLog.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/MessageLog.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/MessageLog.java diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitMqConfig.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitMqConfig.java similarity index 96% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitMqConfig.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitMqConfig.java index ce8cd42..2ae0238 100644 --- a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitMqConfig.java +++ b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitMqConfig.java @@ -1,70 +1,70 @@ -/** - * RabbitMqConfig.java - * Created at 2016-10-16 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.amqp.rabbitmq; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.springframework.amqp.core.DirectExchange; -import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; -import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * 描述 : RabbitMq配置 - * - * @author wangkang - */ -@Configuration -public class RabbitMqConfig { - - /** - * 描述 : rabbitListenerContainerFactoryPlus - * - * @param rabbitListenerContainerFactory rabbitListenerContainerFactory - * @param jackson2JsonMessageConverter jackson2JsonMessageConverter - * @return rabbitListenerContainerFactoryPlus - */ - @Bean - public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactoryPlus( - SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory, - Jackson2JsonMessageConverter jackson2JsonMessageConverter) { - rabbitListenerContainerFactory.setMessageConverter(jackson2JsonMessageConverter); - return rabbitListenerContainerFactory; - } - - /** - * 描述 : jackson2JsonMessageConverter - * - * @param objectMapper objectMapper - * @return jackson2JsonMessageConverter - */ - @Bean - public Jackson2JsonMessageConverter jackson2JsonMessageConverter(ObjectMapper objectMapper) { - return new Jackson2JsonMessageConverter(objectMapper); - } - - /** - * exchangeMessageLog - * - * @return DirectExchange - */ - @Bean - public DirectExchange exchangeMessageLog() { - return new DirectExchange(RabbitmqConstant.EXCHANGE_MESSAGE_LOG.class.getSimpleName(), true, false); - } - - /** - * exchangeMessageLogDlx - * - * @return DirectExchange - */ - @Bean - public DirectExchange exchangeMessageLogDlx() { - return new DirectExchange(RabbitmqConstant.EXCHANGE_MESSAGE_LOG_DLX.class.getSimpleName(), true, false); - } - -} +/** + * RabbitMqConfig.java + * Created at 2016-10-16 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.amqp.rabbitmq; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.amqp.core.DirectExchange; +import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 描述 : RabbitMq配置 + * + * @author wangkang + */ +@Configuration +public class RabbitMqConfig { + + /** + * 描述 : rabbitListenerContainerFactoryPlus + * + * @param rabbitListenerContainerFactory rabbitListenerContainerFactory + * @param jackson2JsonMessageConverter jackson2JsonMessageConverter + * @return rabbitListenerContainerFactoryPlus + */ + @Bean + public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactoryPlus( + SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory, + Jackson2JsonMessageConverter jackson2JsonMessageConverter) { + rabbitListenerContainerFactory.setMessageConverter(jackson2JsonMessageConverter); + return rabbitListenerContainerFactory; + } + + /** + * 描述 : jackson2JsonMessageConverter + * + * @param objectMapper objectMapper + * @return jackson2JsonMessageConverter + */ + @Bean + public Jackson2JsonMessageConverter jackson2JsonMessageConverter(ObjectMapper objectMapper) { + return new Jackson2JsonMessageConverter(objectMapper); + } + + /** + * exchangeMessageLog + * + * @return DirectExchange + */ + @Bean + public DirectExchange exchangeMessageLog() { + return new DirectExchange(RabbitmqConstant.EXCHANGE_MESSAGE_LOG.class.getSimpleName(), true, false); + } + + /** + * exchangeMessageLogDlx + * + * @return DirectExchange + */ + @Bean + public DirectExchange exchangeMessageLogDlx() { + return new DirectExchange(RabbitmqConstant.EXCHANGE_MESSAGE_LOG_DLX.class.getSimpleName(), true, false); + } + +} diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/Rabbitmq.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/Rabbitmq.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/Rabbitmq.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/Rabbitmq.java diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqConstant.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqConstant.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqConstant.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqConstant.java diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqListenerBaseAspect.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqListenerBaseAspect.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqListenerBaseAspect.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqListenerBaseAspect.java diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqListenerLogAspect.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqListenerLogAspect.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqListenerLogAspect.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqListenerLogAspect.java diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqMessage.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqMessage.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqMessage.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/RabbitmqMessage.java diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/CompleteLog.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/CompleteLog.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/CompleteLog.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/CompleteLog.java diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/ErrorLog.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/ErrorLog.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/ErrorLog.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/ErrorLog.java diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/ReceiveLog.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/ReceiveLog.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/ReceiveLog.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/ReceiveLog.java diff --git a/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/SendLog.java b/udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/SendLog.java similarity index 100% rename from udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/SendLog.java rename to udf-stater/udf-starter-amqp-rabbitmq/src/main/java/org/itkk/udf/amqp/rabbitmq/domain/SendLog.java diff --git a/udf-starter-auth/pom.xml b/udf-stater/udf-starter-auth/pom.xml similarity index 100% rename from udf-starter-auth/pom.xml rename to udf-stater/udf-starter-auth/pom.xml diff --git a/udf-starter-auth/src/main/java/org/itkk/udf/auth/AuthConfig.java b/udf-stater/udf-starter-auth/src/main/java/org/itkk/udf/auth/AuthConfig.java similarity index 100% rename from udf-starter-auth/src/main/java/org/itkk/udf/auth/AuthConfig.java rename to udf-stater/udf-starter-auth/src/main/java/org/itkk/udf/auth/AuthConfig.java diff --git a/udf-starter-auth/src/main/java/org/itkk/udf/auth/Constant.java b/udf-stater/udf-starter-auth/src/main/java/org/itkk/udf/auth/Constant.java similarity index 100% rename from udf-starter-auth/src/main/java/org/itkk/udf/auth/Constant.java rename to udf-stater/udf-starter-auth/src/main/java/org/itkk/udf/auth/Constant.java diff --git a/udf-starter-auth/src/main/java/org/itkk/udf/auth/RmsFilter.java b/udf-stater/udf-starter-auth/src/main/java/org/itkk/udf/auth/RmsFilter.java similarity index 100% rename from udf-starter-auth/src/main/java/org/itkk/udf/auth/RmsFilter.java rename to udf-stater/udf-starter-auth/src/main/java/org/itkk/udf/auth/RmsFilter.java diff --git a/udf-starter-cache-redis/pom.xml b/udf-stater/udf-starter-cache-redis/pom.xml similarity index 100% rename from udf-starter-cache-redis/pom.xml rename to udf-stater/udf-starter-cache-redis/pom.xml diff --git a/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/CacheRedisConfig.java b/udf-stater/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/CacheRedisConfig.java similarity index 100% rename from udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/CacheRedisConfig.java rename to udf-stater/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/CacheRedisConfig.java diff --git a/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/CacheRedisProperties.java b/udf-stater/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/CacheRedisProperties.java similarity index 100% rename from udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/CacheRedisProperties.java rename to udf-stater/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/CacheRedisProperties.java diff --git a/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/DefRedisCachePrefix.java b/udf-stater/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/DefRedisCachePrefix.java similarity index 100% rename from udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/DefRedisCachePrefix.java rename to udf-stater/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/DefRedisCachePrefix.java diff --git a/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/lock/LockResult.java b/udf-stater/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/lock/LockResult.java similarity index 100% rename from udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/lock/LockResult.java rename to udf-stater/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/lock/LockResult.java diff --git a/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/lock/RedisBasedDistributedLock.java b/udf-stater/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/lock/RedisBasedDistributedLock.java similarity index 100% rename from udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/lock/RedisBasedDistributedLock.java rename to udf-stater/udf-starter-cache-redis/src/main/java/org/itkk/udf/cache/redis/lock/RedisBasedDistributedLock.java diff --git a/udf-starter-connection-pool-druid/pom.xml b/udf-stater/udf-starter-connection-pool-druid/pom.xml similarity index 100% rename from udf-starter-connection-pool-druid/pom.xml rename to udf-stater/udf-starter-connection-pool-druid/pom.xml diff --git a/udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidBuild.java b/udf-stater/udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidBuild.java similarity index 100% rename from udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidBuild.java rename to udf-stater/udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidBuild.java diff --git a/udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidConfig.java b/udf-stater/udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidConfig.java similarity index 100% rename from udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidConfig.java rename to udf-stater/udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidConfig.java diff --git a/udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidMonitorConfig.java b/udf-stater/udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidMonitorConfig.java similarity index 100% rename from udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidMonitorConfig.java rename to udf-stater/udf-starter-connection-pool-druid/src/main/java/org/itkk/udf/connection/pool/druid/DruidMonitorConfig.java diff --git a/udf-starter-core/pom.xml b/udf-stater/udf-starter-core/pom.xml similarity index 100% rename from udf-starter-core/pom.xml rename to udf-stater/udf-starter-core/pom.xml diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/ApplicationConfig.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/ApplicationConfig.java similarity index 95% rename from udf-starter-core/src/main/java/org/itkk/udf/core/ApplicationConfig.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/ApplicationConfig.java index d97b710..669a928 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/ApplicationConfig.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/ApplicationConfig.java @@ -1,81 +1,81 @@ -package org.itkk.udf.core; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; -import org.springframework.validation.annotation.Validated; - -import javax.validation.constraints.NotNull; - -/** - * 描述 : 系统配置 - * - * @author wangkang - */ -@Component -@ConfigurationProperties(prefix = "org.itkk.application.config") -@Validated -@Data -public class ApplicationConfig { - - /** - * 描述 : 是否输出异常堆栈 - */ - @NotNull - private boolean outputExceptionStackTrace = false; - - /** - * 描述 : 编码 - */ - @NotNull - private String encoding = "UTF-8"; - - /** - * 描述 : 时区 - */ - @NotNull - private String timeZone = "Asia/Shanghai"; - - /** - * 描述 : 日期格式 - */ - @NotNull - private String dateFormat = "yyyy-MM-dd'T'HH:mm:ss:SSSZ"; - - /** - * 描述 : 线程池属性 - */ - private ThreadPoolProperties threadPool; - - /** - * 描述 : 如有大文件通过restTemplate传输,请设置为false - */ - @NotNull - private Boolean bufferRequestBody = true; - - /** - * 描述 : 线程池配置 - * - * @author Administrator - */ - @Data - public static class ThreadPoolProperties { - - /** - * 描述 : 默认线程池大小(默认:CPU数量+1) - */ - private Integer poolSize = Runtime.getRuntime().availableProcessors() + 1; - - /** - * 描述 : 线程优先级 - */ - private Integer threadPriority = Thread.NORM_PRIORITY; - - /** - * 描述 : 线程名称 - */ - private String threadNamePrefix = "defaultThreadPool"; - - } - -} +package org.itkk.udf.core; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; +import org.springframework.validation.annotation.Validated; + +import javax.validation.constraints.NotNull; + +/** + * 描述 : 系统配置 + * + * @author wangkang + */ +@Component +@ConfigurationProperties(prefix = "org.itkk.application.config") +@Validated +@Data +public class ApplicationConfig { + + /** + * 描述 : 是否输出异常堆栈 + */ + @NotNull + private boolean outputExceptionStackTrace = false; + + /** + * 描述 : 编码 + */ + @NotNull + private String encoding = "UTF-8"; + + /** + * 描述 : 时区 + */ + @NotNull + private String timeZone = "Asia/Shanghai"; + + /** + * 描述 : 日期格式 + */ + @NotNull + private String dateFormat = "yyyy-MM-dd'T'HH:mm:ss:SSSZ"; + + /** + * 描述 : 线程池属性 + */ + private ThreadPoolProperties threadPool; + + /** + * 描述 : 如有大文件通过restTemplate传输,请设置为false + */ + @NotNull + private Boolean bufferRequestBody = true; + + /** + * 描述 : 线程池配置 + * + * @author Administrator + */ + @Data + public static class ThreadPoolProperties { + + /** + * 描述 : 默认线程池大小(默认:CPU数量+1) + */ + private Integer poolSize = Runtime.getRuntime().availableProcessors() + 1; + + /** + * 描述 : 线程优先级 + */ + private Integer threadPriority = Thread.NORM_PRIORITY; + + /** + * 描述 : 线程名称 + */ + private String threadNamePrefix = "defaultThreadPool"; + + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/BaseApplication.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/BaseApplication.java similarity index 97% rename from udf-starter-core/src/main/java/org/itkk/udf/core/BaseApplication.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/BaseApplication.java index 1c9f22c..14fd6a2 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/BaseApplication.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/BaseApplication.java @@ -1,59 +1,59 @@ -package org.itkk.udf.core; - -import org.itkk.udf.core.exception.handle.RmsResponseErrorHandler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.web.servlet.ServletComponentScan; -import org.springframework.cloud.context.config.annotation.RefreshScope; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.http.client.ClientHttpRequestFactory; -import org.springframework.http.client.SimpleClientHttpRequestFactory; -import org.springframework.retry.annotation.EnableRetry; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.web.client.RestTemplate; - -/** - * 描述 : 系统入口 - * - * @author wangkang - */ -@ServletComponentScan -@ComponentScan(basePackages = {"org.itkk"}) -@EnableAsync -@RefreshScope -@EnableRetry -@EnableScheduling -public class BaseApplication { - - /** - * 描述 : applicationConfig - */ - @Autowired - private ApplicationConfig applicationConfig; - - /** - * 描述 : externalRestTemplate - * - * @param requestFactory requestFactory - * @return RestTemplate - */ - @Bean(name = "externalRestTemplate") - public RestTemplate externalRestTemplate(ClientHttpRequestFactory requestFactory) { - RestTemplate restTemplate = new RestTemplate(requestFactory); - restTemplate.setErrorHandler(new RmsResponseErrorHandler()); - return restTemplate; - } - - /** - * 描述 : requestFactory - * - * @return ClientHttpRequestFactory - */ - @Bean - public ClientHttpRequestFactory requestFactory() { - SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); - requestFactory.setBufferRequestBody(applicationConfig.getBufferRequestBody()); - return requestFactory; - } -} +package org.itkk.udf.core; + +import org.itkk.udf.core.exception.handle.RmsResponseErrorHandler; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.web.servlet.ServletComponentScan; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.retry.annotation.EnableRetry; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.web.client.RestTemplate; + +/** + * 描述 : 系统入口 + * + * @author wangkang + */ +@ServletComponentScan +@ComponentScan(basePackages = {"org.itkk"}) +@EnableAsync +@RefreshScope +@EnableRetry +@EnableScheduling +public class BaseApplication { + + /** + * 描述 : applicationConfig + */ + @Autowired + private ApplicationConfig applicationConfig; + + /** + * 描述 : externalRestTemplate + * + * @param requestFactory requestFactory + * @return RestTemplate + */ + @Bean(name = "externalRestTemplate") + public RestTemplate externalRestTemplate(ClientHttpRequestFactory requestFactory) { + RestTemplate restTemplate = new RestTemplate(requestFactory); + restTemplate.setErrorHandler(new RmsResponseErrorHandler()); + return restTemplate; + } + + /** + * 描述 : requestFactory + * + * @return ClientHttpRequestFactory + */ + @Bean + public ClientHttpRequestFactory requestFactory() { + SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); + requestFactory.setBufferRequestBody(applicationConfig.getBufferRequestBody()); + return requestFactory; + } +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/CleanLogFile.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/CleanLogFile.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/CleanLogFile.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/CleanLogFile.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/RestResponse.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/RestResponse.java similarity index 96% rename from udf-starter-core/src/main/java/org/itkk/udf/core/RestResponse.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/RestResponse.java index 1fee9a8..d5ae0fe 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/RestResponse.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/RestResponse.java @@ -1,128 +1,128 @@ -package org.itkk.udf.core; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; -import org.itkk.udf.core.exception.ErrorResult; -import org.springframework.http.HttpStatus; - -import java.io.Serializable; -import java.util.UUID; - -/** - * 描述 : rest响应对象 - * - * @author wangkang - */ -@ApiModel(description = "响应消息体") -@Data -@ToString -public class RestResponse implements Serializable { - - /** - * 描述 : id - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 响应ID - */ - @ApiModelProperty(value = "响应ID", required = true, dataType = "string") - private String id = UUID.randomUUID().toString(); - - /** - * 描述 : 状态码(业务定义) - */ - @ApiModelProperty(value = "状态码(业务定义)", required = true, dataType = "string") - private String code = Integer.toString(HttpStatus.OK.value()); - - /** - * 描述 : 状态码描述(业务定义) - */ - @ApiModelProperty(value = "状态码描述(业务定义)", required = true, dataType = "string") - private String message = HttpStatus.OK.getReasonPhrase(); - - /** - * 描述 : 结果集(泛型) - */ - @ApiModelProperty(value = "结果集(泛型)", required = true, dataType = "object") - private T result = null; //NOSONAR - - /** - * 描述 : 错误 - */ - @ApiModelProperty(value = "错误", required = true, dataType = "object") - private ErrorResult error = null; - - /** - * 描述 : 构造函数 - */ - public RestResponse() { - super(); - } - - /** - * 描述 : 构造函数 - * - * @param result 结果集(泛型) - */ - public RestResponse(T result) { - super(); - this.result = result; - } - - /** - * 描述 : 构造函数 - * - * @param httpStatus http状态 - * @param error 错误 - */ - public RestResponse(HttpStatus httpStatus, ErrorResult error) { - super(); - this.code = Integer.toString(httpStatus.value()); - this.message = httpStatus.getReasonPhrase(); - this.error = error; - } - - /** - * 描述 : 构造函数 - * - * @param code 状态码(业务定义) - * @param message 状态码描述(业务定义) - * @param error 错误 - */ - public RestResponse(String code, String message, ErrorResult error) { - super(); - this.code = code; - this.message = message; - this.error = error; - } - - /** - * 描述 : 构造函数 - * - * @param code 状态码(业务定义) - * @param message 状态码描述(业务定义) - */ - public RestResponse(String code, String message) { - super(); - this.code = code; - this.message = message; - } - - /** - * 描述 : 构造函数 - * - * @param code 状态码(业务定义) - * @param message 状态码描述(业务定义) - * @param result 结果集(泛型) - */ - public RestResponse(String code, String message, T result) { - super(); - this.code = code; - this.message = message; - this.result = result; - } - -} +package org.itkk.udf.core; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; +import org.itkk.udf.core.exception.ErrorResult; +import org.springframework.http.HttpStatus; + +import java.io.Serializable; +import java.util.UUID; + +/** + * 描述 : rest响应对象 + * + * @author wangkang + */ +@ApiModel(description = "响应消息体") +@Data +@ToString +public class RestResponse implements Serializable { + + /** + * 描述 : id + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 响应ID + */ + @ApiModelProperty(value = "响应ID", required = true, dataType = "string") + private String id = UUID.randomUUID().toString(); + + /** + * 描述 : 状态码(业务定义) + */ + @ApiModelProperty(value = "状态码(业务定义)", required = true, dataType = "string") + private String code = Integer.toString(HttpStatus.OK.value()); + + /** + * 描述 : 状态码描述(业务定义) + */ + @ApiModelProperty(value = "状态码描述(业务定义)", required = true, dataType = "string") + private String message = HttpStatus.OK.getReasonPhrase(); + + /** + * 描述 : 结果集(泛型) + */ + @ApiModelProperty(value = "结果集(泛型)", required = true, dataType = "object") + private T result = null; //NOSONAR + + /** + * 描述 : 错误 + */ + @ApiModelProperty(value = "错误", required = true, dataType = "object") + private ErrorResult error = null; + + /** + * 描述 : 构造函数 + */ + public RestResponse() { + super(); + } + + /** + * 描述 : 构造函数 + * + * @param result 结果集(泛型) + */ + public RestResponse(T result) { + super(); + this.result = result; + } + + /** + * 描述 : 构造函数 + * + * @param httpStatus http状态 + * @param error 错误 + */ + public RestResponse(HttpStatus httpStatus, ErrorResult error) { + super(); + this.code = Integer.toString(httpStatus.value()); + this.message = httpStatus.getReasonPhrase(); + this.error = error; + } + + /** + * 描述 : 构造函数 + * + * @param code 状态码(业务定义) + * @param message 状态码描述(业务定义) + * @param error 错误 + */ + public RestResponse(String code, String message, ErrorResult error) { + super(); + this.code = code; + this.message = message; + this.error = error; + } + + /** + * 描述 : 构造函数 + * + * @param code 状态码(业务定义) + * @param message 状态码描述(业务定义) + */ + public RestResponse(String code, String message) { + super(); + this.code = code; + this.message = message; + } + + /** + * 描述 : 构造函数 + * + * @param code 状态码(业务定义) + * @param message 状态码描述(业务定义) + * @param result 结果集(泛型) + */ + public RestResponse(String code, String message, T result) { + super(); + this.code = code; + this.message = message; + this.result = result; + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/ThreadPoolConfig.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/ThreadPoolConfig.java similarity index 96% rename from udf-starter-core/src/main/java/org/itkk/udf/core/ThreadPoolConfig.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/ThreadPoolConfig.java index 5131058..90b7ec1 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/ThreadPoolConfig.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/ThreadPoolConfig.java @@ -1,50 +1,50 @@ -/** - * ThreadPoolConfig.java - * Created at 2017-05-03 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; - -import java.util.concurrent.Executor; -import java.util.concurrent.ThreadPoolExecutor; - -/** - * 描述 : ThreadPoolConfig - * - * @author Administrator - */ -@Configuration -public class ThreadPoolConfig { - - /** - * 描述 : applicationConfig - */ - @Autowired - private ApplicationConfig applicationConfig; - - /** - * 描述 : 默认线程池 - * - * @return Executor - */ - @Bean - public Executor defaultThreadPool() { - ThreadPoolTaskScheduler executor = new ThreadPoolTaskScheduler(); - //设置线程池 - executor.setPoolSize(applicationConfig.getThreadPool().getPoolSize()); - executor.setThreadPriority(applicationConfig.getThreadPool().getThreadPriority()); - executor.setThreadNamePrefix(applicationConfig.getThreadPool().getThreadNamePrefix()); - // rejection-policy:当pool已经达到max size的时候,如何处理新任务 - // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行 - executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); - executor.initialize(); - return executor; - } - -} +/** + * ThreadPoolConfig.java + * Created at 2017-05-03 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; + +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * 描述 : ThreadPoolConfig + * + * @author Administrator + */ +@Configuration +public class ThreadPoolConfig { + + /** + * 描述 : applicationConfig + */ + @Autowired + private ApplicationConfig applicationConfig; + + /** + * 描述 : 默认线程池 + * + * @return Executor + */ + @Bean + public Executor defaultThreadPool() { + ThreadPoolTaskScheduler executor = new ThreadPoolTaskScheduler(); + //设置线程池 + executor.setPoolSize(applicationConfig.getThreadPool().getPoolSize()); + executor.setThreadPriority(applicationConfig.getThreadPool().getThreadPriority()); + executor.setThreadNamePrefix(applicationConfig.getThreadPool().getThreadNamePrefix()); + // rejection-policy:当pool已经达到max size的时候,如何处理新任务 + // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + executor.initialize(); + return executor; + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/constant/IdWorkerConstant.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/constant/IdWorkerConstant.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/constant/IdWorkerConstant.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/constant/IdWorkerConstant.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/constant/UdfConstant.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/constant/UdfConstant.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/constant/UdfConstant.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/constant/UdfConstant.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/aliyun/oss/OssListParam.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/aliyun/oss/OssListParam.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/aliyun/oss/OssListParam.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/aliyun/oss/OssListParam.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/aliyun/oss/OssParam.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/aliyun/oss/OssParam.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/aliyun/oss/OssParam.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/aliyun/oss/OssParam.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/datasource/DataSourceMeta.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/datasource/DataSourceMeta.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/datasource/DataSourceMeta.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/datasource/DataSourceMeta.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/datasource/IBuildDataSource.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/datasource/IBuildDataSource.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/datasource/IBuildDataSource.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/datasource/IBuildDataSource.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileInfo.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileInfo.java similarity index 95% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileInfo.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileInfo.java index 922603f..af416f6 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileInfo.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileInfo.java @@ -1,59 +1,59 @@ -/** - * FileInfo.java - * Created at 2017-05-27 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.domain.file; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.io.Serializable; - -/** - * 描述 : FileInfo - * - * @author Administrator - */ -@ApiModel(description = "文件信息") -@Data -public class FileInfo implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 文件ID - */ - @ApiModelProperty(value = "文件ID(相对路径的base64编码)", required = true, dataType = "string") - private String id; - - /** - * 描述 : 文件名称 - */ - @ApiModelProperty(value = "文件名称", required = true, dataType = "string") - private String name; - - /** - * 描述 : 文件相对路径 - */ - @ApiModelProperty(value = "文件相对路径", required = true, dataType = "string") - private String relativePath; - - /** - * 描述 : 上下文类型 - */ - @ApiModelProperty(value = "上下文类型", required = true, dataType = "string") - private String contentType; - - /** - * 描述 : 文件长度 - */ - @ApiModelProperty(value = "文件长度", required = true, dataType = "long") - private Long size; - -} +/** + * FileInfo.java + * Created at 2017-05-27 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.domain.file; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述 : FileInfo + * + * @author Administrator + */ +@ApiModel(description = "文件信息") +@Data +public class FileInfo implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 文件ID + */ + @ApiModelProperty(value = "文件ID(相对路径的base64编码)", required = true, dataType = "string") + private String id; + + /** + * 描述 : 文件名称 + */ + @ApiModelProperty(value = "文件名称", required = true, dataType = "string") + private String name; + + /** + * 描述 : 文件相对路径 + */ + @ApiModelProperty(value = "文件相对路径", required = true, dataType = "string") + private String relativePath; + + /** + * 描述 : 上下文类型 + */ + @ApiModelProperty(value = "上下文类型", required = true, dataType = "string") + private String contentType; + + /** + * 描述 : 文件长度 + */ + @ApiModelProperty(value = "文件长度", required = true, dataType = "long") + private Long size; + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileParam.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileParam.java similarity index 95% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileParam.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileParam.java index cd1a330..bd02e0a 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileParam.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/file/FileParam.java @@ -1,35 +1,35 @@ -/** - * FileParam.java - * Created at 2017-05-27 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.domain.file; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.io.Serializable; - -/** - * 描述 : FileParam - * - * @author Administrator - */ -@ApiModel(description = "文件参数") -@Data -public class FileParam implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 文件ID - */ - @ApiModelProperty(value = "文件ID(相对路径的base64编码)", required = true, dataType = "string") - private String id; - -} +/** + * FileParam.java + * Created at 2017-05-27 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.domain.file; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述 : FileParam + * + * @author Administrator + */ +@ApiModel(description = "文件参数") +@Data +public class FileParam implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 文件ID + */ + @ApiModelProperty(value = "文件ID(相对路径的base64编码)", required = true, dataType = "string") + private String id; + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/id/Id.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/id/Id.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/id/Id.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/id/Id.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/AttachmentInfo.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/AttachmentInfo.java similarity index 95% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/AttachmentInfo.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/AttachmentInfo.java index 1faa6c5..ddb7e50 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/AttachmentInfo.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/AttachmentInfo.java @@ -1,35 +1,35 @@ -package org.itkk.udf.core.domain.mail; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.io.Serializable; - -/** - * 描述 : AttachmentInfo - * - * @author Administrator - */ -@ApiModel(description = "附件信息") -@Data -public class AttachmentInfo implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 附件名称 - */ - @ApiModelProperty(value = "附件名称", required = true, dataType = "string") - private String name; - - /** - * 描述 : 附件文件ID - */ - @ApiModelProperty(value = "附件文件ID", required = true, dataType = "string") - private String fileId; - -} +package org.itkk.udf.core.domain.mail; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述 : AttachmentInfo + * + * @author Administrator + */ +@ApiModel(description = "附件信息") +@Data +public class AttachmentInfo implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 附件名称 + */ + @ApiModelProperty(value = "附件名称", required = true, dataType = "string") + private String name; + + /** + * 描述 : 附件文件ID + */ + @ApiModelProperty(value = "附件文件ID", required = true, dataType = "string") + private String fileId; + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/InlineInfo.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/InlineInfo.java similarity index 95% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/InlineInfo.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/InlineInfo.java index 79cccb6..2923766 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/InlineInfo.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/InlineInfo.java @@ -1,35 +1,35 @@ -package org.itkk.udf.core.domain.mail; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.io.Serializable; - -/** - * 描述 : InlineInfo - * - * @author Administrator - */ -@ApiModel(description = "静态资源信息") -@Data -public class InlineInfo implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 静态资源名称 - */ - @ApiModelProperty(value = "静态资源名称", required = true, dataType = "string") - private String name; - - /** - * 描述 : 附件文件ID - */ - @ApiModelProperty(value = "静态资源名称文件ID", required = true, dataType = "string") - private String fileId; - -} +package org.itkk.udf.core.domain.mail; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述 : InlineInfo + * + * @author Administrator + */ +@ApiModel(description = "静态资源信息") +@Data +public class InlineInfo implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 静态资源名称 + */ + @ApiModelProperty(value = "静态资源名称", required = true, dataType = "string") + private String name; + + /** + * 描述 : 附件文件ID + */ + @ApiModelProperty(value = "静态资源名称文件ID", required = true, dataType = "string") + private String fileId; + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/MailInfo.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/MailInfo.java similarity index 96% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/MailInfo.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/MailInfo.java index de99bd6..4d1336d 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/MailInfo.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/mail/MailInfo.java @@ -1,94 +1,94 @@ -/** - * MailInfo.java - * Created at 2017-05-28 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.domain.mail; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import org.hibernate.validator.constraints.NotEmpty; - -import java.io.Serializable; -import java.util.List; - -/** - * 描述 : MailInfo - * - * @author Administrator - */ -@ApiModel(description = "邮件信息") -@Data -public class MailInfo implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 接收地址 - */ - @ApiModelProperty(value = "接收地址", required = true, dataType = "string") - @NotEmpty(message = "接收地址不能为空") - private String[] to; - - /** - * 描述 : 主题 - */ - @ApiModelProperty(value = "主题", required = true, dataType = "string") - @NotEmpty(message = "主题不能为空") - private String subject; - - /** - * 描述 : 正文 - */ - @ApiModelProperty(value = "正文", required = true, dataType = "string") - @NotEmpty(message = "正文不能为空") - private String text; - - /** - * 描述 : 是否html正文 - */ - @ApiModelProperty(value = "是否html正文(默认false)", required = true, dataType = "boolean") - private Boolean isHtmlText = false; - - /** - * 描述 : 保密抄送地址 - */ - @ApiModelProperty(value = "保密抄送地址", required = false, dataType = "string") - private String[] bcc; - - /** - * 描述 : 抄送地址 - */ - @ApiModelProperty(value = "抄送地址", required = false, dataType = "string") - private String[] cc; - - /** - * 描述 : 回复地址 - */ - @ApiModelProperty(value = "回复地址", required = false, dataType = "string") - private String replyTo; - - /** - * 描述 : 优先级 - */ - @ApiModelProperty(value = "优先级", required = false, dataType = "int") - private Integer priority; - - /** - * 描述 : 附件列表 - */ - @ApiModelProperty(value = "附件列表", required = false, dataType = "object") - private List attachments; - - /** - * 描述 : 静态资源列表 - */ - @ApiModelProperty(value = "静态资源列表", required = false, dataType = "object") - private List inlines; - -} +/** + * MailInfo.java + * Created at 2017-05-28 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.domain.mail; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.hibernate.validator.constraints.NotEmpty; + +import java.io.Serializable; +import java.util.List; + +/** + * 描述 : MailInfo + * + * @author Administrator + */ +@ApiModel(description = "邮件信息") +@Data +public class MailInfo implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 接收地址 + */ + @ApiModelProperty(value = "接收地址", required = true, dataType = "string") + @NotEmpty(message = "接收地址不能为空") + private String[] to; + + /** + * 描述 : 主题 + */ + @ApiModelProperty(value = "主题", required = true, dataType = "string") + @NotEmpty(message = "主题不能为空") + private String subject; + + /** + * 描述 : 正文 + */ + @ApiModelProperty(value = "正文", required = true, dataType = "string") + @NotEmpty(message = "正文不能为空") + private String text; + + /** + * 描述 : 是否html正文 + */ + @ApiModelProperty(value = "是否html正文(默认false)", required = true, dataType = "boolean") + private Boolean isHtmlText = false; + + /** + * 描述 : 保密抄送地址 + */ + @ApiModelProperty(value = "保密抄送地址", required = false, dataType = "string") + private String[] bcc; + + /** + * 描述 : 抄送地址 + */ + @ApiModelProperty(value = "抄送地址", required = false, dataType = "string") + private String[] cc; + + /** + * 描述 : 回复地址 + */ + @ApiModelProperty(value = "回复地址", required = false, dataType = "string") + private String replyTo; + + /** + * 描述 : 优先级 + */ + @ApiModelProperty(value = "优先级", required = false, dataType = "int") + private Integer priority; + + /** + * 描述 : 附件列表 + */ + @ApiModelProperty(value = "附件列表", required = false, dataType = "object") + private List attachments; + + /** + * 描述 : 静态资源列表 + */ + @ApiModelProperty(value = "静态资源列表", required = false, dataType = "object") + private List inlines; + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/BaseResult.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/BaseResult.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/BaseResult.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/BaseResult.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/Miniprogram.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/Miniprogram.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/Miniprogram.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/Miniprogram.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateDataVo.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateDataVo.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateDataVo.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateDataVo.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateResult.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateResult.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateResult.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateResult.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateVo.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateVo.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateVo.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/domain/weixin/mp/SendMessageTemplateVo.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/AuthException.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/AuthException.java similarity index 94% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/AuthException.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/AuthException.java index 896a191..accebe1 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/AuthException.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/AuthException.java @@ -1,66 +1,66 @@ -/** - * AuthException.java - * Created at 2016-03-01 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.exception; - -/** - *

- * ClassName: AuthException - *

- *

- * Description: 认证异常 - *

- *

- * Author: wangkang - *

- *

- * Date: 2016年3月23日 - *

- */ -public class AuthException extends RuntimeException { - - /** - *

- * Field serialVersionUID: 序列号 - *

- */ - private static final long serialVersionUID = 1L; - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - */ - public AuthException(String message) { - super(message); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param cause 堆栈 - */ - public AuthException(Throwable cause) { - super(cause); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - * @param cause 堆栈 - */ - public AuthException(String message, Throwable cause) { - super(message, cause); - } - -} +/** + * AuthException.java + * Created at 2016-03-01 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.exception; + +/** + *

+ * ClassName: AuthException + *

+ *

+ * Description: 认证异常 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2016年3月23日 + *

+ */ +public class AuthException extends RuntimeException { + + /** + *

+ * Field serialVersionUID: 序列号 + *

+ */ + private static final long serialVersionUID = 1L; + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + */ + public AuthException(String message) { + super(message); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param cause 堆栈 + */ + public AuthException(Throwable cause) { + super(cause); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + * @param cause 堆栈 + */ + public AuthException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/ErrorResult.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/ErrorResult.java similarity index 95% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/ErrorResult.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/ErrorResult.java index 7b7c077..fd00ca9 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/ErrorResult.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/ErrorResult.java @@ -1,58 +1,58 @@ -/** - * ErrorResult.java - * Created at 2016-09-27 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.exception; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import org.itkk.udf.core.RestResponse; - -import java.io.Serializable; -import java.util.Date; - -/** - * 描述 : 错误信息 - * - * @author wangkang - */ -@Data -public class ErrorResult implements Serializable { - /** - * 描述 : id - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 异常时间 - */ - @ApiModelProperty(value = "异常时间", required = true, dataType = "date") - private Date date; - - /** - * 描述 : 异常类名 - */ - @ApiModelProperty(value = "异常类名", required = true, dataType = "string") - private String type; - - /** - * 描述 : 异常信息 - */ - @ApiModelProperty(value = "异常信息", required = true, dataType = "string") - private String message; - - /** - * 描述 : 详细异常堆栈信息 - */ - @ApiModelProperty(value = "异常堆栈", required = true, dataType = "string") - private String stackTrace; - - /** - * 描述 : 子异常 - */ - @ApiModelProperty(value = "子异常", required = true, dataType = "object") - private RestResponse child; - -} +/** + * ErrorResult.java + * Created at 2016-09-27 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.exception; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.itkk.udf.core.RestResponse; + +import java.io.Serializable; +import java.util.Date; + +/** + * 描述 : 错误信息 + * + * @author wangkang + */ +@Data +public class ErrorResult implements Serializable { + /** + * 描述 : id + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 异常时间 + */ + @ApiModelProperty(value = "异常时间", required = true, dataType = "date") + private Date date; + + /** + * 描述 : 异常类名 + */ + @ApiModelProperty(value = "异常类名", required = true, dataType = "string") + private String type; + + /** + * 描述 : 异常信息 + */ + @ApiModelProperty(value = "异常信息", required = true, dataType = "string") + private String message; + + /** + * 描述 : 详细异常堆栈信息 + */ + @ApiModelProperty(value = "异常堆栈", required = true, dataType = "string") + private String stackTrace; + + /** + * 描述 : 子异常 + */ + @ApiModelProperty(value = "子异常", required = true, dataType = "object") + private RestResponse child; + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/ParameterValidException.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/ParameterValidException.java similarity index 95% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/ParameterValidException.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/ParameterValidException.java index 10855bb..5dff743 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/ParameterValidException.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/ParameterValidException.java @@ -1,73 +1,73 @@ -/** - * ParameterValidException.java - * Created at 2016-09-27 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.exception; - -import org.springframework.validation.ObjectError; - -import java.util.List; - -/** - * 描述 : 参数校验错误 - * - * @author wangkang - */ -public class ParameterValidException extends RuntimeException { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 参数静态校验错误信息 - */ - private final List allErrors; - - /** - * 描述 : 构造函数 - * - * @param message 异常信息 - * @param allErrors 参数静态校验错误信息 - */ - public ParameterValidException(String message, List allErrors) { - super(message); - this.allErrors = allErrors; - } - - /** - * 描述 : 构造函数 - * - * @param cause 堆栈 - * @param allErrors 参数静态校验错误信息 - */ - public ParameterValidException(Throwable cause, List allErrors) { - super(cause); - this.allErrors = allErrors; - } - - /** - * 描述 : 构造函数 - * - * @param message 异常信息 - * @param cause 堆栈 - * @param allErrors 参数静态校验错误信息 - */ - public ParameterValidException(String message, Throwable cause, List allErrors) { - super(message, cause); - this.allErrors = allErrors; - } - - /** - * 描述 : 获取allErrors - * - * @return the allErrors - */ - public List getAllErrors() { - return allErrors; - } - -} +/** + * ParameterValidException.java + * Created at 2016-09-27 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.exception; + +import org.springframework.validation.ObjectError; + +import java.util.List; + +/** + * 描述 : 参数校验错误 + * + * @author wangkang + */ +public class ParameterValidException extends RuntimeException { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 参数静态校验错误信息 + */ + private final List allErrors; + + /** + * 描述 : 构造函数 + * + * @param message 异常信息 + * @param allErrors 参数静态校验错误信息 + */ + public ParameterValidException(String message, List allErrors) { + super(message); + this.allErrors = allErrors; + } + + /** + * 描述 : 构造函数 + * + * @param cause 堆栈 + * @param allErrors 参数静态校验错误信息 + */ + public ParameterValidException(Throwable cause, List allErrors) { + super(cause); + this.allErrors = allErrors; + } + + /** + * 描述 : 构造函数 + * + * @param message 异常信息 + * @param cause 堆栈 + * @param allErrors 参数静态校验错误信息 + */ + public ParameterValidException(String message, Throwable cause, List allErrors) { + super(message, cause); + this.allErrors = allErrors; + } + + /** + * 描述 : 获取allErrors + * + * @return the allErrors + */ + public List getAllErrors() { + return allErrors; + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/PermissionException.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/PermissionException.java similarity index 94% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/PermissionException.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/PermissionException.java index 3a08c31..bc8fec6 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/PermissionException.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/PermissionException.java @@ -1,66 +1,66 @@ -/** - * PermissionException.java - * Created at 2016-03-01 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.exception; - -/** - *

- * ClassName: PermissionException - *

- *

- * Description: 权限异常 - *

- *

- * Author: wangkang - *

- *

- * Date: 2016年3月23日 - *

- */ -public class PermissionException extends RuntimeException { - - /** - *

- * Field serialVersionUID: 序列号 - *

- */ - private static final long serialVersionUID = 1L; - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - */ - public PermissionException(String message) { - super(message); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param cause 堆栈 - */ - public PermissionException(Throwable cause) { - super(cause); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - * @param cause 堆栈 - */ - public PermissionException(String message, Throwable cause) { - super(message, cause); - } - -} +/** + * PermissionException.java + * Created at 2016-03-01 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.exception; + +/** + *

+ * ClassName: PermissionException + *

+ *

+ * Description: 权限异常 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2016年3月23日 + *

+ */ +public class PermissionException extends RuntimeException { + + /** + *

+ * Field serialVersionUID: 序列号 + *

+ */ + private static final long serialVersionUID = 1L; + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + */ + public PermissionException(String message) { + super(message); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param cause 堆栈 + */ + public PermissionException(Throwable cause) { + super(cause); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + * @param cause 堆栈 + */ + public PermissionException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemException.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemException.java similarity index 94% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemException.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemException.java index 9b6b8a2..da9b75e 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemException.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemException.java @@ -1,64 +1,64 @@ -/** - * SystemException.java - * Created at 2016-03-01 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.exception; - -/** - *

- * ClassName: SystemException - *

- *

- * Description: 系统异常 - *

- *

- * Author: wangkang - *

- *

- * Date: 2016年3月23日 - *

- */ -public class SystemException extends Exception { - - /** - * 描述 : id - */ - private static final long serialVersionUID = 1L; - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - */ - public SystemException(String message) { - super(message); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param cause 堆栈 - */ - public SystemException(Throwable cause) { - super(cause); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - * @param cause 堆栈 - */ - public SystemException(String message, Throwable cause) { - super(message, cause); - } - -} +/** + * SystemException.java + * Created at 2016-03-01 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.exception; + +/** + *

+ * ClassName: SystemException + *

+ *

+ * Description: 系统异常 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2016年3月23日 + *

+ */ +public class SystemException extends Exception { + + /** + * 描述 : id + */ + private static final long serialVersionUID = 1L; + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + */ + public SystemException(String message) { + super(message); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param cause 堆栈 + */ + public SystemException(Throwable cause) { + super(cause); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + * @param cause 堆栈 + */ + public SystemException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemRuntimeException.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemRuntimeException.java similarity index 94% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemRuntimeException.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemRuntimeException.java index 712ef1a..8b41443 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemRuntimeException.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/SystemRuntimeException.java @@ -1,66 +1,66 @@ -/** - * SystemRuntimeException.java - * Created at 2016-03-01 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.exception; - -/** - *

- * ClassName: SystemRuntimeException - *

- *

- * Description: 系统运行时异常 - *

- *

- * Author: wangkang - *

- *

- * Date: 2016年3月23日 - *

- */ -public class SystemRuntimeException extends RuntimeException { - - /** - *

- * Field serialVersionUID: 序列号 - *

- */ - private static final long serialVersionUID = 1L; - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - */ - public SystemRuntimeException(String message) { - super(message); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param cause 堆栈 - */ - public SystemRuntimeException(Throwable cause) { - super(cause); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - * @param cause 堆栈 - */ - public SystemRuntimeException(String message, Throwable cause) { - super(message, cause); - } - -} +/** + * SystemRuntimeException.java + * Created at 2016-03-01 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.exception; + +/** + *

+ * ClassName: SystemRuntimeException + *

+ *

+ * Description: 系统运行时异常 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2016年3月23日 + *

+ */ +public class SystemRuntimeException extends RuntimeException { + + /** + *

+ * Field serialVersionUID: 序列号 + *

+ */ + private static final long serialVersionUID = 1L; + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + */ + public SystemRuntimeException(String message) { + super(message); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param cause 堆栈 + */ + public SystemRuntimeException(Throwable cause) { + super(cause); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + * @param cause 堆栈 + */ + public SystemRuntimeException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/alert/IExceptionAlert.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/alert/IExceptionAlert.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/alert/IExceptionAlert.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/alert/IExceptionAlert.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionController.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionController.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionController.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionController.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionControllerConfig.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionControllerConfig.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionControllerConfig.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionControllerConfig.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionCors.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionCors.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionCors.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionCors.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionHandle.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionHandle.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionHandle.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/ExceptionHandle.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/RmsResponseErrorHandler.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/RmsResponseErrorHandler.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/RmsResponseErrorHandler.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/exception/handle/RmsResponseErrorHandler.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/utils/ClassUtil.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/ClassUtil.java similarity index 96% rename from udf-starter-core/src/main/java/org/itkk/udf/core/utils/ClassUtil.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/ClassUtil.java index fa24c61..1c0416f 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/utils/ClassUtil.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/ClassUtil.java @@ -1,59 +1,59 @@ -/** - * ClassUtil.java - * Created at 2017-06-02 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.utils; - -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; -import org.springframework.core.type.filter.AssignableTypeFilter; - -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -/** - * 描述 : ClassUtil - * - * @author Administrator - */ -public class ClassUtil { - - /** - * 描述 : 私有化构造函数 - */ - private ClassUtil() { - - } - - /** - * 描述 : 获取在指定包下某个class的所有非抽象子类 - * - * @param parentClass 父类 - * @param packagePath 指定包,格式如"org.itkk" - * @param 泛型类 - * @return 列表 - * @throws ClassNotFoundException 异常 - */ - public static List> getSubClasses(final Class parentClass, - final String packagePath) throws ClassNotFoundException { - ClassPathScanningCandidateComponentProvider provider = - new ClassPathScanningCandidateComponentProvider(false); - provider.addIncludeFilter(new AssignableTypeFilter(parentClass)); - Set components = provider.findCandidateComponents(packagePath); - List> subClasses = new ArrayList<>(); - for (BeanDefinition component : components) { - @SuppressWarnings("unchecked") - Class cls = (Class) Class.forName(component.getBeanClassName()); - if (Modifier.isAbstract(cls.getModifiers())) { - continue; - } - subClasses.add(cls); - } - return subClasses; - } - -} +/** + * ClassUtil.java + * Created at 2017-06-02 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.utils; + +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; +import org.springframework.core.type.filter.AssignableTypeFilter; + +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +/** + * 描述 : ClassUtil + * + * @author Administrator + */ +public class ClassUtil { + + /** + * 描述 : 私有化构造函数 + */ + private ClassUtil() { + + } + + /** + * 描述 : 获取在指定包下某个class的所有非抽象子类 + * + * @param parentClass 父类 + * @param packagePath 指定包,格式如"org.itkk" + * @param 泛型类 + * @return 列表 + * @throws ClassNotFoundException 异常 + */ + public static List> getSubClasses(final Class parentClass, + final String packagePath) throws ClassNotFoundException { + ClassPathScanningCandidateComponentProvider provider = + new ClassPathScanningCandidateComponentProvider(false); + provider.addIncludeFilter(new AssignableTypeFilter(parentClass)); + Set components = provider.findCandidateComponents(packagePath); + List> subClasses = new ArrayList<>(); + for (BeanDefinition component : components) { + @SuppressWarnings("unchecked") + Class cls = (Class) Class.forName(component.getBeanClassName()); + if (Modifier.isAbstract(cls.getModifiers())) { + continue; + } + subClasses.add(cls); + } + return subClasses; + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/utils/DateUtil.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/DateUtil.java similarity index 96% rename from udf-starter-core/src/main/java/org/itkk/udf/core/utils/DateUtil.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/DateUtil.java index 7ba048b..9438f33 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/utils/DateUtil.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/DateUtil.java @@ -1,283 +1,283 @@ -/** - * DateUtil.java - * Created at 2017-06-02 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.utils; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; - -/** - *

- * ClassName: DateUtil - *

- *

- * Description: 日期工具类 - *

- *

- * Author: Administrator - *

- *

- * Date: 2016年3月23日 - *

- */ -public class DateUtil { - - /** - *

- * Description: 构造函数 - *

- */ - private DateUtil() { - } - - /** - * dayStart - * - * @param date date - * @return Date - */ - public static Date dayStart(Date date) { - Calendar calendar = new GregorianCalendar(); - calendar.setTime(date); - calendar.set(Calendar.HOUR, 0); - calendar.set(Calendar.MINUTE, 0); - calendar.set(Calendar.SECOND, 0); - calendar.set(Calendar.MILLISECOND, 0); - return calendar.getTime(); - } - - /** - * dayEnd - * - * @param date date - * @return Date - */ - public static Date dayEnd(Date date) { - final int num23 = 23; - final int num59 = 59; - final int num999 = 999; - Calendar calendar = new GregorianCalendar(); - calendar.setTime(date); - calendar.set(Calendar.HOUR, num23); - calendar.set(Calendar.MINUTE, num59); - calendar.set(Calendar.SECOND, num59); - calendar.set(Calendar.MILLISECOND, num999); - return calendar.getTime(); - } - - /** - * 对日期(时间)中的日进行加减计算.
- * 例子:
- * 如果Date类型的d为 2005年8月20日,那么
- * calculateByDate(d,-10)的值为2005年8月10日
- * 而calculateByDate(d,+10)的值为2005年8月30日
- * - * @param d 日期(时间). - * @param amount 加减计算的幅度.+n=加n天;-n=减n天. - * @return 计算后的日期(时间). - */ - public static Date calculateByDate(Date d, int amount) { - return calculate(d, GregorianCalendar.DATE, amount); - } - - /** - *

- * Description: 对日期(分钟)中的日进行加减计算. - *

- * - * @param d 日期(时间). - * @param amount 加减计算的幅度 - * @return 计算后的日期(时间) - */ - public static Date calculateByMinute(Date d, int amount) { - return calculate(d, GregorianCalendar.MINUTE, amount); - } - - /** - *

- * Description: 对日期(年)中的日进行加减计算. - *

- * - * @param d 日期(时间). - * @param amount 加减计算的幅度 - * @return 计算后的日期(时间) - */ - public static Date calculateByYear(Date d, int amount) { - return calculate(d, GregorianCalendar.YEAR, amount); - } - - /** - * 对日期(时间)中由field参数指定的日期成员进行加减计算.
- * 例子:
- * 如果Date类型的d为 2005年8月20日,那么
- * calculate(d,GregorianCalendar.YEAR,-10)的值为1995年8月20日
- * 而calculate(d,GregorianCalendar.YEAR,+10)的值为2015年8月20日
- * - * @param d 日期(时间). - * @param field 日期成员.
- * 日期成员主要有:
- * 年:GregorianCalendar.YEAR
- * 月:GregorianCalendar.MONTH
- * 日:GregorianCalendar.DATE
- * 时:GregorianCalendar.HOUR
- * 分:GregorianCalendar.MINUTE
- * 秒:GregorianCalendar.SECOND
- * 毫秒:GregorianCalendar.MILLISECOND
- * @param amount 加减计算的幅度.+n=加n个由参数field指定的日期成员值;-n=减n个由参数field代表的日期成员值. - * @return 计算后的日期(时间). - */ - private static Date calculate(Date d, int field, int amount) { - if (d == null) { - return null; - } - GregorianCalendar g = new GregorianCalendar(); - g.setGregorianChange(d); - g.add(field, amount); - return g.getTime(); - } - - /** - * 日期(时间)转化为字符串. - * - * @param formater 日期或时间的格式. - * @param aDate java.util.Date类的实例. - * @return 日期转化后的字符串. - */ - public static String dateToString(String formater, Date aDate) { - if (formater == null || "".equals(formater)) { - return null; - } - if (aDate == null) { - return null; - } - return (new SimpleDateFormat(formater)).format(aDate); - } - - /** - * 当前日期(时间)转化为字符串. - * - * @param formater 日期或时间的格式. - * @return 日期转化后的字符串. - */ - public static String dateToString(String formater) { - return dateToString(formater, new Date()); - } - - /** - * 获取当前日期对应的星期数.
- * 1=星期天,2=星期一,3=星期二,4=星期三,5=星期四,6=星期五,7=星期六 - * - * @return 当前日期对应的星期数 - */ - public static int dayOfWeek() { - GregorianCalendar g = new GregorianCalendar(); - return g.get(java.util.Calendar.DAY_OF_WEEK); - } - - /** - * 获取所有的时区编号.
- * 排序规则:按照ASCII字符的正序进行排序.
- * 排序时候忽略字符大小写. - * - * @return 所有的时区编号(时区编号已经按照字符[忽略大小写]排序). - */ - public static List fecthAllTimeZoneIds() { - List v = new ArrayList<>(); - String[] ids = TimeZone.getAvailableIDs(); - Arrays.stream(ids).forEach(id -> { //NOSONAR - v.add(id); - }); - Collections.sort(v, String.CASE_INSENSITIVE_ORDER); - return v; - } - - /** - * 将日期时间字符串根据转换为指定时区的日期时间. - * - * @param srcFormater 待转化的日期时间的格式. - * @param srcDateTime 待转化的日期时间. - * @param dstFormater 目标的日期时间的格式. - * @param dstTimeZoneId 目标的时区编号. - * @return 转化后的日期时间. - * @throws ParseException 异常 - */ - public static String stringToTimezone(String srcFormater, String srcDateTime, String dstFormater, String dstTimeZoneId) throws ParseException { //NOSONAR - if (srcFormater == null || "".equals(srcFormater)) { - return null; - } - if (srcDateTime == null || "".equals(srcDateTime)) { - return null; - } - if (dstFormater == null || "".equals(dstFormater)) { - return null; - } - if (dstTimeZoneId == null || "".equals(dstTimeZoneId)) { - return null; - } - SimpleDateFormat sdf = new SimpleDateFormat(srcFormater); - int diffTime = getDiffTimeZoneRawOffset(dstTimeZoneId); - Date d = sdf.parse(srcDateTime); - long nowTime = d.getTime(); - long newNowTime = nowTime - diffTime; - d = new Date(newNowTime); - return dateToString(dstFormater, d); - } - - /** - * 获取系统当前默认时区与UTC的时间差.(单位:毫秒) - * - * @return 系统当前默认时区与UTC的时间差.(单 = 毫秒) - */ - public static int getDefaultTimeZoneRawOffset() { - return TimeZone.getDefault().getRawOffset(); - } - - /** - *

- * Description: 返回UTC与指定时区的时间差 - *

- * - * @param timeZoneId 时区ID - * @return 时差 - */ - public static String getUtcTimeZoneRawOffset(String timeZoneId) { - return new SimpleDateFormat("HH:mm").format(getTimeZoneRawOffset(timeZoneId)); - } - - /** - * 获取指定时区与UTC的时间差.(单位:毫秒) - * - * @param timeZoneId 时区Id - * @return 指定时区与UTC的时间差.(单位 = 毫秒) - */ - public static int getTimeZoneRawOffset(String timeZoneId) { - return TimeZone.getTimeZone(timeZoneId).getRawOffset(); - } - - /** - * 获取系统当前默认时区与指定时区的时间差.(单位:毫秒) - * - * @param timeZoneId 时区Id - * @return 系统当前默认时区与指定时区的时间差.(单位 = 毫秒) - */ - private static int getDiffTimeZoneRawOffset(String timeZoneId) { - return TimeZone.getDefault().getRawOffset() - TimeZone.getTimeZone(timeZoneId).getRawOffset(); - } - - /** - * 将日期时间字符串根据转换为指定时区的日期时间. - * - * @param srcDateTime 待转化的日期时间. - * @param dstTimeZoneId 目标的时区编号. - * @return 转化后的日期时间. - * @throws ParseException 异常 - */ - public static String stringToTimezoneDefault(String srcDateTime, String dstTimeZoneId) throws ParseException { - return stringToTimezone("yyyy-MM-dd HH:mm:ss", srcDateTime, "yyyy-MM-dd HH:mm:ss", dstTimeZoneId); - } - -} +/** + * DateUtil.java + * Created at 2017-06-02 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.utils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + *

+ * ClassName: DateUtil + *

+ *

+ * Description: 日期工具类 + *

+ *

+ * Author: Administrator + *

+ *

+ * Date: 2016年3月23日 + *

+ */ +public class DateUtil { + + /** + *

+ * Description: 构造函数 + *

+ */ + private DateUtil() { + } + + /** + * dayStart + * + * @param date date + * @return Date + */ + public static Date dayStart(Date date) { + Calendar calendar = new GregorianCalendar(); + calendar.setTime(date); + calendar.set(Calendar.HOUR, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + return calendar.getTime(); + } + + /** + * dayEnd + * + * @param date date + * @return Date + */ + public static Date dayEnd(Date date) { + final int num23 = 23; + final int num59 = 59; + final int num999 = 999; + Calendar calendar = new GregorianCalendar(); + calendar.setTime(date); + calendar.set(Calendar.HOUR, num23); + calendar.set(Calendar.MINUTE, num59); + calendar.set(Calendar.SECOND, num59); + calendar.set(Calendar.MILLISECOND, num999); + return calendar.getTime(); + } + + /** + * 对日期(时间)中的日进行加减计算.
+ * 例子:
+ * 如果Date类型的d为 2005年8月20日,那么
+ * calculateByDate(d,-10)的值为2005年8月10日
+ * 而calculateByDate(d,+10)的值为2005年8月30日
+ * + * @param d 日期(时间). + * @param amount 加减计算的幅度.+n=加n天;-n=减n天. + * @return 计算后的日期(时间). + */ + public static Date calculateByDate(Date d, int amount) { + return calculate(d, GregorianCalendar.DATE, amount); + } + + /** + *

+ * Description: 对日期(分钟)中的日进行加减计算. + *

+ * + * @param d 日期(时间). + * @param amount 加减计算的幅度 + * @return 计算后的日期(时间) + */ + public static Date calculateByMinute(Date d, int amount) { + return calculate(d, GregorianCalendar.MINUTE, amount); + } + + /** + *

+ * Description: 对日期(年)中的日进行加减计算. + *

+ * + * @param d 日期(时间). + * @param amount 加减计算的幅度 + * @return 计算后的日期(时间) + */ + public static Date calculateByYear(Date d, int amount) { + return calculate(d, GregorianCalendar.YEAR, amount); + } + + /** + * 对日期(时间)中由field参数指定的日期成员进行加减计算.
+ * 例子:
+ * 如果Date类型的d为 2005年8月20日,那么
+ * calculate(d,GregorianCalendar.YEAR,-10)的值为1995年8月20日
+ * 而calculate(d,GregorianCalendar.YEAR,+10)的值为2015年8月20日
+ * + * @param d 日期(时间). + * @param field 日期成员.
+ * 日期成员主要有:
+ * 年:GregorianCalendar.YEAR
+ * 月:GregorianCalendar.MONTH
+ * 日:GregorianCalendar.DATE
+ * 时:GregorianCalendar.HOUR
+ * 分:GregorianCalendar.MINUTE
+ * 秒:GregorianCalendar.SECOND
+ * 毫秒:GregorianCalendar.MILLISECOND
+ * @param amount 加减计算的幅度.+n=加n个由参数field指定的日期成员值;-n=减n个由参数field代表的日期成员值. + * @return 计算后的日期(时间). + */ + private static Date calculate(Date d, int field, int amount) { + if (d == null) { + return null; + } + GregorianCalendar g = new GregorianCalendar(); + g.setGregorianChange(d); + g.add(field, amount); + return g.getTime(); + } + + /** + * 日期(时间)转化为字符串. + * + * @param formater 日期或时间的格式. + * @param aDate java.util.Date类的实例. + * @return 日期转化后的字符串. + */ + public static String dateToString(String formater, Date aDate) { + if (formater == null || "".equals(formater)) { + return null; + } + if (aDate == null) { + return null; + } + return (new SimpleDateFormat(formater)).format(aDate); + } + + /** + * 当前日期(时间)转化为字符串. + * + * @param formater 日期或时间的格式. + * @return 日期转化后的字符串. + */ + public static String dateToString(String formater) { + return dateToString(formater, new Date()); + } + + /** + * 获取当前日期对应的星期数.
+ * 1=星期天,2=星期一,3=星期二,4=星期三,5=星期四,6=星期五,7=星期六 + * + * @return 当前日期对应的星期数 + */ + public static int dayOfWeek() { + GregorianCalendar g = new GregorianCalendar(); + return g.get(java.util.Calendar.DAY_OF_WEEK); + } + + /** + * 获取所有的时区编号.
+ * 排序规则:按照ASCII字符的正序进行排序.
+ * 排序时候忽略字符大小写. + * + * @return 所有的时区编号(时区编号已经按照字符[忽略大小写]排序). + */ + public static List fecthAllTimeZoneIds() { + List v = new ArrayList<>(); + String[] ids = TimeZone.getAvailableIDs(); + Arrays.stream(ids).forEach(id -> { //NOSONAR + v.add(id); + }); + Collections.sort(v, String.CASE_INSENSITIVE_ORDER); + return v; + } + + /** + * 将日期时间字符串根据转换为指定时区的日期时间. + * + * @param srcFormater 待转化的日期时间的格式. + * @param srcDateTime 待转化的日期时间. + * @param dstFormater 目标的日期时间的格式. + * @param dstTimeZoneId 目标的时区编号. + * @return 转化后的日期时间. + * @throws ParseException 异常 + */ + public static String stringToTimezone(String srcFormater, String srcDateTime, String dstFormater, String dstTimeZoneId) throws ParseException { //NOSONAR + if (srcFormater == null || "".equals(srcFormater)) { + return null; + } + if (srcDateTime == null || "".equals(srcDateTime)) { + return null; + } + if (dstFormater == null || "".equals(dstFormater)) { + return null; + } + if (dstTimeZoneId == null || "".equals(dstTimeZoneId)) { + return null; + } + SimpleDateFormat sdf = new SimpleDateFormat(srcFormater); + int diffTime = getDiffTimeZoneRawOffset(dstTimeZoneId); + Date d = sdf.parse(srcDateTime); + long nowTime = d.getTime(); + long newNowTime = nowTime - diffTime; + d = new Date(newNowTime); + return dateToString(dstFormater, d); + } + + /** + * 获取系统当前默认时区与UTC的时间差.(单位:毫秒) + * + * @return 系统当前默认时区与UTC的时间差.(单 = 毫秒) + */ + public static int getDefaultTimeZoneRawOffset() { + return TimeZone.getDefault().getRawOffset(); + } + + /** + *

+ * Description: 返回UTC与指定时区的时间差 + *

+ * + * @param timeZoneId 时区ID + * @return 时差 + */ + public static String getUtcTimeZoneRawOffset(String timeZoneId) { + return new SimpleDateFormat("HH:mm").format(getTimeZoneRawOffset(timeZoneId)); + } + + /** + * 获取指定时区与UTC的时间差.(单位:毫秒) + * + * @param timeZoneId 时区Id + * @return 指定时区与UTC的时间差.(单位 = 毫秒) + */ + public static int getTimeZoneRawOffset(String timeZoneId) { + return TimeZone.getTimeZone(timeZoneId).getRawOffset(); + } + + /** + * 获取系统当前默认时区与指定时区的时间差.(单位:毫秒) + * + * @param timeZoneId 时区Id + * @return 系统当前默认时区与指定时区的时间差.(单位 = 毫秒) + */ + private static int getDiffTimeZoneRawOffset(String timeZoneId) { + return TimeZone.getDefault().getRawOffset() - TimeZone.getTimeZone(timeZoneId).getRawOffset(); + } + + /** + * 将日期时间字符串根据转换为指定时区的日期时间. + * + * @param srcDateTime 待转化的日期时间. + * @param dstTimeZoneId 目标的时区编号. + * @return 转化后的日期时间. + * @throws ParseException 异常 + */ + public static String stringToTimezoneDefault(String srcDateTime, String dstTimeZoneId) throws ParseException { + return stringToTimezone("yyyy-MM-dd HH:mm:ss", srcDateTime, "yyyy-MM-dd HH:mm:ss", dstTimeZoneId); + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/utils/IdUtil.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/IdUtil.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/utils/IdUtil.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/IdUtil.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/utils/ZipUtil.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/ZipUtil.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/utils/ZipUtil.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/ZipUtil.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ExportExcel.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ExportExcel.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ExportExcel.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ExportExcel.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ExportExcelHeaderMateData.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ExportExcelHeaderMateData.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ExportExcelHeaderMateData.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ExportExcelHeaderMateData.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ImportExcel.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ImportExcel.java similarity index 100% rename from udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ImportExcel.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/utils/excel/ImportExcel.java diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssFilter.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssFilter.java similarity index 96% rename from udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssFilter.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssFilter.java index 5016f40..a43c1c6 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssFilter.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssFilter.java @@ -1,43 +1,43 @@ -/** - * XssFilter.java - * Created at 2016-09-19 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.xss; - -import lombok.extern.slf4j.Slf4j; - -import javax.servlet.*; -import javax.servlet.annotation.WebFilter; -import javax.servlet.http.HttpServletRequest; -import java.io.IOException; - -/** - * 描述 : 跨站请求防范 - * - * @author wangkang - */ -@WebFilter(filterName = "xssFilter", urlPatterns = "/*", asyncSupported = true) -@Slf4j -public class XssFilter implements Filter { - - @Override - public void init(FilterConfig filterConfig) { - log.debug("(XssFilter) initialize"); - } - - @Override - public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) - throws IOException, ServletException { - XssHttpServletRequestWrapper xssRequest = - new XssHttpServletRequestWrapper((HttpServletRequest) request); - chain.doFilter(xssRequest, response); - } - - @Override - public void destroy() { - log.debug("(XssFilter) destroy"); - } - -} +/** + * XssFilter.java + * Created at 2016-09-19 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.xss; + +import lombok.extern.slf4j.Slf4j; + +import javax.servlet.*; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; + +/** + * 描述 : 跨站请求防范 + * + * @author wangkang + */ +@WebFilter(filterName = "xssFilter", urlPatterns = "/*", asyncSupported = true) +@Slf4j +public class XssFilter implements Filter { + + @Override + public void init(FilterConfig filterConfig) { + log.debug("(XssFilter) initialize"); + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException { + XssHttpServletRequestWrapper xssRequest = + new XssHttpServletRequestWrapper((HttpServletRequest) request); + chain.doFilter(xssRequest, response); + } + + @Override + public void destroy() { + log.debug("(XssFilter) destroy"); + } + +} diff --git a/udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssHttpServletRequestWrapper.java b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssHttpServletRequestWrapper.java similarity index 96% rename from udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssHttpServletRequestWrapper.java rename to udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssHttpServletRequestWrapper.java index 4962244..256b50d 100644 --- a/udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssHttpServletRequestWrapper.java +++ b/udf-stater/udf-starter-core/src/main/java/org/itkk/udf/core/xss/XssHttpServletRequestWrapper.java @@ -1,56 +1,56 @@ -/** - * XssHttpServletRequestWrapper.java - * Created at 2016-09-19 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.core.xss; - -import org.springframework.web.util.HtmlUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; - -/** - * 描述 : 跨站请求防范 - * - * @author wangkang - */ -public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { - - /** - * 描述 : 构造函数 - * - * @param request 请求对象 - */ - public XssHttpServletRequestWrapper(HttpServletRequest request) { - super(request); - } - - @Override - public String getHeader(String name) { - String value = super.getHeader(name); - return HtmlUtils.htmlEscape(value); - } - - @Override - public String getParameter(String name) { - String value = super.getParameter(name); - return HtmlUtils.htmlEscape(value); - } - - @Override - public String[] getParameterValues(String name) { - String[] values = super.getParameterValues(name); - if (values != null) { - int length = values.length; - String[] escapseValues = new String[length]; - for (int i = 0; i < length; i++) { - escapseValues[i] = HtmlUtils.htmlEscape(values[i]); - } - return escapseValues; - } - return super.getParameterValues(name); - } - -} +/** + * XssHttpServletRequestWrapper.java + * Created at 2016-09-19 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.core.xss; + +import org.springframework.web.util.HtmlUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +/** + * 描述 : 跨站请求防范 + * + * @author wangkang + */ +public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { + + /** + * 描述 : 构造函数 + * + * @param request 请求对象 + */ + public XssHttpServletRequestWrapper(HttpServletRequest request) { + super(request); + } + + @Override + public String getHeader(String name) { + String value = super.getHeader(name); + return HtmlUtils.htmlEscape(value); + } + + @Override + public String getParameter(String name) { + String value = super.getParameter(name); + return HtmlUtils.htmlEscape(value); + } + + @Override + public String[] getParameterValues(String name) { + String[] values = super.getParameterValues(name); + if (values != null) { + int length = values.length; + String[] escapseValues = new String[length]; + for (int i = 0; i < length; i++) { + escapseValues[i] = HtmlUtils.htmlEscape(values[i]); + } + return escapseValues; + } + return super.getParameterValues(name); + } + +} diff --git a/udf-starter-cors/pom.xml b/udf-stater/udf-starter-cors/pom.xml similarity index 100% rename from udf-starter-cors/pom.xml rename to udf-stater/udf-starter-cors/pom.xml diff --git a/udf-starter-cors/src/main/java/org/itkk/udf/cors/CorsConfig.java b/udf-stater/udf-starter-cors/src/main/java/org/itkk/udf/cors/CorsConfig.java similarity index 96% rename from udf-starter-cors/src/main/java/org/itkk/udf/cors/CorsConfig.java rename to udf-stater/udf-starter-cors/src/main/java/org/itkk/udf/cors/CorsConfig.java index 4de1894..1c306f1 100644 --- a/udf-starter-cors/src/main/java/org/itkk/udf/cors/CorsConfig.java +++ b/udf-stater/udf-starter-cors/src/main/java/org/itkk/udf/cors/CorsConfig.java @@ -1,110 +1,110 @@ -/** - * CorsConfig.java - * Created at 2017-04-25 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.cors; - -import lombok.Data; -import org.apache.commons.lang3.StringUtils; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.util.CollectionUtils; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.servlet.config.annotation.CorsRegistration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; - -import javax.validation.constraints.NotNull; -import java.util.Map; - -/** - * 描述 : CorsConfig ( another way @see EndpointCorsProperties.java ) - * - * @author Administrator - */ -@Configuration -@ConfigurationProperties(prefix = "org.itkk.cors") -@Validated -@Data -public class CorsConfig { - - /** - * 描述 : 跨域信息 - */ - @NotNull - private Map config; - - /** - * 描述 : corsConfigurer - * - * @return WebMvcConfigurer - */ - @Bean - public WebMvcConfigurer corsConfigurer() { //NOSONAR - return new WebMvcConfigurerAdapter() { //NOSONAR - @Override - public void addCorsMappings(CorsRegistry registry) { - //扫描地址 - if (!CollectionUtils.isEmpty(config)) { - config.forEach((key, item) -> { - CorsRegistration cr = registry.addMapping(item.getMapping()); - if (item.getAllowCredentials() != null) { - cr.allowCredentials(item.getAllowCredentials()); - } - if (StringUtils.isNotBlank(item.getAllowedOrigins())) { - String[] allowedOriginArray = item.getAllowedOrigins().split(","); - cr.allowedOrigins(allowedOriginArray); - } - if (StringUtils.isNotBlank(item.getAllowedMethods())) { - String[] allowedMethodArray = item.getAllowedMethods().split(","); - cr.allowedMethods(allowedMethodArray); - } - if (StringUtils.isNotBlank(item.getAllowedHeaders())) { - String[] allowedHeaderArray = item.getAllowedHeaders().split(","); - cr.allowedHeaders(allowedHeaderArray); - } - }); - } - } - }; - } - - /** - * 描述 : 跨域信息 - * - * @author Administrator - */ - @Data - public static class CorsRegistrationConfig { - /** - * 描述 : 扫描地址 - */ - private String mapping = "/**"; - - /** - * 描述 : 允许cookie - */ - private Boolean allowCredentials = true; - - /** - * 描述 : 允许的域 - */ - private String allowedOrigins = "*"; - - /** - * 描述 : 允许的方法 - */ - private String allowedMethods = "POST,GET,DELETE,PUT"; - - /** - * 描述 : 允许的头信息 - */ - private String allowedHeaders = "*"; - - } - -} +/** + * CorsConfig.java + * Created at 2017-04-25 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.cors; + +import lombok.Data; +import org.apache.commons.lang3.StringUtils; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.servlet.config.annotation.CorsRegistration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +import javax.validation.constraints.NotNull; +import java.util.Map; + +/** + * 描述 : CorsConfig ( another way @see EndpointCorsProperties.java ) + * + * @author Administrator + */ +@Configuration +@ConfigurationProperties(prefix = "org.itkk.cors") +@Validated +@Data +public class CorsConfig { + + /** + * 描述 : 跨域信息 + */ + @NotNull + private Map config; + + /** + * 描述 : corsConfigurer + * + * @return WebMvcConfigurer + */ + @Bean + public WebMvcConfigurer corsConfigurer() { //NOSONAR + return new WebMvcConfigurerAdapter() { //NOSONAR + @Override + public void addCorsMappings(CorsRegistry registry) { + //扫描地址 + if (!CollectionUtils.isEmpty(config)) { + config.forEach((key, item) -> { + CorsRegistration cr = registry.addMapping(item.getMapping()); + if (item.getAllowCredentials() != null) { + cr.allowCredentials(item.getAllowCredentials()); + } + if (StringUtils.isNotBlank(item.getAllowedOrigins())) { + String[] allowedOriginArray = item.getAllowedOrigins().split(","); + cr.allowedOrigins(allowedOriginArray); + } + if (StringUtils.isNotBlank(item.getAllowedMethods())) { + String[] allowedMethodArray = item.getAllowedMethods().split(","); + cr.allowedMethods(allowedMethodArray); + } + if (StringUtils.isNotBlank(item.getAllowedHeaders())) { + String[] allowedHeaderArray = item.getAllowedHeaders().split(","); + cr.allowedHeaders(allowedHeaderArray); + } + }); + } + } + }; + } + + /** + * 描述 : 跨域信息 + * + * @author Administrator + */ + @Data + public static class CorsRegistrationConfig { + /** + * 描述 : 扫描地址 + */ + private String mapping = "/**"; + + /** + * 描述 : 允许cookie + */ + private Boolean allowCredentials = true; + + /** + * 描述 : 允许的域 + */ + private String allowedOrigins = "*"; + + /** + * 描述 : 允许的方法 + */ + private String allowedMethods = "POST,GET,DELETE,PUT"; + + /** + * 描述 : 允许的头信息 + */ + private String allowedHeaders = "*"; + + } + +} diff --git a/udf-starter-dal-mybatis/pom.xml b/udf-stater/udf-starter-dal-mybatis/pom.xml similarity index 100% rename from udf-starter-dal-mybatis/pom.xml rename to udf-stater/udf-starter-dal-mybatis/pom.xml diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/MyBatisConfig.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/MyBatisConfig.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/MyBatisConfig.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/MyBatisConfig.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/MyBatisProperties.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/MyBatisProperties.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/MyBatisProperties.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/MyBatisProperties.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/InterceptorUtil.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/InterceptorUtil.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/InterceptorUtil.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/InterceptorUtil.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/BoundSqlSqlSource.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/BoundSqlSqlSource.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/BoundSqlSqlSource.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/BoundSqlSqlSource.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/Page.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/Page.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/Page.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/Page.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/PageInterceptor.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/PageInterceptor.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/PageInterceptor.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/PageInterceptor.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/PageResult.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/PageResult.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/PageResult.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/PageResult.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/parser/SqlParser.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/parser/SqlParser.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/parser/SqlParser.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/pagequery/parser/SqlParser.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/BaseTableSplitInterceptor.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/BaseTableSplitInterceptor.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/BaseTableSplitInterceptor.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/BaseTableSplitInterceptor.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/DefaultStrategy.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/DefaultStrategy.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/DefaultStrategy.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/DefaultStrategy.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/IStrategy.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/IStrategy.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/IStrategy.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/IStrategy.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/QueryTableSplitInterceptor.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/QueryTableSplitInterceptor.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/QueryTableSplitInterceptor.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/QueryTableSplitInterceptor.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/TableSplitContextHolder.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/TableSplitContextHolder.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/TableSplitContextHolder.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/TableSplitContextHolder.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/TableSplitThreadLocal.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/TableSplitThreadLocal.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/TableSplitThreadLocal.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/TableSplitThreadLocal.java diff --git a/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/UpdateTableSplitInterceptor.java b/udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/UpdateTableSplitInterceptor.java similarity index 100% rename from udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/UpdateTableSplitInterceptor.java rename to udf-stater/udf-starter-dal-mybatis/src/main/java/org/itkk/udf/dal/mybatis/plugin/tablesplit/UpdateTableSplitInterceptor.java diff --git a/udf-starter-datasource-dynamic/pom.xml b/udf-stater/udf-starter-datasource-dynamic/pom.xml similarity index 100% rename from udf-starter-datasource-dynamic/pom.xml rename to udf-stater/udf-starter-datasource-dynamic/pom.xml diff --git a/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DataSourceThreadLocal.java b/udf-stater/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DataSourceThreadLocal.java similarity index 100% rename from udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DataSourceThreadLocal.java rename to udf-stater/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DataSourceThreadLocal.java diff --git a/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DbContextHolder.java b/udf-stater/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DbContextHolder.java similarity index 100% rename from udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DbContextHolder.java rename to udf-stater/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DbContextHolder.java diff --git a/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSource.java b/udf-stater/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSource.java similarity index 100% rename from udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSource.java rename to udf-stater/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSource.java diff --git a/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSourceConfig.java b/udf-stater/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSourceConfig.java similarity index 100% rename from udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSourceConfig.java rename to udf-stater/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSourceConfig.java diff --git a/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSourceException.java b/udf-stater/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSourceException.java similarity index 100% rename from udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSourceException.java rename to udf-stater/udf-starter-datasource-dynamic/src/main/java/org/itkk/udf/datasource/dynamic/DynamicDataSourceException.java diff --git a/udf-starter-datasource/pom.xml b/udf-stater/udf-starter-datasource/pom.xml similarity index 100% rename from udf-starter-datasource/pom.xml rename to udf-stater/udf-starter-datasource/pom.xml diff --git a/udf-starter-datasource/src/main/java/org/itkk/udf/datasource/dynamic/DataSourceConfig.java b/udf-stater/udf-starter-datasource/src/main/java/org/itkk/udf/datasource/dynamic/DataSourceConfig.java similarity index 100% rename from udf-starter-datasource/src/main/java/org/itkk/udf/datasource/dynamic/DataSourceConfig.java rename to udf-stater/udf-starter-datasource/src/main/java/org/itkk/udf/datasource/dynamic/DataSourceConfig.java diff --git a/udf-starter-exception-alert/pom.xml b/udf-stater/udf-starter-exception-alert/pom.xml similarity index 100% rename from udf-starter-exception-alert/pom.xml rename to udf-stater/udf-starter-exception-alert/pom.xml diff --git a/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlert.java b/udf-stater/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlert.java similarity index 100% rename from udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlert.java rename to udf-stater/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlert.java diff --git a/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertConfig.java b/udf-stater/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertConfig.java similarity index 100% rename from udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertConfig.java rename to udf-stater/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertConfig.java diff --git a/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertConstant.java b/udf-stater/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertConstant.java similarity index 100% rename from udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertConstant.java rename to udf-stater/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertConstant.java diff --git a/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertProperties.java b/udf-stater/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertProperties.java similarity index 100% rename from udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertProperties.java rename to udf-stater/udf-starter-exception-alert/src/main/java/org/itkk/udf/exception/alert/ExceptionAlertProperties.java diff --git a/udf-starter-file-aliyun-oss-api/pom.xml b/udf-stater/udf-starter-file-aliyun-oss-api/pom.xml similarity index 100% rename from udf-starter-file-aliyun-oss-api/pom.xml rename to udf-stater/udf-starter-file-aliyun-oss-api/pom.xml diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/AliyunOssProperties.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/AliyunOssProperties.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/AliyunOssProperties.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/AliyunOssProperties.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/OssWarpper.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/OssWarpper.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/OssWarpper.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/OssWarpper.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/domain/PolicyResult.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/domain/PolicyResult.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/domain/PolicyResult.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/domain/PolicyResult.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownConstant.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownConstant.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownConstant.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownConstant.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoad.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoad.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoad.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoad.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadParam.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadParam.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadParam.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadParam.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadProcessAspect.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadProcessAspect.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadProcessAspect.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadProcessAspect.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadProcessService.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadProcessService.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadProcessService.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownLoadProcessService.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownloadInfo.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownloadInfo.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownloadInfo.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/DownloadInfo.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/IDownLoadProcess.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/IDownLoadProcess.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/IDownLoadProcess.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/download/IDownLoadProcess.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/meta/AliyunOssAccessMeta.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/meta/AliyunOssAccessMeta.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/meta/AliyunOssAccessMeta.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/meta/AliyunOssAccessMeta.java diff --git a/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/meta/AliyunOssPathMeta.java b/udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/meta/AliyunOssPathMeta.java similarity index 100% rename from udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/meta/AliyunOssPathMeta.java rename to udf-stater/udf-starter-file-aliyun-oss-api/src/main/java/org/itkk/udf/file/aliyun/oss/api/meta/AliyunOssPathMeta.java diff --git a/udf-starter-file-aliyun-oss/pom.xml b/udf-stater/udf-starter-file-aliyun-oss/pom.xml similarity index 100% rename from udf-starter-file-aliyun-oss/pom.xml rename to udf-stater/udf-starter-file-aliyun-oss/pom.xml diff --git a/udf-starter-file-aliyun-oss/src/main/java/org/itkk/udf/file/aliyun/oss/web/AliyunOssController.java b/udf-stater/udf-starter-file-aliyun-oss/src/main/java/org/itkk/udf/file/aliyun/oss/web/AliyunOssController.java similarity index 100% rename from udf-starter-file-aliyun-oss/src/main/java/org/itkk/udf/file/aliyun/oss/web/AliyunOssController.java rename to udf-stater/udf-starter-file-aliyun-oss/src/main/java/org/itkk/udf/file/aliyun/oss/web/AliyunOssController.java diff --git a/udf-starter-file-aliyun-oss/src/main/java/org/itkk/udf/file/aliyun/oss/web/IAliuyunOssController.java b/udf-stater/udf-starter-file-aliyun-oss/src/main/java/org/itkk/udf/file/aliyun/oss/web/IAliuyunOssController.java similarity index 100% rename from udf-starter-file-aliyun-oss/src/main/java/org/itkk/udf/file/aliyun/oss/web/IAliuyunOssController.java rename to udf-stater/udf-starter-file-aliyun-oss/src/main/java/org/itkk/udf/file/aliyun/oss/web/IAliuyunOssController.java diff --git a/udf-starter-file/pom.xml b/udf-stater/udf-starter-file/pom.xml similarity index 100% rename from udf-starter-file/pom.xml rename to udf-stater/udf-starter-file/pom.xml diff --git a/udf-starter-file/src/main/java/org/itkk/udf/file/FileException.java b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/FileException.java similarity index 94% rename from udf-starter-file/src/main/java/org/itkk/udf/file/FileException.java rename to udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/FileException.java index 2dbcf3e..c576953 100644 --- a/udf-starter-file/src/main/java/org/itkk/udf/file/FileException.java +++ b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/FileException.java @@ -1,66 +1,66 @@ -/** - * FileException.java - * Created at 2016-03-01 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.file; - -/** - *

- * ClassName: FileException - *

- *

- * Description: 文件异常 - *

- *

- * Author: wangkang - *

- *

- * Date: 2016年3月23日 - *

- */ -public class FileException extends RuntimeException { - - /** - *

- * Field serialVersionUID: 序列号 - *

- */ - private static final long serialVersionUID = 1L; - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - */ - public FileException(String message) { - super(message); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param cause 堆栈 - */ - public FileException(Throwable cause) { - super(cause); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - * @param cause 堆栈 - */ - public FileException(String message, Throwable cause) { - super(message, cause); - } - -} +/** + * FileException.java + * Created at 2016-03-01 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.file; + +/** + *

+ * ClassName: FileException + *

+ *

+ * Description: 文件异常 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2016年3月23日 + *

+ */ +public class FileException extends RuntimeException { + + /** + *

+ * Field serialVersionUID: 序列号 + *

+ */ + private static final long serialVersionUID = 1L; + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + */ + public FileException(String message) { + super(message); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param cause 堆栈 + */ + public FileException(Throwable cause) { + super(cause); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + * @param cause 堆栈 + */ + public FileException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/udf-starter-file/src/main/java/org/itkk/udf/file/FileProperties.java b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/FileProperties.java similarity index 95% rename from udf-starter-file/src/main/java/org/itkk/udf/file/FileProperties.java rename to udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/FileProperties.java index f5d0b8d..0c96034 100644 --- a/udf-starter-file/src/main/java/org/itkk/udf/file/FileProperties.java +++ b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/FileProperties.java @@ -1,42 +1,42 @@ -/** - * Config.java - * Created at 2016-11-19 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.file; - -import lombok.Data; -import org.itkk.udf.file.meta.PathMeta; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.io.Serializable; -import java.util.Map; - -/** - * 描述 : Config - * - * @author Administrator - */ -@Component -@ConfigurationProperties(prefix = "org.itkk.file.properties") -@Data -public class FileProperties implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 根路径 - */ - private String rootPath; - - /** - * 描述 : 文件路径 ( key : pathCode ) - */ - private Map path; - -} +/** + * Config.java + * Created at 2016-11-19 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.file; + +import lombok.Data; +import org.itkk.udf.file.meta.PathMeta; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +import java.util.Map; + +/** + * 描述 : Config + * + * @author Administrator + */ +@Component +@ConfigurationProperties(prefix = "org.itkk.file.properties") +@Data +public class FileProperties implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 根路径 + */ + private String rootPath; + + /** + * 描述 : 文件路径 ( key : pathCode ) + */ + private Map path; + +} diff --git a/udf-starter-file/src/main/java/org/itkk/udf/file/meta/PathMeta.java b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/meta/PathMeta.java similarity index 93% rename from udf-starter-file/src/main/java/org/itkk/udf/file/meta/PathMeta.java rename to udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/meta/PathMeta.java index 28ee42e..5f33f4a 100644 --- a/udf-starter-file/src/main/java/org/itkk/udf/file/meta/PathMeta.java +++ b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/meta/PathMeta.java @@ -1,41 +1,41 @@ -/** - * PathMeta.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.file.meta; - -import lombok.Data; - -import java.io.Serializable; - -/** - * 描述 : PathMeta - * - * @author Administrator - */ -@Data -public class PathMeta implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 应用名称 - */ - private String owner; - - /** - * 描述 : 文件路径 - */ - private String path; - - /** - * 描述 : 描述 - */ - private String description; - -} +/** + * PathMeta.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.file.meta; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述 : PathMeta + * + * @author Administrator + */ +@Data +public class PathMeta implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 应用名称 + */ + private String owner; + + /** + * 描述 : 文件路径 + */ + private String path; + + /** + * 描述 : 描述 + */ + private String description; + +} diff --git a/udf-starter-file/src/main/java/org/itkk/udf/file/service/FileService.java b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/service/FileService.java similarity index 97% rename from udf-starter-file/src/main/java/org/itkk/udf/file/service/FileService.java rename to udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/service/FileService.java index f37fe55..4f11e83 100644 --- a/udf-starter-file/src/main/java/org/itkk/udf/file/service/FileService.java +++ b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/service/FileService.java @@ -1,161 +1,161 @@ -/** - * FileService.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.file.service; - -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.lang3.StringUtils; -import org.itkk.udf.core.ApplicationConfig; -import org.itkk.udf.core.domain.file.FileInfo; -import org.itkk.udf.file.FileException; -import org.itkk.udf.file.FileProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.io.FileSystemResource; -import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; - -import javax.activation.FileTypeMap; -import java.io.File; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; - -/** - * 描述 : FileService - * - * @author Administrator - */ -@Service -public class FileService { - - /** - * 描述 : fileProperties - */ - @Autowired - private FileProperties fileProperties; - - /** - * 描述 : applicationConfig - */ - @Autowired - private ApplicationConfig applicationConfig; - - /** - * 描述 : 返回文件信息 - * - * @param fileId 文件ID - * @return 文件信息 - * @throws IOException 异常 - */ - public FileInfo getFileInfo(String fileId) throws IOException { - //判断fileId是否为空 - if (StringUtils.isBlank(fileId)) { - throw new FileException("fileId can not be empty"); - } - //返回对象 - FileInfo result = new FileInfo(); - result.setId(fileId); - //获得相对路径 - String relativeFilePath = new String(Base64.decodeBase64(result.getId().getBytes(applicationConfig.getEncoding())), applicationConfig.getEncoding()); - result.setRelativePath(relativeFilePath); - //获得rootPath - String rootPath = fileProperties.getRootPath(); - //拼接绝对路径(目录) - String absolutePath = rootPath + relativeFilePath; - //获得资源对象 - FileSystemResource fsr = new FileSystemResource(absolutePath); - //判断资源是否存在 - if (!fsr.exists()) { - throw new FileException("file : " + relativeFilePath + " does not exist"); - } - //获得contentType - String contentType = FileTypeMap.getDefaultFileTypeMap().getContentType(fsr.getFile()); - result.setContentType(contentType); - //获得文件名称 - String fileName = fsr.getFilename(); - result.setName(fileName); - //获得文件长度 - Long size = fsr.contentLength(); - result.setSize(size); - //返回 - return result; - } - - /** - * 描述 : 上传文件 - * - * @param pathCode 路径代码 - * @param file 文件 - * @return 结果 - * @throws IllegalStateException 异常 - * @throws IOException 异常 - */ - public FileInfo upload(String pathCode, MultipartFile file) throws IOException { - //验证 - this.verification(pathCode, file); - //创建返回对象 - FileInfo fileInfo = new FileInfo(); - //获得rootPath - String rootPath = fileProperties.getRootPath(); - //根据pathCode获得path - String path = fileProperties.getPath().get(pathCode).getPath(); - //获得当前时间戳 - String day = new SimpleDateFormat("yyyyMMdd").format(new Date()) + "/"; - //获得文件名 - String originalFilename = file.getOriginalFilename(); - fileInfo.setName(originalFilename); - //获得上下文类型 - String contentType = file.getContentType(); - fileInfo.setContentType(contentType); - //获得文件长度 - Long size = file.getSize(); - fileInfo.setSize(size); - //拼接相对路径(目录) - String relativePath = path + day; - //拼接相对路径(文件) - String relativeFilePath = relativePath + originalFilename; - fileInfo.setRelativePath(relativeFilePath); - //拼接绝对路径(目录) - String absolutePath = rootPath + relativePath; - //拼接绝对路径(文件) - String absoluteFilePath = rootPath + relativeFilePath; - //获得base64文件ID(通过文件相对路径计算获得) - String fileId = new String(Base64.encodeBase64(fileInfo.getRelativePath().getBytes(applicationConfig.getEncoding())), applicationConfig.getEncoding()); - fileInfo.setId(fileId); - //获得文件对象(目录) - File dest = new File(absolutePath); - //创建目录 - dest.mkdirs(); - //获得文件对象 - dest = new File(absoluteFilePath); - //保存 - file.transferTo(dest); - //返回 - return fileInfo; - } - - /** - * 描述 : 验证 - * - * @param pathCode 路径代码 - * @param file 文件 - */ - public void verification(String pathCode, MultipartFile file) { - //验证根路径是否配置 - if (fileProperties.getRootPath() == null) { - throw new FileException("rootPath not defined"); - } - //验证pathCode是否存在 - if (!fileProperties.getPath().containsKey(pathCode)) { - throw new FileException("pathCode : " + pathCode + " not defined"); - } - //文件是否为空 - if (file.isEmpty()) { - throw new FileException("file is empty"); - } - } - -} +/** + * FileService.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.file.service; + +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang3.StringUtils; +import org.itkk.udf.core.ApplicationConfig; +import org.itkk.udf.core.domain.file.FileInfo; +import org.itkk.udf.file.FileException; +import org.itkk.udf.file.FileProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.FileSystemResource; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.activation.FileTypeMap; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 描述 : FileService + * + * @author Administrator + */ +@Service +public class FileService { + + /** + * 描述 : fileProperties + */ + @Autowired + private FileProperties fileProperties; + + /** + * 描述 : applicationConfig + */ + @Autowired + private ApplicationConfig applicationConfig; + + /** + * 描述 : 返回文件信息 + * + * @param fileId 文件ID + * @return 文件信息 + * @throws IOException 异常 + */ + public FileInfo getFileInfo(String fileId) throws IOException { + //判断fileId是否为空 + if (StringUtils.isBlank(fileId)) { + throw new FileException("fileId can not be empty"); + } + //返回对象 + FileInfo result = new FileInfo(); + result.setId(fileId); + //获得相对路径 + String relativeFilePath = new String(Base64.decodeBase64(result.getId().getBytes(applicationConfig.getEncoding())), applicationConfig.getEncoding()); + result.setRelativePath(relativeFilePath); + //获得rootPath + String rootPath = fileProperties.getRootPath(); + //拼接绝对路径(目录) + String absolutePath = rootPath + relativeFilePath; + //获得资源对象 + FileSystemResource fsr = new FileSystemResource(absolutePath); + //判断资源是否存在 + if (!fsr.exists()) { + throw new FileException("file : " + relativeFilePath + " does not exist"); + } + //获得contentType + String contentType = FileTypeMap.getDefaultFileTypeMap().getContentType(fsr.getFile()); + result.setContentType(contentType); + //获得文件名称 + String fileName = fsr.getFilename(); + result.setName(fileName); + //获得文件长度 + Long size = fsr.contentLength(); + result.setSize(size); + //返回 + return result; + } + + /** + * 描述 : 上传文件 + * + * @param pathCode 路径代码 + * @param file 文件 + * @return 结果 + * @throws IllegalStateException 异常 + * @throws IOException 异常 + */ + public FileInfo upload(String pathCode, MultipartFile file) throws IOException { + //验证 + this.verification(pathCode, file); + //创建返回对象 + FileInfo fileInfo = new FileInfo(); + //获得rootPath + String rootPath = fileProperties.getRootPath(); + //根据pathCode获得path + String path = fileProperties.getPath().get(pathCode).getPath(); + //获得当前时间戳 + String day = new SimpleDateFormat("yyyyMMdd").format(new Date()) + "/"; + //获得文件名 + String originalFilename = file.getOriginalFilename(); + fileInfo.setName(originalFilename); + //获得上下文类型 + String contentType = file.getContentType(); + fileInfo.setContentType(contentType); + //获得文件长度 + Long size = file.getSize(); + fileInfo.setSize(size); + //拼接相对路径(目录) + String relativePath = path + day; + //拼接相对路径(文件) + String relativeFilePath = relativePath + originalFilename; + fileInfo.setRelativePath(relativeFilePath); + //拼接绝对路径(目录) + String absolutePath = rootPath + relativePath; + //拼接绝对路径(文件) + String absoluteFilePath = rootPath + relativeFilePath; + //获得base64文件ID(通过文件相对路径计算获得) + String fileId = new String(Base64.encodeBase64(fileInfo.getRelativePath().getBytes(applicationConfig.getEncoding())), applicationConfig.getEncoding()); + fileInfo.setId(fileId); + //获得文件对象(目录) + File dest = new File(absolutePath); + //创建目录 + dest.mkdirs(); + //获得文件对象 + dest = new File(absoluteFilePath); + //保存 + file.transferTo(dest); + //返回 + return fileInfo; + } + + /** + * 描述 : 验证 + * + * @param pathCode 路径代码 + * @param file 文件 + */ + public void verification(String pathCode, MultipartFile file) { + //验证根路径是否配置 + if (fileProperties.getRootPath() == null) { + throw new FileException("rootPath not defined"); + } + //验证pathCode是否存在 + if (!fileProperties.getPath().containsKey(pathCode)) { + throw new FileException("pathCode : " + pathCode + " not defined"); + } + //文件是否为空 + if (file.isEmpty()) { + throw new FileException("file is empty"); + } + } + +} diff --git a/udf-starter-file/src/main/java/org/itkk/udf/file/web/FileController.java b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/web/FileController.java similarity index 96% rename from udf-starter-file/src/main/java/org/itkk/udf/file/web/FileController.java rename to udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/web/FileController.java index f52d9d3..c0cf9fd 100644 --- a/udf-starter-file/src/main/java/org/itkk/udf/file/web/FileController.java +++ b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/web/FileController.java @@ -1,120 +1,120 @@ -/** - * FileController.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.file.web; - -import org.apache.commons.collections4.CollectionUtils; -import org.itkk.udf.core.ApplicationConfig; -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.core.domain.file.FileInfo; -import org.itkk.udf.core.domain.file.FileParam; -import org.itkk.udf.file.FileProperties; -import org.itkk.udf.file.service.FileService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.io.FileSystemResource; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletResponse; -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.List; - -/** - * 描述 : FileController - * - * @author Administrator - */ -@RestController -public class FileController implements IFileController { - - /** - * 描述 : applicationConfig - */ - @Autowired - private ApplicationConfig applicationConfig; - - /** - * 描述 : fileProperties - */ - @Autowired - private FileProperties fileProperties; - - /** - * 描述 : fileService - */ - @Autowired - private FileService fileService; - - @Override - public RestResponse upload(String pathCode, MultipartFile file) throws IOException { - return new RestResponse<>(fileService.upload(pathCode, file)); - } - - @Override - public RestResponse> batchUpload(String pathCode, List files) throws IOException { - List infos = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(files)) { - for (MultipartFile file : files) { - infos.add(fileService.upload(pathCode, file)); - } - } - return new RestResponse<>(infos); - } - - @Override - public RestResponse properties() { - return new RestResponse<>(fileProperties); - } - - @Override - public void download(@RequestBody FileParam fileParam, HttpServletResponse response) - throws IOException { - this.loadFile(fileParam.getId(), response); - } - - @Override - public RestResponse info(@RequestBody FileParam fileParam) throws IOException { - return new RestResponse<>(this.fileService.getFileInfo(fileParam.getId())); - } - - /** - * 描述 : 加载文件 - * - * @param fileId 相对路径 - * @param response 响应对象 - * @throws IOException IOException - */ - private void loadFile(String fileId, HttpServletResponse response) throws IOException { - //获得文件信息 - FileInfo fileInfo = this.fileService.getFileInfo(fileId); - //设置response - response.setContentLengthLong(fileInfo.getSize()); - response.setCharacterEncoding(applicationConfig.getEncoding()); - response.setContentType(fileInfo.getContentType()); - //获得rootPath - String rootPath = fileProperties.getRootPath(); - //拼接绝对路径(目录) - String absolutePath = rootPath + fileInfo.getRelativePath(); - //获得资源对象 - FileSystemResource fsr = new FileSystemResource(absolutePath); - //输出文件 - final int buffInt = 1024; - byte[] buff = new byte[buffInt]; - try (OutputStream os = response.getOutputStream(); BufferedInputStream bis = new BufferedInputStream(fsr.getInputStream())) { //NOSONAR - int i = bis.read(buff); - while (i != -1) { - os.write(buff, 0, buff.length); - os.flush(); - i = bis.read(buff); - } - } - } - -} +/** + * FileController.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.file.web; + +import org.apache.commons.collections4.CollectionUtils; +import org.itkk.udf.core.ApplicationConfig; +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.core.domain.file.FileInfo; +import org.itkk.udf.core.domain.file.FileParam; +import org.itkk.udf.file.FileProperties; +import org.itkk.udf.file.service.FileService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.FileSystemResource; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.List; + +/** + * 描述 : FileController + * + * @author Administrator + */ +@RestController +public class FileController implements IFileController { + + /** + * 描述 : applicationConfig + */ + @Autowired + private ApplicationConfig applicationConfig; + + /** + * 描述 : fileProperties + */ + @Autowired + private FileProperties fileProperties; + + /** + * 描述 : fileService + */ + @Autowired + private FileService fileService; + + @Override + public RestResponse upload(String pathCode, MultipartFile file) throws IOException { + return new RestResponse<>(fileService.upload(pathCode, file)); + } + + @Override + public RestResponse> batchUpload(String pathCode, List files) throws IOException { + List infos = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(files)) { + for (MultipartFile file : files) { + infos.add(fileService.upload(pathCode, file)); + } + } + return new RestResponse<>(infos); + } + + @Override + public RestResponse properties() { + return new RestResponse<>(fileProperties); + } + + @Override + public void download(@RequestBody FileParam fileParam, HttpServletResponse response) + throws IOException { + this.loadFile(fileParam.getId(), response); + } + + @Override + public RestResponse info(@RequestBody FileParam fileParam) throws IOException { + return new RestResponse<>(this.fileService.getFileInfo(fileParam.getId())); + } + + /** + * 描述 : 加载文件 + * + * @param fileId 相对路径 + * @param response 响应对象 + * @throws IOException IOException + */ + private void loadFile(String fileId, HttpServletResponse response) throws IOException { + //获得文件信息 + FileInfo fileInfo = this.fileService.getFileInfo(fileId); + //设置response + response.setContentLengthLong(fileInfo.getSize()); + response.setCharacterEncoding(applicationConfig.getEncoding()); + response.setContentType(fileInfo.getContentType()); + //获得rootPath + String rootPath = fileProperties.getRootPath(); + //拼接绝对路径(目录) + String absolutePath = rootPath + fileInfo.getRelativePath(); + //获得资源对象 + FileSystemResource fsr = new FileSystemResource(absolutePath); + //输出文件 + final int buffInt = 1024; + byte[] buff = new byte[buffInt]; + try (OutputStream os = response.getOutputStream(); BufferedInputStream bis = new BufferedInputStream(fsr.getInputStream())) { //NOSONAR + int i = bis.read(buff); + while (i != -1) { + os.write(buff, 0, buff.length); + os.flush(); + i = bis.read(buff); + } + } + } + +} diff --git a/udf-starter-file/src/main/java/org/itkk/udf/file/web/IFileController.java b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/web/IFileController.java similarity index 97% rename from udf-starter-file/src/main/java/org/itkk/udf/file/web/IFileController.java rename to udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/web/IFileController.java index d43bb70..f52814a 100644 --- a/udf-starter-file/src/main/java/org/itkk/udf/file/web/IFileController.java +++ b/udf-stater/udf-starter-file/src/main/java/org/itkk/udf/file/web/IFileController.java @@ -1,120 +1,120 @@ -/** - * IFileController.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.file.web; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.core.domain.file.FileInfo; -import org.itkk.udf.core.domain.file.FileParam; -import org.itkk.udf.file.FileProperties; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.List; - -/** - * 描述 : IFileController - * - * @author Administrator - */ -@Api(value = "文件服务", consumes = "application/json", produces = "application/json", - protocols = "http") -@RequestMapping(value = "/service/file") -public interface IFileController { - - /** - * 描述 : 上传文件 - * - * @param pathCode 路径代码 - * @param file 文件 - * @return 结果 - * @throws IOException 异常 - */ - @ApiOperation(value = "FILE_1", notes = "上传文件") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "form", name = "pathCode", value = "路径代码", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "form", name = "file", value = "文件", required = true, dataType = "__file") - }) - @RequestMapping(value = "upload", method = RequestMethod.POST) - RestResponse upload(String pathCode, MultipartFile file) throws IOException; - - /** - * 描述 : 文件配置 - * - * @return 文件配置 - */ - @ApiOperation(value = "FILE_2", notes = "文件配置") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string") - }) - @RequestMapping(value = "properties", method = RequestMethod.GET) - RestResponse properties(); - - /** - * 描述 : 通过文件ID访问文件 - * - * @param fileParam 文件参数 - * @param response 响应对象 - * @throws IOException 异常 - */ - @ApiOperation(value = "FILE_3", notes = "通过文件ID访问文件") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string") - }) - @RequestMapping(value = "download", method = RequestMethod.POST) - void download(@RequestBody FileParam fileParam, HttpServletResponse response) throws IOException; - - /** - * 描述 : 通过文件ID访问文件 - * - * @param fileParam 文件参数 - * @return 文件信息 - * @throws IOException 异常 - */ - @ApiOperation(value = "FILE_4", notes = "通过文件ID获得文件信息") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string") - }) - @RequestMapping(value = "info", method = RequestMethod.POST) - RestResponse info(@RequestBody FileParam fileParam) throws IOException; - - /** - * 描述 : 批量上传文件 - * - * @param pathCode 路径代码 - * @param files 文件清单 - * @return 结果 - * @throws IOException 异常 - */ - @ApiOperation(value = "FILE_5", notes = "批量上传文件") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "form", name = "pathCode", value = "路径代码", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "form", name = "files", value = "文件清单", required = true, allowMultiple = true, dataType = "__file") - }) - @RequestMapping(value = "upload/batch", method = RequestMethod.POST) - RestResponse> batchUpload(String pathCode, List files) throws IOException; - -} +/** + * IFileController.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.file.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.core.domain.file.FileInfo; +import org.itkk.udf.core.domain.file.FileParam; +import org.itkk.udf.file.FileProperties; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +/** + * 描述 : IFileController + * + * @author Administrator + */ +@Api(value = "文件服务", consumes = "application/json", produces = "application/json", + protocols = "http") +@RequestMapping(value = "/service/file") +public interface IFileController { + + /** + * 描述 : 上传文件 + * + * @param pathCode 路径代码 + * @param file 文件 + * @return 结果 + * @throws IOException 异常 + */ + @ApiOperation(value = "FILE_1", notes = "上传文件") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "form", name = "pathCode", value = "路径代码", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "form", name = "file", value = "文件", required = true, dataType = "__file") + }) + @RequestMapping(value = "upload", method = RequestMethod.POST) + RestResponse upload(String pathCode, MultipartFile file) throws IOException; + + /** + * 描述 : 文件配置 + * + * @return 文件配置 + */ + @ApiOperation(value = "FILE_2", notes = "文件配置") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string") + }) + @RequestMapping(value = "properties", method = RequestMethod.GET) + RestResponse properties(); + + /** + * 描述 : 通过文件ID访问文件 + * + * @param fileParam 文件参数 + * @param response 响应对象 + * @throws IOException 异常 + */ + @ApiOperation(value = "FILE_3", notes = "通过文件ID访问文件") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string") + }) + @RequestMapping(value = "download", method = RequestMethod.POST) + void download(@RequestBody FileParam fileParam, HttpServletResponse response) throws IOException; + + /** + * 描述 : 通过文件ID访问文件 + * + * @param fileParam 文件参数 + * @return 文件信息 + * @throws IOException 异常 + */ + @ApiOperation(value = "FILE_4", notes = "通过文件ID获得文件信息") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string") + }) + @RequestMapping(value = "info", method = RequestMethod.POST) + RestResponse info(@RequestBody FileParam fileParam) throws IOException; + + /** + * 描述 : 批量上传文件 + * + * @param pathCode 路径代码 + * @param files 文件清单 + * @return 结果 + * @throws IOException 异常 + */ + @ApiOperation(value = "FILE_5", notes = "批量上传文件") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "form", name = "pathCode", value = "路径代码", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "form", name = "files", value = "文件清单", required = true, allowMultiple = true, dataType = "__file") + }) + @RequestMapping(value = "upload/batch", method = RequestMethod.POST) + RestResponse> batchUpload(String pathCode, List files) throws IOException; + +} diff --git a/udf-starter-id/pom.xml b/udf-stater/udf-starter-id/pom.xml similarity index 100% rename from udf-starter-id/pom.xml rename to udf-stater/udf-starter-id/pom.xml diff --git a/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorker.java b/udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorker.java similarity index 100% rename from udf-starter-id/src/main/java/org/itkk/udf/id/IdWorker.java rename to udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorker.java diff --git a/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerConfig.java b/udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerConfig.java similarity index 100% rename from udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerConfig.java rename to udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerConfig.java diff --git a/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerFactory.java b/udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerFactory.java similarity index 100% rename from udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerFactory.java rename to udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerFactory.java diff --git a/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerProperties.java b/udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerProperties.java similarity index 100% rename from udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerProperties.java rename to udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/IdWorkerProperties.java diff --git a/udf-starter-id/src/main/java/org/itkk/udf/id/domain/CacheValue.java b/udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/domain/CacheValue.java similarity index 100% rename from udf-starter-id/src/main/java/org/itkk/udf/id/domain/CacheValue.java rename to udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/domain/CacheValue.java diff --git a/udf-starter-id/src/main/java/org/itkk/udf/id/domain/IdWorkerWrapper.java b/udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/domain/IdWorkerWrapper.java similarity index 100% rename from udf-starter-id/src/main/java/org/itkk/udf/id/domain/IdWorkerWrapper.java rename to udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/domain/IdWorkerWrapper.java diff --git a/udf-starter-id/src/main/java/org/itkk/udf/id/service/IdWorkerService.java b/udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/service/IdWorkerService.java similarity index 100% rename from udf-starter-id/src/main/java/org/itkk/udf/id/service/IdWorkerService.java rename to udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/service/IdWorkerService.java diff --git a/udf-starter-id/src/main/java/org/itkk/udf/id/web/IIdWorkerController.java b/udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/web/IIdWorkerController.java similarity index 100% rename from udf-starter-id/src/main/java/org/itkk/udf/id/web/IIdWorkerController.java rename to udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/web/IIdWorkerController.java diff --git a/udf-starter-id/src/main/java/org/itkk/udf/id/web/IdWorkerController.java b/udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/web/IdWorkerController.java similarity index 100% rename from udf-starter-id/src/main/java/org/itkk/udf/id/web/IdWorkerController.java rename to udf-stater/udf-starter-id/src/main/java/org/itkk/udf/id/web/IdWorkerController.java diff --git a/udf-starter-id/src/main/test/org/itkk/udf/id/IdWorkerTest.java b/udf-stater/udf-starter-id/src/main/test/org/itkk/udf/id/IdWorkerTest.java similarity index 100% rename from udf-starter-id/src/main/test/org/itkk/udf/id/IdWorkerTest.java rename to udf-stater/udf-starter-id/src/main/test/org/itkk/udf/id/IdWorkerTest.java diff --git a/udf-starter-mail/pom.xml b/udf-stater/udf-starter-mail/pom.xml similarity index 100% rename from udf-starter-mail/pom.xml rename to udf-stater/udf-starter-mail/pom.xml diff --git a/udf-starter-mail/src/main/java/org/itkk/udf/mail/MailException.java b/udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/MailException.java similarity index 94% rename from udf-starter-mail/src/main/java/org/itkk/udf/mail/MailException.java rename to udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/MailException.java index d77a649..792189a 100644 --- a/udf-starter-mail/src/main/java/org/itkk/udf/mail/MailException.java +++ b/udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/MailException.java @@ -1,66 +1,66 @@ -/** - * MailException.java - * Created at 2016-03-01 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.mail; - -/** - *

- * ClassName: MailException - *

- *

- * Description: 文件异常 - *

- *

- * Author: wangkang - *

- *

- * Date: 2016年3月23日 - *

- */ -public class MailException extends RuntimeException { - - /** - *

- * Field serialVersionUID: 序列号 - *

- */ - private static final long serialVersionUID = 1L; - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - */ - public MailException(String message) { - super(message); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param cause 堆栈 - */ - public MailException(Throwable cause) { - super(cause); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - * @param cause 堆栈 - */ - public MailException(String message, Throwable cause) { - super(message, cause); - } - -} +/** + * MailException.java + * Created at 2016-03-01 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.mail; + +/** + *

+ * ClassName: MailException + *

+ *

+ * Description: 文件异常 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2016年3月23日 + *

+ */ +public class MailException extends RuntimeException { + + /** + *

+ * Field serialVersionUID: 序列号 + *

+ */ + private static final long serialVersionUID = 1L; + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + */ + public MailException(String message) { + super(message); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param cause 堆栈 + */ + public MailException(Throwable cause) { + super(cause); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + * @param cause 堆栈 + */ + public MailException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/udf-starter-mail/src/main/java/org/itkk/udf/mail/MailProperties.java b/udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/MailProperties.java similarity index 95% rename from udf-starter-mail/src/main/java/org/itkk/udf/mail/MailProperties.java rename to udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/MailProperties.java index 6595c18..5a87e02 100644 --- a/udf-starter-mail/src/main/java/org/itkk/udf/mail/MailProperties.java +++ b/udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/MailProperties.java @@ -1,35 +1,35 @@ -/** - * MailProperties.java - * Created at 2016-11-19 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.mail; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.io.Serializable; - -/** - * 描述 : MailProperties - * - * @author Administrator - */ -@Component -@ConfigurationProperties(prefix = "org.itkk.mail.properties") -@Data -public class MailProperties implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 发送地址 - */ - private String from; - -} +/** + * MailProperties.java + * Created at 2016-11-19 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.mail; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +/** + * 描述 : MailProperties + * + * @author Administrator + */ +@Component +@ConfigurationProperties(prefix = "org.itkk.mail.properties") +@Data +public class MailProperties implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 发送地址 + */ + private String from; + +} diff --git a/udf-starter-mail/src/main/java/org/itkk/udf/mail/service/MailService.java b/udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/service/MailService.java similarity index 97% rename from udf-starter-mail/src/main/java/org/itkk/udf/mail/service/MailService.java rename to udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/service/MailService.java index 799717c..56fa5f0 100644 --- a/udf-starter-mail/src/main/java/org/itkk/udf/mail/service/MailService.java +++ b/udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/service/MailService.java @@ -1,151 +1,151 @@ -/** - * MailService.java - * Created at 2017-05-28 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.mail.service; - -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.ArrayUtils; -import org.apache.commons.lang3.StringUtils; -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.core.domain.file.FileInfo; -import org.itkk.udf.core.domain.file.FileParam; -import org.itkk.udf.core.domain.mail.AttachmentInfo; -import org.itkk.udf.core.domain.mail.InlineInfo; -import org.itkk.udf.core.domain.mail.MailInfo; -import org.itkk.udf.mail.MailException; -import org.itkk.udf.mail.MailProperties; -import org.itkk.udf.rms.Rms; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.ParameterizedTypeReference; -import org.springframework.core.io.ByteArrayResource; -import org.springframework.http.ResponseEntity; -import org.springframework.mail.javamail.JavaMailSender; -import org.springframework.mail.javamail.MimeMessageHelper; -import org.springframework.stereotype.Service; - -import javax.mail.MessagingException; -import javax.mail.internet.MimeMessage; -import java.net.IDN; -import java.util.Arrays; -import java.util.Date; - -/** - * 描述 : MailService - * - * @author Administrator - */ -@Service -public class MailService { - - /** - * 描述 : mailSender - */ - @Autowired - private JavaMailSender mailSender; - - /** - * 描述 : mailProperties - */ - @Autowired - private MailProperties mailProperties; - - /** - * 描述 : rms - */ - @Autowired - private Rms rms; - - /** - * 描述 : 发送邮件 - * - * @param mailInfo 邮件信息 - * @throws MessagingException 异常 - */ - public void send(MailInfo mailInfo) throws MessagingException { //NOSONAR - //创建消息 - MimeMessage message = mailSender.createMimeMessage(); - //判断是否有附件 - boolean multipart = CollectionUtils.isNotEmpty(mailInfo.getAttachments()); - //构造消息 - MimeMessageHelper helper = new MimeMessageHelper(message, multipart); - //必要字段 - helper.setFrom(IDN.toASCII(mailProperties.getFrom())); - helper.setSentDate(new Date()); - helper.setTo(Arrays.stream(mailInfo.getTo()).map(IDN::toASCII).toArray(String[]::new)); - helper.setSubject(mailInfo.getSubject()); - helper.setText(mailInfo.getText(), mailInfo.getIsHtmlText()); - //秘密抄送 - if (ArrayUtils.isNotEmpty(mailInfo.getBcc())) { - helper.setBcc(Arrays.stream(mailInfo.getBcc()).map(IDN::toASCII).toArray(String[]::new)); - } - //抄送 - if (ArrayUtils.isNotEmpty(mailInfo.getCc())) { - helper.setCc(Arrays.stream(mailInfo.getCc()).map(IDN::toASCII).toArray(String[]::new)); - } - //优先级 - if (mailInfo.getPriority() != null) { - helper.setPriority(mailInfo.getPriority()); - } - //邮件回执 - if (StringUtils.isNotBlank(mailInfo.getReplyTo())) { - helper.setReplyTo(mailInfo.getReplyTo()); - } - //处理静态资源 - if (CollectionUtils.isNotEmpty(mailInfo.getInlines())) { - for (InlineInfo inlineInfo : mailInfo.getInlines()) { - //判空 - if (StringUtils.isBlank(inlineInfo.getFileId()) - || StringUtils.isBlank(inlineInfo.getName())) { - throw new MailException("inlineInfo fileid and name are not be null"); - } - //获得必要参数 - String fileId = inlineInfo.getFileId(); - String name = inlineInfo.getName(); - //构造参数 - FileParam fileParam = new FileParam(); - fileParam.setId(fileId); - //获得文件 - ResponseEntity file = - rms.call("FILE_3", fileParam, null, new ParameterizedTypeReference() { - }, null); - //构造resource - ByteArrayResource bar = new ByteArrayResource(file.getBody()); - //添加静态资源 - helper.addInline(name, bar); - } - } - //处理附件 - if (CollectionUtils.isNotEmpty(mailInfo.getAttachments())) { - for (AttachmentInfo attachment : mailInfo.getAttachments()) { - if (StringUtils.isNotBlank(attachment.getFileId())) { - //获得必要参数 - String fileId = attachment.getFileId(); - String name = attachment.getName(); - //构造参数 - FileParam fileParam = new FileParam(); - fileParam.setId(fileId); - //获得文件信息 - ResponseEntity> fileInfo = rms.call("FILE_4", fileParam, null, - new ParameterizedTypeReference>() { - }, null); - //获得文件 - ResponseEntity file = - rms.call("FILE_3", fileParam, null, new ParameterizedTypeReference() { - }, null); - //构造resource - ByteArrayResource bar = new ByteArrayResource(file.getBody()); - //判断附件名称 - name = StringUtils.isNoneBlank(name) ? name : fileInfo.getBody().getResult().getName(); - //添加附件 - helper.addAttachment(name, bar); - } - } - } - //发送消息 - mailSender.send(message); - } - -} +/** + * MailService.java + * Created at 2017-05-28 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.mail.service; + +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.core.domain.file.FileInfo; +import org.itkk.udf.core.domain.file.FileParam; +import org.itkk.udf.core.domain.mail.AttachmentInfo; +import org.itkk.udf.core.domain.mail.InlineInfo; +import org.itkk.udf.core.domain.mail.MailInfo; +import org.itkk.udf.mail.MailException; +import org.itkk.udf.mail.MailProperties; +import org.itkk.udf.rms.Rms; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.http.ResponseEntity; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.stereotype.Service; + +import javax.mail.MessagingException; +import javax.mail.internet.MimeMessage; +import java.net.IDN; +import java.util.Arrays; +import java.util.Date; + +/** + * 描述 : MailService + * + * @author Administrator + */ +@Service +public class MailService { + + /** + * 描述 : mailSender + */ + @Autowired + private JavaMailSender mailSender; + + /** + * 描述 : mailProperties + */ + @Autowired + private MailProperties mailProperties; + + /** + * 描述 : rms + */ + @Autowired + private Rms rms; + + /** + * 描述 : 发送邮件 + * + * @param mailInfo 邮件信息 + * @throws MessagingException 异常 + */ + public void send(MailInfo mailInfo) throws MessagingException { //NOSONAR + //创建消息 + MimeMessage message = mailSender.createMimeMessage(); + //判断是否有附件 + boolean multipart = CollectionUtils.isNotEmpty(mailInfo.getAttachments()); + //构造消息 + MimeMessageHelper helper = new MimeMessageHelper(message, multipart); + //必要字段 + helper.setFrom(IDN.toASCII(mailProperties.getFrom())); + helper.setSentDate(new Date()); + helper.setTo(Arrays.stream(mailInfo.getTo()).map(IDN::toASCII).toArray(String[]::new)); + helper.setSubject(mailInfo.getSubject()); + helper.setText(mailInfo.getText(), mailInfo.getIsHtmlText()); + //秘密抄送 + if (ArrayUtils.isNotEmpty(mailInfo.getBcc())) { + helper.setBcc(Arrays.stream(mailInfo.getBcc()).map(IDN::toASCII).toArray(String[]::new)); + } + //抄送 + if (ArrayUtils.isNotEmpty(mailInfo.getCc())) { + helper.setCc(Arrays.stream(mailInfo.getCc()).map(IDN::toASCII).toArray(String[]::new)); + } + //优先级 + if (mailInfo.getPriority() != null) { + helper.setPriority(mailInfo.getPriority()); + } + //邮件回执 + if (StringUtils.isNotBlank(mailInfo.getReplyTo())) { + helper.setReplyTo(mailInfo.getReplyTo()); + } + //处理静态资源 + if (CollectionUtils.isNotEmpty(mailInfo.getInlines())) { + for (InlineInfo inlineInfo : mailInfo.getInlines()) { + //判空 + if (StringUtils.isBlank(inlineInfo.getFileId()) + || StringUtils.isBlank(inlineInfo.getName())) { + throw new MailException("inlineInfo fileid and name are not be null"); + } + //获得必要参数 + String fileId = inlineInfo.getFileId(); + String name = inlineInfo.getName(); + //构造参数 + FileParam fileParam = new FileParam(); + fileParam.setId(fileId); + //获得文件 + ResponseEntity file = + rms.call("FILE_3", fileParam, null, new ParameterizedTypeReference() { + }, null); + //构造resource + ByteArrayResource bar = new ByteArrayResource(file.getBody()); + //添加静态资源 + helper.addInline(name, bar); + } + } + //处理附件 + if (CollectionUtils.isNotEmpty(mailInfo.getAttachments())) { + for (AttachmentInfo attachment : mailInfo.getAttachments()) { + if (StringUtils.isNotBlank(attachment.getFileId())) { + //获得必要参数 + String fileId = attachment.getFileId(); + String name = attachment.getName(); + //构造参数 + FileParam fileParam = new FileParam(); + fileParam.setId(fileId); + //获得文件信息 + ResponseEntity> fileInfo = rms.call("FILE_4", fileParam, null, + new ParameterizedTypeReference>() { + }, null); + //获得文件 + ResponseEntity file = + rms.call("FILE_3", fileParam, null, new ParameterizedTypeReference() { + }, null); + //构造resource + ByteArrayResource bar = new ByteArrayResource(file.getBody()); + //判断附件名称 + name = StringUtils.isNoneBlank(name) ? name : fileInfo.getBody().getResult().getName(); + //添加附件 + helper.addAttachment(name, bar); + } + } + } + //发送消息 + mailSender.send(message); + } + +} diff --git a/udf-starter-mail/src/main/java/org/itkk/udf/mail/web/IMailController.java b/udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/web/IMailController.java similarity index 97% rename from udf-starter-mail/src/main/java/org/itkk/udf/mail/web/IMailController.java rename to udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/web/IMailController.java index 7472e9e..ee1048a 100644 --- a/udf-starter-mail/src/main/java/org/itkk/udf/mail/web/IMailController.java +++ b/udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/web/IMailController.java @@ -1,53 +1,53 @@ -/** - * IMailController.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.mail.web; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.core.domain.mail.MailInfo; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -import javax.mail.MessagingException; -import javax.validation.Valid; - -/** - * 描述 : IMailController - * - * @author Administrator - */ -@Api(value = "邮件服务", consumes = "application/json", produces = "application/json", - protocols = "http") -@RequestMapping(value = "/service/mail") -public interface IMailController { //NOSONAR - - /** - * 描述 : 发送邮件 - * - * @param mailInfo 邮件信息 - * @param result 校验结果 - * @return 发送结果 - * @throws MessagingException 异常 - */ - @ApiOperation(value = "MAIL_1", notes = "发送邮件
注意:请填写正常内容,不要有test,helloword之类的词,否则会被设定为垃圾邮件") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", - required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, - dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", - required = true, dataType = "string")}) - @RequestMapping(method = RequestMethod.POST) - RestResponse send(@Valid @RequestBody MailInfo mailInfo, BindingResult result) - throws MessagingException; - -} +/** + * IMailController.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.mail.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.core.domain.mail.MailInfo; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import javax.mail.MessagingException; +import javax.validation.Valid; + +/** + * 描述 : IMailController + * + * @author Administrator + */ +@Api(value = "邮件服务", consumes = "application/json", produces = "application/json", + protocols = "http") +@RequestMapping(value = "/service/mail") +public interface IMailController { //NOSONAR + + /** + * 描述 : 发送邮件 + * + * @param mailInfo 邮件信息 + * @param result 校验结果 + * @return 发送结果 + * @throws MessagingException 异常 + */ + @ApiOperation(value = "MAIL_1", notes = "发送邮件
注意:请填写正常内容,不要有test,helloword之类的词,否则会被设定为垃圾邮件") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", + required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, + dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", + required = true, dataType = "string")}) + @RequestMapping(method = RequestMethod.POST) + RestResponse send(@Valid @RequestBody MailInfo mailInfo, BindingResult result) + throws MessagingException; + +} diff --git a/udf-starter-mail/src/main/java/org/itkk/udf/mail/web/MailController.java b/udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/web/MailController.java similarity index 96% rename from udf-starter-mail/src/main/java/org/itkk/udf/mail/web/MailController.java rename to udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/web/MailController.java index 33b4881..7937358 100644 --- a/udf-starter-mail/src/main/java/org/itkk/udf/mail/web/MailController.java +++ b/udf-stater/udf-starter-mail/src/main/java/org/itkk/udf/mail/web/MailController.java @@ -1,49 +1,49 @@ -/** - * MailController.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.mail.web; - -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.core.domain.mail.MailInfo; -import org.itkk.udf.core.exception.ParameterValidException; -import org.itkk.udf.mail.service.MailService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import javax.mail.MessagingException; -import javax.validation.Valid; - -/** - * 描述 : MailController - * - * @author Administrator - */ -@RestController -public class MailController implements IMailController { - - /** - * 描述 : mailService - */ - @Autowired - private MailService mailService; - - @Override - public RestResponse send(@Valid @RequestBody MailInfo mailInfo, BindingResult result) - throws MessagingException { - //校验 - if (result.hasErrors()) { - throw new ParameterValidException("校验失败", - result.getAllErrors()); - } - //发送 - mailService.send(mailInfo); - //返回 - return new RestResponse<>(); - } - -} +/** + * MailController.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.mail.web; + +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.core.domain.mail.MailInfo; +import org.itkk.udf.core.exception.ParameterValidException; +import org.itkk.udf.mail.service.MailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.mail.MessagingException; +import javax.validation.Valid; + +/** + * 描述 : MailController + * + * @author Administrator + */ +@RestController +public class MailController implements IMailController { + + /** + * 描述 : mailService + */ + @Autowired + private MailService mailService; + + @Override + public RestResponse send(@Valid @RequestBody MailInfo mailInfo, BindingResult result) + throws MessagingException { + //校验 + if (result.hasErrors()) { + throw new ParameterValidException("校验失败", + result.getAllErrors()); + } + //发送 + mailService.send(mailInfo); + //返回 + return new RestResponse<>(); + } + +} diff --git a/udf-starter-qrcode/pom.xml b/udf-stater/udf-starter-qrcode/pom.xml similarity index 100% rename from udf-starter-qrcode/pom.xml rename to udf-stater/udf-starter-qrcode/pom.xml diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/domain/QrCodeRequest.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/domain/QrCodeRequest.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/domain/QrCodeRequest.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/domain/QrCodeRequest.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BgImgOptions.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BgImgOptions.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BgImgOptions.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BgImgOptions.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BgImgStyle.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BgImgStyle.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BgImgStyle.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BgImgStyle.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BitMatrixEx.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BitMatrixEx.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BitMatrixEx.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/BitMatrixEx.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DetectOptions.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DetectOptions.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DetectOptions.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DetectOptions.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DrawOptions.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DrawOptions.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DrawOptions.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DrawOptions.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DrawStyle.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DrawStyle.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DrawStyle.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/DrawStyle.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/ExpandType.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/ExpandType.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/ExpandType.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/ExpandType.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/LogoOptions.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/LogoOptions.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/LogoOptions.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/LogoOptions.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/LogoStyle.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/LogoStyle.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/LogoStyle.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/LogoStyle.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/QrCodeOptions.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/QrCodeOptions.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/QrCodeOptions.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/option/QrCodeOptions.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/service/QrcodeService.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/service/QrcodeService.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/service/QrcodeService.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/service/QrcodeService.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/Base64Util.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/Base64Util.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/Base64Util.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/Base64Util.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/ColorUtil.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/ColorUtil.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/ColorUtil.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/ColorUtil.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/HttpUtil.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/HttpUtil.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/HttpUtil.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/HttpUtil.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/ImageUtil.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/ImageUtil.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/ImageUtil.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/ImageUtil.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/NumUtil.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/NumUtil.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/NumUtil.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/NumUtil.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/QrCodeUtil.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/QrCodeUtil.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/QrCodeUtil.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/utils/QrCodeUtil.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/web/IQrcodeController.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/web/IQrcodeController.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/web/IQrcodeController.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/web/IQrcodeController.java diff --git a/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/web/QrcodeController.java b/udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/web/QrcodeController.java similarity index 100% rename from udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/web/QrcodeController.java rename to udf-stater/udf-starter-qrcode/src/main/java/org/itkk/udf/qrcode/web/QrcodeController.java diff --git a/udf-starter-qrcode/src/test/java/org/itkk/udf/qrcode/QrCodeServiceTest.java b/udf-stater/udf-starter-qrcode/src/test/java/org/itkk/udf/qrcode/QrCodeServiceTest.java similarity index 100% rename from udf-starter-qrcode/src/test/java/org/itkk/udf/qrcode/QrCodeServiceTest.java rename to udf-stater/udf-starter-qrcode/src/test/java/org/itkk/udf/qrcode/QrCodeServiceTest.java diff --git a/udf-starter-rms/pom.xml b/udf-stater/udf-starter-rms/pom.xml similarity index 100% rename from udf-starter-rms/pom.xml rename to udf-stater/udf-starter-rms/pom.xml diff --git a/udf-starter-rms/src/main/java/org/itkk/udf/rms/Constant.java b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/Constant.java similarity index 95% rename from udf-starter-rms/src/main/java/org/itkk/udf/rms/Constant.java rename to udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/Constant.java index db6f03c..371b428 100644 --- a/udf-starter-rms/src/main/java/org/itkk/udf/rms/Constant.java +++ b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/Constant.java @@ -1,73 +1,73 @@ -/** - * Constant.java - * Created at 2017-04-24 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.rms; - -import org.apache.commons.codec.digest.DigestUtils; - -import java.text.SimpleDateFormat; -import java.util.Date; - -/** - * 描述 : 常量 - * - * @author Administrator - */ -public class Constant { - - /** - * 描述 : 头信息(rms应用名称) - */ - public static final String HEADER_RMS_APPLICATION_NAME_CODE = "rmsApplicationName"; - - /** - * 描述 : 头信息(rms认证秘钥) - */ - public static final String HEADER_RMS_SIGN_CODE = "rmsSign"; - - /** - * 描述 : 头信息(rms接口编号) - */ - public static final String HEADER_SERVICE_CODE_CODE = "rmsServiceCode"; - - /** - * 描述 : 日期格式 - */ - public static final String DATA_FORMAT = "yyyy-MM-dd'T'HH"; - - /** - * 描述 : http头 - */ - public static final String HTTP = "http://"; - - /** - * 描述 : https头 - */ - public static final String HTTPS = "https://"; - - /** - * 描述 : 私有化构造函数 - */ - private Constant() { - - } - - /** - * 描述 : 计算sign - * - * @param rmsApplicationName 系统标志 - * @param secret 系统私钥 - * @return sign - */ - public static String sign(String rmsApplicationName, String secret) { - final String split = "_"; - StringBuilder sb = new StringBuilder(); - sb.append(rmsApplicationName).append(split).append(secret).append(split) - .append(new SimpleDateFormat(DATA_FORMAT).format(new Date())); - return DigestUtils.md5Hex(sb.toString()); - } - -} +/** + * Constant.java + * Created at 2017-04-24 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.rms; + +import org.apache.commons.codec.digest.DigestUtils; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 描述 : 常量 + * + * @author Administrator + */ +public class Constant { + + /** + * 描述 : 头信息(rms应用名称) + */ + public static final String HEADER_RMS_APPLICATION_NAME_CODE = "rmsApplicationName"; + + /** + * 描述 : 头信息(rms认证秘钥) + */ + public static final String HEADER_RMS_SIGN_CODE = "rmsSign"; + + /** + * 描述 : 头信息(rms接口编号) + */ + public static final String HEADER_SERVICE_CODE_CODE = "rmsServiceCode"; + + /** + * 描述 : 日期格式 + */ + public static final String DATA_FORMAT = "yyyy-MM-dd'T'HH"; + + /** + * 描述 : http头 + */ + public static final String HTTP = "http://"; + + /** + * 描述 : https头 + */ + public static final String HTTPS = "https://"; + + /** + * 描述 : 私有化构造函数 + */ + private Constant() { + + } + + /** + * 描述 : 计算sign + * + * @param rmsApplicationName 系统标志 + * @param secret 系统私钥 + * @return sign + */ + public static String sign(String rmsApplicationName, String secret) { + final String split = "_"; + StringBuilder sb = new StringBuilder(); + sb.append(rmsApplicationName).append(split).append(secret).append(split) + .append(new SimpleDateFormat(DATA_FORMAT).format(new Date())); + return DigestUtils.md5Hex(sb.toString()); + } + +} diff --git a/udf-starter-rms/src/main/java/org/itkk/udf/rms/Rms.java b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/Rms.java similarity index 97% rename from udf-starter-rms/src/main/java/org/itkk/udf/rms/Rms.java rename to udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/Rms.java index 75694d9..437fd51 100644 --- a/udf-starter-rms/src/main/java/org/itkk/udf/rms/Rms.java +++ b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/Rms.java @@ -1,233 +1,233 @@ -/** - * Rms.java - * Created at 2017-04-24 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.rms; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.lang3.StringUtils; -import org.itkk.udf.core.exception.PermissionException; -import org.itkk.udf.rms.meta.ApplicationMeta; -import org.itkk.udf.rms.meta.ServiceMeta; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.ParameterizedTypeReference; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Component; -import org.springframework.web.client.RestTemplate; - -import java.util.HashMap; -import java.util.Map; - -/** - * 描述 : 远程服务 - * - * @author Administrator - */ -@Component -@Slf4j -public class Rms { - - /** - * 描述 : 应用名称 - */ - @Value("${spring.application.name}") - private String springApplicationName; - - /** - * 描述 : restTemplate - */ - @Autowired - private RestTemplate restTemplate; - - /** - * externalRestTemplate - */ - @Autowired - @Qualifier("externalRestTemplate") - private RestTemplate externalRestTemplate; - - /** - * 描述 : 配置 - */ - @Autowired - private RmsProperties rmsProperties; - - /** - * 远程服务调用 (不走ribbon) - * - * @param host 地址 - * @param port 端口 - * @param serviceCode 服务代码 - * @param headers headers - * @param input 输入参数 - * @param uriParam uri参数 - * @param responseType 返回类型 - * @param uriVariables rest参数 - * @param 输入类型 - * @param 输出类型 - * @return 服务结果 - */ - public ResponseEntity call(String host, int port, String serviceCode, HttpHeaders headers, I input, String uriParam, ParameterizedTypeReference responseType, Map uriVariables) { //NOSONAR - //客户端权限验证 - verification(serviceCode); - //获取服务元数据 - ServiceMeta serviceMeta = rmsProperties.getService().get(serviceCode); - //构建请求路径 - String path = (serviceMeta.getIsHttps() ? Constant.HTTPS : Constant.HTTP).concat(host).concat(":").concat(String.valueOf(port)).concat(serviceMeta.getUri()); - //获得请求方法 - String method = getRmsMethod(serviceCode); - //拼装路径参数 - if (StringUtils.isNotBlank(uriParam)) { - path += uriParam; - } - //构建请求头 - HttpHeaders httpHeaders = buildSystemTagHeaders(serviceCode); - //添加请求头 - if (MapUtils.isNotEmpty(headers)) { - httpHeaders.putAll(headers); - } - //构建请求消息体 - HttpEntity requestEntity = new HttpEntity<>(input, httpHeaders); - //请求并且返回 - log.debug("rms url : {} , method : {} ", path, method); - return externalRestTemplate.exchange(path, HttpMethod.resolve(method), requestEntity, responseType, uriVariables != null ? uriVariables : new HashMap()); - } - - /** - * 远程服务调用 (不走ribbon) - * - * @param host 地址 - * @param port 端口 - * @param serviceCode 服务代码 - * @param input 输入参数 - * @param uriParam uri参数 - * @param responseType 返回类型 - * @param uriVariables rest参数 - * @param 输入类型 - * @param 输出类型 - * @return 服务结果 - */ - public ResponseEntity call(String host, int port, String serviceCode, I input, String uriParam, ParameterizedTypeReference responseType, Map uriVariables) { - return this.call(host, port, serviceCode, null, input, uriParam, responseType, uriVariables); - } - - /** - * 描述 : 远程服务调用 - * - * @param serviceCode 服务代码 - * @param headers headers - * @param input 输入参数 - * @param uriParam uri参数 - * @param responseType 返回类型 - * @param uriVariables rest参数 - * @param 输入类型 - * @param 输出类型 - * @return 服务结果 - */ - public ResponseEntity call(String serviceCode, HttpHeaders headers, I input, String uriParam, ParameterizedTypeReference responseType, Map uriVariables) { - //客户端权限验证 - verification(serviceCode); - //构建请求路径 - String path = getRmsUrl(serviceCode); - //获得请求方法 - String method = getRmsMethod(serviceCode); - //拼装路径参数 - if (StringUtils.isNotBlank(uriParam)) { - path += uriParam; - } - //构建请求头 - HttpHeaders httpHeaders = buildSystemTagHeaders(serviceCode); - //添加请求头 - if (MapUtils.isNotEmpty(headers)) { - httpHeaders.putAll(headers); - } - //构建请求消息体 - HttpEntity requestEntity = new HttpEntity<>(input, httpHeaders); - //请求并且返回 - log.debug("rms url : {} , method : {} ", path, method); - return restTemplate.exchange(path, HttpMethod.resolve(method), requestEntity, responseType, uriVariables != null ? uriVariables : new HashMap()); - } - - /** - * 描述 : 远程服务调用 - * - * @param serviceCode 服务代码 - * @param input 输入参数 - * @param uriParam uri参数 - * @param responseType 返回类型 - * @param uriVariables rest参数 - * @param 输入类型 - * @param 输出类型 - * @return 服务结果 - */ - public ResponseEntity call(String serviceCode, I input, String uriParam, ParameterizedTypeReference responseType, Map uriVariables) { - return this.call(serviceCode, null, input, uriParam, responseType, uriVariables); - } - - /** - * 描述 : 构建请求头 - * - * @param serviceCode 服务代码 - * @return 请求头 - */ - private HttpHeaders buildSystemTagHeaders(String serviceCode) { - String secret = rmsProperties.getApplication().get(springApplicationName).getSecret(); - HttpHeaders headers = new HttpHeaders(); - headers.add(Constant.HEADER_RMS_APPLICATION_NAME_CODE, springApplicationName); - headers.add(Constant.HEADER_RMS_SIGN_CODE, Constant.sign(springApplicationName, secret)); - headers.add(Constant.HEADER_SERVICE_CODE_CODE, serviceCode); - return headers; - } - - /** - * 描述 : 客户端验证 - * - * @param serviceCode 服务代码 - */ - private void verification(String serviceCode) { - ApplicationMeta applicationMeta = rmsProperties.getApplication().get(springApplicationName); - if (!applicationMeta.getAll()) { - if (applicationMeta.getDisabled()) { - throw new PermissionException(springApplicationName + " is disabled"); - } - if (applicationMeta.getPurview().indexOf(serviceCode) == -1) { - throw new PermissionException("no access to this servoceCode : " + serviceCode); - } - } - } - - /** - * 描述 : 获得请求方法 - * - * @param serviceCode 服务代码 - * @return 请求方法 - */ - private String getRmsMethod(String serviceCode) { - return rmsProperties.getService().get(serviceCode).getMethod(); - } - - /** - * 描述 : 构造url; - * - * @param serviceCode 服务代码 - * @return url - */ - private String getRmsUrl(String serviceCode) { - //获取服务元数据 - ServiceMeta serviceMeta = rmsProperties.getService().get(serviceCode); - //构建请求路径 - StringBuilder url = new StringBuilder(serviceMeta.getIsHttps() ? Constant.HTTPS : Constant.HTTP); - url.append(rmsProperties.getApplication().get(serviceMeta.getOwner()).getServiceId()); - url.append(serviceMeta.getUri()); - return url.toString(); - } - -} +/** + * Rms.java + * Created at 2017-04-24 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.rms; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.itkk.udf.core.exception.PermissionException; +import org.itkk.udf.rms.meta.ApplicationMeta; +import org.itkk.udf.rms.meta.ServiceMeta; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; + +import java.util.HashMap; +import java.util.Map; + +/** + * 描述 : 远程服务 + * + * @author Administrator + */ +@Component +@Slf4j +public class Rms { + + /** + * 描述 : 应用名称 + */ + @Value("${spring.application.name}") + private String springApplicationName; + + /** + * 描述 : restTemplate + */ + @Autowired + private RestTemplate restTemplate; + + /** + * externalRestTemplate + */ + @Autowired + @Qualifier("externalRestTemplate") + private RestTemplate externalRestTemplate; + + /** + * 描述 : 配置 + */ + @Autowired + private RmsProperties rmsProperties; + + /** + * 远程服务调用 (不走ribbon) + * + * @param host 地址 + * @param port 端口 + * @param serviceCode 服务代码 + * @param headers headers + * @param input 输入参数 + * @param uriParam uri参数 + * @param responseType 返回类型 + * @param uriVariables rest参数 + * @param 输入类型 + * @param 输出类型 + * @return 服务结果 + */ + public ResponseEntity call(String host, int port, String serviceCode, HttpHeaders headers, I input, String uriParam, ParameterizedTypeReference responseType, Map uriVariables) { //NOSONAR + //客户端权限验证 + verification(serviceCode); + //获取服务元数据 + ServiceMeta serviceMeta = rmsProperties.getService().get(serviceCode); + //构建请求路径 + String path = (serviceMeta.getIsHttps() ? Constant.HTTPS : Constant.HTTP).concat(host).concat(":").concat(String.valueOf(port)).concat(serviceMeta.getUri()); + //获得请求方法 + String method = getRmsMethod(serviceCode); + //拼装路径参数 + if (StringUtils.isNotBlank(uriParam)) { + path += uriParam; + } + //构建请求头 + HttpHeaders httpHeaders = buildSystemTagHeaders(serviceCode); + //添加请求头 + if (MapUtils.isNotEmpty(headers)) { + httpHeaders.putAll(headers); + } + //构建请求消息体 + HttpEntity requestEntity = new HttpEntity<>(input, httpHeaders); + //请求并且返回 + log.debug("rms url : {} , method : {} ", path, method); + return externalRestTemplate.exchange(path, HttpMethod.resolve(method), requestEntity, responseType, uriVariables != null ? uriVariables : new HashMap()); + } + + /** + * 远程服务调用 (不走ribbon) + * + * @param host 地址 + * @param port 端口 + * @param serviceCode 服务代码 + * @param input 输入参数 + * @param uriParam uri参数 + * @param responseType 返回类型 + * @param uriVariables rest参数 + * @param 输入类型 + * @param 输出类型 + * @return 服务结果 + */ + public ResponseEntity call(String host, int port, String serviceCode, I input, String uriParam, ParameterizedTypeReference responseType, Map uriVariables) { + return this.call(host, port, serviceCode, null, input, uriParam, responseType, uriVariables); + } + + /** + * 描述 : 远程服务调用 + * + * @param serviceCode 服务代码 + * @param headers headers + * @param input 输入参数 + * @param uriParam uri参数 + * @param responseType 返回类型 + * @param uriVariables rest参数 + * @param 输入类型 + * @param 输出类型 + * @return 服务结果 + */ + public ResponseEntity call(String serviceCode, HttpHeaders headers, I input, String uriParam, ParameterizedTypeReference responseType, Map uriVariables) { + //客户端权限验证 + verification(serviceCode); + //构建请求路径 + String path = getRmsUrl(serviceCode); + //获得请求方法 + String method = getRmsMethod(serviceCode); + //拼装路径参数 + if (StringUtils.isNotBlank(uriParam)) { + path += uriParam; + } + //构建请求头 + HttpHeaders httpHeaders = buildSystemTagHeaders(serviceCode); + //添加请求头 + if (MapUtils.isNotEmpty(headers)) { + httpHeaders.putAll(headers); + } + //构建请求消息体 + HttpEntity requestEntity = new HttpEntity<>(input, httpHeaders); + //请求并且返回 + log.debug("rms url : {} , method : {} ", path, method); + return restTemplate.exchange(path, HttpMethod.resolve(method), requestEntity, responseType, uriVariables != null ? uriVariables : new HashMap()); + } + + /** + * 描述 : 远程服务调用 + * + * @param serviceCode 服务代码 + * @param input 输入参数 + * @param uriParam uri参数 + * @param responseType 返回类型 + * @param uriVariables rest参数 + * @param 输入类型 + * @param 输出类型 + * @return 服务结果 + */ + public ResponseEntity call(String serviceCode, I input, String uriParam, ParameterizedTypeReference responseType, Map uriVariables) { + return this.call(serviceCode, null, input, uriParam, responseType, uriVariables); + } + + /** + * 描述 : 构建请求头 + * + * @param serviceCode 服务代码 + * @return 请求头 + */ + private HttpHeaders buildSystemTagHeaders(String serviceCode) { + String secret = rmsProperties.getApplication().get(springApplicationName).getSecret(); + HttpHeaders headers = new HttpHeaders(); + headers.add(Constant.HEADER_RMS_APPLICATION_NAME_CODE, springApplicationName); + headers.add(Constant.HEADER_RMS_SIGN_CODE, Constant.sign(springApplicationName, secret)); + headers.add(Constant.HEADER_SERVICE_CODE_CODE, serviceCode); + return headers; + } + + /** + * 描述 : 客户端验证 + * + * @param serviceCode 服务代码 + */ + private void verification(String serviceCode) { + ApplicationMeta applicationMeta = rmsProperties.getApplication().get(springApplicationName); + if (!applicationMeta.getAll()) { + if (applicationMeta.getDisabled()) { + throw new PermissionException(springApplicationName + " is disabled"); + } + if (applicationMeta.getPurview().indexOf(serviceCode) == -1) { + throw new PermissionException("no access to this servoceCode : " + serviceCode); + } + } + } + + /** + * 描述 : 获得请求方法 + * + * @param serviceCode 服务代码 + * @return 请求方法 + */ + private String getRmsMethod(String serviceCode) { + return rmsProperties.getService().get(serviceCode).getMethod(); + } + + /** + * 描述 : 构造url; + * + * @param serviceCode 服务代码 + * @return url + */ + private String getRmsUrl(String serviceCode) { + //获取服务元数据 + ServiceMeta serviceMeta = rmsProperties.getService().get(serviceCode); + //构建请求路径 + StringBuilder url = new StringBuilder(serviceMeta.getIsHttps() ? Constant.HTTPS : Constant.HTTP); + url.append(rmsProperties.getApplication().get(serviceMeta.getOwner()).getServiceId()); + url.append(serviceMeta.getUri()); + return url.toString(); + } + +} diff --git a/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsAuthHandlerInterceptor.java b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsAuthHandlerInterceptor.java similarity index 97% rename from udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsAuthHandlerInterceptor.java rename to udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsAuthHandlerInterceptor.java index 001a694..099188b 100644 --- a/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsAuthHandlerInterceptor.java +++ b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsAuthHandlerInterceptor.java @@ -1,139 +1,139 @@ -/** - * SystemTagAuthHandlerInterceptor.java - * Created at 2016-11-16 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.rms; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.itkk.udf.core.exception.AuthException; -import org.itkk.udf.core.exception.PermissionException; -import org.itkk.udf.rms.meta.ApplicationMeta; -import org.itkk.udf.rms.meta.ServiceMeta; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.env.Environment; -import org.springframework.http.HttpMethod; -import org.springframework.web.servlet.HandlerInterceptor; -import org.springframework.web.servlet.HandlerMapping; -import org.springframework.web.servlet.ModelAndView; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * 描述 : SystemTagAuthHandlerInterceptor - * - * @author wangkang - */ -@Slf4j -public class RmsAuthHandlerInterceptor implements HandlerInterceptor { - - /** - * 描述 : 环境标识 - */ - private static final String DEV_PROFILES = "dev"; - - /** - * 描述 : 配置 - */ - @Autowired - private RmsProperties rmsProperties; - - /** - * 描述 : 环境变量 - */ - @Autowired - private Environment env; - - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { //NOSONAR - //获取请求方法 - String method = request.getMethod(); - //如果是options请求,则直接返回true (处理跨域情况) - if (HttpMethod.OPTIONS.equals(HttpMethod.resolve(method))) { - return true; - } - //获得当前环境 - String profilesActive = env.getProperty("spring.profiles.active"); - //获取请求地址 - String url = request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE).toString(); - //获取认证信息(应用名称) - String rmsApplicationName = request.getHeader(Constant.HEADER_RMS_APPLICATION_NAME_CODE); - if (StringUtils.isBlank(rmsApplicationName)) { - rmsApplicationName = request.getParameter(Constant.HEADER_RMS_APPLICATION_NAME_CODE); - } - //获取认证信息(sign) - String rmsSign = request.getHeader(Constant.HEADER_RMS_SIGN_CODE); - if (StringUtils.isBlank(rmsSign)) { - rmsSign = request.getParameter(Constant.HEADER_RMS_SIGN_CODE); - } - //获取认证信息(服务代码) - String rmsServiceCode = request.getHeader(Constant.HEADER_SERVICE_CODE_CODE); - if (StringUtils.isBlank(rmsServiceCode)) { - rmsServiceCode = request.getParameter(Constant.HEADER_SERVICE_CODE_CODE); - } - //日志 - log.debug("profiles.active:{},rmsApplicationName:{},rmsSign:{},rmsServiceCode:{},url:{},method:{}", profilesActive, rmsApplicationName, rmsSign, rmsServiceCode, url, method); - //判断systemTag是否有效 - if (!this.rmsProperties.getApplication().containsKey(rmsApplicationName)) { - throw new AuthException("unrecognized systemTag:" + rmsApplicationName); - } - //获得应用元数据 - ApplicationMeta applicationMeta = rmsProperties.getApplication().get(rmsApplicationName); - //判断环境(开发环境无需校验sign) - if (!DEV_PROFILES.equals(profilesActive)) { - //判断是否缺少认证信息 - if (StringUtils.isBlank(rmsSign)) { - throw new AuthException("missing required authentication parameters (rmsSign)"); - } - //获得secret - String secret = applicationMeta.getSecret(); - //计算sign - String sign = Constant.sign(rmsApplicationName, secret); - //比较sign - if (!rmsSign.equals(sign)) { - throw new AuthException("sign Validation failed"); - } - } - //判断是否有调用所有服务的权限 - if (!applicationMeta.getAll()) { - //判断是否有服务代码 - if (StringUtils.isBlank(rmsServiceCode)) { - throw new AuthException("missing required authentication parameters (rmsServiceCode)"); - } - //判断是否禁止调用所有服务权限 - if (applicationMeta.getDisabled()) { - throw new PermissionException(rmsApplicationName + " is disabled"); - } - //判断是否有调用该服务的权限 - if (applicationMeta.getPurview().indexOf(rmsServiceCode) == -1) { - throw new PermissionException("no access to this servoceCode : " + rmsServiceCode); - } - //判断服务元数据是否存在 - if (!rmsProperties.getService().containsKey(rmsServiceCode)) { - throw new PermissionException("service code not exist"); - } - //获得服务元数据 - ServiceMeta serviceMeta = rmsProperties.getService().get(rmsServiceCode); - //比较url和method的有效性 - if (!serviceMeta.getUri().equals(url) || !serviceMeta.getMethod().equals(method)) { - throw new PermissionException("url and method verification error"); - } - } - //返回 - return true; - } - - @Override - public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) { - log.debug("SystemTagAuthHandlerInterceptor.postHandle"); - } - - @Override - public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { - log.debug("SystemTagAuthHandlerInterceptor.afterCompletion"); - } - -} +/** + * SystemTagAuthHandlerInterceptor.java + * Created at 2016-11-16 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.rms; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.itkk.udf.core.exception.AuthException; +import org.itkk.udf.core.exception.PermissionException; +import org.itkk.udf.rms.meta.ApplicationMeta; +import org.itkk.udf.rms.meta.ServiceMeta; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; +import org.springframework.http.HttpMethod; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.HandlerMapping; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * 描述 : SystemTagAuthHandlerInterceptor + * + * @author wangkang + */ +@Slf4j +public class RmsAuthHandlerInterceptor implements HandlerInterceptor { + + /** + * 描述 : 环境标识 + */ + private static final String DEV_PROFILES = "dev"; + + /** + * 描述 : 配置 + */ + @Autowired + private RmsProperties rmsProperties; + + /** + * 描述 : 环境变量 + */ + @Autowired + private Environment env; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { //NOSONAR + //获取请求方法 + String method = request.getMethod(); + //如果是options请求,则直接返回true (处理跨域情况) + if (HttpMethod.OPTIONS.equals(HttpMethod.resolve(method))) { + return true; + } + //获得当前环境 + String profilesActive = env.getProperty("spring.profiles.active"); + //获取请求地址 + String url = request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE).toString(); + //获取认证信息(应用名称) + String rmsApplicationName = request.getHeader(Constant.HEADER_RMS_APPLICATION_NAME_CODE); + if (StringUtils.isBlank(rmsApplicationName)) { + rmsApplicationName = request.getParameter(Constant.HEADER_RMS_APPLICATION_NAME_CODE); + } + //获取认证信息(sign) + String rmsSign = request.getHeader(Constant.HEADER_RMS_SIGN_CODE); + if (StringUtils.isBlank(rmsSign)) { + rmsSign = request.getParameter(Constant.HEADER_RMS_SIGN_CODE); + } + //获取认证信息(服务代码) + String rmsServiceCode = request.getHeader(Constant.HEADER_SERVICE_CODE_CODE); + if (StringUtils.isBlank(rmsServiceCode)) { + rmsServiceCode = request.getParameter(Constant.HEADER_SERVICE_CODE_CODE); + } + //日志 + log.debug("profiles.active:{},rmsApplicationName:{},rmsSign:{},rmsServiceCode:{},url:{},method:{}", profilesActive, rmsApplicationName, rmsSign, rmsServiceCode, url, method); + //判断systemTag是否有效 + if (!this.rmsProperties.getApplication().containsKey(rmsApplicationName)) { + throw new AuthException("unrecognized systemTag:" + rmsApplicationName); + } + //获得应用元数据 + ApplicationMeta applicationMeta = rmsProperties.getApplication().get(rmsApplicationName); + //判断环境(开发环境无需校验sign) + if (!DEV_PROFILES.equals(profilesActive)) { + //判断是否缺少认证信息 + if (StringUtils.isBlank(rmsSign)) { + throw new AuthException("missing required authentication parameters (rmsSign)"); + } + //获得secret + String secret = applicationMeta.getSecret(); + //计算sign + String sign = Constant.sign(rmsApplicationName, secret); + //比较sign + if (!rmsSign.equals(sign)) { + throw new AuthException("sign Validation failed"); + } + } + //判断是否有调用所有服务的权限 + if (!applicationMeta.getAll()) { + //判断是否有服务代码 + if (StringUtils.isBlank(rmsServiceCode)) { + throw new AuthException("missing required authentication parameters (rmsServiceCode)"); + } + //判断是否禁止调用所有服务权限 + if (applicationMeta.getDisabled()) { + throw new PermissionException(rmsApplicationName + " is disabled"); + } + //判断是否有调用该服务的权限 + if (applicationMeta.getPurview().indexOf(rmsServiceCode) == -1) { + throw new PermissionException("no access to this servoceCode : " + rmsServiceCode); + } + //判断服务元数据是否存在 + if (!rmsProperties.getService().containsKey(rmsServiceCode)) { + throw new PermissionException("service code not exist"); + } + //获得服务元数据 + ServiceMeta serviceMeta = rmsProperties.getService().get(rmsServiceCode); + //比较url和method的有效性 + if (!serviceMeta.getUri().equals(url) || !serviceMeta.getMethod().equals(method)) { + throw new PermissionException("url and method verification error"); + } + } + //返回 + return true; + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) { + log.debug("SystemTagAuthHandlerInterceptor.postHandle"); + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { + log.debug("SystemTagAuthHandlerInterceptor.afterCompletion"); + } + +} diff --git a/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsConfig.java b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsConfig.java similarity index 96% rename from udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsConfig.java rename to udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsConfig.java index 5a3fffa..4f4bb05 100644 --- a/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsConfig.java +++ b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsConfig.java @@ -1,84 +1,84 @@ -/** - * Config.java - * Created at 2016-11-19 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.rms; - -import lombok.Data; -import org.itkk.udf.core.exception.handle.RmsResponseErrorHandler; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.http.client.ClientHttpRequestFactory; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.client.RestTemplate; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; - -import javax.validation.constraints.NotNull; - -/** - * 描述 : Config - * - * @author Administrator - */ -@Configuration -@ConfigurationProperties(prefix = "org.itkk.rms.config") -@Validated -@Data -public class RmsConfig { - - /** - * 描述 : rms扫描路径 - */ - @NotNull - private String rmsPathPatterns; - - /** - * 描述 : restTemplate - * - * @param requestFactory requestFactory - * @return restTemplate - */ - @Bean - @LoadBalanced - @Primary - public RestTemplate restTemplate(ClientHttpRequestFactory requestFactory) { - RestTemplate restTemplate = new RestTemplate(requestFactory); - restTemplate.setErrorHandler(new RmsResponseErrorHandler()); - return restTemplate; - } - - /** - * 描述 : rmsAuthConfigurer - * - * @return WebMvcConfigurer - */ - @Bean - public WebMvcConfigurer rmsAuthConfigurer() { //NOSONAR - return new WebMvcConfigurerAdapter() { - @Override - public void addInterceptors(InterceptorRegistry registry) { - String[] rmsPathPatternsArray = rmsPathPatterns.split(","); - registry.addInterceptor(rmsAuthHandlerInterceptor()).addPathPatterns(rmsPathPatternsArray); - super.addInterceptors(registry); - } - }; - } - - /** - * 描述 : RmsAuthHandlerInterceptor - * - * @return rmsAuthHandlerInterceptor - */ - @Bean - public RmsAuthHandlerInterceptor rmsAuthHandlerInterceptor() { - return new RmsAuthHandlerInterceptor(); - } - -} +/** + * Config.java + * Created at 2016-11-19 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.rms; + +import lombok.Data; +import org.itkk.udf.core.exception.handle.RmsResponseErrorHandler; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.client.loadbalancer.LoadBalanced; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +import javax.validation.constraints.NotNull; + +/** + * 描述 : Config + * + * @author Administrator + */ +@Configuration +@ConfigurationProperties(prefix = "org.itkk.rms.config") +@Validated +@Data +public class RmsConfig { + + /** + * 描述 : rms扫描路径 + */ + @NotNull + private String rmsPathPatterns; + + /** + * 描述 : restTemplate + * + * @param requestFactory requestFactory + * @return restTemplate + */ + @Bean + @LoadBalanced + @Primary + public RestTemplate restTemplate(ClientHttpRequestFactory requestFactory) { + RestTemplate restTemplate = new RestTemplate(requestFactory); + restTemplate.setErrorHandler(new RmsResponseErrorHandler()); + return restTemplate; + } + + /** + * 描述 : rmsAuthConfigurer + * + * @return WebMvcConfigurer + */ + @Bean + public WebMvcConfigurer rmsAuthConfigurer() { //NOSONAR + return new WebMvcConfigurerAdapter() { + @Override + public void addInterceptors(InterceptorRegistry registry) { + String[] rmsPathPatternsArray = rmsPathPatterns.split(","); + registry.addInterceptor(rmsAuthHandlerInterceptor()).addPathPatterns(rmsPathPatternsArray); + super.addInterceptors(registry); + } + }; + } + + /** + * 描述 : RmsAuthHandlerInterceptor + * + * @return rmsAuthHandlerInterceptor + */ + @Bean + public RmsAuthHandlerInterceptor rmsAuthHandlerInterceptor() { + return new RmsAuthHandlerInterceptor(); + } + +} diff --git a/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsProperties.java b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsProperties.java similarity index 95% rename from udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsProperties.java rename to udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsProperties.java index 85bd402..f1620bc 100644 --- a/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsProperties.java +++ b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsProperties.java @@ -1,43 +1,43 @@ -/** - * Config.java - * Created at 2016-11-19 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.rms; - -import lombok.Data; -import org.itkk.udf.rms.meta.ApplicationMeta; -import org.itkk.udf.rms.meta.ServiceMeta; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.io.Serializable; -import java.util.Map; - -/** - * 描述 : Config - * - * @author Administrator - */ -@Component -@ConfigurationProperties(prefix = "org.itkk.rms.properties") -@Data -public class RmsProperties implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 应用清单(应用名称 : 应用地址) - */ - private Map application; - - /** - * 描述 : 服务路径(服务编号 : 服务元数据) - */ - private Map service; - -} +/** + * Config.java + * Created at 2016-11-19 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.rms; + +import lombok.Data; +import org.itkk.udf.rms.meta.ApplicationMeta; +import org.itkk.udf.rms.meta.ServiceMeta; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +import java.util.Map; + +/** + * 描述 : Config + * + * @author Administrator + */ +@Component +@ConfigurationProperties(prefix = "org.itkk.rms.properties") +@Data +public class RmsProperties implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 应用清单(应用名称 : 应用地址) + */ + private Map application; + + /** + * 描述 : 服务路径(服务编号 : 服务元数据) + */ + private Map service; + +} diff --git a/udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ApplicationMeta.java b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ApplicationMeta.java similarity index 94% rename from udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ApplicationMeta.java rename to udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ApplicationMeta.java index 6b1ece1..871dc1a 100644 --- a/udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ApplicationMeta.java +++ b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ApplicationMeta.java @@ -1,56 +1,56 @@ -/** - * ApplicationMeta.java - * Created at 2016-12-22 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.rms.meta; - -import lombok.Data; - -import java.io.Serializable; - -/** - * 描述 : ApplicationMeta - * - * @author Administrator - */ -@Data -public class ApplicationMeta implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 服务ID - */ - private String serviceId; - - /** - * 描述 : 私钥 - */ - private String secret; - - /** - * 描述 : 权限 - */ - private String purview; - - /** - * 描述 : 所有服务的调用权限(优先判定) - */ - private Boolean all = false; - - /** - * 描述 : 禁止服务调用 - */ - private Boolean disabled = false; - - /** - * 描述 : 描述 - */ - private String description; - -} +/** + * ApplicationMeta.java + * Created at 2016-12-22 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.rms.meta; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述 : ApplicationMeta + * + * @author Administrator + */ +@Data +public class ApplicationMeta implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 服务ID + */ + private String serviceId; + + /** + * 描述 : 私钥 + */ + private String secret; + + /** + * 描述 : 权限 + */ + private String purview; + + /** + * 描述 : 所有服务的调用权限(优先判定) + */ + private Boolean all = false; + + /** + * 描述 : 禁止服务调用 + */ + private Boolean disabled = false; + + /** + * 描述 : 描述 + */ + private String description; + +} diff --git a/udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ServiceMeta.java b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ServiceMeta.java similarity index 93% rename from udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ServiceMeta.java rename to udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ServiceMeta.java index 756c949..0ed4d46 100644 --- a/udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ServiceMeta.java +++ b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/meta/ServiceMeta.java @@ -1,51 +1,51 @@ -/** - * ServiceMeta.java - * Created at 2016-12-22 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.rms.meta; - -import lombok.Data; - -import java.io.Serializable; - -/** - * 描述 : ServiceMeta - * - * @author Administrator - */ -@Data -public class ServiceMeta implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 应用名称 - */ - private String owner; - - /** - * 描述 : 地址 - */ - private String uri; - - /** - * 描述 : 服务方法 - */ - private String method; - - /** - * 描述 : 是否HTTPS - */ - private Boolean isHttps = false; - - /** - * 描述 : 描述 - */ - private String description; - -} +/** + * ServiceMeta.java + * Created at 2016-12-22 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.rms.meta; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述 : ServiceMeta + * + * @author Administrator + */ +@Data +public class ServiceMeta implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 应用名称 + */ + private String owner; + + /** + * 描述 : 地址 + */ + private String uri; + + /** + * 描述 : 服务方法 + */ + private String method; + + /** + * 描述 : 是否HTTPS + */ + private Boolean isHttps = false; + + /** + * 描述 : 描述 + */ + private String description; + +} diff --git a/udf-starter-rms/src/main/java/org/itkk/udf/rms/web/RmsController.java b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/web/RmsController.java similarity index 96% rename from udf-starter-rms/src/main/java/org/itkk/udf/rms/web/RmsController.java rename to udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/web/RmsController.java index 206f547..52073e2 100644 --- a/udf-starter-rms/src/main/java/org/itkk/udf/rms/web/RmsController.java +++ b/udf-stater/udf-starter-rms/src/main/java/org/itkk/udf/rms/web/RmsController.java @@ -1,63 +1,63 @@ -/** - * RmsController.java - * Created at 2017-05-25 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.rms.web; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.rms.RmsConfig; -import org.itkk.udf.rms.RmsProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -/** - * 描述 : RmsController - * - * @author Administrator - */ -@Api(value = "rest服务", consumes = "application/json", produces = "application/json", protocols = "http") -@RestController -@RequestMapping("service/rms") -public class RmsController { - - /** - * 描述 : rmsConfig - */ - @Autowired - private RmsConfig rmsConfig; - - /** - * 描述 : rmsProperties - */ - @Autowired(required = false) - private RmsProperties rmsProperties; - - /** - * 描述 : 返回rms扫描路径 - * - * @return rms扫描路径 - */ - @ApiOperation(value = "RMS_1", notes = "返回rms扫描路径") - @RequestMapping(value = "path/pattern", method = RequestMethod.GET) - public RestResponse getPathPatterns() { - return new RestResponse<>(rmsConfig.getRmsPathPatterns()); - } - - /** - * 描述 : 获得rms配置详情 - * - * @return rms配置详情 - */ - @ApiOperation(value = "RMS_2", notes = "获得rms配置详情") - @RequestMapping(value = "properties", method = RequestMethod.GET) - public RestResponse getProperties() { - return new RestResponse<>(rmsProperties); - } - -} +/** + * RmsController.java + * Created at 2017-05-25 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.rms.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.rms.RmsConfig; +import org.itkk.udf.rms.RmsProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +/** + * 描述 : RmsController + * + * @author Administrator + */ +@Api(value = "rest服务", consumes = "application/json", produces = "application/json", protocols = "http") +@RestController +@RequestMapping("service/rms") +public class RmsController { + + /** + * 描述 : rmsConfig + */ + @Autowired + private RmsConfig rmsConfig; + + /** + * 描述 : rmsProperties + */ + @Autowired(required = false) + private RmsProperties rmsProperties; + + /** + * 描述 : 返回rms扫描路径 + * + * @return rms扫描路径 + */ + @ApiOperation(value = "RMS_1", notes = "返回rms扫描路径") + @RequestMapping(value = "path/pattern", method = RequestMethod.GET) + public RestResponse getPathPatterns() { + return new RestResponse<>(rmsConfig.getRmsPathPatterns()); + } + + /** + * 描述 : 获得rms配置详情 + * + * @return rms配置详情 + */ + @ApiOperation(value = "RMS_2", notes = "获得rms配置详情") + @RequestMapping(value = "properties", method = RequestMethod.GET) + public RestResponse getProperties() { + return new RestResponse<>(rmsProperties); + } + +} diff --git a/udf-starter-scheduler-client/pom.xml b/udf-stater/udf-starter-scheduler-client/pom.xml similarity index 100% rename from udf-starter-scheduler-client/pom.xml rename to udf-stater/udf-starter-scheduler-client/pom.xml diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/RmsJobStats.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/RmsJobStats.java similarity index 93% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/RmsJobStats.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/RmsJobStats.java index 3dc5d8f..b739697 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/RmsJobStats.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/RmsJobStats.java @@ -1,60 +1,60 @@ -/** - * RmsJobStats.java - * Created at 2016-09-27 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.client; - -/** - * 描述 : RmsJobStats - * - * @author wangkang - */ -public enum RmsJobStats { - /** - * 描述 : 正在执行 - */ - EXECUTING(1), - /** - * 描述 : 完成 - */ - COMPLETE(2), - /** - * 描述 : 错误 - */ - ERROR(-1), - /** - * 描述 : 跳过 - */ - SKIP(-2); - - /** - *

- * Field value: 参数值 - *

- */ - private Integer value; - - /** - *

- * Description: 构造函数 - *

- * - * @param value 构造函数 - */ - RmsJobStats(Integer value) { - this.value = value; - } - - /** - *

- * Description: 放回int值 - *

- * - * @return value 放回int值 - */ - public Integer value() { - return this.value; - } -} +/** + * RmsJobStats.java + * Created at 2016-09-27 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.client; + +/** + * 描述 : RmsJobStats + * + * @author wangkang + */ +public enum RmsJobStats { + /** + * 描述 : 正在执行 + */ + EXECUTING(1), + /** + * 描述 : 完成 + */ + COMPLETE(2), + /** + * 描述 : 错误 + */ + ERROR(-1), + /** + * 描述 : 跳过 + */ + SKIP(-2); + + /** + *

+ * Field value: 参数值 + *

+ */ + private Integer value; + + /** + *

+ * Description: 构造函数 + *

+ * + * @param value 构造函数 + */ + RmsJobStats(Integer value) { + this.value = value; + } + + /** + *

+ * Description: 放回int值 + *

+ * + * @return value 放回int值 + */ + public Integer value() { + return this.value; + } +} diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchClientHandle.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchClientHandle.java similarity index 96% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchClientHandle.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchClientHandle.java index 3445978..ab8e08e 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchClientHandle.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchClientHandle.java @@ -1,119 +1,119 @@ -/** - * SchClientService.java - * Created at 2017-06-12 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.client; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.exception.ExceptionUtils; -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.core.exception.SystemRuntimeException; -import org.itkk.udf.rms.Rms; -import org.itkk.udf.scheduler.client.domain.RmsJobParam; -import org.itkk.udf.scheduler.client.domain.RmsJobResult; -import org.itkk.udf.scheduler.client.executor.AbstractExecutor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.core.ParameterizedTypeReference; -import org.springframework.retry.annotation.Recover; -import org.springframework.retry.annotation.Retryable; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Component; - -import java.util.Date; - -/** - * 描述 : SchClientService - * - * @author Administrator - */ -@Component -@Slf4j -public class SchClientHandle implements ApplicationContextAware { - - /** - * 描述 : spring上下文 - */ - private ApplicationContext applicationContext; - - /** - * 描述 : rms - */ - @Autowired - private Rms rms; - - /** - * 描述 : 异步执行 - * - * @param param 参数 - * @param result 结果 - */ - @Async - public void asyncHandle(RmsJobParam param, RmsJobResult result) { - try { - //执行 - this.handle(param); - result.setClientEndExecuteTime(new Date()); - result.setStats(RmsJobStats.COMPLETE.value()); - //回调 - this.callback(result); - } catch (Exception e) { - result.setClientEndExecuteTime(new Date()); - result.setStats(RmsJobStats.ERROR.value()); - result.setErrorMsg(ExceptionUtils.getStackTrace(e)); - //回调 - this.callback(result); - //抛出异常 - throw new SchException(e); - } - - } - - /** - * 描述 : 同步执行 - * - * @param param 参数 - */ - public void handle(RmsJobParam param) { - //判断bean是否存在 - if (!applicationContext.containsBean(param.getBeanName())) { - throw new SchException(param.getBeanName() + " not definition"); - } - //获得bean - AbstractExecutor bean = applicationContext.getBean(param.getBeanName(), AbstractExecutor.class); - //执行 - bean.handle(param); - } - - /** - * 描述 : 回调(重处理) - * - * @param result result - */ - @Retryable(maxAttempts = 3, value = Exception.class) - private void callback(RmsJobResult result) { - log.info("try to callback"); - final String serviceCode = "SCH_CLIENT_CALLBACK_1"; - rms.call(serviceCode, result, null, new ParameterizedTypeReference>() { - }, null); - } - - /** - * 描述 : 重试失败后执行的方法 - * - * @param e e - */ - @Recover - public void recover(Exception e) { - throw new SystemRuntimeException(e); - } - - @Override - public void setApplicationContext(ApplicationContext arg0) { - applicationContext = arg0; - } - -} +/** + * SchClientService.java + * Created at 2017-06-12 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.client; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.core.exception.SystemRuntimeException; +import org.itkk.udf.rms.Rms; +import org.itkk.udf.scheduler.client.domain.RmsJobParam; +import org.itkk.udf.scheduler.client.domain.RmsJobResult; +import org.itkk.udf.scheduler.client.executor.AbstractExecutor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.retry.annotation.Recover; +import org.springframework.retry.annotation.Retryable; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * 描述 : SchClientService + * + * @author Administrator + */ +@Component +@Slf4j +public class SchClientHandle implements ApplicationContextAware { + + /** + * 描述 : spring上下文 + */ + private ApplicationContext applicationContext; + + /** + * 描述 : rms + */ + @Autowired + private Rms rms; + + /** + * 描述 : 异步执行 + * + * @param param 参数 + * @param result 结果 + */ + @Async + public void asyncHandle(RmsJobParam param, RmsJobResult result) { + try { + //执行 + this.handle(param); + result.setClientEndExecuteTime(new Date()); + result.setStats(RmsJobStats.COMPLETE.value()); + //回调 + this.callback(result); + } catch (Exception e) { + result.setClientEndExecuteTime(new Date()); + result.setStats(RmsJobStats.ERROR.value()); + result.setErrorMsg(ExceptionUtils.getStackTrace(e)); + //回调 + this.callback(result); + //抛出异常 + throw new SchException(e); + } + + } + + /** + * 描述 : 同步执行 + * + * @param param 参数 + */ + public void handle(RmsJobParam param) { + //判断bean是否存在 + if (!applicationContext.containsBean(param.getBeanName())) { + throw new SchException(param.getBeanName() + " not definition"); + } + //获得bean + AbstractExecutor bean = applicationContext.getBean(param.getBeanName(), AbstractExecutor.class); + //执行 + bean.handle(param); + } + + /** + * 描述 : 回调(重处理) + * + * @param result result + */ + @Retryable(maxAttempts = 3, value = Exception.class) + private void callback(RmsJobResult result) { + log.info("try to callback"); + final String serviceCode = "SCH_CLIENT_CALLBACK_1"; + rms.call(serviceCode, result, null, new ParameterizedTypeReference>() { + }, null); + } + + /** + * 描述 : 重试失败后执行的方法 + * + * @param e e + */ + @Recover + public void recover(Exception e) { + throw new SystemRuntimeException(e); + } + + @Override + public void setApplicationContext(ApplicationContext arg0) { + applicationContext = arg0; + } + +} diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchException.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchException.java similarity index 94% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchException.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchException.java index d7d7f02..73648ad 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchException.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/SchException.java @@ -1,66 +1,66 @@ -/** - * SchedulerException.java - * Created at 2016-03-01 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.client; - -/** - *

- * ClassName: SchedulerException - *

- *

- * Description: 调度异常 - *

- *

- * Author: wangkang - *

- *

- * Date: 2016年3月23日 - *

- */ -public class SchException extends RuntimeException { - - /** - *

- * Field serialVersionUID: 序列号 - *

- */ - private static final long serialVersionUID = 1L; - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - */ - public SchException(String message) { - super(message); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param cause 堆栈 - */ - public SchException(Throwable cause) { - super(cause); - } - - /** - *

- * Description: 构造函数 - *

- * - * @param message 异常信息 - * @param cause 堆栈 - */ - public SchException(String message, Throwable cause) { - super(message, cause); - } - -} +/** + * SchedulerException.java + * Created at 2016-03-01 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.client; + +/** + *

+ * ClassName: SchedulerException + *

+ *

+ * Description: 调度异常 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2016年3月23日 + *

+ */ +public class SchException extends RuntimeException { + + /** + *

+ * Field serialVersionUID: 序列号 + *

+ */ + private static final long serialVersionUID = 1L; + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + */ + public SchException(String message) { + super(message); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param cause 堆栈 + */ + public SchException(Throwable cause) { + super(cause); + } + + /** + *

+ * Description: 构造函数 + *

+ * + * @param message 异常信息 + * @param cause 堆栈 + */ + public SchException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerDataMapKey.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerDataMapKey.java similarity index 94% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerDataMapKey.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerDataMapKey.java index c02f75f..6316d3a 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerDataMapKey.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerDataMapKey.java @@ -1,68 +1,68 @@ -/** - * TriggerDataMapKey.java - * Created at 2016-09-27 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.client; - -/** - * 描述 : TriggerDataMapKey - * - * @author wangkang - */ -public enum TriggerDataMapKey { - /** - * 描述 : 父触发ID - */ - PARENT_TRIGGER_ID("parentTriggerId"), - /** - * 描述 : 触发ID - */ - TRIGGER_ID("triggerId"), - /** - * 描述 : 触发类型 - */ - TRIGGER_TYPE("triggerType"), - /** - * 描述 : 服务代码 - */ - SERVICE_CODE("serviceCode"), - /** - * 描述 : bean名称 - */ - BEAN_NAME("beanName"), - /** - * 描述 : 是否异步 - */ - ASYNC("async"); - - /** - *

- * Field value: 参数值 - *

- */ - private String value; - - /** - *

- * Description: 构造函数 - *

- * - * @param value 构造函数 - */ - TriggerDataMapKey(String value) { - this.value = value; - } - - /** - *

- * Description: 放回int值 - *

- * - * @return value 放回int值 - */ - public String value() { - return this.value; - } -} +/** + * TriggerDataMapKey.java + * Created at 2016-09-27 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.client; + +/** + * 描述 : TriggerDataMapKey + * + * @author wangkang + */ +public enum TriggerDataMapKey { + /** + * 描述 : 父触发ID + */ + PARENT_TRIGGER_ID("parentTriggerId"), + /** + * 描述 : 触发ID + */ + TRIGGER_ID("triggerId"), + /** + * 描述 : 触发类型 + */ + TRIGGER_TYPE("triggerType"), + /** + * 描述 : 服务代码 + */ + SERVICE_CODE("serviceCode"), + /** + * 描述 : bean名称 + */ + BEAN_NAME("beanName"), + /** + * 描述 : 是否异步 + */ + ASYNC("async"); + + /** + *

+ * Field value: 参数值 + *

+ */ + private String value; + + /** + *

+ * Description: 构造函数 + *

+ * + * @param value 构造函数 + */ + TriggerDataMapKey(String value) { + this.value = value; + } + + /** + *

+ * Description: 放回int值 + *

+ * + * @return value 放回int值 + */ + public String value() { + return this.value; + } +} diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerType.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerType.java similarity index 94% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerType.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerType.java index 76d7306..2f42bcf 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerType.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/TriggerType.java @@ -1,56 +1,56 @@ -/** - * TriggerType.java - * Created at 2016-09-27 - * Created by wangkang - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.client; - -/** - * 描述 : TriggerType - * - * @author wangkang - */ -public enum TriggerType { - /** - * 描述 : 手动触发 - */ - MANUAL("manual"), - /** - * 描述 : 触发器触发 - */ - TRIGGER("trigger"), - /** - * 描述 : 触发链 - */ - CALL_CHAIN("callChain"); - - /** - *

- * Field value: 参数值 - *

- */ - private String value; - - /** - *

- * Description: 构造函数 - *

- * - * @param value 构造函数 - */ - TriggerType(String value) { - this.value = value; - } - - /** - *

- * Description: 放回int值 - *

- * - * @return value 放回int值 - */ - public String value() { - return this.value; - } -} +/** + * TriggerType.java + * Created at 2016-09-27 + * Created by wangkang + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.client; + +/** + * 描述 : TriggerType + * + * @author wangkang + */ +public enum TriggerType { + /** + * 描述 : 手动触发 + */ + MANUAL("manual"), + /** + * 描述 : 触发器触发 + */ + TRIGGER("trigger"), + /** + * 描述 : 触发链 + */ + CALL_CHAIN("callChain"); + + /** + *

+ * Field value: 参数值 + *

+ */ + private String value; + + /** + *

+ * Description: 构造函数 + *

+ * + * @param value 构造函数 + */ + TriggerType(String value) { + this.value = value; + } + + /** + *

+ * Description: 放回int值 + *

+ * + * @return value 放回int值 + */ + public String value() { + return this.value; + } +} diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobParam.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobParam.java similarity index 95% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobParam.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobParam.java index 3123a80..664f88f 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobParam.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobParam.java @@ -1,80 +1,80 @@ -/** - * RmsJobParam.java - * Created at 2017-06-04 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.client.domain; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; -import java.util.Map; - -/** - * 描述 : RmsJobParam - * - * @author Administrator - */ -@ApiModel(description = "通用job参数") -@Data -@ToString -public class RmsJobParam implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 主键ID - */ - @ApiModelProperty(value = "主键ID", required = true, dataType = "string") - private String id; - - /** - * 父ID - */ - @ApiModelProperty(value = "父ID", required = false, dataType = "string") - private String parentId; - - /** - * 描述 : 触发实例ID - */ - @ApiModelProperty(value = "触发实例ID", required = true, dataType = "string") - private String fireInstanceId; - - /** - * 描述 : 触发方式 - */ - @ApiModelProperty(value = "触发方式", required = true, dataType = "string") - private String triggerType; - - /** - * 描述 : 服务代码 - */ - @ApiModelProperty(value = "服务代码", required = true, dataType = "string") - private String serviceCode; - - /** - * 描述 : bean名称 - */ - @ApiModelProperty(value = "bean名称", required = true, dataType = "string") - private String beanName; - - /** - * 描述 : 是否异步 - */ - @ApiModelProperty(value = "是否异步", required = true, dataType = "boolean") - private Boolean async; - - /** - * 描述 : 作业参数 - */ - @ApiModelProperty(value = "作业参数", required = true, dataType = "object") - private Map jobDataMap; //NOSONAR - -} +/** + * RmsJobParam.java + * Created at 2017-06-04 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.client.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import java.io.Serializable; +import java.util.Map; + +/** + * 描述 : RmsJobParam + * + * @author Administrator + */ +@ApiModel(description = "通用job参数") +@Data +@ToString +public class RmsJobParam implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 主键ID + */ + @ApiModelProperty(value = "主键ID", required = true, dataType = "string") + private String id; + + /** + * 父ID + */ + @ApiModelProperty(value = "父ID", required = false, dataType = "string") + private String parentId; + + /** + * 描述 : 触发实例ID + */ + @ApiModelProperty(value = "触发实例ID", required = true, dataType = "string") + private String fireInstanceId; + + /** + * 描述 : 触发方式 + */ + @ApiModelProperty(value = "触发方式", required = true, dataType = "string") + private String triggerType; + + /** + * 描述 : 服务代码 + */ + @ApiModelProperty(value = "服务代码", required = true, dataType = "string") + private String serviceCode; + + /** + * 描述 : bean名称 + */ + @ApiModelProperty(value = "bean名称", required = true, dataType = "string") + private String beanName; + + /** + * 描述 : 是否异步 + */ + @ApiModelProperty(value = "是否异步", required = true, dataType = "boolean") + private Boolean async; + + /** + * 描述 : 作业参数 + */ + @ApiModelProperty(value = "作业参数", required = true, dataType = "object") + private Map jobDataMap; //NOSONAR + +} diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobResult.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobResult.java similarity index 96% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobResult.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobResult.java index 919bf9a..7de5215 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobResult.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/domain/RmsJobResult.java @@ -1,74 +1,74 @@ -/** - * RmsJobResult.java - * Created at 2017-06-04 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.client.domain; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; -import java.util.Date; - -/** - * 描述 : RmsJobResult - * - * @author Administrator - */ -@ApiModel(description = "通用job返回值") -@Data -@ToString -public class RmsJobResult implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 主键ID - */ - @ApiModelProperty(value = "主键ID", required = true, dataType = "string") - private String id; - - /** - * 描述 : 客户端接收时间 - */ - @ApiModelProperty(value = "客户端接收时间", required = true, dataType = "long") - private Date clientReceiveTime; - - /** - * 描述 : 客户端开始时间 - */ - @ApiModelProperty(value = "客户端开始时间", required = true, dataType = "long") - private Date clientStartExecuteTime; - - /** - * 描述 : 客户端结束时间 - */ - @ApiModelProperty(value = "客户端结束时间", required = false, dataType = "long") - private Date clientEndExecuteTime; - - /** - * 描述 : 状态 - */ - @ApiModelProperty(value = "状态", required = true, dataType = "int") - private Integer stats; - - /** - * 描述 : 错误信息 - */ - @ApiModelProperty(value = "错误信息", required = true, dataType = "string") - private String errorMsg; - - /** - * 描述 : param - */ - @ApiModelProperty(value = "参数", required = true, dataType = "string") - private RmsJobParam param; - -} +/** + * RmsJobResult.java + * Created at 2017-06-04 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.client.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import java.io.Serializable; +import java.util.Date; + +/** + * 描述 : RmsJobResult + * + * @author Administrator + */ +@ApiModel(description = "通用job返回值") +@Data +@ToString +public class RmsJobResult implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 主键ID + */ + @ApiModelProperty(value = "主键ID", required = true, dataType = "string") + private String id; + + /** + * 描述 : 客户端接收时间 + */ + @ApiModelProperty(value = "客户端接收时间", required = true, dataType = "long") + private Date clientReceiveTime; + + /** + * 描述 : 客户端开始时间 + */ + @ApiModelProperty(value = "客户端开始时间", required = true, dataType = "long") + private Date clientStartExecuteTime; + + /** + * 描述 : 客户端结束时间 + */ + @ApiModelProperty(value = "客户端结束时间", required = false, dataType = "long") + private Date clientEndExecuteTime; + + /** + * 描述 : 状态 + */ + @ApiModelProperty(value = "状态", required = true, dataType = "int") + private Integer stats; + + /** + * 描述 : 错误信息 + */ + @ApiModelProperty(value = "错误信息", required = true, dataType = "string") + private String errorMsg; + + /** + * 描述 : param + */ + @ApiModelProperty(value = "参数", required = true, dataType = "string") + private RmsJobParam param; + +} diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/executor/AbstractExecutor.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/executor/AbstractExecutor.java similarity index 96% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/executor/AbstractExecutor.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/executor/AbstractExecutor.java index c32330e..3418c95 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/executor/AbstractExecutor.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/executor/AbstractExecutor.java @@ -1,89 +1,89 @@ -/** - * AbstractExecutor.java - * Created at 2017-08-09 - * Created by Administrator - * Copyright (C) 2016 egridcloud.com, All rights reserved. - */ -package org.itkk.udf.scheduler.client.executor; - -import java.util.HashMap; -import java.util.Map; - -import org.itkk.udf.scheduler.client.TriggerDataMapKey; -import org.itkk.udf.scheduler.client.TriggerType; -import org.itkk.udf.scheduler.client.domain.RmsJobParam; -import org.itkk.udf.scheduler.client.service.SchClientService; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * 描述 : AbstractExecutor - * - * @author Administrator - * - */ -public abstract class AbstractExecutor { - - /** - * schClientService - */ - @Autowired - private SchClientService schClientService; - - /** - * 执行方法 描述 : 执行方法 - * - * @param param param - */ - public void handle(RmsJobParam param) { - this.handle(param.getId(), param.getJobDataMap()); - } - - /** - * - * 描述 : 调用链 (允许并发,异步调用) - * - * @param parentId 父ID - * @param serviceCode 服务代码 - * @param beanName bean名称 - * @param param 业务参数 - * @return 结果 - */ - protected String chain(String parentId, String serviceCode, String beanName, Map param) { - return this.chain(true, parentId, serviceCode, beanName, true, param); - } - - /** - * - * 描述 : 调用链 - * - * @param isConcurrent 是否并发(true:允许并发,false:禁止并发) - * @param parentId 父ID - * @param serviceCode 服务代码 - * @param beanName bean名称 - * @param async 是否异步 - * @param param 业务参数 - * @return 结果 - */ - protected String chain(boolean isConcurrent, String parentId, String serviceCode, String beanName, boolean async, Map param) { - //构建jobDataMap - Map jdm = new HashMap<>(); - jdm.put(TriggerDataMapKey.PARENT_TRIGGER_ID.value(), parentId); - jdm.put(TriggerDataMapKey.TRIGGER_TYPE.value(), TriggerType.CALL_CHAIN.value()); - jdm.put(TriggerDataMapKey.SERVICE_CODE.value(), serviceCode); - jdm.put(TriggerDataMapKey.BEAN_NAME.value(), beanName); - jdm.put(TriggerDataMapKey.ASYNC.value(), Boolean.toString(async)); - jdm.putAll(param); - // 调用 & 返回 - String jobCode = isConcurrent ? "rmsJob" : "rmsJobDisallowConcurrent"; - return this.schClientService.trigger(jobCode, jdm); - } - - /** - * 描述 : 执行方法 - * - * @param id id - * @param jobDataMap jobDataMap - */ - protected abstract void handle(String id, Map jobDataMap); - -} +/** + * AbstractExecutor.java + * Created at 2017-08-09 + * Created by Administrator + * Copyright (C) 2016 egridcloud.com, All rights reserved. + */ +package org.itkk.udf.scheduler.client.executor; + +import java.util.HashMap; +import java.util.Map; + +import org.itkk.udf.scheduler.client.TriggerDataMapKey; +import org.itkk.udf.scheduler.client.TriggerType; +import org.itkk.udf.scheduler.client.domain.RmsJobParam; +import org.itkk.udf.scheduler.client.service.SchClientService; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * 描述 : AbstractExecutor + * + * @author Administrator + * + */ +public abstract class AbstractExecutor { + + /** + * schClientService + */ + @Autowired + private SchClientService schClientService; + + /** + * 执行方法 描述 : 执行方法 + * + * @param param param + */ + public void handle(RmsJobParam param) { + this.handle(param.getId(), param.getJobDataMap()); + } + + /** + * + * 描述 : 调用链 (允许并发,异步调用) + * + * @param parentId 父ID + * @param serviceCode 服务代码 + * @param beanName bean名称 + * @param param 业务参数 + * @return 结果 + */ + protected String chain(String parentId, String serviceCode, String beanName, Map param) { + return this.chain(true, parentId, serviceCode, beanName, true, param); + } + + /** + * + * 描述 : 调用链 + * + * @param isConcurrent 是否并发(true:允许并发,false:禁止并发) + * @param parentId 父ID + * @param serviceCode 服务代码 + * @param beanName bean名称 + * @param async 是否异步 + * @param param 业务参数 + * @return 结果 + */ + protected String chain(boolean isConcurrent, String parentId, String serviceCode, String beanName, boolean async, Map param) { + //构建jobDataMap + Map jdm = new HashMap<>(); + jdm.put(TriggerDataMapKey.PARENT_TRIGGER_ID.value(), parentId); + jdm.put(TriggerDataMapKey.TRIGGER_TYPE.value(), TriggerType.CALL_CHAIN.value()); + jdm.put(TriggerDataMapKey.SERVICE_CODE.value(), serviceCode); + jdm.put(TriggerDataMapKey.BEAN_NAME.value(), beanName); + jdm.put(TriggerDataMapKey.ASYNC.value(), Boolean.toString(async)); + jdm.putAll(param); + // 调用 & 返回 + String jobCode = isConcurrent ? "rmsJob" : "rmsJobDisallowConcurrent"; + return this.schClientService.trigger(jobCode, jdm); + } + + /** + * 描述 : 执行方法 + * + * @param id id + * @param jobDataMap jobDataMap + */ + protected abstract void handle(String id, Map jobDataMap); + +} diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/service/SchClientService.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/service/SchClientService.java similarity index 96% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/service/SchClientService.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/service/SchClientService.java index 101ce80..61719c9 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/service/SchClientService.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/service/SchClientService.java @@ -1,53 +1,53 @@ -/** - * SchClientService.java - * Created at 2017-06-12 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.client.service; - -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.rms.Rms; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.ParameterizedTypeReference; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.Map; - -/** - * 描述 : SchClientService - * - * @author Administrator - */ -@Service -public class SchClientService { - - /** - * 描述 : rms - */ - @Autowired - private Rms rms; - - /** - * 描述 : 触发作业 - * - * @param jobCode 作业代码 - * @param param 参数 - * @return id - */ - public String trigger(String jobCode, Map param) { - //接口编号 - final String serviceCode = "SCHEDULER_JOB_4"; - //rest参数 - Map uriVariables = new HashMap<>(); - uriVariables.put("jobCode", jobCode); - //请求 - ResponseEntity> result = rms.call(serviceCode, param, null, new ParameterizedTypeReference>() { - }, uriVariables); - //返回 - return result.getBody().getResult(); - } - -} +/** + * SchClientService.java + * Created at 2017-06-12 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.client.service; + +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.rms.Rms; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * 描述 : SchClientService + * + * @author Administrator + */ +@Service +public class SchClientService { + + /** + * 描述 : rms + */ + @Autowired + private Rms rms; + + /** + * 描述 : 触发作业 + * + * @param jobCode 作业代码 + * @param param 参数 + * @return id + */ + public String trigger(String jobCode, Map param) { + //接口编号 + final String serviceCode = "SCHEDULER_JOB_4"; + //rest参数 + Map uriVariables = new HashMap<>(); + uriVariables.put("jobCode", jobCode); + //请求 + ResponseEntity> result = rms.call(serviceCode, param, null, new ParameterizedTypeReference>() { + }, uriVariables); + //返回 + return result.getBody().getResult(); + } + +} diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/ISchClientController.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/ISchClientController.java similarity index 97% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/ISchClientController.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/ISchClientController.java index 59b7813..705cd05 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/ISchClientController.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/ISchClientController.java @@ -1,47 +1,47 @@ -/** - * ISchClientController.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.client.web; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.scheduler.client.domain.RmsJobParam; -import org.itkk.udf.scheduler.client.domain.RmsJobResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -/** - * 描述 : ISchClientController - * - * @author Administrator - */ -@Api(value = "计划任务客户端", consumes = "application/json", produces = "application/json", - protocols = "http") -@RequestMapping(value = "/service/scheduler/client") -public interface ISchClientController { //NOSONAR - - /** - * 描述 : 执行计划任务 - * - * @param param param - * @return 执行计划任务 - */ - @ApiOperation(value = "接口编号自定义", notes = "执行计划任务") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", - required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, - dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", - required = true, dataType = "string")}) - @RequestMapping(method = RequestMethod.POST) - RestResponse execute(@RequestBody RmsJobParam param); - -} +/** + * ISchClientController.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.client.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.scheduler.client.domain.RmsJobParam; +import org.itkk.udf.scheduler.client.domain.RmsJobResult; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +/** + * 描述 : ISchClientController + * + * @author Administrator + */ +@Api(value = "计划任务客户端", consumes = "application/json", produces = "application/json", + protocols = "http") +@RequestMapping(value = "/service/scheduler/client") +public interface ISchClientController { //NOSONAR + + /** + * 描述 : 执行计划任务 + * + * @param param param + * @return 执行计划任务 + */ + @ApiOperation(value = "接口编号自定义", notes = "执行计划任务") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", + required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, + dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", + required = true, dataType = "string")}) + @RequestMapping(method = RequestMethod.POST) + RestResponse execute(@RequestBody RmsJobParam param); + +} diff --git a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/SchClientController.java b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/SchClientController.java similarity index 96% rename from udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/SchClientController.java rename to udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/SchClientController.java index 6a5d426..421adf6 100644 --- a/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/SchClientController.java +++ b/udf-stater/udf-starter-scheduler-client/src/main/java/org/itkk/udf/scheduler/client/web/SchClientController.java @@ -1,57 +1,57 @@ -/** - * SchClientController.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.client.web; - -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.scheduler.client.RmsJobStats; -import org.itkk.udf.scheduler.client.SchClientHandle; -import org.itkk.udf.scheduler.client.domain.RmsJobParam; -import org.itkk.udf.scheduler.client.domain.RmsJobResult; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Date; - -/** - * 描述 : SchClientController - * - * @author Administrator - */ -@RestController -public class SchClientController implements ISchClientController { - - /** - * 描述 : schClientHandle - */ - @Autowired - private SchClientHandle schClientHandle; - - @Override - public RestResponse execute(@RequestBody RmsJobParam param) { - //记录来接收时间 - Date receiveTime = new Date(); - //定义返回值 - RmsJobResult result = new RmsJobResult(); - result.setClientReceiveTime(receiveTime); - result.setId(param.getId()); - result.setClientStartExecuteTime(new Date()); - result.setParam(param); - //执行(区分同步跟异步) - if (param.getAsync()) { - schClientHandle.asyncHandle(param, result); - result.setStats(RmsJobStats.EXECUTING.value()); - } else { - schClientHandle.handle(param); - result.setClientEndExecuteTime(new Date()); - result.setStats(RmsJobStats.COMPLETE.value()); - } - //返回 - return new RestResponse<>(result); - } - -} +/** + * SchClientController.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.client.web; + +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.scheduler.client.RmsJobStats; +import org.itkk.udf.scheduler.client.SchClientHandle; +import org.itkk.udf.scheduler.client.domain.RmsJobParam; +import org.itkk.udf.scheduler.client.domain.RmsJobResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; + +/** + * 描述 : SchClientController + * + * @author Administrator + */ +@RestController +public class SchClientController implements ISchClientController { + + /** + * 描述 : schClientHandle + */ + @Autowired + private SchClientHandle schClientHandle; + + @Override + public RestResponse execute(@RequestBody RmsJobParam param) { + //记录来接收时间 + Date receiveTime = new Date(); + //定义返回值 + RmsJobResult result = new RmsJobResult(); + result.setClientReceiveTime(receiveTime); + result.setId(param.getId()); + result.setClientStartExecuteTime(new Date()); + result.setParam(param); + //执行(区分同步跟异步) + if (param.getAsync()) { + schClientHandle.asyncHandle(param, result); + result.setStats(RmsJobStats.EXECUTING.value()); + } else { + schClientHandle.handle(param); + result.setClientEndExecuteTime(new Date()); + result.setStats(RmsJobStats.COMPLETE.value()); + } + //返回 + return new RestResponse<>(result); + } + +} diff --git a/udf-starter-scheduler/dbTables/tables_cloudscape.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_cloudscape.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_cloudscape.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_cloudscape.sql diff --git a/udf-starter-scheduler/dbTables/tables_cubrid.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_cubrid.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_cubrid.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_cubrid.sql diff --git a/udf-starter-scheduler/dbTables/tables_db2.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_db2.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_db2.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_db2.sql diff --git a/udf-starter-scheduler/dbTables/tables_db2_v72.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_db2_v72.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_db2_v72.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_db2_v72.sql diff --git a/udf-starter-scheduler/dbTables/tables_db2_v8.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_db2_v8.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_db2_v8.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_db2_v8.sql diff --git a/udf-starter-scheduler/dbTables/tables_db2_v95.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_db2_v95.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_db2_v95.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_db2_v95.sql diff --git a/udf-starter-scheduler/dbTables/tables_derby.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_derby.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_derby.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_derby.sql diff --git a/udf-starter-scheduler/dbTables/tables_derby_previous.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_derby_previous.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_derby_previous.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_derby_previous.sql diff --git a/udf-starter-scheduler/dbTables/tables_firebird.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_firebird.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_firebird.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_firebird.sql diff --git a/udf-starter-scheduler/dbTables/tables_h2.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_h2.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_h2.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_h2.sql diff --git a/udf-starter-scheduler/dbTables/tables_hsqldb.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_hsqldb.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_hsqldb.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_hsqldb.sql diff --git a/udf-starter-scheduler/dbTables/tables_hsqldb_old.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_hsqldb_old.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_hsqldb_old.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_hsqldb_old.sql diff --git a/udf-starter-scheduler/dbTables/tables_informix.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_informix.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_informix.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_informix.sql diff --git a/udf-starter-scheduler/dbTables/tables_mysql.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_mysql.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_mysql.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_mysql.sql diff --git a/udf-starter-scheduler/dbTables/tables_mysql_innodb.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_mysql_innodb.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_mysql_innodb.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_mysql_innodb.sql diff --git a/udf-starter-scheduler/dbTables/tables_oracle.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_oracle.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_oracle.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_oracle.sql diff --git a/udf-starter-scheduler/dbTables/tables_pointbase.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_pointbase.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_pointbase.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_pointbase.sql diff --git a/udf-starter-scheduler/dbTables/tables_postgres.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_postgres.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_postgres.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_postgres.sql diff --git a/udf-starter-scheduler/dbTables/tables_sapdb.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_sapdb.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_sapdb.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_sapdb.sql diff --git a/udf-starter-scheduler/dbTables/tables_solid.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_solid.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_solid.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_solid.sql diff --git a/udf-starter-scheduler/dbTables/tables_sqlServer.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_sqlServer.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_sqlServer.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_sqlServer.sql diff --git a/udf-starter-scheduler/dbTables/tables_sybase.sql b/udf-stater/udf-starter-scheduler/dbTables/tables_sybase.sql similarity index 100% rename from udf-starter-scheduler/dbTables/tables_sybase.sql rename to udf-stater/udf-starter-scheduler/dbTables/tables_sybase.sql diff --git a/udf-starter-scheduler/pom.xml b/udf-stater/udf-starter-scheduler/pom.xml similarity index 100% rename from udf-starter-scheduler/pom.xml rename to udf-stater/udf-starter-scheduler/pom.xml diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/AutoInitCommandLineRunner.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/AutoInitCommandLineRunner.java similarity index 97% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/AutoInitCommandLineRunner.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/AutoInitCommandLineRunner.java index d41be0d..2b3f57a 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/AutoInitCommandLineRunner.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/AutoInitCommandLineRunner.java @@ -1,89 +1,89 @@ -/** - * AutoInitCommandLineRunner.java - * Created at 2017-08-09 - * Created by Administrator - * Copyright (C) 2016 egridcloud.com, All rights reserved. - */ -package org.itkk.udf.scheduler; - -import org.apache.commons.collections4.MapUtils; -import org.itkk.udf.scheduler.meta.CronTriggerMeta; -import org.itkk.udf.scheduler.meta.JobDetailMeta; -import org.itkk.udf.scheduler.meta.SimpleTriggerMeta; -import org.itkk.udf.scheduler.service.JobService; -import org.itkk.udf.scheduler.service.TriggerService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.CommandLineRunner; -import org.springframework.stereotype.Component; - -import java.util.Iterator; -import java.util.Map; - -/** - * 描述 : AutoInitCommandLineRunner - * - * @author Administrator - */ -@Component -public class AutoInitCommandLineRunner implements CommandLineRunner { - - /** - * 描述 : schedulerProperties - */ - @Autowired - private SchedulerProperties schedulerProperties; - - /** - * jobService - */ - @Autowired - private JobService jobService; - - /** - * triggerService - */ - @Autowired - private TriggerService triggerService; - - @Override - public void run(String... arg0) throws Exception { //NOSONAR - //自动实例化jobDetail - Map jobDetailMap = schedulerProperties.getJobDetail(); - if (MapUtils.isNotEmpty(jobDetailMap)) { - Iterator jobDetailKeys = jobDetailMap.keySet().iterator(); - while (jobDetailKeys.hasNext()) { - String key = jobDetailKeys.next(); - JobDetailMeta jobDetailMeta = jobDetailMap.get(key); - if (jobDetailMeta.getAutoInit()) { - jobService.save(key, true); - } - } - } - //自动实例化SimpleTrigger - Map simpleTriggerMetaMap = - schedulerProperties.getSimpleTrigger(); - if (MapUtils.isNotEmpty(simpleTriggerMetaMap)) { - Iterator simpleTriggerMetaKeys = simpleTriggerMetaMap.keySet().iterator(); - while (simpleTriggerMetaKeys.hasNext()) { - String key = simpleTriggerMetaKeys.next(); - SimpleTriggerMeta simpleTriggerMeta = simpleTriggerMetaMap.get(key); - if (simpleTriggerMeta.getAutoInit()) { - triggerService.saveSimpleTirgger(key, true); - } - } - } - //自动实例化cronTrigger - Map sronTriggerMap = schedulerProperties.getCronTrigger(); - if (MapUtils.isNotEmpty(sronTriggerMap)) { - Iterator sronTriggerMapKeys = sronTriggerMap.keySet().iterator(); - while (sronTriggerMapKeys.hasNext()) { - String key = sronTriggerMapKeys.next(); - CronTriggerMeta cronTriggerMeta = sronTriggerMap.get(key); - if (cronTriggerMeta.getAutoInit()) { - triggerService.saveCronTrigger(key, true); - } - } - } - } - -} +/** + * AutoInitCommandLineRunner.java + * Created at 2017-08-09 + * Created by Administrator + * Copyright (C) 2016 egridcloud.com, All rights reserved. + */ +package org.itkk.udf.scheduler; + +import org.apache.commons.collections4.MapUtils; +import org.itkk.udf.scheduler.meta.CronTriggerMeta; +import org.itkk.udf.scheduler.meta.JobDetailMeta; +import org.itkk.udf.scheduler.meta.SimpleTriggerMeta; +import org.itkk.udf.scheduler.service.JobService; +import org.itkk.udf.scheduler.service.TriggerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; + +import java.util.Iterator; +import java.util.Map; + +/** + * 描述 : AutoInitCommandLineRunner + * + * @author Administrator + */ +@Component +public class AutoInitCommandLineRunner implements CommandLineRunner { + + /** + * 描述 : schedulerProperties + */ + @Autowired + private SchedulerProperties schedulerProperties; + + /** + * jobService + */ + @Autowired + private JobService jobService; + + /** + * triggerService + */ + @Autowired + private TriggerService triggerService; + + @Override + public void run(String... arg0) throws Exception { //NOSONAR + //自动实例化jobDetail + Map jobDetailMap = schedulerProperties.getJobDetail(); + if (MapUtils.isNotEmpty(jobDetailMap)) { + Iterator jobDetailKeys = jobDetailMap.keySet().iterator(); + while (jobDetailKeys.hasNext()) { + String key = jobDetailKeys.next(); + JobDetailMeta jobDetailMeta = jobDetailMap.get(key); + if (jobDetailMeta.getAutoInit()) { + jobService.save(key, true); + } + } + } + //自动实例化SimpleTrigger + Map simpleTriggerMetaMap = + schedulerProperties.getSimpleTrigger(); + if (MapUtils.isNotEmpty(simpleTriggerMetaMap)) { + Iterator simpleTriggerMetaKeys = simpleTriggerMetaMap.keySet().iterator(); + while (simpleTriggerMetaKeys.hasNext()) { + String key = simpleTriggerMetaKeys.next(); + SimpleTriggerMeta simpleTriggerMeta = simpleTriggerMetaMap.get(key); + if (simpleTriggerMeta.getAutoInit()) { + triggerService.saveSimpleTirgger(key, true); + } + } + } + //自动实例化cronTrigger + Map sronTriggerMap = schedulerProperties.getCronTrigger(); + if (MapUtils.isNotEmpty(sronTriggerMap)) { + Iterator sronTriggerMapKeys = sronTriggerMap.keySet().iterator(); + while (sronTriggerMapKeys.hasNext()) { + String key = sronTriggerMapKeys.next(); + CronTriggerMeta cronTriggerMeta = sronTriggerMap.get(key); + if (cronTriggerMeta.getAutoInit()) { + triggerService.saveCronTrigger(key, true); + } + } + } + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/AutowiringSpringBeanJobFactory.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/AutowiringSpringBeanJobFactory.java similarity index 100% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/AutowiringSpringBeanJobFactory.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/AutowiringSpringBeanJobFactory.java diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IListenerEvent.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IListenerEvent.java similarity index 100% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IListenerEvent.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IListenerEvent.java diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IRmsJobEvent.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IRmsJobEvent.java similarity index 100% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IRmsJobEvent.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IRmsJobEvent.java diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerConfig.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerConfig.java similarity index 97% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerConfig.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerConfig.java index c713361..8c481d3 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerConfig.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerConfig.java @@ -1,289 +1,289 @@ -/** - * SchedulerConfig.java - * Created at 2017-06-01 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler; - -import lombok.Data; -import org.itkk.udf.scheduler.impl.DefListenerEvent; -import org.itkk.udf.scheduler.impl.DefRmsJobEvent; -import org.itkk.udf.scheduler.job.ClearScheduledLog; -import org.itkk.udf.scheduler.job.ClearScheduledTriggerLog; -import org.itkk.udf.scheduler.listener.JobDetailListener; -import org.itkk.udf.scheduler.listener.SchListener; -import org.itkk.udf.scheduler.listener.TriggerDetailListener; -import org.quartz.*; -import org.quartz.spi.JobFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.config.PropertiesFactoryBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.SearchStrategy; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.io.ClassPathResource; -import org.springframework.scheduling.quartz.CronTriggerFactoryBean; -import org.springframework.scheduling.quartz.JobDetailFactoryBean; -import org.springframework.scheduling.quartz.SchedulerFactoryBean; -import org.springframework.validation.annotation.Validated; - -import javax.sql.DataSource; -import javax.validation.constraints.NotNull; -import java.io.IOException; -import java.util.Properties; - -/** - * 描述 : SchedulerConfig - * - * @author Administrator - */ -@Configuration -@ConfigurationProperties(prefix = "org.itkk.scheduler.config") -@Validated -@Data -public class SchedulerConfig { - - /** - * 描述 : DEF_GROUP_NAME - */ - private static final String DEF_GROUP_NAME = "SystemAutoRun"; - - /** - * 描述 : 是否记录日志 - */ - @NotNull - private Boolean logFlag = true; - - /** - * 描述 : 是否记录详细日志 - */ - @NotNull - private Boolean logDetailFlag = false; - - /** - * 描述 : 是否自动启动 - */ - @NotNull - private Boolean autoStartup = true; - - /** - * 描述 : 是否覆盖已经存在的jobs - */ - @NotNull - private Boolean overwriteExistingJobs = true; - - /** - * 描述 : 延迟启动秒数 - */ - @NotNull - private Integer startupDelay = 0; - - /** - * 描述 : Job接受applicationContext的成员变量名 - */ - @NotNull - private String applicationContextSchedulerContextKey = "applicationContext"; - - /** - * 描述 : quartz配置文件地址 - */ - @NotNull - private String quartzPropertiesPath = "def_quartz.properties"; - - /** - * 描述 : schedulerProperties - */ - @Autowired - private SchedulerProperties schedulerProperties; - - /** - * 描述 : jobFactory - * - * @param applicationContext applicationContext - * @return JobFactory - */ - @Bean - public JobFactory jobFactory(ApplicationContext applicationContext) { - AutowiringSpringBeanJobFactory jobFactory = new AutowiringSpringBeanJobFactory(); - jobFactory.setApplicationContext(applicationContext); - return jobFactory; - } - - /** - * 描述 : schedulerFactoryBean - * - * @param dataSource dataSource - * @param jobFactory jobFactory - * @param quartzProperties quartzProperties - * @param schListener schListener - * @param jobDetailListener jobDetailListener - * @param triggerDetailListener triggerDetailListener - * @param clearScheduledLogTrigger clearScheduledLogTrigger - * @param clearScheduledTriggerLogTrigger clearScheduledTriggerLogTrigger - * @return SchedulerFactoryBean - */ - @Bean("clusterQuartzScheduler") - public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource, JobFactory jobFactory, //NOSONAR - Properties quartzProperties, SchedulerListener schListener, JobListener jobDetailListener, - TriggerListener triggerDetailListener, - @Qualifier("clearScheduledLogTrigger") Trigger clearScheduledLogTrigger, - @Qualifier("clearScheduledTriggerLogTrigger") Trigger clearScheduledTriggerLogTrigger) { //NOSONAR - //实例化 - SchedulerFactoryBean factory = new SchedulerFactoryBean(); - factory.setDataSource(dataSource); - factory.setJobFactory(jobFactory); - //属性设置 - factory.setQuartzProperties(quartzProperties); - factory.setOverwriteExistingJobs(getOverwriteExistingJobs()); - factory.setAutoStartup(getAutoStartup()); - factory.setStartupDelay(getStartupDelay()); - factory.setApplicationContextSchedulerContextKey(getApplicationContextSchedulerContextKey()); - //添加监听器 - factory.setSchedulerListeners(schListener); - factory.setGlobalJobListeners(jobDetailListener); - factory.setGlobalTriggerListeners(triggerDetailListener); - //添加默认的job - factory.setTriggers(clearScheduledLogTrigger, clearScheduledTriggerLogTrigger); - //返回 - return factory; - } - - /** - * 描述 : quartzProperties - * - * @return Properties - * @throws IOException IOException - */ - @Bean - public Properties quartzProperties() throws IOException { - PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); - propertiesFactoryBean.setLocation(new ClassPathResource(getQuartzPropertiesPath())); - propertiesFactoryBean.afterPropertiesSet(); - return propertiesFactoryBean.getObject(); - } - - /** - * 描述 : schListener - * - * @return SchedulerListener - */ - @Bean(name = "schListener") - public SchedulerListener schListener() { - return new SchListener(); - } - - /** - * 描述 : jobDetailListener - * - * @return JobListener - */ - @Bean(name = "jobDetailListener") - public JobListener jobDetailListener() { - return new JobDetailListener(); - } - - /** - * 描述 : triggerDetailListener - * - * @return TriggerListener - */ - @Bean(name = "triggerDetailListener") - public TriggerListener triggerDetailListener() { - return new TriggerDetailListener(); - } - - /** - * 描述 : clearScheduledLogTrigger - * - * @param jobDetail jobDetail - * @return CronTriggerFactoryBean - */ - @Bean(name = "clearScheduledLogTrigger") - public CronTriggerFactoryBean clearScheduledLogTrigger( - @Qualifier("clearScheduledLogJobDetail") JobDetail jobDetail) { - CronTriggerFactoryBean factoryBean = new CronTriggerFactoryBean(); - factoryBean.setDescription("清理计划任务日志"); - factoryBean.setName("clearScheduledLogTrigger"); - factoryBean.setGroup(DEF_GROUP_NAME); - factoryBean.setJobDetail(jobDetail); - factoryBean.setCronExpression("0 0 1 * * ? "); - return factoryBean; - } - - /** - * 描述 : clearScheduledLogJobDetail - * - * @return JobDetailFactoryBean - */ - @Bean("clearScheduledLogJobDetail") - public JobDetailFactoryBean clearScheduledLogJobDetail() { - JobDetailFactoryBean factoryBean = new JobDetailFactoryBean(); - factoryBean.setDescription("清理计划任务日志"); - factoryBean.setName("clearScheduledLogJobDetail"); - factoryBean.setGroup(DEF_GROUP_NAME); - factoryBean.setJobClass(ClearScheduledLog.class); - factoryBean.setDurability(true); - return factoryBean; - } - - /** - * 描述 : clearScheduledTriggerLogTrigger - * - * @param jobDetail jobDetail - * @return CronTriggerFactoryBean - */ - @Bean(name = "clearScheduledTriggerLogTrigger") - public CronTriggerFactoryBean clearScheduledTriggerLogTrigger( - @Qualifier("clearScheduledTriggerLogJobDetail") JobDetail jobDetail) { - CronTriggerFactoryBean factoryBean = new CronTriggerFactoryBean(); - factoryBean.setDescription("清理计划任务执行日志"); - factoryBean.setName("clearScheduledTriggerLogTrigger"); - factoryBean.setGroup(DEF_GROUP_NAME); - factoryBean.setJobDetail(jobDetail); - factoryBean.setCronExpression("0 0 2 * * ? "); - return factoryBean; - } - - /** - * 描述 : clearScheduledTriggerLogJobDetail - * - * @return JobDetailFactoryBean - */ - @Bean("clearScheduledTriggerLogJobDetail") - public JobDetailFactoryBean clearScheduledTriggerLogJobDetail() { - JobDetailFactoryBean factoryBean = new JobDetailFactoryBean(); - factoryBean.setDescription("清理计划任务执行日志"); - factoryBean.setName("clearScheduledTriggerLogJobDetail"); - factoryBean.setGroup(DEF_GROUP_NAME); - factoryBean.setJobClass(ClearScheduledTriggerLog.class); - factoryBean.setDurability(true); - return factoryBean; - } - - /** - * rmsJobEvent - * - * @return IRmsJobEvent - */ - @Bean - @ConditionalOnMissingBean(value = IRmsJobEvent.class, search = SearchStrategy.CURRENT) - public IRmsJobEvent rmsJobEvent() { - return new DefRmsJobEvent(); - } - - /** - * listenerEvent - * - * @return IListenerEvent - */ - @Bean - @ConditionalOnMissingBean(value = IListenerEvent.class, search = SearchStrategy.CURRENT) - public IListenerEvent listenerEvent() { - return new DefListenerEvent(); - } - -} +/** + * SchedulerConfig.java + * Created at 2017-06-01 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler; + +import lombok.Data; +import org.itkk.udf.scheduler.impl.DefListenerEvent; +import org.itkk.udf.scheduler.impl.DefRmsJobEvent; +import org.itkk.udf.scheduler.job.ClearScheduledLog; +import org.itkk.udf.scheduler.job.ClearScheduledTriggerLog; +import org.itkk.udf.scheduler.listener.JobDetailListener; +import org.itkk.udf.scheduler.listener.SchListener; +import org.itkk.udf.scheduler.listener.TriggerDetailListener; +import org.quartz.*; +import org.quartz.spi.JobFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.config.PropertiesFactoryBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.SearchStrategy; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.ClassPathResource; +import org.springframework.scheduling.quartz.CronTriggerFactoryBean; +import org.springframework.scheduling.quartz.JobDetailFactoryBean; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; +import org.springframework.validation.annotation.Validated; + +import javax.sql.DataSource; +import javax.validation.constraints.NotNull; +import java.io.IOException; +import java.util.Properties; + +/** + * 描述 : SchedulerConfig + * + * @author Administrator + */ +@Configuration +@ConfigurationProperties(prefix = "org.itkk.scheduler.config") +@Validated +@Data +public class SchedulerConfig { + + /** + * 描述 : DEF_GROUP_NAME + */ + private static final String DEF_GROUP_NAME = "SystemAutoRun"; + + /** + * 描述 : 是否记录日志 + */ + @NotNull + private Boolean logFlag = true; + + /** + * 描述 : 是否记录详细日志 + */ + @NotNull + private Boolean logDetailFlag = false; + + /** + * 描述 : 是否自动启动 + */ + @NotNull + private Boolean autoStartup = true; + + /** + * 描述 : 是否覆盖已经存在的jobs + */ + @NotNull + private Boolean overwriteExistingJobs = true; + + /** + * 描述 : 延迟启动秒数 + */ + @NotNull + private Integer startupDelay = 0; + + /** + * 描述 : Job接受applicationContext的成员变量名 + */ + @NotNull + private String applicationContextSchedulerContextKey = "applicationContext"; + + /** + * 描述 : quartz配置文件地址 + */ + @NotNull + private String quartzPropertiesPath = "def_quartz.properties"; + + /** + * 描述 : schedulerProperties + */ + @Autowired + private SchedulerProperties schedulerProperties; + + /** + * 描述 : jobFactory + * + * @param applicationContext applicationContext + * @return JobFactory + */ + @Bean + public JobFactory jobFactory(ApplicationContext applicationContext) { + AutowiringSpringBeanJobFactory jobFactory = new AutowiringSpringBeanJobFactory(); + jobFactory.setApplicationContext(applicationContext); + return jobFactory; + } + + /** + * 描述 : schedulerFactoryBean + * + * @param dataSource dataSource + * @param jobFactory jobFactory + * @param quartzProperties quartzProperties + * @param schListener schListener + * @param jobDetailListener jobDetailListener + * @param triggerDetailListener triggerDetailListener + * @param clearScheduledLogTrigger clearScheduledLogTrigger + * @param clearScheduledTriggerLogTrigger clearScheduledTriggerLogTrigger + * @return SchedulerFactoryBean + */ + @Bean("clusterQuartzScheduler") + public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource, JobFactory jobFactory, //NOSONAR + Properties quartzProperties, SchedulerListener schListener, JobListener jobDetailListener, + TriggerListener triggerDetailListener, + @Qualifier("clearScheduledLogTrigger") Trigger clearScheduledLogTrigger, + @Qualifier("clearScheduledTriggerLogTrigger") Trigger clearScheduledTriggerLogTrigger) { //NOSONAR + //实例化 + SchedulerFactoryBean factory = new SchedulerFactoryBean(); + factory.setDataSource(dataSource); + factory.setJobFactory(jobFactory); + //属性设置 + factory.setQuartzProperties(quartzProperties); + factory.setOverwriteExistingJobs(getOverwriteExistingJobs()); + factory.setAutoStartup(getAutoStartup()); + factory.setStartupDelay(getStartupDelay()); + factory.setApplicationContextSchedulerContextKey(getApplicationContextSchedulerContextKey()); + //添加监听器 + factory.setSchedulerListeners(schListener); + factory.setGlobalJobListeners(jobDetailListener); + factory.setGlobalTriggerListeners(triggerDetailListener); + //添加默认的job + factory.setTriggers(clearScheduledLogTrigger, clearScheduledTriggerLogTrigger); + //返回 + return factory; + } + + /** + * 描述 : quartzProperties + * + * @return Properties + * @throws IOException IOException + */ + @Bean + public Properties quartzProperties() throws IOException { + PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); + propertiesFactoryBean.setLocation(new ClassPathResource(getQuartzPropertiesPath())); + propertiesFactoryBean.afterPropertiesSet(); + return propertiesFactoryBean.getObject(); + } + + /** + * 描述 : schListener + * + * @return SchedulerListener + */ + @Bean(name = "schListener") + public SchedulerListener schListener() { + return new SchListener(); + } + + /** + * 描述 : jobDetailListener + * + * @return JobListener + */ + @Bean(name = "jobDetailListener") + public JobListener jobDetailListener() { + return new JobDetailListener(); + } + + /** + * 描述 : triggerDetailListener + * + * @return TriggerListener + */ + @Bean(name = "triggerDetailListener") + public TriggerListener triggerDetailListener() { + return new TriggerDetailListener(); + } + + /** + * 描述 : clearScheduledLogTrigger + * + * @param jobDetail jobDetail + * @return CronTriggerFactoryBean + */ + @Bean(name = "clearScheduledLogTrigger") + public CronTriggerFactoryBean clearScheduledLogTrigger( + @Qualifier("clearScheduledLogJobDetail") JobDetail jobDetail) { + CronTriggerFactoryBean factoryBean = new CronTriggerFactoryBean(); + factoryBean.setDescription("清理计划任务日志"); + factoryBean.setName("clearScheduledLogTrigger"); + factoryBean.setGroup(DEF_GROUP_NAME); + factoryBean.setJobDetail(jobDetail); + factoryBean.setCronExpression("0 0 1 * * ? "); + return factoryBean; + } + + /** + * 描述 : clearScheduledLogJobDetail + * + * @return JobDetailFactoryBean + */ + @Bean("clearScheduledLogJobDetail") + public JobDetailFactoryBean clearScheduledLogJobDetail() { + JobDetailFactoryBean factoryBean = new JobDetailFactoryBean(); + factoryBean.setDescription("清理计划任务日志"); + factoryBean.setName("clearScheduledLogJobDetail"); + factoryBean.setGroup(DEF_GROUP_NAME); + factoryBean.setJobClass(ClearScheduledLog.class); + factoryBean.setDurability(true); + return factoryBean; + } + + /** + * 描述 : clearScheduledTriggerLogTrigger + * + * @param jobDetail jobDetail + * @return CronTriggerFactoryBean + */ + @Bean(name = "clearScheduledTriggerLogTrigger") + public CronTriggerFactoryBean clearScheduledTriggerLogTrigger( + @Qualifier("clearScheduledTriggerLogJobDetail") JobDetail jobDetail) { + CronTriggerFactoryBean factoryBean = new CronTriggerFactoryBean(); + factoryBean.setDescription("清理计划任务执行日志"); + factoryBean.setName("clearScheduledTriggerLogTrigger"); + factoryBean.setGroup(DEF_GROUP_NAME); + factoryBean.setJobDetail(jobDetail); + factoryBean.setCronExpression("0 0 2 * * ? "); + return factoryBean; + } + + /** + * 描述 : clearScheduledTriggerLogJobDetail + * + * @return JobDetailFactoryBean + */ + @Bean("clearScheduledTriggerLogJobDetail") + public JobDetailFactoryBean clearScheduledTriggerLogJobDetail() { + JobDetailFactoryBean factoryBean = new JobDetailFactoryBean(); + factoryBean.setDescription("清理计划任务执行日志"); + factoryBean.setName("clearScheduledTriggerLogJobDetail"); + factoryBean.setGroup(DEF_GROUP_NAME); + factoryBean.setJobClass(ClearScheduledTriggerLog.class); + factoryBean.setDurability(true); + return factoryBean; + } + + /** + * rmsJobEvent + * + * @return IRmsJobEvent + */ + @Bean + @ConditionalOnMissingBean(value = IRmsJobEvent.class, search = SearchStrategy.CURRENT) + public IRmsJobEvent rmsJobEvent() { + return new DefRmsJobEvent(); + } + + /** + * listenerEvent + * + * @return IListenerEvent + */ + @Bean + @ConditionalOnMissingBean(value = IListenerEvent.class, search = SearchStrategy.CURRENT) + public IListenerEvent listenerEvent() { + return new DefListenerEvent(); + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerProperties.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerProperties.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerProperties.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerProperties.java index 6660873..ebf32ce 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerProperties.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/SchedulerProperties.java @@ -1,53 +1,53 @@ -/** - * SchedulerProperties.java - * Created at 2017-06-01 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler; - -import lombok.Data; -import org.itkk.udf.scheduler.meta.CronTriggerMeta; -import org.itkk.udf.scheduler.meta.JobDetailMeta; -import org.itkk.udf.scheduler.meta.SimpleTriggerMeta; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * 描述 : SchedulerProperties - * - * @author Administrator - */ -@Component -@ConfigurationProperties(prefix = "org.itkk.scheduler.properties") -@Data -public class SchedulerProperties { - - /** - * 描述 : 作业组别 ( key : 组别代码 , value : 组别描述 ) - */ - private Map jobGroup; - - /** - * 描述 : 触发器组别 ( key : 组别代码 , value : 组别描述 ) - */ - private Map triggerGroup; - - /** - * 描述 : 作业 ( kety : 作业代码[jobCode] ) - */ - private Map jobDetail; - - /** - * 描述 : 简单触发器 ( key: 触发器代码[simpleTriggerCode] ) - */ - private Map simpleTrigger; - - /** - * 描述 : cron触发器 (key : 触发器代码[cronTriggerCode]) - */ - private Map cronTrigger; - -} +/** + * SchedulerProperties.java + * Created at 2017-06-01 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler; + +import lombok.Data; +import org.itkk.udf.scheduler.meta.CronTriggerMeta; +import org.itkk.udf.scheduler.meta.JobDetailMeta; +import org.itkk.udf.scheduler.meta.SimpleTriggerMeta; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 描述 : SchedulerProperties + * + * @author Administrator + */ +@Component +@ConfigurationProperties(prefix = "org.itkk.scheduler.properties") +@Data +public class SchedulerProperties { + + /** + * 描述 : 作业组别 ( key : 组别代码 , value : 组别描述 ) + */ + private Map jobGroup; + + /** + * 描述 : 触发器组别 ( key : 组别代码 , value : 组别描述 ) + */ + private Map triggerGroup; + + /** + * 描述 : 作业 ( kety : 作业代码[jobCode] ) + */ + private Map jobDetail; + + /** + * 描述 : 简单触发器 ( key: 触发器代码[simpleTriggerCode] ) + */ + private Map simpleTrigger; + + /** + * 描述 : cron触发器 (key : 触发器代码[cronTriggerCode]) + */ + private Map cronTrigger; + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/domain/ScheduledTriggerLog.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/domain/ScheduledTriggerLog.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/domain/ScheduledTriggerLog.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/domain/ScheduledTriggerLog.java index 331b27b..c4745fb 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/domain/ScheduledTriggerLog.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/domain/ScheduledTriggerLog.java @@ -1,149 +1,149 @@ -/** - * TriggerDetailListener.java - * Created at 2017-06-01 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.domain; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.ToString; - -import java.io.Serializable; -import java.util.Date; - -/** - * 描述 : ScheduledTriggerLog - * - * @author Administrator - */ -@ApiModel(description = "计划任务触发日志") -@Data -@ToString -public class ScheduledTriggerLog implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 描述 : 日志ID - */ - @ApiModelProperty(value = "日志ID", required = true, dataType = "string") - private String logid; - - /** - * 描述 : 计划执行时间 - */ - @ApiModelProperty(value = "计划执行时间", required = true, dataType = "date") - private Date scheduledFireTime; - - /** - * 描述 : 实际执行时间 - */ - @ApiModelProperty(value = "实际执行时间", required = true, dataType = "date") - private Date fireTime; - - /** - * 描述 : 实际结束时间 - */ - @ApiModelProperty(value = "实际结束时间", required = true, dataType = "date") - private Date endTime; - - /** - * 描述 : 执行时长 - */ - @ApiModelProperty(value = "执行时长", required = true, dataType = "long") - private Long jobRunTime; - - /** - * 描述 : 状态 - */ - @ApiModelProperty(value = "状态", required = true, dataType = "String") - private String status; - - /** - * 描述 : 结果 - */ - @ApiModelProperty(value = "结果", required = true, dataType = "String") - private String result; - - /** - * 描述 : 错误信息 - */ - @ApiModelProperty(value = "错误信息", required = true, dataType = "String") - private String errorMsg; - - /** - * 描述 : 触发器名称 - */ - @ApiModelProperty(value = "触发器名称", required = true, dataType = "String") - private String triggerName; - - /** - * 描述 : 触发器组别 - */ - @ApiModelProperty(value = "触发器组别", required = true, dataType = "String") - private String triggerGroup; - - /** - * 描述 : 作业名称 - */ - @ApiModelProperty(value = "作业名称", required = true, dataType = "String") - private String jobName; - - /** - * 描述 : 作业组别 - */ - @ApiModelProperty(value = "作业组别", required = true, dataType = "String") - private String jobGroup; - - /** - * 描述 : 作业类型 - */ - @ApiModelProperty(value = "作业类型", required = true, dataType = "String") - private String jobClass; - - /** - * 描述 : 线程组名称 - */ - @ApiModelProperty(value = "线程组名称", required = true, dataType = "String") - private String threadGroupName; - - /** - * 描述 : 线程ID - */ - @ApiModelProperty(value = "线程ID", required = true, dataType = "String") - private String threadId; - - /** - * 描述 : 线程名称 - */ - @ApiModelProperty(value = "线程名称", required = true, dataType = "String") - private String threadName; - - /** - * 描述 : 线程优先级 - */ - @ApiModelProperty(value = "线程优先级", required = true, dataType = "String") - private String threadPriority; - - /** - * 描述 : 计划任务ID - */ - @ApiModelProperty(value = "计划任务ID", required = true, dataType = "String") - private String scheduledId; - - /** - * 描述 : 计划任务名称 - */ - @ApiModelProperty(value = "计划任务名称", required = true, dataType = "String") - private String scheduledName; - - /** - * 描述 : 创建时间 - */ - @ApiModelProperty(value = "创建时间", required = true, dataType = "date") - private Date createDate; - -} +/** + * TriggerDetailListener.java + * Created at 2017-06-01 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import java.io.Serializable; +import java.util.Date; + +/** + * 描述 : ScheduledTriggerLog + * + * @author Administrator + */ +@ApiModel(description = "计划任务触发日志") +@Data +@ToString +public class ScheduledTriggerLog implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 描述 : 日志ID + */ + @ApiModelProperty(value = "日志ID", required = true, dataType = "string") + private String logid; + + /** + * 描述 : 计划执行时间 + */ + @ApiModelProperty(value = "计划执行时间", required = true, dataType = "date") + private Date scheduledFireTime; + + /** + * 描述 : 实际执行时间 + */ + @ApiModelProperty(value = "实际执行时间", required = true, dataType = "date") + private Date fireTime; + + /** + * 描述 : 实际结束时间 + */ + @ApiModelProperty(value = "实际结束时间", required = true, dataType = "date") + private Date endTime; + + /** + * 描述 : 执行时长 + */ + @ApiModelProperty(value = "执行时长", required = true, dataType = "long") + private Long jobRunTime; + + /** + * 描述 : 状态 + */ + @ApiModelProperty(value = "状态", required = true, dataType = "String") + private String status; + + /** + * 描述 : 结果 + */ + @ApiModelProperty(value = "结果", required = true, dataType = "String") + private String result; + + /** + * 描述 : 错误信息 + */ + @ApiModelProperty(value = "错误信息", required = true, dataType = "String") + private String errorMsg; + + /** + * 描述 : 触发器名称 + */ + @ApiModelProperty(value = "触发器名称", required = true, dataType = "String") + private String triggerName; + + /** + * 描述 : 触发器组别 + */ + @ApiModelProperty(value = "触发器组别", required = true, dataType = "String") + private String triggerGroup; + + /** + * 描述 : 作业名称 + */ + @ApiModelProperty(value = "作业名称", required = true, dataType = "String") + private String jobName; + + /** + * 描述 : 作业组别 + */ + @ApiModelProperty(value = "作业组别", required = true, dataType = "String") + private String jobGroup; + + /** + * 描述 : 作业类型 + */ + @ApiModelProperty(value = "作业类型", required = true, dataType = "String") + private String jobClass; + + /** + * 描述 : 线程组名称 + */ + @ApiModelProperty(value = "线程组名称", required = true, dataType = "String") + private String threadGroupName; + + /** + * 描述 : 线程ID + */ + @ApiModelProperty(value = "线程ID", required = true, dataType = "String") + private String threadId; + + /** + * 描述 : 线程名称 + */ + @ApiModelProperty(value = "线程名称", required = true, dataType = "String") + private String threadName; + + /** + * 描述 : 线程优先级 + */ + @ApiModelProperty(value = "线程优先级", required = true, dataType = "String") + private String threadPriority; + + /** + * 描述 : 计划任务ID + */ + @ApiModelProperty(value = "计划任务ID", required = true, dataType = "String") + private String scheduledId; + + /** + * 描述 : 计划任务名称 + */ + @ApiModelProperty(value = "计划任务名称", required = true, dataType = "String") + private String scheduledName; + + /** + * 描述 : 创建时间 + */ + @ApiModelProperty(value = "创建时间", required = true, dataType = "date") + private Date createDate; + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefListenerEvent.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefListenerEvent.java similarity index 100% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefListenerEvent.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefListenerEvent.java diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefRmsJobEvent.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefRmsJobEvent.java similarity index 100% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefRmsJobEvent.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefRmsJobEvent.java diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseJob.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseJob.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseJob.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseJob.java index 9d1852b..c509426 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseJob.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseJob.java @@ -1,38 +1,38 @@ -/** - * AbstractBaseJob.java - * Created at 2017-06-01 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.job; - -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.springframework.context.ApplicationContext; -import org.springframework.scheduling.quartz.QuartzJobBean; - -/** - * 描述 : AbstractBaseJob - * - * @author Administrator - */ -public abstract class AbstractBaseJob extends QuartzJobBean { - - /** - * 描述 : spring上下文 - */ - private ApplicationContext applicationContext; - - @Override - protected abstract void executeInternal(JobExecutionContext jobExecutionContext) - throws JobExecutionException; - - public ApplicationContext getApplicationContext() { - return this.applicationContext; - } - - public void setApplicationContext(ApplicationContext applicationContext) { - this.applicationContext = applicationContext; - } - -} +/** + * AbstractBaseJob.java + * Created at 2017-06-01 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.job; + +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.context.ApplicationContext; +import org.springframework.scheduling.quartz.QuartzJobBean; + +/** + * 描述 : AbstractBaseJob + * + * @author Administrator + */ +public abstract class AbstractBaseJob extends QuartzJobBean { + + /** + * 描述 : spring上下文 + */ + private ApplicationContext applicationContext; + + @Override + protected abstract void executeInternal(JobExecutionContext jobExecutionContext) + throws JobExecutionException; + + public ApplicationContext getApplicationContext() { + return this.applicationContext; + } + + public void setApplicationContext(ApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseRmsJob.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseRmsJob.java similarity index 100% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseRmsJob.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseRmsJob.java diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledLog.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledLog.java similarity index 95% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledLog.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledLog.java index 4870bc6..3c177af 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledLog.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledLog.java @@ -1,38 +1,38 @@ -/** - * ClearScheduledLog.java - * Created at 2017-06-01 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.job; - -import org.itkk.udf.scheduler.IListenerEvent; -import org.quartz.DisallowConcurrentExecution; -import org.quartz.JobExecutionContext; - -/** - *

- * ClassName: ClearScheduledLog - *

- *

- * Description: 清理计划任务日志 - *

- *

- * Author: wangkang - *

- *

- * Date: 2014年3月7日 - *

- */ -@DisallowConcurrentExecution -public class ClearScheduledLog extends AbstractBaseJob { - - @Override - protected void executeInternal(JobExecutionContext jobExecutionContext) { - IListenerEvent listenerLog = this.getApplicationContext().getBean(IListenerEvent.class); - if (listenerLog != null) { - listenerLog.clearScheduledLog(); - } - } - -} +/** + * ClearScheduledLog.java + * Created at 2017-06-01 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.job; + +import org.itkk.udf.scheduler.IListenerEvent; +import org.quartz.DisallowConcurrentExecution; +import org.quartz.JobExecutionContext; + +/** + *

+ * ClassName: ClearScheduledLog + *

+ *

+ * Description: 清理计划任务日志 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2014年3月7日 + *

+ */ +@DisallowConcurrentExecution +public class ClearScheduledLog extends AbstractBaseJob { + + @Override + protected void executeInternal(JobExecutionContext jobExecutionContext) { + IListenerEvent listenerLog = this.getApplicationContext().getBean(IListenerEvent.class); + if (listenerLog != null) { + listenerLog.clearScheduledLog(); + } + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledTriggerLog.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledTriggerLog.java similarity index 95% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledTriggerLog.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledTriggerLog.java index 34c1625..3e49124 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledTriggerLog.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/ClearScheduledTriggerLog.java @@ -1,38 +1,38 @@ -/** - * ClearScheduledTriggerLog.java - * Created at 2017-06-01 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.job; - -import org.itkk.udf.scheduler.IListenerEvent; -import org.quartz.DisallowConcurrentExecution; -import org.quartz.JobExecutionContext; - -/** - *

- * ClassName: ClearScheduledTriggerLog - *

- *

- * Description: 清理计划任务执行日志 - *

- *

- * Author: wangkang - *

- *

- * Date: 2014年3月7日 - *

- */ -@DisallowConcurrentExecution -public class ClearScheduledTriggerLog extends AbstractBaseJob { - - @Override - protected void executeInternal(JobExecutionContext jobExecutionContext) { - IListenerEvent triggerLog = this.getApplicationContext().getBean(IListenerEvent.class); - if (triggerLog != null) { - triggerLog.clearScheduledTriggerLog(); - } - } - -} +/** + * ClearScheduledTriggerLog.java + * Created at 2017-06-01 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.job; + +import org.itkk.udf.scheduler.IListenerEvent; +import org.quartz.DisallowConcurrentExecution; +import org.quartz.JobExecutionContext; + +/** + *

+ * ClassName: ClearScheduledTriggerLog + *

+ *

+ * Description: 清理计划任务执行日志 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2014年3月7日 + *

+ */ +@DisallowConcurrentExecution +public class ClearScheduledTriggerLog extends AbstractBaseJob { + + @Override + protected void executeInternal(JobExecutionContext jobExecutionContext) { + IListenerEvent triggerLog = this.getApplicationContext().getBean(IListenerEvent.class); + if (triggerLog != null) { + triggerLog.clearScheduledTriggerLog(); + } + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJob.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJob.java similarity index 95% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJob.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJob.java index bba1255..d460d52 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJob.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJob.java @@ -1,26 +1,26 @@ -/** - * RmsJob.java - * Created at 2017-06-04 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.job; - -import lombok.extern.slf4j.Slf4j; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; - -/** - * 描述 : RmsJob - * - * @author Administrator - */ -@Slf4j -public class RmsJob extends AbstractBaseRmsJob { - - @Override - protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { //NOSONAR - this.execute(this.getRmsJobParam(jobExecutionContext)); - } - -} +/** + * RmsJob.java + * Created at 2017-06-04 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.job; + +import lombok.extern.slf4j.Slf4j; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +/** + * 描述 : RmsJob + * + * @author Administrator + */ +@Slf4j +public class RmsJob extends AbstractBaseRmsJob { + + @Override + protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { //NOSONAR + this.execute(this.getRmsJobParam(jobExecutionContext)); + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJobDisallowConcurrent.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJobDisallowConcurrent.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJobDisallowConcurrent.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJobDisallowConcurrent.java index b84fadc..fc3d6d1 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJobDisallowConcurrent.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/RmsJobDisallowConcurrent.java @@ -1,24 +1,24 @@ -/** - * RmsJobDisallowConcurrent.java - * Created at 2017-06-04 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.job; - -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; - -/** - * 描述 : RmsJobDisallowConcurrent - * - * @author Administrator - */ -public class RmsJobDisallowConcurrent extends AbstractBaseRmsJob { - - @Override - protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { //NOSONAR - this.disallowConcurrentExecute(this.getRmsJobParam(jobExecutionContext)); - } - -} +/** + * RmsJobDisallowConcurrent.java + * Created at 2017-06-04 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.job; + +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +/** + * 描述 : RmsJobDisallowConcurrent + * + * @author Administrator + */ +public class RmsJobDisallowConcurrent extends AbstractBaseRmsJob { + + @Override + protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { //NOSONAR + this.disallowConcurrentExecute(this.getRmsJobParam(jobExecutionContext)); + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/JobDetailListener.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/JobDetailListener.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/JobDetailListener.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/JobDetailListener.java index e9fccfa..2a5f906 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/JobDetailListener.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/JobDetailListener.java @@ -1,72 +1,72 @@ -/** - * JobDetailListener.java - * Created at 2017-06-01 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.listener; - -import lombok.extern.slf4j.Slf4j; -import org.itkk.udf.scheduler.service.ListenerService; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; -import org.quartz.JobListener; -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; - -/** - *

- * ClassName: JobListener - *

- *

- * Description: 作业监听器 - *

- *

- * Author: wangkang - *

- *

- * Date: 2014年2月8日 - *

- */ -@Slf4j -public class JobDetailListener implements JobListener { - - /** - * 描述 : listenerService - */ - @Autowired - private ListenerService listenerService; - - @Override - public String getName() { - return "JobDetailListener"; - } - - @Override - public void jobToBeExecuted(JobExecutionContext context) { // 4 - try { - this.listenerService.saveJobToBeExecuted(context); - } catch (SchedulerException e) { - log.warn("jobToBeExecuted:", e); - } - } - - @Override - public void jobExecutionVetoed(JobExecutionContext context) { // 5 - try { - this.listenerService.saveJobExecutionVetoed(context); - } catch (SchedulerException e) { - log.warn("jobExecutionVetoed:", e); - } - } - - @Override - public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException) { // 6 - try { - this.listenerService.saveJobWasExecuted(context, jobException); - } catch (SchedulerException e) { - log.warn("jobWasExecuted:", e); - } - } - -} +/** + * JobDetailListener.java + * Created at 2017-06-01 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.listener; + +import lombok.extern.slf4j.Slf4j; +import org.itkk.udf.scheduler.service.ListenerService; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.JobListener; +import org.quartz.SchedulerException; +import org.springframework.beans.factory.annotation.Autowired; + +/** + *

+ * ClassName: JobListener + *

+ *

+ * Description: 作业监听器 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2014年2月8日 + *

+ */ +@Slf4j +public class JobDetailListener implements JobListener { + + /** + * 描述 : listenerService + */ + @Autowired + private ListenerService listenerService; + + @Override + public String getName() { + return "JobDetailListener"; + } + + @Override + public void jobToBeExecuted(JobExecutionContext context) { // 4 + try { + this.listenerService.saveJobToBeExecuted(context); + } catch (SchedulerException e) { + log.warn("jobToBeExecuted:", e); + } + } + + @Override + public void jobExecutionVetoed(JobExecutionContext context) { // 5 + try { + this.listenerService.saveJobExecutionVetoed(context); + } catch (SchedulerException e) { + log.warn("jobExecutionVetoed:", e); + } + } + + @Override + public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException) { // 6 + try { + this.listenerService.saveJobWasExecuted(context, jobException); + } catch (SchedulerException e) { + log.warn("jobWasExecuted:", e); + } + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/SchListener.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/SchListener.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/SchListener.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/SchListener.java index 76d2a39..a52333f 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/SchListener.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/SchListener.java @@ -1,241 +1,241 @@ -package org.itkk.udf.scheduler.listener; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.exception.ExceptionUtils; -import org.itkk.udf.scheduler.IListenerEvent; -import org.quartz.*; -import org.springframework.beans.factory.annotation.Autowired; - -/** - *

- * ClassName: SchListener - *

- *

- * Description: 计划任务监听器 - *

- *

- * Author: wangkang - *

- *

- * Date: 2014年1月24日 - *

- */ -public class SchListener implements SchedulerListener { - - /** - *

- * Field CHAR_1: 斜杠 - *

- */ - private static final String CHAR_1 = "/"; - - /** - *

- * Field ZHUOYE: 作业 - *

- */ - private static final String ZHUOYE = "作业"; - - /** - * 描述 : listenerLog - */ - @Autowired(required = false) - private IListenerEvent listenerLog; - - @Override - public void triggerPaused(TriggerKey triggerKey) { - String logMsg = "(triggerPaused)" + triggerKey.getName() + "/" + triggerKey.getGroup() + "被暂停了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void triggerResumed(TriggerKey triggerKey) { - String logMsg = - "(triggerResumed)" + triggerKey.getName() + CHAR_1 + triggerKey.getGroup() + "被恢复了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void jobScheduled(Trigger trigger) { - String logMsg = "(jobScheduled)" + ZHUOYE + trigger.getJobKey().getName() + CHAR_1 - + trigger.getJobKey().getGroup() + "被触发器" + trigger.getKey().getName() + CHAR_1 - + trigger.getKey().getGroup() + "触发了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void jobUnscheduled(TriggerKey triggerKey) { - String logMsg = "(jobUnscheduled)" + triggerKey.getName() + CHAR_1 + triggerKey.getGroup() + "被移除了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void triggerFinalized(Trigger trigger) { - String logMsg = "(triggerFinalized)" + ZHUOYE + trigger.getJobKey().getName() + CHAR_1 - + trigger.getJobKey().getGroup() + ",触发器" + trigger.getKey().getName() + CHAR_1 - + trigger.getKey().getGroup() + "已经执行完成,后续将不会继续触发"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void triggersPaused(String triggerGroup) { - if (StringUtils.isEmpty(triggerGroup)) { - String logMsg = "(triggersPaused)" + "触发器组全部被暂停了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } else { - String logMsg = "(triggersPaused)" + "触发器组" + triggerGroup + "被暂停了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - } - - @Override - public void triggersResumed(String triggerGroup) { - if (StringUtils.isEmpty(triggerGroup)) { - String logMsg = "(triggersResumed)" + "触发器组全部被恢复了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } else { - String logMsg = "(triggersResumed)" + "触发器组" + triggerGroup + "被恢复了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - } - - @Override - public void jobAdded(JobDetail jobDetail) { - String logMsg = "(jobAdded)" + ZHUOYE + jobDetail.getKey().getName() + CHAR_1 + jobDetail.getKey().getGroup() + "被添加了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void jobDeleted(JobKey jobKey) { - String logMsg = "(jobDeleted)" + ZHUOYE + jobKey.getName() + CHAR_1 + jobKey.getGroup() + "被删除了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void jobPaused(JobKey jobKey) { - String logMsg = "(jobPaused)" + ZHUOYE + jobKey.getName() + CHAR_1 + jobKey.getGroup() + "被暂停了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void jobsPaused(String jobGroup) { - if (StringUtils.isEmpty(jobGroup)) { - String logMsg = "(jobsPaused)" + "作业全部被暂停了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } else { - String logMsg = "(jobsPaused)" + "作业组" + jobGroup + "被暂停了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - } - - @Override - public void jobResumed(JobKey jobKey) { - String logMsg = "(jobResumed)" + ZHUOYE + jobKey.getName() + CHAR_1 + jobKey.getGroup() + "被恢复了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void jobsResumed(String jobGroup) { - if (StringUtils.isEmpty(jobGroup)) { - String logMsg = "(jobsResumed)" + "作业全部被恢复了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } else { - String logMsg = "(jobsResumed)" + "作业组" + jobGroup + "被恢复了"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - } - - @Override - public void schedulerError(String msg, SchedulerException cause) { - // 获得异常详细信息 - String exceptionDetail = ExceptionUtils.getStackTrace(cause); - String logMsg = "(schedulerError)" + "计划任务出错:" + msg + "\n" + exceptionDetail; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void schedulerInStandbyMode() { - String logMsg = "(schedulerInStandbyMode)" + "计划任务为待机状态"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void schedulerStarted() { - String logMsg = "(schedulerStarted)" + "计划任务已经启动"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void schedulerStarting() { - String logMsg = "(schedulerStarting)" + "计划任务正在启动中"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void schedulerShutdown() { - String logMsg = "(schedulerShutdown)" + "计划任务已关闭"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void schedulerShuttingdown() { - String logMsg = "(schedulerShuttingdown)" + "计划任务正在关闭中"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } - - @Override - public void schedulingDataCleared() { - String logMsg = "(schedulingDataCleared)" + "计划任务数据被清除"; - if (listenerLog != null) { - listenerLog.save(logMsg); - } - } -} +package org.itkk.udf.scheduler.listener; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.itkk.udf.scheduler.IListenerEvent; +import org.quartz.*; +import org.springframework.beans.factory.annotation.Autowired; + +/** + *

+ * ClassName: SchListener + *

+ *

+ * Description: 计划任务监听器 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2014年1月24日 + *

+ */ +public class SchListener implements SchedulerListener { + + /** + *

+ * Field CHAR_1: 斜杠 + *

+ */ + private static final String CHAR_1 = "/"; + + /** + *

+ * Field ZHUOYE: 作业 + *

+ */ + private static final String ZHUOYE = "作业"; + + /** + * 描述 : listenerLog + */ + @Autowired(required = false) + private IListenerEvent listenerLog; + + @Override + public void triggerPaused(TriggerKey triggerKey) { + String logMsg = "(triggerPaused)" + triggerKey.getName() + "/" + triggerKey.getGroup() + "被暂停了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void triggerResumed(TriggerKey triggerKey) { + String logMsg = + "(triggerResumed)" + triggerKey.getName() + CHAR_1 + triggerKey.getGroup() + "被恢复了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void jobScheduled(Trigger trigger) { + String logMsg = "(jobScheduled)" + ZHUOYE + trigger.getJobKey().getName() + CHAR_1 + + trigger.getJobKey().getGroup() + "被触发器" + trigger.getKey().getName() + CHAR_1 + + trigger.getKey().getGroup() + "触发了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void jobUnscheduled(TriggerKey triggerKey) { + String logMsg = "(jobUnscheduled)" + triggerKey.getName() + CHAR_1 + triggerKey.getGroup() + "被移除了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void triggerFinalized(Trigger trigger) { + String logMsg = "(triggerFinalized)" + ZHUOYE + trigger.getJobKey().getName() + CHAR_1 + + trigger.getJobKey().getGroup() + ",触发器" + trigger.getKey().getName() + CHAR_1 + + trigger.getKey().getGroup() + "已经执行完成,后续将不会继续触发"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void triggersPaused(String triggerGroup) { + if (StringUtils.isEmpty(triggerGroup)) { + String logMsg = "(triggersPaused)" + "触发器组全部被暂停了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } else { + String logMsg = "(triggersPaused)" + "触发器组" + triggerGroup + "被暂停了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + } + + @Override + public void triggersResumed(String triggerGroup) { + if (StringUtils.isEmpty(triggerGroup)) { + String logMsg = "(triggersResumed)" + "触发器组全部被恢复了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } else { + String logMsg = "(triggersResumed)" + "触发器组" + triggerGroup + "被恢复了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + } + + @Override + public void jobAdded(JobDetail jobDetail) { + String logMsg = "(jobAdded)" + ZHUOYE + jobDetail.getKey().getName() + CHAR_1 + jobDetail.getKey().getGroup() + "被添加了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void jobDeleted(JobKey jobKey) { + String logMsg = "(jobDeleted)" + ZHUOYE + jobKey.getName() + CHAR_1 + jobKey.getGroup() + "被删除了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void jobPaused(JobKey jobKey) { + String logMsg = "(jobPaused)" + ZHUOYE + jobKey.getName() + CHAR_1 + jobKey.getGroup() + "被暂停了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void jobsPaused(String jobGroup) { + if (StringUtils.isEmpty(jobGroup)) { + String logMsg = "(jobsPaused)" + "作业全部被暂停了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } else { + String logMsg = "(jobsPaused)" + "作业组" + jobGroup + "被暂停了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + } + + @Override + public void jobResumed(JobKey jobKey) { + String logMsg = "(jobResumed)" + ZHUOYE + jobKey.getName() + CHAR_1 + jobKey.getGroup() + "被恢复了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void jobsResumed(String jobGroup) { + if (StringUtils.isEmpty(jobGroup)) { + String logMsg = "(jobsResumed)" + "作业全部被恢复了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } else { + String logMsg = "(jobsResumed)" + "作业组" + jobGroup + "被恢复了"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + } + + @Override + public void schedulerError(String msg, SchedulerException cause) { + // 获得异常详细信息 + String exceptionDetail = ExceptionUtils.getStackTrace(cause); + String logMsg = "(schedulerError)" + "计划任务出错:" + msg + "\n" + exceptionDetail; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void schedulerInStandbyMode() { + String logMsg = "(schedulerInStandbyMode)" + "计划任务为待机状态"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void schedulerStarted() { + String logMsg = "(schedulerStarted)" + "计划任务已经启动"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void schedulerStarting() { + String logMsg = "(schedulerStarting)" + "计划任务正在启动中"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void schedulerShutdown() { + String logMsg = "(schedulerShutdown)" + "计划任务已关闭"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void schedulerShuttingdown() { + String logMsg = "(schedulerShuttingdown)" + "计划任务正在关闭中"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } + + @Override + public void schedulingDataCleared() { + String logMsg = "(schedulingDataCleared)" + "计划任务数据被清除"; + if (listenerLog != null) { + listenerLog.save(logMsg); + } + } +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/TriggerDetailListener.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/TriggerDetailListener.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/TriggerDetailListener.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/TriggerDetailListener.java index e781ff3..78272a2 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/TriggerDetailListener.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/listener/TriggerDetailListener.java @@ -1,80 +1,80 @@ -/** - * TriggerDetailListener.java - * Created at 2017-06-01 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.listener; - -import lombok.extern.slf4j.Slf4j; -import org.itkk.udf.scheduler.service.ListenerService; -import org.quartz.JobExecutionContext; -import org.quartz.SchedulerException; -import org.quartz.Trigger; -import org.quartz.Trigger.CompletedExecutionInstruction; -import org.quartz.TriggerListener; -import org.springframework.beans.factory.annotation.Autowired; - -/** - *

- * ClassName: TriggerListener - *

- *

- * Description: 全局触发器监听 - *

- *

- * Author: wangkang - *

- *

- * Date: 2014年2月8日 - *

- */ -@Slf4j -public class TriggerDetailListener implements TriggerListener { - - /** - * 描述 : listenerService - */ - @Autowired - private ListenerService listenerService; - - @Override - public String getName() { - return "TriggerDetailListener"; - } - - @Override - public void triggerFired(Trigger trigger, JobExecutionContext context) { // 2 - try { - this.listenerService.saveTriggerFired(context); - } catch (SchedulerException e) { - log.warn("triggerFired error:", e); - } - } - - @Override - public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context) { // 3 - boolean vetoed = false; - try { - vetoed = this.listenerService.saveVetoJobExecution(context); - } catch (SchedulerException e) { - log.warn("vetoJobExecution error:", e); - } - return vetoed; - } - - @Override - public void triggerMisfired(Trigger trigger) { // 1 - this.listenerService.saveTriggerMisfired(trigger); - } - - @Override - public void triggerComplete(Trigger trigger, JobExecutionContext context, - CompletedExecutionInstruction triggerInstructionCode) { // 7 - try { - this.listenerService.saveTriggerComplete(context, triggerInstructionCode); - } catch (SchedulerException e) { - log.warn("triggerComplete error:", e); - } - } -} +/** + * TriggerDetailListener.java + * Created at 2017-06-01 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.listener; + +import lombok.extern.slf4j.Slf4j; +import org.itkk.udf.scheduler.service.ListenerService; +import org.quartz.JobExecutionContext; +import org.quartz.SchedulerException; +import org.quartz.Trigger; +import org.quartz.Trigger.CompletedExecutionInstruction; +import org.quartz.TriggerListener; +import org.springframework.beans.factory.annotation.Autowired; + +/** + *

+ * ClassName: TriggerListener + *

+ *

+ * Description: 全局触发器监听 + *

+ *

+ * Author: wangkang + *

+ *

+ * Date: 2014年2月8日 + *

+ */ +@Slf4j +public class TriggerDetailListener implements TriggerListener { + + /** + * 描述 : listenerService + */ + @Autowired + private ListenerService listenerService; + + @Override + public String getName() { + return "TriggerDetailListener"; + } + + @Override + public void triggerFired(Trigger trigger, JobExecutionContext context) { // 2 + try { + this.listenerService.saveTriggerFired(context); + } catch (SchedulerException e) { + log.warn("triggerFired error:", e); + } + } + + @Override + public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context) { // 3 + boolean vetoed = false; + try { + vetoed = this.listenerService.saveVetoJobExecution(context); + } catch (SchedulerException e) { + log.warn("vetoJobExecution error:", e); + } + return vetoed; + } + + @Override + public void triggerMisfired(Trigger trigger) { // 1 + this.listenerService.saveTriggerMisfired(trigger); + } + + @Override + public void triggerComplete(Trigger trigger, JobExecutionContext context, + CompletedExecutionInstruction triggerInstructionCode) { // 7 + try { + this.listenerService.saveTriggerComplete(context, triggerInstructionCode); + } catch (SchedulerException e) { + log.warn("triggerComplete error:", e); + } + } +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/CronTriggerMeta.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/CronTriggerMeta.java similarity index 94% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/CronTriggerMeta.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/CronTriggerMeta.java index 124a85a..bd9f7e2 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/CronTriggerMeta.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/CronTriggerMeta.java @@ -1,38 +1,38 @@ -/** - * CronTriggerMeta.java - * Created at 2017-06-02 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.meta; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.Serializable; - -/** - * 描述 : CronTriggerMeta.java - * - * @author Administrator - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class CronTriggerMeta extends TriggerMeta implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : cron表达式 - */ - private String cron; - - /** - * 描述 : 时区ID - */ - private String timeZoneId; - -} +/** + * CronTriggerMeta.java + * Created at 2017-06-02 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.meta; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + * 描述 : CronTriggerMeta.java + * + * @author Administrator + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class CronTriggerMeta extends TriggerMeta implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : cron表达式 + */ + private String cron; + + /** + * 描述 : 时区ID + */ + private String timeZoneId; + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/JobDetailMeta.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/JobDetailMeta.java similarity index 94% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/JobDetailMeta.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/JobDetailMeta.java index 0103b1a..c2f9d5c 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/JobDetailMeta.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/JobDetailMeta.java @@ -1,67 +1,67 @@ -/** - * JobDetailMeta.java - * Created at 2017-06-02 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.meta; - -import lombok.Data; - -import java.io.Serializable; -import java.util.Map; - -/** - * 描述 : JobDetailMeta - * - * @author Administrator - */ -@Data -public class JobDetailMeta implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 名称 - */ - private String name; - - /** - * 描述 : 组别 - */ - private String group = "default"; - - /** - * 描述 : 类型 - */ - private String className; - - /** - * 描述 : 描述 - */ - private String description = "暂无描述"; - - /** - * 描述 : 是否可恢复 - */ - private Boolean recovery = false; - - /** - * 描述 : 是否持久化 - */ - private Boolean durability = true; - - /** - * 是否自动实例化 - */ - private Boolean autoInit = false; - - /** - * 描述 : 数据 - */ - private Map dataMap; - -} +/** + * JobDetailMeta.java + * Created at 2017-06-02 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.meta; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Map; + +/** + * 描述 : JobDetailMeta + * + * @author Administrator + */ +@Data +public class JobDetailMeta implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 名称 + */ + private String name; + + /** + * 描述 : 组别 + */ + private String group = "default"; + + /** + * 描述 : 类型 + */ + private String className; + + /** + * 描述 : 描述 + */ + private String description = "暂无描述"; + + /** + * 描述 : 是否可恢复 + */ + private Boolean recovery = false; + + /** + * 描述 : 是否持久化 + */ + private Boolean durability = true; + + /** + * 是否自动实例化 + */ + private Boolean autoInit = false; + + /** + * 描述 : 数据 + */ + private Map dataMap; + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/SimpleTriggerMeta.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/SimpleTriggerMeta.java similarity index 95% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/SimpleTriggerMeta.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/SimpleTriggerMeta.java index c08a9da..2cf6807 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/SimpleTriggerMeta.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/SimpleTriggerMeta.java @@ -1,39 +1,39 @@ -/** - * SimpleTriggerMeta.java - * Created at 2017-06-02 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.meta; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.quartz.SimpleTrigger; - -import java.io.Serializable; - -/** - * 描述 : SimpleTriggerMeta.java - * - * @author Administrator - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class SimpleTriggerMeta extends TriggerMeta implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 重复次数 - */ - private Integer repeatCount = SimpleTrigger.REPEAT_INDEFINITELY; - - /** - * 描述 : 执行间隔 - */ - private Long intervalInMilliseconds; - -} +/** + * SimpleTriggerMeta.java + * Created at 2017-06-02 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.meta; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.quartz.SimpleTrigger; + +import java.io.Serializable; + +/** + * 描述 : SimpleTriggerMeta.java + * + * @author Administrator + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class SimpleTriggerMeta extends TriggerMeta implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 重复次数 + */ + private Integer repeatCount = SimpleTrigger.REPEAT_INDEFINITELY; + + /** + * 描述 : 执行间隔 + */ + private Long intervalInMilliseconds; + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/TriggerMeta.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/TriggerMeta.java similarity index 94% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/TriggerMeta.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/TriggerMeta.java index 5803097..5f67010 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/TriggerMeta.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/meta/TriggerMeta.java @@ -1,84 +1,84 @@ -/** - * TriggerMeta.java - * Created at 2017-06-02 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.meta; - -import lombok.Data; -import org.quartz.Trigger; - -import java.io.Serializable; -import java.util.Date; -import java.util.Map; - -/** - * 描述 : TriggerMeta.java - * - * @author Administrator - */ -@Data -public class TriggerMeta implements Serializable { - - /** - * 描述 : ID - */ - private static final long serialVersionUID = 1L; - - /** - * 描述 : 作业代码 - */ - private String jobCode; - - /** - * 描述 : 名称 - */ - private String name; - - /** - * 描述 : 组别 - */ - private String group = "default"; - - /** - * 描述 : 描述 - */ - private String description = "暂无描述"; - - /** - * 描述 : 开始时间 - */ - private Date startTime; - - /** - * 描述 : 结束时间 - */ - private Date endTime; - - /** - * 描述 : 优先级 - */ - private Integer priority = 0; - - /** - * 描述 : 日历 - */ - private String calendar; - - /** - * 描述 : 遗漏对应的策略 - */ - private Integer misfireInstruction = Trigger.MISFIRE_INSTRUCTION_SMART_POLICY; - - /** - * 是否自动实例化 - */ - private Boolean autoInit = false; - - /** - * 描述 : 数据 - */ - private Map dataMap; - -} +/** + * TriggerMeta.java + * Created at 2017-06-02 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.meta; + +import lombok.Data; +import org.quartz.Trigger; + +import java.io.Serializable; +import java.util.Date; +import java.util.Map; + +/** + * 描述 : TriggerMeta.java + * + * @author Administrator + */ +@Data +public class TriggerMeta implements Serializable { + + /** + * 描述 : ID + */ + private static final long serialVersionUID = 1L; + + /** + * 描述 : 作业代码 + */ + private String jobCode; + + /** + * 描述 : 名称 + */ + private String name; + + /** + * 描述 : 组别 + */ + private String group = "default"; + + /** + * 描述 : 描述 + */ + private String description = "暂无描述"; + + /** + * 描述 : 开始时间 + */ + private Date startTime; + + /** + * 描述 : 结束时间 + */ + private Date endTime; + + /** + * 描述 : 优先级 + */ + private Integer priority = 0; + + /** + * 描述 : 日历 + */ + private String calendar; + + /** + * 描述 : 遗漏对应的策略 + */ + private Integer misfireInstruction = Trigger.MISFIRE_INSTRUCTION_SMART_POLICY; + + /** + * 是否自动实例化 + */ + private Boolean autoInit = false; + + /** + * 描述 : 数据 + */ + private Map dataMap; + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/JobService.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/JobService.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/JobService.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/JobService.java index 322d9fa..b08ff4c 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/JobService.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/JobService.java @@ -1,243 +1,243 @@ -/** - * JobService.java - * Created at 2017-06-02 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.service; - -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.lang3.StringUtils; -import org.itkk.udf.core.utils.ClassUtil; -import org.itkk.udf.scheduler.SchedulerProperties; -import org.itkk.udf.scheduler.client.SchException; -import org.itkk.udf.scheduler.job.AbstractBaseJob; -import org.itkk.udf.scheduler.meta.JobDetailMeta; -import org.quartz.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.scheduling.quartz.SchedulerFactoryBean; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * 描述 : JobService - * - * @author Administrator - */ -@Service -public class JobService { - - /** - * 描述 : SchedulerFactoryBean - */ - @Autowired - @Qualifier("clusterQuartzScheduler") - private SchedulerFactoryBean s; - - /** - * 描述 : schedulerProperties - */ - @Autowired - private SchedulerProperties schedulerProperties; - - /** - * 描述 : 获得作业列表 - * - * @return 作业列表 - * @throws ClassNotFoundException ClassNotFoundException - */ - public List jobClassNameList() throws ClassNotFoundException { - //获得类型列表 - List> jobList = - ClassUtil.getSubClasses(AbstractBaseJob.class, "org.itkk"); - //构造返回值 - List result = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(jobList)) { - for (Class claz : jobList) { - result.add(claz.getName()); - } - } - //返回 - return result; - } - - /** - * 描述 : 作业组 - * - * @return 作业组 - */ - public Map group() { - return schedulerProperties.getJobGroup(); - } - - /** - * 描述 : 保存 - * - * @param jobCode 作业代码 - * @param cover 是否覆盖 - * @throws SchedulerException SchedulerException - * @throws ClassNotFoundException ClassNotFoundException - */ - @SuppressWarnings("unchecked") - public void save(String jobCode, boolean cover) //NOSONAR - throws SchedulerException, ClassNotFoundException { - //获得作业元数据 - JobDetailMeta jobDetailMeta = getJobDetailMeta(jobCode); - // 获得计划任务管理器 - Scheduler sch = this.s.getScheduler(); - // 设置jobkey - JobKey jobKey = new JobKey(jobDetailMeta.getName(), jobDetailMeta.getGroup()); - //判断job是否存在 - if (sch.checkExists(jobKey) && !cover) { - throw new SchException("job key : " + jobDetailMeta.getName() + " / group : " - + jobDetailMeta.getGroup() + " already exist!"); - } - // 获得jobDataMap - JobDataMap jobDataMap = new JobDataMap(); - if (MapUtils.isNotEmpty(jobDetailMeta.getDataMap())) { - jobDataMap = new JobDataMap(jobDetailMeta.getDataMap()); - } - //实例化作业 - JobDetail jobDetail = JobBuilder.newJob(((Class) Class.forName(jobDetailMeta.getClassName()))) //NOSONAR - .withIdentity(jobKey).withDescription(jobDetailMeta.getDescription()) - .requestRecovery(jobDetailMeta.getRecovery()) - .storeDurably(jobDetailMeta.getDurability()).setJobData(jobDataMap).build(); - // 添加job - sch.addJob(jobDetail, true, !jobDetailMeta.getDurability()); - } - - /** - * 描述 : 移除 - * - * @param jobCode jobCode - * @throws SchedulerException SchedulerException - */ - public void remove(String jobCode) throws SchedulerException { - //获得作业元数据 - JobDetailMeta jobDetailMeta = getJobDetailMeta(jobCode); - // 设置jobkey - JobKey jobKey = getJobKey(jobDetailMeta); - // 删除 - this.s.getScheduler().deleteJob(jobKey); - } - - /** - * 描述 : 触发 - * - * @param jobCode 作业代码 - * @param jobDataMap 作业数据 - * @throws SchedulerException SchedulerException - */ - public void trigger(String jobCode, JobDataMap jobDataMap) throws SchedulerException { - //获得作业元数据 - JobDetailMeta jobDetailMeta = getJobDetailMeta(jobCode); - // 设置jobkey - JobKey jobKey = getJobKey(jobDetailMeta); - // 触发 - this.s.getScheduler().triggerJob(jobKey, jobDataMap); - } - - /** - * 描述 : 暂停 - * - * @param jobCode 作业代码 - * @throws SchedulerException SchedulerException - */ - public void puse(String jobCode) throws SchedulerException { - //获得作业元数据 - JobDetailMeta jobDetailMeta = getJobDetailMeta(jobCode); - // 设置jobkey - JobKey jobKey = getJobKey(jobDetailMeta); - // 暂停 - this.s.getScheduler().pauseJob(jobKey); - } - - /** - * 描述 : 恢复 - * - * @param jobCode 作业代码 - * @throws SchedulerException SchedulerException - */ - public void resume(String jobCode) throws SchedulerException { - //获得作业元数据 - JobDetailMeta jobDetailMeta = getJobDetailMeta(jobCode); - // 设置jobkey - JobKey jobKey = getJobKey(jobDetailMeta); - // 恢复 - this.s.getScheduler().resumeJob(jobKey); - } - - /** - * 描述 : 暂停所有 - * - * @throws SchedulerException SchedulerException - */ - public void puseAll() throws SchedulerException { - // 暂停所有 - this.s.getScheduler().pauseAll(); - } - - /** - * 描述 : 恢复所有 - * - * @throws SchedulerException SchedulerException - */ - public void resumeAll() throws SchedulerException { - // 暂停所有 - this.s.getScheduler().resumeAll(); - } - - /** - * 描述 : 返回jobKey - * - * @param jobDetailMeta 作业元数据 - * @return jobKey - * @throws SchedulerException SchedulerException - */ - protected JobKey getJobKey(JobDetailMeta jobDetailMeta) throws SchedulerException { - // 获得计划任务管理器 - Scheduler sch = this.s.getScheduler(); - // 设置jobkey - JobKey jobKey = new JobKey(jobDetailMeta.getName(), jobDetailMeta.getGroup()); - //判断job是否存在 - if (sch.checkExists(jobKey)) { - return jobKey; - } else { - throw new SchException("job key : " + jobDetailMeta.getName() + " / group : " - + jobDetailMeta.getGroup() + " not exist!"); - } - } - - /** - * 描述 : 返回作业元数据 - * - * @param jobCode 作业代码 - * @return 作业元数据 - */ - protected JobDetailMeta getJobDetailMeta(String jobCode) { - //判空 - if (MapUtils.isEmpty(schedulerProperties.getJobDetail())) { - throw new SchException("JobDetail not defined!"); - } - //获得作业定义 - JobDetailMeta jobDetailMeta = schedulerProperties.getJobDetail().get(jobCode); - //判断作业是否存在 - if (jobDetailMeta == null) { - throw new SchException("jobCode : " + jobCode + " not defined!"); - } - //获得组别定义 - String groupName = schedulerProperties.getJobGroup().get(jobDetailMeta.getGroup()); - //判断组别是否存在 - if (StringUtils.isBlank(groupName)) { - throw new SchException("group : " + jobDetailMeta.getGroup() + " not defined!"); - } - //返回 - return jobDetailMeta; - } - -} +/** + * JobService.java + * Created at 2017-06-02 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.service; + +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.itkk.udf.core.utils.ClassUtil; +import org.itkk.udf.scheduler.SchedulerProperties; +import org.itkk.udf.scheduler.client.SchException; +import org.itkk.udf.scheduler.job.AbstractBaseJob; +import org.itkk.udf.scheduler.meta.JobDetailMeta; +import org.quartz.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 描述 : JobService + * + * @author Administrator + */ +@Service +public class JobService { + + /** + * 描述 : SchedulerFactoryBean + */ + @Autowired + @Qualifier("clusterQuartzScheduler") + private SchedulerFactoryBean s; + + /** + * 描述 : schedulerProperties + */ + @Autowired + private SchedulerProperties schedulerProperties; + + /** + * 描述 : 获得作业列表 + * + * @return 作业列表 + * @throws ClassNotFoundException ClassNotFoundException + */ + public List jobClassNameList() throws ClassNotFoundException { + //获得类型列表 + List> jobList = + ClassUtil.getSubClasses(AbstractBaseJob.class, "org.itkk"); + //构造返回值 + List result = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(jobList)) { + for (Class claz : jobList) { + result.add(claz.getName()); + } + } + //返回 + return result; + } + + /** + * 描述 : 作业组 + * + * @return 作业组 + */ + public Map group() { + return schedulerProperties.getJobGroup(); + } + + /** + * 描述 : 保存 + * + * @param jobCode 作业代码 + * @param cover 是否覆盖 + * @throws SchedulerException SchedulerException + * @throws ClassNotFoundException ClassNotFoundException + */ + @SuppressWarnings("unchecked") + public void save(String jobCode, boolean cover) //NOSONAR + throws SchedulerException, ClassNotFoundException { + //获得作业元数据 + JobDetailMeta jobDetailMeta = getJobDetailMeta(jobCode); + // 获得计划任务管理器 + Scheduler sch = this.s.getScheduler(); + // 设置jobkey + JobKey jobKey = new JobKey(jobDetailMeta.getName(), jobDetailMeta.getGroup()); + //判断job是否存在 + if (sch.checkExists(jobKey) && !cover) { + throw new SchException("job key : " + jobDetailMeta.getName() + " / group : " + + jobDetailMeta.getGroup() + " already exist!"); + } + // 获得jobDataMap + JobDataMap jobDataMap = new JobDataMap(); + if (MapUtils.isNotEmpty(jobDetailMeta.getDataMap())) { + jobDataMap = new JobDataMap(jobDetailMeta.getDataMap()); + } + //实例化作业 + JobDetail jobDetail = JobBuilder.newJob(((Class) Class.forName(jobDetailMeta.getClassName()))) //NOSONAR + .withIdentity(jobKey).withDescription(jobDetailMeta.getDescription()) + .requestRecovery(jobDetailMeta.getRecovery()) + .storeDurably(jobDetailMeta.getDurability()).setJobData(jobDataMap).build(); + // 添加job + sch.addJob(jobDetail, true, !jobDetailMeta.getDurability()); + } + + /** + * 描述 : 移除 + * + * @param jobCode jobCode + * @throws SchedulerException SchedulerException + */ + public void remove(String jobCode) throws SchedulerException { + //获得作业元数据 + JobDetailMeta jobDetailMeta = getJobDetailMeta(jobCode); + // 设置jobkey + JobKey jobKey = getJobKey(jobDetailMeta); + // 删除 + this.s.getScheduler().deleteJob(jobKey); + } + + /** + * 描述 : 触发 + * + * @param jobCode 作业代码 + * @param jobDataMap 作业数据 + * @throws SchedulerException SchedulerException + */ + public void trigger(String jobCode, JobDataMap jobDataMap) throws SchedulerException { + //获得作业元数据 + JobDetailMeta jobDetailMeta = getJobDetailMeta(jobCode); + // 设置jobkey + JobKey jobKey = getJobKey(jobDetailMeta); + // 触发 + this.s.getScheduler().triggerJob(jobKey, jobDataMap); + } + + /** + * 描述 : 暂停 + * + * @param jobCode 作业代码 + * @throws SchedulerException SchedulerException + */ + public void puse(String jobCode) throws SchedulerException { + //获得作业元数据 + JobDetailMeta jobDetailMeta = getJobDetailMeta(jobCode); + // 设置jobkey + JobKey jobKey = getJobKey(jobDetailMeta); + // 暂停 + this.s.getScheduler().pauseJob(jobKey); + } + + /** + * 描述 : 恢复 + * + * @param jobCode 作业代码 + * @throws SchedulerException SchedulerException + */ + public void resume(String jobCode) throws SchedulerException { + //获得作业元数据 + JobDetailMeta jobDetailMeta = getJobDetailMeta(jobCode); + // 设置jobkey + JobKey jobKey = getJobKey(jobDetailMeta); + // 恢复 + this.s.getScheduler().resumeJob(jobKey); + } + + /** + * 描述 : 暂停所有 + * + * @throws SchedulerException SchedulerException + */ + public void puseAll() throws SchedulerException { + // 暂停所有 + this.s.getScheduler().pauseAll(); + } + + /** + * 描述 : 恢复所有 + * + * @throws SchedulerException SchedulerException + */ + public void resumeAll() throws SchedulerException { + // 暂停所有 + this.s.getScheduler().resumeAll(); + } + + /** + * 描述 : 返回jobKey + * + * @param jobDetailMeta 作业元数据 + * @return jobKey + * @throws SchedulerException SchedulerException + */ + protected JobKey getJobKey(JobDetailMeta jobDetailMeta) throws SchedulerException { + // 获得计划任务管理器 + Scheduler sch = this.s.getScheduler(); + // 设置jobkey + JobKey jobKey = new JobKey(jobDetailMeta.getName(), jobDetailMeta.getGroup()); + //判断job是否存在 + if (sch.checkExists(jobKey)) { + return jobKey; + } else { + throw new SchException("job key : " + jobDetailMeta.getName() + " / group : " + + jobDetailMeta.getGroup() + " not exist!"); + } + } + + /** + * 描述 : 返回作业元数据 + * + * @param jobCode 作业代码 + * @return 作业元数据 + */ + protected JobDetailMeta getJobDetailMeta(String jobCode) { + //判空 + if (MapUtils.isEmpty(schedulerProperties.getJobDetail())) { + throw new SchException("JobDetail not defined!"); + } + //获得作业定义 + JobDetailMeta jobDetailMeta = schedulerProperties.getJobDetail().get(jobCode); + //判断作业是否存在 + if (jobDetailMeta == null) { + throw new SchException("jobCode : " + jobCode + " not defined!"); + } + //获得组别定义 + String groupName = schedulerProperties.getJobGroup().get(jobDetailMeta.getGroup()); + //判断组别是否存在 + if (StringUtils.isBlank(groupName)) { + throw new SchException("group : " + jobDetailMeta.getGroup() + " not defined!"); + } + //返回 + return jobDetailMeta; + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/ListenerService.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/ListenerService.java similarity index 97% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/ListenerService.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/ListenerService.java index 4caf2b1..8155f54 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/ListenerService.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/ListenerService.java @@ -1,251 +1,251 @@ -/** - * ListenerService.java - * Created at 2017-06-01 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.service; - -import org.apache.commons.lang3.exception.ExceptionUtils; -import org.itkk.udf.scheduler.IListenerEvent; -import org.itkk.udf.scheduler.SchedulerConfig; -import org.itkk.udf.scheduler.domain.ScheduledTriggerLog; -import org.quartz.*; -import org.quartz.Trigger.CompletedExecutionInstruction; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -/** - * 描述 : ListenerService - * - * @author Administrator - */ -@Service -public class ListenerService { - - /** - * 描述 : schedulerConfig - */ - @Autowired - private SchedulerConfig schedulerConfig; - - /** - * 描述 : listenerLog - */ - @Autowired(required = false) - private IListenerEvent listenerLog; - - /** - *

- * Description: 保存未正常触发的记录 - *

- * - * @param trigger 触发器 - */ - public void saveTriggerMisfired(Trigger trigger) { // 1 - ScheduledTriggerLog tstl = new ScheduledTriggerLog(); - tstl.setLogid(UUID.randomUUID().toString()); - tstl.setScheduledFireTime(null); - tstl.setFireTime(null); - tstl.setEndTime(null); - tstl.setJobRunTime(null); - tstl.setStatus("misfired"); - tstl.setResult(null); - tstl.setErrorMsg(null); - tstl.setTriggerName(trigger.getKey().getName()); - tstl.setTriggerGroup(trigger.getKey().getGroup()); - tstl.setJobName(trigger.getJobKey().getName()); - tstl.setJobGroup(trigger.getJobKey().getGroup()); - tstl.setJobClass(null); - tstl.setThreadGroupName(Thread.currentThread().getThreadGroup().getName()); - tstl.setThreadId(Long.toString(Thread.currentThread().getId())); - tstl.setThreadName(Thread.currentThread().getName()); - tstl.setThreadPriority(Long.toString(Thread.currentThread().getPriority())); - tstl.setScheduledId(null); - tstl.setScheduledName(null); - tstl.setCreateDate(new Date()); - if (listenerLog != null) { - listenerLog.save(tstl); - } - } - - /** - *

- * Description: 准备触发 - *

- * - * @param context 执行上下文 - * @throws SchedulerException SchedulerException - */ - public void saveTriggerFired(JobExecutionContext context) throws SchedulerException { - // 状态和异常信息 - String status = "triggering"; - String exceptionDetail = null; - // 是否记录执行历史(true记录,false不记录) , 是否详细记录执行历史(true记录,false不记录) - if (this.schedulerConfig.getLogFlag() && this.schedulerConfig.getLogDetailFlag()) { - save(context, status, null, exceptionDetail); - } - } - - /** - *

- * Description: 判断是否否决 - *

- * - * @param context 执行上下文 - * @return 是否否决 - * @throws SchedulerException SchedulerException - */ - public boolean saveVetoJobExecution(JobExecutionContext context) throws SchedulerException { - // 是否否决 - boolean vetoed = false; - // 状态和异常信息 - String status = "vetoed(" + vetoed + ")"; - String exceptionDetail = null; - // 是否记录执行历史(true记录,false不记录) , 是否详细记录执行历史(true记录,false不记录) - if (this.schedulerConfig.getLogFlag() && this.schedulerConfig.getLogDetailFlag()) { - save(context, status, null, exceptionDetail); - } - return vetoed; - } - - /** - *

- * Description: 准备执行作业 - *

- * - * @param context 上下文 - * @throws SchedulerException SchedulerException - */ - public void saveJobToBeExecuted(JobExecutionContext context) throws SchedulerException { - // 状态和异常信息 - String status = "toBeExecuted"; - String exceptionDetail = null; - // 是否记录执行历史(true记录,false不记录) , 是否详细记录执行历史(true记录,false不记录) - if (this.schedulerConfig.getLogFlag() && this.schedulerConfig.getLogDetailFlag()) { - save(context, status, null, exceptionDetail); - } - } - - /** - *

- * Description: 作业执行被否决 - *

- * - * @param context 上下文 - * @throws SchedulerException SchedulerException - */ - public void saveJobExecutionVetoed(JobExecutionContext context) throws SchedulerException { - // 状态和异常信息 - String status = "executionVetoed"; - String exceptionDetail = null; - // 写入新的记录 - save(context, status, null, exceptionDetail); - } - - /** - *

- * Description: 作业执行完毕 - *

- * - * @param context 上下文 - * @param jobException 执行异常 - * @throws SchedulerException 异常信息 - */ - public void saveJobWasExecuted(JobExecutionContext context, JobExecutionException jobException) - throws SchedulerException { - // 状态和异常信息 - String status = "executed"; - String exceptionDetail = null; - // 如果作业异常,则放入信息到result中 - if (null != jobException) { - Map result = new HashMap<>(); - result.put("status", "error"); - result.put("jobException", jobException); - context.setResult(result); - // 获得异常信息 - exceptionDetail = ExceptionUtils.getStackTrace(jobException); - } - // 是否记录执行历史(true记录,false不记录) , 是否详细记录执行历史(true记录,false不记录) - if (this.schedulerConfig.getLogFlag() && this.schedulerConfig.getLogDetailFlag()) { - save(context, status, null, exceptionDetail); - } - } - - /** - *

- * Description: 触发完成 - *

- * - * @param context 上下文 - * @param triggerInstructionCode 状态 - * @throws SchedulerException SchedulerException - */ - @SuppressWarnings("unchecked") - public void saveTriggerComplete(JobExecutionContext context, - CompletedExecutionInstruction triggerInstructionCode) throws SchedulerException { - // 状态和异常信息 - String status = "complete"; - String exceptionDetail = null; - // 获得result - Object o = context.getResult(); - if (o instanceof Map) { - Map result = (Map) o; - status = result.get("status").toString(); - JobExecutionException jobException = (JobExecutionException) result.get("jobException"); - // 获得异常信息 - exceptionDetail = ExceptionUtils.getStackTrace(jobException); - } - // 是否记录执行历史(true记录,false不记录) - if (this.schedulerConfig.getLogFlag()) { - save(context, status, triggerInstructionCode.toString(), exceptionDetail); - } - } - - /** - * 描述 : build - * - * @param context context - * @param status status - * @param result result - * @param exceptionDetail exceptionDetail - * @throws SchedulerException SchedulerException - */ - private void save(JobExecutionContext context, String status, String result, - String exceptionDetail) throws SchedulerException { - // 获得计划任务实例 - Scheduler s = context.getScheduler(); - //构造 - ScheduledTriggerLog tstl = new ScheduledTriggerLog(); - tstl.setLogid(context.getFireInstanceId()); - tstl.setScheduledFireTime(context.getScheduledFireTime()); - tstl.setFireTime(context.getFireTime()); - tstl.setEndTime(new Date()); - tstl.setJobRunTime(context.getJobRunTime()); - tstl.setStatus(status); - tstl.setResult(result); - tstl.setErrorMsg(exceptionDetail); - tstl.setTriggerName(context.getTrigger().getKey().getName()); - tstl.setTriggerGroup(context.getTrigger().getKey().getGroup()); - tstl.setJobName(context.getJobDetail().getKey().getName()); - tstl.setJobGroup(context.getJobDetail().getKey().getGroup()); - tstl.setJobClass(context.getJobDetail().getJobClass().getName()); - tstl.setThreadGroupName(Thread.currentThread().getThreadGroup().getName()); - tstl.setThreadId(Long.toString(Thread.currentThread().getId())); - tstl.setThreadName(Thread.currentThread().getName()); - tstl.setThreadPriority(Long.toString(Thread.currentThread().getPriority())); - tstl.setScheduledId(s.getSchedulerInstanceId()); - tstl.setScheduledName(s.getSchedulerName()); - tstl.setCreateDate(new Date()); - if (listenerLog != null) { - listenerLog.delete(context.getFireInstanceId()); - listenerLog.save(tstl); - } - } - -} +/** + * ListenerService.java + * Created at 2017-06-01 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.service; + +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.itkk.udf.scheduler.IListenerEvent; +import org.itkk.udf.scheduler.SchedulerConfig; +import org.itkk.udf.scheduler.domain.ScheduledTriggerLog; +import org.quartz.*; +import org.quartz.Trigger.CompletedExecutionInstruction; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * 描述 : ListenerService + * + * @author Administrator + */ +@Service +public class ListenerService { + + /** + * 描述 : schedulerConfig + */ + @Autowired + private SchedulerConfig schedulerConfig; + + /** + * 描述 : listenerLog + */ + @Autowired(required = false) + private IListenerEvent listenerLog; + + /** + *

+ * Description: 保存未正常触发的记录 + *

+ * + * @param trigger 触发器 + */ + public void saveTriggerMisfired(Trigger trigger) { // 1 + ScheduledTriggerLog tstl = new ScheduledTriggerLog(); + tstl.setLogid(UUID.randomUUID().toString()); + tstl.setScheduledFireTime(null); + tstl.setFireTime(null); + tstl.setEndTime(null); + tstl.setJobRunTime(null); + tstl.setStatus("misfired"); + tstl.setResult(null); + tstl.setErrorMsg(null); + tstl.setTriggerName(trigger.getKey().getName()); + tstl.setTriggerGroup(trigger.getKey().getGroup()); + tstl.setJobName(trigger.getJobKey().getName()); + tstl.setJobGroup(trigger.getJobKey().getGroup()); + tstl.setJobClass(null); + tstl.setThreadGroupName(Thread.currentThread().getThreadGroup().getName()); + tstl.setThreadId(Long.toString(Thread.currentThread().getId())); + tstl.setThreadName(Thread.currentThread().getName()); + tstl.setThreadPriority(Long.toString(Thread.currentThread().getPriority())); + tstl.setScheduledId(null); + tstl.setScheduledName(null); + tstl.setCreateDate(new Date()); + if (listenerLog != null) { + listenerLog.save(tstl); + } + } + + /** + *

+ * Description: 准备触发 + *

+ * + * @param context 执行上下文 + * @throws SchedulerException SchedulerException + */ + public void saveTriggerFired(JobExecutionContext context) throws SchedulerException { + // 状态和异常信息 + String status = "triggering"; + String exceptionDetail = null; + // 是否记录执行历史(true记录,false不记录) , 是否详细记录执行历史(true记录,false不记录) + if (this.schedulerConfig.getLogFlag() && this.schedulerConfig.getLogDetailFlag()) { + save(context, status, null, exceptionDetail); + } + } + + /** + *

+ * Description: 判断是否否决 + *

+ * + * @param context 执行上下文 + * @return 是否否决 + * @throws SchedulerException SchedulerException + */ + public boolean saveVetoJobExecution(JobExecutionContext context) throws SchedulerException { + // 是否否决 + boolean vetoed = false; + // 状态和异常信息 + String status = "vetoed(" + vetoed + ")"; + String exceptionDetail = null; + // 是否记录执行历史(true记录,false不记录) , 是否详细记录执行历史(true记录,false不记录) + if (this.schedulerConfig.getLogFlag() && this.schedulerConfig.getLogDetailFlag()) { + save(context, status, null, exceptionDetail); + } + return vetoed; + } + + /** + *

+ * Description: 准备执行作业 + *

+ * + * @param context 上下文 + * @throws SchedulerException SchedulerException + */ + public void saveJobToBeExecuted(JobExecutionContext context) throws SchedulerException { + // 状态和异常信息 + String status = "toBeExecuted"; + String exceptionDetail = null; + // 是否记录执行历史(true记录,false不记录) , 是否详细记录执行历史(true记录,false不记录) + if (this.schedulerConfig.getLogFlag() && this.schedulerConfig.getLogDetailFlag()) { + save(context, status, null, exceptionDetail); + } + } + + /** + *

+ * Description: 作业执行被否决 + *

+ * + * @param context 上下文 + * @throws SchedulerException SchedulerException + */ + public void saveJobExecutionVetoed(JobExecutionContext context) throws SchedulerException { + // 状态和异常信息 + String status = "executionVetoed"; + String exceptionDetail = null; + // 写入新的记录 + save(context, status, null, exceptionDetail); + } + + /** + *

+ * Description: 作业执行完毕 + *

+ * + * @param context 上下文 + * @param jobException 执行异常 + * @throws SchedulerException 异常信息 + */ + public void saveJobWasExecuted(JobExecutionContext context, JobExecutionException jobException) + throws SchedulerException { + // 状态和异常信息 + String status = "executed"; + String exceptionDetail = null; + // 如果作业异常,则放入信息到result中 + if (null != jobException) { + Map result = new HashMap<>(); + result.put("status", "error"); + result.put("jobException", jobException); + context.setResult(result); + // 获得异常信息 + exceptionDetail = ExceptionUtils.getStackTrace(jobException); + } + // 是否记录执行历史(true记录,false不记录) , 是否详细记录执行历史(true记录,false不记录) + if (this.schedulerConfig.getLogFlag() && this.schedulerConfig.getLogDetailFlag()) { + save(context, status, null, exceptionDetail); + } + } + + /** + *

+ * Description: 触发完成 + *

+ * + * @param context 上下文 + * @param triggerInstructionCode 状态 + * @throws SchedulerException SchedulerException + */ + @SuppressWarnings("unchecked") + public void saveTriggerComplete(JobExecutionContext context, + CompletedExecutionInstruction triggerInstructionCode) throws SchedulerException { + // 状态和异常信息 + String status = "complete"; + String exceptionDetail = null; + // 获得result + Object o = context.getResult(); + if (o instanceof Map) { + Map result = (Map) o; + status = result.get("status").toString(); + JobExecutionException jobException = (JobExecutionException) result.get("jobException"); + // 获得异常信息 + exceptionDetail = ExceptionUtils.getStackTrace(jobException); + } + // 是否记录执行历史(true记录,false不记录) + if (this.schedulerConfig.getLogFlag()) { + save(context, status, triggerInstructionCode.toString(), exceptionDetail); + } + } + + /** + * 描述 : build + * + * @param context context + * @param status status + * @param result result + * @param exceptionDetail exceptionDetail + * @throws SchedulerException SchedulerException + */ + private void save(JobExecutionContext context, String status, String result, + String exceptionDetail) throws SchedulerException { + // 获得计划任务实例 + Scheduler s = context.getScheduler(); + //构造 + ScheduledTriggerLog tstl = new ScheduledTriggerLog(); + tstl.setLogid(context.getFireInstanceId()); + tstl.setScheduledFireTime(context.getScheduledFireTime()); + tstl.setFireTime(context.getFireTime()); + tstl.setEndTime(new Date()); + tstl.setJobRunTime(context.getJobRunTime()); + tstl.setStatus(status); + tstl.setResult(result); + tstl.setErrorMsg(exceptionDetail); + tstl.setTriggerName(context.getTrigger().getKey().getName()); + tstl.setTriggerGroup(context.getTrigger().getKey().getGroup()); + tstl.setJobName(context.getJobDetail().getKey().getName()); + tstl.setJobGroup(context.getJobDetail().getKey().getGroup()); + tstl.setJobClass(context.getJobDetail().getJobClass().getName()); + tstl.setThreadGroupName(Thread.currentThread().getThreadGroup().getName()); + tstl.setThreadId(Long.toString(Thread.currentThread().getId())); + tstl.setThreadName(Thread.currentThread().getName()); + tstl.setThreadPriority(Long.toString(Thread.currentThread().getPriority())); + tstl.setScheduledId(s.getSchedulerInstanceId()); + tstl.setScheduledName(s.getSchedulerName()); + tstl.setCreateDate(new Date()); + if (listenerLog != null) { + listenerLog.delete(context.getFireInstanceId()); + listenerLog.save(tstl); + } + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/SchedulerService.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/SchedulerService.java similarity index 95% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/SchedulerService.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/SchedulerService.java index dd0cf43..8bd8757 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/SchedulerService.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/SchedulerService.java @@ -1,39 +1,39 @@ -/** - * SchedulerService.java - * Created at 2017-06-02 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.service; - -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.scheduling.quartz.SchedulerFactoryBean; -import org.springframework.stereotype.Service; - -/** - * 描述 : SchedulerService - * - * @author Administrator - */ -@Service -public class SchedulerService { - - /** - * 描述 : SchedulerFactoryBean - */ - @Autowired - @Qualifier("clusterQuartzScheduler") - private SchedulerFactoryBean s; - - /** - * 描述 : 清理 - * - * @throws SchedulerException SchedulerException - */ - public void clear() throws SchedulerException { - this.s.getScheduler().clear(); - } - -} +/** + * SchedulerService.java + * Created at 2017-06-02 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.service; + +import org.quartz.SchedulerException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; +import org.springframework.stereotype.Service; + +/** + * 描述 : SchedulerService + * + * @author Administrator + */ +@Service +public class SchedulerService { + + /** + * 描述 : SchedulerFactoryBean + */ + @Autowired + @Qualifier("clusterQuartzScheduler") + private SchedulerFactoryBean s; + + /** + * 描述 : 清理 + * + * @throws SchedulerException SchedulerException + */ + public void clear() throws SchedulerException { + this.s.getScheduler().clear(); + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/TriggerService.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/TriggerService.java similarity index 97% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/TriggerService.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/TriggerService.java index 0799ab0..9c616e8 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/TriggerService.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/service/TriggerService.java @@ -1,458 +1,458 @@ -package org.itkk.udf.scheduler.service; - -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.MapUtils; -import org.apache.commons.lang3.StringUtils; -import org.itkk.udf.core.utils.DateUtil; -import org.itkk.udf.scheduler.SchedulerProperties; -import org.itkk.udf.scheduler.client.SchException; -import org.itkk.udf.scheduler.meta.CronTriggerMeta; -import org.itkk.udf.scheduler.meta.JobDetailMeta; -import org.itkk.udf.scheduler.meta.SimpleTriggerMeta; -import org.itkk.udf.scheduler.meta.TriggerMeta; -import org.quartz.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.scheduling.quartz.SchedulerFactoryBean; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.TimeZone; - -/** - * 描述 : TriggerService - * - * @author Administrator - */ -@Service -public class TriggerService { - - /** - * 描述 : SchedulerFactoryBean - */ - @Autowired - @Qualifier("clusterQuartzScheduler") - private SchedulerFactoryBean s; - - /** - * 描述 : jobService - */ - @Autowired - private JobService jobService; - - /** - * 描述 : schedulerProperties - */ - @Autowired - private SchedulerProperties schedulerProperties; - - /** - * 描述 : 触发器组 - * - * @return 触发器组 - */ - public Map group() { - return schedulerProperties.getTriggerGroup(); - } - - /** - * 描述 : simple的MisfireInstruction - * - * @return simple的MisfireInstruction - */ - public Map simpleMisfireInstruction() { - //定义 - Map result = new HashMap<>(); - result.put(SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW, "Fire Now"); - result.put(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT, - "Reschedule Next With Existing Count"); - result.put(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT, - "Reschedule Next With Remaining Count"); - result.put(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT, - "Now With Existing Repeat Count"); - result.put(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT, - "Reschedule Now With Remaining Repeat Count"); - result.put(SimpleTrigger.MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY, "Ignore Misfire Policy"); - result.put(SimpleTrigger.MISFIRE_INSTRUCTION_SMART_POLICY, "Smart Policy"); - //返回 - return result; - } - - /** - * 描述 : cron的MisfireInstruction - * - * @return cron的MisfireInstruction - */ - public Map cronMisfireInstruction() { - //定义 - Map result = new HashMap<>(); - result.put(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING, "Do Nothing"); - result.put(CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW, "Fire Once Now"); - result.put(CronTrigger.MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY, "Ignore Misfire Policy"); - result.put(CronTrigger.MISFIRE_INSTRUCTION_SMART_POLICY, "Smart Policy"); - //返回 - return result; - } - - /** - * 描述 : 日历列表 - * - * @return 日历列表 - * @throws SchedulerException SchedulerException - */ - public List calendar() throws SchedulerException { - return this.s.getScheduler().getCalendarNames(); - } - - /** - * 描述 : 时区列表 - * - * @return 时区列表 - */ - public Map timeZoneId() { - Map result = new HashMap<>(); - List jgl = DateUtil.fecthAllTimeZoneIds(); - if (CollectionUtils.isNotEmpty(jgl)) { - for (String item : jgl) { - result.put(item, "(UTC+" + DateUtil.getUtcTimeZoneRawOffset(item) + ")" + item); - } - } - return result; - } - - /** - * 描述 : 保存cron触发器 - * - * @param cronTriggerCode cron触发器代码 - * @param cover 是否覆盖 - * @throws SchedulerException SchedulerException - */ - public void saveCronTrigger(String cronTriggerCode, boolean cover) throws SchedulerException { - //获得cron触发器元数据 - CronTriggerMeta triggerMeta = getCronTriggerMeta(cronTriggerCode); - // 获得计划任务管理器 - Scheduler sch = this.s.getScheduler(); - //获得触发器键 - TriggerKey triggerKey = new TriggerKey(triggerMeta.getName(), triggerMeta.getGroup()); - //判断触发器是否存在 - if (sch.checkExists(triggerKey) && !cover) { - throw new SchException("trigger key : " + triggerMeta.getName() + " / group : " //NOSONAR - + triggerMeta.getGroup() + " already exist!"); - } - //获得作业元数据 - JobDetailMeta jobDetailMeta = jobService.getJobDetailMeta(triggerMeta.getJobCode()); - // 获得jobkey - JobKey jobKey = jobService.getJobKey(jobDetailMeta); - // 获得jobDataMap - JobDataMap jobDataMap = new JobDataMap(); - if (MapUtils.isNotEmpty(triggerMeta.getDataMap())) { - jobDataMap = new JobDataMap(triggerMeta.getDataMap()); - } - // 获得triggerBuilder - TriggerBuilder triggerBuilder = TriggerBuilder.newTrigger(); - // 设置triggerBuilder - triggerBuilder.withIdentity(triggerKey); // 设置触发器对象 - triggerBuilder.usingJobData(jobDataMap); // 设置jobDataMap - triggerBuilder.withPriority(triggerMeta.getPriority()); // 设置优先级 - if (triggerMeta.getStartTime() == null) { // 设置开始时间 - triggerBuilder.startNow(); - } else { - triggerBuilder.startAt(triggerMeta.getStartTime()); - } - triggerBuilder.endAt(triggerMeta.getEndTime()); // 结束时间,可以为空 - triggerBuilder.forJob(jobKey); // 针对的作业 - triggerBuilder.withDescription(triggerMeta.getDescription()); // 设置描述 - if (!StringUtils.isEmpty(triggerMeta.getCalendar())) { // 设置日历 - triggerBuilder.modifiedByCalendar(triggerMeta.getCalendar()); - } - // cron表达式 - CronScheduleBuilder cronTriggerBuilder = - CronScheduleBuilder.cronSchedule(triggerMeta.getCron()); - // 时区 - cronTriggerBuilder.inTimeZone(TimeZone.getTimeZone(triggerMeta.getTimeZoneId())); - // 设置触发机制 默认 SimpleTrigger.MISFIRE_INSTRUCTION_SMART_POLICY - switch (triggerMeta.getMisfireInstruction()) { - case CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING: - cronTriggerBuilder.withMisfireHandlingInstructionDoNothing(); - break; - case CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW: - cronTriggerBuilder.withMisfireHandlingInstructionFireAndProceed(); - break; - case CronTrigger.MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY: - cronTriggerBuilder.withMisfireHandlingInstructionIgnoreMisfires(); - break; - default: - break; - } - // 将cronTrigger设置到triggerBuilder中 - triggerBuilder.withSchedule(cronTriggerBuilder); - // 构造Trigger - Trigger trigger = triggerBuilder.build(); - // 处理 - this.scheduleJob(triggerKey, jobKey, trigger); - } - - /** - * 描述 : 保存simple触发器 - * - * @param simpleTriggerCode simple触发器代码 - * @param cover 是否覆盖 - * @throws SchedulerException SchedulerException - */ - public void saveSimpleTirgger(String simpleTriggerCode, boolean cover) throws SchedulerException { //NOSONAR - //获得simple触发器元数据 - SimpleTriggerMeta triggerMeta = getSimpleTriggerMeta(simpleTriggerCode); - // 获得计划任务管理器 - Scheduler sch = this.s.getScheduler(); - //获得触发器键 - TriggerKey triggerKey = new TriggerKey(triggerMeta.getName(), triggerMeta.getGroup()); - //判断触发器是否存在 - if (sch.checkExists(triggerKey) && !cover) { - throw new SchException("trigger key : " + triggerMeta.getName() + " / group : " //NOSONAR - + triggerMeta.getGroup() + " already exist!"); - } - //获得作业元数据 - JobDetailMeta jobDetailMeta = jobService.getJobDetailMeta(triggerMeta.getJobCode()); - // 获得jobkey - JobKey jobKey = jobService.getJobKey(jobDetailMeta); - // 获得jobDataMap - JobDataMap jobDataMap = new JobDataMap(); - if (MapUtils.isNotEmpty(triggerMeta.getDataMap())) { - jobDataMap = new JobDataMap(triggerMeta.getDataMap()); - } - // 获得triggerBuilder - TriggerBuilder triggerBuilder = TriggerBuilder.newTrigger(); - // 设置triggerBuilder - triggerBuilder.withIdentity(triggerKey); // 设置触发器对象 - triggerBuilder.usingJobData(jobDataMap); // 设置jobDataMap - triggerBuilder.withPriority(triggerMeta.getPriority()); // 设置优先级 - if (triggerMeta.getStartTime() == null) { // 设置开始时间 - triggerBuilder.startNow(); - } else { - triggerBuilder.startAt(triggerMeta.getStartTime()); - } - triggerBuilder.endAt(triggerMeta.getEndTime()); // 结束时间,可以为空 - triggerBuilder.forJob(jobKey); // 针对的作业 - triggerBuilder.withDescription(triggerMeta.getDescription()); // 设置描述 - if (!StringUtils.isEmpty(triggerMeta.getCalendar())) { // 设置日历 - triggerBuilder.modifiedByCalendar(triggerMeta.getCalendar()); - } - // 获得SimpleTrigger - SimpleScheduleBuilder simpleTriggerBuilder = SimpleScheduleBuilder.simpleSchedule(); - if (triggerMeta.getRepeatCount() != null) { // 重复次数 - simpleTriggerBuilder.withRepeatCount(triggerMeta.getRepeatCount()); - } else { - simpleTriggerBuilder.repeatForever(); - } - // 重复时间 - simpleTriggerBuilder.withIntervalInMilliseconds(triggerMeta.getIntervalInMilliseconds()); - // 设置触发机制 默认 SimpleTrigger.MISFIRE_INSTRUCTION_SMART_POLICY - switch (triggerMeta.getMisfireInstruction()) { - case SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW: - simpleTriggerBuilder.withMisfireHandlingInstructionFireNow(); - break; - case SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT: - simpleTriggerBuilder.withMisfireHandlingInstructionNextWithExistingCount(); - break; - case SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT: - simpleTriggerBuilder.withMisfireHandlingInstructionNextWithRemainingCount(); - break; - case SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT: - simpleTriggerBuilder.withMisfireHandlingInstructionNowWithExistingCount(); - break; - case SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT: - simpleTriggerBuilder.withMisfireHandlingInstructionNowWithRemainingCount(); - break; - case SimpleTrigger.MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY: - simpleTriggerBuilder.withMisfireHandlingInstructionIgnoreMisfires(); - break; - default: - break; - } - // 将SimpleTrigger设置到triggerBuilder中 - triggerBuilder.withSchedule(simpleTriggerBuilder); - // 构造Trigger - Trigger trigger = triggerBuilder.build(); - // 处理 - this.scheduleJob(triggerKey, jobKey, trigger); - } - - /** - * 为job添加触发器 - * - * @param triggerKey triggerKey - * @param jobKey jobKey - * @param trigger trigger - * @throws SchedulerException SchedulerException - */ - private void scheduleJob(TriggerKey triggerKey, JobKey jobKey, Trigger trigger) throws SchedulerException { - // 获得计划任务管理器 - Scheduler sch = this.s.getScheduler(); - // 判断trigger是否存在 - if (sch.checkExists(triggerKey)) { - // 获得当前触发器 - Trigger t = sch.getTrigger(triggerKey); - // 判断触发器关联 - if (jobKey.getName().equals(t.getJobKey().getName()) - && jobKey.getGroup().equals(t.getJobKey().getGroup())) { - // 更新触发器 - sch.rescheduleJob(triggerKey, trigger); - } else { - throw new SchException("rescheduleJob fail"); - } - } else { - // 创建触发器 - sch.scheduleJob(trigger); - } - } - - /** - * 描述 : 移除 - * - * @param triggerCode triggerCode - * @throws SchedulerException SchedulerException - */ - public void remove(String triggerCode) throws SchedulerException { - //获得触发器元数据 - TriggerMeta triggerMeta = getTriggerMeta(triggerCode); - // 获得triggerKey - TriggerKey triggerKey = getTriggerKey(triggerMeta); - // 操作 - this.s.getScheduler().unscheduleJob(triggerKey); - } - - /** - * 描述 : 暂停 - * - * @param triggerCode triggerCode - * @throws SchedulerException SchedulerException - */ - public void puse(String triggerCode) throws SchedulerException { - //获得触发器元数据 - TriggerMeta triggerMeta = getTriggerMeta(triggerCode); - // 获得triggerKey - TriggerKey triggerKey = getTriggerKey(triggerMeta); - // 操作 - this.s.getScheduler().pauseTrigger(triggerKey); - } - - /** - * 描述 : 恢复 - * - * @param triggerCode triggerCode - * @throws SchedulerException SchedulerException - */ - public void resume(String triggerCode) throws SchedulerException { - //获得触发器元数据 - TriggerMeta triggerMeta = getTriggerMeta(triggerCode); - // 获得triggerKey - TriggerKey triggerKey = getTriggerKey(triggerMeta); - // 操作 - this.s.getScheduler().resumeTrigger(triggerKey); - } - - /** - * 描述 : 获得TriggerKey - * - * @param triggerMeta 触发器元数据 - * @return TriggerKey - * @throws SchedulerException SchedulerException - */ - protected TriggerKey getTriggerKey(TriggerMeta triggerMeta) throws SchedulerException { - // 获得计划任务管理器 - Scheduler sch = this.s.getScheduler(); - // 设置triggerKey - TriggerKey triggerKey = new TriggerKey(triggerMeta.getName(), triggerMeta.getGroup()); - //判断job是否存在 - if (sch.checkExists(triggerKey)) { - return triggerKey; - } else { - throw new SchException("trigger key : " + triggerMeta.getName() + " / group : " - + triggerMeta.getGroup() + " not exist!"); - } - } - - /** - * 描述 : 返回触发器元数据 - * - * @param triggerCode 触发器代码 - * @return 触发器元数据 - */ - protected TriggerMeta getTriggerMeta(String triggerCode) { //NOSONAR - TriggerMeta cornTriggerMeta = null; - TriggerMeta simpleTriggerMeta = null; - if (MapUtils.isNotEmpty(schedulerProperties.getCronTrigger())) { - cornTriggerMeta = schedulerProperties.getCronTrigger().get(triggerCode); - } - if (MapUtils.isNotEmpty(schedulerProperties.getSimpleTrigger())) { - simpleTriggerMeta = schedulerProperties.getSimpleTrigger().get(triggerCode); - } - if (cornTriggerMeta == null && simpleTriggerMeta == null) { - throw new SchException("triggerCode : " + triggerCode + " not defined!"); //NOSONAR - } else if (simpleTriggerMeta == null) { - return cornTriggerMeta; - } else if (cornTriggerMeta == null) { - return simpleTriggerMeta; - } else { - throw new SchException("triggerCode : " + triggerCode + " Definition repeats "); - } - } - - /** - * 描述 : 获得cron触发器元数据 - * - * @param cronTriggerCode simple触发器代码 - * @return simple触发器元数据 - */ - protected CronTriggerMeta getCronTriggerMeta(String cronTriggerCode) { - //判空 - if (MapUtils.isEmpty(schedulerProperties.getCronTrigger())) { - throw new SchException("cronTrigger not defined!"); - } - //获得触发器定义 - CronTriggerMeta cronTriggerMeta = schedulerProperties.getCronTrigger().get(cronTriggerCode); - //判断触发器是否存在 - if (cronTriggerMeta == null) { - throw new SchException("cronTriggerCode : " + cronTriggerCode + " not defined!"); //NOSONAR - } - //获得组别定义 - String groupName = schedulerProperties.getTriggerGroup().get(cronTriggerMeta.getGroup()); - //判断组别是否存在 - if (StringUtils.isBlank(groupName)) { - throw new SchException("group : " + cronTriggerMeta.getGroup() + " not defined!"); //NOSONAR - } - //返回 - return cronTriggerMeta; - } - - /** - * 描述 : 获得simple触发器元数据 - * - * @param simpleTriggerCode simple触发器代码 - * @return simple触发器元数据 - */ - protected SimpleTriggerMeta getSimpleTriggerMeta(String simpleTriggerCode) { - //判空 - if (MapUtils.isEmpty(schedulerProperties.getSimpleTrigger())) { - throw new SchException("simpleTrigger not defined!"); - } - //获得触发器定义 - SimpleTriggerMeta simpleTriggerMeta = - schedulerProperties.getSimpleTrigger().get(simpleTriggerCode); - //判断触发器是否存在 - if (simpleTriggerMeta == null) { - throw new SchException("simpleTriggerCode : " + simpleTriggerCode + " not defined!"); //NOSONAR - } - //获得组别定义 - String groupName = schedulerProperties.getTriggerGroup().get(simpleTriggerMeta.getGroup()); - //判断组别是否存在 - if (StringUtils.isBlank(groupName)) { - throw new SchException("group : " + simpleTriggerMeta.getGroup() + " not defined!"); //NOSONAR - } - //返回 - return simpleTriggerMeta; - } - -} +package org.itkk.udf.scheduler.service; + +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.itkk.udf.core.utils.DateUtil; +import org.itkk.udf.scheduler.SchedulerProperties; +import org.itkk.udf.scheduler.client.SchException; +import org.itkk.udf.scheduler.meta.CronTriggerMeta; +import org.itkk.udf.scheduler.meta.JobDetailMeta; +import org.itkk.udf.scheduler.meta.SimpleTriggerMeta; +import org.itkk.udf.scheduler.meta.TriggerMeta; +import org.quartz.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TimeZone; + +/** + * 描述 : TriggerService + * + * @author Administrator + */ +@Service +public class TriggerService { + + /** + * 描述 : SchedulerFactoryBean + */ + @Autowired + @Qualifier("clusterQuartzScheduler") + private SchedulerFactoryBean s; + + /** + * 描述 : jobService + */ + @Autowired + private JobService jobService; + + /** + * 描述 : schedulerProperties + */ + @Autowired + private SchedulerProperties schedulerProperties; + + /** + * 描述 : 触发器组 + * + * @return 触发器组 + */ + public Map group() { + return schedulerProperties.getTriggerGroup(); + } + + /** + * 描述 : simple的MisfireInstruction + * + * @return simple的MisfireInstruction + */ + public Map simpleMisfireInstruction() { + //定义 + Map result = new HashMap<>(); + result.put(SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW, "Fire Now"); + result.put(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT, + "Reschedule Next With Existing Count"); + result.put(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT, + "Reschedule Next With Remaining Count"); + result.put(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT, + "Now With Existing Repeat Count"); + result.put(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT, + "Reschedule Now With Remaining Repeat Count"); + result.put(SimpleTrigger.MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY, "Ignore Misfire Policy"); + result.put(SimpleTrigger.MISFIRE_INSTRUCTION_SMART_POLICY, "Smart Policy"); + //返回 + return result; + } + + /** + * 描述 : cron的MisfireInstruction + * + * @return cron的MisfireInstruction + */ + public Map cronMisfireInstruction() { + //定义 + Map result = new HashMap<>(); + result.put(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING, "Do Nothing"); + result.put(CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW, "Fire Once Now"); + result.put(CronTrigger.MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY, "Ignore Misfire Policy"); + result.put(CronTrigger.MISFIRE_INSTRUCTION_SMART_POLICY, "Smart Policy"); + //返回 + return result; + } + + /** + * 描述 : 日历列表 + * + * @return 日历列表 + * @throws SchedulerException SchedulerException + */ + public List calendar() throws SchedulerException { + return this.s.getScheduler().getCalendarNames(); + } + + /** + * 描述 : 时区列表 + * + * @return 时区列表 + */ + public Map timeZoneId() { + Map result = new HashMap<>(); + List jgl = DateUtil.fecthAllTimeZoneIds(); + if (CollectionUtils.isNotEmpty(jgl)) { + for (String item : jgl) { + result.put(item, "(UTC+" + DateUtil.getUtcTimeZoneRawOffset(item) + ")" + item); + } + } + return result; + } + + /** + * 描述 : 保存cron触发器 + * + * @param cronTriggerCode cron触发器代码 + * @param cover 是否覆盖 + * @throws SchedulerException SchedulerException + */ + public void saveCronTrigger(String cronTriggerCode, boolean cover) throws SchedulerException { + //获得cron触发器元数据 + CronTriggerMeta triggerMeta = getCronTriggerMeta(cronTriggerCode); + // 获得计划任务管理器 + Scheduler sch = this.s.getScheduler(); + //获得触发器键 + TriggerKey triggerKey = new TriggerKey(triggerMeta.getName(), triggerMeta.getGroup()); + //判断触发器是否存在 + if (sch.checkExists(triggerKey) && !cover) { + throw new SchException("trigger key : " + triggerMeta.getName() + " / group : " //NOSONAR + + triggerMeta.getGroup() + " already exist!"); + } + //获得作业元数据 + JobDetailMeta jobDetailMeta = jobService.getJobDetailMeta(triggerMeta.getJobCode()); + // 获得jobkey + JobKey jobKey = jobService.getJobKey(jobDetailMeta); + // 获得jobDataMap + JobDataMap jobDataMap = new JobDataMap(); + if (MapUtils.isNotEmpty(triggerMeta.getDataMap())) { + jobDataMap = new JobDataMap(triggerMeta.getDataMap()); + } + // 获得triggerBuilder + TriggerBuilder triggerBuilder = TriggerBuilder.newTrigger(); + // 设置triggerBuilder + triggerBuilder.withIdentity(triggerKey); // 设置触发器对象 + triggerBuilder.usingJobData(jobDataMap); // 设置jobDataMap + triggerBuilder.withPriority(triggerMeta.getPriority()); // 设置优先级 + if (triggerMeta.getStartTime() == null) { // 设置开始时间 + triggerBuilder.startNow(); + } else { + triggerBuilder.startAt(triggerMeta.getStartTime()); + } + triggerBuilder.endAt(triggerMeta.getEndTime()); // 结束时间,可以为空 + triggerBuilder.forJob(jobKey); // 针对的作业 + triggerBuilder.withDescription(triggerMeta.getDescription()); // 设置描述 + if (!StringUtils.isEmpty(triggerMeta.getCalendar())) { // 设置日历 + triggerBuilder.modifiedByCalendar(triggerMeta.getCalendar()); + } + // cron表达式 + CronScheduleBuilder cronTriggerBuilder = + CronScheduleBuilder.cronSchedule(triggerMeta.getCron()); + // 时区 + cronTriggerBuilder.inTimeZone(TimeZone.getTimeZone(triggerMeta.getTimeZoneId())); + // 设置触发机制 默认 SimpleTrigger.MISFIRE_INSTRUCTION_SMART_POLICY + switch (triggerMeta.getMisfireInstruction()) { + case CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING: + cronTriggerBuilder.withMisfireHandlingInstructionDoNothing(); + break; + case CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW: + cronTriggerBuilder.withMisfireHandlingInstructionFireAndProceed(); + break; + case CronTrigger.MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY: + cronTriggerBuilder.withMisfireHandlingInstructionIgnoreMisfires(); + break; + default: + break; + } + // 将cronTrigger设置到triggerBuilder中 + triggerBuilder.withSchedule(cronTriggerBuilder); + // 构造Trigger + Trigger trigger = triggerBuilder.build(); + // 处理 + this.scheduleJob(triggerKey, jobKey, trigger); + } + + /** + * 描述 : 保存simple触发器 + * + * @param simpleTriggerCode simple触发器代码 + * @param cover 是否覆盖 + * @throws SchedulerException SchedulerException + */ + public void saveSimpleTirgger(String simpleTriggerCode, boolean cover) throws SchedulerException { //NOSONAR + //获得simple触发器元数据 + SimpleTriggerMeta triggerMeta = getSimpleTriggerMeta(simpleTriggerCode); + // 获得计划任务管理器 + Scheduler sch = this.s.getScheduler(); + //获得触发器键 + TriggerKey triggerKey = new TriggerKey(triggerMeta.getName(), triggerMeta.getGroup()); + //判断触发器是否存在 + if (sch.checkExists(triggerKey) && !cover) { + throw new SchException("trigger key : " + triggerMeta.getName() + " / group : " //NOSONAR + + triggerMeta.getGroup() + " already exist!"); + } + //获得作业元数据 + JobDetailMeta jobDetailMeta = jobService.getJobDetailMeta(triggerMeta.getJobCode()); + // 获得jobkey + JobKey jobKey = jobService.getJobKey(jobDetailMeta); + // 获得jobDataMap + JobDataMap jobDataMap = new JobDataMap(); + if (MapUtils.isNotEmpty(triggerMeta.getDataMap())) { + jobDataMap = new JobDataMap(triggerMeta.getDataMap()); + } + // 获得triggerBuilder + TriggerBuilder triggerBuilder = TriggerBuilder.newTrigger(); + // 设置triggerBuilder + triggerBuilder.withIdentity(triggerKey); // 设置触发器对象 + triggerBuilder.usingJobData(jobDataMap); // 设置jobDataMap + triggerBuilder.withPriority(triggerMeta.getPriority()); // 设置优先级 + if (triggerMeta.getStartTime() == null) { // 设置开始时间 + triggerBuilder.startNow(); + } else { + triggerBuilder.startAt(triggerMeta.getStartTime()); + } + triggerBuilder.endAt(triggerMeta.getEndTime()); // 结束时间,可以为空 + triggerBuilder.forJob(jobKey); // 针对的作业 + triggerBuilder.withDescription(triggerMeta.getDescription()); // 设置描述 + if (!StringUtils.isEmpty(triggerMeta.getCalendar())) { // 设置日历 + triggerBuilder.modifiedByCalendar(triggerMeta.getCalendar()); + } + // 获得SimpleTrigger + SimpleScheduleBuilder simpleTriggerBuilder = SimpleScheduleBuilder.simpleSchedule(); + if (triggerMeta.getRepeatCount() != null) { // 重复次数 + simpleTriggerBuilder.withRepeatCount(triggerMeta.getRepeatCount()); + } else { + simpleTriggerBuilder.repeatForever(); + } + // 重复时间 + simpleTriggerBuilder.withIntervalInMilliseconds(triggerMeta.getIntervalInMilliseconds()); + // 设置触发机制 默认 SimpleTrigger.MISFIRE_INSTRUCTION_SMART_POLICY + switch (triggerMeta.getMisfireInstruction()) { + case SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW: + simpleTriggerBuilder.withMisfireHandlingInstructionFireNow(); + break; + case SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT: + simpleTriggerBuilder.withMisfireHandlingInstructionNextWithExistingCount(); + break; + case SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT: + simpleTriggerBuilder.withMisfireHandlingInstructionNextWithRemainingCount(); + break; + case SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT: + simpleTriggerBuilder.withMisfireHandlingInstructionNowWithExistingCount(); + break; + case SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT: + simpleTriggerBuilder.withMisfireHandlingInstructionNowWithRemainingCount(); + break; + case SimpleTrigger.MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY: + simpleTriggerBuilder.withMisfireHandlingInstructionIgnoreMisfires(); + break; + default: + break; + } + // 将SimpleTrigger设置到triggerBuilder中 + triggerBuilder.withSchedule(simpleTriggerBuilder); + // 构造Trigger + Trigger trigger = triggerBuilder.build(); + // 处理 + this.scheduleJob(triggerKey, jobKey, trigger); + } + + /** + * 为job添加触发器 + * + * @param triggerKey triggerKey + * @param jobKey jobKey + * @param trigger trigger + * @throws SchedulerException SchedulerException + */ + private void scheduleJob(TriggerKey triggerKey, JobKey jobKey, Trigger trigger) throws SchedulerException { + // 获得计划任务管理器 + Scheduler sch = this.s.getScheduler(); + // 判断trigger是否存在 + if (sch.checkExists(triggerKey)) { + // 获得当前触发器 + Trigger t = sch.getTrigger(triggerKey); + // 判断触发器关联 + if (jobKey.getName().equals(t.getJobKey().getName()) + && jobKey.getGroup().equals(t.getJobKey().getGroup())) { + // 更新触发器 + sch.rescheduleJob(triggerKey, trigger); + } else { + throw new SchException("rescheduleJob fail"); + } + } else { + // 创建触发器 + sch.scheduleJob(trigger); + } + } + + /** + * 描述 : 移除 + * + * @param triggerCode triggerCode + * @throws SchedulerException SchedulerException + */ + public void remove(String triggerCode) throws SchedulerException { + //获得触发器元数据 + TriggerMeta triggerMeta = getTriggerMeta(triggerCode); + // 获得triggerKey + TriggerKey triggerKey = getTriggerKey(triggerMeta); + // 操作 + this.s.getScheduler().unscheduleJob(triggerKey); + } + + /** + * 描述 : 暂停 + * + * @param triggerCode triggerCode + * @throws SchedulerException SchedulerException + */ + public void puse(String triggerCode) throws SchedulerException { + //获得触发器元数据 + TriggerMeta triggerMeta = getTriggerMeta(triggerCode); + // 获得triggerKey + TriggerKey triggerKey = getTriggerKey(triggerMeta); + // 操作 + this.s.getScheduler().pauseTrigger(triggerKey); + } + + /** + * 描述 : 恢复 + * + * @param triggerCode triggerCode + * @throws SchedulerException SchedulerException + */ + public void resume(String triggerCode) throws SchedulerException { + //获得触发器元数据 + TriggerMeta triggerMeta = getTriggerMeta(triggerCode); + // 获得triggerKey + TriggerKey triggerKey = getTriggerKey(triggerMeta); + // 操作 + this.s.getScheduler().resumeTrigger(triggerKey); + } + + /** + * 描述 : 获得TriggerKey + * + * @param triggerMeta 触发器元数据 + * @return TriggerKey + * @throws SchedulerException SchedulerException + */ + protected TriggerKey getTriggerKey(TriggerMeta triggerMeta) throws SchedulerException { + // 获得计划任务管理器 + Scheduler sch = this.s.getScheduler(); + // 设置triggerKey + TriggerKey triggerKey = new TriggerKey(triggerMeta.getName(), triggerMeta.getGroup()); + //判断job是否存在 + if (sch.checkExists(triggerKey)) { + return triggerKey; + } else { + throw new SchException("trigger key : " + triggerMeta.getName() + " / group : " + + triggerMeta.getGroup() + " not exist!"); + } + } + + /** + * 描述 : 返回触发器元数据 + * + * @param triggerCode 触发器代码 + * @return 触发器元数据 + */ + protected TriggerMeta getTriggerMeta(String triggerCode) { //NOSONAR + TriggerMeta cornTriggerMeta = null; + TriggerMeta simpleTriggerMeta = null; + if (MapUtils.isNotEmpty(schedulerProperties.getCronTrigger())) { + cornTriggerMeta = schedulerProperties.getCronTrigger().get(triggerCode); + } + if (MapUtils.isNotEmpty(schedulerProperties.getSimpleTrigger())) { + simpleTriggerMeta = schedulerProperties.getSimpleTrigger().get(triggerCode); + } + if (cornTriggerMeta == null && simpleTriggerMeta == null) { + throw new SchException("triggerCode : " + triggerCode + " not defined!"); //NOSONAR + } else if (simpleTriggerMeta == null) { + return cornTriggerMeta; + } else if (cornTriggerMeta == null) { + return simpleTriggerMeta; + } else { + throw new SchException("triggerCode : " + triggerCode + " Definition repeats "); + } + } + + /** + * 描述 : 获得cron触发器元数据 + * + * @param cronTriggerCode simple触发器代码 + * @return simple触发器元数据 + */ + protected CronTriggerMeta getCronTriggerMeta(String cronTriggerCode) { + //判空 + if (MapUtils.isEmpty(schedulerProperties.getCronTrigger())) { + throw new SchException("cronTrigger not defined!"); + } + //获得触发器定义 + CronTriggerMeta cronTriggerMeta = schedulerProperties.getCronTrigger().get(cronTriggerCode); + //判断触发器是否存在 + if (cronTriggerMeta == null) { + throw new SchException("cronTriggerCode : " + cronTriggerCode + " not defined!"); //NOSONAR + } + //获得组别定义 + String groupName = schedulerProperties.getTriggerGroup().get(cronTriggerMeta.getGroup()); + //判断组别是否存在 + if (StringUtils.isBlank(groupName)) { + throw new SchException("group : " + cronTriggerMeta.getGroup() + " not defined!"); //NOSONAR + } + //返回 + return cronTriggerMeta; + } + + /** + * 描述 : 获得simple触发器元数据 + * + * @param simpleTriggerCode simple触发器代码 + * @return simple触发器元数据 + */ + protected SimpleTriggerMeta getSimpleTriggerMeta(String simpleTriggerCode) { + //判空 + if (MapUtils.isEmpty(schedulerProperties.getSimpleTrigger())) { + throw new SchException("simpleTrigger not defined!"); + } + //获得触发器定义 + SimpleTriggerMeta simpleTriggerMeta = + schedulerProperties.getSimpleTrigger().get(simpleTriggerCode); + //判断触发器是否存在 + if (simpleTriggerMeta == null) { + throw new SchException("simpleTriggerCode : " + simpleTriggerCode + " not defined!"); //NOSONAR + } + //获得组别定义 + String groupName = schedulerProperties.getTriggerGroup().get(simpleTriggerMeta.getGroup()); + //判断组别是否存在 + if (StringUtils.isBlank(groupName)) { + throw new SchException("group : " + simpleTriggerMeta.getGroup() + " not defined!"); //NOSONAR + } + //返回 + return simpleTriggerMeta; + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/IJobController.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/IJobController.java similarity index 98% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/IJobController.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/IJobController.java index c5a8c80..d3eff15 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/IJobController.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/IJobController.java @@ -1,94 +1,94 @@ -/** - * IJobController.java - * Created at 2017-06-11 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.web; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.itkk.udf.core.RestResponse; -import org.quartz.SchedulerException; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -import java.util.Map; - -/** - * 描述 : IJobController - * - * @author Administrator - */ -@Api(value = "作业服务", consumes = "application/json", produces = "application/json", protocols = "http") -@RequestMapping(value = "/service/scheduler/job") -public interface IJobController { - - /** - * 描述 : 保存作业 - * - * @param jobCode 作业代码 - * @return 操作结果 - * @throws ClassNotFoundException ClassNotFoundException - * @throws SchedulerException SchedulerException - */ - @ApiOperation(value = "SCHEDULER_JOB_1", notes = "保存作业") - @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "path", name = "jobCode", value = "作业代码", required = true, dataType = "string") }) - @RequestMapping(value = "{jobCode}", method = RequestMethod.POST) - RestResponse save(@PathVariable String jobCode) throws ClassNotFoundException, SchedulerException; //NOSONAR - - /** - * 描述 : 保存作业(覆盖) - * - * @param jobCode 作业代码 - * @return 操作结果 - * @throws ClassNotFoundException ClassNotFoundException - * @throws SchedulerException SchedulerException - */ - @ApiOperation(value = "SCHEDULER_JOB_2", notes = "保存作业(覆盖)") - @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "path", name = "jobCode", value = "作业代码", required = true, dataType = "string") }) - @RequestMapping(value = "{jobCode}/cover", method = RequestMethod.PUT) - RestResponse saveCover(@PathVariable String jobCode) throws ClassNotFoundException, SchedulerException; //NOSONAR - - /** - * 描述 : 移除作业 - * - * @param jobCode 作业代码 - * @return 操作结果 - * @throws SchedulerException SchedulerException - */ - @ApiOperation(value = "SCHEDULER_JOB_3", notes = "移除作业") - @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "path", name = "jobCode", value = "作业代码", required = true, dataType = "string") }) - @RequestMapping(value = "{jobCode}", method = RequestMethod.DELETE) - RestResponse remove(@PathVariable String jobCode) throws SchedulerException; //NOSONAR - - /** - * 描述 : 触发作业 - * - * @param jobCode 作业代码 - * @param jobDataMap jobDataMap - * @return 操作结果 - * @throws SchedulerException SchedulerException - */ - @ApiOperation(value = "SCHEDULER_JOB_4", notes = "触发作业") - @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "path", name = "jobCode", value = "作业代码", required = true, dataType = "string") }) - @RequestMapping(value = "trigger/{jobCode}", method = RequestMethod.POST) - RestResponse trigger(@PathVariable String jobCode, @RequestBody Map jobDataMap) throws SchedulerException; - -} +/** + * IJobController.java + * Created at 2017-06-11 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.itkk.udf.core.RestResponse; +import org.quartz.SchedulerException; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.util.Map; + +/** + * 描述 : IJobController + * + * @author Administrator + */ +@Api(value = "作业服务", consumes = "application/json", produces = "application/json", protocols = "http") +@RequestMapping(value = "/service/scheduler/job") +public interface IJobController { + + /** + * 描述 : 保存作业 + * + * @param jobCode 作业代码 + * @return 操作结果 + * @throws ClassNotFoundException ClassNotFoundException + * @throws SchedulerException SchedulerException + */ + @ApiOperation(value = "SCHEDULER_JOB_1", notes = "保存作业") + @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "path", name = "jobCode", value = "作业代码", required = true, dataType = "string") }) + @RequestMapping(value = "{jobCode}", method = RequestMethod.POST) + RestResponse save(@PathVariable String jobCode) throws ClassNotFoundException, SchedulerException; //NOSONAR + + /** + * 描述 : 保存作业(覆盖) + * + * @param jobCode 作业代码 + * @return 操作结果 + * @throws ClassNotFoundException ClassNotFoundException + * @throws SchedulerException SchedulerException + */ + @ApiOperation(value = "SCHEDULER_JOB_2", notes = "保存作业(覆盖)") + @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "path", name = "jobCode", value = "作业代码", required = true, dataType = "string") }) + @RequestMapping(value = "{jobCode}/cover", method = RequestMethod.PUT) + RestResponse saveCover(@PathVariable String jobCode) throws ClassNotFoundException, SchedulerException; //NOSONAR + + /** + * 描述 : 移除作业 + * + * @param jobCode 作业代码 + * @return 操作结果 + * @throws SchedulerException SchedulerException + */ + @ApiOperation(value = "SCHEDULER_JOB_3", notes = "移除作业") + @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "path", name = "jobCode", value = "作业代码", required = true, dataType = "string") }) + @RequestMapping(value = "{jobCode}", method = RequestMethod.DELETE) + RestResponse remove(@PathVariable String jobCode) throws SchedulerException; //NOSONAR + + /** + * 描述 : 触发作业 + * + * @param jobCode 作业代码 + * @param jobDataMap jobDataMap + * @return 操作结果 + * @throws SchedulerException SchedulerException + */ + @ApiOperation(value = "SCHEDULER_JOB_4", notes = "触发作业") + @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "path", name = "jobCode", value = "作业代码", required = true, dataType = "string") }) + @RequestMapping(value = "trigger/{jobCode}", method = RequestMethod.POST) + RestResponse trigger(@PathVariable String jobCode, @RequestBody Map jobDataMap) throws SchedulerException; + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchClientCallbackController.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchClientCallbackController.java similarity index 97% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchClientCallbackController.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchClientCallbackController.java index 92afa36..46ef4ab 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchClientCallbackController.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchClientCallbackController.java @@ -1,46 +1,46 @@ -/** - * ISchClientCallbackController.java - * Created at 2017-06-11 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.web; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.scheduler.client.domain.RmsJobResult; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -/** - * 描述 : ISchClientCallbackController - * - * @author Administrator - */ -@Api(value = "调度客户端回调服务", consumes = "application/json", produces = "application/json", - protocols = "http") -@RequestMapping(value = "/service/scheduler/client/callback") -public interface ISchClientCallbackController { //NOSONAR - - /** - * 描述 : 客户端回调 - * - * @param result 执行结果 - * @return 结果 - */ - @ApiOperation(value = "SCH_CLIENT_CALLBACK_1", notes = "客户端回调") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", - required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, - dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", - required = true, dataType = "string")}) - @RequestMapping(method = RequestMethod.POST) - RestResponse callback(@RequestBody RmsJobResult result); - -} +/** + * ISchClientCallbackController.java + * Created at 2017-06-11 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.scheduler.client.domain.RmsJobResult; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +/** + * 描述 : ISchClientCallbackController + * + * @author Administrator + */ +@Api(value = "调度客户端回调服务", consumes = "application/json", produces = "application/json", + protocols = "http") +@RequestMapping(value = "/service/scheduler/client/callback") +public interface ISchClientCallbackController { //NOSONAR + + /** + * 描述 : 客户端回调 + * + * @param result 执行结果 + * @return 结果 + */ + @ApiOperation(value = "SCH_CLIENT_CALLBACK_1", notes = "客户端回调") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", + required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, + dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", + required = true, dataType = "string")}) + @RequestMapping(method = RequestMethod.POST) + RestResponse callback(@RequestBody RmsJobResult result); + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchedulerController.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchedulerController.java similarity index 97% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchedulerController.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchedulerController.java index 99f4220..d702b49 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchedulerController.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ISchedulerController.java @@ -1,45 +1,45 @@ -/** - * IJobController.java - * Created at 2017-06-11 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.web; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.itkk.udf.core.RestResponse; -import org.quartz.SchedulerException; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -/** - * 描述 : IJobController - * - * @author Administrator - */ -@Api(value = "调度服务", consumes = "application/json", produces = "application/json", - protocols = "http") -@RequestMapping(value = "/service/scheduler") -public interface ISchedulerController { //NOSONAR - - /** - * 描述 : 清理数据 - * - * @return 操作结果 - * @throws SchedulerException SchedulerException - */ - @ApiOperation(value = "SCHEDULER_1", notes = "清理数据") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", - required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, - dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", - required = true, dataType = "string")}) - @RequestMapping(value = "clear", method = RequestMethod.DELETE) - RestResponse clear() throws SchedulerException; - -} +/** + * IJobController.java + * Created at 2017-06-11 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.itkk.udf.core.RestResponse; +import org.quartz.SchedulerException; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +/** + * 描述 : IJobController + * + * @author Administrator + */ +@Api(value = "调度服务", consumes = "application/json", produces = "application/json", + protocols = "http") +@RequestMapping(value = "/service/scheduler") +public interface ISchedulerController { //NOSONAR + + /** + * 描述 : 清理数据 + * + * @return 操作结果 + * @throws SchedulerException SchedulerException + */ + @ApiOperation(value = "SCHEDULER_1", notes = "清理数据") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", + required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, + dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", + required = true, dataType = "string")}) + @RequestMapping(value = "clear", method = RequestMethod.DELETE) + RestResponse clear() throws SchedulerException; + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ITriggerController.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ITriggerController.java similarity index 98% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ITriggerController.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ITriggerController.java index 483dbc1..31b4102 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ITriggerController.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/ITriggerController.java @@ -1,113 +1,113 @@ -/** - * ITriggerController.java - * Created at 2017-06-11 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.web; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import org.itkk.udf.core.RestResponse; -import org.quartz.SchedulerException; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -/** - * 描述 : ITriggerController - * - * @author Administrator - */ -@Api(value = "触发器服务", consumes = "application/json", produces = "application/json", protocols = "http") -@RequestMapping(value = "/service/scheduler/trigger") -public interface ITriggerController { - - /** - * 描述 : 保存简单触发器 - * - * @param triggerCode 触发器代码 - * @return 操作结果 - * @throws SchedulerException SchedulerException - */ - @ApiOperation(value = "SCHEDULER_TRIGGER_1", notes = "保存简单触发器") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "path", name = "triggerCode", value = "触发器代码", required = true, dataType = "string") - }) - @RequestMapping(value = "simple/{triggerCode}", method = RequestMethod.POST) - RestResponse saveSimple(@PathVariable String triggerCode) throws SchedulerException; //NOSONAR - - /** - * 描述 : 保存简单触发器(覆盖) - * - * @param triggerCode 触发器代码 - * @return 操作结果 - * @throws SchedulerException SchedulerException - */ - @ApiOperation(value = "SCHEDULER_TRIGGER_2", notes = "保存简单触发器(覆盖)") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "path", name = "triggerCode", value = "触发器代码", required = true, dataType = "string") - }) - @RequestMapping(value = "simple/{triggerCode}/cover", method = RequestMethod.PUT) - RestResponse saveSimpleCover(@PathVariable String triggerCode) throws SchedulerException; //NOSONAR - - /** - * 描述 : 保存CRON触发器 - * - * @param triggerCode 触发器代码 - * @return 操作结果 - * @throws SchedulerException SchedulerException - */ - @ApiOperation(value = "SCHEDULER_TRIGGER_3", notes = "保存CRON触发器") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "path", name = "triggerCode", value = "触发器代码", required = true, dataType = "string") - }) - @RequestMapping(value = "cron/{triggerCode}", method = RequestMethod.POST) - RestResponse saveCron(@PathVariable String triggerCode) throws SchedulerException; //NOSONAR - - /** - * 描述 : 保存CRON触发器(覆盖) - * - * @param triggerCode 触发器代码 - * @return 操作结果 - * @throws SchedulerException SchedulerException - */ - @ApiOperation(value = "SCHEDULER_TRIGGER_4", notes = "保存CRON触发器(覆盖)") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "path", name = "triggerCode", value = "触发器代码", required = true, dataType = "string") - }) - @RequestMapping(value = "cron/{triggerCode}/cover", method = RequestMethod.PUT) - RestResponse saveCronCover(@PathVariable String triggerCode) throws SchedulerException; //NOSONAR - - /** - * 描述 : 删除触发器 - * - * @param triggerCode 触发器代码 - * @return 操作结果 - * @throws SchedulerException SchedulerException - */ - @ApiOperation(value = "SCHEDULER_TRIGGER_5", notes = "删除触发器") - @ApiImplicitParams({ - @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), - @ApiImplicitParam(paramType = "path", name = "triggerCode", value = "触发器代码", required = true, dataType = "string") - }) - @RequestMapping(value = "{triggerCode}", method = RequestMethod.DELETE) - RestResponse remove(@PathVariable String triggerCode) throws SchedulerException; //NOSONAR - -} +/** + * ITriggerController.java + * Created at 2017-06-11 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.web; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.itkk.udf.core.RestResponse; +import org.quartz.SchedulerException; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +/** + * 描述 : ITriggerController + * + * @author Administrator + */ +@Api(value = "触发器服务", consumes = "application/json", produces = "application/json", protocols = "http") +@RequestMapping(value = "/service/scheduler/trigger") +public interface ITriggerController { + + /** + * 描述 : 保存简单触发器 + * + * @param triggerCode 触发器代码 + * @return 操作结果 + * @throws SchedulerException SchedulerException + */ + @ApiOperation(value = "SCHEDULER_TRIGGER_1", notes = "保存简单触发器") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "path", name = "triggerCode", value = "触发器代码", required = true, dataType = "string") + }) + @RequestMapping(value = "simple/{triggerCode}", method = RequestMethod.POST) + RestResponse saveSimple(@PathVariable String triggerCode) throws SchedulerException; //NOSONAR + + /** + * 描述 : 保存简单触发器(覆盖) + * + * @param triggerCode 触发器代码 + * @return 操作结果 + * @throws SchedulerException SchedulerException + */ + @ApiOperation(value = "SCHEDULER_TRIGGER_2", notes = "保存简单触发器(覆盖)") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "path", name = "triggerCode", value = "触发器代码", required = true, dataType = "string") + }) + @RequestMapping(value = "simple/{triggerCode}/cover", method = RequestMethod.PUT) + RestResponse saveSimpleCover(@PathVariable String triggerCode) throws SchedulerException; //NOSONAR + + /** + * 描述 : 保存CRON触发器 + * + * @param triggerCode 触发器代码 + * @return 操作结果 + * @throws SchedulerException SchedulerException + */ + @ApiOperation(value = "SCHEDULER_TRIGGER_3", notes = "保存CRON触发器") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "path", name = "triggerCode", value = "触发器代码", required = true, dataType = "string") + }) + @RequestMapping(value = "cron/{triggerCode}", method = RequestMethod.POST) + RestResponse saveCron(@PathVariable String triggerCode) throws SchedulerException; //NOSONAR + + /** + * 描述 : 保存CRON触发器(覆盖) + * + * @param triggerCode 触发器代码 + * @return 操作结果 + * @throws SchedulerException SchedulerException + */ + @ApiOperation(value = "SCHEDULER_TRIGGER_4", notes = "保存CRON触发器(覆盖)") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "path", name = "triggerCode", value = "触发器代码", required = true, dataType = "string") + }) + @RequestMapping(value = "cron/{triggerCode}/cover", method = RequestMethod.PUT) + RestResponse saveCronCover(@PathVariable String triggerCode) throws SchedulerException; //NOSONAR + + /** + * 描述 : 删除触发器 + * + * @param triggerCode 触发器代码 + * @return 操作结果 + * @throws SchedulerException SchedulerException + */ + @ApiOperation(value = "SCHEDULER_TRIGGER_5", notes = "删除触发器") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "header", name = "rmsApplicationName", value = "rms应用名称", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsSign", value = "rms认证秘钥", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "header", name = "rmsServiceCode", value = "rms接口编号", required = true, dataType = "string"), + @ApiImplicitParam(paramType = "path", name = "triggerCode", value = "触发器代码", required = true, dataType = "string") + }) + @RequestMapping(value = "{triggerCode}", method = RequestMethod.DELETE) + RestResponse remove(@PathVariable String triggerCode) throws SchedulerException; //NOSONAR + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/JobController.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/JobController.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/JobController.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/JobController.java index 1df85a3..cd30946 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/JobController.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/JobController.java @@ -1,79 +1,79 @@ -/** - * JobController.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.web; - -import org.apache.commons.collections4.MapUtils; -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.scheduler.client.TriggerDataMapKey; -import org.itkk.udf.scheduler.client.TriggerType; -import org.itkk.udf.scheduler.service.JobService; -import org.quartz.JobDataMap; -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; -import java.util.UUID; - -/** - * 描述 : JobController - * - * @author Administrator - */ -@RestController -public class JobController implements IJobController { - - /** - * 描述 : jobService - */ - @Autowired - private JobService jobService; - - @Override - public RestResponse save(@PathVariable String jobCode) throws ClassNotFoundException, SchedulerException { - jobService.save(jobCode, false); - return new RestResponse<>(); - } - - @Override - public RestResponse saveCover(@PathVariable String jobCode) throws ClassNotFoundException, SchedulerException { - jobService.save(jobCode, true); - return new RestResponse<>(); - } - - @Override - public RestResponse remove(@PathVariable String jobCode) throws SchedulerException { - jobService.remove(jobCode); - return new RestResponse<>(); - } - - @Override - public RestResponse trigger(@PathVariable String jobCode, @RequestBody Map jobDataMap) throws SchedulerException { - //生成id - String triggerId = UUID.randomUUID().toString(); - //生成jobDataMap - JobDataMap jdm; - //判断是否有jobDataMap - if (MapUtils.isEmpty(jobDataMap)) { - jdm = new JobDataMap(); - } else { - jdm = new JobDataMap(jobDataMap); - } - //添加参数 - jdm.put(TriggerDataMapKey.TRIGGER_ID.value(), triggerId); - if (!jobDataMap.containsKey(TriggerDataMapKey.TRIGGER_TYPE.value())) { - jdm.put(TriggerDataMapKey.TRIGGER_TYPE.value(), TriggerType.MANUAL.value()); - } - //触发 - jobService.trigger(jobCode, jdm); - //返回 - return new RestResponse<>(triggerId); - } - -} +/** + * JobController.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.web; + +import org.apache.commons.collections4.MapUtils; +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.scheduler.client.TriggerDataMapKey; +import org.itkk.udf.scheduler.client.TriggerType; +import org.itkk.udf.scheduler.service.JobService; +import org.quartz.JobDataMap; +import org.quartz.SchedulerException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; +import java.util.UUID; + +/** + * 描述 : JobController + * + * @author Administrator + */ +@RestController +public class JobController implements IJobController { + + /** + * 描述 : jobService + */ + @Autowired + private JobService jobService; + + @Override + public RestResponse save(@PathVariable String jobCode) throws ClassNotFoundException, SchedulerException { + jobService.save(jobCode, false); + return new RestResponse<>(); + } + + @Override + public RestResponse saveCover(@PathVariable String jobCode) throws ClassNotFoundException, SchedulerException { + jobService.save(jobCode, true); + return new RestResponse<>(); + } + + @Override + public RestResponse remove(@PathVariable String jobCode) throws SchedulerException { + jobService.remove(jobCode); + return new RestResponse<>(); + } + + @Override + public RestResponse trigger(@PathVariable String jobCode, @RequestBody Map jobDataMap) throws SchedulerException { + //生成id + String triggerId = UUID.randomUUID().toString(); + //生成jobDataMap + JobDataMap jdm; + //判断是否有jobDataMap + if (MapUtils.isEmpty(jobDataMap)) { + jdm = new JobDataMap(); + } else { + jdm = new JobDataMap(jobDataMap); + } + //添加参数 + jdm.put(TriggerDataMapKey.TRIGGER_ID.value(), triggerId); + if (!jobDataMap.containsKey(TriggerDataMapKey.TRIGGER_TYPE.value())) { + jdm.put(TriggerDataMapKey.TRIGGER_TYPE.value(), TriggerType.MANUAL.value()); + } + //触发 + jobService.trigger(jobCode, jdm); + //返回 + return new RestResponse<>(triggerId); + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchClientCallbackController.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchClientCallbackController.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchClientCallbackController.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchClientCallbackController.java index a38ca32..f1c6073 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchClientCallbackController.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchClientCallbackController.java @@ -1,53 +1,53 @@ -/** - * JobController.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.web; - -import org.itkk.udf.cache.redis.lock.RedisBasedDistributedLock; -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.scheduler.IRmsJobEvent; -import org.itkk.udf.scheduler.client.domain.RmsJobResult; -import org.itkk.udf.scheduler.job.AbstractBaseRmsJob; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * 描述 : JobController - * - * @author Administrator - */ -@RestController -public class SchClientCallbackController implements ISchClientCallbackController { - - /** - * 描述 : rmsJobLog - */ - @Autowired(required = false) - private IRmsJobEvent rmsJobLog; - - /** - * redisBasedDistributedLock - */ - @Autowired - private RedisBasedDistributedLock redisBasedDistributedLock; - - @Override - public RestResponse callback(@RequestBody RmsJobResult result) { - try { - if (rmsJobLog != null) { - rmsJobLog.save(null, result); - } - return new RestResponse<>(); - } finally { - //获得key - String name = AbstractBaseRmsJob.RMS_JOB_DISALLOW_CONCURRENT_PREFIX + result.getParam().getServiceCode() + "_" + result.getParam().getBeanName(); - //解锁 - redisBasedDistributedLock.unlock(name); - } - } - -} +/** + * JobController.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.web; + +import org.itkk.udf.cache.redis.lock.RedisBasedDistributedLock; +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.scheduler.IRmsJobEvent; +import org.itkk.udf.scheduler.client.domain.RmsJobResult; +import org.itkk.udf.scheduler.job.AbstractBaseRmsJob; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +/** + * 描述 : JobController + * + * @author Administrator + */ +@RestController +public class SchClientCallbackController implements ISchClientCallbackController { + + /** + * 描述 : rmsJobLog + */ + @Autowired(required = false) + private IRmsJobEvent rmsJobLog; + + /** + * redisBasedDistributedLock + */ + @Autowired + private RedisBasedDistributedLock redisBasedDistributedLock; + + @Override + public RestResponse callback(@RequestBody RmsJobResult result) { + try { + if (rmsJobLog != null) { + rmsJobLog.save(null, result); + } + return new RestResponse<>(); + } finally { + //获得key + String name = AbstractBaseRmsJob.RMS_JOB_DISALLOW_CONCURRENT_PREFIX + result.getParam().getServiceCode() + "_" + result.getParam().getBeanName(); + //解锁 + redisBasedDistributedLock.unlock(name); + } + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchedulerController.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchedulerController.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchedulerController.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchedulerController.java index 9bb9aaa..022f599 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchedulerController.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/SchedulerController.java @@ -1,36 +1,36 @@ -/** - * SchedulerController.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.web; - -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RestController; - -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.scheduler.service.SchedulerService; - -/** - * 描述 : SchedulerController - * - * @author Administrator - */ -@RestController -public class SchedulerController implements ISchedulerController { - - /** - * 描述 : SchedulerService - */ - @Autowired - private SchedulerService schedulerService; - - @Override - public RestResponse clear() throws SchedulerException { - schedulerService.clear(); - return new RestResponse<>(); - } - -} +/** + * SchedulerController.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.web; + +import org.quartz.SchedulerException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; + +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.scheduler.service.SchedulerService; + +/** + * 描述 : SchedulerController + * + * @author Administrator + */ +@RestController +public class SchedulerController implements ISchedulerController { + + /** + * 描述 : SchedulerService + */ + @Autowired + private SchedulerService schedulerService; + + @Override + public RestResponse clear() throws SchedulerException { + schedulerService.clear(); + return new RestResponse<>(); + } + +} diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/TriggerController.java b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/TriggerController.java similarity index 96% rename from udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/TriggerController.java rename to udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/TriggerController.java index 9dae088..4c884ba 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/TriggerController.java +++ b/udf-stater/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/web/TriggerController.java @@ -1,64 +1,64 @@ -/** - * TriggerController.java - * Created at 2017-05-26 - * Created by Administrator - * Copyright (C) 2016 itkk.org, All rights reserved. - */ -package org.itkk.udf.scheduler.web; - -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RestController; - -import org.itkk.udf.core.RestResponse; -import org.itkk.udf.scheduler.service.TriggerService; - -/** - * 描述 : TriggerController - * - * @author Administrator - */ -@RestController -public class TriggerController implements ITriggerController { - - /** - * 描述 : triggerService - */ - @Autowired - private TriggerService triggerService; - - @Override - public RestResponse saveSimple(@PathVariable String triggerCode) - throws SchedulerException { - triggerService.saveSimpleTirgger(triggerCode, false); - return new RestResponse<>(); - } - - @Override - public RestResponse saveSimpleCover(@PathVariable String triggerCode) - throws SchedulerException { - triggerService.saveSimpleTirgger(triggerCode, true); - return new RestResponse<>(); - } - - @Override - public RestResponse saveCron(@PathVariable String triggerCode) throws SchedulerException { - triggerService.saveCronTrigger(triggerCode, false); - return new RestResponse<>(); - } - - @Override - public RestResponse saveCronCover(@PathVariable String triggerCode) - throws SchedulerException { - triggerService.saveCronTrigger(triggerCode, true); - return new RestResponse<>(); - } - - @Override - public RestResponse remove(@PathVariable String triggerCode) throws SchedulerException { - triggerService.remove(triggerCode); - return new RestResponse<>(); - } - -} +/** + * TriggerController.java + * Created at 2017-05-26 + * Created by Administrator + * Copyright (C) 2016 itkk.org, All rights reserved. + */ +package org.itkk.udf.scheduler.web; + +import org.quartz.SchedulerException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +import org.itkk.udf.core.RestResponse; +import org.itkk.udf.scheduler.service.TriggerService; + +/** + * 描述 : TriggerController + * + * @author Administrator + */ +@RestController +public class TriggerController implements ITriggerController { + + /** + * 描述 : triggerService + */ + @Autowired + private TriggerService triggerService; + + @Override + public RestResponse saveSimple(@PathVariable String triggerCode) + throws SchedulerException { + triggerService.saveSimpleTirgger(triggerCode, false); + return new RestResponse<>(); + } + + @Override + public RestResponse saveSimpleCover(@PathVariable String triggerCode) + throws SchedulerException { + triggerService.saveSimpleTirgger(triggerCode, true); + return new RestResponse<>(); + } + + @Override + public RestResponse saveCron(@PathVariable String triggerCode) throws SchedulerException { + triggerService.saveCronTrigger(triggerCode, false); + return new RestResponse<>(); + } + + @Override + public RestResponse saveCronCover(@PathVariable String triggerCode) + throws SchedulerException { + triggerService.saveCronTrigger(triggerCode, true); + return new RestResponse<>(); + } + + @Override + public RestResponse remove(@PathVariable String triggerCode) throws SchedulerException { + triggerService.remove(triggerCode); + return new RestResponse<>(); + } + +} diff --git a/udf-starter-scheduler/src/main/resources/def_quartz.properties b/udf-stater/udf-starter-scheduler/src/main/resources/def_quartz.properties similarity index 100% rename from udf-starter-scheduler/src/main/resources/def_quartz.properties rename to udf-stater/udf-starter-scheduler/src/main/resources/def_quartz.properties diff --git a/udf-starter-swagger2/pom.xml b/udf-stater/udf-starter-swagger2/pom.xml similarity index 100% rename from udf-starter-swagger2/pom.xml rename to udf-stater/udf-starter-swagger2/pom.xml diff --git a/udf-starter-swagger2/src/main/java/org/itkk/udf/swagger2/Swagger2Config.java b/udf-stater/udf-starter-swagger2/src/main/java/org/itkk/udf/swagger2/Swagger2Config.java similarity index 100% rename from udf-starter-swagger2/src/main/java/org/itkk/udf/swagger2/Swagger2Config.java rename to udf-stater/udf-starter-swagger2/src/main/java/org/itkk/udf/swagger2/Swagger2Config.java diff --git a/udf-starter-weixin-mp-api/pom.xml b/udf-stater/udf-starter-weixin-mp-api/pom.xml similarity index 100% rename from udf-starter-weixin-mp-api/pom.xml rename to udf-stater/udf-starter-weixin-mp-api/pom.xml diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Menu.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Menu.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Menu.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Menu.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/MessageTemplate.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/MessageTemplate.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/MessageTemplate.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/MessageTemplate.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Oauth2.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Oauth2.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Oauth2.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Oauth2.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Token.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Token.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Token.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/Token.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/User.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/User.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/User.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/User.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpApiConfig.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpApiConfig.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpApiConfig.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpApiConfig.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpApiProperties.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpApiProperties.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpApiProperties.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpApiProperties.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpConsont.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpConsont.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpConsont.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpConsont.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpException.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpException.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpException.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/WeixinMpException.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/AccessToken.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/AccessToken.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/AccessToken.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/AccessToken.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Menu.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Menu.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Menu.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Menu.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/MenuGroup.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/MenuGroup.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/MenuGroup.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/MenuGroup.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Oauth2Token.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Oauth2Token.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Oauth2Token.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Oauth2Token.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Oauth2UserInfo.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Oauth2UserInfo.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Oauth2UserInfo.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/Oauth2UserInfo.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/UserInfo.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/UserInfo.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/UserInfo.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/domain/UserInfo.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/meta/WeixinMpApiAuthMeta.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/meta/WeixinMpApiAuthMeta.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/meta/WeixinMpApiAuthMeta.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/meta/WeixinMpApiAuthMeta.java diff --git a/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/utils/ShaOne.java b/udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/utils/ShaOne.java similarity index 100% rename from udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/utils/ShaOne.java rename to udf-stater/udf-starter-weixin-mp-api/src/main/java/org/itkk/udf/weixin/mp/api/utils/ShaOne.java diff --git a/udf-starter-weixin-mp/pom.xml b/udf-stater/udf-starter-weixin-mp/pom.xml similarity index 100% rename from udf-starter-weixin-mp/pom.xml rename to udf-stater/udf-starter-weixin-mp/pom.xml diff --git a/udf-starter-weixin-mp/src/main/java/org/itkk/udf/weixin/mp/service/WeixinMpCallbackService.java b/udf-stater/udf-starter-weixin-mp/src/main/java/org/itkk/udf/weixin/mp/service/WeixinMpCallbackService.java similarity index 100% rename from udf-starter-weixin-mp/src/main/java/org/itkk/udf/weixin/mp/service/WeixinMpCallbackService.java rename to udf-stater/udf-starter-weixin-mp/src/main/java/org/itkk/udf/weixin/mp/service/WeixinMpCallbackService.java diff --git a/udf-starter-weixin-mp/src/main/java/org/itkk/udf/weixin/mp/web/IWeixinMpCallbackController.java b/udf-stater/udf-starter-weixin-mp/src/main/java/org/itkk/udf/weixin/mp/web/IWeixinMpCallbackController.java similarity index 100% rename from udf-starter-weixin-mp/src/main/java/org/itkk/udf/weixin/mp/web/IWeixinMpCallbackController.java rename to udf-stater/udf-starter-weixin-mp/src/main/java/org/itkk/udf/weixin/mp/web/IWeixinMpCallbackController.java