Skip to content

Commit 93bc56b

Browse files
authored
Merge pull request #2286 from zebrunner/develop
1.2.11
2 parents 06694d2 + 7bf4cc1 commit 93bc56b

File tree

2 files changed

+24
-21
lines changed

2 files changed

+24
-21
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
<properties>
5050
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
5151
<java.version>11</java.version>
52-
<carina-webdriver.version>1.2.11</carina-webdriver.version>
52+
<carina-webdriver.version>1.2.12</carina-webdriver.version>
5353
<!-- Logging -->
5454
<slf4j.version>1.7.30</slf4j.version>
5555
<log4j.version>2.17.1</log4j.version>
@@ -66,7 +66,7 @@
6666
<repository>
6767
<id>zebrunner_snapshots</id>
6868
<name>zebrunner Snapshots</name>
69-
<url>https://nexus.zebrunner.dev/repository/ce-snapshots/</url>
69+
<url>https://public-nexus.zebrunner.com/repository/ce-snapshots/</url>
7070
<releases>
7171
<enabled>false</enabled>
7272
</releases>
@@ -361,7 +361,7 @@
361361
<snapshotRepository>
362362
<id>ZBR_Nexus</id>
363363
<name>Zebrunner Snapshots</name>
364-
<url>https://nexus.zebrunner.dev/repository/ce-snapshots/</url>
364+
<url>https://public-nexus.zebrunner.com/repository/ce-snapshots/</url>
365365
</snapshotRepository>
366366
</distributionManagement>
367367
</project>

src/main/java/com/zebrunner/carina/core/listeners/CarinaListener.java

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,31 @@
1919
import java.lang.invoke.MethodHandles;
2020
import java.lang.reflect.InvocationTargetException;
2121
import java.lang.reflect.Method;
22+
import java.util.ArrayList;
2223
import java.util.Arrays;
24+
import java.util.HashSet;
2325
import java.util.List;
2426
import java.util.Map;
2527
import java.util.Optional;
2628
import java.util.Set;
2729
import java.util.concurrent.ConcurrentHashMap;
30+
import java.util.concurrent.TimeUnit;
2831
import java.util.concurrent.atomic.AtomicReference;
2932
import java.util.regex.Matcher;
3033
import java.util.regex.Pattern;
34+
import java.util.stream.Collectors;
3135

3236
import javax.xml.parsers.DocumentBuilder;
3337
import javax.xml.parsers.DocumentBuilderFactory;
3438

3539
import com.zebrunner.agent.core.config.provider.SystemPropertiesConfigurationProvider;
3640
import com.zebrunner.agent.core.webdriver.CapabilitiesCustomizerChain;
41+
import com.zebrunner.carina.webdriver.IDriverPool;
3742
import com.zebrunner.carina.webdriver.core.capability.CarinaCapabilitiesCustomizer;
3843
import org.apache.commons.lang3.StringUtils;
3944
import org.apache.commons.lang3.reflect.ConstructorUtils;
45+
import org.apache.commons.lang3.tuple.ImmutablePair;
46+
import org.apache.commons.lang3.tuple.Pair;
4047
import org.apache.logging.log4j.Level;
4148
import org.apache.logging.log4j.LogManager;
4249
import org.apache.logging.log4j.core.LoggerContext;
@@ -757,7 +764,7 @@ private void attachTestRunLabels(ISuite suite) {
757764
*
758765
*/
759766
private void takeScreenshot() {
760-
ConcurrentHashMap<String, CarinaDriver> drivers = getDrivers();
767+
Map<String, CarinaDriver> drivers = IDriverPool.getDrivers();
761768
try {
762769
for (Map.Entry<String, CarinaDriver> entry : drivers.entrySet()) {
763770
WebDriver drv = entry.getValue().getDriver();
@@ -772,30 +779,26 @@ public static class ShutdownHook extends Thread {
772779

773780
private static final Logger LOGGER = LoggerFactory.getLogger(ShutdownHook.class);
774781

775-
private void quitAllDriversOnHook() {
776-
// as it is shutdown hook just try to quit all existing drivers one by one
777-
for (CarinaDriver carinaDriver : driversPool) {
778-
// it is expected that all drivers are killed in appropriate AfterMethod/Class/Suite blocks
779-
String name = carinaDriver.getName();
780-
LOGGER.warn("Trying to quit driver '{}' on shutdown hook action!", name);
781-
carinaDriver.getDevice().disconnectRemote();
782-
try {
783-
LOGGER.debug("Driver closing...{}", name);
784-
carinaDriver.getDriver().close();
785-
LOGGER.debug("Driver exiting...{}", name);
786-
carinaDriver.getDriver().quit();
787-
LOGGER.debug("Driver exited...{}", name);
788-
} catch (Exception e) {
789-
// do nothing
790-
}
782+
private void quitAllDriversOnHook() throws InterruptedException {
783+
List<ImmutablePair<Long, String>> drivers4Close = new ArrayList<>();
784+
for (Map<String, CarinaDriver> drivers : IDriverPool.DRIVERS_POOL.values()) {
785+
drivers.keySet().forEach(key -> drivers4Close.add(new ImmutablePair<>(drivers.get(key).getThreadId(), key)));
791786
}
787+
drivers4Close.forEach(driver -> IDriverPool.quitDriver(driver.getRight(), driver.getLeft()));
788+
IDriverPool.EXECUTOR_SERVICE.shutdown();
789+
790+
IDriverPool.EXECUTOR_SERVICE.awaitTermination(10, TimeUnit.MINUTES);
792791
}
793792

794793
@Override
795794
public void run() {
796795
LOGGER.debug("Running shutdown hook");
797796
if (!Configuration.get(TestConfiguration.Parameter.FORCIBLY_DISABLE_DRIVER_QUIT, Boolean.class).orElse(false)) {
798-
quitAllDriversOnHook();
797+
try {
798+
quitAllDriversOnHook();
799+
} catch (InterruptedException e) {
800+
throw new RuntimeException(e);
801+
}
799802
}
800803
}
801804

0 commit comments

Comments
 (0)