Add getMappedPort support for UDP protocol #11377
Open
+162
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds support for retrieving mapped ports with protocol specification, enabling proper UDP port mapping support as requested in #554.
Changes
New Methods
ContainerState.getMappedPort(int originalPort, InternetProtocol protocol)getMappedPortthat accepts anInternetProtocolparameter (TCP or UDP)getMappedPort(int)method now delegates to this with TCP as the default protocolContainer.addExposedPort(int port, InternetProtocol protocol)GenericContainerBenefits
Before this change, getting a UDP mapped port required verbose code:
Now users can simply use:
Use Cases
Testing
Added 4 new unit tests in
ContainerStateTest:shouldGetMappedPortForUdpProtocol()- Tests UDP port mapping retrievalshouldGetMappedPortForTcpUsingProtocol()- Tests TCP port mapping with explicit protocolshouldThrowForUnmappedUdpPort()- Tests error handling for unmapped portsshouldSupportBothTcpAndUdpOnSamePort()- Tests using same port number for both TCP and UDPAll 10 tests in ContainerStateTest pass.
Closes #554