mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
CB-3930 use rm provider for rm fs (#2038)
This commit is contained in:
@@ -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;
|
||||
|
||||
+4
-3
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
+5
-11
@@ -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())};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user