Skip to content

Commit

Permalink
Include config key to avoid tmp folder (issue #657)
Browse files Browse the repository at this point in the history
  • Loading branch information
bonigarcia committed Jul 3, 2021
1 parent 30524dd commit 1f6a5e7
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 4 deletions.
5 changes: 5 additions & 0 deletions src/main/java/io/github/bonigarcia/wdm/WebDriverManager.java
Expand Up @@ -454,6 +454,11 @@ public WebDriverManager avoidReadReleaseFromRepository() {
return instanceMap.get(getDriverManagerType());
}

public WebDriverManager avoidTmpFolder() {
config().setAvoidTmpFolder(true);
return instanceMap.get(getDriverManagerType());
}

public WebDriverManager ttl(int seconds) {
config().setTtl(seconds);
return instanceMap.get(getDriverManagerType());
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/io/github/bonigarcia/wdm/config/Config.java
Expand Up @@ -78,6 +78,8 @@ public class Config {
"wdm.avoidResolutionCache", Boolean.class);
ConfigKey<Boolean> avoidReadReleaseFromRepository = new ConfigKey<>(
"wdm.avoidReadReleaseFromRepository", Boolean.class);
ConfigKey<Boolean> avoidTmpFolder = new ConfigKey<>("wdm.avoidTmpFolder",
Boolean.class);
ConfigKey<Integer> timeout = new ConfigKey<>("wdm.timeout", Integer.class);
ConfigKey<Boolean> versionsPropertiesOnlineFirst = new ConfigKey<>(
"wdm.versionsPropertiesOnlineFirst", Boolean.class);
Expand Down Expand Up @@ -445,6 +447,15 @@ public Config setAvoidReadReleaseFromRepository(boolean value) {
return this;
}

public boolean isAvoidTmpFolder() {
return resolve(avoidTmpFolder);
}

public Config setAvoidTmpFolder(boolean value) {
this.avoidTmpFolder.setValue(value);
return this;
}

public int getTimeout() {
return resolve(timeout);
}
Expand Down
10 changes: 7 additions & 3 deletions src/main/java/io/github/bonigarcia/wdm/online/Downloader.java
Expand Up @@ -127,7 +127,8 @@ private Optional<File> downloadAndExtract(URL url, File targetFile)
throws IOException {
log.info("Downloading {}", url);
File targetFolder = targetFile.getParentFile();
File tempDir = createTempDirectory("").toFile();
File tempDir = config.isAvoidTmpFolder() ? targetFolder
: createTempDirectory("").toFile();
File temporaryFile = new File(tempDir, targetFile.getName());

log.trace("Target folder {} ... using temporal file {}", targetFolder,
Expand All @@ -140,7 +141,8 @@ private Optional<File> downloadAndExtract(URL url, File targetFile)
extractedFiles.iterator().next().getName());
boolean driverExists = resultingDriver.exists();

if (!driverExists || config.isForceDownload()) {
if ((!driverExists || config.isForceDownload())
&& !config.isAvoidTmpFolder()) {
if (driverExists) {
log.debug("Overriding former driver {}", resultingDriver);
deleteFile(resultingDriver);
Expand All @@ -152,7 +154,9 @@ private Optional<File> downloadAndExtract(URL url, File targetFile)
if (!config.isExecutable(resultingDriver)) {
setFileExecutable(resultingDriver);
}
deleteFolder(tempDir);
if (!config.isAvoidTmpFolder()) {
deleteFolder(tempDir);
}
log.trace("Driver after extraction {}", resultingDriver);

return of(resultingDriver);
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/webdrivermanager.properties
Expand Up @@ -9,6 +9,7 @@ wdm.avoidAutoReset=false
wdm.avoidResolutionCache=false
wdm.avoidFallback=false
wdm.avoidReadReleaseFromRepository=false
wdm.avoidTmpFolder=false
wdm.timeout=30
wdm.serverPort=4041
wdm.resolutionCache=resolution.properties
Expand Down
Expand Up @@ -43,7 +43,7 @@ class ForceDownloadTest {
void testForceDownload(Class<? extends WebDriver> driverClass) {
WebDriverManager driverManager = WebDriverManager
.getInstance(driverClass);
driverManager.forceDownload().avoidBrowserDetection()
driverManager.forceDownload().avoidTmpFolder().avoidBrowserDetection()
.avoidReadReleaseFromRepository().timeout(20)
.operatingSystem(WIN).setup();
assertThat(driverManager.getDownloadedDriverPath()).isNotNull();
Expand Down

0 comments on commit 1f6a5e7

Please sign in to comment.