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); + } }