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 <marat.gubaidul...@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