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