You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2020/07/01 16:25:32 UTC
[shardingsphere-elasticjob-lite] branch master updated: Adapt
spring namespace (#885)
This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob-lite.git
The following commit(s) were added to refs/heads/master by this push:
new f2023d4 Adapt spring namespace (#885)
f2023d4 is described below
commit f2023d455ee19f220a41ae7f1cab4735cad87e8b
Author: Liang Zhang <te...@163.com>
AuthorDate: Thu Jul 2 00:25:23 2020 +0800
Adapt spring namespace (#885)
* Adapt spring namespace
* Refactor test cases
---
.../job/parser/common/AbstractJobBeanDefinitionParser.java | 10 ++++++++--
.../src/main/resources/META-INF/namespace/job.xsd | 2 +-
.../lite/spring/job/AbstractJobSpringIntegrateTest.java | 13 +++----------
.../lite/spring/job/JobSpringNamespaceWithRefTest.java | 2 +-
4 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/elastic-job-lite-spring/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/job/parser/common/AbstractJobBeanDefinitionParser.java b/elastic-job-lite-spring/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/job/parser/common/AbstractJobBeanDefinitionParser.java
index 9d363ce..70afea6 100644
--- a/elastic-job-lite-spring/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/job/parser/common/AbstractJobBeanDefinitionParser.java
+++ b/elastic-job-lite-spring/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/job/parser/common/AbstractJobBeanDefinitionParser.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.elasticjob.lite.spring.job.parser.common;
import com.google.common.base.Strings;
import lombok.SneakyThrows;
import org.apache.shardingsphere.elasticjob.lite.api.JobType;
+import org.apache.shardingsphere.elasticjob.lite.api.bootstrap.OneOffJobBootstrap;
import org.apache.shardingsphere.elasticjob.lite.api.bootstrap.ScheduleJobBootstrap;
import org.apache.shardingsphere.elasticjob.lite.config.JobConfiguration;
import org.apache.shardingsphere.elasticjob.lite.tracing.api.TracingConfiguration;
@@ -43,8 +44,13 @@ public abstract class AbstractJobBeanDefinitionParser extends AbstractBeanDefini
@SneakyThrows
@Override
protected final AbstractBeanDefinition parseInternal(final Element element, final ParserContext parserContext) {
- BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(ScheduleJobBootstrap.class);
- factory.setInitMethodName("schedule");
+ BeanDefinitionBuilder factory;
+ if (Strings.isNullOrEmpty(element.getAttribute(BaseJobBeanDefinitionParserTag.CRON_ATTRIBUTE))) {
+ factory = BeanDefinitionBuilder.rootBeanDefinition(OneOffJobBootstrap.class);
+ } else {
+ factory = BeanDefinitionBuilder.rootBeanDefinition(ScheduleJobBootstrap.class);
+ factory.setInitMethodName("schedule");
+ }
factory.addConstructorArgReference(element.getAttribute(BaseJobBeanDefinitionParserTag.REGISTRY_CENTER_REF_ATTRIBUTE));
factory.addConstructorArgReference(element.getAttribute(BaseJobBeanDefinitionParserTag.JOB_REF_ATTRIBUTE));
factory.addConstructorArgValue(createJobConfiguration(element));
diff --git a/elastic-job-lite-spring/src/main/resources/META-INF/namespace/job.xsd b/elastic-job-lite-spring/src/main/resources/META-INF/namespace/job.xsd
index 7395e80..ae269cb 100644
--- a/elastic-job-lite-spring/src/main/resources/META-INF/namespace/job.xsd
+++ b/elastic-job-lite-spring/src/main/resources/META-INF/namespace/job.xsd
@@ -45,8 +45,8 @@
</xsd:all>
<xsd:attribute name="job-ref" type="xsd:string" />
<xsd:attribute name="registry-center-ref" type="xsd:string" use="required" />
- <xsd:attribute name="cron" type="xsd:string" use="required" />
<xsd:attribute name="sharding-total-count" type="xsd:string" use="required" />
+ <xsd:attribute name="cron" type="xsd:string" />
<xsd:attribute name="sharding-item-parameters" type="xsd:string" />
<xsd:attribute name="job-parameter" type="xsd:string" />
<xsd:attribute name="monitor-execution" type="xsd:string" default="true"/>
diff --git a/elastic-job-lite-spring/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/job/AbstractJobSpringIntegrateTest.java b/elastic-job-lite-spring/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/job/AbstractJobSpringIntegrateTest.java
index 18f56bf..22099bc 100644
--- a/elastic-job-lite-spring/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/job/AbstractJobSpringIntegrateTest.java
+++ b/elastic-job-lite-spring/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/job/AbstractJobSpringIntegrateTest.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.elasticjob.lite.reg.base.CoordinatorRegistryCen
import org.apache.shardingsphere.elasticjob.lite.spring.fixture.job.DataflowElasticJob;
import org.apache.shardingsphere.elasticjob.lite.spring.fixture.job.FooSimpleElasticJob;
import org.apache.shardingsphere.elasticjob.lite.spring.test.AbstractZookeeperJUnit4SpringContextTests;
+import org.apache.shardingsphere.elasticjob.lite.util.concurrent.BlockUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -62,7 +63,7 @@ public abstract class AbstractJobSpringIntegrateTest extends AbstractZookeeperJU
private void assertSimpleElasticJobBean() {
while (!FooSimpleElasticJob.isCompleted()) {
- sleep(100L);
+ BlockUtils.waitingShortTime();
}
assertTrue(FooSimpleElasticJob.isCompleted());
assertTrue(regCenter.isExisted("/" + simpleJobName + "/sharding"));
@@ -70,17 +71,9 @@ public abstract class AbstractJobSpringIntegrateTest extends AbstractZookeeperJU
private void assertThroughputDataflowElasticJobBean() {
while (!DataflowElasticJob.isCompleted()) {
- sleep(100L);
+ BlockUtils.waitingShortTime();
}
assertTrue(DataflowElasticJob.isCompleted());
assertTrue(regCenter.isExisted("/" + throughputDataflowJobName + "/sharding"));
}
-
- private static void sleep(final long millis) {
- try {
- Thread.sleep(millis);
- } catch (final InterruptedException ex) {
- Thread.currentThread().interrupt();
- }
- }
}
diff --git a/elastic-job-lite-spring/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/job/JobSpringNamespaceWithRefTest.java b/elastic-job-lite-spring/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/job/JobSpringNamespaceWithRefTest.java
index 58aee33..789df28 100644
--- a/elastic-job-lite-spring/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/job/JobSpringNamespaceWithRefTest.java
+++ b/elastic-job-lite-spring/src/test/java/org/apache/shardingsphere/elasticjob/lite/spring/job/JobSpringNamespaceWithRefTest.java
@@ -57,7 +57,7 @@ public final class JobSpringNamespaceWithRefTest extends AbstractZookeeperJUnit4
private void assertSimpleElasticJobBean() {
while (!RefFooSimpleElasticJob.isCompleted()) {
- BlockUtils.sleep(100L);
+ BlockUtils.waitingShortTime();
}
assertTrue(RefFooSimpleElasticJob.isCompleted());
assertTrue(regCenter.isExisted("/" + simpleJobName + "/sharding"));