You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kie.apache.org by ma...@apache.org on 2024/02/14 11:53:13 UTC
(incubator-kie-drools) 48/49: [DROOLS-7591] Experiment branch : migrate a new drools-lsp parser into drools - New parser is migrated in drools-drl/drools-drl-parser with org.drools.drl10.parser package - To enable the new parser, run `mvn test -PDRL10` - At the moment, we get lots of test failures especially in drools-model/drools-model-codegen and drools-test-coverage/test-compiler-integration
This is an automated email from the ASF dual-hosted git repository.
mariofusco pushed a commit to branch dev-new-parser
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git
commit fab3cf01a3404310f8eb5bf5e78b24660c34a4d0
Author: Toshiya Kobayashi <to...@gmail.com>
AuthorDate: Fri Feb 9 17:50:54 2024 +0900
[DROOLS-7591] Experiment branch : migrate a new drools-lsp parser into drools
- New parser is migrated in drools-drl/drools-drl-parser with org.drools.drl10.parser package
- To enable the new parser, run `mvn test -PDRL10`
- At the moment, we get lots of test failures especially in drools-model/drools-model-codegen and drools-test-coverage/test-compiler-integration
---
bom/drools-bom/pom.xml | 18 ++++
.../KnowledgeBuilderRulesConfigurationImpl.java | 1 -
.../java/org/drools/compiler/lang/DescrDumper.java | 3 +-
.../compiler/rule/builder/PatternBuilder.java | 3 +-
.../compiler/rule/builder/QueryElementBuilder.java | 5 +-
drools-drl/drools-drl-parser-tests/pom.xml | 81 +++++++++++++++
.../drools/drl10}/parser/DRLExprParserTest.java | 5 +-
.../org/drools/drl10}/parser/DRLParserTest.java | 8 +-
.../org/drools/drl10}/parser/DescrDumperTest.java | 5 +-
.../drools/drl10}/parser/MiscDRLParserTest.java | 3 +-
.../src/test/resources/logback-test.xml | 0
.../org/drools/drl10}/parser/Rule_with_Extends.drl | 0
.../drools/drl10}/parser/Rule_with_Metadata.drl | 0
.../drools/drl10}/parser/Rule_with_nested_LHS.drl | 0
.../org/drools/drl10}/parser/accumulate.drl | 0
.../drl10}/parser/accumulateExternalFunction.drl | 0
.../drl10}/parser/accumulateMultipleFunctions.drl | 0
.../accumulateMultipleFunctionsConstraint.drl | 0
.../org/drools/drl10}/parser/accumulateReverse.drl | 0
.../drl10}/parser/accumulate_multi_pattern.drl | 0
.../drl10}/parser/accumulate_with_bindings.drl | 0
.../drl10}/parser/accumulate_with_nested_from.drl | 0
.../org/drools/drl10}/parser/almost_empty_rule.drl | 0
.../org/drools/drl10}/parser/and_or_rule.drl | 0
.../org/drools/drl10}/parser/autofocus.drl | 0
.../org/drools/drl10}/parser/basic_binding.drl | 0
.../org/drools/drl10}/parser/bindings.drl | 0
.../drools/drl10}/parser/brackets_precedence.drl | 0
.../resources/org/drools/drl10}/parser/collect.drl | 0
.../drl10}/parser/collect_with_nested_from.drl | 0
.../resources/org/drools/drl10}/parser/comment.drl | 0
.../resources/org/drools/drl10}/parser/complex.dsl | 0
.../drl10}/parser/declaration-in-consequence.drl | 0
.../drl10}/parser/declare_type_with_fields.drl | 0
.../org/drools/drl10}/parser/empty_rule.drl | 0
.../org/drools/drl10}/parser/enumeration.drl | 0
.../drools/drl10}/parser/eol_funny_business.drl | 0
.../org/drools/drl10}/parser/escaped-string.drl | 0
.../org/drools/drl10}/parser/eval_multiple.drl | 0
.../org/drools/drl10}/parser/eval_parsing.drl | 0
.../org/drools/drl10}/parser/eval_with_newline.drl | 0
.../parser/expander_multiple_constraints.dslr | 0
.../expander_multiple_constraints_flush.dslr | 0
.../drl10}/parser/expander_spread_lines.dslr | 0
.../org/drools/drl10}/parser/extra_lhs_newline.drl | 0
.../resources/org/drools/drl10}/parser/forall.drl | 0
.../org/drools/drl10}/parser/forallwithfrom.drl | 0
.../resources/org/drools/drl10}/parser/from.drl | 0
.../org/drools/drl10}/parser/function_arrays.drl | 0
.../org/drools/drl10}/parser/functions.drl | 0
.../resources/org/drools/drl10}/parser/globals.drl | 0
.../org/drools/drl10}/parser/in_operator_test.drl | 0
.../drools/drl10}/parser/lhs_semicolon_delim.drl | 0
.../drl10}/parser/literal_bool_and_negative.drl | 0
.../drools/drl10}/parser/multiple_constraints.dsl | 0
.../org/drools/drl10}/parser/multiple_rules.drl | 0
.../drl10}/parser/nested_conditional_elements.drl | 0
.../resources/org/drools/drl10}/parser/no-loop.drl | 0
.../drl10}/parser/not_exist_with_brackets.drl | 0
.../drools/drl10}/parser/not_with_constraint.drl | 0
.../drools/drl10}/parser/notin_operator_test.drl | 0
.../org/drools/drl10}/parser/or_binding.drl | 0
.../drools/drl10}/parser/or_binding_complex.drl | 0
.../drl10}/parser/or_binding_with_brackets.drl | 0
.../resources/org/drools/drl10}/parser/or_ce.drl | 0
.../org/drools/drl10}/parser/or_nesting.drl | 0
.../drools/drl10}/parser/package_attributes.drl | 0
.../drools/drl10}/parser/pluggable_operators.drl | 0
.../drools/drl10}/parser/qualified_classname.drl | 0
.../org/drools/drl10}/parser/query_and_rule.drl | 0
.../drl10}/parser/quoted_string_name_rule.drl | 0
.../org/drools/drl10}/parser/restrictions_test.drl | 0
.../org/drools/drl10}/parser/rule_attributes.drl | 0
.../org/drools/drl10}/parser/rule_attributes2.drl | 0
.../drools/drl10}/parser/rule_attributes_alt.drl | 0
.../drl10}/parser/rule_calendars_attribute.drl | 0
.../drl10}/parser/rule_calendars_attribute2.drl | 0
.../drl10}/parser/rule_duration_expression.drl | 0
.../drl10}/parser/rule_enabled_expression.drl | 0
.../drl10}/parser/rule_names_number_prefix.drl | 0
.../org/drools/drl10}/parser/rule_not.drl | 0
.../org/drools/drl10}/parser/ruleflowgroup.drl | 0
.../org/drools/drl10}/parser/semicolon.drl | 0
.../org/drools/drl10}/parser/simple_query.drl | 0
.../org/drools/drl10}/parser/simple_rule.drl | 0
.../drools/drl10}/parser/soundslike_operator.drl | 0
.../drools/drl10}/parser/statement_ordering_1.drl | 0
.../drools/drl10}/parser/ternary_expression.drl | 0
.../test_CommentLineNumbersInConsequence.drl | 0
.../parser/test_ComplexChainedCallWithFrom.drl | 0
.../org/drools/drl10}/parser/test_EmptyPattern.drl | 0
.../org/drools/drl10}/parser/test_EndPosition.drl | 0
.../drools/drl10}/parser/test_FunctionImport.drl | 0
.../parser/test_SimpleAccessorArgWithFrom.drl | 0
.../drl10}/parser/test_SimpleAccessorWithFrom.drl | 0
.../parser/test_SimpleFunctionCallWithFrom.drl | 0
.../parser/test_SimpleMethodCallWithFrom.drl | 0
.../org/drools/drl10}/parser/type_with_meta.drl | 0
.../org/drools/drl10}/parser/with_eval.drl | 0
.../org/drools/drl10}/parser/with_predicate.drl | 0
.../org/drools/drl10}/parser/with_retval.drl | 0
drools-drl/drools-drl-parser/pom.xml | 45 ++++++++
.../org/drools/drl10}/parser/DRL6Expressions.g4 | 0
.../antlr4/org/drools/drl10}/parser/DRLLexer.g4 | 0
.../antlr4/org/drools/drl10}/parser/DRLParser.g4 | 0
.../antlr4/org/drools/drl10}/parser/JavaLexer.g4 | 0
.../antlr4/org/drools/drl10}/parser/JavaParser.g4 | 0
.../java/org/drools/drl/parser/DRLFactory.java | 3 +
.../{DrlExprParser.java => Drl6ExprParser.java} | 8 +-
.../java/org/drools/drl/parser/DrlExprParser.java | 56 ++--------
.../drools/drl/parser/DrlExprParserFactory.java | 20 ++++
.../main/java/org/drools/drl/parser/DrlParser.java | 35 ++++++-
.../org/drools/drl/parser/lang/DRL10Lexer.java | 42 +++-----
.../org/drools/drl10/parser/DRLErrorListener.java | 45 ++++----
.../org/drools/drl10}/parser/DRLExpressions.java | 2 +-
.../org/drools/drl10}/parser/DRLParserError.java | 20 +++-
.../drools/drl10/parser/DRLParserException.java | 30 ++++++
.../org/drools/drl10}/parser/DRLParserHelper.java | 20 +++-
.../org/drools/drl10}/parser/DRLParserWrapper.java | 22 +++-
.../org/drools/drl10}/parser/DRLVisitorImpl.java | 31 ++++--
.../org/drools/drl10/parser}/Developer_Notes.md | 0
.../org/drools/drl10/parser/Drl10ExprParser.java} | 9 +-
.../parser/DroolsParserExceptionFactory.java | 2 +-
.../org/drools/drl10}/parser/ParserHelper.java | 4 +-
.../drools/drl10}/parser/ParserStringUtils.java | 20 +++-
drools-drl/drools-drl10-parser/.gitignore | 18 ----
drools-drl/drools-drl10-parser/pom.xml | 115 ---------------------
.../java/org/drools/parser/DRLErrorListener.java | 31 ------
.../java/org/drools/parser/DRLParserException.java | 12 ---
drools-drl/pom.xml | 1 +
.../test-compiler-integration/pom.xml | 21 ++++
.../mvel/compiler/lang/DRLExprParserTest.java | 3 +-
.../drools/mvel/compiler/lang/DescrDumperTest.java | 3 +-
.../mvel/integrationtests/AlphaNodeTest.java | 4 +-
.../visitor/ExprConstraintDescrVisitor.java | 3 +-
.../internal/builder/conf/LanguageLevelOption.java | 2 +-
pom.xml | 22 ++++
137 files changed, 458 insertions(+), 323 deletions(-)
diff --git a/bom/drools-bom/pom.xml b/bom/drools-bom/pom.xml
index 51378329dd..76a2bd10db 100644
--- a/bom/drools-bom/pom.xml
+++ b/bom/drools-bom/pom.xml
@@ -767,6 +767,24 @@
<type>test-jar</type>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-drl10-parser</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-drl10-parser</artifactId>
+ <version>${project.version}</version>
+ <classifier>sources</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-drl10-parser</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
diff --git a/drools-compiler/src/main/java/org/drools/compiler/builder/impl/KnowledgeBuilderRulesConfigurationImpl.java b/drools-compiler/src/main/java/org/drools/compiler/builder/impl/KnowledgeBuilderRulesConfigurationImpl.java
index 0c90262aa2..48e3e4971f 100644
--- a/drools-compiler/src/main/java/org/drools/compiler/builder/impl/KnowledgeBuilderRulesConfigurationImpl.java
+++ b/drools-compiler/src/main/java/org/drools/compiler/builder/impl/KnowledgeBuilderRulesConfigurationImpl.java
@@ -127,7 +127,6 @@ public class KnowledgeBuilderRulesConfigurationImpl extends BaseConfiguration<Kn
}
private void init() {
-
setProperty( TrimCellsInDTableOption.PROPERTY_NAME,
getPropertyValue(TrimCellsInDTableOption.PROPERTY_NAME,
"true"));
diff --git a/drools-compiler/src/main/java/org/drools/compiler/lang/DescrDumper.java b/drools-compiler/src/main/java/org/drools/compiler/lang/DescrDumper.java
index b3f40adbb8..5cc792e61d 100644
--- a/drools-compiler/src/main/java/org/drools/compiler/lang/DescrDumper.java
+++ b/drools-compiler/src/main/java/org/drools/compiler/lang/DescrDumper.java
@@ -34,6 +34,7 @@ import org.drools.drl.ast.descr.ExprConstraintDescr;
import org.drools.drl.ast.descr.OperatorDescr;
import org.drools.drl.ast.descr.RelationalExprDescr;
import org.drools.drl.parser.DrlExprParser;
+import org.drools.drl.parser.DrlExprParserFactory;
import org.drools.drl.parser.impl.Operator;
import org.kie.internal.builder.conf.LanguageLevelOption;
@@ -137,7 +138,7 @@ public class DescrDumper extends ReflectiveVisitor implements ExpressionRewriter
}
private void processConstraint(StringBuilder sbuilder, ExprConstraintDescr base, boolean isInsideRelCons, DumperContext context) {
- DrlExprParser expr = new DrlExprParser( context.getRuleContext().getConfiguration().getOption(LanguageLevelOption.KEY));
+ DrlExprParser expr = DrlExprParserFactory.getDrlExrParser(context.getRuleContext().getConfiguration().getOption(LanguageLevelOption.KEY));
ConstraintConnectiveDescr result = expr.parse( base.getExpression() );
if ( result.getDescrs().size() == 1 ) {
dump( sbuilder,
diff --git a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/PatternBuilder.java b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/PatternBuilder.java
index fdd709abcd..bc91077120 100644
--- a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/PatternBuilder.java
+++ b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/PatternBuilder.java
@@ -98,6 +98,7 @@ import org.drools.drl.ast.descr.RelationalExprDescr;
import org.drools.drl.ast.descr.ReturnValueRestrictionDescr;
import org.drools.drl.ast.descr.RuleDescr;
import org.drools.drl.parser.DrlExprParser;
+import org.drools.drl.parser.DrlExprParserFactory;
import org.drools.drl.parser.DroolsParserException;
import org.drools.util.ClassUtils;
import org.drools.util.StringUtils;
@@ -1802,7 +1803,7 @@ public class PatternBuilder implements RuleConditionBuilder<PatternDescr> {
final PatternDescr patternDescr,
final BaseDescr original,
final String expression) {
- DrlExprParser parser = new DrlExprParser(context.getConfiguration().getOption(LanguageLevelOption.KEY));
+ DrlExprParser parser = DrlExprParserFactory.getDrlExrParser(context.getConfiguration().getOption(LanguageLevelOption.KEY));
ConstraintConnectiveDescr result = parser.parse(normalizeEval(expression));
result.setResource(patternDescr.getResource());
result.copyLocation(original);
diff --git a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/QueryElementBuilder.java b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/QueryElementBuilder.java
index 9c20dd4f2f..3889990858 100644
--- a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/QueryElementBuilder.java
+++ b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/QueryElementBuilder.java
@@ -46,6 +46,7 @@ import org.drools.drl.ast.descr.ConstraintConnectiveDescr;
import org.drools.drl.ast.descr.ExprConstraintDescr;
import org.drools.drl.ast.descr.PatternDescr;
import org.drools.drl.parser.DrlExprParser;
+import org.drools.drl.parser.DrlExprParserFactory;
import org.drools.drl.parser.DroolsParserException;
import org.drools.util.ClassUtils;
import org.drools.util.StringUtils;
@@ -264,7 +265,7 @@ public class QueryElementBuilder
} else {
// it must be a literal/expression
// it's an expression and thus an input
- DrlExprParser parser = new DrlExprParser( context.getConfiguration().getOption(LanguageLevelOption.KEY));
+ DrlExprParser parser = DrlExprParserFactory.getDrlExrParser(context.getConfiguration().getOption(LanguageLevelOption.KEY));
ConstraintConnectiveDescr bresult = parser.parse( bind.getExpression() );
if ( parser.hasErrors() ) {
for ( DroolsParserException error : parser.getErrors() ) {
@@ -395,7 +396,7 @@ public class QueryElementBuilder
private ConstraintConnectiveDescr parseExpression( final RuleBuildContext context,
final PatternDescr patternDescr,
final String expression ) {
- DrlExprParser parser = new DrlExprParser( context.getConfiguration().getOption(LanguageLevelOption.KEY));
+ DrlExprParser parser = DrlExprParserFactory.getDrlExrParser( context.getConfiguration().getOption(LanguageLevelOption.KEY));
ConstraintConnectiveDescr result = parser.parse( expression );
if ( result == null || parser.hasErrors() ) {
for ( DroolsParserException error : parser.getErrors() ) {
diff --git a/drools-drl/drools-drl-parser-tests/pom.xml b/drools-drl/drools-drl-parser-tests/pom.xml
new file mode 100644
index 0000000000..7e0c4d5f88
--- /dev/null
+++ b/drools-drl/drools-drl-parser-tests/pom.xml
@@ -0,0 +1,81 @@
+<?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/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-drl</artifactId>
+ <version>999-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.drools</groupId>
+ <artifactId>drools-drl-parser-tests</artifactId>
+
+ <name>Drools :: DRL :: Parser :: Tests</name>
+
+ <properties>
+ <java.module.name>org.drools.drl.parser.tests</java.module.name>
+ </properties>
+
+ <dependencies>
+ <!-- Tests -->
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-drl-parser</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-compiler</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-mvel</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLExprParserTest.java b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLExprParserTest.java
similarity index 98%
rename from drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLExprParserTest.java
rename to drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLExprParserTest.java
index f233439f36..1f27a9c861 100644
--- a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLExprParserTest.java
+++ b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLExprParserTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.drools.parser;
+package org.drools.drl10.parser;
import static org.assertj.core.api.Assertions.assertThat;
@@ -25,6 +25,7 @@ import org.drools.drl.ast.descr.BindingDescr;
import org.drools.drl.ast.descr.ConnectiveType;
import org.drools.drl.ast.descr.ConstraintConnectiveDescr;
import org.drools.drl.ast.descr.RelationalExprDescr;
+import org.drools.drl.parser.DrlExprParser;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -40,7 +41,7 @@ public class DRLExprParserTest {
@BeforeEach
public void setUp() throws Exception {
- this.parser = new DrlExprParser(LanguageLevelOption.DRL6);
+ this.parser = new Drl10ExprParser(LanguageLevelOption.DRL6);
}
@AfterEach
diff --git a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLParserTest.java b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLParserTest.java
similarity index 94%
rename from drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLParserTest.java
rename to drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLParserTest.java
index 83a8b1f5d2..35c4638ebc 100644
--- a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLParserTest.java
+++ b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLParserTest.java
@@ -1,4 +1,4 @@
-package org.drools.parser;
+package org.drools.drl10.parser;
import java.util.List;
@@ -13,9 +13,9 @@ import org.drools.drl.ast.descr.RuleDescr;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.drools.parser.DRLParserHelper.computeTokenIndex;
-import static org.drools.parser.DRLParserHelper.createDrlParser;
-import static org.drools.parser.DRLParserHelper.parse;
+import static org.drools.drl10.parser.DRLParserHelper.computeTokenIndex;
+import static org.drools.drl10.parser.DRLParserHelper.createDrlParser;
+import static org.drools.drl10.parser.DRLParserHelper.parse;
class DRLParserTest {
diff --git a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DescrDumperTest.java b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DescrDumperTest.java
similarity index 99%
rename from drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DescrDumperTest.java
rename to drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DescrDumperTest.java
index d0a18797c1..d98ec8ec89 100644
--- a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DescrDumperTest.java
+++ b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DescrDumperTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.drools.parser;
+package org.drools.drl10.parser;
import static org.assertj.core.api.Assertions.assertThat;
@@ -25,6 +25,7 @@ import org.drools.compiler.lang.DumperContext;
import org.drools.drl.ast.descr.AtomicExprDescr;
import org.drools.drl.ast.descr.BindingDescr;
import org.drools.drl.ast.descr.ConstraintConnectiveDescr;
+import org.drools.drl.parser.DrlExprParser;
import org.drools.mvel.evaluators.MatchesEvaluatorsDefinition;
import org.drools.mvel.evaluators.SetEvaluatorsDefinition;
import org.junit.jupiter.api.BeforeEach;
@@ -357,7 +358,7 @@ public class DescrDumperTest {
}
public ConstraintConnectiveDescr parse( final String constraint ) {
- DrlExprParser parser = new DrlExprParser(LanguageLevelOption.DRL6);
+ DrlExprParser parser = new Drl10ExprParser(LanguageLevelOption.DRL6);
ConstraintConnectiveDescr result = parser.parse( constraint );
assertThat(parser.hasErrors()).as(parser.getErrors().toString()).isFalse();
diff --git a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/MiscDRLParserTest.java b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/MiscDRLParserTest.java
similarity index 99%
rename from drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/MiscDRLParserTest.java
rename to drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/MiscDRLParserTest.java
index 229524867d..6353be53ac 100644
--- a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/MiscDRLParserTest.java
+++ b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/MiscDRLParserTest.java
@@ -1,4 +1,4 @@
-package org.drools.parser;
+package org.drools.drl10.parser;
import java.io.BufferedReader;
import java.io.IOException;
@@ -39,6 +39,7 @@ import org.drools.drl.ast.descr.RuleDescr;
import org.drools.drl.ast.descr.TypeDeclarationDescr;
import org.drools.drl.ast.descr.TypeFieldDescr;
import org.drools.drl.ast.descr.WindowDeclarationDescr;
+import org.drools.drl10.parser.DRLParserWrapper;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/logback-test.xml b/drools-drl/drools-drl-parser-tests/src/test/resources/logback-test.xml
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/logback-test.xml
rename to drools-drl/drools-drl-parser-tests/src/test/resources/logback-test.xml
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_Extends.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_Extends.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_Extends.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_Extends.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_Metadata.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_Metadata.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_Metadata.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_Metadata.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_nested_LHS.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_nested_LHS.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_nested_LHS.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_nested_LHS.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateExternalFunction.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateExternalFunction.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateExternalFunction.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateExternalFunction.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateMultipleFunctions.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateMultipleFunctions.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateMultipleFunctions.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateMultipleFunctions.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateMultipleFunctionsConstraint.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateMultipleFunctionsConstraint.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateMultipleFunctionsConstraint.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateMultipleFunctionsConstraint.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateReverse.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateReverse.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateReverse.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateReverse.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_multi_pattern.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_multi_pattern.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_multi_pattern.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_multi_pattern.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_with_bindings.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_with_bindings.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_with_bindings.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_with_bindings.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_with_nested_from.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_with_nested_from.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_with_nested_from.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_with_nested_from.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/almost_empty_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/almost_empty_rule.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/almost_empty_rule.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/almost_empty_rule.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/and_or_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/and_or_rule.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/and_or_rule.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/and_or_rule.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/autofocus.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/autofocus.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/autofocus.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/autofocus.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/basic_binding.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/basic_binding.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/basic_binding.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/basic_binding.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/bindings.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/bindings.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/bindings.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/bindings.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/brackets_precedence.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/brackets_precedence.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/brackets_precedence.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/brackets_precedence.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/collect.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/collect.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/collect.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/collect.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/collect_with_nested_from.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/collect_with_nested_from.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/collect_with_nested_from.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/collect_with_nested_from.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/comment.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/comment.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/comment.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/comment.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/complex.dsl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/complex.dsl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/complex.dsl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/complex.dsl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/declaration-in-consequence.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/declaration-in-consequence.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/declaration-in-consequence.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/declaration-in-consequence.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/declare_type_with_fields.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/declare_type_with_fields.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/declare_type_with_fields.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/declare_type_with_fields.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/empty_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/empty_rule.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/empty_rule.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/empty_rule.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/enumeration.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/enumeration.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/enumeration.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/enumeration.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eol_funny_business.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eol_funny_business.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eol_funny_business.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eol_funny_business.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/escaped-string.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/escaped-string.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/escaped-string.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/escaped-string.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_multiple.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_multiple.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_multiple.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_multiple.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_parsing.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_parsing.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_parsing.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_parsing.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_with_newline.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_with_newline.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_with_newline.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_with_newline.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_multiple_constraints.dslr b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_multiple_constraints.dslr
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_multiple_constraints.dslr
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_multiple_constraints.dslr
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_multiple_constraints_flush.dslr b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_multiple_constraints_flush.dslr
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_multiple_constraints_flush.dslr
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_multiple_constraints_flush.dslr
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_spread_lines.dslr b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_spread_lines.dslr
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_spread_lines.dslr
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_spread_lines.dslr
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/extra_lhs_newline.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/extra_lhs_newline.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/extra_lhs_newline.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/extra_lhs_newline.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/forall.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/forall.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/forall.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/forall.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/forallwithfrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/forallwithfrom.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/forallwithfrom.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/forallwithfrom.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/from.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/from.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/from.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/from.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/function_arrays.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/function_arrays.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/function_arrays.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/function_arrays.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/functions.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/functions.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/functions.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/functions.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/globals.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/globals.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/globals.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/globals.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/in_operator_test.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/in_operator_test.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/in_operator_test.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/in_operator_test.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/lhs_semicolon_delim.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/lhs_semicolon_delim.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/lhs_semicolon_delim.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/lhs_semicolon_delim.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/literal_bool_and_negative.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/literal_bool_and_negative.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/literal_bool_and_negative.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/literal_bool_and_negative.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/multiple_constraints.dsl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/multiple_constraints.dsl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/multiple_constraints.dsl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/multiple_constraints.dsl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/multiple_rules.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/multiple_rules.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/multiple_rules.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/multiple_rules.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/nested_conditional_elements.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/nested_conditional_elements.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/nested_conditional_elements.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/nested_conditional_elements.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/no-loop.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/no-loop.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/no-loop.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/no-loop.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/not_exist_with_brackets.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/not_exist_with_brackets.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/not_exist_with_brackets.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/not_exist_with_brackets.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/not_with_constraint.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/not_with_constraint.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/not_with_constraint.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/not_with_constraint.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/notin_operator_test.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/notin_operator_test.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/notin_operator_test.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/notin_operator_test.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding_complex.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding_complex.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding_complex.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding_complex.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding_with_brackets.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding_with_brackets.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding_with_brackets.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding_with_brackets.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_ce.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_ce.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_ce.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_ce.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_nesting.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_nesting.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_nesting.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_nesting.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/package_attributes.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/package_attributes.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/package_attributes.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/package_attributes.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/pluggable_operators.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/pluggable_operators.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/pluggable_operators.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/pluggable_operators.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/qualified_classname.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/qualified_classname.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/qualified_classname.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/qualified_classname.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/query_and_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/query_and_rule.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/query_and_rule.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/query_and_rule.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/quoted_string_name_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/quoted_string_name_rule.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/quoted_string_name_rule.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/quoted_string_name_rule.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/restrictions_test.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/restrictions_test.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/restrictions_test.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/restrictions_test.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes2.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes2.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes2.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes2.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes_alt.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes_alt.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes_alt.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes_alt.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_calendars_attribute.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_calendars_attribute.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_calendars_attribute.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_calendars_attribute.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_calendars_attribute2.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_calendars_attribute2.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_calendars_attribute2.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_calendars_attribute2.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_duration_expression.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_duration_expression.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_duration_expression.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_duration_expression.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_enabled_expression.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_enabled_expression.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_enabled_expression.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_enabled_expression.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_names_number_prefix.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_names_number_prefix.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_names_number_prefix.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_names_number_prefix.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_not.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_not.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_not.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_not.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/ruleflowgroup.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/ruleflowgroup.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/ruleflowgroup.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/ruleflowgroup.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/semicolon.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/semicolon.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/semicolon.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/semicolon.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/simple_query.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/simple_query.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/simple_query.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/simple_query.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/simple_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/simple_rule.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/simple_rule.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/simple_rule.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/soundslike_operator.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/soundslike_operator.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/soundslike_operator.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/soundslike_operator.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/statement_ordering_1.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/statement_ordering_1.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/statement_ordering_1.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/statement_ordering_1.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/ternary_expression.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/ternary_expression.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/ternary_expression.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/ternary_expression.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_CommentLineNumbersInConsequence.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_CommentLineNumbersInConsequence.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_CommentLineNumbersInConsequence.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_CommentLineNumbersInConsequence.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_ComplexChainedCallWithFrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_ComplexChainedCallWithFrom.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_ComplexChainedCallWithFrom.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_ComplexChainedCallWithFrom.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_EmptyPattern.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_EmptyPattern.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_EmptyPattern.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_EmptyPattern.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_EndPosition.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_EndPosition.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_EndPosition.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_EndPosition.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_FunctionImport.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_FunctionImport.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_FunctionImport.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_FunctionImport.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleAccessorArgWithFrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleAccessorArgWithFrom.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleAccessorArgWithFrom.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleAccessorArgWithFrom.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleAccessorWithFrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleAccessorWithFrom.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleAccessorWithFrom.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleAccessorWithFrom.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleFunctionCallWithFrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleFunctionCallWithFrom.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleFunctionCallWithFrom.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleFunctionCallWithFrom.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleMethodCallWithFrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleMethodCallWithFrom.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleMethodCallWithFrom.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleMethodCallWithFrom.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/type_with_meta.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/type_with_meta.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/type_with_meta.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/type_with_meta.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_eval.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_eval.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_eval.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_eval.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_predicate.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_predicate.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_predicate.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_predicate.drl
diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_retval.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_retval.drl
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_retval.drl
rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_retval.drl
diff --git a/drools-drl/drools-drl-parser/pom.xml b/drools-drl/drools-drl-parser/pom.xml
index 545625e5ad..0eeb787100 100644
--- a/drools-drl/drools-drl-parser/pom.xml
+++ b/drools-drl/drools-drl-parser/pom.xml
@@ -66,7 +66,32 @@
<groupId>org.antlr</groupId>
<artifactId>antlr-runtime</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4-runtime</artifactId>
+ </dependency>
+ <!-- Tests -->
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
@@ -101,6 +126,26 @@
</plugins>
</pluginManagement>
+ <plugins>
+ <!-- Consider if we will generate codes with a specific profile and copy them to src/main -->
+ <plugin>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4-maven-plugin</artifactId>
+ <version>${version.org.antlr4}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>antlr4</goal>
+ </goals>
+ <configuration>
+ <visitor>true</visitor>
+ <listener>false</listener>
+ <libDirectory>src/main/antlr4/org/drools/drl10/parser/</libDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
</build>
<profiles>
diff --git a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRL6Expressions.g4 b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRL6Expressions.g4
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRL6Expressions.g4
rename to drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRL6Expressions.g4
diff --git a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLLexer.g4 b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRLLexer.g4
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLLexer.g4
rename to drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRLLexer.g4
diff --git a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLParser.g4 b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRLParser.g4
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLParser.g4
rename to drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRLParser.g4
diff --git a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/JavaLexer.g4 b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/JavaLexer.g4
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/JavaLexer.g4
rename to drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/JavaLexer.g4
diff --git a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/JavaParser.g4 b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/JavaParser.g4
similarity index 100%
rename from drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/JavaParser.g4
rename to drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/JavaParser.g4
diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DRLFactory.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DRLFactory.java
index 15bf0addf0..71b23c2fdd 100644
--- a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DRLFactory.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DRLFactory.java
@@ -25,6 +25,7 @@ import org.antlr.runtime.CharStream;
import org.antlr.runtime.CommonTokenStream;
import org.antlr.runtime.RecognizerSharedState;
import org.antlr.runtime.TokenStream;
+import org.drools.drl.parser.lang.DRL10Lexer;
import org.drools.drl.parser.lang.DRL5Expressions;
import org.drools.drl.parser.lang.DRL5Lexer;
import org.drools.drl.parser.lang.DRL5Parser;
@@ -113,6 +114,8 @@ public class DRLFactory {
case DRL6:
case DRL6_STRICT:
return new DRL6Lexer(input);
+ case DRL10:
+ return new DRL10Lexer();
}
throw new RuntimeException("Unknown language level");
}
diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/Drl6ExprParser.java
similarity index 96%
copy from drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java
copy to drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/Drl6ExprParser.java
index 60c61ac248..9fb0186afb 100644
--- a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/Drl6ExprParser.java
@@ -25,24 +25,24 @@ import org.antlr.runtime.ANTLRStringStream;
import org.antlr.runtime.CommonTokenStream;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.RecognizerSharedState;
+import org.drools.drl.ast.descr.BaseDescr;
+import org.drools.drl.ast.descr.ConstraintConnectiveDescr;
import org.drools.drl.parser.lang.DRLExpressions;
import org.drools.drl.parser.lang.DRLLexer;
import org.drools.drl.parser.lang.ParserHelper;
-import org.drools.drl.ast.descr.BaseDescr;
-import org.drools.drl.ast.descr.ConstraintConnectiveDescr;
import org.kie.internal.builder.conf.LanguageLevelOption;
/**
* This is a helper class that provides helper methods to parse expressions
* using both the DRLExpressions parser and the DRLExprTree parser.
*/
-public class DrlExprParser {
+public class Drl6ExprParser implements DrlExprParser {
private ParserHelper helper = null;
private final LanguageLevelOption languageLevel;
- public DrlExprParser(LanguageLevelOption languageLevel) {
+ public Drl6ExprParser(LanguageLevelOption languageLevel) {
this.languageLevel = languageLevel;
}
diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java
index 60c61ac248..0702a1d146 100644
--- a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java
@@ -18,73 +18,29 @@
*/
package org.drools.drl.parser;
-import java.util.Collections;
import java.util.List;
-import org.antlr.runtime.ANTLRStringStream;
-import org.antlr.runtime.CommonTokenStream;
-import org.antlr.runtime.RecognitionException;
-import org.antlr.runtime.RecognizerSharedState;
-import org.drools.drl.parser.lang.DRLExpressions;
-import org.drools.drl.parser.lang.DRLLexer;
-import org.drools.drl.parser.lang.ParserHelper;
-import org.drools.drl.ast.descr.BaseDescr;
import org.drools.drl.ast.descr.ConstraintConnectiveDescr;
-import org.kie.internal.builder.conf.LanguageLevelOption;
/**
* This is a helper class that provides helper methods to parse expressions
* using both the DRLExpressions parser and the DRLExprTree parser.
*/
-public class DrlExprParser {
-
- private ParserHelper helper = null;
-
- private final LanguageLevelOption languageLevel;
-
- public DrlExprParser(LanguageLevelOption languageLevel) {
- this.languageLevel = languageLevel;
- }
+public interface DrlExprParser {
/** Parse an expression from text */
- public ConstraintConnectiveDescr parse( final String text ) {
- ConstraintConnectiveDescr constraint = null;
- try {
- DRLLexer lexer = DRLFactory.getDRLLexer(new ANTLRStringStream(text), languageLevel);
- CommonTokenStream input = new CommonTokenStream( lexer );
- RecognizerSharedState state = new RecognizerSharedState();
- helper = new ParserHelper( input, state, languageLevel );
- DRLExpressions parser = DRLFactory.getDRLExpressions(input, state, helper, languageLevel);
- parser.setBuildDescr( true );
- parser.setLeftMostExpr( null ); // setting initial value just in case
- BaseDescr expr = parser.conditionalOrExpression();
- if ( expr != null && !parser.hasErrors() ) {
- constraint = ConstraintConnectiveDescr.newAnd();
- constraint.addOrMerge( expr );
- }
- } catch ( RecognitionException e ) {
- helper.reportError( e );
- }
- return constraint;
- }
-
- public String getLeftMostExpr() {
- return helper != null ? helper.getLeftMostExpr() : null;
- }
+ ConstraintConnectiveDescr parse( final String text );
+
+ String getLeftMostExpr();
/**
* @return true if there were parser errors.
*/
- public boolean hasErrors() {
- return helper != null && helper.hasErrors();
- }
+ boolean hasErrors();
/**
* @return a list of errors found while parsing.
*/
@SuppressWarnings("unchecked")
- public List<DroolsParserException> getErrors() {
- return helper != null ? helper.getErrors() : Collections.EMPTY_LIST;
- }
-
+ List<DroolsParserException> getErrors();
}
diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParserFactory.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParserFactory.java
new file mode 100644
index 0000000000..9ee116faf3
--- /dev/null
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParserFactory.java
@@ -0,0 +1,20 @@
+package org.drools.drl.parser;
+
+import org.drools.drl10.parser.Drl10ExprParser;
+import org.kie.internal.builder.conf.LanguageLevelOption;
+
+public class DrlExprParserFactory {
+
+ public static DrlExprParser getDrlExrParser(LanguageLevelOption languageLevel) {
+ switch (languageLevel) {
+ case DRL5:
+ case DRL6:
+ case DRL6_STRICT:
+ return new Drl6ExprParser(languageLevel);
+ case DRL10:
+ return new Drl10ExprParser(languageLevel);
+ default:
+ throw new RuntimeException("Unsupported language level: " + languageLevel);
+ }
+ }
+}
diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java
index 7b852c8dce..d6ee0c042b 100644
--- a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java
@@ -18,6 +18,8 @@
*/
package org.drools.drl.parser;
+import org.drools.drl10.parser.DRLParserError;
+import org.drools.drl10.parser.DRLParserWrapper;
import org.drools.io.InternalResource;
import org.drools.drl.ast.descr.PackageDescr;
import org.drools.drl.parser.lang.DRLLexer;
@@ -164,10 +166,35 @@ public class DrlParser {
final InputStream is) throws DroolsParserException, IOException {
this.resource = resource;
String encoding = resource instanceof InternalResource ? ((InternalResource) resource).getEncoding() : null;
-
- lexer = DRLFactory.buildLexer(is, encoding, languageLevel);
- DRLParser parser = DRLFactory.buildParser(lexer, languageLevel);
- return compile(isEditor, parser);
+ System.out.println("### parse : languageLevel = " + languageLevel);
+ if (languageLevel == LanguageLevelOption.DRL10) {
+ // new parser based on antlr4
+ try {
+ DRLParserWrapper parser = new DRLParserWrapper();
+ PackageDescr packageDescr = parser.parse(is);
+ for (final DRLParserError drlParserError : parser.getErrors()) {
+ final ParserError err = new ParserError(resource,
+ drlParserError.getMessage(),
+ drlParserError.getLineNumber(),
+ drlParserError.getColumn());
+ this.results.add(err);
+ }
+ return !this.hasErrors() ? packageDescr : null;
+ } catch (Exception e) {
+ LOG.error("Exception", e);
+ final ParserError err = new ParserError(resource,
+ GENERIC_ERROR_MESSAGE + e.toString() + "\n" + Arrays.toString(e.getStackTrace()),
+ -1,
+ 0);
+ this.results.add(err);
+ throw new DroolsParserException(GENERIC_ERROR_MESSAGE + e.getMessage(), e);
+ }
+ } else {
+ // old parsers based on antlr3
+ lexer = DRLFactory.buildLexer(is, encoding, languageLevel);
+ DRLParser parser = DRLFactory.buildParser(lexer, languageLevel);
+ return compile(isEditor, parser);
+ }
}
/**
diff --git a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/DRL10Lexer.java
similarity index 50%
copy from kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java
copy to drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/DRL10Lexer.java
index ca8b96ee91..ae8d3d6d4d 100644
--- a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/DRL10Lexer.java
@@ -16,39 +16,31 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.kie.internal.builder.conf;
+package org.drools.drl.parser.lang;
-import org.kie.api.conf.OptionKey;
+import java.util.List;
+
+import org.antlr.runtime.Token;
+import org.drools.drl.parser.DroolsParserException;
/**
- * A class for the language level configuration.
+ * No implementation because everything is handled by DRL10Parser
*/
-public enum LanguageLevelOption implements SingleValueRuleBuilderOption {
-
- DRL5(false), DRL6(false), DRL6_STRICT(true);
-
- private final boolean useJavaAnnotations;
-
- /**
- * The property name for the language level
- */
- public static final String PROPERTY_NAME = "drools.lang.level";
-
- public static OptionKey<LanguageLevelOption> KEY = new OptionKey<>(TYPE, PROPERTY_NAME);
+public class DRL10Lexer implements DRLLexer {
- LanguageLevelOption(boolean useJavaAnnotations) {
- this.useJavaAnnotations = useJavaAnnotations;
+ @Override
+ public String getSourceName() {
+ return null;
}
- public boolean useJavaAnnotations() {
- return useJavaAnnotations;
+ @Override
+ public Token nextToken() {
+ return null;
}
- /**
- * {@inheritDoc}
- */
- public String getPropertyName() {
- return PROPERTY_NAME;
+ @Override
+ public List<DroolsParserException> getErrors() {
+ return null;
}
-}
+}
\ No newline at end of file
diff --git a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLErrorListener.java
similarity index 50%
copy from kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java
copy to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLErrorListener.java
index ca8b96ee91..0e5b5985b6 100644
--- a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLErrorListener.java
@@ -16,39 +16,34 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.kie.internal.builder.conf;
+package org.drools.drl10.parser;
-import org.kie.api.conf.OptionKey;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.antlr.v4.runtime.BaseErrorListener;
+import org.antlr.v4.runtime.RecognitionException;
+import org.antlr.v4.runtime.Recognizer;
/**
- * A class for the language level configuration.
+ * Collect errors while parsing DRL
*/
-public enum LanguageLevelOption implements SingleValueRuleBuilderOption {
-
- DRL5(false), DRL6(false), DRL6_STRICT(true);
-
- private final boolean useJavaAnnotations;
+public class DRLErrorListener extends BaseErrorListener {
- /**
- * The property name for the language level
- */
- public static final String PROPERTY_NAME = "drools.lang.level";
+ private final List<DRLParserError> errors = new ArrayList<>();
- public static OptionKey<LanguageLevelOption> KEY = new OptionKey<>(TYPE, PROPERTY_NAME);
-
- LanguageLevelOption(boolean useJavaAnnotations) {
- this.useJavaAnnotations = useJavaAnnotations;
+ public List<DRLParserError> getErrors() {
+ return errors;
}
- public boolean useJavaAnnotations() {
- return useJavaAnnotations;
- }
+ @Override
+ public void syntaxError(Recognizer<?, ?> recognizer,
+ Object offendingSymbol,
+ int line,
+ int charPositionInLine,
+ String msg,
+ RecognitionException e) {
- /**
- * {@inheritDoc}
- */
- public String getPropertyName() {
- return PROPERTY_NAME;
+ errors.add(new DRLParserError(line, charPositionInLine, msg));
}
-
}
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLExpressions.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLExpressions.java
similarity index 98%
rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLExpressions.java
rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLExpressions.java
index 0109e23377..e7aa8102c4 100644
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLExpressions.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLExpressions.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.drools.parser;
+package org.drools.drl10.parser;
import java.util.LinkedList;
import java.util.List;
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserError.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserError.java
similarity index 58%
rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserError.java
rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserError.java
index ec3e41747d..4b893e11e4 100644
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserError.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserError.java
@@ -1,4 +1,22 @@
-package org.drools.parser;
+/**
+ * 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.drools.drl10.parser;
/**
* Error information while parsing DRL
diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserException.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserException.java
new file mode 100644
index 0000000000..833d1aa8df
--- /dev/null
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserException.java
@@ -0,0 +1,30 @@
+/**
+ * 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.drools.drl10.parser;
+
+public class DRLParserException extends RuntimeException {
+
+ public DRLParserException() {
+ super();
+ }
+
+ public DRLParserException(String message) {
+ super(message);
+ }
+}
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserHelper.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserHelper.java
similarity index 82%
rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserHelper.java
rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserHelper.java
index bd95c3033c..f4436bf44b 100644
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserHelper.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserHelper.java
@@ -1,4 +1,22 @@
-package org.drools.parser;
+/**
+ * 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.drools.drl10.parser;
import java.io.IOException;
import java.io.InputStream;
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserWrapper.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserWrapper.java
similarity index 66%
rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserWrapper.java
rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserWrapper.java
index 88ae36c12f..914255e137 100644
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserWrapper.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserWrapper.java
@@ -1,4 +1,22 @@
-package org.drools.parser;
+/**
+ * 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.drools.drl10.parser;
import java.io.InputStream;
import java.util.ArrayList;
@@ -9,7 +27,7 @@ import org.drools.drl.ast.descr.PackageDescr;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.drools.parser.DRLParserHelper.compilationUnitContext2PackageDescr;
+import static org.drools.drl10.parser.DRLParserHelper.compilationUnitContext2PackageDescr;
/**
* Wrapper for DRLParser. Somewhat duplicated from DRLParserHelper, but this class is instantiated and holds errors.
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLVisitorImpl.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLVisitorImpl.java
similarity index 96%
rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLVisitorImpl.java
rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLVisitorImpl.java
index 3f920cc13a..a977fee988 100644
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLVisitorImpl.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLVisitorImpl.java
@@ -1,8 +1,25 @@
-package org.drools.parser;
+/**
+ * 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.drools.drl10.parser;
import java.util.ArrayList;
import java.util.List;
-import java.util.Optional;
import java.util.stream.Collectors;
import org.antlr.v4.runtime.ParserRuleContext;
@@ -41,11 +58,11 @@ import org.drools.drl.ast.descr.TypeFieldDescr;
import org.drools.drl.ast.descr.UnitDescr;
import org.drools.drl.ast.descr.WindowDeclarationDescr;
-import static org.drools.parser.DRLParserHelper.getTextWithoutErrorNode;
-import static org.drools.parser.ParserStringUtils.getTextPreservingWhitespace;
-import static org.drools.parser.ParserStringUtils.getTokenTextPreservingWhitespace;
-import static org.drools.parser.ParserStringUtils.safeStripStringDelimiters;
-import static org.drools.parser.ParserStringUtils.trimThen;
+import static org.drools.drl10.parser.DRLParserHelper.getTextWithoutErrorNode;
+import static org.drools.drl10.parser.ParserStringUtils.getTextPreservingWhitespace;
+import static org.drools.drl10.parser.ParserStringUtils.getTokenTextPreservingWhitespace;
+import static org.drools.drl10.parser.ParserStringUtils.safeStripStringDelimiters;
+import static org.drools.drl10.parser.ParserStringUtils.trimThen;
import static org.drools.util.StringUtils.unescapeJava;
/**
diff --git a/drools-drl/drools-drl10-parser/Developer_Notes.md b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/Developer_Notes.md
similarity index 100%
rename from drools-drl/drools-drl10-parser/Developer_Notes.md
rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/Developer_Notes.md
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DrlExprParser.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/Drl10ExprParser.java
similarity index 93%
rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DrlExprParser.java
rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/Drl10ExprParser.java
index d9c8d93bce..19ec473536 100644
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DrlExprParser.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/Drl10ExprParser.java
@@ -16,16 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.drools.parser;
+package org.drools.drl10.parser;
import java.util.Collections;
import java.util.List;
-import org.antlr.v4.runtime.RecognitionException;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CommonTokenStream;
+import org.antlr.v4.runtime.RecognitionException;
import org.drools.drl.ast.descr.BaseDescr;
import org.drools.drl.ast.descr.ConstraintConnectiveDescr;
+import org.drools.drl.parser.DrlExprParser;
import org.drools.drl.parser.DroolsParserException;
import org.kie.internal.builder.conf.LanguageLevelOption;
@@ -33,13 +34,13 @@ import org.kie.internal.builder.conf.LanguageLevelOption;
* This is a helper class that provides helper methods to parse expressions
* using both the DRLExpressions parser and the DRLExprTree parser.
*/
-public class DrlExprParser {
+public class Drl10ExprParser implements DrlExprParser {
private ParserHelper helper = null;
private final LanguageLevelOption languageLevel;
- public DrlExprParser(LanguageLevelOption languageLevel) {
+ public Drl10ExprParser(LanguageLevelOption languageLevel) {
this.languageLevel = languageLevel;
}
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DroolsParserExceptionFactory.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DroolsParserExceptionFactory.java
similarity index 99%
rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DroolsParserExceptionFactory.java
rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DroolsParserExceptionFactory.java
index e184dfe9e3..abf586c55d 100644
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DroolsParserExceptionFactory.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DroolsParserExceptionFactory.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.drools.parser;
+package org.drools.drl10.parser;
import java.io.PrintWriter;
import java.io.StringWriter;
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserHelper.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserHelper.java
similarity index 99%
rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserHelper.java
rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserHelper.java
index 66d6bea4d6..f729115b7c 100644
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserHelper.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserHelper.java
@@ -29,7 +29,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.drools.parser;
+package org.drools.drl10.parser;
import java.util.ArrayDeque;
import java.util.ArrayList;
@@ -39,8 +39,8 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import org.antlr.v4.runtime.CommonToken;
import org.antlr.runtime.RecognizerSharedState;
+import org.antlr.v4.runtime.CommonToken;
import org.antlr.v4.runtime.RecognitionException;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserStringUtils.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserStringUtils.java
similarity index 70%
rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserStringUtils.java
rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserStringUtils.java
index a294bf2a92..ef22da2dce 100644
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserStringUtils.java
+++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserStringUtils.java
@@ -1,4 +1,22 @@
-package org.drools.parser;
+/**
+ * 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.drools.drl10.parser;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.TokenStream;
diff --git a/drools-drl/drools-drl10-parser/.gitignore b/drools-drl/drools-drl10-parser/.gitignore
deleted file mode 100644
index 6fc57b48ec..0000000000
--- a/drools-drl/drools-drl10-parser/.gitignore
+++ /dev/null
@@ -1,18 +0,0 @@
-target/
-gen/
-local/
-
-# Eclipse, Netbeans and IntelliJ files
-.*
-!.gitignore
-!.github
-nbproject
-*.ipr
-*.iws
-*.iml
-
-# generated files
-dependency-reduced-pom.xml
-
-#CI
-!.ci
diff --git a/drools-drl/drools-drl10-parser/pom.xml b/drools-drl/drools-drl10-parser/pom.xml
deleted file mode 100644
index 57ed8f85ca..0000000000
--- a/drools-drl/drools-drl10-parser/pom.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/maven-v4_0_0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.drools</groupId>
- <artifactId>drools-lsp</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>drools-parser</artifactId>
-
- <name>Drools :: Parser</name>
-
- <dependencies>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-drl-ast</artifactId>
- <version>${version.org.drools}</version>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-util</artifactId>
- <version>${version.org.drools}</version>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-drl-parser</artifactId>
- <version>${version.org.drools}</version>
- </dependency>
-
- <!-- External dependencies -->
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr4-runtime</artifactId>
- <version>${version.org.antlr4}</version>
- </dependency>
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr4</artifactId>
- <version>${version.org.antlr4}</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.glassfish</groupId>
- <artifactId>javax.json</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!-- Tests -->
- <dependency>
- <groupId>org.assertj</groupId>
- <artifactId>assertj-core</artifactId>
- <version>${version.org.assertj}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-api</artifactId>
- <version>${version.org.junit}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-engine</artifactId>
- <version>${version.org.junit}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <version>${version.ch.qos.logback}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-compiler</artifactId>
- <version>${version.org.drools}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-mvel</artifactId>
- <version>${version.org.drools}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.antlr</groupId>
- <artifactId>antlr4-maven-plugin</artifactId>
- <version>${version.org.antlr4}</version>
- <executions>
- <execution>
- <goals>
- <goal>antlr4</goal>
- </goals>
- <configuration>
- <visitor>true</visitor>
- <listener>false</listener>
- <libDirectory>src/main/antlr4/org/drools/parser/</libDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- </build>
-
-</project>
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLErrorListener.java b/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLErrorListener.java
deleted file mode 100644
index f7c6504df4..0000000000
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLErrorListener.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.drools.parser;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.antlr.v4.runtime.BaseErrorListener;
-import org.antlr.v4.runtime.RecognitionException;
-import org.antlr.v4.runtime.Recognizer;
-
-/**
- * Collect errors while parsing DRL
- */
-public class DRLErrorListener extends BaseErrorListener {
-
- private final List<DRLParserError> errors = new ArrayList<>();
-
- public List<DRLParserError> getErrors() {
- return errors;
- }
-
- @Override
- public void syntaxError(Recognizer<?, ?> recognizer,
- Object offendingSymbol,
- int line,
- int charPositionInLine,
- String msg,
- RecognitionException e) {
-
- errors.add(new DRLParserError(line, charPositionInLine, msg));
- }
-}
diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserException.java b/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserException.java
deleted file mode 100644
index 6bc5812a78..0000000000
--- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserException.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.drools.parser;
-
-public class DRLParserException extends RuntimeException {
-
- public DRLParserException() {
- super();
- }
-
- public DRLParserException(String message) {
- super(message);
- }
-}
diff --git a/drools-drl/pom.xml b/drools-drl/pom.xml
index 91f12f3d75..2fb61bb300 100644
--- a/drools-drl/pom.xml
+++ b/drools-drl/pom.xml
@@ -39,6 +39,7 @@
<module>drools-drl-ast</module>
<module>drools-drl-extensions</module>
<module>drools-drl-parser</module>
+ <module>drools-drl-parser-tests</module>
</modules>
diff --git a/drools-test-coverage/test-compiler-integration/pom.xml b/drools-test-coverage/test-compiler-integration/pom.xml
index 6ccf1cbdc6..93df94a6d5 100644
--- a/drools-test-coverage/test-compiler-integration/pom.xml
+++ b/drools-test-coverage/test-compiler-integration/pom.xml
@@ -178,6 +178,27 @@
<excludedGroups/>
</properties>
</profile>
+<!-- <profile>-->
+<!-- <id>DRL10</id>-->
+<!-- <activation>-->
+<!-- <property>-->
+<!-- <name>DRL10</name>-->
+<!-- </property>-->
+<!-- </activation>-->
+<!-- <build>-->
+<!-- <plugins>-->
+<!-- <plugin>-->
+<!-- <groupId>org.apache.maven.plugins</groupId>-->
+<!-- <artifactId>maven-surefire-plugin</artifactId>-->
+<!-- <configuration>-->
+<!-- <systemPropertyVariables>-->
+<!-- <drools.lang.level>DRL10</drools.lang.level>-->
+<!-- </systemPropertyVariables>-->
+<!-- </configuration>-->
+<!-- </plugin>-->
+<!-- </plugins>-->
+<!-- </build>-->
+<!-- </profile>-->
</profiles>
</project>
diff --git a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DRLExprParserTest.java b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DRLExprParserTest.java
index 08eeb33eda..c7357aad4d 100644
--- a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DRLExprParserTest.java
+++ b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DRLExprParserTest.java
@@ -25,6 +25,7 @@ import org.drools.drl.ast.descr.ConnectiveType;
import org.drools.drl.ast.descr.ConstraintConnectiveDescr;
import org.drools.drl.ast.descr.RelationalExprDescr;
import org.drools.drl.parser.DrlExprParser;
+import org.drools.drl.parser.DrlExprParserFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -42,7 +43,7 @@ public class DRLExprParserTest {
@Before
public void setUp() throws Exception {
new EvaluatorRegistry();
- this.parser = new DrlExprParser(LanguageLevelOption.DRL6);
+ this.parser = DrlExprParserFactory.getDrlExrParser(LanguageLevelOption.DRL6);
}
@After
diff --git a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DescrDumperTest.java b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DescrDumperTest.java
index 649b43c37f..5eb52e6283 100644
--- a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DescrDumperTest.java
+++ b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DescrDumperTest.java
@@ -24,6 +24,7 @@ import org.drools.compiler.lang.DumperContext;
import org.drools.drl.ast.descr.AtomicExprDescr;
import org.drools.drl.ast.descr.BindingDescr;
import org.drools.drl.ast.descr.ConstraintConnectiveDescr;
+import org.drools.drl.parser.DrlExprParserFactory;
import org.drools.mvel.evaluators.MatchesEvaluatorsDefinition;
import org.drools.mvel.evaluators.SetEvaluatorsDefinition;
import org.junit.Before;
@@ -358,7 +359,7 @@ public class DescrDumperTest {
}
public ConstraintConnectiveDescr parse( final String constraint ) {
- DrlExprParser parser = new DrlExprParser(LanguageLevelOption.DRL6);
+ DrlExprParser parser = DrlExprParserFactory.getDrlExrParser(LanguageLevelOption.DRL6);
ConstraintConnectiveDescr result = parser.parse( constraint );
assertThat(parser.hasErrors()).as(parser.getErrors().toString()).isFalse();
diff --git a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/AlphaNodeTest.java b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/AlphaNodeTest.java
index d4089c3460..71642c1728 100644
--- a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/AlphaNodeTest.java
+++ b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/AlphaNodeTest.java
@@ -48,6 +48,8 @@ public class AlphaNodeTest {
@Test
public void testAlpha() {
+
+
String str =
"import " + Person.class.getCanonicalName() + "\n" +
"rule R1 when\n" +
@@ -195,7 +197,7 @@ public class AlphaNodeTest {
" $p : Person(name == \"Mario\")\n" +
" $s : String(this == $p.name)\n" +
"then\n" +
- " modify($p) { setName(\"Mark\") }" +
+ " modify($p) { setName(\"Mark\") }\n" +
"end\n" +
"rule R2 when\n" +
" $p : Person(name == \"Mark\")\n" +
diff --git a/drools-verifier/drools-verifier-drl/src/main/java/org/drools/verifier/visitor/ExprConstraintDescrVisitor.java b/drools-verifier/drools-verifier-drl/src/main/java/org/drools/verifier/visitor/ExprConstraintDescrVisitor.java
index ba67c653c3..6e6ef96a82 100644
--- a/drools-verifier/drools-verifier-drl/src/main/java/org/drools/verifier/visitor/ExprConstraintDescrVisitor.java
+++ b/drools-verifier/drools-verifier-drl/src/main/java/org/drools/verifier/visitor/ExprConstraintDescrVisitor.java
@@ -20,6 +20,7 @@ package org.drools.verifier.visitor;
import java.util.List;
+import org.drools.drl.parser.DrlExprParserFactory;
import org.drools.drl.parser.impl.Operator;
import org.drools.drl.parser.DrlExprParser;
import org.drools.drl.ast.descr.AtomicExprDescr;
@@ -57,7 +58,7 @@ public class ExprConstraintDescrVisitor {
public void visit(ExprConstraintDescr descr) {
- DrlExprParser drlExprParser = new DrlExprParser(LanguageLevelOption.DRL5);
+ DrlExprParser drlExprParser = DrlExprParserFactory.getDrlExrParser(LanguageLevelOption.DRL5);
ConstraintConnectiveDescr constraintConnectiveDescr = drlExprParser.parse(descr.getExpression());
visit(constraintConnectiveDescr.getDescrs());
diff --git a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java b/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java
index ca8b96ee91..86266a0f2d 100644
--- a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java
+++ b/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java
@@ -25,7 +25,7 @@ import org.kie.api.conf.OptionKey;
*/
public enum LanguageLevelOption implements SingleValueRuleBuilderOption {
- DRL5(false), DRL6(false), DRL6_STRICT(true);
+ DRL5(false), DRL6(false), DRL6_STRICT(true), DRL10(false);
private final boolean useJavaAnnotations;
diff --git a/pom.xml b/pom.xml
index 581c84bf95..4766589618 100644
--- a/pom.xml
+++ b/pom.xml
@@ -260,6 +260,28 @@
</plugins>
</build>
</profile>
+
+ <profile>
+ <id>DRL10</id>
+ <activation>
+ <property>
+ <name>DRL10</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemPropertyVariables>
+ <drools.lang.level>DRL10</drools.lang.level>
+ </systemPropertyVariables>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org