This is an automated email from the ASF dual-hosted git repository. martijnvisser pushed a commit to branch release-1.15 in repository https://gitbox.apache.org/repos/asf/flink.git
commit 77827066bc014bf55361ec2e40faa660340cad3f Author: Jing Ge <[email protected]> AuthorDate: Tue Apr 5 23:51:08 2022 +0200 [FLINK-27064][test] move ArchUnit rules for production code to the source folder and build a ProductCodeArchitectureBase which can be used by other test outside this module and even in the other repo via dependency. (cherry picked from commit ff20dbc9179989449780b5cb5c673c43315d9f2b) --- .../flink-architecture-tests-production/pom.xml | 6 ++++++ .../architecture/ProductCodeArchitectureBase.java} | 19 +++++++------------ .../flink/architecture/rules/ApiAnnotationRules.java | 0 .../flink/architecture/rules/TableApiRules.java | 0 .../apache/flink/architecture/ArchitectureTest.java | 7 ++----- 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/flink-architecture-tests/flink-architecture-tests-production/pom.xml b/flink-architecture-tests/flink-architecture-tests-production/pom.xml index 4752e9b6f87..5fb1edca817 100644 --- a/flink-architecture-tests/flink-architecture-tests-production/pom.xml +++ b/flink-architecture-tests/flink-architecture-tests-production/pom.xml @@ -39,21 +39,25 @@ under the License. <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-architecture-tests-base</artifactId> + <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-annotations</artifactId> + <scope>compile</scope> </dependency> <dependency> <groupId>com.tngtech.archunit</groupId> <artifactId>archunit</artifactId> + <scope>compile</scope> </dependency> <dependency> <groupId>com.tngtech.archunit</groupId> <artifactId>archunit-junit5</artifactId> + <scope>compile</scope> </dependency> <!-- Tested Flink modules --> @@ -61,6 +65,7 @@ under the License. <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-core</artifactId> + <scope>compile</scope> </dependency> <!-- Table API & SQL --> @@ -68,6 +73,7 @@ under the License. <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-common</artifactId> + <scope>compile</scope> </dependency> <dependency> diff --git a/flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/ArchitectureTest.java b/flink-architecture-tests/flink-architecture-tests-production/src/main/java/org/apache/flink/architecture/ProductCodeArchitectureBase.java similarity index 72% copy from flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/ArchitectureTest.java copy to flink-architecture-tests/flink-architecture-tests-production/src/main/java/org/apache/flink/architecture/ProductCodeArchitectureBase.java index 3eae3e2ab9f..f24a915cdc3 100644 --- a/flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/ArchitectureTest.java +++ b/flink-architecture-tests/flink-architecture-tests-production/src/main/java/org/apache/flink/architecture/ProductCodeArchitectureBase.java @@ -18,24 +18,19 @@ package org.apache.flink.architecture; -import org.apache.flink.architecture.common.ImportOptions; import org.apache.flink.architecture.rules.ApiAnnotationRules; import org.apache.flink.architecture.rules.TableApiRules; -import com.tngtech.archunit.core.importer.ImportOption; -import com.tngtech.archunit.junit.AnalyzeClasses; import com.tngtech.archunit.junit.ArchTest; import com.tngtech.archunit.junit.ArchTests; -/** Architecture tests. */ -@AnalyzeClasses( - packages = "org.apache.flink", - importOptions = { - ImportOption.DoNotIncludeTests.class, - ImportOptions.ExcludeScalaImportOption.class, - ImportOptions.ExcludeShadedImportOption.class - }) -public class ArchitectureTest { +/** + * Central setup of architectural tests for the production code. + * + * <p>Architectural tests should include this class via {@link ArchTests#in(Class)} to cover the + * common part. + */ +public class ProductCodeArchitectureBase { @ArchTest public static final ArchTests API_ANNOTATIONS = ArchTests.in(ApiAnnotationRules.class); diff --git a/flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/rules/ApiAnnotationRules.java b/flink-architecture-tests/flink-architecture-tests-production/src/main/java/org/apache/flink/architecture/rules/ApiAnnotationRules.java similarity index 100% rename from flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/rules/ApiAnnotationRules.java rename to flink-architecture-tests/flink-architecture-tests-production/src/main/java/org/apache/flink/architecture/rules/ApiAnnotationRules.java diff --git a/flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/rules/TableApiRules.java b/flink-architecture-tests/flink-architecture-tests-production/src/main/java/org/apache/flink/architecture/rules/TableApiRules.java similarity index 100% rename from flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/rules/TableApiRules.java rename to flink-architecture-tests/flink-architecture-tests-production/src/main/java/org/apache/flink/architecture/rules/TableApiRules.java diff --git a/flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/ArchitectureTest.java b/flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/ArchitectureTest.java index 3eae3e2ab9f..5c1e788bcce 100644 --- a/flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/ArchitectureTest.java +++ b/flink-architecture-tests/flink-architecture-tests-production/src/test/java/org/apache/flink/architecture/ArchitectureTest.java @@ -19,8 +19,6 @@ package org.apache.flink.architecture; import org.apache.flink.architecture.common.ImportOptions; -import org.apache.flink.architecture.rules.ApiAnnotationRules; -import org.apache.flink.architecture.rules.TableApiRules; import com.tngtech.archunit.core.importer.ImportOption; import com.tngtech.archunit.junit.AnalyzeClasses; @@ -36,8 +34,7 @@ import com.tngtech.archunit.junit.ArchTests; ImportOptions.ExcludeShadedImportOption.class }) public class ArchitectureTest { - @ArchTest - public static final ArchTests API_ANNOTATIONS = ArchTests.in(ApiAnnotationRules.class); - @ArchTest public static final ArchTests TABLE_API = ArchTests.in(TableApiRules.class); + @ArchTest + public static final ArchTests COMMON_TESTS = ArchTests.in(ProductCodeArchitectureBase.class); }
