[
https://issues.apache.org/jira/browse/CAMEL-23214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guillaume Nodet reassigned CAMEL-23214:
---------------------------------------
Assignee: Guillaume Nodet
> Migrate AvailablePortFinder.getNextAvailable() to @RegisterExtension for
> proper port lifecycle
> ----------------------------------------------------------------------------------------------
>
> Key: CAMEL-23214
> URL: https://issues.apache.org/jira/browse/CAMEL-23214
> Project: Camel
> Issue Type: Improvement
> Reporter: Guillaume Nodet
> Assignee: Guillaume Nodet
> Priority: Minor
> Fix For: 4.19.0
>
>
> There are 156 test files across the codebase using
> `AvailablePortFinder.getNextAvailable()` which allocates a port but never
> releases it. This causes port conflicts and flaky `BindException` failures in
> CI, especially during parallel test execution.
> The fix is to migrate to `@RegisterExtension AvailablePortFinder.Port` which:
> * Tracks the allocated port
> * Auto-releases via `AfterAllCallback` when the test class completes
> * Prevents port reuse conflicts between test classes
> Top affected components by file count:
> * camel-mllp (17 files)
> * camel-grpc (14 files)
> * camel-platform-http-vertx (12 files)
> * camel-cometd (10 files)
> * camel-thrift (9 files)
> * camel-syslog (9 files)
> * camel-jetty (9 files)
> * camel-as2-component (8 files)
> * camel-cxf-soap (6 files)
> * camel-netty-http (5 files)
> * camel-lumberjack (5 files)
> * 50+ other components with 1-4 files each
> Only 24 files have already been migrated to the new pattern.
> This is a mechanical migration but requires care:
> * Static field ports become instance fields with `@RegisterExtension`
> * Port int references change to `port.getPort()` calls
> * Field initializers using ports need to move to methods
> * Some base test classes define shared ports
--
This message was sent by Atlassian Jira
(v8.20.10#820010)