Skip to content
This repository was archived by the owner on Apr 28, 2025. It is now read-only.

Commit 844cf2d

Browse files
Fix for 3.7.1
1 parent 290f56b commit 844cf2d

File tree

7 files changed

+79
-20
lines changed

7 files changed

+79
-20
lines changed

SeleniumGridExtras/pom.xml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.groupon.selenium-grid-extras</groupId>
66
<artifactId>SeleniumGridExtras</artifactId>
7-
<version>1.12.17-SNAPSHOT</version>
7+
<version>2.0.0-SNAPSHOT</version>
88

99
<repositories>
1010
<repository>
@@ -19,11 +19,11 @@
1919
</repositories>
2020

2121
<properties>
22-
<version.selenium>3.5.3</version.selenium>
22+
<version.selenium>3.7.1</version.selenium>
2323
</properties>
2424

2525
<dependencies>
26-
<dependency> <!-- Selenium 2.53.1 comes with jna-platform 4.1.0 -->
26+
<dependency> <!-- Selenium 3.7.1 comes with jna-platform 4.1.0 -->
2727
<groupId>net.java.dev.jna</groupId> <!-- Needed for BrowerVersionDetector (for IE) -->
2828
<artifactId>jna-platform</artifactId>
2929
<version>4.1.0</version>
@@ -50,31 +50,31 @@
5050
<version>4.11</version>
5151
<scope>test</scope>
5252
</dependency>
53-
<dependency> <!-- Selenium 2.53.1 comes with commons-io 2.4 -->
53+
<dependency> <!-- Selenium 3.7.1 comes with commons-io 2.5 -->
5454
<groupId>commons-io</groupId> <!-- GridHub.writeToFile requires this -->
5555
<artifactId>commons-io</artifactId>
56-
<version>2.4</version>
56+
<version>2.5</version>
5757
</dependency>
5858
<dependency> <!-- Selenium 2.53.1 comes with commons-codec 1.10 -->
5959
<groupId>commons-codec</groupId> <!-- ScreenshotUtility.encodeStreamToBase64 requires this -->
6060
<artifactId>commons-codec</artifactId>
6161
<version>1.10</version>
6262
</dependency>
6363
<!-- Needed for `Should we store all of these configs in central location on the HUB node and update from there? (1-yes/0-no)` -->
64-
<dependency> <!-- Selenium 2.53.1 comes with httpclient 4.5.1 -->
64+
<dependency> <!-- Selenium 3.7.1 comes with httpclient 4.5.3 -->
6565
<groupId>org.apache.httpcomponents</groupId>
6666
<artifactId>httpclient</artifactId>
67-
<version>4.3.1</version>
67+
<version>4.5.3</version>
6868
</dependency>
69-
<dependency> <!-- Selenium 2.53.1 comes with commons-lang3 3.4 -->
69+
<dependency> <!-- Selenium 3.7.1 comes with commons-lang3 3.5 -->
7070
<groupId>org.apache.commons</groupId> <!-- Needed all over -->
7171
<artifactId>commons-lang3</artifactId>
72-
<version>3.3.2</version>
72+
<version>3.5</version>
7373
</dependency>
74-
<dependency>
74+
<dependency> <!-- Selenium 3.7.1 comes with gson 2.8.2 -->
7575
<groupId>com.google.code.gson</groupId>
7676
<artifactId>gson</artifactId>
77-
<version>2.8.1</version>
77+
<version>2.8.2</version>
7878
</dependency>
7979
<dependency>
8080
<groupId>net.coobird</groupId>
@@ -106,7 +106,7 @@
106106
<artifactId>xuggler</artifactId>
107107
<version>0.16</version>
108108
</dependency>
109-
<dependency> <!-- selenium-api-2.53.1 comes with guava 19.0 -->
109+
<dependency> <!-- selenium-api-3.7.1 comes with guava 23.0 -->
110110
<artifactId>guava</artifactId> <!-- Needed for UpgradeGridExtrasTask.getSanitizedReleaseList -->
111111
<groupId>com.google.guava</groupId>
112112
<type>jar</type>
@@ -120,7 +120,7 @@
120120
<dependency>
121121
<groupId>org.mockito</groupId>
122122
<artifactId>mockito-core</artifactId>
123-
<version>2.0.31-beta</version>
123+
<version>2.12.0</version>
124124
<scope>test</scope>
125125
</dependency>
126126
</dependencies>

SeleniumGridExtras/src/main/java/com/groupon/seleniumgridextras/grid/proxies/AutoProxy.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import org.openqa.grid.common.RegistrationRequest;
55
import org.openqa.grid.common.exception.RemoteUnregisterException;
6-
import org.openqa.grid.internal.Registry;
6+
import org.openqa.grid.internal.GridRegistry;
77
import org.openqa.grid.internal.TestSession;
88
import org.openqa.grid.internal.listeners.SelfHealingProxy;
99
import org.openqa.grid.internal.utils.HtmlRenderer;
@@ -24,7 +24,7 @@ public class AutoProxy extends DefaultRemoteProxy implements SelfHealingProxy {
2424
private Date startTime;
2525
private HtmlRenderer renderer = new ExtrasHtmlRenderer(this);
2626

27-
public AutoProxy(RegistrationRequest request, Registry registry) {
27+
public AutoProxy(RegistrationRequest request, GridRegistry registry) {
2828
super(request, registry);
2929
NodeManager nodeManager = new NodeManager(this);
3030
new Thread(nodeManager).start();

SeleniumGridExtras/src/main/java/com/groupon/seleniumgridextras/grid/proxies/SetupTeardownProxy.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
import com.groupon.seleniumgridextras.utilities.threads.video.VideoDownloaderCallable;
5353
import org.apache.log4j.Logger;
5454
import org.openqa.grid.common.RegistrationRequest;
55-
import org.openqa.grid.internal.Registry;
55+
import org.openqa.grid.internal.GridRegistry;
5656
import org.openqa.grid.internal.TestSession;
5757
import org.openqa.grid.internal.listeners.TestSessionListener;
5858
import org.openqa.grid.selenium.proxy.DefaultRemoteProxy;
@@ -78,7 +78,7 @@ public class SetupTeardownProxy extends DefaultRemoteProxy implements TestSessio
7878
private static Logger logger = Logger.getLogger(SetupTeardownProxy.class);
7979

8080

81-
public SetupTeardownProxy(RegistrationRequest request, Registry registry) {
81+
public SetupTeardownProxy(RegistrationRequest request, GridRegistry registry) {
8282
super(request, registry);
8383
logger.info(String.format("Attaching node %s", this.getId()));
8484
}

SeleniumGridExtras/src/main/java/com/groupon/seleniumgridextras/grid/servlets/ProxyStatusJsonServlet.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.google.gson.GsonBuilder;
44
import com.google.gson.JsonObject;
55
import org.openqa.grid.internal.ProxySet;
6-
import org.openqa.grid.internal.Registry;
6+
import org.openqa.grid.internal.GridRegistry;
77
import org.openqa.grid.internal.RemoteProxy;
88
import org.openqa.grid.internal.TestSlot;
99
import org.openqa.grid.web.servlet.RegistryBasedServlet;
@@ -27,7 +27,7 @@ public ProxyStatusJsonServlet() {
2727
this(null);
2828
}
2929

30-
public ProxyStatusJsonServlet(Registry registry) {
30+
public ProxyStatusJsonServlet(GridRegistry registry) {
3131
super(registry);
3232
}
3333

@@ -102,4 +102,3 @@ private Map getResponse() {
102102
}
103103

104104
}
105-

SeleniumGridExtras/src/main/java/com/groupon/seleniumgridextras/tasks/AutoUpgradeDrivers.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import com.groupon.seleniumgridextras.config.RuntimeConfig;
88
import com.groupon.seleniumgridextras.tasks.config.TaskDescriptions;
99
import com.groupon.seleniumgridextras.utilities.json.JsonCodec;
10+
import com.groupon.seleniumgridextras.Version;
11+
import com.groupon.seleniumgridextras.utilities.VersionCompare;
1012

1113
import org.apache.log4j.Logger;
1214

@@ -85,9 +87,18 @@ public JsonObject execute() {
8587
}
8688

8789
if (updateWebDriver) {
90+
String gridExtrasVersion = Version.getSanitizedVersion();
8891
String
8992
newWebDriverVersion =
9093
RuntimeConfig.getReleaseManager().getWedriverLatestVersion().getPrettyPrintVersion(".");
94+
if(gridExtrasVersion.startsWith("2.")) {
95+
if(VersionCompare.versionCompare(newWebDriverVersion, "3.7.1") < 0) {
96+
String message = String.format("SeleniumGridExtras 2.X is not compatible with Selenium version 3.7.0 or less.");
97+
logger.info(message);
98+
getJsonResponse().addKeyValues(JsonCodec.OUT, message);
99+
return getJsonResponse().getJson();
100+
}
101+
}
91102
logger.info("WebDriver JAR " + genericUpdate + " " + newWebDriverVersion);
92103
RuntimeConfig.getConfig().getWebdriver().setVersion(newWebDriverVersion);
93104
updateVersionFor(configHash, "webdriver", newWebDriverVersion);

SeleniumGridExtras/src/main/java/com/groupon/seleniumgridextras/tasks/UpgradeGridExtrasTask.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.groupon.seleniumgridextras.tasks.config.TaskDescriptions;
1010
import com.groupon.seleniumgridextras.utilities.FileIOUtility;
1111
import com.groupon.seleniumgridextras.utilities.json.JsonCodec;
12+
import com.groupon.seleniumgridextras.utilities.VersionCompare;
1213
import org.apache.log4j.Logger;
1314

1415
import java.io.File;
@@ -203,6 +204,15 @@ public JsonObject execute(String version) {
203204

204205
getJsonResponse().addKeyValues(JsonCodec.GridExtras.NEW_VERSION, version);
205206

207+
if (version.startsWith("2.")) {
208+
String webdriverVersion = RuntimeConfig.getConfig().getWebdriver().getVersion();
209+
if (VersionCompare.versionCompare(webdriverVersion, "3.7.1") < 0) {
210+
String message = String.format("SeleniumGridExtras 2.X is not compatible with Selenium version 3.7.0 or less.");
211+
logger.info(message);
212+
getJsonResponse().addKeyValues(JsonCodec.OUT, message);
213+
return getJsonResponse().getJson();
214+
}
215+
}
206216

207217
File destinationJar = new File(RuntimeConfig.getSeleniungGridExtrasHomePath(),
208218
String.format("SeleniumGridExtras-%s-SNAPSHOT-jar-with-dependencies.jar", version));
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.groupon.seleniumgridextras.utilities;
2+
3+
public class VersionCompare {
4+
5+
/**
6+
Return 1 if version1 is greater than version2
7+
Return 0 if version 1 is equal to version2
8+
Return -1 if version 1 is less than version2
9+
*/
10+
public static int versionCompare(String version1, String version2) {
11+
int major1 = (version1.split(".").length > 0) ? Integer.parseInt(version1.split(".")[0]) : 0;
12+
int minor1 = (version1.split(".").length > 1) ? Integer.parseInt(version1.split(".")[1]) : 0;
13+
int patch1 = (version1.split(".").length > 2) ? Integer.parseInt(version1.split(".")[2]) : 0;
14+
15+
int major2 = (version2.split(".").length > 0) ? Integer.parseInt(version2.split(".")[0]) : 0;
16+
int minor2 = (version2.split(".").length > 1) ? Integer.parseInt(version2.split(".")[1]) : 0;
17+
int patch2 = (version2.split(".").length > 2) ? Integer.parseInt(version2.split(".")[2]) : 0;
18+
19+
if (major1 > major2) {
20+
return 1;
21+
} else if (major1 < major2) {
22+
return -1;
23+
} else { // Majors match
24+
if (minor1 > minor2) {
25+
return 1;
26+
} else if (minor1 < minor2) {
27+
return -1;
28+
} else {
29+
if (patch1 > patch2) {
30+
return 1;
31+
} else if (patch1 < patch2) {
32+
return -1;
33+
} else {
34+
return 0;
35+
}
36+
}
37+
}
38+
}
39+
}

0 commit comments

Comments
 (0)