Browse Source
* [Improvement][K8S] K8S task support passing context parameters to downstream task Signed-off-by: Gallardot <gallardot@apache.org> * [Improvement][K8S] K8S task support passing context parameters to downstream task Signed-off-by: Gallardot <gallardot@apache.org> * chore: update doc img Signed-off-by: Gallardot <gallardot@apache.org> * chore: update doc Signed-off-by: Gallardot <gallardot@apache.org> * chore: add UT Signed-off-by: Gallardot <gallardot@apache.org> * merge suggestion Co-authored-by: 旺阳 <wang@lqwang.net> * merge suggestion Co-authored-by: 旺阳 <wang@lqwang.net> * merge suggestion Co-authored-by: 旺阳 <wang@lqwang.net> --------- Signed-off-by: Gallardot <gallardot@apache.org> Co-authored-by: David Zollo <dailidong66@gmail.com> Co-authored-by: 旺阳 <qingwli@cisco.com> Co-authored-by: 旺阳 <wang@lqwang.net> Co-authored-by: xiangzihao <460888207@qq.com>3.2.1-prepare
Gallardot
1 year ago
committed by
GitHub
13 changed files with 161 additions and 2 deletions
After Width: | Height: | Size: 94 KiB |
@ -0,0 +1,47 @@ |
|||||||
|
/* |
||||||
|
* 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.dolphinscheduler.plugin.task.api.utils; |
||||||
|
|
||||||
|
import org.apache.dolphinscheduler.plugin.task.api.TaskConstants; |
||||||
|
|
||||||
|
import java.util.regex.Matcher; |
||||||
|
import java.util.regex.Pattern; |
||||||
|
|
||||||
|
import lombok.experimental.UtilityClass; |
||||||
|
|
||||||
|
@UtilityClass |
||||||
|
public class VarPoolUtils { |
||||||
|
|
||||||
|
static final Pattern DSVALUE_REGEX = Pattern.compile(TaskConstants.DSVALUE_REGEX); |
||||||
|
public static final String VAR_SUFFIX = ")dsVal}"; |
||||||
|
|
||||||
|
public static final String VAR_DELIMITER = "$VarPool$"; |
||||||
|
/** |
||||||
|
* find var pool |
||||||
|
* |
||||||
|
* @param line |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public static String findVarPool(String line) { |
||||||
|
Matcher matcher = DSVALUE_REGEX.matcher(line); |
||||||
|
if (matcher.find()) { |
||||||
|
return matcher.group(1); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
/* |
||||||
|
* 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.dolphinscheduler.plugin.task.api.utils; |
||||||
|
|
||||||
|
import java.util.HashMap; |
||||||
|
|
||||||
|
import org.junit.jupiter.api.Assertions; |
||||||
|
import org.junit.jupiter.api.Test; |
||||||
|
|
||||||
|
class VarPoolUtilsTest { |
||||||
|
|
||||||
|
@Test |
||||||
|
void findVar() { |
||||||
|
HashMap<String, String> tcs = new HashMap<>(); |
||||||
|
tcs.put("${(set_val=123)dsVal}", "set_val=123"); |
||||||
|
tcs.put("1970-01-01 ${(set_val=123)dsVal}", "set_val=123"); |
||||||
|
tcs.put("1970-01-01 ${(set_val=123)dsVal}123", null); |
||||||
|
tcs.put("${(set_val=123}dsVal", null); |
||||||
|
tcs.put("#{(set_val=123)dsVal}", "set_val=123"); |
||||||
|
tcs.put("1970-01-01 #{(set_val=123)dsVal}", "set_val=123"); |
||||||
|
tcs.put("1970-01-01 #{(set_val=123)dsVal}123", null); |
||||||
|
tcs.put("#{(set_val=123)dsVal}123", null); |
||||||
|
tcs.put("#{(set_val=123dsVal}", null); |
||||||
|
|
||||||
|
tcs.put("${(set_val=123)dsVal}${(set_val=456)dsVal}", "set_val=123)dsVal}${(set_val=456"); |
||||||
|
tcs.put("1970-01-01$#{(set_val=123)dsVal}", "set_val=123"); |
||||||
|
tcs.put("1970-01-01{(set_val=123)dsVal}123", null); |
||||||
|
tcs.put("1970-01-01$#{(${(set_val=123)})dsVal}", "${(set_val=123)}"); |
||||||
|
tcs.put("1970-01-01$#{(${(set_val=123\\)})dsVal}", "${(set_val=123\\)}"); |
||||||
|
|
||||||
|
for (String tc : tcs.keySet()) { |
||||||
|
Assertions.assertEquals(tcs.get(tc), VarPoolUtils.findVarPool(tc)); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue