This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch dev-1.4.0
in repository https://gitbox.apache.org/repos/asf/linkis.git
The following commit(s) were added to refs/heads/dev-1.4.0 by this push:
new 1e25954be support map string value (#4409)
1e25954be is described below
commit 1e25954be41238d7773136a3a4752223f92f0d72
Author: GuoPhilipse <[email protected]>
AuthorDate: Mon Mar 27 19:59:51 2023 +0800
support map string value (#4409)
---
.../label/entity/engine/EngineTypeLabel.java | 30 +++++++++++-----
.../label/entity/engine/EngineTypeLabelTest.java | 42 +++++++++++++++-------
2 files changed, 51 insertions(+), 21 deletions(-)
diff --git
a/linkis-computation-governance/linkis-manager/linkis-label-common/src/main/java/org/apache/linkis/manager/label/entity/engine/EngineTypeLabel.java
b/linkis-computation-governance/linkis-manager/linkis-label-common/src/main/java/org/apache/linkis/manager/label/entity/engine/EngineTypeLabel.java
index 912f6c9f9..d588515b9 100644
---
a/linkis-computation-governance/linkis-manager/linkis-label-common/src/main/java/org/apache/linkis/manager/label/entity/engine/EngineTypeLabel.java
+++
b/linkis-computation-governance/linkis-manager/linkis-label-common/src/main/java/org/apache/linkis/manager/label/entity/engine/EngineTypeLabel.java
@@ -23,6 +23,7 @@ import org.apache.linkis.manager.label.entity.EngineNodeLabel;
import org.apache.linkis.manager.label.entity.Feature;
import org.apache.linkis.manager.label.entity.GenericLabel;
import org.apache.linkis.manager.label.entity.annon.ValueSerialNum;
+import org.apache.linkis.manager.label.utils.LabelUtils;
import org.apache.commons.lang3.StringUtils;
@@ -77,16 +78,27 @@ public class EngineTypeLabel extends GenericLabel
implements EngineNodeLabel, EM
@Override
protected void setStringValue(String stringValue) {
- String version;
- String engineType = stringValue.split("-")[0];
-
- if (engineType.equals("*")) {
- version = stringValue.replaceFirst("[" + engineType + "]-", "");
+ if (StringUtils.isNotBlank(stringValue)) {
+ HashMap<String, String> valueMap =
LabelUtils.Jackson.fromJson(stringValue, HashMap.class);
+ if (valueMap == null) {
+ String version;
+ String engineType = stringValue.split("-")[0];
+
+ if (engineType.equals("*")) {
+ version = stringValue.replaceFirst("[" + engineType + "]-", "");
+ } else {
+ version = stringValue.replaceFirst(engineType + "-", "");
+ }
+
+ setEngineType(engineType);
+ setVersion(version);
+ } else {
+ setEngineType(valueMap.get("engineType"));
+ setVersion(valueMap.get("version"));
+ }
} else {
- version = stringValue.replaceFirst(engineType + "-", "");
+ setEngineType("*");
+ setVersion("*");
}
-
- setEngineType(engineType);
- setVersion(version);
}
}
diff --git
a/linkis-computation-governance/linkis-manager/linkis-label-common/src/test/java/org/apache/linkis/manager/label/entity/engine/EngineTypeLabelTest.java
b/linkis-computation-governance/linkis-manager/linkis-label-common/src/test/java/org/apache/linkis/manager/label/entity/engine/EngineTypeLabelTest.java
index cc4171b43..e429a6092 100644
---
a/linkis-computation-governance/linkis-manager/linkis-label-common/src/test/java/org/apache/linkis/manager/label/entity/engine/EngineTypeLabelTest.java
+++
b/linkis-computation-governance/linkis-manager/linkis-label-common/src/test/java/org/apache/linkis/manager/label/entity/engine/EngineTypeLabelTest.java
@@ -28,20 +28,38 @@ public class EngineTypeLabelTest {
@Test
public void testSetStringValue() {
- String engineType = "hive";
- String version = "1.1.0-cdh5.12.0";
-
- String engineType1 = "*";
- String version1 = "*";
-
LabelBuilderFactory labelBuilderFactory =
LabelBuilderFactoryContext.getLabelBuilderFactory();
EngineTypeLabel engineTypeLabel =
labelBuilderFactory.createLabel(EngineTypeLabel.class);
- engineTypeLabel.setStringValue(engineType + "-" + version);
- Assertions.assertEquals(engineTypeLabel.getEngineType(), engineType);
- Assertions.assertEquals(engineTypeLabel.getVersion(), version);
- engineTypeLabel.setStringValue(engineType1 + "-" + version1);
- Assertions.assertEquals(engineTypeLabel.getEngineType(), engineType1);
- Assertions.assertEquals(engineTypeLabel.getVersion(), version1);
+ // str value
+ String hiveEngineType = "hive";
+ String hiveVersion = "1.1.0-cdh5.12.0";
+ engineTypeLabel.setStringValue(hiveEngineType + "-" + hiveVersion);
+ Assertions.assertEquals(engineTypeLabel.getEngineType(), hiveEngineType);
+ Assertions.assertEquals(engineTypeLabel.getVersion(), hiveVersion);
+
+ // any value
+ String anyEngineType = "*";
+ String anyVersion = "*";
+ engineTypeLabel.setStringValue(anyEngineType + "-" + anyVersion);
+ Assertions.assertEquals(engineTypeLabel.getEngineType(), anyEngineType);
+ Assertions.assertEquals(engineTypeLabel.getVersion(), anyVersion);
+
+ // map value
+ String mapStringValue = "{\"engineType\":\"shell\",\"version\":\"1\"}";
+ engineTypeLabel.setStringValue(mapStringValue);
+ Assertions.assertEquals(engineTypeLabel.getEngineType(), "shell");
+ Assertions.assertEquals(engineTypeLabel.getVersion(), "1");
+
+ // empty value will treat as *
+ String emptyStringValue = "";
+ engineTypeLabel.setStringValue(emptyStringValue);
+ Assertions.assertEquals(engineTypeLabel.getEngineType(), "*");
+ Assertions.assertEquals(engineTypeLabel.getVersion(), "*");
+
+ // null value will treat as *
+ engineTypeLabel.setStringValue(null);
+ Assertions.assertEquals(engineTypeLabel.getEngineType(), "*");
+ Assertions.assertEquals(engineTypeLabel.getVersion(), "*");
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]