This is an automated email from the ASF dual-hosted git repository. wusheng pushed a commit to branch rt-oal in repository https://gitbox.apache.org/repos/asf/skywalking.git
commit ef5af394f92770397b4482d4b5aa214c311b3fbb Author: Wu Sheng <[email protected]> AuthorDate: Tue Jul 16 11:50:49 2019 +0800 Change OAL generator tool to runtime. Step 1. change project structure. API links and maven pom. --- .../java/org/apache/skywalking/oal/tool/Main.java | 66 -------------------- oap-server/generated-analysis/pom.xml | 70 ---------------------- .../{generate-tool-grammar => oal-grammar}/pom.xml | 3 +- .../apache/skywalking/oal/rt}/grammar/OALLexer.g4 | 2 +- .../apache/skywalking/oal/rt}/grammar/OALParser.g4 | 2 +- oap-server/{generate-tool => oal-rt}/pom.xml | 16 +---- .../org/apache/skywalking/oal/rt/OALRuntime.java | 66 ++++++++++++++++++++ .../apache/skywalking/oal/rt}/meta/MetaReader.java | 8 +-- .../skywalking/oal/rt}/meta/MetaSettings.java | 2 +- .../apache/skywalking/oal/rt}/meta/ScopeMeta.java | 4 +- .../oal/rt}/output/AllDispatcherContext.java | 2 +- .../oal/rt}/output/DispatcherContext.java | 4 +- .../skywalking/oal/rt}/output/FileGenerator.java | 4 +- .../skywalking/oal/rt}/output/WriteWrapper.java | 2 +- .../skywalking/oal/rt}/parser/AnalysisResult.java | 2 +- .../oal/rt}/parser/ConditionExpression.java | 2 +- .../skywalking/oal/rt}/parser/DataColumn.java | 4 +- .../skywalking/oal/rt}/parser/DeepAnalysis.java | 4 +- .../oal/rt}/parser/DisableCollection.java | 2 +- .../skywalking/oal/rt}/parser/EntryMethod.java | 2 +- .../oal/rt}/parser/FilterExpression.java | 2 +- .../skywalking/oal/rt}/parser/MetricsHolder.java | 2 +- .../skywalking/oal/rt}/parser/OALListener.java | 4 +- .../skywalking/oal/rt}/parser/OALScripts.java | 2 +- .../oal/rt}/parser/PersistenceColumns.java | 2 +- .../oal/rt}/parser/PersistenceField.java | 4 +- .../skywalking/oal/rt}/parser/ScriptParser.java | 15 +++-- .../skywalking/oal/rt}/parser/SourceColumn.java | 4 +- .../oal/rt}/parser/SourceColumnsFactory.java | 4 +- .../skywalking/oal/rt}/util/ClassMethodUtil.java | 2 +- .../code-templates/DisableSourceDefinition.ftl | 0 .../code-templates/DispatcherTemplate.ftl | 0 .../code-templates/MetricsImplementor.ftl | 0 .../skywalking/oal/rt}/meta/MetaReaderTest.java | 4 +- .../oal/rt}/meta/MockSourceColumnsFactory.java | 4 +- .../oal/rt}/output/FileGeneratorTest.java | 6 +- .../oal/rt}/parser/DeepAnalysisTest.java | 4 +- .../oal/rt}/parser/ScriptParserTest.java | 6 +- .../expectedFiles/MetricsImplementorExpected.java | 0 .../expectedFiles/ServiceDispatcherExpected.java | 0 .../src/test/resources/oal_test.oal | 0 .../src/test/resources/scope-meta.yml | 0 oap-server/pom.xml | 18 +++++- .../oap/server/core/CoreModuleProvider.java | 13 +++- .../oap/server/core/annotation/AnnotationScan.java | 19 ++++-- .../oap/server/core/oal/rt/OALEngine.java} | 16 ++--- .../oap/server/core/oal/rt/OALEngineLoader.java | 50 ++++++++++++++++ .../oap/server/core/source/DefaultScopeDefine.java | 2 +- oap-server/server-starter/pom.xml | 13 ++-- .../server-starter/src/main/assembly/assembly.xml | 1 + .../src/main/resources/official_analysis.oal | 0 .../src/main/resources/scope-meta.yml} | 0 pom.xml | 2 +- 53 files changed, 228 insertions(+), 238 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 deleted file mode 100644 index 04a48c9..0000000 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/Main.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * 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.skywalking.oal.tool; - -import freemarker.template.TemplateException; -import java.io.*; -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"); - String outputPath = StringUtil.join(File.separatorChar, modulePath, "..", "generated-analysis", "target", "generated-sources", "oal", - "org", "apache", "skywalking", "oap", "server", "core", "analysis"); - String metaFilePath = StringUtil.join(File.separatorChar, modulePath, "src", "main", "resources", "generator-scope-meta.yml"); - - MetricsHolder.init(); - - File scriptFile = new File(scriptFilePath); - if (!scriptFile.exists()) { - throw new IllegalArgumentException("OAL script file [" + scriptFilePath + "] doesn't exist"); - } - - File metaFile = new File(metaFilePath); - if (!metaFile.exists()) { - throw new IllegalArgumentException("Generator meta file [" + metaFilePath + "] doesn't exist"); - } - - MetaReader reader = new MetaReader(); - MetaSettings metaSettings = reader.read(new FileInputStream(metaFile)); - SourceColumnsFactory.setSettings(metaSettings); - - ScriptParser scriptParser = ScriptParser.createFromFile(scriptFilePath); - OALScripts oalScripts = scriptParser.parse(); - - FileGenerator generator = new FileGenerator(oalScripts, outputPath); - generator.generate(); - } -} diff --git a/oap-server/generated-analysis/pom.xml b/oap-server/generated-analysis/pom.xml deleted file mode 100644 index 63265e3..0000000 --- a/oap-server/generated-analysis/pom.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ 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. - ~ - --> - -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <parent> - <artifactId>oap-server</artifactId> - <groupId>org.apache.skywalking</groupId> - <version>6.3.0-SNAPSHOT</version> - </parent> - <modelVersion>4.0.0</modelVersion> - - <artifactId>generated-analysis</artifactId> - - <dependencies> - <dependency> - <groupId>org.apache.skywalking</groupId> - <artifactId>server-core</artifactId> - <version>${project.version}</version> - </dependency> - <!-- This dependency will be excluded in starter pom.xml --> - <!-- Use default scope because `org.apache.skywalking.oal.tool.Main` in this lib, only this could make code generate tool works --> - <dependency> - <groupId>org.apache.skywalking</groupId> - <artifactId>generate-tool</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - - - <build> - <sourceDirectory>target/generated-sources/oal</sourceDirectory> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <version>${exec-maven-plugin.version}</version> - <executions> - <execution> - <phase>generate-sources</phase> - <goals> - <goal>java</goal> - </goals> - <configuration> - <mainClass>org.apache.skywalking.oal.tool.Main</mainClass> - <arguments> - <argument>${project.basedir}</argument> - </arguments> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> \ No newline at end of file diff --git a/oap-server/generate-tool-grammar/pom.xml b/oap-server/oal-grammar/pom.xml similarity index 95% rename from oap-server/generate-tool-grammar/pom.xml rename to oap-server/oal-grammar/pom.xml index caf196d..3c7408f 100644 --- a/oap-server/generate-tool-grammar/pom.xml +++ b/oap-server/oal-grammar/pom.xml @@ -25,13 +25,12 @@ </parent> <modelVersion>4.0.0</modelVersion> - <artifactId>generate-tool-grammar</artifactId> + <artifactId>oal-grammar</artifactId> <dependencies> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr4</artifactId> - <version>4.7.1</version> </dependency> </dependencies> diff --git a/oap-server/generate-tool-grammar/src/main/antlr4/org/apache/skywalking/oal/tool/grammar/OALLexer.g4 b/oap-server/oal-grammar/src/main/antlr4/org/apache/skywalking/oal/rt/grammar/OALLexer.g4 similarity index 97% rename from oap-server/generate-tool-grammar/src/main/antlr4/org/apache/skywalking/oal/tool/grammar/OALLexer.g4 rename to oap-server/oal-grammar/src/main/antlr4/org/apache/skywalking/oal/rt/grammar/OALLexer.g4 index 8ae21e2..7ab88fc 100644 --- a/oap-server/generate-tool-grammar/src/main/antlr4/org/apache/skywalking/oal/tool/grammar/OALLexer.g4 +++ b/oap-server/oal-grammar/src/main/antlr4/org/apache/skywalking/oal/rt/grammar/OALLexer.g4 @@ -20,7 +20,7 @@ // Observability Analysis Language lexer lexer grammar OALLexer; -@Header {package org.apache.skywalking.oal.tool.grammar;} +@Header {package org.apache.skywalking.oal.rt.grammar;} // Keywords diff --git a/oap-server/generate-tool-grammar/src/main/antlr4/org/apache/skywalking/oal/tool/grammar/OALParser.g4 b/oap-server/oal-grammar/src/main/antlr4/org/apache/skywalking/oal/rt/grammar/OALParser.g4 similarity index 98% rename from oap-server/generate-tool-grammar/src/main/antlr4/org/apache/skywalking/oal/tool/grammar/OALParser.g4 rename to oap-server/oal-grammar/src/main/antlr4/org/apache/skywalking/oal/rt/grammar/OALParser.g4 index 79127e4..a7103f3 100644 --- a/oap-server/generate-tool-grammar/src/main/antlr4/org/apache/skywalking/oal/tool/grammar/OALParser.g4 +++ b/oap-server/oal-grammar/src/main/antlr4/org/apache/skywalking/oal/rt/grammar/OALParser.g4 @@ -18,7 +18,7 @@ parser grammar OALParser; -@Header {package org.apache.skywalking.oal.tool.grammar;} +@Header {package org.apache.skywalking.oal.rt.grammar;} options { tokenVocab=OALLexer; } diff --git a/oap-server/generate-tool/pom.xml b/oap-server/oal-rt/pom.xml similarity index 78% rename from oap-server/generate-tool/pom.xml rename to oap-server/oal-rt/pom.xml index 46251c3..409347e 100644 --- a/oap-server/generate-tool/pom.xml +++ b/oap-server/oal-rt/pom.xml @@ -25,7 +25,7 @@ </parent> <modelVersion>4.0.0</modelVersion> - <artifactId>generate-tool</artifactId> + <artifactId>oal-rt</artifactId> <dependencies> <dependency> @@ -35,28 +35,16 @@ </dependency> <dependency> <groupId>org.apache.skywalking</groupId> - <artifactId>generate-tool-grammar</artifactId> + <artifactId>oal-grammar</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr4</artifactId> - <version>4.7.1</version> - </dependency> - <dependency> - <groupId>commons-cli</groupId> - <artifactId>commons-cli</artifactId> - <version>1.4</version> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>1.18.0</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> - <version>2.3.28</version> </dependency> </dependencies> </project> \ No newline at end of file diff --git a/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/OALRuntime.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/OALRuntime.java new file mode 100644 index 0000000..0511120 --- /dev/null +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/OALRuntime.java @@ -0,0 +1,66 @@ +/* + * 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.skywalking.oal.rt; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.Reader; +import org.apache.skywalking.oal.rt.meta.MetaReader; +import org.apache.skywalking.oal.rt.meta.MetaSettings; +import org.apache.skywalking.oal.rt.parser.OALScripts; +import org.apache.skywalking.oal.rt.parser.ScriptParser; +import org.apache.skywalking.oal.rt.parser.SourceColumnsFactory; +import org.apache.skywalking.oap.server.core.oal.rt.OALEngine; +import org.apache.skywalking.oap.server.library.module.ModuleStartException; +import org.apache.skywalking.oap.server.library.util.ResourceUtils; + +/** + * OAL Runtime is the class generation engine, which load the generated classes from OAL scrip definitions. + * + * @author wusheng + */ +public class OALRuntime implements OALEngine { + @Override public void start(ClassLoader currentClassLoader) throws ModuleStartException { + Reader read; + try { + read = ResourceUtils.read("scope-meta.yml"); + } catch (FileNotFoundException e) { + throw new ModuleStartException("Can't locate scope-meta.yml", e); + } + + MetaReader reader = new MetaReader(); + MetaSettings metaSettings = reader.read(read); + SourceColumnsFactory.setSettings(metaSettings); + + try { + read = ResourceUtils.read("official_analysis.oal"); + } catch (FileNotFoundException e) { + throw new ModuleStartException("Can't locate official_analysis.oal", e); + } + + ScriptParser scriptParser = null; + try { + scriptParser = ScriptParser.createFromFile(read); + OALScripts oalScripts = scriptParser.parse(); + } catch (IOException e) { + throw new ModuleStartException("OAL script parse analysis failure.", e); + } + + } +} diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/meta/MetaReader.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/meta/MetaReader.java similarity index 81% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/meta/MetaReader.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/meta/MetaReader.java index 8a0f9de..a8cb99c 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/meta/MetaReader.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/meta/MetaReader.java @@ -16,18 +16,18 @@ * */ -package org.apache.skywalking.oal.tool.meta; +package org.apache.skywalking.oal.rt.meta; -import java.io.InputStream; +import java.io.Reader; import org.yaml.snakeyaml.Yaml; /** * @author wusheng */ public class MetaReader { - public MetaSettings read(InputStream settingFileStream) { + public MetaSettings read(Reader reader) { Yaml yaml = new Yaml(); - MetaSettings settings = yaml.loadAs(settingFileStream, MetaSettings.class); + MetaSettings settings = yaml.loadAs(reader, MetaSettings.class); return settings; } diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/meta/MetaSettings.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/meta/MetaSettings.java similarity index 95% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/meta/MetaSettings.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/meta/MetaSettings.java index 7e5ea0a..31b3cd3 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/meta/MetaSettings.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/meta/MetaSettings.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.meta; +package org.apache.skywalking.oal.rt.meta; import java.util.List; import lombok.*; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/meta/ScopeMeta.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/meta/ScopeMeta.java similarity index 90% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/meta/ScopeMeta.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/meta/ScopeMeta.java index f027d43..7a67410 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/meta/ScopeMeta.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/meta/ScopeMeta.java @@ -16,11 +16,11 @@ * */ -package org.apache.skywalking.oal.tool.meta; +package org.apache.skywalking.oal.rt.meta; import java.util.*; import lombok.*; -import org.apache.skywalking.oal.tool.parser.SourceColumn; +import org.apache.skywalking.oal.rt.parser.SourceColumn; /** * @author wusheng diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/AllDispatcherContext.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/AllDispatcherContext.java similarity index 95% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/AllDispatcherContext.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/AllDispatcherContext.java index ac11fe7..1a406ad 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/AllDispatcherContext.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/AllDispatcherContext.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.output; +package org.apache.skywalking.oal.rt.output; import java.util.*; import lombok.*; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/DispatcherContext.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/DispatcherContext.java similarity index 90% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/DispatcherContext.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/DispatcherContext.java index b8913e3..be54da6 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/DispatcherContext.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/DispatcherContext.java @@ -16,11 +16,11 @@ * */ -package org.apache.skywalking.oal.tool.output; +package org.apache.skywalking.oal.rt.output; import java.util.*; import lombok.*; -import org.apache.skywalking.oal.tool.parser.AnalysisResult; +import org.apache.skywalking.oal.rt.parser.AnalysisResult; @Getter @Setter diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/FileGenerator.java similarity index 97% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/FileGenerator.java index deab81b..cb228b1 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/FileGenerator.java @@ -16,12 +16,12 @@ * */ -package org.apache.skywalking.oal.tool.output; +package org.apache.skywalking.oal.rt.output; import freemarker.template.*; import java.io.*; import java.util.*; -import org.apache.skywalking.oal.tool.parser.*; +import org.apache.skywalking.oal.rt.parser.*; public class FileGenerator { private List<AnalysisResult> results; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/WriteWrapper.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/WriteWrapper.java similarity index 95% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/WriteWrapper.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/WriteWrapper.java index d212040..a98a271 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/output/WriteWrapper.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/output/WriteWrapper.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.output; +package org.apache.skywalking.oal.rt.output; import freemarker.template.TemplateException; import java.io.*; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/AnalysisResult.java similarity index 99% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/AnalysisResult.java index 20a7e49..6579e27 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/AnalysisResult.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.util.*; import lombok.*; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/ConditionExpression.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/ConditionExpression.java similarity index 95% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/ConditionExpression.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/ConditionExpression.java index 9643339..e538567 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/ConditionExpression.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/ConditionExpression.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import lombok.*; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DataColumn.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/DataColumn.java similarity index 93% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DataColumn.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/DataColumn.java index 31c8188..0a2c0b8 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DataColumn.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/DataColumn.java @@ -16,10 +16,10 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import lombok.*; -import org.apache.skywalking.oal.tool.util.ClassMethodUtil; +import org.apache.skywalking.oal.rt.util.ClassMethodUtil; @Getter(AccessLevel.PUBLIC) @Setter(AccessLevel.PUBLIC) diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DeepAnalysis.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/DeepAnalysis.java similarity index 98% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DeepAnalysis.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/DeepAnalysis.java index 5645360..277d6a3 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DeepAnalysis.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/DeepAnalysis.java @@ -16,12 +16,12 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.lang.annotation.Annotation; import java.lang.reflect.*; import java.util.List; -import org.apache.skywalking.oal.tool.util.ClassMethodUtil; +import org.apache.skywalking.oal.rt.util.ClassMethodUtil; import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.*; import org.apache.skywalking.oap.server.core.storage.annotation.Column; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DisableCollection.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/DisableCollection.java similarity index 95% copy from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DisableCollection.java copy to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/DisableCollection.java index 08987c2..17539cc 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DisableCollection.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/DisableCollection.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.util.*; import lombok.Getter; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/EntryMethod.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/EntryMethod.java similarity index 96% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/EntryMethod.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/EntryMethod.java index d87ad3b..000b3e2 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/EntryMethod.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/EntryMethod.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.util.*; import lombok.*; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/FilterExpression.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/FilterExpression.java similarity index 95% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/FilterExpression.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/FilterExpression.java index 20dc471..d83973a 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/FilterExpression.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/FilterExpression.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import lombok.*; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/MetricsHolder.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/MetricsHolder.java similarity index 98% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/MetricsHolder.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/MetricsHolder.java index 56b9066..af32d0e 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/MetricsHolder.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/MetricsHolder.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import com.google.common.collect.ImmutableSet; import com.google.common.reflect.ClassPath; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/OALListener.java similarity index 98% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/OALListener.java index 8af3073..fb5b3cd 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/OALListener.java @@ -16,11 +16,11 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.util.List; import org.antlr.v4.runtime.misc.NotNull; -import org.apache.skywalking.oal.tool.grammar.*; +import org.apache.skywalking.oal.rt.grammar.*; import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine; public class OALListener extends OALParserBaseListener { diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/OALScripts.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/OALScripts.java similarity index 95% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/OALScripts.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/OALScripts.java index cfb4277..8af71be 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/OALScripts.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/OALScripts.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.util.*; import lombok.*; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/PersistenceColumns.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/PersistenceColumns.java similarity index 97% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/PersistenceColumns.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/PersistenceColumns.java index 8a78e3d..a93d7f4 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/PersistenceColumns.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/PersistenceColumns.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.util.*; diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/PersistenceField.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/PersistenceField.java similarity index 91% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/PersistenceField.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/PersistenceField.java index 5e9c254..c126ef0 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/PersistenceField.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/PersistenceField.java @@ -16,10 +16,10 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import lombok.*; -import org.apache.skywalking.oal.tool.util.ClassMethodUtil; +import org.apache.skywalking.oal.rt.util.ClassMethodUtil; @Getter(AccessLevel.PUBLIC) @Setter(AccessLevel.PUBLIC) diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/ScriptParser.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/ScriptParser.java similarity index 83% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/ScriptParser.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/ScriptParser.java index 9091fbd..70ff752 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/ScriptParser.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/ScriptParser.java @@ -16,14 +16,19 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.io.IOException; -import java.util.*; +import java.io.Reader; import org.antlr.v4.runtime.*; import org.antlr.v4.runtime.tree.*; -import org.apache.skywalking.oal.tool.grammar.*; +import org.apache.skywalking.oal.rt.grammar.*; +/** + * Script reader and parser. + * + * @author wusheng + */ public class ScriptParser { private OALLexer lexer; @@ -31,9 +36,9 @@ public class ScriptParser { } - public static ScriptParser createFromFile(String scriptFilepath) throws IOException { + public static ScriptParser createFromFile(Reader scriptReader) throws IOException { ScriptParser parser = new ScriptParser(); - parser.lexer = new OALLexer(CharStreams.fromFileName(scriptFilepath)); + parser.lexer = new OALLexer(CharStreams.fromReader(scriptReader)); return parser; } diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumn.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumn.java similarity index 97% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumn.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumn.java index 74a7706..49e1611 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumn.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumn.java @@ -16,11 +16,11 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.util.Objects; import lombok.*; -import org.apache.skywalking.oal.tool.util.ClassMethodUtil; +import org.apache.skywalking.oal.rt.util.ClassMethodUtil; @Getter(AccessLevel.PUBLIC) @Setter(AccessLevel.PUBLIC) diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumnsFactory.java similarity index 93% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumnsFactory.java index 7be457c..7955503 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/parser/SourceColumnsFactory.java @@ -16,10 +16,10 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.util.*; -import org.apache.skywalking.oal.tool.meta.*; +import org.apache.skywalking.oal.rt.meta.*; /** * @author wusheng diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/util/ClassMethodUtil.java b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/util/ClassMethodUtil.java similarity index 96% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/util/ClassMethodUtil.java rename to oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/util/ClassMethodUtil.java index 140ab63..4a880a6 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/util/ClassMethodUtil.java +++ b/oap-server/oal-rt/src/main/java/org/apache/skywalking/oal/rt/util/ClassMethodUtil.java @@ -16,7 +16,7 @@ * */ -package org.apache.skywalking.oal.tool.util; +package org.apache.skywalking.oal.rt.util; public class ClassMethodUtil { public static String toGetMethod(String attribute) { diff --git a/oap-server/generate-tool/src/main/resources/code-templates/DisableSourceDefinition.ftl b/oap-server/oal-rt/src/main/resources/code-templates/DisableSourceDefinition.ftl similarity index 100% rename from oap-server/generate-tool/src/main/resources/code-templates/DisableSourceDefinition.ftl rename to oap-server/oal-rt/src/main/resources/code-templates/DisableSourceDefinition.ftl diff --git a/oap-server/generate-tool/src/main/resources/code-templates/DispatcherTemplate.ftl b/oap-server/oal-rt/src/main/resources/code-templates/DispatcherTemplate.ftl similarity index 100% rename from oap-server/generate-tool/src/main/resources/code-templates/DispatcherTemplate.ftl rename to oap-server/oal-rt/src/main/resources/code-templates/DispatcherTemplate.ftl diff --git a/oap-server/generate-tool/src/main/resources/code-templates/MetricsImplementor.ftl b/oap-server/oal-rt/src/main/resources/code-templates/MetricsImplementor.ftl similarity index 100% rename from oap-server/generate-tool/src/main/resources/code-templates/MetricsImplementor.ftl rename to oap-server/oal-rt/src/main/resources/code-templates/MetricsImplementor.ftl diff --git a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/meta/MetaReaderTest.java b/oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/meta/MetaReaderTest.java similarity index 94% rename from oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/meta/MetaReaderTest.java rename to oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/meta/MetaReaderTest.java index bb1ac4c..17f506d 100644 --- a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/meta/MetaReaderTest.java +++ b/oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/meta/MetaReaderTest.java @@ -16,11 +16,11 @@ * */ -package org.apache.skywalking.oal.tool.meta; +package org.apache.skywalking.oal.rt.meta; import java.io.InputStream; import java.util.List; -import org.apache.skywalking.oal.tool.parser.SourceColumn; +import org.apache.skywalking.oal.rt.parser.SourceColumn; import org.junit.*; public class MetaReaderTest { diff --git a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/meta/MockSourceColumnsFactory.java b/oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/meta/MockSourceColumnsFactory.java similarity index 98% rename from oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/meta/MockSourceColumnsFactory.java rename to oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/meta/MockSourceColumnsFactory.java index 5930907..3d3c4b5 100644 --- a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/meta/MockSourceColumnsFactory.java +++ b/oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/meta/MockSourceColumnsFactory.java @@ -16,10 +16,10 @@ * */ -package org.apache.skywalking.oal.tool.meta; +package org.apache.skywalking.oal.rt.meta; import java.util.*; -import org.apache.skywalking.oal.tool.parser.SourceColumn; +import org.apache.skywalking.oal.rt.parser.SourceColumn; public class MockSourceColumnsFactory { public static List<SourceColumn> getColumns(String source) { diff --git a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java b/oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/output/FileGeneratorTest.java similarity index 97% rename from oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java rename to oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/output/FileGeneratorTest.java index 88ce38c..21069ae 100644 --- a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java +++ b/oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/output/FileGeneratorTest.java @@ -16,13 +16,13 @@ * */ -package org.apache.skywalking.oal.tool.output; +package org.apache.skywalking.oal.rt.output; import freemarker.template.TemplateException; import java.io.*; import java.util.LinkedList; -import org.apache.skywalking.oal.tool.meta.*; -import org.apache.skywalking.oal.tool.parser.*; +import org.apache.skywalking.oal.rt.meta.*; +import org.apache.skywalking.oal.rt.parser.*; import org.junit.*; public class FileGeneratorTest { diff --git a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/parser/DeepAnalysisTest.java b/oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/parser/DeepAnalysisTest.java similarity index 98% rename from oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/parser/DeepAnalysisTest.java rename to oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/parser/DeepAnalysisTest.java index 0334ae7..b4abfd2 100644 --- a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/parser/DeepAnalysisTest.java +++ b/oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/parser/DeepAnalysisTest.java @@ -16,11 +16,11 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.io.*; import java.util.List; -import org.apache.skywalking.oal.tool.meta.*; +import org.apache.skywalking.oal.rt.meta.*; import org.junit.*; public class DeepAnalysisTest { diff --git a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/parser/ScriptParserTest.java b/oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/parser/ScriptParserTest.java similarity index 98% rename from oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/parser/ScriptParserTest.java rename to oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/parser/ScriptParserTest.java index 59c3849..e27ac02 100644 --- a/oap-server/generate-tool/src/test/java/org/apache/skywalking/oal/tool/parser/ScriptParserTest.java +++ b/oap-server/oal-rt/src/test/java/org/apache/skywalking/oal/rt/parser/ScriptParserTest.java @@ -16,11 +16,11 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oal.rt.parser; import java.io.*; import java.util.List; -import org.apache.skywalking.oal.tool.meta.*; +import org.apache.skywalking.oal.rt.meta.*; import org.apache.skywalking.oap.server.core.annotation.AnnotationScan; import org.apache.skywalking.oap.server.core.source.DefaultScopeDefine; import org.junit.*; @@ -36,7 +36,7 @@ public class ScriptParserTest { AnnotationScan scopeScan = new AnnotationScan(); scopeScan.registerListener(new DefaultScopeDefine.Listener()); - scopeScan.scan(null); + scopeScan.scan(); } @AfterClass diff --git a/oap-server/generate-tool/src/test/resources/expectedFiles/MetricsImplementorExpected.java b/oap-server/oal-rt/src/test/resources/expectedFiles/MetricsImplementorExpected.java similarity index 100% rename from oap-server/generate-tool/src/test/resources/expectedFiles/MetricsImplementorExpected.java rename to oap-server/oal-rt/src/test/resources/expectedFiles/MetricsImplementorExpected.java diff --git a/oap-server/generate-tool/src/test/resources/expectedFiles/ServiceDispatcherExpected.java b/oap-server/oal-rt/src/test/resources/expectedFiles/ServiceDispatcherExpected.java similarity index 100% rename from oap-server/generate-tool/src/test/resources/expectedFiles/ServiceDispatcherExpected.java rename to oap-server/oal-rt/src/test/resources/expectedFiles/ServiceDispatcherExpected.java diff --git a/oap-server/generate-tool/src/test/resources/oal_test.oal b/oap-server/oal-rt/src/test/resources/oal_test.oal similarity index 100% rename from oap-server/generate-tool/src/test/resources/oal_test.oal rename to oap-server/oal-rt/src/test/resources/oal_test.oal diff --git a/oap-server/generate-tool/src/test/resources/scope-meta.yml b/oap-server/oal-rt/src/test/resources/scope-meta.yml similarity index 100% rename from oap-server/generate-tool/src/test/resources/scope-meta.yml rename to oap-server/oal-rt/src/test/resources/scope-meta.yml diff --git a/oap-server/pom.xml b/oap-server/pom.xml index 7c58df0..28803de 100644 --- a/oap-server/pom.xml +++ b/oap-server/pom.xml @@ -37,10 +37,9 @@ <module>server-query-plugin</module> <module>server-alarm-plugin</module> <module>server-testing</module> - <module>generated-analysis</module> - <module>generate-tool</module> + <module>oal-rt</module> <module>server-telemetry</module> - <module>generate-tool-grammar</module> + <module>oal-grammar</module> <module>exporter</module> <module>server-configuration</module> </modules> @@ -83,6 +82,8 @@ <curator-test.version>2.12.0</curator-test.version> <etcd4j.version>2.17.0</etcd4j.version> <etcd.version>v3.2.3</etcd.version> + <antlr.version>4.7.1</antlr.version> + <freemarker.version>2.3.28</freemarker.version> </properties> <dependencies> @@ -407,6 +408,17 @@ </exclusions> <scope>test</scope> </dependency> + + <dependency> + <groupId>org.antlr</groupId> + <artifactId>antlr4</artifactId> + <version>${antlr.version}</version> + </dependency> + <dependency> + <groupId>org.freemarker</groupId> + <artifactId>freemarker</artifactId> + <version>${freemarker.version}</version> + </dependency> </dependencies> </dependencyManagement> </project> diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java index 5c60cd3..4ed3648 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java @@ -25,6 +25,7 @@ import org.apache.skywalking.oap.server.core.annotation.AnnotationScan; import org.apache.skywalking.oap.server.core.cache.*; import org.apache.skywalking.oap.server.core.cluster.*; import org.apache.skywalking.oap.server.core.config.*; +import org.apache.skywalking.oap.server.core.oal.rt.OALEngineLoader; import org.apache.skywalking.oap.server.core.query.*; import org.apache.skywalking.oap.server.core.register.service.*; import org.apache.skywalking.oap.server.core.remote.*; @@ -81,10 +82,17 @@ public class CoreModuleProvider extends ModuleProvider { @Override public void prepare() throws ServiceNotProvidedException, ModuleStartException { AnnotationScan scopeScan = new AnnotationScan(); scopeScan.registerListener(new DefaultScopeDefine.Listener()); + + try { + OALEngineLoader.get().start(getClass().getClassLoader()); + } catch (Exception e) { + throw new ModuleStartException(e.getMessage(), e); + } + scopeScan.registerListener(DisableRegister.INSTANCE); scopeScan.registerListener(new DisableRegister.SingleDisableScanListener()); try { - scopeScan.scan(null); + scopeScan.scan(); } catch (IOException e) { throw new ModuleStartException(e.getMessage(), e); } @@ -158,8 +166,7 @@ public class CoreModuleProvider extends ModuleProvider { try { receiver.scan(); - annotationScan.scan(() -> { - }); + annotationScan.scan(); streamDataMapping.init(); } catch (IOException | IllegalAccessException | InstantiationException e) { throw new ModuleStartException(e.getMessage(), e); diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/annotation/AnnotationScan.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/annotation/AnnotationScan.java index 7b8aea8..da68bc5 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/annotation/AnnotationScan.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/annotation/AnnotationScan.java @@ -25,7 +25,9 @@ import java.lang.annotation.Annotation; import java.util.*; /** - * @author peng-yongsheng + * Scan the annotation, and notify the listener(s) + * + * @author peng-yongsheng, wusheng */ public class AnnotationScan { @@ -35,11 +37,20 @@ public class AnnotationScan { this.listeners = new LinkedList<>(); } + /** + * Register the callback listener + * @param listener to be called after class found w/ annotation + */ public void registerListener(AnnotationListener listener) { listeners.add(new AnnotationListenerCache(listener)); } - public void scan(Runnable callBack) throws IOException { + /** + * Begin to scan classes. + * + * @throws IOException + */ + public void scan() throws IOException { ClassPath classpath = ClassPath.from(this.getClass().getClassLoader()); ImmutableSet<ClassPath.ClassInfo> classes = classpath.getTopLevelClassesRecursive("org.apache.skywalking"); for (ClassPath.ClassInfo classInfo : classes) { @@ -53,10 +64,6 @@ public class AnnotationScan { } listeners.forEach(AnnotationListenerCache::complete); - - if (callBack != null) { - callBack.run(); - } } private class AnnotationListenerCache { diff --git a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DisableCollection.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/oal/rt/OALEngine.java similarity index 72% rename from oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DisableCollection.java rename to oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/oal/rt/OALEngine.java index 08987c2..cf385d7 100644 --- a/oap-server/generate-tool/src/main/java/org/apache/skywalking/oal/tool/parser/DisableCollection.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/oal/rt/OALEngine.java @@ -16,19 +16,15 @@ * */ -package org.apache.skywalking.oal.tool.parser; +package org.apache.skywalking.oap.server.core.oal.rt; -import java.util.*; -import lombok.Getter; +import org.apache.skywalking.oap.server.library.module.ModuleStartException; /** + * OALEngine defines the main entrance of the oal script engine runtime. + * * @author wusheng */ -@Getter -public class DisableCollection { - private List<String> allDisableSources = new ArrayList<>(); - - public void add(String source) { - allDisableSources.add(source); - } +public interface OALEngine { + void start(ClassLoader currentClassLoader) throws ModuleStartException; } diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/oal/rt/OALEngineLoader.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/oal/rt/OALEngineLoader.java new file mode 100644 index 0000000..a921635 --- /dev/null +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/oal/rt/OALEngineLoader.java @@ -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.skywalking.oap.server.core.oal.rt; + +import java.util.concurrent.locks.ReentrantLock; + +/** + * Load the OAL Engine runtime, because runtime module depends on core, so we have to use class::forname to locate it. + * + * @author wusheng + */ +public class OALEngineLoader { + private static volatile OALEngine ENGINE = null; + private static ReentrantLock INIT_LOCK = new ReentrantLock(); + + public static OALEngine get() throws ClassNotFoundException, InstantiationException, IllegalAccessException { + if (ENGINE == null) { + INIT_LOCK.lock(); + try { + if (ENGINE == null) { + init(); + } + } finally { + INIT_LOCK.unlock(); + } + } + return ENGINE; + } + + private static void init() throws ClassNotFoundException, IllegalAccessException, InstantiationException { + Class<?> engineRTClass = Class.forName("org.apache.skywalking.oal.rt.OALRuntime"); + ENGINE = (OALEngine)engineRTClass.newInstance(); + } +} 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 e5d5cb1..8d83b16 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 @@ -64,7 +64,7 @@ public class DefaultScopeDefine { public static final int HTTP_ACCESS_LOG = 25; /** - * Catalog of scope, the metrics processor could use this to group all generated metrics by oal tool. + * Catalog of scope, the metrics processor could use this to group all generated metrics by oal rt. */ public static final String SERVICE_CATALOG_NAME = "SERVICE"; public static final String SERVICE_INSTANCE_CATALOG_NAME = "SERVICE_INSTANCE"; diff --git a/oap-server/server-starter/pom.xml b/oap-server/server-starter/pom.xml index 89a8036..2f7fd2d 100644 --- a/oap-server/server-starter/pom.xml +++ b/oap-server/server-starter/pom.xml @@ -35,19 +35,13 @@ <version>${project.version}</version> </dependency> - <!-- generated analysis core --> + <!-- OAL runtime core --> <dependency> <groupId>org.apache.skywalking</groupId> - <artifactId>generated-analysis</artifactId> + <artifactId>oal-rt</artifactId> <version>${project.version}</version> - <exclusions> - <exclusion> - <groupId>org.apache.skywalking</groupId> - <artifactId>generate-tool</artifactId> - </exclusion> - </exclusions> </dependency> - <!-- generated analysis core --> + <!-- OAL runtime core --> <!-- cluster module --> <dependency> @@ -230,6 +224,7 @@ <exclude>component-libraries.yml</exclude> <exclude>datasource-settings.properties</exclude> <exclude>endpoint_naming_rules.properties</exclude> + <exclude>official_analysis.oal</exclude> </excludes> </configuration> </plugin> diff --git a/oap-server/server-starter/src/main/assembly/assembly.xml b/oap-server/server-starter/src/main/assembly/assembly.xml index 9f73bfe..ed116d6 100644 --- a/oap-server/server-starter/src/main/assembly/assembly.xml +++ b/oap-server/server-starter/src/main/assembly/assembly.xml @@ -46,6 +46,7 @@ <directory>src/main/resources</directory> <includes> <include>component-libraries.yml</include> + <include>official_analysis.oal</include> </includes> <outputDirectory>/config</outputDirectory> </fileSet> diff --git a/oap-server/generated-analysis/src/main/resources/official_analysis.oal b/oap-server/server-starter/src/main/resources/official_analysis.oal similarity index 100% rename from oap-server/generated-analysis/src/main/resources/official_analysis.oal rename to oap-server/server-starter/src/main/resources/official_analysis.oal diff --git a/oap-server/generated-analysis/src/main/resources/generator-scope-meta.yml b/oap-server/server-starter/src/main/resources/scope-meta.yml similarity index 100% rename from oap-server/generated-analysis/src/main/resources/generator-scope-meta.yml rename to oap-server/server-starter/src/main/resources/scope-meta.yml diff --git a/pom.xml b/pom.xml index 811866e..1dbed67 100644 --- a/pom.xml +++ b/pom.xml @@ -510,7 +510,7 @@ org/apache/skywalking/apm/network/servicemesh/**/*.java, org/apache/skywalking/apm/network/language/**/*.java, org/apache/skywalking/oap/server/core/remote/grpc/proto/*.java, - org/apache/skywalking/oal/tool/grammar/*.java, + org/apache/skywalking/oal/rt/grammar/*.java, org/apache/skywalking/oap/server/exporter/grpc/*.java, org/apache/skywalking/oap/server/configuration/service/*.java </excludes>
