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);
 }

Reply via email to