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.git
The following commit(s) were added to refs/heads/master by this push:
new 80308a9 CloudJobConfigurationPOJO instead of CloudJobConfiguration
(#1082)
80308a9 is described below
commit 80308a94ed92866f69804df1f55fa9b04e099592
Author: Rudy Steiner <[email protected]>
AuthorDate: Thu Jul 16 16:11:37 2020 +0800
CloudJobConfigurationPOJO instead of CloudJobConfiguration (#1082)
---
.../util/json/JobConfigurationGsonTypeAdapter.java | 183 ---------------------
.../elasticjob-cloud-scheduler/pom.xml | 10 +-
.../config/job/CloudJobConfigurationListener.java | 21 +--
.../config/job/CloudJobConfigurationService.java | 17 +-
.../cloud/scheduler/env/BootstrapEnvironment.java | 5 +-
.../scheduler/mesos/AppConstraintEvaluator.java | 5 +-
.../cloud/scheduler/mesos/FacadeService.java | 18 +-
.../mesos/TaskLaunchScheduledService.java | 13 +-
.../cloud/scheduler/producer/ProducerManager.java | 34 ++--
.../producer/TransientProducerScheduler.java | 14 +-
.../scheduler/restful/CloudAppRestfulApi.java | 14 +-
.../scheduler/restful/CloudJobRestfulApi.java | 18 +-
.../scheduler/state/failover/FailoverService.java | 6 +-
.../cloud/scheduler/state/ready/ReadyService.java | 14 +-
.../scheduler/state/running/RunningService.java | 6 +-
.../scheduler/statistics/StatisticManager.java | 4 +-
.../job/CloudJobConfigurationServiceTest.java | 16 +-
.../cloud/scheduler/context/JobContextTest.java | 2 +-
.../fixture/CloudJobConfigurationBuilder.java | 37 +++--
.../scheduler/fixture/CloudJsonConstants.java | 19 +--
.../cloud/scheduler/mesos/FacadeServiceTest.java | 9 +-
.../cloud/scheduler/mesos/JobTaskRequestTest.java | 2 +-
.../cloud/scheduler/mesos/LaunchingTasksTest.java | 4 +-
.../cloud/scheduler/mesos/TaskInfoDataTest.java | 4 +-
.../mesos/TaskLaunchScheduledServiceTest.java | 2 +-
.../scheduler/producer/ProducerManagerTest.java | 6 +-
.../producer/TransientProducerSchedulerTest.java | 12 +-
.../scheduler/restful/CloudJobRestfulApiTest.java | 8 +-
.../scheduler/state/ready/ReadyServiceTest.java | 2 +-
29 files changed, 165 insertions(+), 340 deletions(-)
diff --git
a/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/util/json/JobConfigurationGsonTypeAdapter.java
b/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/util/json/JobConfigurationGsonTypeAdapter.java
deleted file mode 100755
index 65c8b77..0000000
---
a/elasticjob-cloud/elasticjob-cloud-common/src/main/java/org/apache/shardingsphere/elasticjob/cloud/util/json/JobConfigurationGsonTypeAdapter.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.shardingsphere.elasticjob.cloud.util.json;
-
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-import com.google.gson.TypeAdapter;
-import com.google.gson.stream.JsonReader;
-import com.google.gson.stream.JsonWriter;
-import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
-import
org.apache.shardingsphere.elasticjob.dataflow.props.DataflowJobProperties;
-import org.apache.shardingsphere.elasticjob.script.props.ScriptJobProperties;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Job configuration gson type adapter.
- */
-public final class JobConfigurationGsonTypeAdapter extends
TypeAdapter<CloudJobConfiguration> {
-
- @Override
- public CloudJobConfiguration read(final JsonReader in) throws IOException {
- String jobName = "";
- String cron = "";
- int shardingTotalCount = 0;
- String shardingItemParameters = "";
- String jobParameter = "";
- boolean failover = false;
- boolean misfire = false;
- String jobExecutorServiceHandlerType = "";
- String jobErrorHandlerType = "";
- String description = "";
- Boolean streamingProcess = null;
- String scriptCommandLine = null;
- Map<String, Object> customizedValueMap = new HashMap<>(32, 1);
- in.beginObject();
- while (in.hasNext()) {
- String jsonName = in.nextName();
- switch (jsonName) {
- case "jobName":
- jobName = in.nextString();
- break;
- case "cron":
- cron = in.nextString();
- break;
- case "shardingTotalCount":
- shardingTotalCount = in.nextInt();
- break;
- case "shardingItemParameters":
- shardingItemParameters = in.nextString();
- break;
- case "jobParameter":
- jobParameter = in.nextString();
- break;
- case "failover":
- failover = in.nextBoolean();
- break;
- case "misfire":
- misfire = in.nextBoolean();
- break;
- case "jobExecutorServiceHandlerType":
- jobExecutorServiceHandlerType = in.nextString();
- break;
- case "jobErrorHandlerType":
- jobErrorHandlerType = in.nextString();
- break;
- case "description":
- description = in.nextString();
- break;
- case "streamingProcess":
- streamingProcess = in.nextBoolean();
- break;
- case "scriptCommandLine":
- scriptCommandLine = in.nextString();
- break;
- default:
- addToCustomizedValueMap(jsonName, in, customizedValueMap);
- break;
- }
- }
- in.endObject();
- JobConfiguration jobConfig = getJobConfiguration(jobName, cron,
shardingTotalCount, shardingItemParameters,
- jobParameter, failover, misfire,
jobExecutorServiceHandlerType, jobErrorHandlerType, description);
- if (null != streamingProcess) {
-
jobConfig.getProps().setProperty(DataflowJobProperties.STREAM_PROCESS_KEY,
Boolean.toString(streamingProcess));
- }
- if (null != scriptCommandLine) {
- jobConfig.getProps().setProperty(ScriptJobProperties.SCRIPT_KEY,
scriptCommandLine);
- }
- return getCloudJobConfiguration(jobConfig, customizedValueMap);
- }
-
- private void addToCustomizedValueMap(final String jsonName, final
JsonReader in, final Map<String, Object> customizedValueMap) throws IOException
{
- switch (jsonName) {
- case CloudConfigurationConstants.CPU_COUNT:
- case CloudConfigurationConstants.MEMORY_MB:
- customizedValueMap.put(jsonName, in.nextDouble());
- break;
- case CloudConfigurationConstants.APP_NAME:
- case CloudConfigurationConstants.JOB_EXECUTION_TYPE:
- customizedValueMap.put(jsonName, in.nextString());
- break;
- default:
- in.skipValue();
- break;
- }
- }
-
- private JobConfiguration getJobConfiguration(final String jobName, final
String cron, final int shardingTotalCount,
- final String
shardingItemParameters, final String jobParameter, final boolean failover,
final boolean misfire,
- final String
jobExecutorServiceHandlerType, final String jobErrorHandlerType, final String
description) {
- return JobConfiguration.newBuilder(jobName,
shardingTotalCount).cron(cron)
-
.shardingItemParameters(shardingItemParameters).jobParameter(jobParameter).failover(failover).misfire(misfire)
-
.jobExecutorServiceHandlerType(jobExecutorServiceHandlerType).jobErrorHandlerType(jobErrorHandlerType).description(description)
- .build();
- }
-
- private CloudJobConfiguration getCloudJobConfiguration(final
JobConfiguration jobConfig, final Map<String, Object> customizedValueMap) {
-
Preconditions.checkNotNull(customizedValueMap.get(CloudConfigurationConstants.APP_NAME),
"appName cannot be null.");
-
Preconditions.checkNotNull(customizedValueMap.get(CloudConfigurationConstants.CPU_COUNT),
"cpuCount cannot be null.");
- Preconditions.checkArgument((double)
customizedValueMap.get(CloudConfigurationConstants.CPU_COUNT) >= 0.001,
"cpuCount cannot be less than 0.001");
-
Preconditions.checkNotNull(customizedValueMap.get(CloudConfigurationConstants.MEMORY_MB),
"memoryMB cannot be null.");
- Preconditions.checkArgument((double)
customizedValueMap.get(CloudConfigurationConstants.MEMORY_MB) >= 1, "memory
cannot be less than 1");
-
Preconditions.checkNotNull(customizedValueMap.get(CloudConfigurationConstants.JOB_EXECUTION_TYPE),
"jobExecutionType cannot be null.");
- return new CloudJobConfiguration((String)
customizedValueMap.get(CloudConfigurationConstants.APP_NAME),
- (double)
customizedValueMap.get(CloudConfigurationConstants.CPU_COUNT),
- (double)
customizedValueMap.get(CloudConfigurationConstants.MEMORY_MB),
-
CloudJobExecutionType.valueOf(customizedValueMap.get(CloudConfigurationConstants.JOB_EXECUTION_TYPE).toString()),
jobConfig);
- }
-
- @Override
- public void write(final JsonWriter out, final CloudJobConfiguration value)
throws IOException {
- out.beginObject();
- out.name("jobName").value(value.getJobConfig().getJobName());
- out.name("cron").value(value.getJobConfig().getCron());
-
out.name("shardingTotalCount").value(value.getJobConfig().getShardingTotalCount());
-
out.name("shardingItemParameters").value(value.getJobConfig().getShardingItemParameters());
- out.name("jobParameter").value(value.getJobConfig().getJobParameter());
- out.name("failover").value(value.getJobConfig().isFailover());
- out.name("misfire").value(value.getJobConfig().isMisfire());
- if
(!Strings.isNullOrEmpty(value.getJobConfig().getJobExecutorServiceHandlerType()))
{
-
out.name("executorServiceHandler").value(value.getJobConfig().getJobExecutorServiceHandlerType());
- }
- if
(!Strings.isNullOrEmpty(value.getJobConfig().getJobErrorHandlerType())) {
-
out.name("jobExceptionHandler").value(value.getJobConfig().getJobErrorHandlerType());
- }
- out.name("description").value(value.getJobConfig().getDescription());
- if
(value.getJobConfig().getProps().containsKey(DataflowJobProperties.STREAM_PROCESS_KEY))
{
-
out.name("streamingProcess").value(value.getJobConfig().getProps().getProperty(DataflowJobProperties.STREAM_PROCESS_KEY));
- }
- if
(value.getJobConfig().getProps().containsKey(ScriptJobProperties.SCRIPT_KEY)) {
-
out.name("scriptCommandLine").value(value.getJobConfig().getProps().getProperty(ScriptJobProperties.SCRIPT_KEY));
- }
- writeCustomized(out, value);
- out.endObject();
- }
-
- private void writeCustomized(final JsonWriter out, final
CloudJobConfiguration value) throws IOException {
-
out.name(CloudConfigurationConstants.APP_NAME).value(value.getAppName());
-
out.name(CloudConfigurationConstants.CPU_COUNT).value(value.getCpuCount());
-
out.name(CloudConfigurationConstants.MEMORY_MB).value(value.getMemoryMB());
-
out.name(CloudConfigurationConstants.JOB_EXECUTION_TYPE).value(value.getJobExecutionType().name());
- }
-}
diff --git a/elasticjob-cloud/elasticjob-cloud-scheduler/pom.xml
b/elasticjob-cloud/elasticjob-cloud-scheduler/pom.xml
index ab4bc98..f0f4409 100755
--- a/elasticjob-cloud/elasticjob-cloud-scheduler/pom.xml
+++ b/elasticjob-cloud/elasticjob-cloud-scheduler/pom.xml
@@ -142,7 +142,6 @@
<directory>src/main/resources</directory>
<excludes>
<exclude>bin/*</exclude>
- <exclude>conf/*</exclude>
<exclude>assembly/*</exclude>
</excludes>
</resource>
@@ -150,6 +149,15 @@
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>conf/*.properties</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationListener.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationListener.java
index e990c02..945a8f6 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationListener.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationListener.java
@@ -18,10 +18,10 @@
package org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job;
import lombok.extern.slf4j.Slf4j;
+
import org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.curator.framework.recipes.cache.CuratorCache;
import org.apache.curator.framework.recipes.cache.CuratorCacheListener;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.producer.ProducerManager;
@@ -51,25 +51,26 @@ public final class CloudJobConfigurationListener implements
CuratorCacheListener
}
@Override
+
public void event(final Type type, final ChildData oldData, final
ChildData data) {
String path = data.getPath();
if (Type.NODE_CREATED == type && isJobConfigNode(path)) {
- CloudJobConfiguration cloudJobConfig =
getCloudJobConfiguration(data);
+ CloudJobConfigurationPOJO cloudJobConfig =
getCloudJobConfiguration(data);
if (null != cloudJobConfig) {
producerManager.schedule(cloudJobConfig);
}
} else if (Type.NODE_CHANGED == type && isJobConfigNode(path)) {
- CloudJobConfiguration cloudJobConfig =
getCloudJobConfiguration(data);
+ CloudJobConfigurationPOJO cloudJobConfig =
getCloudJobConfiguration(data);
if (null == cloudJobConfig) {
return;
}
if (CloudJobExecutionType.DAEMON ==
cloudJobConfig.getJobExecutionType()) {
-
readyService.remove(Collections.singletonList(cloudJobConfig.getJobConfig().getJobName()));
+
readyService.remove(Collections.singletonList(cloudJobConfig.getJobName()));
}
- if (!cloudJobConfig.getJobConfig().isMisfire()) {
-
readyService.setMisfireDisabled(cloudJobConfig.getJobConfig().getJobName());
+ if (!cloudJobConfig.isMisfire()) {
+ readyService.setMisfireDisabled(cloudJobConfig.getJobName());
}
-
producerManager.reschedule(cloudJobConfig.getJobConfig().getJobName());
+ producerManager.reschedule(cloudJobConfig.getJobName());
} else if (Type.NODE_DELETED == type && isJobConfigNode(path)) {
String jobName =
path.substring(CloudJobConfigurationNode.ROOT.length() + 1, path.length());
producerManager.unschedule(jobName);
@@ -79,10 +80,10 @@ public final class CloudJobConfigurationListener implements
CuratorCacheListener
private boolean isJobConfigNode(final String path) {
return path.startsWith(CloudJobConfigurationNode.ROOT) &&
path.length() > CloudJobConfigurationNode.ROOT.length();
}
-
- private CloudJobConfiguration getCloudJobConfiguration(final ChildData
data) {
+
+ private CloudJobConfigurationPOJO getCloudJobConfiguration(final ChildData
data) {
try {
- return YamlEngine.unmarshal(new String(data.getData()),
CloudJobConfigurationPOJO.class).toCloudJobConfiguration();
+ return YamlEngine.unmarshal(new String(data.getData()),
CloudJobConfigurationPOJO.class);
// CHECKSTYLE:OFF
} catch (final Exception ex) {
log.warn("Wrong Cloud Job Configuration with:", ex.getMessage());
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationService.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationService.java
index fb46297..e2a792d 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationService.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationService.java
@@ -19,7 +19,6 @@ package
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job;
import com.google.common.base.Strings;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import org.apache.shardingsphere.elasticjob.infra.yaml.YamlEngine;
import org.apache.shardingsphere.elasticjob.reg.base.CoordinatorRegistryCenter;
@@ -43,9 +42,9 @@ public final class CloudJobConfigurationService {
*
* @param cloudJobConfig cloud job configuration
*/
- public void add(final CloudJobConfiguration cloudJobConfig) {
+ public void add(final CloudJobConfigurationPOJO cloudJobConfig) {
regCenter.persist(
-
CloudJobConfigurationNode.getRootNodePath(cloudJobConfig.getJobConfig().getJobName()),
YamlEngine.marshal(CloudJobConfigurationPOJO.fromCloudJobConfiguration(cloudJobConfig)));
+
CloudJobConfigurationNode.getRootNodePath(cloudJobConfig.getJobName()),
YamlEngine.marshal(cloudJobConfig));
}
/**
@@ -53,9 +52,9 @@ public final class CloudJobConfigurationService {
*
* @param cloudJobConfig cloud job configuration
*/
- public void update(final CloudJobConfiguration cloudJobConfig) {
+ public void update(final CloudJobConfigurationPOJO cloudJobConfig) {
regCenter.update(
-
CloudJobConfigurationNode.getRootNodePath(cloudJobConfig.getJobConfig().getJobName()),
YamlEngine.marshal(CloudJobConfigurationPOJO.fromCloudJobConfiguration(cloudJobConfig)));
+
CloudJobConfigurationNode.getRootNodePath(cloudJobConfig.getJobName()),
YamlEngine.marshal(cloudJobConfig));
}
/**
@@ -63,12 +62,12 @@ public final class CloudJobConfigurationService {
*
* @return collection of the registered cloud job configuration
*/
- public Collection<CloudJobConfiguration> loadAll() {
+ public Collection<CloudJobConfigurationPOJO> loadAll() {
if (!regCenter.isExisted(CloudJobConfigurationNode.ROOT)) {
return Collections.emptyList();
}
List<String> jobNames =
regCenter.getChildrenKeys(CloudJobConfigurationNode.ROOT);
- Collection<CloudJobConfiguration> result = new
ArrayList<>(jobNames.size());
+ Collection<CloudJobConfigurationPOJO> result = new
ArrayList<>(jobNames.size());
for (String each : jobNames) {
load(each).ifPresent(result::add);
}
@@ -81,9 +80,9 @@ public final class CloudJobConfigurationService {
* @param jobName job name
* @return cloud job configuration
*/
- public Optional<CloudJobConfiguration> load(final String jobName) {
+ public Optional<CloudJobConfigurationPOJO> load(final String jobName) {
String configContent =
regCenter.get(CloudJobConfigurationNode.getRootNodePath(jobName));
- return Strings.isNullOrEmpty(configContent) ? Optional.empty() :
Optional.of(YamlEngine.unmarshal(configContent,
CloudJobConfigurationPOJO.class).toCloudJobConfiguration());
+ return Strings.isNullOrEmpty(configContent) ? Optional.empty() :
Optional.of(YamlEngine.unmarshal(configContent,
CloudJobConfigurationPOJO.class));
}
/**
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/env/BootstrapEnvironment.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/env/BootstrapEnvironment.java
index 69ff04e..266feb9 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/env/BootstrapEnvironment.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/env/BootstrapEnvironment.java
@@ -25,10 +25,9 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.dbcp.BasicDataSource;
import
org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperConfiguration;
import org.apache.shardingsphere.elasticjob.tracing.api.TracingConfiguration;
-
import javax.sql.DataSource;
-import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.util.HashMap;
import java.util.Optional;
import java.util.Properties;
@@ -52,7 +51,7 @@ public final class BootstrapEnvironment {
private Properties getProperties() {
Properties result = new Properties();
- try (FileInputStream fileInputStream = new
FileInputStream(PROPERTIES_PATH)) {
+ try (InputStream fileInputStream =
BootstrapEnvironment.class.getClassLoader().getResourceAsStream(PROPERTIES_PATH))
{
result.load(fileInputStream);
} catch (final IOException ex) {
log.warn("Can not load properties file from path: '{}'.",
PROPERTIES_PATH);
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/AppConstraintEvaluator.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/AppConstraintEvaluator.java
index 3424b7c..e83a4cf 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/AppConstraintEvaluator.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/AppConstraintEvaluator.java
@@ -29,6 +29,7 @@ import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfiguration;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.mesos.MesosStateService.ExecutorStateInfo;
import org.apache.shardingsphere.elasticjob.infra.context.TaskContext;
@@ -147,11 +148,11 @@ public final class AppConstraintEvaluator implements
ConstraintEvaluator {
}
private CloudJobConfiguration getJobConfiguration(final TaskContext
taskContext) throws LackConfigException {
- Optional<CloudJobConfiguration> cloudJobConfig =
facadeService.load(taskContext.getMetaInfo().getJobName());
+ Optional<CloudJobConfigurationPOJO> cloudJobConfig =
facadeService.load(taskContext.getMetaInfo().getJobName());
if (!cloudJobConfig.isPresent()) {
throw new LackConfigException("JOB",
taskContext.getMetaInfo().getJobName());
}
- return cloudJobConfig.get();
+ return cloudJobConfig.get().toCloudJobConfiguration();
}
private class LackConfigException extends Exception {
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/FacadeService.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/FacadeService.java
index c445d71..a61f62d 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/FacadeService.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/FacadeService.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.elasticjob.cloud.scheduler.mesos;
import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfiguration;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfigurationService;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job.CloudJobConfigurationService;
@@ -159,21 +159,21 @@ public final class FacadeService {
* @param taskContext task running context
*/
public void recordFailoverTask(final TaskContext taskContext) {
- Optional<CloudJobConfiguration> cloudJobConfigOptional =
jobConfigService.load(taskContext.getMetaInfo().getJobName());
+ Optional<CloudJobConfigurationPOJO> cloudJobConfigOptional =
jobConfigService.load(taskContext.getMetaInfo().getJobName());
if (!cloudJobConfigOptional.isPresent()) {
return;
}
if (isDisable(cloudJobConfigOptional.get())) {
return;
}
- CloudJobConfiguration cloudJobConfig = cloudJobConfigOptional.get();
- if (cloudJobConfig.getJobConfig().isFailover() ||
CloudJobExecutionType.DAEMON == cloudJobConfig.getJobExecutionType()) {
+ CloudJobConfigurationPOJO cloudJobConfig =
cloudJobConfigOptional.get();
+ if (cloudJobConfig.isFailover() || CloudJobExecutionType.DAEMON ==
cloudJobConfig.getJobExecutionType()) {
failoverService.add(taskContext);
}
}
- private boolean isDisable(final CloudJobConfiguration cloudJobConfig) {
- return disableAppService.isDisabled(cloudJobConfig.getAppName()) ||
disableJobService.isDisabled(cloudJobConfig.getJobConfig().getJobName());
+ private boolean isDisable(final CloudJobConfigurationPOJO cloudJobConfig) {
+ return disableAppService.isDisabled(cloudJobConfig.getAppName()) ||
disableJobService.isDisabled(cloudJobConfig.getJobName());
}
/**
@@ -191,7 +191,7 @@ public final class FacadeService {
* @param jobName job name
* @return cloud job config
*/
- public Optional<CloudJobConfiguration> load(final String jobName) {
+ public Optional<CloudJobConfigurationPOJO> load(final String jobName) {
return jobConfigService.load(jobName);
}
@@ -221,7 +221,7 @@ public final class FacadeService {
* @param jobName job name
*/
public void addDaemonJobToReadyQueue(final String jobName) {
- Optional<CloudJobConfiguration> cloudJobConfig =
jobConfigService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> cloudJobConfig =
jobConfigService.load(jobName);
if (!cloudJobConfig.isPresent()) {
return;
}
@@ -296,7 +296,7 @@ public final class FacadeService {
* @return true is disabled, otherwise not
*/
public boolean isJobDisabled(final String jobName) {
- Optional<CloudJobConfiguration> jobConfiguration =
jobConfigService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> jobConfiguration =
jobConfigService.load(jobName);
return !jobConfiguration.isPresent() ||
disableAppService.isDisabled(jobConfiguration.get().getAppName()) ||
disableJobService.isDisabled(jobName);
}
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskLaunchScheduledService.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskLaunchScheduledService.java
index 86b86c2..c9bc110 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskLaunchScheduledService.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskLaunchScheduledService.java
@@ -35,6 +35,7 @@ import org.apache.mesos.SchedulerDriver;
import org.apache.shardingsphere.elasticjob.api.listener.ShardingContexts;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfiguration;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.env.BootstrapEnvironment;
import
org.apache.shardingsphere.elasticjob.cloud.util.config.ShardingItemParameters;
@@ -151,7 +152,7 @@ public final class TaskLaunchScheduledService extends
AbstractScheduledService {
private Protos.TaskInfo getTaskInfo(final Protos.Offer offer, final
TaskAssignmentResult taskAssignmentResult) {
TaskContext taskContext =
TaskContext.from(taskAssignmentResult.getTaskId());
- Optional<CloudJobConfiguration> cloudJobConfig =
facadeService.load(taskContext.getMetaInfo().getJobName());
+ Optional<CloudJobConfigurationPOJO> cloudJobConfig =
facadeService.load(taskContext.getMetaInfo().getJobName());
if (!cloudJobConfig.isPresent()) {
return null;
}
@@ -160,19 +161,19 @@ public final class TaskLaunchScheduledService extends
AbstractScheduledService {
return null;
}
taskContext.setSlaveId(offer.getSlaveId().getValue());
- ShardingContexts shardingContexts = getShardingContexts(taskContext,
appConfig.get(), cloudJobConfig.get());
+ ShardingContexts shardingContexts = getShardingContexts(taskContext,
appConfig.get(), cloudJobConfig.get().toCloudJobConfiguration());
boolean isCommandExecutor = CloudJobExecutionType.TRANSIENT ==
cloudJobConfig.get().getJobExecutionType()
- &&
cloudJobConfig.get().getJobConfig().getProps().contains(ScriptJobProperties.SCRIPT_KEY);
+ &&
cloudJobConfig.get().getProps().contains(ScriptJobProperties.SCRIPT_KEY);
String script = appConfig.get().getBootstrapScript();
if (isCommandExecutor) {
- script =
cloudJobConfig.get().getJobConfig().getProps().getProperty(ScriptJobProperties.SCRIPT_KEY);
+ script =
cloudJobConfig.get().getProps().getProperty(ScriptJobProperties.SCRIPT_KEY);
}
Protos.CommandInfo.URI uri = buildURI(appConfig.get(),
isCommandExecutor);
Protos.CommandInfo command = buildCommand(uri, script,
shardingContexts, isCommandExecutor);
if (isCommandExecutor) {
- return buildCommandExecutorTaskInfo(taskContext,
cloudJobConfig.get(), shardingContexts, offer, command);
+ return buildCommandExecutorTaskInfo(taskContext,
cloudJobConfig.get().toCloudJobConfiguration(), shardingContexts, offer,
command);
} else {
- return buildCustomizedExecutorTaskInfo(taskContext,
appConfig.get(), cloudJobConfig.get(), shardingContexts, offer, command);
+ return buildCustomizedExecutorTaskInfo(taskContext,
appConfig.get(), cloudJobConfig.get().toCloudJobConfiguration(),
shardingContexts, offer, command);
}
}
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/ProducerManager.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/ProducerManager.java
index ebbed8e..8b20925 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/ProducerManager.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/ProducerManager.java
@@ -22,8 +22,8 @@ import org.apache.mesos.Protos;
import org.apache.mesos.Protos.ExecutorID;
import org.apache.mesos.Protos.SlaveID;
import org.apache.mesos.SchedulerDriver;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.exception.AppConfigurationException;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfiguration;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfigurationService;
@@ -78,7 +78,7 @@ public final class ProducerManager {
public void startup() {
log.info("Start producer manager");
transientProducerScheduler.start();
- for (CloudJobConfiguration each : configService.loadAll()) {
+ for (CloudJobConfigurationPOJO each : configService.loadAll()) {
schedule(each);
}
}
@@ -88,17 +88,17 @@ public final class ProducerManager {
*
* @param cloudJobConfig cloud job configuration
*/
- public void register(final CloudJobConfiguration cloudJobConfig) {
- if
(disableJobService.isDisabled(cloudJobConfig.getJobConfig().getJobName())) {
- throw new JobConfigurationException("Job '%s' has been disable.",
cloudJobConfig.getJobConfig().getJobName());
+ public void register(final CloudJobConfigurationPOJO cloudJobConfig) {
+ if (disableJobService.isDisabled(cloudJobConfig.getJobName())) {
+ throw new JobConfigurationException("Job '%s' has been disable.",
cloudJobConfig.getJobName());
}
Optional<CloudAppConfiguration> appConfigFromZk =
appConfigService.load(cloudJobConfig.getAppName());
if (!appConfigFromZk.isPresent()) {
throw new AppConfigurationException("Register app '%s' firstly.",
cloudJobConfig.getAppName());
}
- Optional<CloudJobConfiguration> jobConfigFromZk =
configService.load(cloudJobConfig.getJobConfig().getJobName());
+ Optional<CloudJobConfigurationPOJO> jobConfigFromZk =
configService.load(cloudJobConfig.getJobName());
if (jobConfigFromZk.isPresent()) {
- throw new JobConfigurationException("Job '%s' already existed.",
cloudJobConfig.getJobConfig().getJobName());
+ throw new JobConfigurationException("Job '%s' already existed.",
cloudJobConfig.getJobName());
}
configService.add(cloudJobConfig);
schedule(cloudJobConfig);
@@ -109,13 +109,13 @@ public final class ProducerManager {
*
* @param cloudJobConfig cloud job configuration
*/
- public void update(final CloudJobConfiguration cloudJobConfig) {
- Optional<CloudJobConfiguration> jobConfigFromZk =
configService.load(cloudJobConfig.getJobConfig().getJobName());
+ public void update(final CloudJobConfigurationPOJO cloudJobConfig) {
+ Optional<CloudJobConfigurationPOJO> jobConfigFromZk =
configService.load(cloudJobConfig.getJobName());
if (!jobConfigFromZk.isPresent()) {
- throw new JobConfigurationException("Cannot found job '%s', please
register first.", cloudJobConfig.getJobConfig().getJobName());
+ throw new JobConfigurationException("Cannot found job '%s', please
register first.", cloudJobConfig.getJobName());
}
configService.update(cloudJobConfig);
- reschedule(cloudJobConfig.getJobConfig().getJobName());
+ reschedule(cloudJobConfig.getJobName());
}
/**
@@ -124,7 +124,7 @@ public final class ProducerManager {
* @param jobName job name
*/
public void deregister(final String jobName) {
- Optional<CloudJobConfiguration> jobConfig =
configService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> jobConfig =
configService.load(jobName);
if (jobConfig.isPresent()) {
disableJobService.remove(jobName);
configService.remove(jobName);
@@ -137,14 +137,14 @@ public final class ProducerManager {
*
* @param cloudJobConfig cloud job configuration
*/
- public void schedule(final CloudJobConfiguration cloudJobConfig) {
- if (disableAppService.isDisabled(cloudJobConfig.getAppName()) ||
disableJobService.isDisabled(cloudJobConfig.getJobConfig().getJobName())) {
+ public void schedule(final CloudJobConfigurationPOJO cloudJobConfig) {
+ if (disableAppService.isDisabled(cloudJobConfig.getAppName()) ||
disableJobService.isDisabled(cloudJobConfig.getJobName())) {
return;
}
if (CloudJobExecutionType.TRANSIENT ==
cloudJobConfig.getJobExecutionType()) {
transientProducerScheduler.register(cloudJobConfig);
} else if (CloudJobExecutionType.DAEMON ==
cloudJobConfig.getJobExecutionType()) {
- readyService.addDaemon(cloudJobConfig.getJobConfig().getJobName());
+ readyService.addDaemon(cloudJobConfig.getJobName());
}
}
@@ -159,7 +159,7 @@ public final class ProducerManager {
}
runningService.remove(jobName);
readyService.remove(Collections.singletonList(jobName));
- Optional<CloudJobConfiguration> jobConfig =
configService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> jobConfig =
configService.load(jobName);
jobConfig.ifPresent(transientProducerScheduler::deregister);
}
@@ -170,7 +170,7 @@ public final class ProducerManager {
*/
public void reschedule(final String jobName) {
unschedule(jobName);
- Optional<CloudJobConfiguration> jobConfig =
configService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> jobConfig =
configService.load(jobName);
jobConfig.ifPresent(this::schedule);
}
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/TransientProducerScheduler.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/TransientProducerScheduler.java
index 74a0c46..f3943b8 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/TransientProducerScheduler.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/TransientProducerScheduler.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.elasticjob.cloud.scheduler.producer;
import lombok.Setter;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.state.ready.ReadyService;
import org.apache.shardingsphere.elasticjob.infra.exception.JobSystemException;
import org.quartz.CronScheduleBuilder;
@@ -85,10 +85,10 @@ final class TransientProducerScheduler {
}
// TODO Concurrency optimization
- synchronized void register(final CloudJobConfiguration cloudJobConfig) {
- String cron = cloudJobConfig.getJobConfig().getCron();
+ synchronized void register(final CloudJobConfigurationPOJO cloudJobConfig)
{
+ String cron = cloudJobConfig.getCron();
JobKey jobKey = buildJobKey(cron);
- repository.put(jobKey, cloudJobConfig.getJobConfig().getJobName());
+ repository.put(jobKey, cloudJobConfig.getJobName());
try {
if (!scheduler.checkExists(jobKey)) {
scheduler.scheduleJob(buildJobDetail(jobKey),
buildTrigger(jobKey.getName()));
@@ -109,9 +109,9 @@ final class TransientProducerScheduler {
return
TriggerBuilder.newTrigger().withIdentity(cron).withSchedule(CronScheduleBuilder.cronSchedule(cron).withMisfireHandlingInstructionDoNothing()).build();
}
- synchronized void deregister(final CloudJobConfiguration cloudJobConfig) {
- repository.remove(cloudJobConfig.getJobConfig().getJobName());
- String cron = cloudJobConfig.getJobConfig().getCron();
+ synchronized void deregister(final CloudJobConfigurationPOJO
cloudJobConfig) {
+ repository.remove(cloudJobConfig.getJobName());
+ String cron = cloudJobConfig.getCron();
if (!repository.containsKey(buildJobKey(cron))) {
try {
scheduler.unscheduleJob(TriggerKey.triggerKey(cron));
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApi.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApi.java
index 13b1229..8e6b28e 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApi.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudAppRestfulApi.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.elasticjob.cloud.scheduler.restful;
import org.apache.mesos.Protos.ExecutorID;
import org.apache.mesos.Protos.SlaveID;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.exception.AppConfigurationException;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfiguration;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfigurationGsonFactory;
@@ -162,9 +162,9 @@ public final class CloudAppRestfulApi {
public void disable(@PathParam("appName") final String appName) {
if (appConfigService.load(appName).isPresent()) {
disableAppService.add(appName);
- for (CloudJobConfiguration each : jobConfigService.loadAll()) {
+ for (CloudJobConfigurationPOJO each : jobConfigService.loadAll()) {
if (appName.equals(each.getAppName())) {
-
producerManager.unschedule(each.getJobConfig().getJobName());
+ producerManager.unschedule(each.getJobName());
}
}
}
@@ -180,9 +180,9 @@ public final class CloudAppRestfulApi {
public void enable(@PathParam("appName") final String appName) {
if (appConfigService.load(appName).isPresent()) {
disableAppService.remove(appName);
- for (CloudJobConfiguration each : jobConfigService.loadAll()) {
+ for (CloudJobConfigurationPOJO each : jobConfigService.loadAll()) {
if (appName.equals(each.getAppName())) {
-
producerManager.reschedule(each.getJobConfig().getJobName());
+ producerManager.reschedule(each.getJobName());
}
}
}
@@ -204,9 +204,9 @@ public final class CloudAppRestfulApi {
}
private void removeAppAndJobConfigurations(final String appName) {
- for (CloudJobConfiguration each : jobConfigService.loadAll()) {
+ for (CloudJobConfigurationPOJO each : jobConfigService.loadAll()) {
if (appName.equals(each.getAppName())) {
- producerManager.deregister(each.getJobConfig().getJobName());
+ producerManager.deregister(each.getJobName());
}
}
disableAppService.remove(appName);
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApi.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApi.java
index 96436f4..b4e87a4 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApi.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApi.java
@@ -20,8 +20,8 @@ package
org.apache.shardingsphere.elasticjob.cloud.scheduler.restful;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job.CloudJobConfigurationService;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.env.BootstrapEnvironment;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.mesos.FacadeService;
@@ -35,15 +35,12 @@ import
org.apache.shardingsphere.elasticjob.cloud.statistics.type.job.JobRegiste
import
org.apache.shardingsphere.elasticjob.cloud.statistics.type.job.JobRunningStatistics;
import
org.apache.shardingsphere.elasticjob.cloud.statistics.type.task.TaskResultStatistics;
import
org.apache.shardingsphere.elasticjob.cloud.statistics.type.task.TaskRunningStatistics;
-import org.apache.shardingsphere.elasticjob.cloud.util.json.GsonFactory;
-import
org.apache.shardingsphere.elasticjob.cloud.util.json.JobConfigurationGsonTypeAdapter;
import org.apache.shardingsphere.elasticjob.infra.context.TaskContext;
import org.apache.shardingsphere.elasticjob.infra.exception.JobSystemException;
import org.apache.shardingsphere.elasticjob.reg.base.CoordinatorRegistryCenter;
import org.apache.shardingsphere.elasticjob.tracing.api.TracingConfiguration;
import org.apache.shardingsphere.elasticjob.tracing.event.JobExecutionEvent;
import org.apache.shardingsphere.elasticjob.tracing.event.JobStatusTraceEvent;
-
import javax.sql.DataSource;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -107,7 +104,6 @@ public final class CloudJobRestfulApi {
public static void init(final CoordinatorRegistryCenter regCenter, final
ProducerManager producerManager) {
CloudJobRestfulApi.regCenter = regCenter;
CloudJobRestfulApi.producerManager = producerManager;
- GsonFactory.registerTypeAdapter(CloudJobConfiguration.class, new
JobConfigurationGsonTypeAdapter());
Optional<TracingConfiguration> tracingConfiguration =
BootstrapEnvironment.getInstance().getTracingConfiguration();
jobEventRdbSearch = tracingConfiguration.map(tracingConfiguration1 ->
new JobEventRdbSearch((DataSource)
tracingConfiguration1.getStorage())).orElse(null);
}
@@ -120,7 +116,7 @@ public final class CloudJobRestfulApi {
@POST
@Path("/register")
@Consumes(MediaType.APPLICATION_JSON)
- public void register(final CloudJobConfiguration cloudJobConfig) {
+ public void register(final CloudJobConfigurationPOJO cloudJobConfig) {
producerManager.register(cloudJobConfig);
}
@@ -132,7 +128,7 @@ public final class CloudJobRestfulApi {
@PUT
@Path("/update")
@Consumes(MediaType.APPLICATION_JSON)
- public void update(final CloudJobConfiguration cloudJobConfig) {
+ public void update(final CloudJobConfigurationPOJO cloudJobConfig) {
producerManager.update(cloudJobConfig);
}
@@ -169,7 +165,7 @@ public final class CloudJobRestfulApi {
@POST
@Path("/{jobName}/enable")
public void enable(@PathParam("jobName") final String jobName) {
- Optional<CloudJobConfiguration> configOptional =
configService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> configOptional =
configService.load(jobName);
if (configOptional.isPresent()) {
facadeService.enableJob(jobName);
producerManager.reschedule(jobName);
@@ -199,7 +195,7 @@ public final class CloudJobRestfulApi {
@Path("/trigger")
@Consumes(MediaType.APPLICATION_JSON)
public void trigger(final String jobName) {
- Optional<CloudJobConfiguration> config = configService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> config =
configService.load(jobName);
if (config.isPresent() && CloudJobExecutionType.DAEMON ==
config.get().getJobExecutionType()) {
throw new JobSystemException("Daemon job '%s' cannot support
trigger.", jobName);
}
@@ -216,7 +212,7 @@ public final class CloudJobRestfulApi {
@Path("/jobs/{jobName}")
@Consumes(MediaType.APPLICATION_JSON)
public Response detail(@PathParam("jobName") final String jobName) {
- Optional<CloudJobConfiguration> cloudJobConfig =
configService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> cloudJobConfig =
configService.load(jobName);
if (!cloudJobConfig.isPresent()) {
return Response.status(Response.Status.NOT_FOUND).build();
}
@@ -231,7 +227,7 @@ public final class CloudJobRestfulApi {
@GET
@Path("/jobs")
@Consumes(MediaType.APPLICATION_JSON)
- public Collection<CloudJobConfiguration> findAllJobs() {
+ public Collection<CloudJobConfigurationPOJO> findAllJobs() {
return configService.loadAll();
}
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/failover/FailoverService.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/failover/FailoverService.java
index 44a0400..677dffc 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/failover/FailoverService.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/failover/FailoverService.java
@@ -22,7 +22,7 @@ import com.google.common.base.Strings;
import com.google.common.hash.HashCode;
import com.google.common.hash.Hashing;
import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job.CloudJobConfigurationService;
import org.apache.shardingsphere.elasticjob.cloud.scheduler.context.JobContext;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.env.BootstrapEnvironment;
@@ -97,14 +97,14 @@ public final class FailoverService {
regCenter.remove(FailoverNode.getFailoverJobNodePath(each));
continue;
}
- Optional<CloudJobConfiguration> cloudJobConfig =
configService.load(each);
+ Optional<CloudJobConfigurationPOJO> cloudJobConfig =
configService.load(each);
if (!cloudJobConfig.isPresent()) {
regCenter.remove(FailoverNode.getFailoverJobNodePath(each));
continue;
}
List<Integer> assignedShardingItems =
getAssignedShardingItems(each, taskIdList, assignedTasks);
if (!assignedShardingItems.isEmpty()) {
- result.add(new JobContext(cloudJobConfig.get(),
assignedShardingItems, ExecutionType.FAILOVER));
+ result.add(new
JobContext(cloudJobConfig.get().toCloudJobConfiguration(),
assignedShardingItems, ExecutionType.FAILOVER));
}
}
return result;
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/ready/ReadyService.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/ready/ReadyService.java
index 8e0bf42..48689e4 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/ready/ReadyService.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/ready/ReadyService.java
@@ -19,8 +19,8 @@ package
org.apache.shardingsphere.elasticjob.cloud.scheduler.state.ready;
import com.google.common.base.Strings;
import lombok.extern.slf4j.Slf4j;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import org.apache.shardingsphere.elasticjob.infra.context.ExecutionType;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job.CloudJobConfigurationService;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
import org.apache.shardingsphere.elasticjob.cloud.scheduler.context.JobContext;
@@ -67,13 +67,13 @@ public final class ReadyService {
log.warn("Cannot add transient job, caused by read state queue
size is larger than {}.",
env.getFrameworkConfiguration().getJobStateQueueSize());
return;
}
- Optional<CloudJobConfiguration> cloudJobConfig =
configService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> cloudJobConfig =
configService.load(jobName);
if (!cloudJobConfig.isPresent() || CloudJobExecutionType.TRANSIENT !=
cloudJobConfig.get().getJobExecutionType()) {
return;
}
String readyJobNode = ReadyNode.getReadyJobNodePath(jobName);
String times = regCenter.getDirectly(readyJobNode);
- if (cloudJobConfig.get().getJobConfig().isMisfire()) {
+ if (cloudJobConfig.get().isMisfire()) {
regCenter.persist(readyJobNode, Integer.toString(null == times ? 1
: Integer.parseInt(times) + 1));
} else {
regCenter.persist(ReadyNode.getReadyJobNodePath(jobName), "1");
@@ -90,7 +90,7 @@ public final class ReadyService {
log.warn("Cannot add daemon job, caused by read state queue size
is larger than {}.", env.getFrameworkConfiguration().getJobStateQueueSize());
return;
}
- Optional<CloudJobConfiguration> cloudJobConfig =
configService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> cloudJobConfig =
configService.load(jobName);
if (!cloudJobConfig.isPresent() || CloudJobExecutionType.DAEMON !=
cloudJobConfig.get().getJobExecutionType() ||
runningService.isJobRunning(jobName)) {
return;
}
@@ -103,7 +103,7 @@ public final class ReadyService {
* @param jobName job name
*/
public void setMisfireDisabled(final String jobName) {
- Optional<CloudJobConfiguration> cloudJobConfig =
configService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> cloudJobConfig =
configService.load(jobName);
if (cloudJobConfig.isPresent() && null !=
regCenter.getDirectly(ReadyNode.getReadyJobNodePath(jobName))) {
regCenter.persist(ReadyNode.getReadyJobNodePath(jobName), "1");
}
@@ -126,13 +126,13 @@ public final class ReadyService {
if (ineligibleJobNames.contains(each)) {
continue;
}
- Optional<CloudJobConfiguration> jobConfig =
configService.load(each);
+ Optional<CloudJobConfigurationPOJO> jobConfig =
configService.load(each);
if (!jobConfig.isPresent()) {
regCenter.remove(ReadyNode.getReadyJobNodePath(each));
continue;
}
if (!runningService.isJobRunning(each)) {
- result.add(JobContext.from(jobConfig.get(),
ExecutionType.READY));
+
result.add(JobContext.from(jobConfig.get().toCloudJobConfiguration(),
ExecutionType.READY));
}
}
return result;
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/running/RunningService.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/running/RunningService.java
index cec47fe..646f9a9 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/running/RunningService.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/running/RunningService.java
@@ -20,9 +20,9 @@ package
org.apache.shardingsphere.elasticjob.cloud.scheduler.state.running;
import com.google.common.collect.Sets;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import org.apache.shardingsphere.elasticjob.infra.context.TaskContext;
import org.apache.shardingsphere.elasticjob.infra.context.TaskContext.MetaInfo;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job.CloudJobConfigurationService;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
import org.apache.shardingsphere.elasticjob.reg.base.CoordinatorRegistryCenter;
@@ -96,7 +96,7 @@ public final class RunningService {
}
private boolean isDaemon(final String jobName) {
- Optional<CloudJobConfiguration> cloudJobConfig =
configurationService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> cloudJobConfig =
configurationService.load(jobName);
return cloudJobConfig.isPresent() && CloudJobExecutionType.DAEMON ==
cloudJobConfig.get().getJobExecutionType();
}
@@ -152,7 +152,7 @@ public final class RunningService {
}
private boolean isDaemonOrAbsent(final String jobName) {
- Optional<CloudJobConfiguration> cloudJobConfigurationOptional =
configurationService.load(jobName);
+ Optional<CloudJobConfigurationPOJO> cloudJobConfigurationOptional =
configurationService.load(jobName);
return !cloudJobConfigurationOptional.isPresent() ||
CloudJobExecutionType.DAEMON ==
cloudJobConfigurationOptional.get().getJobExecutionType();
}
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/statistics/StatisticManager.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/statistics/StatisticManager.java
index fbd25e4..6cb0cb1 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/statistics/StatisticManager.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/main/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/statistics/StatisticManager.java
@@ -20,8 +20,8 @@ package
org.apache.shardingsphere.elasticjob.cloud.scheduler.statistics;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job.CloudJobConfigurationService;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.statistics.job.JobRunningStatisticJob;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.statistics.job.RegisteredJobStatisticJob;
@@ -212,7 +212,7 @@ public final class StatisticManager {
public JobExecutionTypeStatistics getJobExecutionTypeStatistics() {
int transientJobCnt = 0;
int daemonJobCnt = 0;
- for (CloudJobConfiguration each : configurationService.loadAll()) {
+ for (CloudJobConfigurationPOJO each : configurationService.loadAll()) {
if
(CloudJobExecutionType.TRANSIENT.equals(each.getJobExecutionType())) {
transientJobCnt++;
} else if
(CloudJobExecutionType.DAEMON.equals(each.getJobExecutionType())) {
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationServiceTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationServiceTest.java
index 6865616..97428ab 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationServiceTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/config/job/CloudJobConfigurationServiceTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.fixture.CloudJobConfigurationBuilder;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.fixture.CloudJsonConstants;
import org.apache.shardingsphere.elasticjob.reg.base.CoordinatorRegistryCenter;
@@ -67,14 +67,14 @@ public final class CloudJobConfigurationServiceTest {
@Test
public void assertAdd() {
- CloudJobConfiguration cloudJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job");
+ CloudJobConfigurationPOJO cloudJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job");
configService.add(cloudJobConfig);
verify(regCenter).persist("/config/job/test_job", YAML);
}
@Test
public void assertUpdate() {
- CloudJobConfiguration cloudJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job");
+ CloudJobConfigurationPOJO cloudJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job");
configService.update(cloudJobConfig);
verify(regCenter).update("/config/job/test_job", YAML);
}
@@ -91,9 +91,9 @@ public final class CloudJobConfigurationServiceTest {
when(regCenter.isExisted("/config/job")).thenReturn(true);
when(regCenter.getChildrenKeys(CloudJobConfigurationNode.ROOT)).thenReturn(Arrays.asList("test_job_1",
"test_job_2"));
when(regCenter.get("/config/job/test_job_1")).thenReturn(CloudJsonConstants.getJobJson("test_job_1"));
- Collection<CloudJobConfiguration> actual = configService.loadAll();
+ Collection<CloudJobConfigurationPOJO> actual = configService.loadAll();
assertThat(actual.size(), is(1));
- assertThat(actual.iterator().next().getJobConfig().getJobName(),
is("test_job_1"));
+ assertThat(actual.iterator().next().getJobName(), is("test_job_1"));
verify(regCenter).isExisted("/config/job");
verify(regCenter).getChildrenKeys("/config/job");
verify(regCenter).get("/config/job/test_job_1");
@@ -108,15 +108,15 @@ public final class CloudJobConfigurationServiceTest {
@Test
public void assertLoadWithConfig() {
when(regCenter.get("/config/job/test_job")).thenReturn(CloudJsonConstants.getJobJson());
- Optional<CloudJobConfiguration> actual =
configService.load("test_job");
+ Optional<CloudJobConfigurationPOJO> actual =
configService.load("test_job");
assertTrue(actual.isPresent());
- assertThat(actual.get().getJobConfig().getJobName(), is("test_job"));
+ assertThat(actual.get().getJobName(), is("test_job"));
}
@Test
public void assertLoadWithSpringConfig() {
when(regCenter.get("/config/job/test_spring_job")).thenReturn(CloudJsonConstants.getSpringJobJson());
- Optional<CloudJobConfiguration> actual =
configService.load("test_spring_job");
+ Optional<CloudJobConfigurationPOJO> actual =
configService.load("test_spring_job");
assertTrue(actual.isPresent());
}
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/context/JobContextTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/context/JobContextTest.java
index 76d9cfd..4e7990b 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/context/JobContextTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/context/JobContextTest.java
@@ -29,7 +29,7 @@ public final class JobContextTest {
@Test
public void assertFrom() {
- CloudJobConfiguration cloudJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job");
+ CloudJobConfiguration cloudJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job").toCloudJobConfiguration();
JobContext actual = JobContext.from(cloudJobConfig,
ExecutionType.READY);
assertThat(actual.getAssignedShardingItems().size(), is(10));
for (int i = 0; i < actual.getAssignedShardingItems().size(); i++) {
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/fixture/CloudJobConfigurationBuilder.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/fixture/CloudJobConfigurationBuilder.java
index 49dac7c..974d453 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/fixture/CloudJobConfigurationBuilder.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/fixture/CloudJobConfigurationBuilder.java
@@ -22,6 +22,7 @@ import lombok.NoArgsConstructor;
import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.dataflow.props.DataflowJobProperties;
import org.apache.shardingsphere.elasticjob.script.props.ScriptJobProperties;
@@ -34,9 +35,9 @@ public final class CloudJobConfigurationBuilder {
* @param jobName job name
* @return cloud job configuration
*/
- public static CloudJobConfiguration createCloudJobConfiguration(final
String jobName) {
- return new CloudJobConfiguration("test_app", 1.0d, 128.0d,
CloudJobExecutionType.TRANSIENT,
- JobConfiguration.newBuilder(jobName, 10).cron("0/30 * * * *
?").failover(true).misfire(true).build());
+ public static CloudJobConfigurationPOJO createCloudJobConfiguration(final
String jobName) {
+ return CloudJobConfigurationPOJO.fromCloudJobConfiguration(new
CloudJobConfiguration("test_app", 1.0d, 128.0d, CloudJobExecutionType.TRANSIENT,
+ JobConfiguration.newBuilder(jobName, 10).cron("0/30 * * * *
?").failover(true).misfire(true).build()));
}
/**
@@ -46,8 +47,9 @@ public final class CloudJobConfigurationBuilder {
* @param jobExecutionType job execution type
* @return cloud job configuration
*/
- public static CloudJobConfiguration createCloudJobConfiguration(final
String jobName, final CloudJobExecutionType jobExecutionType) {
- return new CloudJobConfiguration("test_app", 1.0d, 128.0d,
jobExecutionType, JobConfiguration.newBuilder(jobName, 10).cron("0/30 * * * *
?").failover(true).misfire(true).build());
+ public static CloudJobConfigurationPOJO createCloudJobConfiguration(final
String jobName, final CloudJobExecutionType jobExecutionType) {
+ return CloudJobConfigurationPOJO.fromCloudJobConfiguration(new
CloudJobConfiguration("test_app", 1.0d, 128.0d,
+ jobExecutionType, JobConfiguration.newBuilder(jobName,
10).cron("0/30 * * * * ?").failover(true).misfire(true).build()));
}
/**
@@ -70,9 +72,9 @@ public final class CloudJobConfigurationBuilder {
* @param misfire misfire
* @return cloud job configuration
*/
- public static CloudJobConfiguration createCloudJobConfiguration(final
String jobName, final boolean misfire) {
- return new CloudJobConfiguration("test_app", 1.0d, 128.0d,
CloudJobExecutionType.TRANSIENT,
- JobConfiguration.newBuilder(jobName, 10).cron("0/30 * * * *
?").failover(true).misfire(misfire).build());
+ public static CloudJobConfigurationPOJO createCloudJobConfiguration(final
String jobName, final boolean misfire) {
+ return CloudJobConfigurationPOJO.fromCloudJobConfiguration(new
CloudJobConfiguration("test_app", 1.0d, 128.0d, CloudJobExecutionType.TRANSIENT,
+ JobConfiguration.newBuilder(jobName, 10).cron("0/30 * * * *
?").failover(true).misfire(misfire).build()));
}
/**
@@ -82,8 +84,9 @@ public final class CloudJobConfigurationBuilder {
* @param appName app name
* @return cloud job configuration
*/
- public static CloudJobConfiguration createCloudJobConfiguration(final
String jobName, final String appName) {
- return new CloudJobConfiguration(appName, 1.0d, 128.0d,
CloudJobExecutionType.TRANSIENT, JobConfiguration.newBuilder(jobName,
10).cron("0/30 * * * * ?").failover(true).misfire(true).build());
+ public static CloudJobConfigurationPOJO createCloudJobConfiguration(final
String jobName, final String appName) {
+ return CloudJobConfigurationPOJO.fromCloudJobConfiguration(new
CloudJobConfiguration(appName, 1.0d, 128.0d,
+ CloudJobExecutionType.TRANSIENT,
JobConfiguration.newBuilder(jobName, 10).cron("0/30 * * * *
?").failover(true).misfire(true).build()));
}
/**
@@ -92,9 +95,9 @@ public final class CloudJobConfigurationBuilder {
* @param jobName job name
* @return cloud job configuration
*/
- public static CloudJobConfiguration createOtherCloudJobConfiguration(final
String jobName) {
- return new CloudJobConfiguration(
- "test_app", 1.0d, 128.0d, CloudJobExecutionType.TRANSIENT,
JobConfiguration.newBuilder(jobName, 3).cron("0/30 * * * *
?").failover(false).misfire(true).build());
+ public static CloudJobConfigurationPOJO
createOtherCloudJobConfiguration(final String jobName) {
+ return CloudJobConfigurationPOJO.fromCloudJobConfiguration(new
CloudJobConfiguration(
+ "test_app", 1.0d, 128.0d, CloudJobExecutionType.TRANSIENT,
JobConfiguration.newBuilder(jobName, 3).cron("0/30 * * * *
?").failover(false).misfire(true).build()));
}
/**
@@ -125,7 +128,7 @@ public final class CloudJobConfigurationBuilder {
* @param jobName job name
* @return cloud job configuration
*/
- public static CloudJobConfiguration
createScriptCloudJobConfiguration(final String jobName) {
+ public static CloudJobConfigurationPOJO
createScriptCloudJobConfiguration(final String jobName) {
return createScriptCloudJobConfiguration(jobName, 3);
}
@@ -136,8 +139,8 @@ public final class CloudJobConfigurationBuilder {
* @param shardingTotalCount sharding total count
* @return cloud job configuration
*/
- public static CloudJobConfiguration
createScriptCloudJobConfiguration(final String jobName, final int
shardingTotalCount) {
- return new CloudJobConfiguration("test_app", 1.0d, 128.0d,
CloudJobExecutionType.TRANSIENT,
- JobConfiguration.newBuilder(jobName,
shardingTotalCount).cron("0/30 * * * *
?").failover(false).misfire(false).setProperty(ScriptJobProperties.SCRIPT_KEY,
"test.sh").build());
+ public static CloudJobConfigurationPOJO
createScriptCloudJobConfiguration(final String jobName, final int
shardingTotalCount) {
+ return CloudJobConfigurationPOJO.fromCloudJobConfiguration(new
CloudJobConfiguration("test_app", 1.0d, 128.0d, CloudJobExecutionType.TRANSIENT,
+ JobConfiguration.newBuilder(jobName,
shardingTotalCount).cron("0/30 * * * *
?").failover(false).misfire(false).setProperty(ScriptJobProperties.SCRIPT_KEY,
"test.sh").build()));
}
}
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/fixture/CloudJsonConstants.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/fixture/CloudJsonConstants.java
index 3b9a3c3..b9b7112 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/fixture/CloudJsonConstants.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/fixture/CloudJsonConstants.java
@@ -23,12 +23,11 @@ import
org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class CloudJsonConstants {
-
- private static final String JOB_JSON = "{\"jobName\":\"%s\","
- + "\"cron\":\"0/30 * * * *
?\",\"shardingTotalCount\":10,\"shardingItemParameters\":\"\",\"jobParameter\":\"\",\"failover\":true,\"misfire\":%s,\"description\":\"\","
- + "\"appName\":\"test_app\",\"cpuCount\":1.0,\"memoryMB\":128.0,"
- + "\"jobExecutionType\":\"%s\"}";
-
+
+ private static final String JOB_JSON =
"{\"appName\":\"test_app\",\"cpuCount\":1.0,\"memoryMB\":128.0,\"jobExecutionType\":\"%s\",\"jobName\":\"%s\","
+ + "\"cron\":\"0/30 * * * *
?\",\"shardingTotalCount\":10,\"shardingItemParameters\":\"\",\"jobParameter\":\"\",\"monitorExecution\":false,\"failover\":true,"
+ +
"\"misfire\":%s,\"maxTimeDiffSeconds\":0,\"reconcileIntervalMinutes\":0,\"description\":\"\",\"props\":{},\"disabled\":false,\"overwrite\":false}";
+
private static final String SPRING_JOB_JSON =
"{\"jobName\":\"test_spring_job\","
+ "\"cron\":\"0/30 * * * *
?\",\"shardingTotalCount\":10,\"shardingItemParameters\":\"\",\"jobParameter\":\"\",\"failover\":true,\"misfire\":true,\"description\":\"\","
+
"\"appName\":\"test_spring_app\",\"cpuCount\":1.0,\"memoryMB\":128.0,"
@@ -39,7 +38,7 @@ public final class CloudJsonConstants {
* @return job in json format
*/
public static String getJobJson() {
- return String.format(JOB_JSON, "test_job", true, "TRANSIENT");
+ return String.format(JOB_JSON, "TRANSIENT", "test_job", true);
}
/**
@@ -48,7 +47,7 @@ public final class CloudJsonConstants {
* @return job in json format
*/
public static String getJobJson(final String jobName) {
- return String.format(JOB_JSON, jobName, true, "TRANSIENT");
+ return String.format(JOB_JSON, "TRANSIENT", jobName, true);
}
/**
@@ -57,7 +56,7 @@ public final class CloudJsonConstants {
* @return job in json format
*/
public static String getJobJson(final CloudJobExecutionType
jobExecutionType) {
- return String.format(JOB_JSON, "test_job", true,
jobExecutionType.name());
+ return String.format(JOB_JSON, jobExecutionType.name(), "test_job",
true);
}
/**
@@ -66,7 +65,7 @@ public final class CloudJsonConstants {
* @return job in json format
*/
public static String getJobJson(final boolean misfire) {
- return String.format(JOB_JSON, "test_job", misfire, "TRANSIENT");
+ return String.format(JOB_JSON, "TRANSIENT", "test_job", misfire);
}
/**
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/FacadeServiceTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/FacadeServiceTest.java
index ca8e0f2..368dfcc 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/FacadeServiceTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/FacadeServiceTest.java
@@ -21,6 +21,7 @@ import com.google.common.collect.Sets;
import org.apache.shardingsphere.elasticjob.cloud.ReflectionUtils;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfiguration;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfigurationService;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job.CloudJobConfigurationService;
@@ -109,8 +110,10 @@ public final class FacadeServiceTest {
@Test
public void assertGetEligibleJobContext() {
- Collection<JobContext> failoverJobContexts =
Collections.singletonList(JobContext.from(CloudJobConfigurationBuilder.createCloudJobConfiguration("failover_job"),
ExecutionType.FAILOVER));
- Collection<JobContext> readyJobContexts =
Collections.singletonList(JobContext.from(CloudJobConfigurationBuilder.createCloudJobConfiguration("ready_job"),
ExecutionType.READY));
+ Collection<JobContext> failoverJobContexts =
Collections.singletonList(JobContext.from(CloudJobConfigurationBuilder
+
.createCloudJobConfiguration("failover_job").toCloudJobConfiguration(),
ExecutionType.FAILOVER));
+ Collection<JobContext> readyJobContexts =
Collections.singletonList(JobContext.from(CloudJobConfigurationBuilder
+
.createCloudJobConfiguration("ready_job").toCloudJobConfiguration(),
ExecutionType.READY));
when(failoverService.getAllEligibleJobContexts()).thenReturn(failoverJobContexts);
when(readyService.getAllEligibleJobContexts(failoverJobContexts)).thenReturn(readyJobContexts);
Collection<JobContext> actual = facadeService.getEligibleJobContext();
@@ -204,7 +207,7 @@ public final class FacadeServiceTest {
@Test
public void assertLoadJobConfig() {
- Optional<CloudJobConfiguration> cloudJobConfig =
Optional.of(CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job"));
+ Optional<CloudJobConfigurationPOJO> cloudJobConfig =
Optional.of(CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job"));
when(jobConfigService.load("test_job")).thenReturn(cloudJobConfig);
assertThat(facadeService.load("test_job"), is(cloudJobConfig));
}
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/JobTaskRequestTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/JobTaskRequestTest.java
index fd6e89e..cc1a384 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/JobTaskRequestTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/JobTaskRequestTest.java
@@ -34,7 +34,7 @@ public final class JobTaskRequestTest {
private final JobTaskRequest jobTaskRequest =
new JobTaskRequest(new TaskContext("test_job",
Collections.singletonList(0), ExecutionType
- .READY, "unassigned-slave"),
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job"));
+ .READY, "unassigned-slave"),
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job").toCloudJobConfiguration());
@Test
public void assertGetId() {
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/LaunchingTasksTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/LaunchingTasksTest.java
index 6a19ac9..3f8df72 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/LaunchingTasksTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/LaunchingTasksTest.java
@@ -70,8 +70,8 @@ public final class LaunchingTasksTest {
ReflectionUtils.setFieldValue(facadeService, "runningService",
runningService);
ReflectionUtils.setFieldValue(facadeService, "failoverService",
failoverService);
when(facadeService.getEligibleJobContext()).thenReturn(Arrays.asList(
-
JobContext.from(CloudJobConfigurationBuilder.createCloudJobConfiguration("ready_job"),
ExecutionType.READY),
-
JobContext.from(CloudJobConfigurationBuilder.createCloudJobConfiguration("failover_job"),
ExecutionType.FAILOVER)));
+
JobContext.from(CloudJobConfigurationBuilder.createCloudJobConfiguration("ready_job").toCloudJobConfiguration(),
ExecutionType.READY),
+
JobContext.from(CloudJobConfigurationBuilder.createCloudJobConfiguration("failover_job").toCloudJobConfiguration(),
ExecutionType.FAILOVER)));
launchingTasks = new
LaunchingTasks(facadeService.getEligibleJobContext());
}
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskInfoDataTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskInfoDataTest.java
index a895ae4..a764625 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskInfoDataTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskInfoDataTest.java
@@ -35,7 +35,7 @@ public final class TaskInfoDataTest {
@Test
public void assertSerializeSimpleJob() {
- TaskInfoData actual = new TaskInfoData(shardingContexts,
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job"));
+ TaskInfoData actual = new TaskInfoData(shardingContexts,
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job").toCloudJobConfiguration());
assertSerialize(SerializationUtils.deserialize(actual.serialize()));
}
@@ -47,7 +47,7 @@ public final class TaskInfoDataTest {
@Test
public void assertSerializeScriptJob() {
- TaskInfoData actual = new TaskInfoData(shardingContexts,
CloudJobConfigurationBuilder.createScriptCloudJobConfiguration("test_job"));
+ TaskInfoData actual = new TaskInfoData(shardingContexts,
CloudJobConfigurationBuilder.createScriptCloudJobConfiguration("test_job").toCloudJobConfiguration());
assertSerialize(SerializationUtils.deserialize(actual.serialize()));
}
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskLaunchScheduledServiceTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskLaunchScheduledServiceTest.java
index 212662d..bd682c5 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskLaunchScheduledServiceTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/mesos/TaskLaunchScheduledServiceTest.java
@@ -106,7 +106,7 @@ public final class TaskLaunchScheduledServiceTest {
@Test
public void assertRunOneIterationWithScriptJob() {
when(facadeService.getEligibleJobContext()).thenReturn(
-
Collections.singletonList(JobContext.from(CloudJobConfigurationBuilder.createScriptCloudJobConfiguration("script_job",
1), ExecutionType.READY)));
+
Collections.singletonList(JobContext.from(CloudJobConfigurationBuilder.createScriptCloudJobConfiguration("script_job",
1).toCloudJobConfiguration(), ExecutionType.READY)));
Map<String, VMAssignmentResult> vmAssignmentResultMap = new
HashMap<>();
vmAssignmentResultMap.put("rs1", new VMAssignmentResult("localhost",
Collections.singletonList(new
VMLeaseObject(OfferBuilder.createOffer("offer_0"))),
Sets.newHashSet(mockTaskAssignmentResult("script_job",
ExecutionType.READY))));
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/ProducerManagerTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/ProducerManagerTest.java
index 9242d8f..5b4a573 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/ProducerManagerTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/ProducerManagerTest.java
@@ -20,8 +20,8 @@ package
org.apache.shardingsphere.elasticjob.cloud.scheduler.producer;
import org.apache.mesos.Protos;
import org.apache.mesos.SchedulerDriver;
import org.apache.shardingsphere.elasticjob.cloud.ReflectionUtils;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobExecutionType;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.exception.AppConfigurationException;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfiguration;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.config.app.CloudAppConfigurationService;
@@ -80,9 +80,9 @@ public final class ProducerManagerTest {
private final CloudAppConfiguration appConfig =
CloudAppConfigurationBuilder.createCloudAppConfiguration("test_app");
- private final CloudJobConfiguration transientJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("transient_test_job");
+ private final CloudJobConfigurationPOJO transientJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("transient_test_job");
- private final CloudJobConfiguration daemonJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("daemon_test_job",
CloudJobExecutionType.DAEMON);
+ private final CloudJobConfigurationPOJO daemonJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("daemon_test_job",
CloudJobExecutionType.DAEMON);
@Before
public void setUp() {
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/TransientProducerSchedulerTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/TransientProducerSchedulerTest.java
index 0779718..ce93fe2 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/TransientProducerSchedulerTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/producer/TransientProducerSchedulerTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.elasticjob.cloud.scheduler.producer;
import org.apache.shardingsphere.elasticjob.cloud.ReflectionUtils;
-import org.apache.shardingsphere.elasticjob.cloud.config.CloudJobConfiguration;
+import
org.apache.shardingsphere.elasticjob.cloud.config.pojo.CloudJobConfigurationPOJO;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.fixture.CloudJobConfigurationBuilder;
import
org.apache.shardingsphere.elasticjob.cloud.scheduler.state.ready.ReadyService;
import org.junit.Before;
@@ -49,12 +49,12 @@ public final class TransientProducerSchedulerTest {
private TransientProducerScheduler transientProducerScheduler;
- private final CloudJobConfiguration cloudJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job");
+ private final CloudJobConfigurationPOJO cloudJobConfig =
CloudJobConfigurationBuilder.createCloudJobConfiguration("test_job");
- private final JobDetail jobDetail =
JobBuilder.newJob(TransientProducerScheduler.ProducerJob.class).withIdentity(cloudJobConfig.getJobConfig().getCron()).build();
+ private final JobDetail jobDetail =
JobBuilder.newJob(TransientProducerScheduler.ProducerJob.class).withIdentity(cloudJobConfig.getCron()).build();
- private final Trigger trigger =
TriggerBuilder.newTrigger().withIdentity(cloudJobConfig.getJobConfig().getCron())
-
.withSchedule(CronScheduleBuilder.cronSchedule(cloudJobConfig.getJobConfig().getCron())
+ private final Trigger trigger =
TriggerBuilder.newTrigger().withIdentity(cloudJobConfig.getCron())
+
.withSchedule(CronScheduleBuilder.cronSchedule(cloudJobConfig.getCron())
.withMisfireHandlingInstructionDoNothing()).build();
@Before
@@ -74,7 +74,7 @@ public final class TransientProducerSchedulerTest {
@Test
public void assertDeregister() throws SchedulerException {
transientProducerScheduler.deregister(cloudJobConfig);
-
verify(scheduler).unscheduleJob(TriggerKey.triggerKey(cloudJobConfig.getJobConfig().getCron()));
+
verify(scheduler).unscheduleJob(TriggerKey.triggerKey(cloudJobConfig.getCron()));
}
@Test
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApiTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApiTest.java
index 5960f69..7749f54 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApiTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/restful/CloudJobRestfulApiTest.java
@@ -62,17 +62,15 @@ public final class CloudJobRestfulApiTest extends
AbstractCloudRestfulApiTest {
+ "description: ''\n"
+ "disabled: false\n"
+ "failover: true\n"
- + "jobErrorHandlerType: ''\n"
+ "jobExecutionType: TRANSIENT\n"
- + "jobExecutorServiceHandlerType: ''\n"
+ "jobName: test_job\n"
+ "jobParameter: ''\n"
- + "maxTimeDiffSeconds: -1\n"
+ + "maxTimeDiffSeconds: 0\n"
+ "memoryMB: 128.0\n"
+ "misfire: true\n"
- + "monitorExecution: true\n"
+ + "monitorExecution: false\n"
+ "overwrite: false\n"
- + "reconcileIntervalMinutes: 10\n"
+ + "reconcileIntervalMinutes: 0\n"
+ "shardingItemParameters: ''\n"
+ "shardingTotalCount: 10\n";
diff --git
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/ready/ReadyServiceTest.java
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/ready/ReadyServiceTest.java
index 53be431..3fb898f 100755
---
a/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/ready/ReadyServiceTest.java
+++
b/elasticjob-cloud/elasticjob-cloud-scheduler/src/test/java/org/apache/shardingsphere/elasticjob/cloud/scheduler/state/ready/ReadyServiceTest.java
@@ -204,7 +204,7 @@ public final class ReadyServiceTest {
when(runningService.isJobRunning("running_job")).thenReturn(true);
when(runningService.isJobRunning("eligible_job")).thenReturn(false);
assertThat(readyService.getAllEligibleJobContexts(Collections.singletonList(
-
JobContext.from(CloudJobConfigurationBuilder.createCloudJobConfiguration("ineligible_job"),
ExecutionType.READY))).size(), is(1));
+
JobContext.from(CloudJobConfigurationBuilder.createCloudJobConfiguration("ineligible_job").toCloudJobConfiguration(),
ExecutionType.READY))).size(), is(1));
verify(regCenter).isExisted("/state/ready");
verify(regCenter, times(1)).getChildrenKeys("/state/ready");
verify(configService).load("not_existed_job");