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 <[email protected]>
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}