mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
CB-2186 event fixes
This commit is contained in:
+5
-1
@@ -296,7 +296,11 @@ public class LocalResourceController implements RMController {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveProjectDataSources(@NotNull String projectId, @NotNull String configuration) throws DBException {
|
||||
public void saveProjectDataSources(
|
||||
@NotNull String projectId,
|
||||
@NotNull String configuration,
|
||||
@NotNull String[] dataSourceIds
|
||||
) throws DBException {
|
||||
final DBPProject project = getProjectMetadata(projectId);
|
||||
final DBPDataSourceRegistry registry = project.getDataSourceRegistry();
|
||||
final DBPDataSourceConfigurationStorage storage = new DataSourceMemoryStorage(configuration.getBytes(StandardCharsets.UTF_8));
|
||||
|
||||
@@ -205,12 +205,15 @@ public class WebAppUtils {
|
||||
return RMProjectType.GLOBAL.getPrefix() + "_" + globalConfigurationName;
|
||||
}
|
||||
|
||||
public static void addDatasourceUpdatedEvent(DBPProject project) {
|
||||
public static void addDataSourceUpdatedEvent(DBPProject project, String datasourceId) {
|
||||
if (project == null) {
|
||||
return;
|
||||
}
|
||||
getWebApplication().getEventController().addEvent(
|
||||
new CBEvent(CBEventConstants.CLOUDBEAVER_DATASOURCE_UPDATED, Map.of("projectId", project.getId()))
|
||||
new CBEvent(
|
||||
CBEventConstants.CLOUDBEAVER_DATASOURCE_UPDATED,
|
||||
Map.of("projectId", project.getId(), "dataSourceIds", new String[] {datasourceId})
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
<extension point="io.cloudbeaver.event.handler">
|
||||
<eventHandler class="io.cloudbeaver.server.events.CBConfigurationChangedEventHandler"/>
|
||||
<eventHandler class="io.cloudbeaver.server.events.CBDatasourceUpdatedEventHandlerImpl"/>\
|
||||
<eventHandler class="io.cloudbeaver.server.events.CBDataSourceUpdatedEventHandlerImpl"/>\
|
||||
<eventHandler class="io.cloudbeaver.server.events.CBRmResourceUpdatedEventHandlerImpl"/>
|
||||
</extension>
|
||||
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ import org.jkiss.dbeaver.model.data.json.JSONUtils;
|
||||
/**
|
||||
* Notify all active user session that datasource has been updated
|
||||
*/
|
||||
public class CBDatasourceUpdatedEventHandlerImpl extends CBProjectUpdatedEventHandler {
|
||||
public class CBDataSourceUpdatedEventHandlerImpl extends CBProjectUpdatedEventHandler {
|
||||
@NotNull
|
||||
@Override
|
||||
public String getSupportedEventType() {
|
||||
+9
-9
@@ -402,7 +402,7 @@ public class WebServiceCore implements DBWServiceCore {
|
||||
WebConnectionInfo connectionInfo = new WebConnectionInfo(webSession, newDataSource);
|
||||
webSession.addConnection(connectionInfo);
|
||||
webSession.addInfoMessage("New connection was created - " + WebServiceUtils.getConnectionContainerInfo(newDataSource));
|
||||
WebAppUtils.addDatasourceUpdatedEvent(webSession.getProjectById(projectId));
|
||||
WebAppUtils.addDataSourceUpdatedEvent(webSession.getProjectById(projectId), connectionInfo.getId());
|
||||
return connectionInfo;
|
||||
}
|
||||
|
||||
@@ -440,7 +440,7 @@ public class WebServiceCore implements DBWServiceCore {
|
||||
} catch (DBException e) {
|
||||
throw new DBWebException("Failed to update connection", e);
|
||||
}
|
||||
WebAppUtils.addDatasourceUpdatedEvent(webSession.getProjectById(projectId));
|
||||
WebAppUtils.addDataSourceUpdatedEvent(webSession.getProjectById(projectId), connectionInfo.getId());
|
||||
return connectionInfo;
|
||||
}
|
||||
|
||||
@@ -454,7 +454,7 @@ public class WebServiceCore implements DBWServiceCore {
|
||||
webSession.addInfoMessage("Delete connection - " +
|
||||
WebServiceUtils.getConnectionContainerInfo(connectionInfo.getDataSourceContainer()));
|
||||
closeAndDeleteConnection(webSession, projectId, connectionId, true);
|
||||
WebAppUtils.addDatasourceUpdatedEvent(webSession.getProjectById(projectId));
|
||||
WebAppUtils.addDataSourceUpdatedEvent(webSession.getProjectById(projectId), connectionId);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -491,7 +491,7 @@ public class WebServiceCore implements DBWServiceCore {
|
||||
WebConnectionInfo connectionInfo = new WebConnectionInfo(webSession, newDataSource);
|
||||
webSession.addConnection(connectionInfo);
|
||||
|
||||
WebAppUtils.addDatasourceUpdatedEvent(webSession.getProjectById(projectId));
|
||||
WebAppUtils.addDataSourceUpdatedEvent(webSession.getProjectById(projectId), connectionInfo.getId());
|
||||
|
||||
return connectionInfo;
|
||||
}
|
||||
@@ -533,7 +533,7 @@ public class WebServiceCore implements DBWServiceCore {
|
||||
WebConnectionInfo connectionInfo = new WebConnectionInfo(webSession, newDataSource);
|
||||
dataSourceRegistry.checkForErrors();
|
||||
webSession.addConnection(connectionInfo);
|
||||
WebAppUtils.addDatasourceUpdatedEvent(webSession.getProjectById(projectId));
|
||||
WebAppUtils.addDataSourceUpdatedEvent(webSession.getProjectById(projectId), connectionInfo.getId());
|
||||
return connectionInfo;
|
||||
} catch (DBException e) {
|
||||
throw new DBWebException("Error copying connection", e);
|
||||
@@ -712,7 +712,7 @@ public class WebServiceCore implements DBWServiceCore {
|
||||
DBPDataSourceFolder newFolder = WebServiceUtils.createFolder(parentNode, folderName, sessionRegistry);
|
||||
WebConnectionFolderInfo folderInfo = new WebConnectionFolderInfo(session, newFolder);
|
||||
WebServiceUtils.updateConfigAndRefreshDatabases(session, projectId);
|
||||
WebAppUtils.addDatasourceUpdatedEvent(session.getProjectById(projectId));
|
||||
WebAppUtils.addDataSourceUpdatedEvent(session.getProjectById(projectId), folderInfo.getId());
|
||||
return folderInfo;
|
||||
} catch (DBException e) {
|
||||
throw new DBWebException(e.getMessage(), e);
|
||||
@@ -730,7 +730,7 @@ public class WebServiceCore implements DBWServiceCore {
|
||||
WebConnectionFolderInfo folderInfo = WebConnectionFolderUtils.getFolderInfo(session, projectId, folderPath);
|
||||
folderInfo.getDataSourceFolder().setName(newName);
|
||||
WebServiceUtils.updateConfigAndRefreshDatabases(session, projectId);
|
||||
WebAppUtils.addDatasourceUpdatedEvent(session.getProjectById(projectId));
|
||||
WebAppUtils.addDataSourceUpdatedEvent(session.getProjectById(projectId), folderInfo.getId());
|
||||
return folderInfo;
|
||||
}
|
||||
|
||||
@@ -748,7 +748,7 @@ public class WebServiceCore implements DBWServiceCore {
|
||||
DBPDataSourceRegistry sessionRegistry = session.getProjectById(projectId).getDataSourceRegistry();
|
||||
sessionRegistry.removeFolder(folderInfo.getDataSourceFolder(), false);
|
||||
WebServiceUtils.updateConfigAndRefreshDatabases(session, projectId);
|
||||
WebAppUtils.addDatasourceUpdatedEvent(session.getProjectById(projectId));
|
||||
WebAppUtils.addDataSourceUpdatedEvent(session.getProjectById(projectId), folderInfo.getId());
|
||||
} catch (DBException e) {
|
||||
throw new DBWebException(e.getMessage(), e);
|
||||
}
|
||||
@@ -763,7 +763,7 @@ public class WebServiceCore implements DBWServiceCore {
|
||||
DataSourceDescriptor dataSourceDescriptor = ((DataSourceDescriptor)connectionInfo.getDataSourceContainer());
|
||||
dataSourceDescriptor.setNavigatorSettings(settings);
|
||||
dataSourceDescriptor.persistConfiguration();
|
||||
WebAppUtils.addDatasourceUpdatedEvent(webSession.getProjectById(projectId));
|
||||
WebAppUtils.addDataSourceUpdatedEvent(webSession.getProjectById(projectId), id);
|
||||
return connectionInfo;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -471,7 +471,7 @@ public class WebServiceNavigator implements DBWServiceNavigator {
|
||||
((DBNDataSource) node).moveToFolder(folderNode.getOwnerProject(), folder);
|
||||
node.getOwnerProject().getDataSourceRegistry().updateDataSource(
|
||||
((DBNDataSource) node).getDataSourceContainer());
|
||||
WebAppUtils.addDatasourceUpdatedEvent(node.getOwnerProject());
|
||||
WebAppUtils.addDataSourceUpdatedEvent(node.getOwnerProject(), ((DBNDataSource) node).getDataSourceContainer().getId());
|
||||
} else if (node instanceof DBNLocalFolder) {
|
||||
DBPDataSourceFolder folder = WebConnectionFolderUtils.getParentFolder(folderNode);
|
||||
if (folder != null) {
|
||||
@@ -484,7 +484,7 @@ public class WebServiceNavigator implements DBWServiceNavigator {
|
||||
}
|
||||
((DBNLocalFolder) node).getFolder().setParent(folder);
|
||||
WebServiceUtils.updateConfigAndRefreshDatabases(session, node.getOwnerProject().getId());
|
||||
WebAppUtils.addDatasourceUpdatedEvent(node.getOwnerProject());
|
||||
WebAppUtils.addDataSourceUpdatedEvent(node.getOwnerProject(), ((DBNLocalFolder) node).getFolder().getFolderPath());
|
||||
} else if (node instanceof DBNResourceManagerResource) {
|
||||
boolean rmNewNode = folderNode instanceof DBNAbstractResourceManagerNode;
|
||||
DBNResourceManagerResource rmOldNode = (DBNResourceManagerResource) node;
|
||||
|
||||
Reference in New Issue
Block a user