Generate service dispatcher and add tableName.
diff --git a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java
index f7590a4..538a7f9 100644
--- a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java
+++ b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java
@@ -47,10 +47,23 @@
public void generate() throws IOException, TemplateException {
for (AnalysisResult result : results) {
generate(result, "AggregateWorker.java", (writer) -> generateAggregateWorker(result, writer));
+ generate(result, "Indicator.java", (writer) -> generateIndicatorImplementor(result, writer));
+ generate(result, "PersistentWorker.java", (writer) -> generatePersistentWorker(result, writer));
+ generate(result, "RemoteWorker.java", (writer) -> generateRemoteWorker(result, writer));
}
+ File file = new File(outputPath, "generated/service/ServiceDispatcher.java");
+ if (!file.exists()) {
+ if (!file.getParentFile().exists()) {
+ file.getParentFile().mkdirs();
+ }
+ file.createNewFile();
+ }
+ this.generateServiceDispatcher(new FileWriter(file));
}
+
+
private void generate(AnalysisResult result, String fileSuffix,
WriteWrapper writeWrapper) throws IOException, TemplateException {
File file = new File(outputPath, buildSubFolderName(result, fileSuffix));
diff --git a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java
index 69ac3c4..f800eed 100644
--- a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java
+++ b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java
@@ -30,6 +30,8 @@
public class AnalysisResult {
private String metricName;
+ private String tableName;
+
private String packageName;
private String sourceName;
diff --git a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java
index 3d73b3f..b577954 100644
--- a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java
+++ b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java
@@ -56,14 +56,15 @@
}
@Override public void exitVariable(OALParser.VariableContext ctx) {
- current.setMetricName(nameFormat(ctx.getText()));
+ current.setMetricName(metricNameFormat(ctx.getText()));
+ current.setTableName(ctx.getText().toLowerCase());
}
@Override public void enterFunctionName(OALParser.FunctionNameContext ctx) {
current.setAggregationFunctionName(ctx.getText());
}
- private String nameFormat(String source) {
+ private String metricNameFormat(String source) {
source = firstLetterUpper(source);
int idx;
while ((idx = source.indexOf("_")) > -1) {
diff --git a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
index 714efb8..e095e1d 100644
--- a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
+++ b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
@@ -37,7 +37,7 @@
</#list>
@Override public String name() {
- return ${metricName};
+ return "${tableName}";
}
@Override public String id() {
diff --git a/oal-parser/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java b/oal-parser/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java
index 9cd522b..b8d04d9 100644
--- a/oal-parser/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java
+++ b/oal-parser/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java
@@ -37,6 +37,7 @@
AnalysisResult result = new AnalysisResult();
result.setSourceName("Service");
result.setPackageName("service.serviceavg");
+ result.setTableName("service_avg");
result.setSourceAttribute("latency");
result.setMetricName("ServiceAvg");
result.setAggregationFunctionName("avg");
diff --git a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
index 6e80661..37b2323 100644
--- a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
+++ b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
@@ -37,7 +37,7 @@
@Setter @Getter @Column(columnName = "serviceInstanceId") private int serviceInstanceId;
@Override public String name() {
- return ServiceAvg;
+ return "service_avg";
}
@Override public String id() {
diff --git a/oal-parser/src/test/resources/oal_test.oal b/oal-parser/src/test/resources/oal_test.oal
index 53d727a..564cffc 100644
--- a/oal-parser/src/test/resources/oal_test.oal
+++ b/oal-parser/src/test/resources/oal_test.oal
@@ -16,4 +16,4 @@
*
*/
-ServiceAvg = from(Service.latency).avg();
\ No newline at end of file
+Service_Avg = from(Service.latency).avg();
\ No newline at end of file