CB-3930 use rm provider for rm fs (#2038)

This commit is contained in:
Alexander Skoblikov
2023-10-19 13:26:55 +03:00
committed by GitHub
parent d44e6b4e7a
commit 3a92d7d23d
3 changed files with 15 additions and 14 deletions
@@ -62,6 +62,12 @@ public class BaseWebProjectImpl extends BaseProjectImpl implements RMControllerP
return resourceController;
}
@NotNull
@Override
public RMProject getRMProject() {
return project;
}
@Override
public boolean isVirtual() {
return true;
@@ -16,13 +16,13 @@
*/
package io.cloudbeaver.service.rm.fs;
import io.cloudbeaver.model.session.WebSession;
import io.cloudbeaver.service.rm.nio.RMNIOFileSystemProvider;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.fs.DBFVirtualFileSystem;
import org.jkiss.dbeaver.model.fs.DBFVirtualFileSystemRoot;
import org.jkiss.dbeaver.model.rm.RMController;
import org.jkiss.dbeaver.model.rm.RMProject;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
@@ -35,8 +35,9 @@ public class RMVirtualFileSystem implements DBFVirtualFileSystem {
@NotNull
private final RMProject rmProject;
public RMVirtualFileSystem(@NotNull WebSession webSession, @NotNull RMProject rmProject) {
this.rmNioFileSystemProvider = new RMNIOFileSystemProvider(webSession.getRmController());
public RMVirtualFileSystem(@NotNull RMController rmController, @NotNull RMProject rmProject) {
this.rmNioFileSystemProvider = new RMNIOFileSystemProvider(rmController);
this.rmProject = rmProject;
}
@@ -16,13 +16,12 @@
*/
package io.cloudbeaver.service.rm.fs;
import io.cloudbeaver.WebProjectImpl;
import io.cloudbeaver.model.session.WebSession;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.model.app.DBPProject;
import org.jkiss.dbeaver.model.fs.DBFFileSystemProvider;
import org.jkiss.dbeaver.model.fs.DBFVirtualFileSystem;
import org.jkiss.dbeaver.model.rm.RMControllerProvider;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
public class RMVirtualFileSystemProvider implements DBFFileSystemProvider {
@@ -33,16 +32,11 @@ public class RMVirtualFileSystemProvider implements DBFFileSystemProvider {
@NotNull DBRProgressMonitor monitor,
@NotNull DBPProject project
) {
var session = project.getSessionContext().getPrimaryAuthSpace();
if (!(session instanceof WebSession)) {
if (!(project instanceof RMControllerProvider)) {
return new DBFVirtualFileSystem[0];
}
WebSession webSession = (WebSession) session;
WebProjectImpl webProject = webSession.getProjectById(project.getId());
if (webProject == null) {
log.warn(String.format("Project %s not found in session %s", project.getId(), webSession.getSessionId()));
return new DBFVirtualFileSystem[0];
}
return new DBFVirtualFileSystem[]{new RMVirtualFileSystem(webSession, webProject.getRmProject())};
RMControllerProvider rmControllerProvider = (RMControllerProvider) project;
return new DBFVirtualFileSystem[]{new RMVirtualFileSystem(rmControllerProvider.getResourceController(),
rmControllerProvider.getRMProject())};
}
}