diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml
index 463a629..262c9f9 100644
--- a/.config/checkstyle/checkstyle.xml
+++ b/.config/checkstyle/checkstyle.xml
@@ -79,6 +79,11 @@
+
+
+
+
+
diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml
index e96576b..9dc7a0f 100644
--- a/.config/pmd/java/ruleset.xml
+++ b/.config/pmd/java/ruleset.xml
@@ -146,7 +146,6 @@
-
@@ -164,6 +163,7 @@
+
@@ -208,6 +208,36 @@
+
+
+`Optional#get` can be interpreted as a getter by developers, however this is not the case as it throws an exception when empty.
+
+It should be replaced by
+* doing a mapping directly using `.map` or `.ifPresent`
+* using the preferred `.orElseThrow`, `.orElse` or `.or` methods
+
+Java Developer Brian Goetz also writes regarding this topic:
+
+> Java 8 was a huge improvement to the platform, but one of the few mistakes we made was the naming of `Optional.get()`, because the name just invites people to call it without calling `isPresent()`, undermining the whole point of using `Optional` in the first place.
+>
+> During the Java 9 time frame, we proposed to deprecate `Optional.get()`, but the public response to that was ... let's say cold. As a smaller step, we introduced `orElseThrow()` in 10 (see [JDK-8140281](https://bugs.openjdk.java.net/browse/JDK-8140281)) as a more transparently named synonym for the current pernicious behavior of `get()`. IDEs warn on unconditional use of `get()`, but not on `orElseThrow()`, which is a step forward in teaching people to code better. The question is, in a sense, a "glass half empty" view of the current situation; `get()` is still problematic.
+
+ 3
+
+
+
+
+
+
+
+
+
com.puppycrawl.tools
checkstyle
- 13.0.0
+ 13.2.0
@@ -83,12 +83,12 @@
net.sourceforge.pmd
pmd-core
- 7.20.0
+ 7.21.0
net.sourceforge.pmd
pmd-java
- 7.20.0
+ 7.21.0
diff --git a/testcontainers-selenium-demo/pom.xml b/testcontainers-selenium-demo/pom.xml
index b6e5e56..86a8701 100644
--- a/testcontainers-selenium-demo/pom.xml
+++ b/testcontainers-selenium-demo/pom.xml
@@ -34,7 +34,7 @@
org.seleniumhq.selenium
selenium-dependencies-bom
- 4.40.0
+ 4.41.0
pom
import
@@ -108,7 +108,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.14.1
+ 3.15.0
${maven.compiler.release}
diff --git a/testcontainers-selenium/pom.xml b/testcontainers-selenium/pom.xml
index 4567910..36ec71e 100644
--- a/testcontainers-selenium/pom.xml
+++ b/testcontainers-selenium/pom.xml
@@ -70,7 +70,7 @@
org.seleniumhq.selenium
selenium-api
- 4.40.0
+ 4.41.0
provided
@@ -78,7 +78,7 @@
org.junit.jupiter
junit-jupiter
- 6.0.2
+ 6.0.3
test
@@ -90,7 +90,7 @@
org.seleniumhq.selenium
selenium-remote-driver
- 4.40.0
+ 4.41.0
test
@@ -108,13 +108,13 @@
org.seleniumhq.selenium
selenium-support
- 4.40.0
+ 4.41.0
test
org.seleniumhq.selenium
selenium-firefox-driver
- 4.40.0
+ 4.41.0
test
@@ -127,7 +127,7 @@
org.seleniumhq.selenium
selenium-chrome-driver
- 4.40.0
+ 4.41.0
test
@@ -187,7 +187,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.14.1
+ 3.15.0
${maven.compiler.release}
@@ -231,7 +231,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
+ 3.5.5
${skipTests}
@@ -320,7 +320,7 @@
com.puppycrawl.tools
checkstyle
- 13.0.0
+ 13.2.0
@@ -358,12 +358,12 @@
net.sourceforge.pmd
pmd-core
- 7.20.0
+ 7.21.0
net.sourceforge.pmd
pmd-java
- 7.20.0
+ 7.21.0
diff --git a/testcontainers-selenium/src/main/java/software/xdev/testcontainers/selenium/containers/browser/CapabilitiesBrowserWebDriverContainer.java b/testcontainers-selenium/src/main/java/software/xdev/testcontainers/selenium/containers/browser/CapabilitiesBrowserWebDriverContainer.java
index 5d75c29..4c92564 100644
--- a/testcontainers-selenium/src/main/java/software/xdev/testcontainers/selenium/containers/browser/CapabilitiesBrowserWebDriverContainer.java
+++ b/testcontainers-selenium/src/main/java/software/xdev/testcontainers/selenium/containers/browser/CapabilitiesBrowserWebDriverContainer.java
@@ -68,12 +68,14 @@ protected static DockerImageName getStandardImageForCapabilities(
final String seleniumVersion,
final Map browserDockerImages)
{
- return Optional.ofNullable(browserDockerImages.get(Optional.ofNullable(capabilities)
- .map(Capabilities::getBrowserName)
- .orElse(BrowserType.CHROME)))
+ final String browserName = Optional.ofNullable(capabilities)
+ .map(Capabilities::getBrowserName)
+ .orElse(BrowserType.CHROME);
+ return Optional.ofNullable(browserDockerImages.get(browserName))
.map(image -> image.withTag(seleniumVersion))
.orElseThrow(() -> new UnsupportedOperationException(
- "Unsupported Browser name; Supported: " + String.join(", ", BROWSER_DOCKER_IMAGES.keySet())
+ "Unsupported Browser name " + browserName + "; "
+ + "Supported: " + String.join(", ", BROWSER_DOCKER_IMAGES.keySet())
));
}