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 9679c6d Fixed #94 (#98)
9679c6d is described below
commit 9679c6d891b45ee8a162f2a600a20de788931035
Author: Marat Gubaidullin <[email protected]>
AuthorDate: Mon Nov 15 19:53:42 2021 -0500
Fixed #94 (#98)
---
karavan-app/pom.xml | 2 +-
karavan-app/src/main/webapp/package.json | 2 +-
karavan-designer/package.json | 2 +-
karavan-designer/src/designer/api/CamelApi.tsx | 34 ++++++++++++++++++++--
karavan-designer/src/designer/api/CamelApiExt.tsx | 2 +-
karavan-designer/src/designer/model/CamelModel.tsx | 4 ++-
karavan-generator/pom.xml | 2 +-
.../karavan/generator/CamelModelGenerator.java | 1 +
.../main/resources/CamelApi.findStep.choiceStep.tx | 1 +
.../src/main/resources/CamelApi.findStep.footer.tx | 7 +++--
.../src/main/resources/CamelApi.findStep.header.tx | 1 +
.../main/resources/CamelApi.findStep.otherwise.tx | 1 +
.../src/main/resources/CamelApi.findStep.when.tx | 1 +
.../src/main/resources/camel-model.template | 4 ++-
karavan-vscode/CHANGELOG.md | 3 ++
karavan-vscode/package.json | 2 +-
16 files changed, 57 insertions(+), 12 deletions(-)
diff --git a/karavan-app/pom.xml b/karavan-app/pom.xml
index b893728..5182b97 100644
--- a/karavan-app/pom.xml
+++ b/karavan-app/pom.xml
@@ -18,7 +18,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.camel.karavan</groupId>
- <version>0.0.6</version>
+ <version>0.0.7</version>
<artifactId>karavan</artifactId>
<properties>
<compiler-plugin.version>3.8.1</compiler-plugin.version>
diff --git a/karavan-app/src/main/webapp/package.json
b/karavan-app/src/main/webapp/package.json
index 22facc4..becd5f3 100644
--- a/karavan-app/src/main/webapp/package.json
+++ b/karavan-app/src/main/webapp/package.json
@@ -1,6 +1,6 @@
{
"name": "karavan",
- "version": "0.0.6",
+ "version": "0.0.7",
"private": true,
"dependencies": {
"@patternfly/patternfly": "^4.132.2",
diff --git a/karavan-designer/package.json b/karavan-designer/package.json
index 4470227..a039038 100644
--- a/karavan-designer/package.json
+++ b/karavan-designer/package.json
@@ -1,6 +1,6 @@
{
"name": "karavan-designer",
- "version": "0.0.6",
+ "version": "0.0.7",
"private": true,
"dependencies": {
"@patternfly/patternfly": "^4.132.2",
diff --git a/karavan-designer/src/designer/api/CamelApi.tsx
b/karavan-designer/src/designer/api/CamelApi.tsx
index d939ad5..d8f1939 100644
--- a/karavan-designer/src/designer/api/CamelApi.tsx
+++ b/karavan-designer/src/designer/api/CamelApi.tsx
@@ -1045,12 +1045,14 @@ export class CamelApi {
static findStep = (steps: ProcessorStep[] | undefined, uuid: string,
parentUuid?: string, result?: ProcessorStepMeta): ProcessorStepMeta => {
if (result?.step !== undefined) return result;
+ if (result === undefined) result = new ProcessorStepMeta(undefined,
parentUuid, undefined, []);
if (steps !== undefined){
for (let index = 0, step; step = steps[index]; index++) {
if (step.uuid !== uuid) {
switch (step.dslName) {
case 'policyStep':
result = CamelApi.findStep((step as
PolicyStep).policy.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'choiceStep':
const o = (step as ChoiceStep).choice.otherwise;
@@ -1059,87 +1061,115 @@ export class CamelApi {
if (o) s.push(o);
if (w) s.push(...w);
result = CamelApi.findStep(s, uuid, step.uuid,
result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'otherwise':
result = CamelApi.findStep((step as
Otherwise).steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'fromStep':
result = CamelApi.findStep((step as
FromStep).from.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'onCompletionStep':
result = CamelApi.findStep((step as
OnCompletionStep).onCompletion.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'splitStep':
result = CamelApi.findStep((step as
SplitStep).split.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'transactedStep':
result = CamelApi.findStep((step as
TransactedStep).transacted.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'interceptFromStep':
result = CamelApi.findStep((step as
InterceptFromStep).interceptFrom.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'doCatchStep':
result = CamelApi.findStep((step as
DoCatchStep).doCatch.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'circuitBreakerStep':
result = CamelApi.findStep((step as
CircuitBreakerStep).circuitBreaker.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'interceptStep':
result = CamelApi.findStep((step as
InterceptStep).intercept.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'onFallbackStep':
result = CamelApi.findStep((step as
OnFallbackStep).onFallback.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'multicastStep':
result = CamelApi.findStep((step as
MulticastStep).multicast.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'loadBalanceStep':
result = CamelApi.findStep((step as
LoadBalanceStep).loadBalance.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'whenSkipSendToEndpointStep':
result = CamelApi.findStep((step as
WhenSkipSendToEndpointStep).whenSkipSendToEndpoint.steps, uuid, step.uuid,
result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'loopStep':
result = CamelApi.findStep((step as
LoopStep).loop.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'interceptSendToEndpointStep':
result = CamelApi.findStep((step as
InterceptSendToEndpointStep).interceptSendToEndpoint.steps, uuid, step.uuid,
result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'doTryStep':
result = CamelApi.findStep((step as
DoTryStep).doTry.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'resequenceStep':
result = CamelApi.findStep((step as
ResequenceStep).resequence.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'pipelineStep':
result = CamelApi.findStep((step as
PipelineStep).pipeline.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'sagaStep':
result = CamelApi.findStep((step as
SagaStep).saga.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'when':
result = CamelApi.findStep((step as When).steps,
uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'doFinallyStep':
result = CamelApi.findStep((step as
DoFinallyStep).doFinally.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'filterStep':
result = CamelApi.findStep((step as
FilterStep).filter.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'aggregateStep':
result = CamelApi.findStep((step as
AggregateStep).aggregate.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
case 'idempotentConsumerStep':
result = CamelApi.findStep((step as
IdempotentConsumerStep).idempotentConsumer.steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
}
} else {
- result = new ProcessorStepMeta(step, parentUuid, index);
+ const paths: string[] = result?.pathUuids ?
result?.pathUuids : [];
+ paths.push(step.uuid);
+ result = new ProcessorStepMeta(step, parentUuid, index,
paths);
break;
}
}
}
- return new ProcessorStepMeta(result?.step, result?.parentUuid,
result?.position);
+ const paths: string[] = result?.pathUuids ? result?.pathUuids : [];
+ return new ProcessorStepMeta(result?.step, result?.parentUuid,
result?.position, result?.pathUuids);
}
static getExpressionLanguage = (init?: Partial<Expression>): string |
undefined => {
diff --git a/karavan-designer/src/designer/api/CamelApiExt.tsx
b/karavan-designer/src/designer/api/CamelApiExt.tsx
index 872a02b..49e1906 100644
--- a/karavan-designer/src/designer/api/CamelApiExt.tsx
+++ b/karavan-designer/src/designer/api/CamelApiExt.tsx
@@ -42,7 +42,7 @@ export class CamelApiExt {
const sourceUuid = sourceStep?.uuid;
const targetFindStep = CamelApi.findStep(integration.spec.flows,
target, undefined);
const parentUuid = targetFindStep.parentUuid;
- if (sourceUuid && parentUuid && sourceStep) {
+ if (sourceUuid && parentUuid && sourceStep &&
!targetFindStep.pathUuids.includes(source)) {
CamelApiExt.deleteStepFromIntegration(integration, sourceUuid);
switch (targetFindStep.step?.dslName) {
case 'when':
diff --git a/karavan-designer/src/designer/model/CamelModel.tsx
b/karavan-designer/src/designer/model/CamelModel.tsx
index f4d8dd7..2c05644 100644
--- a/karavan-designer/src/designer/model/CamelModel.tsx
+++ b/karavan-designer/src/designer/model/CamelModel.tsx
@@ -57,12 +57,14 @@ export class ProcessorStepMeta {
step?: ProcessorStep
parentUuid?: string
position: number = 0;
+ pathUuids: string [] = [];
- constructor(step?: ProcessorStep, parentUuid?: string, position?: number) {
+ constructor(step?: ProcessorStep, parentUuid?: string, position?: number,
pathUuids?: string []) {
this.step = step;
this.parentUuid = parentUuid;
this.position = position || 0;
+ this.pathUuids = pathUuids || this.pathUuids;
}
}
diff --git a/karavan-generator/pom.xml b/karavan-generator/pom.xml
index 213e47e..461e962 100644
--- a/karavan-generator/pom.xml
+++ b/karavan-generator/pom.xml
@@ -19,7 +19,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.camel.karavan</groupId>
<artifactId>karavan-generator</artifactId>
- <version>0.0.6</version>
+ <version>0.0.7</version>
<properties>
<compiler-plugin.version>3.8.1</compiler-plugin.version>
<maven.compiler.parameters>true</maven.compiler.parameters>
diff --git
a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelModelGenerator.java
b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelModelGenerator.java
index 825047e..b68547d 100644
---
a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelModelGenerator.java
+++
b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelModelGenerator.java
@@ -281,6 +281,7 @@ public final class CamelModelGenerator {
camelApi.append(String.format(
" case '%1$s':\n" +
" result =
CamelApi.findStep((step as %2$s).%3$s.steps, uuid, step.uuid, result);\n" +
+ " if
(result?.pathUuids !== undefined && result?.pathUuids.length > 0)
result.pathUuids.push(step.uuid);\n" +
" break;\n",
stepField, stepClass, name));
}
diff --git
a/karavan-generator/src/main/resources/CamelApi.findStep.choiceStep.tx
b/karavan-generator/src/main/resources/CamelApi.findStep.choiceStep.tx
index 1d3733b..b6c1ecf 100644
--- a/karavan-generator/src/main/resources/CamelApi.findStep.choiceStep.tx
+++ b/karavan-generator/src/main/resources/CamelApi.findStep.choiceStep.tx
@@ -5,4 +5,5 @@
if (o) s.push(o);
if (w) s.push(...w);
result = CamelApi.findStep(s, uuid, step.uuid,
result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
\ No newline at end of file
diff --git a/karavan-generator/src/main/resources/CamelApi.findStep.footer.tx
b/karavan-generator/src/main/resources/CamelApi.findStep.footer.tx
index ab5a672..1b2d44c 100644
--- a/karavan-generator/src/main/resources/CamelApi.findStep.footer.tx
+++ b/karavan-generator/src/main/resources/CamelApi.findStep.footer.tx
@@ -1,9 +1,12 @@
}
} else {
- result = new ProcessorStepMeta(step, parentUuid, index);
+ const paths: string[] = result?.pathUuids ?
result?.pathUuids : [];
+ paths.push(step.uuid);
+ result = new ProcessorStepMeta(step, parentUuid, index,
paths);
break;
}
}
}
- return new ProcessorStepMeta(result?.step, result?.parentUuid,
result?.position);
+ const paths: string[] = result?.pathUuids ? result?.pathUuids : [];
+ return new ProcessorStepMeta(result?.step, result?.parentUuid,
result?.position, result?.pathUuids);
}
\ No newline at end of file
diff --git a/karavan-generator/src/main/resources/CamelApi.findStep.header.tx
b/karavan-generator/src/main/resources/CamelApi.findStep.header.tx
index 10694a8..72d09db 100644
--- a/karavan-generator/src/main/resources/CamelApi.findStep.header.tx
+++ b/karavan-generator/src/main/resources/CamelApi.findStep.header.tx
@@ -1,5 +1,6 @@
static findStep = (steps: ProcessorStep[] | undefined, uuid: string,
parentUuid?: string, result?: ProcessorStepMeta): ProcessorStepMeta => {
if (result?.step !== undefined) return result;
+ if (result === undefined) result = new ProcessorStepMeta(undefined,
parentUuid, undefined, []);
if (steps !== undefined){
for (let index = 0, step; step = steps[index]; index++) {
if (step.uuid !== uuid) {
diff --git
a/karavan-generator/src/main/resources/CamelApi.findStep.otherwise.tx
b/karavan-generator/src/main/resources/CamelApi.findStep.otherwise.tx
index f93bf05..ad4482d 100644
--- a/karavan-generator/src/main/resources/CamelApi.findStep.otherwise.tx
+++ b/karavan-generator/src/main/resources/CamelApi.findStep.otherwise.tx
@@ -1,3 +1,4 @@
case 'otherwise':
result = CamelApi.findStep((step as
Otherwise).steps, uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
\ No newline at end of file
diff --git a/karavan-generator/src/main/resources/CamelApi.findStep.when.tx
b/karavan-generator/src/main/resources/CamelApi.findStep.when.tx
index 34d6508..5c0fa7a 100644
--- a/karavan-generator/src/main/resources/CamelApi.findStep.when.tx
+++ b/karavan-generator/src/main/resources/CamelApi.findStep.when.tx
@@ -1,3 +1,4 @@
case 'when':
result = CamelApi.findStep((step as When).steps,
uuid, step.uuid, result);
+ if (result?.pathUuids !== undefined &&
result?.pathUuids.length > 0) result.pathUuids.push(step.uuid);
break;
\ No newline at end of file
diff --git a/karavan-generator/src/main/resources/camel-model.template
b/karavan-generator/src/main/resources/camel-model.template
index dde3167..a84f8c9 100644
--- a/karavan-generator/src/main/resources/camel-model.template
+++ b/karavan-generator/src/main/resources/camel-model.template
@@ -57,12 +57,14 @@ export class ProcessorStepMeta {
step?: ProcessorStep
parentUuid?: string
position: number = 0;
+ pathUuids: string [] = [];
- constructor(step?: ProcessorStep, parentUuid?: string, position?: number) {
+ constructor(step?: ProcessorStep, parentUuid?: string, position?: number,
pathUuids?: string []) {
this.step = step;
this.parentUuid = parentUuid;
this.position = position || 0;
+ this.pathUuids = pathUuids || this.pathUuids;
}
}
diff --git a/karavan-vscode/CHANGELOG.md b/karavan-vscode/CHANGELOG.md
index 9a0fa65..7f1fbae 100644
--- a/karavan-vscode/CHANGELOG.md
+++ b/karavan-vscode/CHANGELOG.md
@@ -1,5 +1,8 @@
# Changelog
+## 0.0.7
+1. Hot-fix for `Dragged element disappears when dropped into its child`
[#94](https://github.com/apache/camel-karavan/issues/94)
+
## 0.0.6
1. Extension configuration for `Run locally with CamelJBang`
[#70](https://github.com/apache/camel-karavan/issues/70)
2. Reorder steps with drag-and-drop
[#39](https://github.com/apache/camel-karavan/issues/39)
diff --git a/karavan-vscode/package.json b/karavan-vscode/package.json
index a585c12..53d4e6e 100644
--- a/karavan-vscode/package.json
+++ b/karavan-vscode/package.json
@@ -4,7 +4,7 @@
"displayName": "Camel Karavan Designer",
"icon": "icons/icon.png",
"description": "Integration Designer for Apache Camel",
- "version": "0.0.6",
+ "version": "0.0.7",
"license": "Apache-2.0",
"preview": true,
"bugs": {