Support new core style.
diff --git a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java
index f0312d5..450c211 100644
--- a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java
+++ b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java
@@ -30,13 +30,13 @@
case "Service":
columnList = new LinkedList<>();
// Service id;
- idColumn = new SourceColumn("id", "id", int.class, true);
+ idColumn = new SourceColumn("entityId", "entity_id", String.class, true);
columnList.add(idColumn);
return columnList;
case "ServiceInstance":
columnList = new LinkedList<>();
// Service instance id;
- idColumn = new SourceColumn("id", "id", int.class, true);
+ idColumn = new SourceColumn("entityId", "entity_id", String.class, true);
columnList.add(idColumn);
SourceColumn serviceIdColumn = new SourceColumn("serviceId", "service_id", int.class, false);
columnList.add(serviceIdColumn);
@@ -44,7 +44,7 @@
case "Endpoint":
columnList = new LinkedList<>();
// Endpoint id;
- idColumn = new SourceColumn("id", "id", int.class, true);
+ idColumn = new SourceColumn("entityId", "entity_id", String.class, true);
columnList.add(idColumn);
serviceIdColumn = new SourceColumn("serviceId", "service_id", int.class, false);
columnList.add(serviceIdColumn);
@@ -57,42 +57,37 @@
case "ServiceInstanceJVMGC":
columnList = new LinkedList<>();
// Service instance id;
- idColumn = new SourceColumn("id", "id", int.class, true);
+ idColumn = new SourceColumn("entityId", "entity_id", String.class, true);
columnList.add(idColumn);
serviceInstanceIdColumn = new SourceColumn("serviceInstanceId", "service_instance_id", int.class, false);
columnList.add(serviceInstanceIdColumn);
return columnList;
case "ServiceRelation":
columnList = new LinkedList<>();
- SourceColumn sourceService = new SourceColumn("sourceServiceId", "source_service_id", int.class, true);
+ SourceColumn sourceService = new SourceColumn("entityId", "source_service_id", String.class, true);
columnList.add(sourceService);
- SourceColumn destService = new SourceColumn("destServiceId", "dest_service_id", int.class, true);
- columnList.add(destService);
return columnList;
case "ServiceInstanceRelation":
columnList = new LinkedList<>();
+ sourceService = new SourceColumn("entityId", "entity_id", String.class, true);
+ columnList.add(sourceService);
sourceService = new SourceColumn("sourceServiceId", "source_service_id", int.class, false);
columnList.add(sourceService);
- destService = new SourceColumn("destServiceId", "dest_service_id", int.class, false);
+ SourceColumn destService = new SourceColumn("destServiceId", "destServiceId", int.class, false);
columnList.add(destService);
- SourceColumn sourceServiceInstance = new SourceColumn("sourceServiceInstanceId", "source_service_instance_id", int.class, true);
- columnList.add(sourceServiceInstance);
- SourceColumn destServiceInstance = new SourceColumn("destServiceInstanceId", "dest_service_instance_id", int.class, true);
- columnList.add(destServiceInstance);
+
return columnList;
case "EndpointRelation":
columnList = new LinkedList<>();
- SourceColumn sourceEndpointColumn = new SourceColumn("endpointId", "endpoint_id", int.class, true);
+ SourceColumn sourceEndpointColumn = new SourceColumn("entityId", "entity_id", String.class, true);
columnList.add(sourceEndpointColumn);
- SourceColumn childEndpointColumne = new SourceColumn("childEndpointId", "child_endpoint_id", int.class, true);
- columnList.add(childEndpointColumne);
sourceService = new SourceColumn("serviceId", "service_id", int.class, false);
columnList.add(sourceService);
destService = new SourceColumn("childServiceId", "child_service_id", int.class, false);
columnList.add(destService);
- sourceServiceInstance = new SourceColumn("serviceInstanceId", "service_instance_id", int.class, false);
+ SourceColumn sourceServiceInstance = new SourceColumn("serviceInstanceId", "service_instance_id", int.class, false);
columnList.add(sourceServiceInstance);
- destServiceInstance = new SourceColumn("childServiceInstanceId", "child_service_instance_id", int.class, false);
+ SourceColumn destServiceInstance = new SourceColumn("childServiceInstanceId", "child_service_instance_id", int.class, false);
columnList.add(destServiceInstance);
return columnList;
default:
diff --git a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
index 288de69..6576b3a 100644
--- a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
+++ b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
@@ -56,7 +56,11 @@
String splitJointId = String.valueOf(getTimeBucket());
<#list fieldsFromSource as sourceField>
<#if sourceField.isID()>
+ <#if sourceField.getTypeName() == "String">
+ splitJointId += Const.ID_SPLIT + ${sourceField.fieldName};
+ <#else>
splitJointId += Const.ID_SPLIT + String.valueOf(${sourceField.fieldName});
+ </#if>
</#if>
</#list>
return splitJointId;
@@ -66,13 +70,32 @@
int result = 17;
<#list fieldsFromSource as sourceField>
<#if sourceField.isID()>
- result = 31 * result + ${sourceField.fieldName};
+ <#if sourceField.getTypeName() == "String">
+ result = 31 * result + ${sourceField.fieldName}.hashCode();
+ <#else>
+ result += Const.ID_SPLIT + ${sourceField.fieldName};
+ </#if>
</#if>
</#list>
result = 31 * result + (int)getTimeBucket();
return result;
}
+
+ @Override public int remoteHashCode() {
+ int result = 17;
+<#list fieldsFromSource as sourceField>
+ <#if sourceField.isID()>
+ <#if sourceField.getTypeName() == "String">
+ result = 31 * result + ${sourceField.fieldName}.hashCode();
+ <#else>
+ result += Const.ID_SPLIT + ${sourceField.fieldName};
+ </#if>
+ </#if>
+</#list>
+ return result;
+ }
+
@Override public boolean equals(Object obj) {
if (this == obj)
return true;
@@ -146,7 +169,7 @@
}
@Override public AlarmMeta getAlarmMeta() {
- return new AlarmMeta("${varName}", Scope.${sourceName}<#if (fieldsFromSource?size>0) >, <#list fieldsFromSource as field>${field.fieldName}<#if field_has_next>, </#if></#list></#if>);
+ return new AlarmMeta("${varName}", Scope.${sourceName}<#if (fieldsFromSource?size>0) ><#list fieldsFromSource as field><#if field.isID()>, ${field.fieldName}</#if></#list></#if>);
}
@Override