You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2019/02/24 01:54:04 UTC

[incubator-skywalking] branch scope-refactor updated: Step 3, make compile pass.

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch scope-refactor
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git


The following commit(s) were added to refs/heads/scope-refactor by this push:
     new c9388bf  Step 3, make compile pass.
c9388bf is described below

commit c9388bf035e94dfb86e1c48a50e19e6b06959407
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Sun Feb 24 09:53:55 2019 +0800

    Step 3, make compile pass.
---
 .../src/main/java/org/apache/skywalking/oal/tool/Main.java   |  6 ++++++
 .../apache/skywalking/oal/tool/parser/AnalysisResult.java    |  4 +++-
 .../org/apache/skywalking/oal/tool/parser/DeepAnalysis.java  | 12 ++++++------
 .../org/apache/skywalking/oal/tool/parser/OALListener.java   |  2 ++
 .../main/resources/code-templates/IndicatorImplementor.ftl   |  4 ++--
 .../apache/skywalking/oal/tool/output/FileGeneratorTest.java |  5 +++--
 .../expectedFiles/IndicatorImplementorExpected.java          |  4 ++--
 .../oap/server/core/source/DefaultScopeDefine.java           | 10 +++++-----
 .../skywalking/oap/server/core/source/ScopeDeclaration.java  |  2 +-
 .../skywalking/oap/server/core/source/ScopeDeclarations.java |  2 +-
 .../oap/server/core/source/ServiceInstanceJVMMemoryPool.java |  2 +-
 .../skywalking/oap/query/graphql/resolver/AlarmQuery.java    |  1 -
 .../istio/telemetry/provider/IstioTelemetryGRPCHandler.java  |  2 +-
 13 files changed, 33 insertions(+), 23 deletions(-)

diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/Main.java b/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/Main.java
index 2036398..3c960d7 100644
--- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/Main.java
+++ b/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/Main.java
@@ -25,10 +25,16 @@ import org.apache.skywalking.apm.util.StringUtil;
 import org.apache.skywalking.oal.tool.meta.*;
 import org.apache.skywalking.oal.tool.output.FileGenerator;
 import org.apache.skywalking.oal.tool.parser.*;
+import org.apache.skywalking.oap.server.core.annotation.AnnotationScan;
+import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
 
 public class Main {
 
     public static void main(String[] args) throws IOException, TemplateException {
+        AnnotationScan scopeScan = new AnnotationScan();
+        scopeScan.registerListener(new DefaultScopeDefine.Listener());
+        scopeScan.scan(null);
+
         String modulePath = args[0];
 
         String scriptFilePath = StringUtil.join(File.separatorChar, modulePath, "src", "main", "resources", "official_analysis.oal");
diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java b/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java
index e9165ca..716594c 100644
--- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java
+++ b/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java
@@ -34,6 +34,8 @@ public class AnalysisResult {
 
     private String sourceName;
 
+    private int sourceScopeId;
+
     private String sourceAttribute;
 
     private String aggregationFunctionName;
@@ -115,7 +117,7 @@ public class AnalysisResult {
                     serializeFields.addLongField(sourceColumn.getFieldName());
                     break;
                 default:
-                    throw new IllegalStateException("Unexpected field type [" + type + "] of sourceScopeId sourceColumn [" + sourceColumn.getFieldName() + "]");
+                    throw new IllegalStateException("Unexpected field type [" + type + "] of source sourceColumn [" + sourceColumn.getFieldName() + "]");
             }
         }
 
diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DeepAnalysis.java b/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DeepAnalysis.java
index 4b645b8..6d479a8 100644
--- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DeepAnalysis.java
+++ b/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DeepAnalysis.java
@@ -28,7 +28,7 @@ import org.apache.skywalking.oap.server.core.storage.annotation.Column;
 
 public class DeepAnalysis {
     public AnalysisResult analysis(AnalysisResult result) {
-        // 1. Set sub package name by sourceScopeId.metric
+        // 1. Set sub package name by source.metric
         result.setPackageName(result.getSourceName().toLowerCase());
 
         Class<? extends Indicator> indicatorClass = Indicators.find(result.getAggregationFunctionName());
@@ -43,12 +43,12 @@ public class DeepAnalysis {
                 FilterExpression filterExpression = new FilterExpression();
                 if ("booleanMatch".equals(expression.getExpressionType())) {
                     filterExpression.setExpressionObject("EqualMatch");
-                    filterExpression.setLeft("sourceScopeId." + ClassMethodUtil.toIsMethod(expression.getAttribute()) + "()");
+                    filterExpression.setLeft("source." + ClassMethodUtil.toIsMethod(expression.getAttribute()) + "()");
                     filterExpression.setRight(expression.getValue());
                     result.addFilterExpressions(filterExpression);
                 } else if ("stringMatch".equals(expression.getExpressionType())) {
                     filterExpression.setExpressionObject("EqualMatch");
-                    filterExpression.setLeft("sourceScopeId." + ClassMethodUtil.toGetMethod(expression.getAttribute()) + "()");
+                    filterExpression.setLeft("source." + ClassMethodUtil.toGetMethod(expression.getAttribute()) + "()");
                     filterExpression.setRight(expression.getValue());
                     result.addFilterExpressions(filterExpression);
                 } else {
@@ -86,7 +86,7 @@ public class DeepAnalysis {
             }
             Annotation annotation = parameterAnnotations[0];
             if (annotation instanceof SourceFrom) {
-                entryMethod.addArg("sourceScopeId." + ClassMethodUtil.toGetMethod(result.getSourceAttribute()) + "()");
+                entryMethod.addArg("source." + ClassMethodUtil.toGetMethod(result.getSourceAttribute()) + "()");
             } else if (annotation instanceof ConstOne) {
                 entryMethod.addArg("1");
             } else if (annotation instanceof Expression) {
@@ -95,9 +95,9 @@ public class DeepAnalysis {
                 if (result.getFuncConditionExpressions().size() == 1) {
                     ConditionExpression conditionExpression = result.getFuncConditionExpressions().get(0);
                     if ("booleanMatch".equals(conditionExpression.getExpressionType())) {
-                        entryMethod.addArg("sourceScopeId." + ClassMethodUtil.toIsMethod(conditionExpression.getAttribute()) + "()");
+                        entryMethod.addArg("source." + ClassMethodUtil.toIsMethod(conditionExpression.getAttribute()) + "()");
                     } else if ("stringMatch".equals(conditionExpression.getExpressionType())) {
-                        entryMethod.addArg("sourceScopeId." + ClassMethodUtil.toGetMethod(conditionExpression.getAttribute()) + "()");
+                        entryMethod.addArg("source." + ClassMethodUtil.toGetMethod(conditionExpression.getAttribute()) + "()");
                     } else {
                         throw new IllegalArgumentException("Entrance method:" + entranceMethod + " argument has @ExpressionArg0, but expression type is not supported");
                     }
diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java b/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java
index 590ecd6..2e585a3 100644
--- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java
+++ b/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.oal.tool.parser;
 import java.util.List;
 import org.antlr.v4.runtime.misc.NotNull;
 import org.apache.skywalking.oal.tool.grammar.*;
+import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
 
 public class OALListener extends OALParserBaseListener {
     private List<AnalysisResult> results;
@@ -46,6 +47,7 @@ public class OALListener extends OALParserBaseListener {
 
     @Override public void enterSource(OALParser.SourceContext ctx) {
         current.setSourceName(ctx.getText());
+        current.setSourceScopeId(DefaultScopeDefine.valueOf(metricNameFormat(ctx.getText())));
     }
 
     @Override
diff --git a/oap-server/generate-tool/src/main/resources/code-templates/IndicatorImplementor.ftl b/oap-server/generate-tool/src/main/resources/code-templates/IndicatorImplementor.ftl
index c3b64b3..0af3768 100644
--- a/oap-server/generate-tool/src/main/resources/code-templates/IndicatorImplementor.ftl
+++ b/oap-server/generate-tool/src/main/resources/code-templates/IndicatorImplementor.ftl
@@ -45,7 +45,7 @@ import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
  */
 @IndicatorType
 @StreamData
-@StorageEntity(name = "${tableName}", builder = ${metricName}Indicator.Builder.class, source = Scope.${sourceName})
+@StorageEntity(name = "${tableName}", builder = ${metricName}Indicator.Builder.class, sourceScopeId = ${sourceScopeId})
 public class ${metricName}Indicator extends ${indicatorClassName} implements AlarmSupported {
 
 <#list fieldsFromSource as sourceField>
@@ -172,7 +172,7 @@ public class ${metricName}Indicator extends ${indicatorClassName} implements Ala
     }
 
     @Override public AlarmMeta getAlarmMeta() {
-        return new AlarmMeta("${varName}", Scope.${sourceName}<#if (fieldsFromSource?size>0) ><#list fieldsFromSource as field><#if field.isID()>, ${field.fieldName}</#if></#list></#if>);
+        return new AlarmMeta("${varName}", ${sourceScopeId}<#if (fieldsFromSource?size>0) ><#list fieldsFromSource as field><#if field.isID()>, ${field.fieldName}</#if></#list></#if>);
     }
 
     @Override
diff --git a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java b/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java
index 25f16b9..cd7847d 100644
--- a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java
+++ b/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java
@@ -38,6 +38,7 @@ public class FileGeneratorTest {
         AnalysisResult result = new AnalysisResult();
         result.setVarName("generate_indicator");
         result.setSourceName("Service");
+        result.setSourceScopeId(1);
         result.setPackageName("service.serviceavg");
         result.setTableName("service_avg");
         result.setSourceAttribute("latency");
@@ -47,14 +48,14 @@ public class FileGeneratorTest {
 
         FilterExpression expression = new FilterExpression();
         expression.setExpressionObject("EqualMatch");
-        expression.setLeft("sourceScopeId.getName()");
+        expression.setLeft("source.getName()");
         expression.setRight("\"/service/prod/save\"");
         result.addFilterExpressions(expression);
 
         EntryMethod method = new EntryMethod();
         method.setMethodName("combine");
         method.setArgsExpressions(new LinkedList<>());
-        method.getArgsExpressions().add("sourceScopeId.getLatency()");
+        method.getArgsExpressions().add("source.getLatency()");
         method.getArgsExpressions().add("1");
         result.setEntryMethod(method);
         result.addPersistentField("summation", "summation", long.class);
diff --git a/oap-server/generate-tool/src/test/resources/expectedFiles/IndicatorImplementorExpected.java b/oap-server/generate-tool/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
index f496826..4f825c8 100644
--- a/oap-server/generate-tool/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
+++ b/oap-server/generate-tool/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
@@ -38,7 +38,7 @@ import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
  */
 @IndicatorType
 @StreamData
-@StorageEntity(name = "service_avg", builder = ServiceAvgIndicator.Builder.class, sourceScopeId = DefaultScopeDefine.Service)
+@StorageEntity(name = "service_avg", builder = ServiceAvgIndicator.Builder.class, sourceScopeId = 1)
 public class ServiceAvgIndicator extends LongAvgIndicator implements AlarmSupported {
 
     @Setter @Getter @Column(columnName = "entity_id") @IDColumn private java.lang.String entityId;
@@ -110,7 +110,7 @@ public class ServiceAvgIndicator extends LongAvgIndicator implements AlarmSuppor
     }
 
     @Override public AlarmMeta getAlarmMeta() {
-        return new AlarmMeta("generate_indicator", DefaultScopeDefine.Service, entityId);
+        return new AlarmMeta("generate_indicator", 1, entityId);
     }
 
     @Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java
index 4f40128..69257aa 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java
@@ -38,7 +38,7 @@ import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.*;
 @ScopeDeclaration(id = NETWORK_ADDRESS, name = "NetworkAddress")
 @ScopeDeclaration(id = SERVICE_INSTANCE_JVM_CPU, name = "ServiceInstanceJVMCPU")
 @ScopeDeclaration(id = SERVICE_INSTANCE_JVM_MEMORY, name = "ServiceInstanceJVMMemory")
-@ScopeDeclaration(id = SERVICE_INSTANCE_JVM_MEMORYPOOL, name = "ServiceInstanceJVMMemoryPool")
+@ScopeDeclaration(id = SERVICE_INSTANCE_JVM_MEMORY_POOL, name = "ServiceInstanceJVMMemoryPool")
 @ScopeDeclaration(id = SERVICE_INSTANCE_JVM_GC, name = "ServiceInstanceJVMGC")
 @ScopeDeclaration(id = SEGMENT, name = "Segment")
 @ScopeDeclaration(id = ALARM, name = "Alarm")
@@ -61,7 +61,7 @@ public class DefaultScopeDefine {
     public static final int NETWORK_ADDRESS = 7;
     public static final int SERVICE_INSTANCE_JVM_CPU = 8;
     public static final int SERVICE_INSTANCE_JVM_MEMORY = 9;
-    public static final int SERVICE_INSTANCE_JVM_MEMORYPOOL = 10;
+    public static final int SERVICE_INSTANCE_JVM_MEMORY_POOL = 10;
     public static final int SERVICE_INSTANCE_JVM_GC = 11;
     public static final int SEGMENT = 12;
     public static final int ALARM = 13;
@@ -74,7 +74,7 @@ public class DefaultScopeDefine {
     public static class Listener implements AnnotationListener {
 
         @Override public Class<? extends Annotation> annotation() {
-            return ScopeDeclaration.class;
+            return ScopeDeclarations.class;
         }
 
         @Override public void notify(Class originalClass) {
@@ -106,7 +106,7 @@ public class DefaultScopeDefine {
     public static String nameOf(int id) {
         String name = ID_2_NAME.get(id);
         if (name == null) {
-            throw new UnexpectedException("DefaultScopeDefine id = " + id + " not found.");
+            throw new UnexpectedException("ScopeDefine id = " + id + " not found.");
         }
         return name;
     }
@@ -114,7 +114,7 @@ public class DefaultScopeDefine {
     public static int valueOf(String name) {
         Integer id = NAME_2_ID.get(name);
         if (id == null) {
-            throw new UnexpectedException("DefaultScopeDefine name = " + name + " not found.");
+            throw new UnexpectedException("ScopeDefine name = " + name + " not found.");
         }
         return id;
     }
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDeclaration.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDeclaration.java
index d1889b4..40be762 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDeclaration.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDeclaration.java
@@ -26,7 +26,7 @@ import java.lang.annotation.*;
  * @author wusheng
  */
 @Target({ElementType.TYPE})
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.RUNTIME)
 @Repeatable(ScopeDeclarations.class)
 public @interface ScopeDeclaration {
     int id();
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDeclarations.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDeclarations.java
index 4fb706f..6f16f5a 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDeclarations.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ScopeDeclarations.java
@@ -24,7 +24,7 @@ import java.lang.annotation.*;
  * @author wusheng
  */
 @Target({ElementType.TYPE})
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.RUNTIME)
 public @interface ScopeDeclarations {
     ScopeDeclaration[] value();
 }
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java
index 5b8aa4d..877c922 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstanceJVMMemoryPool.java
@@ -25,7 +25,7 @@ import lombok.*;
  */
 public class ServiceInstanceJVMMemoryPool extends Source {
     @Override public int scope() {
-        return DefaultScopeDefine.SERVICE_INSTANCE_JVM_MEMORYPOOL;
+        return DefaultScopeDefine.SERVICE_INSTANCE_JVM_MEMORY_POOL;
     }
 
     @Override public String getEntityId() {
diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/AlarmQuery.java b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/AlarmQuery.java
index e0f8278..0fc3fc6 100644
--- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/AlarmQuery.java
+++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/AlarmQuery.java
@@ -24,7 +24,6 @@ import org.apache.skywalking.oap.query.graphql.type.*;
 import org.apache.skywalking.oap.server.core.CoreModule;
 import org.apache.skywalking.oap.server.core.query.*;
 import org.apache.skywalking.oap.server.core.query.entity.*;
-import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
 
 /**
diff --git a/oap-server/server-receiver-plugin/skywalking-istio-telemetry-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/istio/telemetry/provider/IstioTelemetryGRPCHandler.java b/oap-server/server-receiver-plugin/skywalking-istio-telemetry-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/istio/telemetry/provider/IstioTelemetryGRPCHandler.java
index 7590046..668698c 100644
--- a/oap-server/server-receiver-plugin/skywalking-istio-telemetry-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/istio/telemetry/provider/IstioTelemetryGRPCHandler.java
+++ b/oap-server/server-receiver-plugin/skywalking-istio-telemetry-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/istio/telemetry/provider/IstioTelemetryGRPCHandler.java
@@ -90,7 +90,7 @@ public class IstioTelemetryGRPCHandler extends HandleMetricServiceGrpc.HandleMet
                 int latency = Math.toIntExact(Duration.between(requestTime, responseTime).toMillis());
 
                 DetectPoint detectPoint;
-                if (reporter.equals("sourceScopeId")) {
+                if (reporter.equals("source")) {
                     detectPoint = DetectPoint.client;
                 } else {
                     detectPoint = DetectPoint.server;