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 48f3ffd8 Fix #956 48f3ffd8 is described below commit 48f3ffd8be8cd6d0eacb23364f35ca4ed04c76a4 Author: Marat Gubaidullin <ma...@talismancloud.io> AuthorDate: Mon Dec 18 17:44:46 2023 -0500 Fix #956 --- karavan-designer/public/example/demo.camel.yaml | 38 +++++++++------------- .../src/designer/property/usePropertiesHook.tsx | 19 +++++++---- .../src/designer/property/usePropertiesHook.tsx | 19 +++++++---- .../src/designer/property/usePropertiesHook.tsx | 19 +++++++---- 4 files changed, 54 insertions(+), 41 deletions(-) diff --git a/karavan-designer/public/example/demo.camel.yaml b/karavan-designer/public/example/demo.camel.yaml index 5f3d364c..a56231a5 100644 --- a/karavan-designer/public/example/demo.camel.yaml +++ b/karavan-designer/public/example/demo.camel.yaml @@ -1,27 +1,19 @@ -#- route: -# nodePrefixId: route-1e7 -# id: route-3f85 -# from: -# uri: timer -# id: from-cfa5 -# steps: -# - choice: -# when: -# - expression: -# simple: -# id: simple-d546 -# id: when-f549 -# otherwise: -# id: otherwise-cda7 -# id: choice-50fe -#- rest: -# id: rest-2333 -# put: -# - id: put-5a13 - beans: - - constructors: {} - - constructors: {} - + - constructors: {} + - constructors: {} +- route: + id: route-a947 + nodePrefixId: route-a32 + from: + id: from-c489 + uri: kamelet:aws-ddb-streams-source + steps: + - setBody: + id: setBody-4434 + expression: + simple: + id: simple-abd8 + expression: dddddd # steps: # - marshal: # id: marshal-b68c diff --git a/karavan-designer/src/designer/property/usePropertiesHook.tsx b/karavan-designer/src/designer/property/usePropertiesHook.tsx index 41ac95af..67f0e5d4 100644 --- a/karavan-designer/src/designer/property/usePropertiesHook.tsx +++ b/karavan-designer/src/designer/property/usePropertiesHook.tsx @@ -25,6 +25,7 @@ import {CamelDefinitionApi} from "karavan-core/lib/api/CamelDefinitionApi"; import {RouteToCreate} from "../utils/CamelUi"; import {useDesignerStore, useIntegrationStore} from "../DesignerStore"; import {shallow} from "zustand/shallow"; +import {CamelMetadataApi} from "karavan-core/lib/model/CamelMetadata"; export function usePropertiesHook (designerType: 'routes' | 'rest' | 'beans' = 'routes') { @@ -146,12 +147,18 @@ export function usePropertiesHook (designerType: 'routes' | 'rest' | 'beans' = ' } const convertStep = (step: CamelElement, targetDslName: string ) => { - // const clone = CamelUtil.cloneIntegration(integration); - // const i = CamelDefinitionApiExt.addStepToIntegration(clone, step, parentId, position); - // const selectedStep = step.dslName === 'RouteDefinition' ? (step as RouteDefinition).from : step; - // setIntegration(i, false); - // setSelectedStep(selectedStep); - // setSelectedUuids([selectedStep.uuid]); + const metaSource = CamelMetadataApi.getCamelModelMetadataByClassName(step.dslName); + const metaTarget = CamelMetadataApi.getCamelModelMetadataByClassName(targetDslName); + metaSource?.properties.forEach(pro => { + const toDelete = metaTarget?.properties.findIndex(x => x.name === pro.name) === -1; + if (toDelete) { + delete (step as any)[pro.name]; + } + }) + delete (step as any).dslName; + const converted = CamelDefinitionApi.createStep(targetDslName, step, true); + onPropertyUpdate(converted); + setSelectedStep(converted) } return {convertStep, cloneElement, onPropertyChange, onParametersChange, onDataFormatChange, onExpressionChange, getInternalComponentName} diff --git a/karavan-space/src/designer/property/usePropertiesHook.tsx b/karavan-space/src/designer/property/usePropertiesHook.tsx index 41ac95af..67f0e5d4 100644 --- a/karavan-space/src/designer/property/usePropertiesHook.tsx +++ b/karavan-space/src/designer/property/usePropertiesHook.tsx @@ -25,6 +25,7 @@ import {CamelDefinitionApi} from "karavan-core/lib/api/CamelDefinitionApi"; import {RouteToCreate} from "../utils/CamelUi"; import {useDesignerStore, useIntegrationStore} from "../DesignerStore"; import {shallow} from "zustand/shallow"; +import {CamelMetadataApi} from "karavan-core/lib/model/CamelMetadata"; export function usePropertiesHook (designerType: 'routes' | 'rest' | 'beans' = 'routes') { @@ -146,12 +147,18 @@ export function usePropertiesHook (designerType: 'routes' | 'rest' | 'beans' = ' } const convertStep = (step: CamelElement, targetDslName: string ) => { - // const clone = CamelUtil.cloneIntegration(integration); - // const i = CamelDefinitionApiExt.addStepToIntegration(clone, step, parentId, position); - // const selectedStep = step.dslName === 'RouteDefinition' ? (step as RouteDefinition).from : step; - // setIntegration(i, false); - // setSelectedStep(selectedStep); - // setSelectedUuids([selectedStep.uuid]); + const metaSource = CamelMetadataApi.getCamelModelMetadataByClassName(step.dslName); + const metaTarget = CamelMetadataApi.getCamelModelMetadataByClassName(targetDslName); + metaSource?.properties.forEach(pro => { + const toDelete = metaTarget?.properties.findIndex(x => x.name === pro.name) === -1; + if (toDelete) { + delete (step as any)[pro.name]; + } + }) + delete (step as any).dslName; + const converted = CamelDefinitionApi.createStep(targetDslName, step, true); + onPropertyUpdate(converted); + setSelectedStep(converted) } return {convertStep, cloneElement, onPropertyChange, onParametersChange, onDataFormatChange, onExpressionChange, getInternalComponentName} diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/property/usePropertiesHook.tsx b/karavan-web/karavan-app/src/main/webui/src/designer/property/usePropertiesHook.tsx index 41ac95af..67f0e5d4 100644 --- a/karavan-web/karavan-app/src/main/webui/src/designer/property/usePropertiesHook.tsx +++ b/karavan-web/karavan-app/src/main/webui/src/designer/property/usePropertiesHook.tsx @@ -25,6 +25,7 @@ import {CamelDefinitionApi} from "karavan-core/lib/api/CamelDefinitionApi"; import {RouteToCreate} from "../utils/CamelUi"; import {useDesignerStore, useIntegrationStore} from "../DesignerStore"; import {shallow} from "zustand/shallow"; +import {CamelMetadataApi} from "karavan-core/lib/model/CamelMetadata"; export function usePropertiesHook (designerType: 'routes' | 'rest' | 'beans' = 'routes') { @@ -146,12 +147,18 @@ export function usePropertiesHook (designerType: 'routes' | 'rest' | 'beans' = ' } const convertStep = (step: CamelElement, targetDslName: string ) => { - // const clone = CamelUtil.cloneIntegration(integration); - // const i = CamelDefinitionApiExt.addStepToIntegration(clone, step, parentId, position); - // const selectedStep = step.dslName === 'RouteDefinition' ? (step as RouteDefinition).from : step; - // setIntegration(i, false); - // setSelectedStep(selectedStep); - // setSelectedUuids([selectedStep.uuid]); + const metaSource = CamelMetadataApi.getCamelModelMetadataByClassName(step.dslName); + const metaTarget = CamelMetadataApi.getCamelModelMetadataByClassName(targetDslName); + metaSource?.properties.forEach(pro => { + const toDelete = metaTarget?.properties.findIndex(x => x.name === pro.name) === -1; + if (toDelete) { + delete (step as any)[pro.name]; + } + }) + delete (step as any).dslName; + const converted = CamelDefinitionApi.createStep(targetDslName, step, true); + onPropertyUpdate(converted); + setSelectedStep(converted) } return {convertStep, cloneElement, onPropertyChange, onParametersChange, onDataFormatChange, onExpressionChange, getInternalComponentName}