in helix-core/src/main/java/org/apache/helix/task/WorkflowConfig.java [510:591]
public Builder setConfigMap(Map<String, String> cfg) {
if (cfg.containsKey(WorkflowConfigProperty.WorkflowID.name())) {
setWorkflowId(cfg.get(WorkflowConfigProperty.WorkflowID.name()));
}
if (cfg.containsKey(WorkflowConfigProperty.Expiry.name())) {
setExpiry(Long.parseLong(cfg.get(WorkflowConfigProperty.Expiry.name())));
}
if (cfg.containsKey(WorkflowConfigProperty.FailureThreshold.name())) {
setFailureThreshold(
Integer.parseInt(cfg.get(WorkflowConfigProperty.FailureThreshold.name())));
}
if (cfg.containsKey(WorkflowConfigProperty.Dag.name())) {
setJobDag(JobDag.fromJson(cfg.get(WorkflowConfigProperty.Dag.name())));
}
if (cfg.containsKey(WorkflowConfigProperty.TargetState.name())) {
setTargetState(TargetState.valueOf(cfg.get(WorkflowConfigProperty.TargetState.name())));
}
if (cfg.containsKey(WorkflowConfigProperty.Terminable.name())) {
setTerminable(Boolean.parseBoolean(cfg.get(WorkflowConfigProperty.Terminable.name())));
}
if (cfg.containsKey(WorkflowConfigProperty.ParallelJobs.name())) {
String value = cfg.get(WorkflowConfigProperty.ParallelJobs.name());
if (value == null) {
setParallelJobs(1);
} else {
setParallelJobs(Integer.parseInt(value));
}
}
if (cfg.containsKey(WorkflowConfigProperty.capacity.name())) {
int capacity = Integer.valueOf(cfg.get(WorkflowConfigProperty.capacity.name()));
if (capacity > 0) {
setCapacity(capacity);
}
}
if (cfg.containsKey(WorkflowConfigProperty.JobPurgeInterval.name())) {
long jobPurgeInterval =
Long.valueOf(cfg.get(WorkflowConfigProperty.JobPurgeInterval.name()));
if (jobPurgeInterval > 0) {
setJobPurgeInterval(jobPurgeInterval);
}
}
if (cfg.containsKey(WorkflowConfigProperty.FailureThreshold.name())) {
int threshold = Integer.valueOf(cfg.get(WorkflowConfigProperty.FailureThreshold.name()));
if (threshold >= 0) {
setFailureThreshold(threshold);
}
}
if (cfg.containsKey(ZNRecord.ENABLE_COMPRESSION_BOOLEAN_FIELD)) {
setEnableCompression(
Boolean.parseBoolean(cfg.get(ZNRecord.ENABLE_COMPRESSION_BOOLEAN_FIELD)));
}
// Parse schedule-specific configs, if they exist
ScheduleConfig scheduleConfig = parseScheduleFromConfigMap(cfg);
if (scheduleConfig != null) {
setScheduleConfig(scheduleConfig);
}
if (cfg.containsKey(WorkflowConfigProperty.WorkflowType.name())) {
setWorkFlowType(cfg.get(WorkflowConfigProperty.WorkflowType.name()));
}
if (cfg.containsKey(WorkflowConfigProperty.IsJobQueue.name())) {
setJobQueue(Boolean.parseBoolean(cfg.get(WorkflowConfigProperty.IsJobQueue.name())));
}
if (cfg.containsKey(WorkflowConfigProperty.AllowOverlapJobAssignment.name())) {
setAllowOverlapJobAssignment(
Boolean.parseBoolean(cfg.get(WorkflowConfigProperty.AllowOverlapJobAssignment.name())));
}
if (cfg.containsKey(WorkflowConfigProperty.Timeout.name())) {
setTimeout(Long.parseLong(cfg.get(WorkflowConfigProperty.Timeout.name())));
}
return this;
}