From 91e16eacb18fecc0d2e7d70b3e7a85fdadb2e41a Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Tue, 30 Nov 2021 18:57:58 +0300 Subject: [PATCH] dbeaver/dbeaver-ee#876 Migrate to NIO --- .../SampleDataSourceConfigurationStorage.java | 13 +++++++------ .../io/cloudbeaver/model/session/WebSession.java | 11 +++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/server/bundles/io.cloudbeaver.connect.provider.sample/src/io/cloudbeaver/connect/provider/sample/SampleDataSourceConfigurationStorage.java b/server/bundles/io.cloudbeaver.connect.provider.sample/src/io/cloudbeaver/connect/provider/sample/SampleDataSourceConfigurationStorage.java index 8d77321bb6..0fe636038c 100644 --- a/server/bundles/io.cloudbeaver.connect.provider.sample/src/io/cloudbeaver/connect/provider/sample/SampleDataSourceConfigurationStorage.java +++ b/server/bundles/io.cloudbeaver.connect.provider.sample/src/io/cloudbeaver/connect/provider/sample/SampleDataSourceConfigurationStorage.java @@ -22,7 +22,8 @@ import org.jkiss.dbeaver.model.DBPDataSourceConfigurationStorage; import org.jkiss.dbeaver.model.DBPDataSourceContainer; import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry; -import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.Collections; import java.util.List; import java.util.Map; @@ -59,11 +60,11 @@ public class SampleDataSourceConfigurationStorage implements DBPDataSourceConfig @Override public List loadDataSources(DBPDataSourceRegistry registry, Map options) throws DBException { - File metadataFolder = registry.getProject().getMetadataFolder(false); - if (metadataFolder.exists()) { - File sampleConfigFile = new File(metadataFolder, SAMPLE_CONFIG_NAME); - if (sampleConfigFile.exists()) { - log.debug("Loading provided connections from [" + sampleConfigFile.getAbsolutePath() + "]"); + Path metadataFolder = registry.getProject().getMetadataFolder(false); + if (Files.exists(metadataFolder)) { + Path sampleConfigFile = metadataFolder.resolve(SAMPLE_CONFIG_NAME); + if (Files.exists(sampleConfigFile)) { + log.debug("Loading provided connections from [" + sampleConfigFile.toAbsolutePath() + "]"); List dsList = registry.loadDataSourcesFromFile(this, sampleConfigFile); // for (DBPDataSourceContainer ds : dsList) { // log.debug("\tProvided connection: " + ds.getName()); diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/session/WebSession.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/session/WebSession.java index bd71642e78..609280d432 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/session/WebSession.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/model/session/WebSession.java @@ -65,6 +65,7 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.File; import java.lang.reflect.InvocationTargetException; +import java.nio.file.Path; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -116,9 +117,9 @@ public class WebSession implements DBASession, DBAAuthCredentialsProvider, IAdap private final SessionContextImpl sessionAuthContext; @NotNull - public static File getUserProjectsFolder() { + public static Path getUserProjectsFolder() { return new File( - CBPlatform.getInstance().getWorkspace().getAbsolutePath(), USER_PROJECTS_FOLDER); + CBPlatform.getInstance().getWorkspace().getAbsolutePath(), USER_PROJECTS_FOLDER).toPath(); } public WebSession(HttpSession httpSession) { @@ -249,12 +250,10 @@ public class WebSession implements DBASession, DBAAuthCredentialsProvider, IAdap DBPProject globalProject = platform.getWorkspace().getActiveProject(); String projectName; - File projectPath; + Path projectPath; if (user != null) { projectName = CommonUtils.escapeFileName(user.getUserId()); - projectPath = new File( - getUserProjectsFolder(), - projectName); + projectPath = getUserProjectsFolder().resolve(projectName); } else { projectName = CommonUtils.escapeFileName(getSessionId()); // For anonymous sessions use path of global project