You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2022/08/02 21:27:47 UTC

[camel-karavan] branch main updated: Fix issue with Postman Demo (#443)

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 d470bb4  Fix issue with Postman Demo (#443)
d470bb4 is described below

commit d470bb4eaf8086eb540f99ce09d4b8dd65a28cbf
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Tue Aug 2 17:27:42 2022 -0400

    Fix issue with Postman Demo (#443)
---
 .../apache/camel/karavan/api/ProjectResource.java  |   4 +-
 .../src/main/resources/application.properties      |   2 +-
 .../openshift-manifests/instances/amq-broker.yaml  |   2 +-
 karavan-demo/postman/project/postman.yaml          | 333 +++++++++++++--------
 4 files changed, 217 insertions(+), 124 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 bdd149d..9ebdc44 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
@@ -72,7 +72,9 @@ public class ProjectResource {
     @Path("/{project}")
     public void delete(@HeaderParam("username") String username,
                           @PathParam("project") String project) throws Exception {
-        infinispanService.deleteProject(URLDecoder.decode(project, StandardCharsets.UTF_8.toString()));
+        String projectId = URLDecoder.decode(project, StandardCharsets.UTF_8.toString());
+        infinispanService.getProjectFiles(projectId).forEach(file -> infinispanService.deleteProjectFile(projectId, file.getName()));
+        infinispanService.deleteProject(projectId);
     }
 
     @POST
diff --git a/karavan-app/src/main/resources/application.properties b/karavan-app/src/main/resources/application.properties
index 2fbb43a..7acef5a 100644
--- a/karavan-app/src/main/resources/application.properties
+++ b/karavan-app/src/main/resources/application.properties
@@ -15,7 +15,7 @@ karavan.git-main=main
 karavan.config.group-id=org.camel.karavan.demo
 karavan.config.image-group=karavan
 karavan.config.runtime=QUARKUS
-karavan.config.runtime-version=2.10.0.Final
+karavan.config.runtime-version=2.11.1.Final
 karavan.config.status-threshold=1000
 
 karavan.config.environments[0].name=dev
diff --git a/karavan-demo/postman/openshift-manifests/instances/amq-broker.yaml b/karavan-demo/postman/openshift-manifests/instances/amq-broker.yaml
index 7d307bb..4d5b0ac 100644
--- a/karavan-demo/postman/openshift-manifests/instances/amq-broker.yaml
+++ b/karavan-demo/postman/openshift-manifests/instances/amq-broker.yaml
@@ -1,4 +1,4 @@
-apiVersion: broker.amq.io/v2alpha5
+apiVersion: broker.amq.io/v1beta1
 kind: ActiveMQArtemis
 metadata:
   name: amq
diff --git a/karavan-demo/postman/project/postman.yaml b/karavan-demo/postman/project/postman.yaml
index acbe3ad..45a2dc0 100644
--- a/karavan-demo/postman/project/postman.yaml
+++ b/karavan-demo/postman/project/postman.yaml
@@ -4,130 +4,221 @@ metadata:
   name: Postman Demo
 spec:
   flows:
-    - rest:
-        post:
-          - to: direct:post
-        path: /parcels
-        consumes: application/json
-        produces: application/json
-    - route:
-        from:
-          uri: direct:post
-          steps:
-            - log:
-                message: 'Received: ${body}'
-            - multicast:
-                steps:
-                  - to:
-                      uri: kamelet:kafka-not-secured-sink
-                      parameters:
-                        topic: parcels
-                        bootstrapServers: '{{kafka-brokers}}'
-                  - to:
-                      uri: kamelet:postgresql-sink
+    - dslName: RestDefinition
+      post:
+        - dslName: PostDefinition
+          stepName: post
+          to: 'direct:post'
+          inArray: true
+          inSteps: false
+      stepName: rest
+      path: /parcels
+      consumes: application/json
+      produces: application/json
+    - dslName: RouteDefinition
+      stepName: route
+      from:
+        uri: 'direct:post'
+        steps:
+          - dslName: LogDefinition
+            stepName: log
+            message: 'Received: ${body}'
+            inArray: true
+            inSteps: true
+          - steps:
+              - uri: 'kamelet:kafka-not-secured-sink'
+                dslName: ToDefinition
+                stepName: to
+                parameters:
+                  topic: parcels
+                  bootstrapServers: 'localhost:9091'
+                inArray: true
+                inSteps: true
+              - uri: 'kamelet:postgresql-sink'
+                dslName: ToDefinition
+                stepName: to
+                parameters:
+                  serverName: localhost
+                  serverPort: '5432'
+                  username: postgres
+                  password: postgres
+                  databaseName: demo
+                  query: >-
+                    INSERT INTO parcels (id,address) VALUES (:#id,:#address) ON
+                    CONFLICT (id)  DO NOTHING
+                inArray: true
+                inSteps: true
+            dslName: MulticastDefinition
+            stepName: multicast
+            aggregationStrategy: >-
+              #class:org.apache.camel.processor.aggregate.UseOriginalAggregationStrategy
+            parallelProcessing: true
+            streaming: true
+            inArray: true
+            inSteps: true
+        dslName: FromDefinition
+        stepName: from
+      id: post
+    - dslName: RouteDefinition
+      stepName: route
+      from:
+        uri: 'kamelet:jms-apache-artemis-source'
+        steps:
+          - uri: 'xj:identity'
+            dslName: ToDefinition
+            stepName: to
+            parameters:
+              transformDirection: XML2JSON
+            inArray: true
+            inSteps: true
+          - uri: 'kamelet:kafka-not-secured-sink'
+            dslName: ToDefinition
+            stepName: to
+            parameters:
+              topic: payments
+              bootstrapServers: 'localhost:9091'
+            inArray: true
+            inSteps: true
+        dslName: FromDefinition
+        stepName: from
+        parameters:
+          destinationType: queue
+          destinationName: payments
+          brokerURL: 'tcp://localhost:61616'
+      id: payment
+    - dslName: RouteDefinition
+      stepName: route
+      from:
+        uri: 'kamelet:kafka-not-secured-source'
+        steps:
+          - dslName: LogDefinition
+            stepName: log
+            message: 'Aggegating: ${body}'
+            inArray: true
+            inSteps: true
+          - dslName: UnmarshalDefinition
+            stepName: unmarshal
+            json:
+              dslName: JsonDataFormat
+              library: jackson
+            inArray: true
+            inSteps: true
+          - steps:
+              - dslName: ChoiceDefinition
+                stepName: choice
+                when:
+                  - steps:
+                      - dslName: MarshalDefinition
+                        stepName: marshal
+                        json:
+                          dslName: JsonDataFormat
+                          library: jackson
+                        inArray: true
+                        inSteps: true
+                      - dslName: LogDefinition
+                        stepName: log
+                        message: 'Send to MQTT : ${body}'
+                        inArray: true
+                        inSteps: true
+                      - uri: 'kamelet:mqtt-sink'
+                        dslName: ToDefinition
+                        stepName: to
+                        parameters:
+                          topic: deliveries
+                          brokerUrl: 'tcp://localhost:61616'
+                        inArray: true
+                        inSteps: true
+                    dslName: WhenDefinition
+                    stepName: when
+                    expression:
+                      dslName: ExpressionDefinition
+                      stepName: expression
+                      groovy:
+                        dslName: GroovyExpression
+                        expression: >-
+                          body.find { it.containsKey('status') }.status ==
+                          'confirmed'
+                    inArray: true
+                    inSteps: false
+                otherwise:
+                  steps:
+                    - dslName: SetBodyDefinition
+                      stepName: setBody
+                      expression:
+                        dslName: ExpressionDefinition
+                        stepName: expression
+                        groovy:
+                          dslName: GroovyExpression
+                          expression: 'body.find { it.containsKey(''status'') } '
+                      inArray: true
+                      inSteps: true
+                    - dslName: MarshalDefinition
+                      stepName: marshal
+                      json:
+                        dslName: JsonDataFormat
+                        library: jackson
+                      inArray: true
+                      inSteps: true
+                    - dslName: LogDefinition
+                      stepName: log
+                      message: 'Send to database: ${body}'
+                      inArray: true
+                      inSteps: true
+                    - uri: 'kamelet:postgresql-sink'
+                      dslName: ToDefinition
+                      stepName: to
                       parameters:
-                        serverName: '{{postgres-server}}'
+                        serverName: localhost
                         serverPort: '5432'
                         username: postgres
                         password: postgres
                         databaseName: demo
-                        query: >-
-                          INSERT INTO parcels (id,address) VALUES
-                          (:#id,:#address) ON CONFLICT (id)  DO NOTHING
-                aggregationStrategy: >-
-                  #class:org.apache.camel.processor.aggregate.UseOriginalAggregationStrategy
-                parallelProcessing: true
-                streaming: true
-        id: post
-    - route:
-        from:
-          uri: kamelet:jms-apache-artemis-source
-          steps:
-            - to:
-                uri: xj:identity
-                parameters:
-                  transformDirection: XML2JSON
-            - to:
-                uri: kamelet:kafka-not-secured-sink
-                parameters:
-                  topic: payments
-                  bootstrapServers: '{{kafka-brokers}}'
-          parameters:
-            destinationType: queue
-            destinationName: payments
-            brokerURL: '{{jms-broker}}'
-        id: payment
-    - route:
-        from:
-          uri: kamelet:kafka-not-secured-source
-          steps:
-            - log:
-                message: 'Aggegating: ${body}'
-            - unmarshal:
-                json:
-                  library: jackson
-            - aggregate:
-                steps:
-                  - choice:
-                      when:
-                        - expression:
-                            groovy:
-                              expression: >-
-                                body.find { it.containsKey('status') }.status ==
-                                'confirmed'
-                          steps:
-                            - marshal:
-                                json:
-                                  library: jackson
-                            - log:
-                                message: 'Send to MQTT : ${body}'
-                            - to:
-                                uri: kamelet:mqtt-sink
-                                parameters:
-                                  topic: deliveries
-                                  brokerUrl: '{{mqtt-broker}}'
-                      otherwise:
-                        steps:
-                          - setBody:
-                              expression:
-                                groovy:
-                                  expression: 'body.find { it.containsKey(''status'') } '
-                          - marshal:
-                              json:
-                                library: jackson
-                          - log:
-                              message: 'Send to database: ${body}'
-                          - to:
-                              uri: kamelet:postgresql-sink
-                              parameters:
-                                serverName: '{{postgres-server}}'
-                                serverPort: '5432'
-                                username: postgres
-                                password: postgres
-                                databaseName: demo
-                                query: >-
-                                  UPDATE parcels set status = 'CANCELED' WHERE
-                                  id = :#id
-                aggregationStrategy: aggregator
-                completionSize: 2
-                correlationExpression:
-                  groovy:
-                    expression: body.get('id')
-          parameters:
-            topic: parcels,payments
-            bootstrapServers: '{{kafka-brokers}}'
-            autoCommitEnable: true
-            consumerGroup: postman
-        id: aggregator
-    - route:
-        from:
-          uri: kamelet:mqtt-source
-          steps:
-            - log:
-                message: 'Delivery: ${body}'
-          parameters:
-            topic: deliveries
-            brokerUrl: '{{mqtt-broker}}'
-    - beans:
-        - name: aggregator
+                        query: 'UPDATE parcels set status = ''CANCELED'' WHERE id = :#id'
+                      inArray: true
+                      inSteps: true
+                  dslName: OtherwiseDefinition
+                  stepName: otherwise
+                inArray: true
+                inSteps: true
+            dslName: AggregateDefinition
+            aggregationStrategy: aggregator
+            stepName: aggregate
+            completionSize: 2
+            correlationExpression:
+              dslName: ExpressionSubElementDefinition
+              stepName: expressionSubElement
+              groovy:
+                dslName: GroovyExpression
+                expression: body.get('id')
+            inArray: true
+            inSteps: true
+        dslName: FromDefinition
+        stepName: from
+        parameters:
+          topic: 'parcels,payments'
+          bootstrapServers: 'localhost:9091'
+          autoCommitEnable: true
+          consumerGroup: postman
+      id: aggregator
+    - dslName: RouteDefinition
+      stepName: route
+      from:
+        uri: 'kamelet:mqtt-source'
+        steps:
+          - dslName: LogDefinition
+            stepName: log
+            message: 'Delivery: ${body}'
+            inArray: true
+            inSteps: true
+        dslName: FromDefinition
+        stepName: from
+        parameters:
+          topic: deliveries
+          brokerUrl: 'tcp://localhost:61616'
+    - dslName: Beans
+      beans:
+        - dslName: NamedBeanDefinition
+          name: aggregator
           type: org.apache.camel.processor.aggregate.GroupedBodyAggregationStrategy
+          inArray: true
+          inSteps: false