From c1b73596cd30641116e2b87ba36cd13cafaf7acb Mon Sep 17 00:00:00 2001 From: dengqichen Date: Tue, 20 Aug 2024 17:36:27 +0800 Subject: [PATCH] =?UTF-8?q?nacos=E5=8A=A0=E5=85=A5=E5=88=B0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=BD=93=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deploy-ease-dev/common/common.yml | 6 +- deploy-ease-basic/pom.xml | 8 ++ .../basic/config/GlobalTenantInterceptor.java | 3 +- .../basic/config/GlobalWebConfigurer.java | 6 ++ .../context/ApplicationContextProvider.java | 22 +++++ .../basic/context/SpringContext.java | 35 +++++++ .../basic}/exception/BusinessException.java | 2 +- .../basic/http/HttpAutoConfiguration.java | 20 ++++ .../framework/basic/http/HttpClient.java} | 0 .../redis/FastJson2JsonRedisSerializer.java | 40 ++++++++ .../basic/redis/RedisAutoConfiguration.java | 35 +++++++ ...sicAuthUtils.java => Base64AuthUtils.java} | 2 +- .../target/maven-archiver/pom.properties | 3 - .../compile/default-compile/createdFiles.lst | 21 ---- .../compile/default-compile/inputFiles.lst | 19 ---- .../default-testCompile/inputFiles.lst | 0 .../ease/config/BusinessWebConfigurer.java | 22 +++++ .../ease/config/TenantAdapterRunner.java | 2 +- .../BusinessTenantInterceptor.java | 3 +- .../service/impl/DictionaryServiceImpl.java | 2 +- .../src/main/resources/bootstrap.yml | 4 - deploy-ease-tenant-adapter/pom.xml | 30 +++++- .../DeployEaseTenantAdapterApplication.java | 5 + .../soft/deploy/ease/adapter/HttpClient.java | 33 +++++++ .../api/thirdparty/JenkinsClientApi.java | 91 +++++++++++++++--- .../aop/JenkinsClientApiAspect.java | 51 ++++++++++ .../request/JenkinsHttpHeaders.java | 8 ++ .../response/JenkinsCrumbIssuerResponse.java | 12 --- ...sLastJobDetailChangeSetDetailResponse.java | 29 ------ ...JenkinsLastJobDetailChangeSetResponse.java | 12 --- .../JenkinsLastJobDetailResponse.java | 31 ------ .../ThirdPartyJenkinsCrumbResponse.java | 16 +++ ...tyJenkinsBuildChangeSetDetailResponse.java | 41 ++++++++ ...irdPartyJenkinsBuildChangeSetResponse.java | 19 ++++ .../build/ThirdPartyJenkinsBuildResponse.java | 40 ++++++++ .../ThirdPartyJenkinsBuildSimpleResponse.java | 20 ++++ .../ThirdPartyJenkinsJobDetailResponse.java | 46 +++++++++ ...rdPartyJenkinsJobHealthReportResponse.java | 20 ++++ .../job/ThirdPartyJenkinsJobResponse.java | 20 ++++ .../view/ThirdPartyJenkinsResponse.java | 19 ++++ .../ThirdPartyJenkinsViewDetailResponse.java | 22 +++++ .../view/ThirdPartyJenkinsViewResponse.java | 21 ++++ ...{FeignClientConfig.java => AppConfig.java} | 9 +- .../DateStrToFormatDateStrDeserializer.java | 32 ++++++ .../config/Timestamp2StrDeserializer.java | 23 +++++ .../ease/adapter/consts/JenkinsConstants.java | 26 +++-- .../JenkinsBuildSimpleSupportContext.java | 20 ++++ .../adapter/context/JenkinsCrumbContext.java | 21 ++++ .../adapter/context/TenantAdapterContext.java | 13 +++ .../adapter/controller/JenkinsController.java | 60 ++++++++++++ .../controller/JenkinsSSEController.java | 33 ------- .../aggregate/JenkinsAggregateResponse.java | 14 +++ .../JenkinsViewAggregateResponse.java | 16 +++ .../JenkinsViewProjectAggregateResponse.java | 39 ++++++++ ...nkinsViewProjectTaskAggregateResponse.java | 27 ++++++ .../JenkinsBuildChangeSetDetailResponse.java | 31 ++++++ .../build/JenkinsBuildChangeSetResponse.java | 14 +++ .../jenkins/build/JenkinsBuildResponse.java | 32 ++++++ .../build/JenkinsBuildSimpleResponse.java | 14 +++ .../jenkins/job/JenkinsJobDetailResponse.java | 40 ++++++++ .../jenkins/job/JenkinsJobResponse.java | 14 +++ .../jenkins/view/JenkinsResponse.java | 14 +++ .../view/JenkinsViewDetailResponse.java | 17 ++++ .../jenkins/view/JenkinsViewResponse.java | 14 +++ .../adapter/convert/JenkinsBuildConvert.java | 21 ++++ .../ease/adapter/convert/JenkinsConvert.java | 15 +++ .../adapter/convert/JenkinsCrumbConvert.java | 16 +++ .../convert/JenkinsJobDetailConvert.java | 41 ++++++++ .../convert/JenkinsViewDetailConvert.java | 15 +++ .../ease/adapter/dto/JenkinsCrumbDTO.java | 4 + .../enums/AdapterBusinessErrorCodeI.java | 6 -- .../ease/adapter/service/IJenkinsService.java | 17 +++- .../service/impl/JenkinsServiceImpl.java | 89 ++++++++++++++++- .../main/resources/META-INF/spring.factories | 6 +- .../src/main/resources/application-dev.yml | 15 +++ .../src/main/resources/application.yml | 0 .../src/main/resources/bootstrap.yml | 12 +-- .../target/classes/META-INF/spring.factories | 6 +- .../target/classes/application.yml | 0 .../target/classes/bootstrap.yml | 12 +-- ...loy-ease-tenant-adapter-1.0.0.jar.original | Bin 25231 -> 0 bytes .../target/maven-archiver/pom.properties | 3 - .../compile/default-compile/createdFiles.lst | 19 ---- .../compile/default-compile/inputFiles.lst | 18 ---- .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 0 pom.xml | 6 ++ 87 files changed, 1416 insertions(+), 269 deletions(-) create mode 100644 deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/context/ApplicationContextProvider.java create mode 100644 deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/context/SpringContext.java rename {deploy-ease-core/src/main/java/com/qc/soft/deploy/ease => deploy-ease-basic/src/main/java/com/qc/soft/framework/basic}/exception/BusinessException.java (93%) create mode 100644 deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/http/HttpAutoConfiguration.java rename deploy-ease-basic/{target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst => src/main/java/com/qc/soft/framework/basic/http/HttpClient.java} (100%) create mode 100644 deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/redis/FastJson2JsonRedisSerializer.java create mode 100644 deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/redis/RedisAutoConfiguration.java rename deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/utils/{BasicAuthUtils.java => Base64AuthUtils.java} (91%) delete mode 100644 deploy-ease-basic/target/maven-archiver/pom.properties delete mode 100644 deploy-ease-basic/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 deploy-ease-basic/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst delete mode 100644 deploy-ease-basic/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/HttpClient.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/aop/JenkinsClientApiAspect.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/request/JenkinsHttpHeaders.java delete mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsCrumbIssuerResponse.java delete mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailChangeSetDetailResponse.java delete mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailChangeSetResponse.java delete mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/ThirdPartyJenkinsCrumbResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildChangeSetDetailResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildChangeSetResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildSimpleResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobDetailResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobHealthReportResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsViewDetailResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsViewResponse.java rename deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/{FeignClientConfig.java => AppConfig.java} (56%) create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/DateStrToFormatDateStrDeserializer.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/Timestamp2StrDeserializer.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/JenkinsBuildSimpleSupportContext.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/JenkinsCrumbContext.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/TenantAdapterContext.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/JenkinsController.java delete mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/JenkinsSSEController.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsAggregateResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewAggregateResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewProjectAggregateResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewProjectTaskAggregateResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildChangeSetDetailResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildChangeSetResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildSimpleResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/job/JenkinsJobDetailResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/job/JenkinsJobResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsViewDetailResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsViewResponse.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsBuildConvert.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsConvert.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsCrumbConvert.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsJobDetailConvert.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsViewDetailConvert.java create mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/dto/JenkinsCrumbDTO.java delete mode 100644 deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/enums/AdapterBusinessErrorCodeI.java create mode 100644 deploy-ease-tenant-adapter/src/main/resources/application-dev.yml delete mode 100644 deploy-ease-tenant-adapter/src/main/resources/application.yml delete mode 100644 deploy-ease-tenant-adapter/target/classes/application.yml delete mode 100644 deploy-ease-tenant-adapter/target/deploy-ease-tenant-adapter-1.0.0.jar.original delete mode 100644 deploy-ease-tenant-adapter/target/maven-archiver/pom.properties delete mode 100644 deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst delete mode 100644 deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst delete mode 100644 deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst diff --git a/bin/nacos/nacos-server-2.3.0/data/tenant-config-data/deploy-ease-dev/common/common.yml b/bin/nacos/nacos-server-2.3.0/data/tenant-config-data/deploy-ease-dev/common/common.yml index 3b16bd9..e72d661 100644 --- a/bin/nacos/nacos-server-2.3.0/data/tenant-config-data/deploy-ease-dev/common/common.yml +++ b/bin/nacos/nacos-server-2.3.0/data/tenant-config-data/deploy-ease-dev/common/common.yml @@ -30,7 +30,11 @@ spring: maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 - + cloud: + config: + override-none: true + allow-override: true + override-system-properties: false management: endpoints: web: diff --git a/deploy-ease-basic/pom.xml b/deploy-ease-basic/pom.xml index fd05fb2..6b60ec6 100644 --- a/deploy-ease-basic/pom.xml +++ b/deploy-ease-basic/pom.xml @@ -40,6 +40,14 @@ org.apache.commons commons-lang3 + + org.springframework.boot + spring-boot-starter-data-redis + + + org.apache.commons + commons-pool2 + diff --git a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/config/GlobalTenantInterceptor.java b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/config/GlobalTenantInterceptor.java index d112957..f45e1a2 100644 --- a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/config/GlobalTenantInterceptor.java +++ b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/config/GlobalTenantInterceptor.java @@ -4,6 +4,7 @@ import com.qc.soft.framework.basic.context.TenantContext; import com.qc.soft.framework.basic.enums.IBasicState; import com.qc.soft.framework.basic.exception.BasicException; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; @@ -15,7 +16,7 @@ import javax.servlet.http.HttpServletResponse; @Slf4j -@Component +@Configuration @Import({GlobalResponseHandler.class, GlobalExceptionHandler.class}) public class GlobalTenantInterceptor implements HandlerInterceptor { diff --git a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/config/GlobalWebConfigurer.java b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/config/GlobalWebConfigurer.java index 0dad3ca..6752288 100644 --- a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/config/GlobalWebConfigurer.java +++ b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/config/GlobalWebConfigurer.java @@ -1,5 +1,6 @@ package com.qc.soft.framework.basic.config; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -17,7 +18,9 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import javax.annotation.Resource; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; +import java.time.ZoneId; import java.util.List; +import java.util.TimeZone; @Configuration @Slf4j @@ -36,8 +39,11 @@ public class GlobalWebConfigurer implements WebMvcConfigurer { public void configureMessageConverters(List> converters) { converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8)); ObjectMapper mapper = new ObjectMapper(); + mapper.setTimeZone(TimeZone.getTimeZone("GMT+08:00")); mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); mapper.registerModule(new JavaTimeModule()); + mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true); mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); converters.add(new MappingJackson2HttpMessageConverter(mapper)); } diff --git a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/context/ApplicationContextProvider.java b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/context/ApplicationContextProvider.java new file mode 100644 index 0000000..1e0f200 --- /dev/null +++ b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/context/ApplicationContextProvider.java @@ -0,0 +1,22 @@ +package com.qc.soft.framework.basic.context; + +import org.springframework.context.ApplicationContext; + +public class ApplicationContextProvider { + + + private static ApplicationContext context; + + public static void setApplicationContext(ApplicationContext applicationContext) { + context = applicationContext; + } + + public static ApplicationContext getApplicationContext() { + return context; + } + + public static T getBean(Class beanClass) { + return context.getBean(beanClass); + } + +} diff --git a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/context/SpringContext.java b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/context/SpringContext.java new file mode 100644 index 0000000..6c68336 --- /dev/null +++ b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/context/SpringContext.java @@ -0,0 +1,35 @@ +package com.qc.soft.framework.basic.context; + +import lombok.NonNull; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeansException; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConditionalOnClass(ApplicationContext.class) +@Slf4j +public class SpringContext implements ApplicationContextAware { + + private ApplicationContext applicationContext; + + public SpringContext() { + log.info("Spring application context registered successfully!!!"); + } + + @Override + public void setApplicationContext(@NonNull ApplicationContext applicationContext) throws BeansException { + this.applicationContext = applicationContext; + ApplicationContextProvider.setApplicationContext(applicationContext); + } + + public ApplicationContext getContext() { + return applicationContext; + } + + public T getBean(Class clazz) { + return applicationContext.getBean(clazz); + } +} diff --git a/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/exception/BusinessException.java b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/exception/BusinessException.java similarity index 93% rename from deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/exception/BusinessException.java rename to deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/exception/BusinessException.java index 37916b5..fc3f42a 100644 --- a/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/exception/BusinessException.java +++ b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/exception/BusinessException.java @@ -1,4 +1,4 @@ -package com.qc.soft.deploy.ease.exception; +package com.qc.soft.framework.basic.exception; import com.qc.soft.framework.basic.entity.BasicResponseState; import com.qc.soft.framework.basic.exception.BasicException; diff --git a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/http/HttpAutoConfiguration.java b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/http/HttpAutoConfiguration.java new file mode 100644 index 0000000..cc93291 --- /dev/null +++ b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/http/HttpAutoConfiguration.java @@ -0,0 +1,20 @@ +package com.qc.soft.framework.basic.http; + + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class HttpAutoConfiguration { + + + @Bean + public RestTemplate restTemplate() { + RestTemplate restTemplate = new RestTemplate(); + restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter()); + return restTemplate; + } + +} diff --git a/deploy-ease-basic/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/http/HttpClient.java similarity index 100% rename from deploy-ease-basic/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst rename to deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/http/HttpClient.java diff --git a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/redis/FastJson2JsonRedisSerializer.java b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/redis/FastJson2JsonRedisSerializer.java new file mode 100644 index 0000000..bea0a9a --- /dev/null +++ b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/redis/FastJson2JsonRedisSerializer.java @@ -0,0 +1,40 @@ +package com.qc.soft.framework.basic.redis; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONReader; +import com.alibaba.fastjson2.JSONWriter; +import com.alibaba.fastjson2.filter.Filter; +import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.data.redis.serializer.SerializationException; + +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + +/** + * Redis使用FastJson序列化 + */ +public class FastJson2JsonRedisSerializer implements RedisSerializer { + public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8; + + static final Filter AUTO_TYPE_FILTER = JSONReader.autoTypeFilter("com"); + + @Override + public byte[] serialize(T t) throws SerializationException { + if (t == null) { + return new byte[0]; + } + return JSON.toJSONString(t, JSONWriter.Feature.WriteClassName).getBytes(DEFAULT_CHARSET); + } + + @Override + public T deserialize(byte[] bytes) throws SerializationException { + if (bytes == null || bytes.length <= 0) { + return null; + } + String str = new String(bytes, DEFAULT_CHARSET); + + return (T) JSON.parseObject(str, Object.class, AUTO_TYPE_FILTER); + } + +} + diff --git a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/redis/RedisAutoConfiguration.java b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/redis/RedisAutoConfiguration.java new file mode 100644 index 0000000..5c63752 --- /dev/null +++ b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/redis/RedisAutoConfiguration.java @@ -0,0 +1,35 @@ +package com.qc.soft.framework.basic.redis; + + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +@Configuration +@ConditionalOnProperty(name = "spring.redis.host", havingValue = "true") +@Slf4j +public class RedisAutoConfiguration { + + public RedisAutoConfiguration() { + log.info("Framework redis template registered successfully!!!"); + } + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(redisConnectionFactory); + FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer<>(); + template.setDefaultSerializer(serializer); + template.setValueSerializer(serializer); + template.setKeySerializer(new StringRedisSerializer()); + template.setHashKeySerializer(new StringRedisSerializer()); + template.setHashValueSerializer(serializer); + template.afterPropertiesSet(); + return template; + } + +} diff --git a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/utils/BasicAuthUtils.java b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/utils/Base64AuthUtils.java similarity index 91% rename from deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/utils/BasicAuthUtils.java rename to deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/utils/Base64AuthUtils.java index 67ea7bb..d1b51b9 100644 --- a/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/utils/BasicAuthUtils.java +++ b/deploy-ease-basic/src/main/java/com/qc/soft/framework/basic/utils/Base64AuthUtils.java @@ -2,7 +2,7 @@ package com.qc.soft.framework.basic.utils; import java.util.Base64; -public class BasicAuthUtils { +public class Base64AuthUtils { public static String encode(String userName, String password) { String auth = userName + ":" + password; diff --git a/deploy-ease-basic/target/maven-archiver/pom.properties b/deploy-ease-basic/target/maven-archiver/pom.properties deleted file mode 100644 index 313c642..0000000 --- a/deploy-ease-basic/target/maven-archiver/pom.properties +++ /dev/null @@ -1,3 +0,0 @@ -artifactId=deploy-ease-basic -groupId=com.qc.soft -version=1.0-SNAPSHOT diff --git a/deploy-ease-basic/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/deploy-ease-basic/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index 61942d4..0000000 --- a/deploy-ease-basic/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1,21 +0,0 @@ -com\qc\soft\framework\basic\config\GlobalTenantInterceptor.class -com\qc\soft\framework\basic\web\ApiResult.class -com\qc\soft\framework\basic\entity\BasicResponseState$BasicResponseStateBuilder.class -com\qc\soft\framework\basic\utils\DateUtils.class -com\qc\soft\framework\basic\entity\BasicResponseState.class -com\qc\soft\framework\basic\utils\StrUtils.class -com\qc\soft\framework\basic\enums\JenkinsJobStatus.class -com\qc\soft\framework\basic\utils\TemplateParamsBuildUtils.class -com\qc\soft\framework\basic\utils\MapUtils.class -com\qc\soft\framework\basic\context\TenantContext.class -com\qc\soft\framework\basic\config\GlobalWebConfigurer.class -com\qc\soft\framework\basic\utils\HttpUtils.class -com\qc\soft\framework\basic\config\GlobalResponseHandler.class -com\qc\soft\framework\basic\exception\BasicException.class -com\qc\soft\framework\basic\utils\FileUtils.class -com\qc\soft\framework\basic\utils\ProcessUtils.class -com\qc\soft\framework\basic\config\GlobalExceptionHandler.class -com\qc\soft\framework\basic\enums\IBasicState.class -com\qc\soft\framework\basic\entity\BaseEntity.class -com\qc\soft\framework\basic\utils\BasicAuthUtils.class -com\qc\soft\framework\basic\web\ApiResult$ApiResultBuilder.class diff --git a/deploy-ease-basic/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/deploy-ease-basic/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 6d55abb..0000000 --- a/deploy-ease-basic/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,19 +0,0 @@ -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\context\TenantContext.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\config\GlobalTenantInterceptor.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\config\GlobalWebConfigurer.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\config\GlobalExceptionHandler.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\utils\HttpUtils.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\web\ApiResult.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\utils\DateUtils.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\utils\BasicAuthUtils.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\enums\IBasicState.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\entity\BasicResponseState.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\utils\FileUtils.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\utils\TemplateParamsBuildUtils.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\config\GlobalResponseHandler.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\enums\JenkinsJobStatus.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\utils\ProcessUtils.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\entity\BaseEntity.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\utils\StrUtils.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\exception\BasicException.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-basic\src\main\java\com\qc\soft\framework\basic\utils\MapUtils.java diff --git a/deploy-ease-basic/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/deploy-ease-basic/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst deleted file mode 100644 index e69de29..0000000 diff --git a/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/config/BusinessWebConfigurer.java b/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/config/BusinessWebConfigurer.java index b3820b5..b934907 100644 --- a/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/config/BusinessWebConfigurer.java +++ b/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/config/BusinessWebConfigurer.java @@ -4,10 +4,15 @@ import com.qc.soft.deploy.ease.interceptor.BusinessTenantInterceptor; import com.qc.soft.framework.basic.config.GlobalWebConfigurer; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + import javax.annotation.Resource; + @Configuration @Slf4j @AutoConfigureAfter(GlobalWebConfigurer.class) @@ -20,5 +25,22 @@ public class BusinessWebConfigurer implements WebMvcConfigurer { public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(businessTenantInterceptor).addPathPatterns("/**"); } +// +// @Bean +// public RestTemplate restTemplate() { +// RequestConfig requestConfig = RequestConfig.custom() +// .setConnectTimeout(5000) // Connection timeout +// .setSocketTimeout(5000) // Read timeout +// .build(); +// +// // Create HttpClient with the timeout settings +// CloseableHttpClient httpClient = HttpClients.custom() +// .setDefaultRequestConfig(requestConfig) +// .build(); +// +// // Use HttpClient in RestTemplate +// HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient); +// return new RestTemplate(factory); +// } } \ No newline at end of file diff --git a/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/config/TenantAdapterRunner.java b/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/config/TenantAdapterRunner.java index a25b05b..f0fd21b 100644 --- a/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/config/TenantAdapterRunner.java +++ b/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/config/TenantAdapterRunner.java @@ -5,7 +5,7 @@ import com.qc.soft.deploy.ease.api.response.TenantResponse; import com.qc.soft.deploy.ease.context.TenantAdapterProcessContext; import com.qc.soft.deploy.ease.dto.TenantAdapterJarDTO; import com.qc.soft.deploy.ease.enums.BusinessState; -import com.qc.soft.deploy.ease.exception.BusinessException; +import com.qc.soft.framework.basic.exception.BusinessException; import com.qc.soft.deploy.ease.service.INacosService; import com.qc.soft.deploy.ease.service.ITenantService; import lombok.extern.slf4j.Slf4j; diff --git a/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/interceptor/BusinessTenantInterceptor.java b/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/interceptor/BusinessTenantInterceptor.java index cfbfe1e..162deca 100644 --- a/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/interceptor/BusinessTenantInterceptor.java +++ b/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/interceptor/BusinessTenantInterceptor.java @@ -1,12 +1,11 @@ package com.qc.soft.deploy.ease.interceptor; import com.qc.soft.deploy.ease.entity.Tenant; -import com.qc.soft.deploy.ease.exception.BusinessException; +import com.qc.soft.framework.basic.exception.BusinessException; import com.qc.soft.deploy.ease.repository.ITenantRepository; import com.qc.soft.deploy.ease.state.IBusinessState; import com.qc.soft.framework.basic.context.TenantContext; import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; diff --git a/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/service/impl/DictionaryServiceImpl.java b/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/service/impl/DictionaryServiceImpl.java index ae030af..6dbdd5e 100644 --- a/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/service/impl/DictionaryServiceImpl.java +++ b/deploy-ease-core/src/main/java/com/qc/soft/deploy/ease/service/impl/DictionaryServiceImpl.java @@ -3,7 +3,7 @@ package com.qc.soft.deploy.ease.service.impl; import com.qc.soft.deploy.ease.api.response.DictionaryResponse; import com.qc.soft.deploy.ease.api.response.TenantDictionaryResponse; import com.qc.soft.deploy.ease.convert.response.DictionaryConvert; -import com.qc.soft.deploy.ease.exception.BusinessException; +import com.qc.soft.framework.basic.exception.BusinessException; import com.qc.soft.deploy.ease.repository.IDictionaryRepository; import com.qc.soft.deploy.ease.repository.ITenantDictionaryRepository; import com.qc.soft.deploy.ease.service.IDictionaryService; diff --git a/deploy-ease-core/src/main/resources/bootstrap.yml b/deploy-ease-core/src/main/resources/bootstrap.yml index 4f78793..9257c37 100644 --- a/deploy-ease-core/src/main/resources/bootstrap.yml +++ b/deploy-ease-core/src/main/resources/bootstrap.yml @@ -19,9 +19,5 @@ spring: data-id: deploy-ease-core.yml group: business refresh: false - config: - override-none: false - allow-override: true - override-system-properties: false main: allow-bean-definition-overriding: true \ No newline at end of file diff --git a/deploy-ease-tenant-adapter/pom.xml b/deploy-ease-tenant-adapter/pom.xml index 56440e9..fdf3a08 100644 --- a/deploy-ease-tenant-adapter/pom.xml +++ b/deploy-ease-tenant-adapter/pom.xml @@ -62,7 +62,6 @@ com.alibaba.fastjson2 fastjson2 - ${fastjson-version} com.squareup.okhttp3 @@ -102,10 +101,6 @@ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config - - com.alibaba.nacos - nacos-client - org.springframework.boot spring-boot-starter-webflux @@ -114,6 +109,31 @@ org.springframework.cloud spring-cloud-starter-openfeign + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.apache.commons + commons-pool2 + + + + + + + + + + + + + + diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/DeployEaseTenantAdapterApplication.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/DeployEaseTenantAdapterApplication.java index 3ecd643..daa3293 100644 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/DeployEaseTenantAdapterApplication.java +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/DeployEaseTenantAdapterApplication.java @@ -1,15 +1,20 @@ package com.qc.soft.deploy.ease.adapter; +import com.qc.soft.framework.basic.config.GlobalExceptionHandler; +import com.qc.soft.framework.basic.config.GlobalResponseHandler; import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan("com.qc.soft.deploy.ease.*") @EnableFeignClients +@EnableDiscoveryClient public class DeployEaseTenantAdapterApplication { public static void main(String[] args) { diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/HttpClient.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/HttpClient.java new file mode 100644 index 0000000..2dd597b --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/HttpClient.java @@ -0,0 +1,33 @@ +package com.qc.soft.deploy.ease.adapter; + +import com.qc.soft.deploy.ease.adapter.config.AppConfig; +import com.qc.soft.framework.basic.context.ApplicationContextProvider; +import com.qc.soft.framework.basic.context.SpringContext; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +public class HttpClient { + + private static final ApplicationContext context; + + static { + context = ApplicationContextProvider.getApplicationContext(); + } + + public static T get(String url, H headers, Class cls) { + HttpEntity entity = new HttpEntity<>(headers); + ResponseEntity response = getRestTemplate().exchange(url, HttpMethod.GET, entity, cls); + return response.getBody(); + } + + + private static RestTemplate getRestTemplate() { + return context.getBean(RestTemplate.class); + } + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/JenkinsClientApi.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/JenkinsClientApi.java index f92c5eb..c517144 100644 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/JenkinsClientApi.java +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/JenkinsClientApi.java @@ -1,37 +1,106 @@ package com.qc.soft.deploy.ease.adapter.api.thirdparty; import com.alibaba.fastjson2.JSON; -import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.JenkinsCrumbIssuerResponse; +import com.qc.soft.deploy.ease.adapter.HttpClient; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.ThirdPartyJenkinsCrumbResponse; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.build.ThirdPartyJenkinsBuildResponse; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.job.ThirdPartyJenkinsJobDetailResponse; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.view.ThirdPartyJenkinsViewDetailResponse; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.view.ThirdPartyJenkinsResponse; +import com.qc.soft.deploy.ease.adapter.consts.JenkinsConstants; import com.qc.soft.deploy.ease.adapter.enums.BusinessState; import com.qc.soft.framework.basic.exception.BasicException; -import com.qc.soft.framework.basic.utils.BasicAuthUtils; +import com.qc.soft.framework.basic.exception.BusinessException; +import com.qc.soft.framework.basic.utils.Base64AuthUtils; import com.qc.soft.framework.basic.utils.HttpUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.IdentityHashMap; +import static com.qc.soft.deploy.ease.adapter.consts.JenkinsConstants.REDIS_JENKINS_ORIGINAL_VIEW; +import static com.qc.soft.deploy.ease.adapter.consts.JenkinsConstants.REDIS_JENKINS_ORIGINAL_VIEW_BUILD; +import static com.qc.soft.deploy.ease.adapter.consts.JenkinsConstants.REDIS_JENKINS_ORIGINAL_VIEW_JOB; +import static com.qc.soft.deploy.ease.adapter.consts.JenkinsConstants.REDIS_JENKINS_ORIGINAL_VIEW_JOB_DETAIL; + @Component @Slf4j public class JenkinsClientApi { + @Resource + private RedisTemplate redisTemplate; - public JenkinsCrumbIssuerResponse getJenkinsCrumbIssue(String url, String username, String password) throws BasicException { + public ThirdPartyJenkinsCrumbResponse getJenkinsCrumb(String url, String username, String password) throws BasicException { IdentityHashMap header = new IdentityHashMap<>(); - header.put("Authorization", BasicAuthUtils.encode(username, password)); - JenkinsCrumbIssuerResponse jenkinsCrumbIssuerResponse = HttpUtils.cookieGet(url, header, JenkinsCrumbIssuerResponse.class); - if (jenkinsCrumbIssuerResponse == null) { + header.put("Authorization", Base64AuthUtils.encode(username, password)); + ThirdPartyJenkinsCrumbResponse thirdPartyJenkinsCrumbResponse = HttpUtils.cookieGet(url, header, ThirdPartyJenkinsCrumbResponse.class); + if (thirdPartyJenkinsCrumbResponse == null) { log.error("Get jenkins crumb failed!"); - throw new BasicException(BusinessState.GET_JENKINS_CRUMB_FAILED); + throw new BusinessException(BusinessState.GET_JENKINS_CRUMB_FAILED); } - if (StringUtils.isEmpty(jenkinsCrumbIssuerResponse.getCrumb()) || StringUtils.isEmpty(jenkinsCrumbIssuerResponse.getCookie())) { - log.error("Get jenkins crumb and cookie failed, response:{}!", JSON.toJSONString(jenkinsCrumbIssuerResponse)); - throw new BasicException(String.format("Get jenkins crumb and cookie failed, response %s!", JSON.toJSONString(jenkinsCrumbIssuerResponse))); + if (StringUtils.isEmpty(thirdPartyJenkinsCrumbResponse.getCrumb()) || StringUtils.isEmpty(thirdPartyJenkinsCrumbResponse.getCookie())) { + log.error("Get jenkins crumb and cookie failed, response:{}!", JSON.toJSONString(thirdPartyJenkinsCrumbResponse)); + throw new BusinessException(String.format("Get jenkins crumb and cookie failed, response %s!", JSON.toJSONString(thirdPartyJenkinsCrumbResponse))); } - return jenkinsCrumbIssuerResponse; + return thirdPartyJenkinsCrumbResponse; } + public ThirdPartyJenkinsResponse getViews() { + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", Base64AuthUtils.encode("admin", "3%(Lb5GN,M'Yk\\,)Dy\"*")); + ThirdPartyJenkinsResponse jenkins = HttpClient.get(String.format(JenkinsConstants.JENKINS_VIEWS_API, "http://192.168.2.200:9096"), headers, ThirdPartyJenkinsResponse.class); + redisTemplate.opsForValue().set(REDIS_JENKINS_ORIGINAL_VIEW, jenkins); + return (ThirdPartyJenkinsResponse) redisTemplate.opsForValue().get(REDIS_JENKINS_ORIGINAL_VIEW); + } + public ThirdPartyJenkinsViewDetailResponse jobs(String viewName) { + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", Base64AuthUtils.encode("admin", "3%(Lb5GN,M'Yk\\,)Dy\"*")); + String urlFormat = StringUtils.isEmpty(viewName) ? + String.format(JenkinsConstants.JENKINS_JOB_ALL_API, "http://192.168.2.200:9096") : String.format(JenkinsConstants.JENKINS_JOB_API, "http://192.168.2.200:9096", viewName); + try { + String redisKey = String.format(REDIS_JENKINS_ORIGINAL_VIEW_JOB, viewName); + ThirdPartyJenkinsViewDetailResponse jenkinsViewDetail = HttpClient.get(urlFormat, headers, ThirdPartyJenkinsViewDetailResponse.class); + redisTemplate.opsForValue().set(redisKey, jenkinsViewDetail); + return (ThirdPartyJenkinsViewDetailResponse) redisTemplate.opsForValue().get(redisKey); + } catch (Exception e) { + log.error("Get jenkins projects failed, url:{}", urlFormat, e); + return new ThirdPartyJenkinsViewDetailResponse(); + } + } + + public ThirdPartyJenkinsJobDetailResponse jobDetail(String viewName, String jobName) { + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", Base64AuthUtils.encode("admin", "3%(Lb5GN,M'Yk\\,)Dy\"*")); + String urlFormat = String.format(JenkinsConstants.JENKINS_JOB_DETAIL_API, "http://192.168.2.200:9096", viewName, jobName); + try { + String redisKey = String.format(REDIS_JENKINS_ORIGINAL_VIEW_JOB_DETAIL, viewName, jobName); + ThirdPartyJenkinsJobDetailResponse jenkinsJobDetail = HttpClient.get(urlFormat, headers, ThirdPartyJenkinsJobDetailResponse.class); + redisTemplate.opsForValue().set(redisKey, jenkinsJobDetail); + return (ThirdPartyJenkinsJobDetailResponse) redisTemplate.opsForValue().get(redisKey); + } catch (Exception e) { + log.error("Get jenkins job detail failed, url:{}", urlFormat, e); + return new ThirdPartyJenkinsJobDetailResponse(); + } + } + + public ThirdPartyJenkinsBuildResponse jobBuild(String viewName, String jobName, Long buildNumber) { + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", Base64AuthUtils.encode("admin", "3%(Lb5GN,M'Yk\\,)Dy\"*")); + String urlFormat = String.format(JenkinsConstants.JENKINS_BUILD_API, "http://192.168.2.200:9096", viewName, jobName, buildNumber); + try { + String redisKey = String.format(REDIS_JENKINS_ORIGINAL_VIEW_BUILD, viewName, jobName, buildNumber); + ThirdPartyJenkinsBuildResponse jenkinsBuild = HttpClient.get(urlFormat, headers, ThirdPartyJenkinsBuildResponse.class); + redisTemplate.opsForValue().set(redisKey, jenkinsBuild); + return (ThirdPartyJenkinsBuildResponse) redisTemplate.opsForValue().get(redisKey); + } catch (Exception e) { + log.error("Get jenkins job build failed, url:{}", urlFormat, e); + return new ThirdPartyJenkinsBuildResponse(); + } + } } diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/aop/JenkinsClientApiAspect.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/aop/JenkinsClientApiAspect.java new file mode 100644 index 0000000..658fa3b --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/aop/JenkinsClientApiAspect.java @@ -0,0 +1,51 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.aop; + +import com.qc.soft.deploy.ease.adapter.api.thirdparty.JenkinsClientApi; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.ThirdPartyJenkinsCrumbResponse; +import com.qc.soft.deploy.ease.adapter.consts.JenkinsConstants; +import com.qc.soft.deploy.ease.adapter.context.JenkinsCrumbContext; +import com.qc.soft.deploy.ease.adapter.convert.JenkinsCrumbConvert; +import com.qc.soft.deploy.ease.adapter.enums.BusinessState; +import com.qc.soft.framework.basic.exception.BusinessException; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +//@Aspect +//@Component +//@Slf4j +public class JenkinsClientApiAspect { + + + @Resource + private JenkinsClientApi jenkinsClientApi; + + @Pointcut("execution(* com.qc.soft.deploy.ease.adapter.api.thirdparty.JenkinsClientApi.*(..))") + public void pointcut() { + } + + + @Pointcut("execution(* com.qc.soft.deploy.ease.adapter.api.thirdparty.JenkinsClientApi.getJenkinsCrumb(..))") + public void excludedMethods() { + } + + @Before("pointcut() && !excludedMethods()") + public void before() { + ThirdPartyJenkinsCrumbResponse response = jenkinsClientApi.getJenkinsCrumb(String.format(JenkinsConstants.JENKINS_CRUMB_IS_SUER_API, "http://192.168.2.200:9096"), "admin", "3%(Lb5GN,M'Yk\\,)Dy\"*"); + if (response == null) { + throw new BusinessException(BusinessState.GET_JENKINS_CRUMB_FAILED); + } + JenkinsCrumbContext.setJenkinsCrumb(JenkinsCrumbConvert.INSTANCE.response2DTO(response)); + } + + @After("pointcut()") + public void after() { + JenkinsCrumbContext.clear(); + } + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/request/JenkinsHttpHeaders.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/request/JenkinsHttpHeaders.java new file mode 100644 index 0000000..9da0517 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/request/JenkinsHttpHeaders.java @@ -0,0 +1,8 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.request; + +import org.springframework.http.HttpHeaders; + +public class JenkinsHttpHeaders extends HttpHeaders { + + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsCrumbIssuerResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsCrumbIssuerResponse.java deleted file mode 100644 index a05a894..0000000 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsCrumbIssuerResponse.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.qc.soft.deploy.ease.adapter.api.thirdparty.response; - -import lombok.Data; - -@Data -public class JenkinsCrumbIssuerResponse { - - private String crumb; - - private String cookie; - -} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailChangeSetDetailResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailChangeSetDetailResponse.java deleted file mode 100644 index 824e7c0..0000000 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailChangeSetDetailResponse.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.qc.soft.deploy.ease.adapter.api.thirdparty.response; - -import lombok.Data; - -import java.util.Date; -import java.util.List; -import java.util.Map; - -@Data -public class JenkinsLastJobDetailChangeSetDetailResponse { - - private String commitId; - - private Date timestamp; - - private Map author; - - private String authorEmail; - - private String comment; - - private Date date; - - private String id; - - private String msg; - - private List> paths; -} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailChangeSetResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailChangeSetResponse.java deleted file mode 100644 index dabc776..0000000 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailChangeSetResponse.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.qc.soft.deploy.ease.adapter.api.thirdparty.response; - -import lombok.Data; - -import java.util.List; - -@Data -public class JenkinsLastJobDetailChangeSetResponse { - - private List items; - -} \ No newline at end of file diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailResponse.java deleted file mode 100644 index 1bd2053..0000000 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/JenkinsLastJobDetailResponse.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.qc.soft.deploy.ease.adapter.api.thirdparty.response; - -import lombok.Data; - -import java.util.Date; - -@Data -public class JenkinsLastJobDetailResponse { - - private String projectName; - - private int number; - - private boolean inProgress; - - private boolean building; - - private String result; - - private Date timestamp; - - private long duration; - - private int queueId; - - private JenkinsLastJobDetailChangeSetResponse changeSet; - -} - - - diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/ThirdPartyJenkinsCrumbResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/ThirdPartyJenkinsCrumbResponse.java new file mode 100644 index 0000000..7287c5a --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/ThirdPartyJenkinsCrumbResponse.java @@ -0,0 +1,16 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ThirdPartyJenkinsCrumbResponse implements Serializable { + + private static final long serialVersionUID = -3101286468330530353L; + + private String crumb; + + private String cookie; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildChangeSetDetailResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildChangeSetDetailResponse.java new file mode 100644 index 0000000..b661eb8 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildChangeSetDetailResponse.java @@ -0,0 +1,41 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response.build; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.qc.soft.deploy.ease.adapter.config.DateStrToFormatDateStrDeserializer; +import com.qc.soft.deploy.ease.adapter.config.Timestamp2StrDeserializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +@Data +@ToString +@EqualsAndHashCode +public class ThirdPartyJenkinsBuildChangeSetDetailResponse implements Serializable { + + private static final long serialVersionUID = 179448298612521939L; + + private String commitId; + + @JsonDeserialize(using = Timestamp2StrDeserializer.class) + private String timestamp; + + private Map author; + + private String authorEmail; + + private String comment; + + @JsonDeserialize(using = DateStrToFormatDateStrDeserializer.class) + private String date; + + private String id; + + private String msg; + + private List> paths; +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildChangeSetResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildChangeSetResponse.java new file mode 100644 index 0000000..554c313 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildChangeSetResponse.java @@ -0,0 +1,19 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response.build; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; +import java.util.List; + +@Data +@ToString +@EqualsAndHashCode +public class ThirdPartyJenkinsBuildChangeSetResponse implements Serializable { + + private static final long serialVersionUID = 1415649691093536940L; + + private List items; + +} \ No newline at end of file diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildResponse.java new file mode 100644 index 0000000..9cb780f --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildResponse.java @@ -0,0 +1,40 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response.build; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.qc.soft.deploy.ease.adapter.config.Timestamp2StrDeserializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; + +@Data +@ToString +@EqualsAndHashCode +public class ThirdPartyJenkinsBuildResponse implements Serializable{ + + private static final long serialVersionUID = -2071857721972730643L; + + private String projectName; + + private Integer number; + + private Boolean inProgress; + + private Boolean building; + + private String result; + + @JsonDeserialize(using = Timestamp2StrDeserializer.class) + private String timestamp; + + private Long duration; + + private Integer queueId; + + private ThirdPartyJenkinsBuildChangeSetResponse changeSet; + +} + + + diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildSimpleResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildSimpleResponse.java new file mode 100644 index 0000000..2f21b97 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/build/ThirdPartyJenkinsBuildSimpleResponse.java @@ -0,0 +1,20 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response.build; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; + +@Data +@ToString +@EqualsAndHashCode +public class ThirdPartyJenkinsBuildSimpleResponse implements Serializable { + + private static final long serialVersionUID = -1751553747449726589L; + + Integer number; + + String url; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobDetailResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobDetailResponse.java new file mode 100644 index 0000000..3f79c15 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobDetailResponse.java @@ -0,0 +1,46 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response.job; + +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.build.ThirdPartyJenkinsBuildSimpleResponse; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; +import java.util.List; + +@Data +@ToString +@EqualsAndHashCode +public class ThirdPartyJenkinsJobDetailResponse implements Serializable { + + private static final long serialVersionUID = -1504176139786054926L; + + String name; + + String color; + + String description; + + String displayName; + + String fullDisplayName; + + String fullName; + + List builds; + + ThirdPartyJenkinsBuildSimpleResponse firstBuild; + + ThirdPartyJenkinsBuildSimpleResponse lastBuild; + + ThirdPartyJenkinsBuildSimpleResponse lastCompletedBuild; + + ThirdPartyJenkinsBuildSimpleResponse lastStableBuild; + + ThirdPartyJenkinsBuildSimpleResponse lastSuccessfulBuild; + + int nextBuildNumber; + + boolean disabled; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobHealthReportResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobHealthReportResponse.java new file mode 100644 index 0000000..0bdba94 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobHealthReportResponse.java @@ -0,0 +1,20 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response.job; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; + +@Data +@ToString +@EqualsAndHashCode +public class ThirdPartyJenkinsJobHealthReportResponse implements Serializable { + + private static final long serialVersionUID = -1908278155963533191L; + + String description; + + int score; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobResponse.java new file mode 100644 index 0000000..64cffd8 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/job/ThirdPartyJenkinsJobResponse.java @@ -0,0 +1,20 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response.job; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; + +@Data +@ToString +@EqualsAndHashCode +public class ThirdPartyJenkinsJobResponse implements Serializable { + + private static final long serialVersionUID = -3928602711303390639L; + + String name; + + String url; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsResponse.java new file mode 100644 index 0000000..4222266 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsResponse.java @@ -0,0 +1,19 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response.view; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; +import java.util.List; + +@Data +@ToString +@EqualsAndHashCode +public class ThirdPartyJenkinsResponse implements Serializable { + + private static final long serialVersionUID = 3108812282903867631L; + + private List views; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsViewDetailResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsViewDetailResponse.java new file mode 100644 index 0000000..59d9fd9 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsViewDetailResponse.java @@ -0,0 +1,22 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response.view; + +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.job.ThirdPartyJenkinsJobResponse; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; +import java.util.List; + +@Data +@ToString +@EqualsAndHashCode +public class ThirdPartyJenkinsViewDetailResponse implements Serializable { + + private static final long serialVersionUID = -4769400085765278323L; + + private String name; + + private List jobs; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsViewResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsViewResponse.java new file mode 100644 index 0000000..6f2c814 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/response/view/ThirdPartyJenkinsViewResponse.java @@ -0,0 +1,21 @@ +package com.qc.soft.deploy.ease.adapter.api.thirdparty.response.view; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; +import java.util.List; + +@Data +@ToString +@EqualsAndHashCode +public class ThirdPartyJenkinsViewResponse implements Serializable { + + private static final long serialVersionUID = 6036234249912113540L; + + String name; + + String url; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/FeignClientConfig.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/AppConfig.java similarity index 56% rename from deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/FeignClientConfig.java rename to deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/AppConfig.java index eb0256a..7da886c 100644 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/FeignClientConfig.java +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/AppConfig.java @@ -4,9 +4,15 @@ import com.qc.soft.framework.basic.context.TenantContext; import feign.RequestInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.client.RestTemplate; @Configuration -public class FeignClientConfig { +public class AppConfig { @Bean public RequestInterceptor tenantHeaderInterceptor() { return requestTemplate -> { @@ -14,4 +20,5 @@ public class FeignClientConfig { requestTemplate.header("x-tenant-code", TenantContext.getCurrentTenant()); }; } + } diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/DateStrToFormatDateStrDeserializer.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/DateStrToFormatDateStrDeserializer.java new file mode 100644 index 0000000..ed6a768 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/DateStrToFormatDateStrDeserializer.java @@ -0,0 +1,32 @@ +package com.qc.soft.deploy.ease.adapter.config; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; +import java.util.TimeZone; + +public class DateStrToFormatDateStrDeserializer extends JsonDeserializer { + + private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; + + private static final SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); + + static { + dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + } + + @Override + public String deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException { + DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss Z"); + OffsetDateTime offsetDateTime = OffsetDateTime.parse(jsonParser.getText(), inputFormatter); + LocalDateTime localDateTime = offsetDateTime.toLocalDateTime(); + DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + return localDateTime.format(outputFormatter); + } +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/Timestamp2StrDeserializer.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/Timestamp2StrDeserializer.java new file mode 100644 index 0000000..356a7b4 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/Timestamp2StrDeserializer.java @@ -0,0 +1,23 @@ +package com.qc.soft.deploy.ease.adapter.config; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; + +public class Timestamp2StrDeserializer extends JsonDeserializer { + + @Override + public String deserialize(JsonParser p, DeserializationContext context) throws IOException { + long timestamp = p.getLongValue(); + Instant instant = Instant.ofEpochMilli(timestamp); + LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + return localDateTime.format(formatter); + } +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/consts/JenkinsConstants.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/consts/JenkinsConstants.java index cf4ca53..08cce1c 100644 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/consts/JenkinsConstants.java +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/consts/JenkinsConstants.java @@ -2,27 +2,23 @@ package com.qc.soft.deploy.ease.adapter.consts; public class JenkinsConstants { - - // viewApi: ${devops.jenkins.basePath}/view/%s/api/json?pretty=true -// projectApi: ${devops.jenkins.basePath}/view/%s/job/%s/api/json?pretty=true -// projectBuildApi: ${devops.jenkins.basePath}/job/%s/%s/api/json?pretty=true -// crumbIssuerApi: ${devops.jenkins.basePath}/crumbIssuer/api/json -// buildWithParamsApi: ${devops.jenkins.basePath}/job/%s/buildWithParameters -// cleanWorkspaceApi: ${devops.jenkins.basePath}/view/%s/job/%s/doWipeOutWorkspace -// buildFailedApi: ${devops.jenkins.basePath}/view/%s/job/%s/%s/consoleText - public static final String JENKINS_CRUMB_IS_SUER_API = "%s/crumbIssuer/api/json"; - public static final String JENKINS_VIEW_API = "%s/view/%s/api/json?pretty=true"; + public static final String JENKINS_VIEWS_API = "%s/api/json?pretty=true"; - public static final String JENKINS_PROJECT_VIEW_API = "%s/view/%s/job/%s/api/json?pretty=true"; + public static final String JENKINS_JOB_ALL_API = "%s/api/json?pretty=true"; - public static final String JENKINS_PROJECT_JOB_DETAIL_API = "%s/job/%s/%s/api/json?pretty=true"; + public static final String JENKINS_JOB_API = "%s/view/%s/api/json?pretty=true"; - public static final String JENKINS_PROJECT_EXEC_BUILD_API = "%s/job/%s/buildWithParameters"; + public static final String JENKINS_JOB_DETAIL_API = "%s/view/%s/job/%s/api/json?pretty=true"; - public static final String JENKINS_PROJECT_CLEAN_WORKSPACE_API = "%s/view/%s/job/%s/doWipeOutWorkspace"; + public static final String JENKINS_BUILD_API = "%s/view/%s/job/%s/%s/api/json?pretty=true"; - public static final String JENKINS_PROJECT_JOB_FAILED_API = "%s/view/%s/job/%s/%s/consoleText"; + public static final String REDIS_JENKINS_ORIGINAL_VIEW = "deploy-ease:jenkins:original:view"; + public static final String REDIS_JENKINS_ORIGINAL_VIEW_JOB = "deploy-ease:jenkins:original:view:%s"; + + public static final String REDIS_JENKINS_ORIGINAL_VIEW_JOB_DETAIL = "deploy-ease:jenkins:original:view:%s:%s"; + + public static final String REDIS_JENKINS_ORIGINAL_VIEW_BUILD = "deploy-ease:jenkins:original:view:%s:%s:%s"; } diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/JenkinsBuildSimpleSupportContext.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/JenkinsBuildSimpleSupportContext.java new file mode 100644 index 0000000..b2fe5c7 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/JenkinsBuildSimpleSupportContext.java @@ -0,0 +1,20 @@ +package com.qc.soft.deploy.ease.adapter.context; + +import com.alibaba.ttl.TransmittableThreadLocal; +import org.apache.commons.lang3.tuple.Pair; + +public class JenkinsBuildSimpleSupportContext { + private static final TransmittableThreadLocal> context = new TransmittableThreadLocal<>(); + + public static void setValue(Pair value) { + context.set(value); + } + + public static Pair getValue() { + return context.get(); + } + + public static void clear() { + context.remove(); + } +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/JenkinsCrumbContext.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/JenkinsCrumbContext.java new file mode 100644 index 0000000..af60467 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/JenkinsCrumbContext.java @@ -0,0 +1,21 @@ +package com.qc.soft.deploy.ease.adapter.context; + +import com.alibaba.ttl.TransmittableThreadLocal; +import com.qc.soft.deploy.ease.adapter.dto.JenkinsCrumbDTO; + +public class JenkinsCrumbContext { + + private static final TransmittableThreadLocal jenkinsCrumb = new TransmittableThreadLocal<>(); + + public static void setJenkinsCrumb(JenkinsCrumbDTO jenkinsCrumbDTO) { + jenkinsCrumb.set(jenkinsCrumbDTO); + } + + public static JenkinsCrumbDTO getJenkinsCrumb() { + return jenkinsCrumb.get(); + } + + public static void clear() { + jenkinsCrumb.remove(); + } +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/TenantAdapterContext.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/TenantAdapterContext.java new file mode 100644 index 0000000..150fe75 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/context/TenantAdapterContext.java @@ -0,0 +1,13 @@ +package com.qc.soft.deploy.ease.adapter.context; + +public class TenantAdapterContext { + + + + + + + + + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/JenkinsController.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/JenkinsController.java new file mode 100644 index 0000000..20ae5a6 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/JenkinsController.java @@ -0,0 +1,60 @@ +package com.qc.soft.deploy.ease.adapter.controller; + +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate.JenkinsAggregateResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build.JenkinsBuildResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.job.JenkinsJobDetailResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view.JenkinsResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view.JenkinsViewDetailResponse; +import com.qc.soft.deploy.ease.adapter.service.IJenkinsService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +@RequestMapping("/mgmt") +public class JenkinsController { + + @Resource + private IJenkinsService jenkinsService; + + + @GetMapping(value = "/jenkins/crumb") + public void getJenkinsCrumbIssue() { + jenkinsService.getJenkinsCrumbIssue(null, null, null); + } + + @GetMapping("/jenkins/views") + public JenkinsResponse views() { + return jenkinsService.views(); + } + + @GetMapping({"/jenkins/jobs", "/jenkins/jobs/{viewName}"}) + public JenkinsViewDetailResponse jobs(@PathVariable(value = "viewName", required = false) String viewName) { + return jenkinsService.jobs(viewName); + } + + + @GetMapping({"/jenkins/{viewName}/job/{jobName}/detail"}) + public JenkinsJobDetailResponse jobDetail( + @PathVariable(value = "viewName") String viewName, + @PathVariable(value = "jobName") String jobName){ + return jenkinsService.jobDetail(viewName, jobName); + } + + + @GetMapping({"/jenkins/{viewName}/job/{jobName}/build/{buildNumber}"}) + public JenkinsBuildResponse jobBuild( + @PathVariable(value = "viewName") String viewName, + @PathVariable(value = "jobName") String jobName, + @PathVariable(value = "buildNumber") Long buildNumber){ + return jenkinsService.jobBuild(viewName, jobName, buildNumber); + } + + @GetMapping("jenkins/aggregate") + public JenkinsAggregateResponse aggregate(){ + return jenkinsService.aggregate(); + } +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/JenkinsSSEController.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/JenkinsSSEController.java deleted file mode 100644 index 3cc8949..0000000 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/JenkinsSSEController.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.qc.soft.deploy.ease.adapter.controller; - -import com.qc.soft.deploy.ease.adapter.api.internal.IDictionaryServiceApi; -import com.qc.soft.deploy.ease.adapter.service.IJenkinsService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import reactor.core.publisher.Flux; - -import javax.annotation.Resource; -import java.time.Duration; - -@RestController -@RequestMapping("sse") -public class JenkinsSSEController { - - @Resource - private IDictionaryServiceApi dictionaryServiceApi; - - @Resource - private IJenkinsService jenkinsService; - -// @GetMapping(value = "/jenkins/views", produces = "text/event-stream;charset=UTF-8") -// public Flux jenkinsViews() { -// return Flux.interval(Duration.ofSeconds(5)).map(index -> jenkinsService); -// } - - - @GetMapping(value = "/jenkins/crumb") - public void getJenkinsCrumbIssue() { - jenkinsService.getJenkinsCrumbIssue(null, null, null); - } -} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsAggregateResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsAggregateResponse.java new file mode 100644 index 0000000..35eff25 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsAggregateResponse.java @@ -0,0 +1,14 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class JenkinsAggregateResponse { + + private List views; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewAggregateResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewAggregateResponse.java new file mode 100644 index 0000000..67f14eb --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewAggregateResponse.java @@ -0,0 +1,16 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class JenkinsViewAggregateResponse { + + private String viewName; + + private List projects; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewProjectAggregateResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewProjectAggregateResponse.java new file mode 100644 index 0000000..60e2714 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewProjectAggregateResponse.java @@ -0,0 +1,39 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class JenkinsViewProjectAggregateResponse { + + String projectName; + + String color; + + String description; + + String displayName; + + String fullDisplayName; + + String fullName; + + List builds; + + JenkinsViewProjectTaskAggregateResponse firstBuild; + + JenkinsViewProjectTaskAggregateResponse lastBuild; + + JenkinsViewProjectTaskAggregateResponse lastCompletedBuild; + + JenkinsViewProjectTaskAggregateResponse lastStableBuild; + + JenkinsViewProjectTaskAggregateResponse lastSuccessfulBuild; + + int nextBuildNumber; + + boolean disabled; +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewProjectTaskAggregateResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewProjectTaskAggregateResponse.java new file mode 100644 index 0000000..4718fa9 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/aggregate/JenkinsViewProjectTaskAggregateResponse.java @@ -0,0 +1,27 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build.JenkinsBuildChangeSetResponse; +import lombok.Data; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class JenkinsViewProjectTaskAggregateResponse { + + private Integer number; + + private Boolean inProgress; + + private Boolean building; + + private String result; + + private String timestamp; + + private Long duration; + + private Integer queueId; + + private JenkinsBuildChangeSetResponse changeSet; + +} \ No newline at end of file diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildChangeSetDetailResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildChangeSetDetailResponse.java new file mode 100644 index 0000000..95e43c9 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildChangeSetDetailResponse.java @@ -0,0 +1,31 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class JenkinsBuildChangeSetDetailResponse { + + private String commitId; + + private String timestamp; + + private Map author; + + private String authorEmail; + + private String comment; + + private String date; + + private String id; + + private String msg; + + private List> paths; +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildChangeSetResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildChangeSetResponse.java new file mode 100644 index 0000000..4c46632 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildChangeSetResponse.java @@ -0,0 +1,14 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class JenkinsBuildChangeSetResponse { + + private List items; + +} \ No newline at end of file diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildResponse.java new file mode 100644 index 0000000..6e48eb7 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildResponse.java @@ -0,0 +1,32 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import java.util.Date; + +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class JenkinsBuildResponse { + + private String projectName; + + private Integer number; + + private Boolean inProgress; + + private Boolean building; + + private String result; + + private String timestamp; + + private Long duration; + + private Integer queueId; + + private JenkinsBuildChangeSetResponse changeSet; + +} + + + diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildSimpleResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildSimpleResponse.java new file mode 100644 index 0000000..cc84070 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/build/JenkinsBuildSimpleResponse.java @@ -0,0 +1,14 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class JenkinsBuildSimpleResponse { + + Integer number; + + String url; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/job/JenkinsJobDetailResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/job/JenkinsJobDetailResponse.java new file mode 100644 index 0000000..c2b6000 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/job/JenkinsJobDetailResponse.java @@ -0,0 +1,40 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.job; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build.JenkinsBuildSimpleResponse; +import lombok.Data; +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class JenkinsJobDetailResponse { + + String name; + + String color; + + String description; + + String displayName; + + String fullDisplayName; + + String fullName; + + List builds; + + JenkinsBuildSimpleResponse firstBuild; + + JenkinsBuildSimpleResponse lastBuild; + + JenkinsBuildSimpleResponse lastCompletedBuild; + + JenkinsBuildSimpleResponse lastStableBuild; + + JenkinsBuildSimpleResponse lastSuccessfulBuild; + + int nextBuildNumber; + + boolean disabled; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/job/JenkinsJobResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/job/JenkinsJobResponse.java new file mode 100644 index 0000000..a7f2ddb --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/job/JenkinsJobResponse.java @@ -0,0 +1,14 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.job; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class JenkinsJobResponse { + + String name; + + String url; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsResponse.java new file mode 100644 index 0000000..487a74b --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsResponse.java @@ -0,0 +1,14 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class JenkinsResponse { + + private List views; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsViewDetailResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsViewDetailResponse.java new file mode 100644 index 0000000..5d0f513 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsViewDetailResponse.java @@ -0,0 +1,17 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.job.ThirdPartyJenkinsJobResponse; +import lombok.Data; + +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class JenkinsViewDetailResponse { + + private String name; + + private List jobs; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsViewResponse.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsViewResponse.java new file mode 100644 index 0000000..38d1900 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/controller/response/jenkins/view/JenkinsViewResponse.java @@ -0,0 +1,14 @@ +package com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Data +public class JenkinsViewResponse { + + String name; + + String url; + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsBuildConvert.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsBuildConvert.java new file mode 100644 index 0000000..01cdd16 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsBuildConvert.java @@ -0,0 +1,21 @@ +package com.qc.soft.deploy.ease.adapter.convert; + +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.build.ThirdPartyJenkinsBuildResponse; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.job.ThirdPartyJenkinsJobDetailResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate.JenkinsViewProjectTaskAggregateResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build.JenkinsBuildResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.job.JenkinsJobDetailResponse; +import org.mapstruct.Mapper; +import org.mapstruct.MappingTarget; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface JenkinsBuildConvert { + + JenkinsBuildConvert INSTANCE = Mappers.getMapper(JenkinsBuildConvert.class); + + JenkinsBuildResponse response2ApiResponse(ThirdPartyJenkinsBuildResponse response); + + void response2ApiAggregateResponse(JenkinsBuildResponse response, @MappingTarget JenkinsViewProjectTaskAggregateResponse target); + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsConvert.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsConvert.java new file mode 100644 index 0000000..bd7cf2f --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsConvert.java @@ -0,0 +1,15 @@ +package com.qc.soft.deploy.ease.adapter.convert; + +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.view.ThirdPartyJenkinsResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view.JenkinsResponse; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface JenkinsConvert { + + JenkinsConvert INSTANCE = Mappers.getMapper(JenkinsConvert.class); + + JenkinsResponse response2ApiResponse(ThirdPartyJenkinsResponse response); + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsCrumbConvert.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsCrumbConvert.java new file mode 100644 index 0000000..8a1ac2e --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsCrumbConvert.java @@ -0,0 +1,16 @@ +package com.qc.soft.deploy.ease.adapter.convert; + +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.ThirdPartyJenkinsCrumbResponse; +import com.qc.soft.deploy.ease.adapter.dto.JenkinsCrumbDTO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface JenkinsCrumbConvert { + + JenkinsCrumbConvert INSTANCE = Mappers.getMapper(JenkinsCrumbConvert.class); + + JenkinsCrumbDTO response2DTO(ThirdPartyJenkinsCrumbResponse response); + + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsJobDetailConvert.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsJobDetailConvert.java new file mode 100644 index 0000000..cf1497f --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsJobDetailConvert.java @@ -0,0 +1,41 @@ +package com.qc.soft.deploy.ease.adapter.convert; + +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.job.ThirdPartyJenkinsJobDetailResponse; +import com.qc.soft.deploy.ease.adapter.context.JenkinsBuildSimpleSupportContext; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate.JenkinsViewProjectAggregateResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate.JenkinsViewProjectTaskAggregateResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build.JenkinsBuildResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build.JenkinsBuildSimpleResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.job.JenkinsJobDetailResponse; +import com.qc.soft.deploy.ease.adapter.service.IJenkinsService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.tuple.Pair; +import org.mapstruct.AfterMapping; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; +import org.mapstruct.Mappings; + +import javax.annotation.Resource; + +@Mapper(componentModel = "spring") +@Slf4j +public abstract class JenkinsJobDetailConvert { + + @Resource + private IJenkinsService jenkinsService; + + public abstract JenkinsJobDetailResponse response2ApiResponse(ThirdPartyJenkinsJobDetailResponse response); + + @Mappings({ + @Mapping(source = "response.name", target = "projectName") + }) + public abstract JenkinsViewProjectAggregateResponse response2AggregateResponse(JenkinsJobDetailResponse response); + + @AfterMapping + void afterMapping(JenkinsBuildSimpleResponse source, @MappingTarget JenkinsViewProjectTaskAggregateResponse target) { + Pair value = JenkinsBuildSimpleSupportContext.getValue(); + JenkinsBuildResponse jenkinsBuildResponse = jenkinsService.jobBuild(value.getLeft(), value.getRight(), Long.valueOf(source.getNumber())); + JenkinsBuildConvert.INSTANCE.response2ApiAggregateResponse(jenkinsBuildResponse, target); + } +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsViewDetailConvert.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsViewDetailConvert.java new file mode 100644 index 0000000..ab0e20d --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/convert/JenkinsViewDetailConvert.java @@ -0,0 +1,15 @@ +package com.qc.soft.deploy.ease.adapter.convert; + +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.view.ThirdPartyJenkinsViewDetailResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view.JenkinsViewDetailResponse; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface JenkinsViewDetailConvert { + + JenkinsViewDetailConvert INSTANCE = Mappers.getMapper(JenkinsViewDetailConvert.class); + + JenkinsViewDetailResponse response2ApiResponse(ThirdPartyJenkinsViewDetailResponse response); + +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/dto/JenkinsCrumbDTO.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/dto/JenkinsCrumbDTO.java new file mode 100644 index 0000000..f6acf18 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/dto/JenkinsCrumbDTO.java @@ -0,0 +1,4 @@ +package com.qc.soft.deploy.ease.adapter.dto; + +public class JenkinsCrumbDTO { +} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/enums/AdapterBusinessErrorCodeI.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/enums/AdapterBusinessErrorCodeI.java deleted file mode 100644 index 03340e8..0000000 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/enums/AdapterBusinessErrorCodeI.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.qc.soft.deploy.ease.adapter.enums; - -import com.qc.soft.framework.basic.enums.IBasicState; - -public enum AdapterBusinessErrorCodeI implements IBasicState { -} diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/service/IJenkinsService.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/service/IJenkinsService.java index f844087..fec7ddc 100644 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/service/IJenkinsService.java +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/service/IJenkinsService.java @@ -1,9 +1,24 @@ package com.qc.soft.deploy.ease.adapter.service; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.ThirdPartyJenkinsCrumbResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate.JenkinsAggregateResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build.JenkinsBuildResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.job.JenkinsJobDetailResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view.JenkinsResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view.JenkinsViewDetailResponse; + public interface IJenkinsService { - public void getJenkinsCrumbIssue(String url, String username, String password); + ThirdPartyJenkinsCrumbResponse getJenkinsCrumbIssue(String url, String username, String password); + JenkinsResponse views(); + JenkinsViewDetailResponse jobs(String viewName); + + JenkinsJobDetailResponse jobDetail(String viewName, String jobName); + + JenkinsBuildResponse jobBuild(String viewName, String jobName, Long buildNumber); + + JenkinsAggregateResponse aggregate(); } diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/service/impl/JenkinsServiceImpl.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/service/impl/JenkinsServiceImpl.java index e687261..c5b0e81 100644 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/service/impl/JenkinsServiceImpl.java +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/service/impl/JenkinsServiceImpl.java @@ -1,12 +1,36 @@ package com.qc.soft.deploy.ease.adapter.service.impl; +import cn.hutool.core.date.StopWatch; +import com.alibaba.fastjson2.JSON; import com.qc.soft.deploy.ease.adapter.api.thirdparty.JenkinsClientApi; -import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.JenkinsCrumbIssuerResponse; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.ThirdPartyJenkinsCrumbResponse; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.build.ThirdPartyJenkinsBuildResponse; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.job.ThirdPartyJenkinsJobDetailResponse; +import com.qc.soft.deploy.ease.adapter.api.thirdparty.response.view.ThirdPartyJenkinsResponse; import com.qc.soft.deploy.ease.adapter.consts.JenkinsConstants; +import com.qc.soft.deploy.ease.adapter.context.JenkinsBuildSimpleSupportContext; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate.JenkinsAggregateResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate.JenkinsViewAggregateResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.aggregate.JenkinsViewProjectAggregateResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.build.JenkinsBuildResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.job.JenkinsJobDetailResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view.JenkinsResponse; +import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view.JenkinsViewDetailResponse; +import com.qc.soft.deploy.ease.adapter.convert.JenkinsBuildConvert; +import com.qc.soft.deploy.ease.adapter.convert.JenkinsConvert; +import com.qc.soft.deploy.ease.adapter.convert.JenkinsJobDetailConvert; +import com.qc.soft.deploy.ease.adapter.convert.JenkinsViewDetailConvert; import com.qc.soft.deploy.ease.adapter.service.IJenkinsService; +import com.qc.soft.framework.basic.context.SpringContext; +import lombok.val; +import org.apache.commons.lang3.tuple.Pair; +import org.springframework.context.ApplicationContext; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; @Service public class JenkinsServiceImpl implements IJenkinsService { @@ -14,9 +38,66 @@ public class JenkinsServiceImpl implements IJenkinsService { @Resource private JenkinsClientApi jenkinsClientApi; + @Resource + private JenkinsJobDetailConvert jenkinsJobDetailConvert; + + + @Resource + private SpringContext springContext; + + + @Resource + private RedisTemplate redisTemplate; + @Override - public void getJenkinsCrumbIssue(String url, String username, String password) { - JenkinsCrumbIssuerResponse admin = jenkinsClientApi.getJenkinsCrumbIssue(String.format(JenkinsConstants.JENKINS_CRUMB_IS_SUER_API, "http://192.168.2.200:9096"), "admin", "3%(Lb5GN,M'Yk\\,)Dy\"*"); - System.out.println(admin); + public ThirdPartyJenkinsCrumbResponse getJenkinsCrumbIssue(String url, String username, String password) { + return jenkinsClientApi.getJenkinsCrumb(String.format(JenkinsConstants.JENKINS_CRUMB_IS_SUER_API, "http://192.168.2.200:9096"), "admin", "3%(Lb5GN,M'Yk\\,)Dy\"*"); } + + @Override + public JenkinsResponse views() { + return JenkinsConvert.INSTANCE.response2ApiResponse(jenkinsClientApi.getViews()); + } + + @Override + public JenkinsViewDetailResponse jobs(String viewName) { + return JenkinsViewDetailConvert.INSTANCE.response2ApiResponse(jenkinsClientApi.jobs(viewName)); + } + + @Override + public JenkinsJobDetailResponse jobDetail(String viewName, String jobName) { + return jenkinsJobDetailConvert.response2ApiResponse(jenkinsClientApi.jobDetail(viewName, jobName)); + } + + @Override + public JenkinsBuildResponse jobBuild(String viewName, String jobName, Long buildNumber) { + return JenkinsBuildConvert.INSTANCE.response2ApiResponse(jenkinsClientApi.jobBuild(viewName, jobName, buildNumber)); + } + + @Override + public JenkinsAggregateResponse aggregate() { + val aggregate = new JenkinsAggregateResponse(); + List viewsAggregate = new ArrayList<>(); + JenkinsResponse container = views(); + container.getViews().stream().filter(view -> !view.getName().equals("all")).forEach(view -> { + String viewName = view.getName(); + JenkinsViewDetailResponse jobsContainer = jobs(viewName); + List viewProjectsAggregate = new ArrayList<>(); + jobsContainer.getJobs().forEach(job -> { + JenkinsJobDetailResponse jobDetailContainer = jobDetail(viewName, job.getName()); + JenkinsBuildSimpleSupportContext.setValue(Pair.of(viewName, job.getName())); + JenkinsViewProjectAggregateResponse viewProjectAggregate = jenkinsJobDetailConvert.response2AggregateResponse(jobDetailContainer); + JenkinsBuildSimpleSupportContext.clear(); + viewProjectsAggregate.add(viewProjectAggregate); + }); + JenkinsViewAggregateResponse viewAggregate = new JenkinsViewAggregateResponse(); + viewAggregate.setViewName(viewName); + viewAggregate.setProjects(viewProjectsAggregate); + viewsAggregate.add(viewAggregate); + }); + aggregate.setViews(viewsAggregate); + return aggregate; + } + + } diff --git a/deploy-ease-tenant-adapter/src/main/resources/META-INF/spring.factories b/deploy-ease-tenant-adapter/src/main/resources/META-INF/spring.factories index e4f42f5..039f92d 100644 --- a/deploy-ease-tenant-adapter/src/main/resources/META-INF/spring.factories +++ b/deploy-ease-tenant-adapter/src/main/resources/META-INF/spring.factories @@ -1,2 +1,6 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -com.qc.soft.framework.basic.config.GlobalWebConfigurer +com.qc.soft.framework.basic.context.SpringContext,\ +com.qc.soft.framework.basic.redis.RedisAutoConfiguration,\ +com.qc.soft.framework.basic.http.HttpAutoConfiguration,\ +com.qc.soft.framework.basic.config.GlobalResponseHandler,\ +com.qc.soft.framework.basic.config.GlobalExceptionHandler \ No newline at end of file diff --git a/deploy-ease-tenant-adapter/src/main/resources/application-dev.yml b/deploy-ease-tenant-adapter/src/main/resources/application-dev.yml new file mode 100644 index 0000000..5afe7e8 --- /dev/null +++ b/deploy-ease-tenant-adapter/src/main/resources/application-dev.yml @@ -0,0 +1,15 @@ +spring: + application: + name: deploy-ease-tenant-adapter + redis: + host: localhost + port: 6379 + database: 0 + lettuce: + pool: + max-active: 8 + max-idle: 8 + min-idle: 0 + max-wait: 1ms +server: + port: 8080 diff --git a/deploy-ease-tenant-adapter/src/main/resources/application.yml b/deploy-ease-tenant-adapter/src/main/resources/application.yml deleted file mode 100644 index e69de29..0000000 diff --git a/deploy-ease-tenant-adapter/src/main/resources/bootstrap.yml b/deploy-ease-tenant-adapter/src/main/resources/bootstrap.yml index ace723d..b999edd 100644 --- a/deploy-ease-tenant-adapter/src/main/resources/bootstrap.yml +++ b/deploy-ease-tenant-adapter/src/main/resources/bootstrap.yml @@ -11,17 +11,17 @@ spring: config: group: ${DEPLOY_ENV} namespace: ${DEPLOY_ENV} +# shared-configs[0]: +# group: common +# data-id: common.yml +# refresh: true extension-configs[0]: group: common data-id: common.yml - refresh: false + refresh: true extension-configs[1]: group: business data-id: deploy-ease-tenant-adapter.yml - refresh: false - config: - override-none: false - allow-override: true - override-system-properties: false + refresh: true main: allow-bean-definition-overriding: true \ No newline at end of file diff --git a/deploy-ease-tenant-adapter/target/classes/META-INF/spring.factories b/deploy-ease-tenant-adapter/target/classes/META-INF/spring.factories index e4f42f5..039f92d 100644 --- a/deploy-ease-tenant-adapter/target/classes/META-INF/spring.factories +++ b/deploy-ease-tenant-adapter/target/classes/META-INF/spring.factories @@ -1,2 +1,6 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -com.qc.soft.framework.basic.config.GlobalWebConfigurer +com.qc.soft.framework.basic.context.SpringContext,\ +com.qc.soft.framework.basic.redis.RedisAutoConfiguration,\ +com.qc.soft.framework.basic.http.HttpAutoConfiguration,\ +com.qc.soft.framework.basic.config.GlobalResponseHandler,\ +com.qc.soft.framework.basic.config.GlobalExceptionHandler \ No newline at end of file diff --git a/deploy-ease-tenant-adapter/target/classes/application.yml b/deploy-ease-tenant-adapter/target/classes/application.yml deleted file mode 100644 index e69de29..0000000 diff --git a/deploy-ease-tenant-adapter/target/classes/bootstrap.yml b/deploy-ease-tenant-adapter/target/classes/bootstrap.yml index ace723d..b999edd 100644 --- a/deploy-ease-tenant-adapter/target/classes/bootstrap.yml +++ b/deploy-ease-tenant-adapter/target/classes/bootstrap.yml @@ -11,17 +11,17 @@ spring: config: group: ${DEPLOY_ENV} namespace: ${DEPLOY_ENV} +# shared-configs[0]: +# group: common +# data-id: common.yml +# refresh: true extension-configs[0]: group: common data-id: common.yml - refresh: false + refresh: true extension-configs[1]: group: business data-id: deploy-ease-tenant-adapter.yml - refresh: false - config: - override-none: false - allow-override: true - override-system-properties: false + refresh: true main: allow-bean-definition-overriding: true \ No newline at end of file diff --git a/deploy-ease-tenant-adapter/target/deploy-ease-tenant-adapter-1.0.0.jar.original b/deploy-ease-tenant-adapter/target/deploy-ease-tenant-adapter-1.0.0.jar.original deleted file mode 100644 index f872e57743987e95ed720c903d0634edeffe5c6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25231 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%0A>)vF&S-v#$RpXpA5_oeb60hD#sx zuo5$j14Na^c9y?tBb8qqD)qZw>F(6OqN7;2M|^j*5w1{JpZOZyM*Z&BPL0a06*%|I zn1S>>z2>OaR0DlNa+R1&S^X(<)2yOvxqBUm(ff)MmU?P-z1=K*S5YGE%0|NKT95HW z>X3z)m1oPl1Vj@8Tab!MAQPLV_PG~!8T|g{2?;HmB{6L$hoM?_@iIHm}1z#D!go~qOvOjTVlPns#JN4nOgi)d*2j#y>xU!(Vq1F z2&}77tqBf!{;uYaW;Hd)-g;5S?YtItbx5}#?$o$?i#hvQ!R73j$pikSX7#Hxf3(lC zG9t9(Nxif{eIyq|$s5SqS&VEX9mc+}L)*x?>K~vrVU-FVpUCX~bowD%{$S<#)U^a1 zUEIK9#I)+LRdVb2i{wJRR}IeAFEV@kLo#k)}11jfyRzWDyVbwElvK7#&_GMVf{&03LcV#`gkO9vb-U{-P_; z3-9T567K_yA(E_nk^xE*LKP&0dE&h#t1EOBHiUfTrqxt6F!E|oZ>i0@(q5L)>j+GE z^81uG6pi$J(QO#qB$k4p1)*;)B|Nu{i{FZ&3j155mk1+87UmiP%T=?7w9vpV@ax>* zF%t%Hu!La9MowT#Ajqtn3*!Pf@-qgW5@!$4I34&t17PHxDzKTAE24Hb;xmwucMynV zoH;<7A>b=FzKdUiAfj>R03#KErw;DOS@0J>0T9^;37{7im<2fUZh#U;Lxa73g7}1erEuYf{N+^H~z)C91xuWM)DQ~k&#fQeu9Z|O4R&1dOb(? z^9fujfG`Ir$vfE%^EAbPv1G9x;5^sx%XI#!jQJa?pP!caNrT|VnFG8^;sEKn@sb0e zuI8zXEjT9Hmm1~INtRZ^LBMibV;m|F} zvIBq)3DQt5%ejGT)>~i%7d$IC_z22sSo(jM)lAI+ZVo4SK;~({EBjyAB|Lc^@GRh% z04R%Ug)h!RaA*KLE%?iTP+A1l|5IA?-wA>z1b-U|N+=AtMSkI5YhFL`&jY><8_Git zm~H&yJYbu$;jM>nzJy%kfZZ93xz5fAcx=Uld%-uNL0)6P@Gqd(g4@#IPVh}8kW=t> zft=u5PT&UcZ5faO9oS+gKvO^i&Hy`qlLp)hzB~_E$?X)#iZc`9luZA+SP!>^FU>-h zk-HYR6m+2$?h0R}gIvc=7k3qC%?@q}U$lWN9nA%`Twnx&|E#T)lFylzH0e|}wmXjb# diff --git a/deploy-ease-tenant-adapter/target/maven-archiver/pom.properties b/deploy-ease-tenant-adapter/target/maven-archiver/pom.properties deleted file mode 100644 index 41e5571..0000000 --- a/deploy-ease-tenant-adapter/target/maven-archiver/pom.properties +++ /dev/null @@ -1,3 +0,0 @@ -artifactId=deploy-ease-tenant-adapter -groupId=com.qc.soft -version=1.0.0 diff --git a/deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index 8adb602..0000000 --- a/deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1,19 +0,0 @@ -com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsCrumbIssuerResponse.class -com\qc\soft\deploy\ease\adapter\enums\AdapterBusinessErrorCodeI.class -com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsLastJobDetailChangeSetResponse.class -com\qc\soft\deploy\ease\adapter\api\thirdparty\JenkinsClientApi.class -com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsApiInfoDto.class -com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsLastJobDetailChangeSetDetailResponse.class -com\qc\soft\deploy\ease\adapter\config\TenantProcessor.class -com\qc\soft\deploy\ease\adapter\consts\JenkinsConstants.class -com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsLastJobDetailResponse.class -com\qc\soft\deploy\ease\adapter\controller\JenkinsSSEController.class -com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsApiInfoDto$JenkinsApiInfoDtoBuilder.class -com\qc\soft\deploy\ease\adapter\config\FeignClientConfig.class -com\qc\soft\deploy\ease\adapter\enums\BusinessState.class -com\qc\soft\deploy\ease\adapter\consts\Consts.class -com\qc\soft\deploy\ease\adapter\api\internal\IDictionaryServiceApi.class -com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JobInfoDto.class -com\qc\soft\deploy\ease\adapter\DeployEaseTenantAdapterApplication.class -com\qc\soft\deploy\ease\adapter\service\IJenkinsService.class -com\qc\soft\deploy\ease\adapter\service\impl\JenkinsServiceImpl.class diff --git a/deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index c359edb..0000000 --- a/deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,18 +0,0 @@ -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\api\internal\IDictionaryServiceApi.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsApiInfoDto.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\api\thirdparty\JenkinsClientApi.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\DeployEaseTenantAdapterApplication.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\consts\JenkinsConstants.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsLastJobDetailResponse.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\controller\JenkinsSSEController.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\enums\BusinessState.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsLastJobDetailChangeSetResponse.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\config\TenantProcessor.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\consts\Consts.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsLastJobDetailChangeSetDetailResponse.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JobInfoDto.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\config\FeignClientConfig.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\enums\AdapterBusinessErrorCodeI.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\api\thirdparty\response\JenkinsCrumbIssuerResponse.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\service\IJenkinsService.java -D:\work\github-workspace\deploy-ease-backend\deploy-ease-tenant-adapter\src\main\java\com\qc\soft\deploy\ease\adapter\service\impl\JenkinsServiceImpl.java diff --git a/deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst deleted file mode 100644 index e69de29..0000000 diff --git a/deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/deploy-ease-tenant-adapter/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst deleted file mode 100644 index e69de29..0000000 diff --git a/pom.xml b/pom.xml index 639c277..ec3c48b 100644 --- a/pom.xml +++ b/pom.xml @@ -33,9 +33,15 @@ 2.2.9.RELEASE 1.6.0 3.1.0 + 2.6.2 + + org.apache.commons + commons-pool2 + ${commons-pool2.version} + org.springframework.cloud spring-cloud-dependencies