Skip to content

Commit e63b91c

Browse files
committed
server: Refactoring driver provider registation even more
1 parent 51c1ed3 commit e63b91c

File tree

2 files changed

+34
-10
lines changed

2 files changed

+34
-10
lines changed

Diff for: java/server/src/org/openqa/selenium/remote/server/DefaultDriverProvider.java

+5
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,9 @@ private WebDriver callConstructor(Class<? extends WebDriver> from, Capabilities
9494
throw new WebDriverException(e);
9595
}
9696
}
97+
98+
@Override
99+
public String toString() {
100+
return implementation != null ? implementation.toString() : driverClass;
101+
}
97102
}

Diff for: java/server/src/org/openqa/selenium/remote/server/DefaultDriverSessions.java

+29-10
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
public class DefaultDriverSessions implements DriverSessions {
4040

41-
private static final Logger log = Logger.getLogger(DefaultDriverSessions.class.getName());
41+
private static final Logger LOG = Logger.getLogger(DefaultDriverSessions.class.getName());
4242

4343
private final DriverFactory factory;
4444

@@ -67,6 +67,15 @@ public DefaultDriverSessions() {
6767
this(Platform.getCurrent(), new DefaultDriverFactory());
6868
}
6969

70+
public DefaultDriverSessions(DriverFactory factory) {
71+
this(Platform.getCurrent(), factory);
72+
}
73+
74+
/**
75+
* @deprecated Use DefaultDriverSessions(DriverFactory factory) constructor
76+
* and register all drivers to the factory
77+
*/
78+
@Deprecated
7079
public DefaultDriverSessions(
7180
DriverFactory factory, Map<Capabilities, Class<? extends WebDriver>> drivers) {
7281
this.factory = factory;
@@ -95,12 +104,26 @@ private void registerServiceLoaders(Platform current) {
95104

96105
private void registerDriverProvider(Platform current, DriverProvider provider) {
97106
Capabilities caps = provider.getProvidedCapabilities();
98-
if (caps.getPlatform() == null || caps.getPlatform() == Platform.ANY || current.is(caps.getPlatform())) {
99-
factory.registerDriverProvider(caps, provider);
100-
} else {
101-
log.info("Driver provider " + provider + " registration is skipped: registration capabilities "
102-
+ caps.toString() + " does not match with current platform: " + current.toString());
107+
if (!platformMatches(current, caps)) {
108+
LOG.info(String.format(
109+
"Driver provider %s registration is skipped:%n"
110+
+ "registration capabilities %s does not match the current platform %s",
111+
provider, caps, current));
112+
return;
103113
}
114+
115+
factory.registerDriverProvider(caps, provider);
116+
}
117+
118+
private boolean platformMatches(Platform current, Capabilities caps) {
119+
return caps.getPlatform() == null
120+
|| caps.getPlatform() == Platform.ANY
121+
|| current.is(caps.getPlatform());
122+
}
123+
124+
public void registerDriver(Capabilities capabilities, Class<? extends WebDriver> implementation) {
125+
factory.registerDriverProvider(
126+
capabilities, new DefaultDriverProvider(capabilities, implementation));
104127
}
105128

106129
public SessionId newSession(Capabilities desiredCapabilities) throws Exception {
@@ -123,10 +146,6 @@ public void deleteSession(SessionId sessionId) {
123146
}
124147
}
125148

126-
public void registerDriver(Capabilities capabilities, Class<? extends WebDriver> implementation) {
127-
factory.registerDriver(capabilities, implementation);
128-
}
129-
130149
public Set<SessionId> getSessions() {
131150
return Collections.unmodifiableSet(sessionIdToDriver.keySet());
132151
}

0 commit comments

Comments
 (0)