You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by ie...@apache.org on 2026/04/30 20:24:01 UTC
(avro) 01/01: AVRO-4251: [Java] Validate backwards compatibility issues with japicmp
This is an automated email from the ASF dual-hosted git repository.
iemejia pushed a commit to branch avro-4251-japicmp-backwards-compatibility
in repository https://gitbox.apache.org/repos/asf/avro.git
commit 29ce04d9fafdf560391e0cdc2076b9dbc0a78ee1
Author: Ismaël Mejía <ie...@gmail.com>
AuthorDate: Thu Apr 9 07:12:25 2026 +0000
AVRO-4251: [Java] Validate backwards compatibility issues with japicmp
---
.github/workflows/test-lang-java.yml | 4 ++++
lang/java/pom.xml | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+)
diff --git a/.github/workflows/test-lang-java.yml b/.github/workflows/test-lang-java.yml
index 3d455f7e6b..428a8859ca 100644
--- a/.github/workflows/test-lang-java.yml
+++ b/.github/workflows/test-lang-java.yml
@@ -82,6 +82,10 @@ jobs:
working-directory: .
run: mvn -B clean install -PskipQuality -DskipTests
+ - name: "Check Java API Backward Compatibility"
+ if: matrix.os == 'ubuntu-latest'
+ run: mvn -B -PskipQuality -DskipTests com.github.siom79.japicmp:japicmp-maven-plugin:cmp
+
- name: "Test Reproducible Build"
working-directory: .
run: mvn clean verify -PskipQuality artifact:compare
diff --git a/lang/java/pom.xml b/lang/java/pom.xml
index f6d04ccc9e..3a6291fc09 100644
--- a/lang/java/pom.xml
+++ b/lang/java/pom.xml
@@ -67,6 +67,7 @@
<cyclonedx-maven-plugin.version>2.9.1</cyclonedx-maven-plugin.version>
<exec-plugin.version>3.6.3</exec-plugin.version>
<file-management.version>3.2.0</file-management.version>
+ <japicmp-maven-plugin.version>0.25.6</japicmp-maven-plugin.version>
<javacc-plugin.version>3.8.0</javacc-plugin.version>
<javacc.version>7.0.13</javacc.version>
<maven-antrun-plugin.version>3.2.0</maven-antrun-plugin.version>
@@ -268,6 +269,40 @@
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>${cyclonedx-maven-plugin.version}</version>
</plugin>
+ <plugin>
+ <groupId>com.github.siom79.japicmp</groupId>
+ <artifactId>japicmp-maven-plugin</artifactId>
+ <version>${japicmp-maven-plugin.version}</version>
+ <configuration>
+ <parameter>
+ <accessModifier>public</accessModifier>
+ <onlyModified>true</onlyModified>
+ <breakBuildOnSourceIncompatibleModifications>true</breakBuildOnSourceIncompatibleModifications>
+ <breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications>
+ <skipXmlReport>true</skipXmlReport>
+ <excludes>
+ <exclude>org.apache.avro.ipc.jetty.StaticServlet</exclude>
+ </excludes>
+ <excludeModules>
+ <excludeModule>avro-integration-test</excludeModule>
+ <excludeModule>avro-interop-data-test</excludeModule>
+ <excludeModule>avro-maven-plugin</excludeModule>
+ <excludeModule>avro-perf</excludeModule>
+ <excludeModule>avro-tools</excludeModule>
+ <excludeModule>avro-service-archetype</excludeModule>
+ </excludeModules>
+ </parameter>
+ </configuration>
+ <executions>
+ <execution>
+ <id>japicmp-check</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>cmp</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</pluginManagement>
<plugins>