diff --git a/bin/nacos/nacos-server-2.3.0/data/tenant-config-data/deploy-ease-dev/business/deploy-ease-tenant-adapter.yml b/bin/nacos/nacos-server-2.3.0/data/tenant-config-data/deploy-ease-dev/business/deploy-ease-tenant-adapter.yml index ab04f7c..2190d61 100644 --- a/bin/nacos/nacos-server-2.3.0/data/tenant-config-data/deploy-ease-dev/business/deploy-ease-tenant-adapter.yml +++ b/bin/nacos/nacos-server-2.3.0/data/tenant-config-data/deploy-ease-dev/business/deploy-ease-tenant-adapter.yml @@ -2,4 +2,6 @@ server: port: 0 spring: application: - name: deploy-ease-tenant-adapter-${TENANT_CODE} \ No newline at end of file + name: deploy-ease-tenant-adapter-${TENANT_CODE} + autoconfigure: + exclude: org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration \ No newline at end of file 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 e72d661..ca552d0 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,6 +30,8 @@ spring: maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 + autoconfigure: + exclude: org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration cloud: config: override-none: true diff --git a/deploy-ease-basic/pom.xml b/deploy-ease-basic/pom.xml index 6b60ec6..c68c2a7 100644 --- a/deploy-ease-basic/pom.xml +++ b/deploy-ease-basic/pom.xml @@ -32,10 +32,10 @@ org.apache.httpcomponents.client5 httpclient5 - - com.alibaba.fastjson2 - fastjson2 - + + + + org.apache.commons commons-lang3 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 index 9ed6a6f..526c66f 100644 --- 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 @@ -5,6 +5,7 @@ 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.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer; @@ -15,8 +16,9 @@ import org.springframework.data.redis.serializer.StringRedisSerializer; @Slf4j public class RedisAutoConfiguration { - public RedisAutoConfiguration() { - + @Bean + public RedisConnectionFactory redisConnectionFactory() { + return new LettuceConnectionFactory(); } @Bean(name = "redisTemplate") 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 f0fd21b..326970f 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 @@ -59,9 +59,6 @@ public class TenantAdapterRunner implements CommandLineRunner { log.info("Start the tenant adapter project!!!"); ExecutorService pool = Executors.newFixedThreadPool(tenants.size()); ExecutorService checkRegistered = Executors.newSingleThreadExecutor(); -// for (TenantResponse tenant : tenants) { -// runTenantAdapterJar(tenant.getTenantCode()); -// } CompletableFuture.allOf(tenants.stream().map(tenant -> CompletableFuture.runAsync(() -> execStartTenantAdapterJar(tenant.getTenantCode()), pool)).toArray(CompletableFuture[]::new)); pool.shutdown(); checkRegistered.submit(() -> { @@ -102,13 +99,21 @@ public class TenantAdapterRunner implements CommandLineRunner { } @NotNull - private String[] buildTenantAdapterNacosArgs(String tenantCode) { + private String[] buildTenantAdapterRunArgs(String tenantCode) { Properties nacosProperties = nacosDiscoveryProperties.getNacosProperties(); - return new String[] {String.format("--NACOS_CONFIG_SERVER=%s", nacosProperties.get("serverAddr")), String.format("--TENANT_CODE=%s", tenantCode), String.format("--DEPLOY_ENV=%s", nacosProperties.get("namespace")), String.format("--NACOS_USER=%s", nacosProperties.get("username")), String.format("--NACOS_PWD=%s", nacosProperties.get("password"))}; + return new String[] { + "-Dfile.encoding=utf-8", + "-Dspring.config.location=classpath:/application-dev.yml", + String.format("--NACOS_CONFIG_SERVER=%s", nacosProperties.get("serverAddr")), + String.format("--TENANT_CODE=%s", tenantCode), + String.format("--DEPLOY_ENV=%s", nacosProperties.get("namespace")), + String.format("--NACOS_USER=%s", nacosProperties.get("username")), + String.format("--NACOS_PWD=%s", nacosProperties.get("password")) + }; } private void execStartTenantAdapterJar(String tenantCode) { - String[] runArgs = buildTenantAdapterNacosArgs(tenantCode); + String[] runArgs = buildTenantAdapterRunArgs(tenantCode); try { log.info("Start the {} adapter project", tenantCode); String[] command = {"java", "-jar", adapterJarFile}; 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 aa0c164..68003b2 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,18 +1,13 @@ 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.boot.autoconfigure.SpringBootApplication; 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; import org.springframework.scheduling.annotation.EnableScheduling; -@SpringBootConfiguration -@EnableAutoConfiguration +@SpringBootApplication @ComponentScan("com.qc.soft.deploy.ease.*") @EnableFeignClients @EnableDiscoveryClient diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/JenkinsLoginBasic.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/JenkinsLoginBasic.java index ac23a07..25e5a82 100644 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/JenkinsLoginBasic.java +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/api/thirdparty/JenkinsLoginBasic.java @@ -5,7 +5,7 @@ import lombok.Data; @Data public class JenkinsLoginBasic { - private String name; + private String envName; private String url; diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/TenantAdapterBeanRegistry.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/TenantAdapterBeanRegistry.java index c16657d..a84b4ec 100644 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/TenantAdapterBeanRegistry.java +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/TenantAdapterBeanRegistry.java @@ -37,7 +37,7 @@ public class TenantAdapterBeanRegistry implements BeanDefinitionRegistryPostProc } TenantContext.setCurrentTenant(environment.getProperty("TENANT_CODE")); JenkinsLoginBasic loginBasic = new JenkinsLoginBasic(); - loginBasic.setName("longi-dev&uat"); + loginBasic.setEnvName("longi-dev&uat"); loginBasic.setUrl("http://jenkins-rd.longi.com:8080"); loginBasic.setUsername("ibpuser"); loginBasic.setPassword("ibp@ibp!2023"); diff --git a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/TenantAdapterConfiguration.java b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/TenantAdapterConfiguration.java index 78f4c23..2cf9eca 100644 --- a/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/TenantAdapterConfiguration.java +++ b/deploy-ease-tenant-adapter/src/main/java/com/qc/soft/deploy/ease/adapter/config/TenantAdapterConfiguration.java @@ -14,18 +14,4 @@ public class TenantAdapterConfiguration { }; } -// @Bean(name = "redisTemplate") -// public RedisTemplate redisTemplate(RedisConnectionFactory factory) { -// RedisTemplate redisTemplate = new RedisTemplate<>(); -// redisTemplate.setConnectionFactory(factory); -// RedisSerializer stringSerializer = new StringRedisSerializer(); -// GenericJackson2JsonRedisSerializer serializer = new GenericJackson2JsonRedisSerializer(); -// redisTemplate.setKeySerializer(stringSerializer); -// redisTemplate.setValueSerializer(serializer); -// redisTemplate.setHashKeySerializer(stringSerializer); -// redisTemplate.setHashValueSerializer(serializer); -// return redisTemplate; -// } - - } 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 365e821..5b085a9 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 @@ -1,6 +1,7 @@ package com.qc.soft.deploy.ease.adapter.consts; import com.qc.soft.deploy.ease.adapter.context.TenantAdapterContext; +import com.qc.soft.framework.basic.context.TenantContext; public class JenkinsConstants { @@ -16,11 +17,11 @@ public class JenkinsConstants { public static final String JENKINS_BUILD_API = "%s/view/%s/job/%s/%s/api/json?pretty=true"; - public static final String REDIS_JENKINS_ORIGINAL_VIEW = "deploy-ease:jenkins:" + TenantAdapterContext.getJenkinsLoginBasic().getName() + ":original"; + public static final String REDIS_JENKINS_ORIGINAL_VIEW = "deploy-ease:jenkins:" + TenantContext.getCurrentTenant() + ":" + TenantAdapterContext.getJenkinsLoginBasic().getEnvName() + ":original"; - public static final String REDIS_JENKINS_ORIGINAL_VIEW_JOB = "deploy-ease:jenkins:" + TenantAdapterContext.getJenkinsLoginBasic().getName() + ":original:view:%s"; + public static final String REDIS_JENKINS_ORIGINAL_VIEW_JOB = "deploy-ease:jenkins:" + TenantContext.getCurrentTenant() + ":" + TenantAdapterContext.getJenkinsLoginBasic().getEnvName() + ":original:view:%s"; - public static final String REDIS_JENKINS_ORIGINAL_VIEW_JOB_DETAIL = "deploy-ease:jenkins:" + TenantAdapterContext.getJenkinsLoginBasic().getName() + ":original:view:%s:job:%s"; + public static final String REDIS_JENKINS_ORIGINAL_VIEW_JOB_DETAIL = "deploy-ease:jenkins:" + TenantContext.getCurrentTenant() + ":" + TenantAdapterContext.getJenkinsLoginBasic().getEnvName() + ":original:view:%s:job:%s"; - public static final String REDIS_JENKINS_ORIGINAL_VIEW_BUILD = "deploy-ease:jenkins:" + TenantAdapterContext.getJenkinsLoginBasic().getName() + ":original:view:%s:job:%s:build:%s"; + public static final String REDIS_JENKINS_ORIGINAL_VIEW_BUILD = "deploy-ease:jenkins:" + TenantContext.getCurrentTenant() + ":" + TenantAdapterContext.getJenkinsLoginBasic().getEnvName() + ":original:view:%s:job:%s:build:%s"; } 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 index 17815db..ebac420 100644 --- 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 @@ -2,9 +2,7 @@ package com.qc.soft.deploy.ease.adapter.context; import com.qc.soft.deploy.ease.adapter.api.thirdparty.JenkinsLoginBasic; import com.qc.soft.framework.basic.utils.Base64AuthUtils; -import lombok.Data; import lombok.Getter; -import lombok.Setter; public class TenantAdapterContext { @@ -12,7 +10,7 @@ public class TenantAdapterContext { private static final JenkinsLoginBasic jenkinsLoginBasic = new JenkinsLoginBasic(); public static void buildJenkinsLoginBasic(JenkinsLoginBasic loginBasic) { - jenkinsLoginBasic.setName(loginBasic.getName()); + jenkinsLoginBasic.setEnvName(loginBasic.getEnvName()); jenkinsLoginBasic.setUrl(loginBasic.getUrl()); jenkinsLoginBasic.setUsername(loginBasic.getUsername()); jenkinsLoginBasic.setPassword(loginBasic.getPassword()); 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 index 2174407..4b3ef01 100644 --- 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 @@ -8,6 +8,7 @@ import com.qc.soft.deploy.ease.adapter.controller.response.jenkins.view.JenkinsV import com.qc.soft.deploy.ease.adapter.service.IJenkinsService; import com.qc.soft.deploy.ease.api.response.TenantDictionaryResponse; import org.springframework.http.MediaType; +import org.springframework.http.codec.ServerSentEvent; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -16,6 +17,7 @@ import reactor.core.publisher.Flux; import javax.annotation.Resource; import java.time.Duration; +import java.time.LocalTime; import java.util.List; @RestController @@ -63,10 +65,18 @@ public class JenkinsController { // return Flux.interval(Duration.ofSeconds(2)).map(index -> jenkinsService.aggregate()); // } - @GetMapping(value = "jenkins/aggregate") - public JenkinsAggregateResponse aggregate() { - return jenkinsService.aggregate(); - } - - +// @GetMapping(value = "jenkins/aggregate") +// public JenkinsAggregateResponse aggregate() { +// return jenkinsService.aggregate(); +// } +// +// +// @GetMapping(value = "/events", produces = MediaType.TEXT_EVENT_STREAM_VALUE) +// public Flux> streamEvents() { +// return Flux.interval(Duration.ofSeconds(1)) +// .map(sequence -> ServerSentEvent.builder() +// .id(String.valueOf(sequence)) +// .data("Current time: " + LocalTime.now()) +// .build()); +// } } diff --git a/deploy-ease-tenant-adapter/src/main/resources/application-dev.yml b/deploy-ease-tenant-adapter/src/main/resources/application-dev.yml index 9488fa3..7b9e752 100644 --- a/deploy-ease-tenant-adapter/src/main/resources/application-dev.yml +++ b/deploy-ease-tenant-adapter/src/main/resources/application-dev.yml @@ -1,6 +1,8 @@ spring: application: name: deploy-ease-tenant-adapter + autoconfigure: + exclude: org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration redis: enabled: true host: localhost diff --git a/deploy-ease-tenant-adapter/target/classes/application-dev.yml b/deploy-ease-tenant-adapter/target/classes/application-dev.yml index 9488fa3..7b9e752 100644 --- a/deploy-ease-tenant-adapter/target/classes/application-dev.yml +++ b/deploy-ease-tenant-adapter/target/classes/application-dev.yml @@ -1,6 +1,8 @@ spring: application: name: deploy-ease-tenant-adapter + autoconfigure: + exclude: org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration redis: enabled: true host: localhost