Skip to content

Use IdlReader instead of deprecated Idl parser in Avro extension#52948

Merged
gsmet merged 1 commit intoquarkusio:mainfrom
carlesarnal:fix/avro-named-schema-idl-52882
Apr 4, 2026
Merged

Use IdlReader instead of deprecated Idl parser in Avro extension#52948
gsmet merged 1 commit intoquarkusio:mainfrom
carlesarnal:fix/avro-named-schema-idl-52882

Conversation

@carlesarnal
Copy link
Copy Markdown
Contributor

Summary

  • Switch from deprecated Idl parser to IdlReader (from avro-idl artifact) in the Avro extension's IDL code generation
  • IdlReader supports both the traditional protocol-wrapped syntax and the new named schema IDL syntax introduced in Avro 1.12.0
  • Add avro-idl dependency to the BOM and the avro deployment module
  • Add integration test covering named schema IDL compilation

Fixes #52882

Test plan

  • Existing shouldAlterAvdl test passes (backward compatibility with protocol syntax)
  • New shouldCompileNamedSchemaIdl test passes (named schema syntax from the issue)
  • All 4 avro-reload integration tests pass

@quarkus-bot quarkus-bot bot added the area/dependencies Pull requests that update a dependency file label Mar 6, 2026
@gsmet
Copy link
Copy Markdown
Member

gsmet commented Mar 7, 2026

@carlesarnal is it ready for review and CI?

@carlesarnal
Copy link
Copy Markdown
Contributor Author

@carlesarnal is it ready for review and CI?

Yes!

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 17, 2026

🎊 PR Preview 5e7de32 has been successfully built and deployed to https://quarkus-pr-main-52948-preview.surge.sh/version/main/guides/

  • Images of blog posts older than 3 months are not available.
  • Newsletters older than 3 months are not available.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@gsmet
Copy link
Copy Markdown
Member

gsmet commented Mar 25, 2026

@carlesarnal I'm not sure what's going on but it seems there is a compilation issue with the tests.

@gsmet gsmet force-pushed the fix/avro-named-schema-idl-52882 branch from 9b80498 to d31fd3f Compare April 1, 2026 16:24
@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

gsmet added a commit to gsmet/quarkus that referenced this pull request Apr 3, 2026
Config tracking is also used to dump the dependencies for the Develocity
cache to work and we need this to be enabled even if we decide to skip
the Quarkus build, as we might not skip the code generation.

This was causing issues with cache being stalled, in particular for pull
request quarkusio#52948 .

Renaming the variable avoids that configuring <skip>${skipTests}<skip>
as done in integration-tests/pom.xml also skips config tracking.
@gsmet
Copy link
Copy Markdown
Member

gsmet commented Apr 3, 2026

I had a closer look and the issue seems related to #53434 .

gsmet added a commit to gsmet/quarkus that referenced this pull request Apr 3, 2026
Config tracking is also used to dump the dependencies for the Develocity
cache to work and we need this to be enabled even if we decide to skip
the Quarkus build, as we might not skip the code generation.

This was causing issues with cache being stalled, in particular for pull
request quarkusio#52948 .

Renaming the variable avoids that configuring <skip>${skipTests}<skip>
as done in integration-tests/pom.xml also skips config tracking.
The deprecated Idl parser only supports protocol-wrapped IDL syntax.
Switch to IdlReader (from avro-idl artifact) which also supports the
named schema IDL syntax introduced in Avro 1.12.0.

Fixes quarkusio#52882
@gsmet gsmet force-pushed the fix/avro-named-schema-idl-52882 branch from d31fd3f to 5c0b8a2 Compare April 3, 2026 19:48
@gsmet
Copy link
Copy Markdown
Member

gsmet commented Apr 3, 2026

Rebasing with the fix. Fingers crossed.

@quarkus-bot
Copy link
Copy Markdown

quarkus-bot bot commented Apr 3, 2026

Status for workflow Quarkus Documentation CI

This is the status report for running Quarkus Documentation CI on commit 5c0b8a2.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

Warning

There are other workflow runs running, you probably need to wait for their status before merging.

@quarkus-bot
Copy link
Copy Markdown

quarkus-bot bot commented Apr 4, 2026

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit 5c0b8a2.

Failing Jobs

Status Name Step Failures Logs Raw logs Build scan
Quickstarts Compilation - JDK 25 Compile Quickstarts Failures Logs Raw logs 🚧

You can consult the Develocity build scans.

Failures

⚙️ Quickstarts Compilation - JDK 25 #

- Failing: security-openid-connect-websockets-next-quickstart 

📦 security-openid-connect-websockets-next-quickstart

Failed to execute goal io.quarkus:quarkus-maven-plugin:999-SNAPSHOT:build (default-build) on project security-openid-connect-websockets-next-quickstart: Failed to build quarkus application


Flaky tests - Develocity

⚙️ JVM Tests - JDK 17

📦 extensions/smallrye-reactive-messaging-kafka/deployment

io.quarkus.smallrye.reactivemessaging.kafka.deployment.testing.KafkaDevServicesContinuousTestingTestCase.testContinuousTestingScenario2 - History

  • org.testcontainers.containers.ContainerLaunchException: Container startup failed for image quay.io/apicurio/apicurio-registry:3.1.7 - java.util.concurrent.CompletionException
Details
java.util.concurrent.CompletionException: org.testcontainers.containers.ContainerLaunchException: Container startup failed for image quay.io/apicurio/apicurio-registry:3.1.7
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1807)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)

⚙️ JVM Tests - JDK 25 Semeru

📦 extensions/load-shedding/deployment

io.quarkus.load.shedding.NaiveLoadSheddingTest.test - History

  • Expecting actual: 98 to be greater than or equal to: 100 - java.lang.AssertionError
Details
java.lang.AssertionError: 

Expecting actual:
  98
to be greater than or equal to:
  100

	at io.quarkus.load.shedding.NaiveLoadSheddingTest.test(NaiveLoadSheddingTest.java:54)

⚙️ JVM Integration Tests - JDK 21

📦 integration-tests/compose-devservices

io.quarkus.it.compose.devservices.rabbitmq.RabbitmqTest.test - History

  • Read timed out - java.net.SocketTimeoutException
Details
java.net.SocketTimeoutException: Read timed out
	at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:278)
	at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:304)
	at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:346)
	at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:796)
	at java.base/java.net.Socket$SocketInputStream.read(Socket.java:1099)
	at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:161)
	at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:82)

@gsmet gsmet merged commit 667fd64 into quarkusio:main Apr 4, 2026
67 of 68 checks passed
@quarkus-bot quarkus-bot bot added this to the 3.35 - main milestone Apr 4, 2026
@gsmet
Copy link
Copy Markdown
Member

gsmet commented Apr 4, 2026

Thanks, and good we discovered this Develocity cache issue!

@gsmet gsmet modified the milestones: 3.35 - main, 3.34.3 Apr 7, 2026
gsmet added a commit to gsmet/quarkus that referenced this pull request Apr 7, 2026
Config tracking is also used to dump the dependencies for the Develocity
cache to work and we need this to be enabled even if we decide to skip
the Quarkus build, as we might not skip the code generation.

This was causing issues with cache being stalled, in particular for pull
request quarkusio#52948 .

Renaming the variable avoids that configuring <skip>${skipTests}<skip>
as done in integration-tests/pom.xml also skips config tracking.

(cherry picked from commit 9523fde)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/dependencies Pull requests that update a dependency file kind/bugfix triage/flaky-test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Quarkus Avro extension cannot generate new Schema syntax Idl.

2 participants