Skip to content

Commit 8232eb3

Browse files
author
baechul Kim
committed
Added the same capability for the constructors with localservice and builder parameters as suggested by Tikhomirov Sergey
1 parent 60075ce commit 8232eb3

File tree

4 files changed

+70
-15
lines changed

4 files changed

+70
-15
lines changed

src/main/java/io/appium/java_client/AppiumDriver.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,40 +157,50 @@ protected static ImmutableMap<String, Object> getCommandImmutableMap(
157157
return builder.build();
158158
}
159159

160-
private AppiumDriver(CommandExecutor executor, Capabilities capabilities){
160+
private AppiumDriver(HttpCommandExecutor executor, Capabilities capabilities){
161161
super(executor, capabilities);
162162
this.executeMethod = new AppiumExecutionMethod(this);
163163
locationContext = new RemoteLocationContext(executeMethod);
164164
super.setErrorHandler(errorHandler);
165+
this.remoteAddress = executor.getAddressOfRemoteServer();
165166
}
166167

167168
public AppiumDriver(URL remoteAddress, Capabilities desiredCapabilities) {
168169
this(new AppiumCommandExecutor(
169170
getMobileCommands(), remoteAddress), desiredCapabilities);
170-
this.remoteAddress = remoteAddress;
171171
}
172172

173173
public AppiumDriver(URL remoteAddress, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {
174174
this(new AppiumCommandExecutor(
175175
getMobileCommands(), remoteAddress, httpClientFactory), desiredCapabilities);
176-
this.remoteAddress = remoteAddress;
177176
}
178177

179178
public AppiumDriver(AppiumDriverLocalService service, Capabilities desiredCapabilities) {
180179
this(new AppiumCommandExecutor(
181180
getMobileCommands(), service), desiredCapabilities);
182-
this.remoteAddress = service.getUrl();
181+
}
182+
183+
public AppiumDriver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {
184+
this(new AppiumCommandExecutor(
185+
getMobileCommands(), service, httpClientFactory), desiredCapabilities);
183186
}
184187

185188
public AppiumDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) {
186189
this(builder.build(), desiredCapabilities);
187190
}
188-
191+
192+
public AppiumDriver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {
193+
this(builder.build(), httpClientFactory, desiredCapabilities);
194+
}
195+
196+
public AppiumDriver(HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {
197+
this(AppiumDriverLocalService.buildDefaultService(), httpClientFactory, desiredCapabilities);
198+
}
199+
189200
public AppiumDriver(Capabilities desiredCapabilities) {
190201
this(AppiumDriverLocalService.buildDefaultService(), desiredCapabilities);
191202
}
192203

193-
194204
@Override
195205
protected Response execute(String command) {
196206
return super.execute(command, ImmutableMap.<String, Object>of());

src/main/java/io/appium/java_client/android/AndroidDriver.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,31 @@ public AndroidDriver(AppiumDriverLocalService service, Capabilities desiredCapab
9494
ANDROID_PLATFORM));
9595
this.setElementConverter(new JsonToAndroidElementConverter(this));
9696
}
97+
98+
public AndroidDriver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {
99+
super(service, httpClientFactory, substituteMobilePlatform(desiredCapabilities,
100+
ANDROID_PLATFORM));
101+
this.setElementConverter(new JsonToAndroidElementConverter(this));
102+
}
97103

98104
public AndroidDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) {
99105
super(builder, substituteMobilePlatform(desiredCapabilities,
100106
ANDROID_PLATFORM));
101107
this.setElementConverter(new JsonToAndroidElementConverter(this));
102108
}
103-
109+
110+
public AndroidDriver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {
111+
super(builder, httpClientFactory, substituteMobilePlatform(desiredCapabilities,
112+
ANDROID_PLATFORM));
113+
this.setElementConverter(new JsonToAndroidElementConverter(this));
114+
}
115+
116+
public AndroidDriver(HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {
117+
super(httpClientFactory, substituteMobilePlatform(desiredCapabilities,
118+
ANDROID_PLATFORM));
119+
this.setElementConverter(new JsonToAndroidElementConverter(this));
120+
}
121+
104122
public AndroidDriver(Capabilities desiredCapabilities) {
105123
super(substituteMobilePlatform(desiredCapabilities,
106124
ANDROID_PLATFORM));

src/main/java/io/appium/java_client/ios/IOSDriver.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,30 @@ public IOSDriver(AppiumDriverLocalService service, Capabilities desiredCapabilit
6969
IOS_PLATFORM));
7070
this.setElementConverter(new JsonToIOSElementConverter(this));
7171
}
72+
73+
public IOSDriver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {
74+
super(service, httpClientFactory, substituteMobilePlatform(desiredCapabilities,
75+
IOS_PLATFORM));
76+
this.setElementConverter(new JsonToIOSElementConverter(this));
77+
}
7278

7379
public IOSDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) {
7480
super(builder, substituteMobilePlatform(desiredCapabilities,
7581
IOS_PLATFORM));
7682
this.setElementConverter(new JsonToIOSElementConverter(this));
7783
}
84+
85+
public IOSDriver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {
86+
super(builder, httpClientFactory, substituteMobilePlatform(desiredCapabilities,
87+
IOS_PLATFORM));
88+
this.setElementConverter(new JsonToIOSElementConverter(this));
89+
}
90+
91+
public IOSDriver(HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {
92+
super(httpClientFactory, substituteMobilePlatform(desiredCapabilities,
93+
IOS_PLATFORM));
94+
this.setElementConverter(new JsonToIOSElementConverter(this));
95+
}
7896

7997
public IOSDriver(Capabilities desiredCapabilities) {
8098
super(substituteMobilePlatform(desiredCapabilities,

src/main/java/io/appium/java_client/remote/AppiumCommandExecutor.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,34 @@
2727
import java.net.ConnectException;
2828
import java.net.URL;
2929
import java.util.Map;
30+
import org.openqa.selenium.remote.internal.ApacheHttpClient;
3031

3132
public class AppiumCommandExecutor extends HttpCommandExecutor{
3233

3334
private final DriverService service;
3435

35-
public AppiumCommandExecutor(Map<String, CommandInfo> additionalCommands, URL addressOfRemoteServer,
36-
HttpClient.Factory httpClientFactory) {
36+
public AppiumCommandExecutor(Map<String, CommandInfo> additionalCommands,
37+
URL addressOfRemoteServer,
38+
HttpClient.Factory httpClientFactory) {
3739
super(additionalCommands, addressOfRemoteServer, httpClientFactory);
3840
service = null;
3941
}
4042

41-
public AppiumCommandExecutor(Map<String, CommandInfo> additionalCommands, URL addressOfRemoteServer) {
42-
super(additionalCommands, addressOfRemoteServer);
43-
service = null;
43+
public AppiumCommandExecutor(Map<String, CommandInfo> additionalCommands,
44+
DriverService service,
45+
HttpClient.Factory httpClientFactory) {
46+
super(additionalCommands, service.getUrl(), httpClientFactory);
47+
this.service = service;
48+
}
49+
50+
public AppiumCommandExecutor(Map<String, CommandInfo> additionalCommands,
51+
URL addressOfRemoteServer) {
52+
this(additionalCommands, addressOfRemoteServer, new ApacheHttpClient.Factory());
4453
}
4554

46-
public AppiumCommandExecutor(Map<String, CommandInfo> additionalCommands, DriverService service) {
47-
super(additionalCommands, service.getUrl());
48-
this.service = service;
55+
public AppiumCommandExecutor(Map<String, CommandInfo> additionalCommands,
56+
DriverService service) {
57+
this(additionalCommands, service, new ApacheHttpClient.Factory());
4958
}
5059

5160
@Override

0 commit comments

Comments
 (0)