Skip to content

Commit 23edfa3

Browse files
Merge pull request #34 from aquality-automation/support/retry-local-server-start
Retry Appium local server starting
2 parents bb2c16d + 68ca23a commit 23edfa3

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.github.aquality-automation</groupId>
88
<artifactId>aquality-appium-mobile</artifactId>
9-
<version>3.1.1</version>
9+
<version>3.1.2</version>
1010

1111
<packaging>jar</packaging>
1212
<name>Aquality Appium Mobile</name>

src/main/java/aquality/appium/mobile/application/ApplicationFactory.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919

2020
public abstract class ApplicationFactory implements IApplicationFactory {
2121

22+
protected CustomActionRetrier getActionRetrier() {
23+
return new CustomActionRetrier(Collections.singletonList(SessionNotCreatedException.class));
24+
}
25+
2226
protected IllegalArgumentException getLoggedWrongPlatformNameException(String actualPlatform) {
2327
String message = AqualityServices.get(ILocalizationManager.class)
2428
.getLocalizedMessage("loc.platform.name.wrong", actualPlatform);
@@ -31,7 +35,7 @@ protected AppiumDriver getDriver(URL serviceUrl) {
3135
PlatformName platformName = AqualityServices.getApplicationProfile().getPlatformName();
3236
Capabilities capabilities = AqualityServices.getApplicationProfile().getDriverSettings().getCapabilities();
3337
Factory httpClientFactory = new ClientFactory();
34-
return new CustomActionRetrier(Collections.singletonList(SessionNotCreatedException.class))
38+
return getActionRetrier()
3539
.doWithRetry(() -> createSession(platformName, serviceUrl, httpClientFactory, capabilities));
3640
}
3741

src/main/java/aquality/appium/mobile/application/LocalApplicationFactory.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33
import aquality.appium.mobile.configuration.ILocalServiceSettings;
44
import io.appium.java_client.AppiumDriver;
55
import io.appium.java_client.service.local.AppiumDriverLocalService;
6+
import io.appium.java_client.service.local.AppiumServerHasNotBeenStartedLocallyException;
67
import io.appium.java_client.service.local.AppiumServiceBuilder;
78

9+
import java.util.Collections;
10+
811
public class LocalApplicationFactory extends ApplicationFactory {
912

1013
@Override
@@ -14,7 +17,7 @@ public Application getApplication() {
1417
.withCapabilities(settings.getCapabilities());
1518
settings.getArguments().forEach(builder::withArgument);
1619
AppiumDriverLocalService service = AppiumDriverLocalService.buildService(builder);
17-
service.start();
20+
getActionRetrier().doWithRetry(service::start, Collections.singletonList(AppiumServerHasNotBeenStartedLocallyException.class));
1821
AppiumDriver driver = getDriver(service.getUrl());
1922
logApplicationIsReady();
2023
return new Application(driver, service);

0 commit comments

Comments
 (0)