未验证 提交 b5342431 编写于 作者: J JiPeng Wang 提交者: GitHub

Merge pull request #174 from WhaleOps/function-expand-fix

[Improve] Function expansion optimization
......@@ -62,8 +62,8 @@ public class CuringGlobalParams implements CuringParamsService {
}
@Override
public String timeFunctionExtension(Integer processInstanceId, String timezone, String placeholderName) {
return timePlaceholderResolverExpandService.timeFunctionExtension(processInstanceId, timezone, placeholderName);
public String timeFunctionExtension(FunctionExpandContent functionExpandContent) {
return timePlaceholderResolverExpandService.timeFunctionExtension(functionExpandContent);
}
/**
......@@ -103,7 +103,15 @@ public class CuringGlobalParams implements CuringParamsService {
String str = "";
// whether external scaling calculation is required
if (timeFunctionNeedExpand(val)) {
str = timeFunctionExtension(processInstanceId, timezone, val);
FunctionExpandContent functionExpandContent = FunctionExpandContent
.builder()
.global(true)
.parameters(null)
.processInstanceId(processInstanceId)
.timezone(timezone)
.placeholderName(val)
.build();
str = timeFunctionExtension(functionExpandContent);
} else {
str = convertParameterPlaceholders(val, allParamMap);
}
......@@ -186,7 +194,15 @@ public class CuringGlobalParams implements CuringParamsService {
String val = property.getValue();
// whether external scaling calculation is required
if (timeFunctionNeedExpand(val)) {
val = timeFunctionExtension(taskInstance.getProcessInstanceId(), timeZone, val);
FunctionExpandContent functionExpandContent = FunctionExpandContent
.builder()
.global(false)
.parameters(JSONUtils.toJsonString(parameters))
.processInstanceId(taskInstance.getProcessInstanceId())
.timezone(timeZone)
.placeholderName(val)
.build();
val = timeFunctionExtension(functionExpandContent);
} else {
val = convertParameterPlaceholders(val, params);
}
......
......@@ -40,12 +40,10 @@ public interface CuringParamsService {
/**
* time function extension
* @param processInstanceId
* @param timezone
* @param placeholderName
* @param functionExpandContent
* @return
*/
String timeFunctionExtension(Integer processInstanceId, String timezone, String placeholderName);
String timeFunctionExtension(FunctionExpandContent functionExpandContent);
/**
* convert parameter placeholders
......
package org.apache.dolphinscheduler.service.expand;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
public class FunctionExpandContent {
private boolean global;
private String parameters;
private Integer processInstanceId;
private String timezone;
private String placeholderName;
public FunctionExpandContent(boolean global, String parameters, Integer processInstanceId,
String timezone, String placeholderName) {
this.global = global;
this.parameters = parameters;
this.processInstanceId = processInstanceId;
this.timezone = timezone;
this.placeholderName = placeholderName;
}
}
......@@ -28,8 +28,8 @@ public interface TimePlaceholderResolverExpandService {
/**
* time function extension
* @param placeholderName
* @param functionExpandContent
* @return
*/
String timeFunctionExtension(Integer processInstanceId, String timeZone, String placeholderName);
String timeFunctionExtension(FunctionExpandContent functionExpandContent);
}
......@@ -28,7 +28,7 @@ public class TimePlaceholderResolverExpandServiceImpl implements TimePlaceholder
}
@Override
public String timeFunctionExtension(Integer processInstanceId, String timeZone, String placeholderName) {
public String timeFunctionExtension(FunctionExpandContent functionExpandContent) {
return null;
}
}
......@@ -78,7 +78,7 @@ public class CuringGlobalParamsServiceTest {
@Test
public void testTimeFunctionExtension() {
String result = curingGlobalParamsService.timeFunctionExtension(1, "", placeHolderName);
String result = curingGlobalParamsService.timeFunctionExtension(new FunctionExpandContent(true, null, 1, "", placeHolderName));
Assert.assertNull(result);
}
......
......@@ -40,13 +40,13 @@ public class TimePlaceholderResolverExpandServiceTest {
public void testTimePlaceholderResolverExpandService() {
boolean checkResult = timePlaceholderResolverExpandService.timeFunctionNeedExpand(placeHolderName);
Assert.assertFalse(checkResult);
String resultString = timePlaceholderResolverExpandService.timeFunctionExtension(1, "", placeHolderName);
String resultString = timePlaceholderResolverExpandService.timeFunctionExtension(new FunctionExpandContent(true, null, 1, "", placeHolderName));
Assert.assertTrue(StringUtils.isEmpty(resultString));
boolean implCheckResult = timePlaceholderResolverExpandServiceImpl.timeFunctionNeedExpand(placeHolderName);
Assert.assertFalse(implCheckResult);
String implResultString =
timePlaceholderResolverExpandServiceImpl.timeFunctionExtension(1, "", placeHolderName);
timePlaceholderResolverExpandServiceImpl.timeFunctionExtension(new FunctionExpandContent(true, null, 1, "", placeHolderName));
Assert.assertTrue(StringUtils.isEmpty(implResultString));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册