From 706b60132eb8c4f0e89d75de8182516bbd5031bb Mon Sep 17 00:00:00 2001 From: Ainur Date: Tue, 25 Oct 2022 19:08:04 +0200 Subject: [PATCH] CB-2186 send resource path in events --- .../rm/DBNAbstractResourceManagerNode.java | 2 +- .../CBRmResourceUpdatedEventHandlerImpl.java | 21 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/DBNAbstractResourceManagerNode.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/DBNAbstractResourceManagerNode.java index fc9eacb7fd..5361a810d5 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/DBNAbstractResourceManagerNode.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/rm/DBNAbstractResourceManagerNode.java @@ -40,7 +40,7 @@ public abstract class DBNAbstractResourceManagerNode extends DBNNode implements var node = RMNavigatorUtils.findResourceNode(children, expectedResource); if (node == null) { // we are in expected parent node DBNResourceManagerResource newResourceNode = new DBNResourceManagerResource(this, expectedResource); - ArrayUtils.add(DBNResourceManagerResource.class, children, newResourceNode); + children = ArrayUtils.add(DBNResourceManagerResource.class, children, newResourceNode); return; } diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/CBRmResourceUpdatedEventHandlerImpl.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/CBRmResourceUpdatedEventHandlerImpl.java index 2a598be376..9800c97709 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/CBRmResourceUpdatedEventHandlerImpl.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/server/events/CBRmResourceUpdatedEventHandlerImpl.java @@ -16,6 +16,8 @@ */ package io.cloudbeaver.server.events; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import io.cloudbeaver.VirtualProjectImpl; import io.cloudbeaver.events.CBEvent; import io.cloudbeaver.events.CBEventConstants; @@ -33,6 +35,9 @@ import java.util.List; * Notify all active user session that rm resource has been updated */ public class CBRmResourceUpdatedEventHandlerImpl extends CBProjectUpdatedEventHandler { + + private static final Gson gson = new GsonBuilder().create(); + @NotNull @Override public String getSupportedEventType() { @@ -41,9 +46,11 @@ public class CBRmResourceUpdatedEventHandlerImpl extends CBProjectUpdatedEventHa @Override protected void updateSessionData(WebSession activeUserSession, CBEvent event) { - String projectId = JSONUtils.getString(event.getEventData(), "project"); + String projectId = JSONUtils.getString(event.getEventData(), "projectId"); String eventType = JSONUtils.getString(event.getEventData(), "eventType"); String resourcePath = JSONUtils.getString(event.getEventData(), "resourcePath"); + RMResource[] resourceParsedPath = gson.fromJson( + gson.toJson(JSONUtils.getObjectList(event.getEventData(), "resourceParsedPath")), RMResource[].class); if (projectId == null || eventType == null || resourcePath == null) { return; } @@ -51,20 +58,14 @@ public class CBRmResourceUpdatedEventHandlerImpl extends CBProjectUpdatedEventHa if (project == null) { return; } - RMController rmController = activeUserSession.getRmController(); - List rmResourcePath; - try { - rmResourcePath = Arrays.asList(rmController.getResourcePath(projectId, resourcePath)); - } catch (DBException e) { - return; - } - if (eventType.equals("create")) { + List rmResourcePath = Arrays.asList(resourceParsedPath); + if (eventType.equals("TYPE_CREATE")) { RMEventManager.fireEvent( new RMEvent(RMEvent.Action.RESOURCE_ADD, project.getRmProject(), rmResourcePath) ); - } else if (eventType.equals("delete")) { + } else if (eventType.equals("TYPE_DELETE")) { RMEventManager.fireEvent( new RMEvent(RMEvent.Action.RESOURCE_DELETE, project.getRmProject(),