This is an automated email from the ASF dual-hosted git repository.

marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git


The following commit(s) were added to refs/heads/main by this push:
     new a21ff29f fix issues after split
a21ff29f is described below

commit a21ff29f0937e0d8bd48ac5150876fd59000031b
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Tue May 28 17:08:43 2024 -0400

    fix issues after split
---
 .../apache/camel/karavan/api/ProjectResource.java  |  7 +++---
 karavan-app/src/main/webui/src/api/ProjectStore.ts |  8 ++----
 .../src/main/webui/src/project/trace/TraceTab.tsx  | 29 +---------------------
 .../apache/camel/karavan/status/StatusCache.java   |  9 ++++---
 .../camel/karavan/status/model/CamelStatus.java    |  5 ++++
 5 files changed, 17 insertions(+), 41 deletions(-)

diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectResource.java 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectResource.java
index c64c14c8..e4eb4da7 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectResource.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectResource.java
@@ -150,7 +150,7 @@ public class ProjectResource {
     public Response getCamelStatusForProjectAndEnv(@PathParam("projectId") 
String projectId, @PathParam("env") String env) {
         List<CamelStatus> statuses = 
statusCache.getCamelStatusesByProjectAndEnv(projectId, env)
                 .stream().map(camelStatus -> {
-                    var stats = camelStatus.getStatuses().stream().filter(s -> 
!Objects.equals(s.getName(), CamelStatusValue.Name.trace)).toList();
+                    var stats = 
List.copyOf(camelStatus.getStatuses()).stream().filter(s -> 
!Objects.equals(s.getName(), CamelStatusValue.Name.trace)).toList();
                     camelStatus.setStatuses(stats);
                     return camelStatus;
                 }).toList();
@@ -166,10 +166,9 @@ public class ProjectResource {
     @Path("/traces/{projectId}/{env}")
     public Response getCamelTracesForProjectAndEnv(@PathParam("projectId") 
String projectId, @PathParam("env") String env) {
         List<CamelStatus> statuses = 
statusCache.getCamelStatusesByProjectAndEnv(projectId, env)
-                .stream().map(camelStatus -> {
-                    var stats = camelStatus.getStatuses().stream().filter(s -> 
Objects.equals(s.getName(), CamelStatusValue.Name.trace)).toList();
+                .stream().peek(camelStatus -> {
+                    var stats = 
List.copyOf(camelStatus.getStatuses()).stream().filter(s -> 
Objects.equals(s.getName(), CamelStatusValue.Name.trace)).toList();
                     camelStatus.setStatuses(stats);
-                    return camelStatus;
                 }).toList();
         if (!statuses.isEmpty()) {
             return Response.ok(statuses).build();
diff --git a/karavan-app/src/main/webui/src/api/ProjectStore.ts 
b/karavan-app/src/main/webui/src/api/ProjectStore.ts
index 135f7753..6476d58c 100644
--- a/karavan-app/src/main/webui/src/api/ProjectStore.ts
+++ b/karavan-app/src/main/webui/src/api/ProjectStore.ts
@@ -171,17 +171,13 @@ export const useProjectStore = 
createWithEqualityFn<ProjectState>((set) => ({
     camelStatuses: [],
     setCamelStatuses: (camelStatuses: CamelStatus[])  => {
         set((state: ProjectState) => {
-            state.camelStatuses.length = 0;
-            state.camelStatuses.push(...camelStatuses);
-            return {camelStatuses: state.camelStatuses};
+            return {camelStatuses: camelStatuses};
         });
     },
     camelTraces: [],
     setCamelTraces: (camelTraces: CamelStatus[])  => {
         set((state: ProjectState) => {
-            state.camelTraces.length = 0;
-            state.camelTraces.push(...camelTraces);
-            return {camelTraces: state.camelTraces};
+            return {camelTraces: camelTraces};
         });
     },
     refreshTrace: false,
diff --git a/karavan-app/src/main/webui/src/project/trace/TraceTab.tsx 
b/karavan-app/src/main/webui/src/project/trace/TraceTab.tsx
index a21fc0f4..2736df4d 100644
--- a/karavan-app/src/main/webui/src/project/trace/TraceTab.tsx
+++ b/karavan-app/src/main/webui/src/project/trace/TraceTab.tsx
@@ -14,13 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-import React, {useEffect, useState} from 'react';
+import React, {useState} from 'react';
 import {
-    Bullseye,
-    Button,
-    EmptyState,
-    EmptyStateIcon,
-    EmptyStateVariant,
     Flex,
     FlexItem,
     Panel,
@@ -30,33 +25,11 @@ import {
     TextContent,
     TextVariants,
     PageSection,
-    EmptyStateHeader,
-    Card,
-    CardBody,
-    Divider,
-    Tabs,
-    Tab,
-    TabTitleText,
     ToggleGroup, ToggleGroupItem,
 } from '@patternfly/react-core';
 import '../../designer/karavan.css';
-import {RunnerInfoTraceModal} from "./RunnerInfoTraceModal";
-import {
-    Tbody,
-    Td,
-    Th,
-    Thead,
-    Tr
-} from '@patternfly/react-table';
-import {
-    Table
-} from '@patternfly/react-table/deprecated';
-import SearchIcon from "@patternfly/react-icons/dist/esm/icons/search-icon";
 import {useProjectStore, useStatusesStore} from "../../api/ProjectStore";
 import {shallow} from "zustand/shallow";
-import {InfoContainer} from "../dashboard/InfoContainer";
-import {InfoMemory} from "../dashboard/InfoMemory";
-import {InfoContext} from "../dashboard/InfoContext";
 import {TraceTable} from "./TraceTable";
 
 export function TraceTab() {
diff --git 
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/StatusCache.java
 
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/StatusCache.java
index b6e9c122..80448312 100644
--- 
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/StatusCache.java
+++ 
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/StatusCache.java
@@ -135,15 +135,18 @@ public class StatusCache {
     }
 
     public List<CamelStatus> getCamelStatusesByEnv(CamelStatusValue.Name name) 
{
-        return camelStatuses.values().stream().map(cs -> {
+        List<CamelStatus> copy = new ArrayList<>(camelStatuses.size());
+        camelStatuses.values().forEach(camelStatus -> 
copy.add(camelStatus.clone()));
+        return copy.stream().peek(cs -> {
             var values = cs.getStatuses();
             cs.setStatuses(values.stream().filter(v -> 
Objects.equals(v.getName(), name)).toList());
-            return cs;
         }).toList();
     }
 
     public List<CamelStatus> getCamelStatusesByProjectAndEnv(String projectId, 
String env) {
-        return camelStatuses.values().stream().filter(el -> 
Objects.equals(el.getProjectId(), projectId) && Objects.equals(el.getEnv(), 
env)).toList();
+        List<CamelStatus> copy = new ArrayList<>(camelStatuses.size());
+        camelStatuses.values().forEach(camelStatus -> 
copy.add(camelStatus.clone()));
+        return copy.stream().filter(el -> Objects.equals(el.getProjectId(), 
projectId) && Objects.equals(el.getEnv(), env)).toList();
     }
 
     public void saveCamelStatus(CamelStatus status) {
diff --git 
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/model/CamelStatus.java
 
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/model/CamelStatus.java
index c299952f..f79fce56 100644
--- 
a/karavan-statuses/src/main/java/org/apache/camel/karavan/status/model/CamelStatus.java
+++ 
b/karavan-statuses/src/main/java/org/apache/camel/karavan/status/model/CamelStatus.java
@@ -64,4 +64,9 @@ public class CamelStatus {
     public void setEnv(String env) {
         this.env = env;
     }
+
+    @Override
+    public CamelStatus clone() {
+        return new CamelStatus(this.projectId, this.containerName, 
List.copyOf(this.statuses), this.env);
+    }
 }

Reply via email to