mirror of
https://gitee.com/mirrors/Spring-Cloud-Alibaba.git
synced 2021-06-26 13:25:11 +08:00
Merge remote-tracking branch 'upstream/master'
# Conflicts: # pom.xml # spring-cloud-alibaba-dependencies/pom.xml # spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml
This commit is contained in:
@@ -50,6 +50,12 @@
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba.ans</groupId>
|
||||
<artifactId>ans-sdk</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.aliyun.oss</groupId>
|
||||
<artifactId>aliyun-sdk-oss</artifactId>
|
||||
|
@@ -16,27 +16,18 @@
|
||||
|
||||
package org.springframework.cloud.alicloud.context.scx;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.alibaba.cloud.context.edas.AliCloudEdasSdk;
|
||||
import com.alibaba.cloud.context.scx.AliCloudScxInitializer;
|
||||
import com.alibaba.edas.schedulerx.SchedulerXClient;
|
||||
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.cloud.alicloud.context.AliCloudProperties;
|
||||
import org.springframework.cloud.alicloud.context.edas.EdasContextAutoConfiguration;
|
||||
import org.springframework.cloud.alicloud.context.edas.EdasProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.alibaba.cloud.context.edas.AliCloudEdasSdk;
|
||||
import com.alibaba.cloud.context.edas.EdasChangeOrderConfiguration;
|
||||
import com.alibaba.cloud.context.edas.EdasChangeOrderConfigurationFactory;
|
||||
import com.alibaba.dts.common.exception.InitException;
|
||||
import com.alibaba.edas.schedulerx.SchedulerXClient;
|
||||
import com.aliyuncs.edas.model.v20170801.GetSecureTokenResponse;
|
||||
|
||||
/**
|
||||
* @author xiaolongzuo
|
||||
@@ -45,77 +36,15 @@ import com.aliyuncs.edas.model.v20170801.GetSecureTokenResponse;
|
||||
@ConditionalOnClass(name = "org.springframework.cloud.alicloud.scx.ScxAutoConfiguration")
|
||||
@EnableConfigurationProperties(ScxProperties.class)
|
||||
@ImportAutoConfiguration(EdasContextAutoConfiguration.class)
|
||||
public class ScxContextAutoConfiguration implements InitializingBean {
|
||||
public class ScxContextAutoConfiguration {
|
||||
|
||||
private static final Logger log = LoggerFactory
|
||||
.getLogger(ScxContextAutoConfiguration.class);
|
||||
|
||||
private static final String TEST_REGION = "cn-test";
|
||||
|
||||
private static final String DEFAULT_KEY = "123456";
|
||||
|
||||
@Autowired
|
||||
private SchedulerXClient schedulerXClient;
|
||||
|
||||
@Bean
|
||||
@Bean(initMethod = "init")
|
||||
@ConditionalOnMissingBean
|
||||
public SchedulerXClient schedulerXClient(AliCloudProperties aliCloudProperties,
|
||||
EdasProperties edasProperties, ScxProperties scxProperties,
|
||||
AliCloudEdasSdk aliCloudEdasSdk) {
|
||||
Assert.isTrue(!StringUtils.isEmpty(scxProperties.getGroupId()),
|
||||
"${spring.cloud.alicloud.scx.group-id} can't be null.");
|
||||
SchedulerXClient schedulerXClient = new SchedulerXClient();
|
||||
schedulerXClient.setGroupId(scxProperties.getGroupId());
|
||||
|
||||
EdasChangeOrderConfiguration edasChangeOrderConfiguration = EdasChangeOrderConfigurationFactory
|
||||
.getEdasChangeOrderConfiguration();
|
||||
if (edasChangeOrderConfiguration.isEdasManaged()) {
|
||||
if (edasChangeOrderConfiguration.getRegionId() != null) {
|
||||
schedulerXClient
|
||||
.setRegionName(edasChangeOrderConfiguration.getRegionId());
|
||||
}
|
||||
else {
|
||||
Assert.isTrue(!StringUtils.isEmpty(edasProperties.getNamespace()),
|
||||
"${spring.cloud.alicloud.edas.namespace} can't be null.");
|
||||
schedulerXClient.setRegionName(edasProperties.getRegionId());
|
||||
}
|
||||
schedulerXClient.setDomainName(scxProperties.getDomainName());
|
||||
schedulerXClient
|
||||
.setAccessKey(edasChangeOrderConfiguration.getDauthAccessKey());
|
||||
schedulerXClient
|
||||
.setSecretKey(edasChangeOrderConfiguration.getDauthSecretKey());
|
||||
}
|
||||
else if (TEST_REGION.equals(edasProperties.getNamespace())) {
|
||||
Assert.isTrue(!StringUtils.isEmpty(edasProperties.getNamespace()),
|
||||
"${spring.cloud.alicloud.edas.namespace} can't be null.");
|
||||
schedulerXClient.setRegionName(edasProperties.getNamespace());
|
||||
schedulerXClient.setAccessKey(DEFAULT_KEY);
|
||||
schedulerXClient.setSecretKey(DEFAULT_KEY);
|
||||
}
|
||||
else {
|
||||
Assert.isTrue(!StringUtils.isEmpty(edasProperties.getNamespace()),
|
||||
"${spring.cloud.alicloud.edas.namespace} can't be null.");
|
||||
Assert.isTrue(!StringUtils.isEmpty(aliCloudProperties.getAccessKey()),
|
||||
"${spring.cloud.alicloud.access-key} can't be empty.");
|
||||
Assert.isTrue(!StringUtils.isEmpty(aliCloudProperties.getSecretKey()),
|
||||
"${spring.cloud.alicloud.secret-key} can't be empty.");
|
||||
GetSecureTokenResponse.SecureToken secureToken = aliCloudEdasSdk
|
||||
.getSecureToken(edasProperties.getNamespace());
|
||||
schedulerXClient.setRegionName(edasProperties.getRegionId());
|
||||
schedulerXClient.setDomainName(scxProperties.getDomainName());
|
||||
schedulerXClient.setAccessKey(secureToken.getAccessKey());
|
||||
schedulerXClient.setSecretKey(secureToken.getSecretKey());
|
||||
}
|
||||
return schedulerXClient;
|
||||
EdasProperties edasProperties, ScxProperties scxProperties,
|
||||
AliCloudEdasSdk aliCloudEdasSdk) {
|
||||
return AliCloudScxInitializer.initialize(aliCloudProperties, edasProperties,
|
||||
scxProperties, aliCloudEdasSdk);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
try {
|
||||
schedulerXClient.init();
|
||||
}
|
||||
catch (InitException e) {
|
||||
log.error("Init SchedulerX failed.", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,107 @@
|
||||
package org.springframework.cloud.alicloud.context.sms;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.cloud.alicloud.context.AliCloudProperties;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author pbting
|
||||
*/
|
||||
@ConfigurationProperties(prefix = "spring.cloud.alicloud.sms")
|
||||
public class SmsConfigProperties implements Serializable {
|
||||
|
||||
// 产品名称:云通信短信API产品,开发者无需替换
|
||||
public static final String smsProduct = "Dysmsapi";
|
||||
// 产品域名,开发者无需替换
|
||||
public static final String smsDomain = "dysmsapi.aliyuncs.com";
|
||||
|
||||
private AliCloudProperties aliCloudProperties;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String reportQueueName;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String upQueueName;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
protected String connnectTimeout = "10000";
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
protected String readTimeout = "10000";
|
||||
|
||||
public SmsConfigProperties(AliCloudProperties aliCloudProperties) {
|
||||
this.aliCloudProperties = aliCloudProperties;
|
||||
}
|
||||
|
||||
public String getConnnectTimeout() {
|
||||
return connnectTimeout;
|
||||
}
|
||||
|
||||
public void setConnnectTimeout(String connnectTimeout) {
|
||||
this.connnectTimeout = connnectTimeout;
|
||||
}
|
||||
|
||||
public String getReadTimeout() {
|
||||
return readTimeout;
|
||||
}
|
||||
|
||||
public void setReadTimeout(String readTimeout) {
|
||||
this.readTimeout = readTimeout;
|
||||
}
|
||||
|
||||
public void overiideFromEnv(Environment environment) {
|
||||
overiideCustomFromEnv(environment);
|
||||
if (StringUtils.isEmpty(connnectTimeout)) {
|
||||
String resolveResult = environment.resolveRequiredPlaceholders(
|
||||
"${spring.cloud.alibaba.sms.connect-timeout:}");
|
||||
this.setConnnectTimeout(
|
||||
StringUtils.isEmpty(resolveResult) ? "10000" : resolveResult);
|
||||
}
|
||||
|
||||
if (StringUtils.isEmpty(readTimeout)) {
|
||||
String resolveResult = environment.resolveRequiredPlaceholders(
|
||||
"${spring.cloud.alibaba.sms.read-timeout:}");
|
||||
this.setReadTimeout(
|
||||
StringUtils.isEmpty(resolveResult) ? "10000" : resolveResult);
|
||||
}
|
||||
}
|
||||
|
||||
public void overiideCustomFromEnv(Environment environment) {
|
||||
// nothing to do
|
||||
}
|
||||
|
||||
public String getReportQueueName() {
|
||||
return reportQueueName;
|
||||
}
|
||||
|
||||
public void setReportQueueName(String reportQueueName) {
|
||||
this.reportQueueName = reportQueueName;
|
||||
}
|
||||
|
||||
public String getUpQueueName() {
|
||||
return upQueueName;
|
||||
}
|
||||
|
||||
public String getAccessKeyId() {
|
||||
return aliCloudProperties.getAccessKey();
|
||||
}
|
||||
|
||||
public String getAccessKeySecret() {
|
||||
return aliCloudProperties.getSecretKey();
|
||||
}
|
||||
|
||||
public void setUpQueueName(String upQueueName) {
|
||||
this.upQueueName = upQueueName;
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
package org.springframework.cloud.alicloud.context.sms;
|
||||
|
||||
import org.springframework.core.env.Environment;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
/**
|
||||
* @author pbting
|
||||
*/
|
||||
public class SmsConfigRegistration {
|
||||
|
||||
private Environment environment;
|
||||
|
||||
private SmsConfigProperties smsConfigProperties;
|
||||
|
||||
public SmsConfigRegistration(Environment environment,
|
||||
SmsConfigProperties smsConfigProperties) {
|
||||
this.environment = environment;
|
||||
this.smsConfigProperties = smsConfigProperties;
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void initSmsConfigRegistration() {
|
||||
smsConfigProperties.overiideFromEnv(environment);
|
||||
}
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
package org.springframework.cloud.alicloud.context.sms;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.cloud.alicloud.context.AliCloudProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.env.Environment;
|
||||
|
||||
@Configuration
|
||||
@EnableConfigurationProperties
|
||||
@ConditionalOnClass(name = "com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest")
|
||||
@ConditionalOnProperty(value = "spring.cloud.alibaba.deshao.enable.sms", matchIfMissing = true)
|
||||
public class SmsContextAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
public SmsConfigProperties smsConfigProperties(
|
||||
AliCloudProperties aliCloudProperties) {
|
||||
|
||||
return new SmsConfigProperties(aliCloudProperties);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SmsConfigRegistration smsConfigRegistration(Environment environment,
|
||||
SmsConfigProperties smsConfigProperties) {
|
||||
|
||||
return new SmsConfigRegistration(environment, smsConfigProperties);
|
||||
}
|
||||
}
|
@@ -6,7 +6,8 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
org.springframework.cloud.alicloud.context.ans.AnsContextAutoConfiguration,\
|
||||
org.springframework.cloud.alicloud.context.oss.OssContextAutoConfiguration,\
|
||||
org.springframework.cloud.alicloud.context.scx.ScxContextAutoConfiguration,\
|
||||
org.springframework.cloud.alicloud.context.statistics.StatisticsTaskStarter
|
||||
org.springframework.cloud.alicloud.context.statistics.StatisticsTaskStarter,\
|
||||
org.springframework.cloud.alicloud.context.sms.SmsContextAutoConfiguration
|
||||
org.springframework.context.ApplicationListener=\
|
||||
org.springframework.cloud.alicloud.context.ans.AnsContextApplicationListener,\
|
||||
org.springframework.cloud.alicloud.context.nacos.NacosParameterInitListener,\
|
||||
|
Reference in New Issue
Block a user