diff --git a/spring-cloud-alibaba-dependencies/pom.xml b/spring-cloud-alibaba-dependencies/pom.xml
index 62efad89..b2b9f806 100644
--- a/spring-cloud-alibaba-dependencies/pom.xml
+++ b/spring-cloud-alibaba-dependencies/pom.xml
@@ -24,7 +24,7 @@
1.0.8
1.0.1
4.0.1
- 1.0.4
+ 1.0.5
2.16.0
4.3.1
2.1.6
diff --git a/spring-cloud-alibaba-examples/schedulerx-example/schedulerx-simple-task-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/SimpleTask.java b/spring-cloud-alibaba-examples/schedulerx-example/schedulerx-simple-task-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/SimpleTask.java
index e49c0a05..09055da1 100644
--- a/spring-cloud-alibaba-examples/schedulerx-example/schedulerx-simple-task-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/SimpleTask.java
+++ b/spring-cloud-alibaba-examples/schedulerx-example/schedulerx-simple-task-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/SimpleTask.java
@@ -19,17 +19,22 @@ package org.springframework.cloud.alibaba.cloud.examples;
import com.alibaba.edas.schedulerx.ProcessResult;
import com.alibaba.edas.schedulerx.ScxSimpleJobContext;
import com.alibaba.edas.schedulerx.ScxSimpleJobProcessor;
+import org.springframework.beans.factory.annotation.Autowired;
/**
* @author xiaolongzuo
*/
public class SimpleTask implements ScxSimpleJobProcessor {
- @Override
- public ProcessResult process(ScxSimpleJobContext context) {
- System.out.println("-----------Hello world---------------");
- ProcessResult processResult = new ProcessResult(true);
- return processResult;
- }
+ @Autowired
+ private TestService testService;
+
+ @Override
+ public ProcessResult process(ScxSimpleJobContext context) {
+ System.out.println("-----------Hello world---------------");
+ testService.test();
+ ProcessResult processResult = new ProcessResult(true);
+ return processResult;
+ }
}
diff --git a/spring-cloud-alibaba-examples/schedulerx-example/schedulerx-simple-task-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/TestService.java b/spring-cloud-alibaba-examples/schedulerx-example/schedulerx-simple-task-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/TestService.java
new file mode 100644
index 00000000..1786d197
--- /dev/null
+++ b/spring-cloud-alibaba-examples/schedulerx-example/schedulerx-simple-task-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/TestService.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2018 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.cloud.alibaba.cloud.examples;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * @author xiaolongzuo
+ */
+@Service
+public class TestService {
+
+ public void test() {
+ System.out.println("---------IOC Success--------");
+ }
+}
diff --git a/spring-cloud-alicloud-context/src/main/java/org/springframework/cloud/alicloud/context/scx/ScxContextAutoConfiguration.java b/spring-cloud-alicloud-context/src/main/java/org/springframework/cloud/alicloud/context/scx/ScxContextAutoConfiguration.java
index 0d43e86f..a2b738fd 100644
--- a/spring-cloud-alicloud-context/src/main/java/org/springframework/cloud/alicloud/context/scx/ScxContextAutoConfiguration.java
+++ b/spring-cloud-alicloud-context/src/main/java/org/springframework/cloud/alicloud/context/scx/ScxContextAutoConfiguration.java
@@ -16,27 +16,19 @@
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 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.cloud.context.scx.AliCloudScxInitializer;
import com.alibaba.edas.schedulerx.SchedulerXClient;
-import com.aliyuncs.edas.model.v20170801.GetSecureTokenResponse;
/**
* @author xiaolongzuo
@@ -45,77 +37,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);
- }
- }
}