karavan-core 4.8.0 → 99.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of karavan-core might be problematic. Click here for more details.
- package/index.js +3 -0
- package/package.json +8 -58
- package/.bebelrc +0 -3
- package/.mocharc.json +0 -11
- package/.prettierignore +0 -9
- package/.prettierrc +0 -14
- package/src/core/api/CamelDefinitionApi.ts +0 -3271
- package/src/core/api/CamelDefinitionApiExt.ts +0 -757
- package/src/core/api/CamelDefinitionYaml.ts +0 -412
- package/src/core/api/CamelDefinitionYamlStep.ts +0 -4733
- package/src/core/api/CamelDisplayUtil.ts +0 -143
- package/src/core/api/CamelUtil.ts +0 -360
- package/src/core/api/ComponentApi.ts +0 -368
- package/src/core/api/KameletApi.ts +0 -147
- package/src/core/api/MainConfigurationApi.ts +0 -47
- package/src/core/api/ProjectModelApi.ts +0 -75
- package/src/core/api/SpiBeanApi.ts +0 -104
- package/src/core/api/TemplateApi.ts +0 -58
- package/src/core/api/TopologyUtils.ts +0 -392
- package/src/core/api/VariableUtil.ts +0 -104
- package/src/core/model/CamelDefinition.ts +0 -3783
- package/src/core/model/CamelMetadata.ts +0 -2714
- package/src/core/model/ComponentModels.ts +0 -106
- package/src/core/model/IntegrationDefinition.ts +0 -188
- package/src/core/model/KameletModels.ts +0 -223
- package/src/core/model/MainConfigurationModel.ts +0 -37
- package/src/core/model/ProjectModel.ts +0 -43
- package/src/core/model/SpiBeanModels.ts +0 -53
- package/src/core/model/TopologyDefinition.ts +0 -117
- package/test/addStep.spec.ts +0 -124
- package/test/addStep1.yaml +0 -27
- package/test/allowableValues.camel.yaml +0 -19
- package/test/allowableValues.spec.ts +0 -30
- package/test/avro-serialize-action.kamelet.yaml +0 -70
- package/test/beans.spec.ts +0 -92
- package/test/beans1.yaml +0 -36
- package/test/beans2.yaml +0 -42
- package/test/beans3.yaml +0 -7
- package/test/checkRequired.spec.ts +0 -53
- package/test/circuitBreaker.spec.ts +0 -57
- package/test/circuitBreaker.yaml +0 -19
- package/test/cloneDefinition.spec.ts +0 -106
- package/test/createKamelet.spec.ts +0 -38
- package/test/cxf.json +0 -615
- package/test/cxf.spec.ts +0 -44
- package/test/cxf.yaml +0 -15
- package/test/deleteStep.spec.ts +0 -74
- package/test/demo.spec.ts +0 -49
- package/test/demo.yaml +0 -32
- package/test/doCatchOnWhen.camel.yaml +0 -20
- package/test/doCatchOnWhen.spec.ts +0 -36
- package/test/errorHandler.spec.ts +0 -38
- package/test/errorHandler1.yaml +0 -27
- package/test/expression.spec.ts +0 -55
- package/test/findStep.spec.ts +0 -112
- package/test/findStep.yaml +0 -65
- package/test/getElementProperties.spec.ts +0 -32
- package/test/getElementPropertiesByName.spec.ts +0 -31
- package/test/getExpressionLanguage.spec.ts +0 -40
- package/test/hasElementWithId.camel.yaml +0 -98
- package/test/hasElementWithId.spec.ts +0 -57
- package/test/hasElementWithId1.camel.yaml +0 -16
- package/test/hasElementWithIdError.camel.yaml +0 -98
- package/test/integration.spec.ts +0 -60
- package/test/integration1.yaml +0 -24
- package/test/integration2.yaml +0 -23
- package/test/integrationToYaml.spec.ts +0 -51
- package/test/intercept.spec.ts +0 -62
- package/test/intercept.yaml +0 -19
- package/test/is-not-integration.yaml +0 -5114
- package/test/isIntegration.spec.ts +0 -45
- package/test/kamelet.spec.ts +0 -61
- package/test/metadata/components.json +0 -697
- package/test/metadata/kamelets.yaml +0 -23414
- package/test/metadata/spiBeans.json +0 -3094
- package/test/multiObjectProperties.spec.ts +0 -46
- package/test/multiObjectProperties1.yaml +0 -19
- package/test/multiple.spec.ts +0 -38
- package/test/multiple.yaml +0 -29
- package/test/openapi.spec.ts +0 -48
- package/test/openapi.yaml +0 -7
- package/test/placeholder.spec.ts +0 -32
- package/test/placeholder.yaml +0 -133
- package/test/plain-try-catch.yaml +0 -31
- package/test/plain.spec.ts +0 -72
- package/test/plain1.yaml +0 -22
- package/test/plain2.yaml +0 -13
- package/test/plain3.yaml +0 -5
- package/test/plain4.yaml +0 -5
- package/test/postgresql-source.kamelet.yaml +0 -113
- package/test/restConfigDsl.yaml +0 -15
- package/test/restDsl.spec.ts +0 -83
- package/test/restDsl.yaml +0 -29
- package/test/routes.spec.ts +0 -37
- package/test/routes1.yaml +0 -31
- package/test/supported-components.json +0 -1221
- package/test/supportedComponents.spec.ts +0 -34
- package/test/template1.AggregationStrategy.java +0 -21
- package/test/template1.Processor.java +0 -13
- package/test/template2.AggregationStrategy.java +0 -21
- package/test/template2.Processor.java +0 -13
- package/test/templateApi.spec.ts +0 -45
- package/test/timer-source.kamelet.yaml +0 -75
- package/test/tod.spec.ts +0 -31
- package/test/tod.yaml +0 -9
- package/test/topology.spec.ts +0 -51
- package/test/topology1.camel.yaml +0 -56
- package/test/topology2.camel.yaml +0 -44
- package/test/topology3.camel.yaml +0 -27
- package/test/tsconfig.testing.json +0 -14
- package/test/updateStep.spec.ts +0 -72
- package/test/variable1.camel.yaml +0 -42
- package/test/variable2.camel.yaml +0 -42
- package/test/variables.spec.ts +0 -34
- package/tsconfig.json +0 -34
@@ -1,46 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Licensed to the Apache Software Foundation (ASF) under one or more
|
3
|
-
* contributor license agreements. See the NOTICE file distributed with
|
4
|
-
* this work for additional information regarding copyright ownership.
|
5
|
-
* The ASF licenses this file to You under the Apache License, Version 2.0
|
6
|
-
* (the "License"); you may not use this file except in compliance with
|
7
|
-
* the License. You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*/
|
17
|
-
import {expect} from 'chai';
|
18
|
-
import 'mocha';
|
19
|
-
import {FromDefinition, ExpressionDefinition, PropertyExpressionDefinition} from "../src/core/model/CamelDefinition";
|
20
|
-
import {Integration} from "../src/core/model/IntegrationDefinition";
|
21
|
-
import {CamelDefinitionYaml} from "../src/core/api/CamelDefinitionYaml";
|
22
|
-
import {RouteDefinition, SagaDefinition, ToDefinition} from "../src/core/model/CamelDefinition";
|
23
|
-
import * as fs from 'fs';
|
24
|
-
|
25
|
-
describe('Multi object property', () => {
|
26
|
-
// TODO: Make new test for multiobject property because wireTab has no setHeader anymore
|
27
|
-
|
28
|
-
it('Saga options', () => {
|
29
|
-
const i = Integration.createNew("test")
|
30
|
-
const option1 = new PropertyExpressionDefinition({key:"key1", expression: new ExpressionDefinition({simple:"${body}"})})
|
31
|
-
const option2 = new PropertyExpressionDefinition({key:"key2", expression: new ExpressionDefinition({simple:"${headers}"})})
|
32
|
-
const saga = new SagaDefinition({steps: [new ToDefinition({uri: "direct"})], option: [option1, option2]})
|
33
|
-
const flow1 = new FromDefinition({uri: "direct1"});
|
34
|
-
flow1.steps?.push(saga);
|
35
|
-
i.spec.flows?.push(new RouteDefinition({from: flow1}));
|
36
|
-
|
37
|
-
const yaml = fs.readFileSync('test/multiObjectProperties1.yaml', {encoding: 'utf8', flag: 'r'});
|
38
|
-
|
39
|
-
const i2 = CamelDefinitionYaml.yamlToIntegration("test1.yaml", yaml);
|
40
|
-
|
41
|
-
const s: SagaDefinition = i2.spec.flows?.[0].from.steps[0] as SagaDefinition;
|
42
|
-
const t: ToDefinition | undefined = s.steps?.[0] as ToDefinition;
|
43
|
-
expect(t?.uri).to.equal('direct');
|
44
|
-
});
|
45
|
-
|
46
|
-
});
|
@@ -1,19 +0,0 @@
|
|
1
|
-
- route:
|
2
|
-
id: route-e653
|
3
|
-
from:
|
4
|
-
uri: direct1
|
5
|
-
id: from-6ecf
|
6
|
-
steps:
|
7
|
-
- saga:
|
8
|
-
option:
|
9
|
-
- key: key1
|
10
|
-
expression:
|
11
|
-
simple: ${body}
|
12
|
-
- key: key2
|
13
|
-
expression:
|
14
|
-
simple: ${headers}
|
15
|
-
id: saga-726c
|
16
|
-
steps:
|
17
|
-
- to:
|
18
|
-
uri: direct:direct2
|
19
|
-
id: to-efd8
|
package/test/multiple.spec.ts
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Licensed to the Apache Software Foundation (ASF) under one or more
|
3
|
-
* contributor license agreements. See the NOTICE file distributed with
|
4
|
-
* this work for additional information regarding copyright ownership.
|
5
|
-
* The ASF licenses this file to You under the Apache License, Version 2.0
|
6
|
-
* (the "License"); you may not use this file except in compliance with
|
7
|
-
* the License. You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*/
|
17
|
-
import {expect} from 'chai';
|
18
|
-
import * as fs from 'fs';
|
19
|
-
import 'mocha';
|
20
|
-
import {CamelDefinitionYaml} from "../src/core/api/CamelDefinitionYaml";
|
21
|
-
|
22
|
-
|
23
|
-
describe('Plain YAML to integration', () => {
|
24
|
-
|
25
|
-
it('YAML <-> Object', () => {
|
26
|
-
const yaml = fs.readFileSync('test/multiple.yaml',{encoding:'utf8', flag:'r'});
|
27
|
-
const i = CamelDefinitionYaml.yamlToIntegration("test1.yaml", yaml);
|
28
|
-
expect(i.metadata.name).to.equal('test1.yaml');
|
29
|
-
expect(i.kind).to.equal('Integration');
|
30
|
-
expect(i.spec.flows?.length).to.equal(2);
|
31
|
-
expect(i.type).to.equal('plain');
|
32
|
-
if (i.spec.flows) {
|
33
|
-
expect(i.spec.flows[0].from.uri).to.equal('netty-http');
|
34
|
-
expect(i.spec.flows[1].from.uri).to.equal('kamelet:aws-kinesis-source');
|
35
|
-
}
|
36
|
-
});
|
37
|
-
|
38
|
-
});
|
package/test/multiple.yaml
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
- from:
|
2
|
-
uri: netty-http
|
3
|
-
parameters:
|
4
|
-
protocol: http
|
5
|
-
host: localhost
|
6
|
-
port: 8080
|
7
|
-
path: demo
|
8
|
-
steps:
|
9
|
-
- convertBodyTo:
|
10
|
-
type: String
|
11
|
-
- unmarshal:
|
12
|
-
json: {}
|
13
|
-
- choice:
|
14
|
-
when:
|
15
|
-
- expression:
|
16
|
-
simple: ${body[amount]} < 1000
|
17
|
-
steps:
|
18
|
-
- log:
|
19
|
-
message: 'WHEN: ${body}'
|
20
|
-
logging-level: INFO
|
21
|
-
log-name: when
|
22
|
-
otherwise:
|
23
|
-
steps:
|
24
|
-
- log:
|
25
|
-
log-name: otherwise
|
26
|
-
logging-level: INFO
|
27
|
-
message: 'OTHERWISE: ${body}'
|
28
|
-
- from:
|
29
|
-
uri: kamelet:aws-kinesis-source
|
package/test/openapi.spec.ts
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Licensed to the Apache Software Foundation (ASF) under one or more
|
3
|
-
* contributor license agreements. See the NOTICE file distributed with
|
4
|
-
* this work for additional information regarding copyright ownership.
|
5
|
-
* The ASF licenses this file to You under the Apache License, Version 2.0
|
6
|
-
* (the "License"); you may not use this file except in compliance with
|
7
|
-
* the License. You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*/
|
17
|
-
import {expect} from 'chai';
|
18
|
-
import 'mocha';
|
19
|
-
import {
|
20
|
-
FromDefinition,
|
21
|
-
LogDefinition,
|
22
|
-
WhenDefinition,
|
23
|
-
ChoiceDefinition,
|
24
|
-
MulticastDefinition,
|
25
|
-
ExpressionDefinition,
|
26
|
-
RouteDefinition, TryDefinition, CatchDefinition, RestDefinition, GetDefinition, OpenApiDefinition,
|
27
|
-
} from '../src/core/model/CamelDefinition';
|
28
|
-
import {CamelDefinitionApiExt} from "../src/core/api/CamelDefinitionApiExt";
|
29
|
-
import {CamelDefinitionYaml} from "../src/core/api/CamelDefinitionYaml";
|
30
|
-
import {SimpleExpression} from "../src/core/model/CamelDefinition";
|
31
|
-
import {Integration} from "../src/core/model/IntegrationDefinition";
|
32
|
-
import * as fs from 'fs';
|
33
|
-
|
34
|
-
describe('OpenAPI', () => {
|
35
|
-
|
36
|
-
it('Simple config', () => {
|
37
|
-
let i = Integration.createNew("test")
|
38
|
-
|
39
|
-
const openApi = new OpenApiDefinition({specification: "openapi.json", id: 'openapi-1'});
|
40
|
-
const rest = new RestDefinition({id: 'rest-1', path: "/demo", description: "Hello World", openApi: openApi});
|
41
|
-
i = CamelDefinitionApiExt.addRestToIntegration(i, rest);
|
42
|
-
|
43
|
-
const yaml1 = CamelDefinitionYaml.integrationToYaml(i);
|
44
|
-
const yaml2 = fs.readFileSync('test/openapi.yaml', {encoding: 'utf8', flag: 'r'});
|
45
|
-
|
46
|
-
expect(yaml1).to.equal(yaml2);
|
47
|
-
});
|
48
|
-
});
|
package/test/openapi.yaml
DELETED
package/test/placeholder.spec.ts
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Licensed to the Apache Software Foundation (ASF) under one or more
|
3
|
-
* contributor license agreements. See the NOTICE file distributed with
|
4
|
-
* this work for additional information regarding copyright ownership.
|
5
|
-
* The ASF licenses this file to You under the Apache License, Version 2.0
|
6
|
-
* (the "License"); you may not use this file except in compliance with
|
7
|
-
* the License. You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*/
|
17
|
-
import {expect} from 'chai';
|
18
|
-
import * as fs from 'fs';
|
19
|
-
import 'mocha';
|
20
|
-
import {CamelDefinitionYaml} from "../src/core/api/CamelDefinitionYaml";
|
21
|
-
import {CamelUtil} from "../src/core/api/CamelUtil";
|
22
|
-
|
23
|
-
describe('Get Placeholders', () => {
|
24
|
-
|
25
|
-
it('Get Placeholders', () => {
|
26
|
-
const yaml = fs.readFileSync('test/placeholder.yaml',{encoding:'utf8', flag:'r'});
|
27
|
-
const i = CamelDefinitionYaml.yamlToIntegration("test1.yaml", yaml);
|
28
|
-
const placeholders = CamelUtil.findPlaceholdersInObject(i);
|
29
|
-
expect(placeholders.size).to.equal(4);
|
30
|
-
});
|
31
|
-
|
32
|
-
});
|
package/test/placeholder.yaml
DELETED
@@ -1,133 +0,0 @@
|
|
1
|
-
apiVersion: camel.apache.org/v1
|
2
|
-
kind: Integration
|
3
|
-
metadata:
|
4
|
-
name: parceldemo
|
5
|
-
spec:
|
6
|
-
flows:
|
7
|
-
- rest:
|
8
|
-
post:
|
9
|
-
- to: direct:post
|
10
|
-
path: /parcels
|
11
|
-
consumes: application/json
|
12
|
-
produces: application/json
|
13
|
-
- route:
|
14
|
-
from:
|
15
|
-
uri: direct:post
|
16
|
-
steps:
|
17
|
-
- log:
|
18
|
-
message: 'Received: ${body}'
|
19
|
-
- multicast:
|
20
|
-
steps:
|
21
|
-
- to:
|
22
|
-
uri: kamelet:kafka-not-secured-sink
|
23
|
-
parameters:
|
24
|
-
topic: parcels
|
25
|
-
bootstrapServers: '{{kafka-brokers}}'
|
26
|
-
- to:
|
27
|
-
uri: kamelet:postgresql-sink
|
28
|
-
parameters:
|
29
|
-
serverName: '{{postgres-server}}'
|
30
|
-
serverPort: '5432'
|
31
|
-
username: postgres
|
32
|
-
password: postgres
|
33
|
-
databaseName: demo
|
34
|
-
query: >-
|
35
|
-
INSERT INTO parcels (id,address) VALUES
|
36
|
-
(:#id,:#address) ON CONFLICT (id) DO NOTHING
|
37
|
-
aggregationStrategy: >-
|
38
|
-
#class:org.apache.camel.processor.aggregate.UseOriginalAggregationStrategy
|
39
|
-
parallelProcessing: true
|
40
|
-
streaming: true
|
41
|
-
id: post
|
42
|
-
- route:
|
43
|
-
from:
|
44
|
-
uri: kamelet:jms-apache-artemis-source
|
45
|
-
steps:
|
46
|
-
- to:
|
47
|
-
uri: xj:identity
|
48
|
-
parameters:
|
49
|
-
transformDirection: XML2JSON
|
50
|
-
- to:
|
51
|
-
uri: kamelet:kafka-not-secured-sink
|
52
|
-
parameters:
|
53
|
-
topic: payments
|
54
|
-
bootstrapServers: '{{kafka-brokers}}'
|
55
|
-
parameters:
|
56
|
-
destinationType: queue
|
57
|
-
destinationName: payments
|
58
|
-
brokerURL: '{{jms-broker}}'
|
59
|
-
id: payment
|
60
|
-
- route:
|
61
|
-
from:
|
62
|
-
uri: kamelet:kafka-not-secured-source
|
63
|
-
steps:
|
64
|
-
- log:
|
65
|
-
message: 'Aggegating: ${body}'
|
66
|
-
- unmarshal:
|
67
|
-
json:
|
68
|
-
library: jackson
|
69
|
-
- aggregate:
|
70
|
-
steps:
|
71
|
-
- choice:
|
72
|
-
when:
|
73
|
-
- expression:
|
74
|
-
groovy:
|
75
|
-
expression: >-
|
76
|
-
body.find { it.containsKey('status') }.status ==
|
77
|
-
'confirmed'
|
78
|
-
steps:
|
79
|
-
- marshal:
|
80
|
-
json:
|
81
|
-
library: jackson
|
82
|
-
- log:
|
83
|
-
message: 'Send to MQTT : ${body}'
|
84
|
-
- to:
|
85
|
-
uri: kamelet:mqtt-sink
|
86
|
-
parameters:
|
87
|
-
topic: deliveries
|
88
|
-
brokerUrl: '{{mqtt-broker}}'
|
89
|
-
otherwise:
|
90
|
-
steps:
|
91
|
-
- setBody:
|
92
|
-
expression:
|
93
|
-
groovy:
|
94
|
-
expression: 'body.find { it.containsKey(''status'') } '
|
95
|
-
- marshal:
|
96
|
-
json:
|
97
|
-
library: jackson
|
98
|
-
- log:
|
99
|
-
message: 'Send to database: ${body}'
|
100
|
-
- to:
|
101
|
-
uri: kamelet:postgresql-sink
|
102
|
-
parameters:
|
103
|
-
serverName: '{{postgres-server}}'
|
104
|
-
serverPort: '5432'
|
105
|
-
username: postgres
|
106
|
-
password: postgres
|
107
|
-
databaseName: demo
|
108
|
-
query: >-
|
109
|
-
UPDATE parcels set status = 'CANCELED' WHERE
|
110
|
-
id = :#id
|
111
|
-
aggregationStrategy: aggregator
|
112
|
-
completionSize: 2
|
113
|
-
correlationExpression:
|
114
|
-
groovy:
|
115
|
-
expression: body.get('id')
|
116
|
-
parameters:
|
117
|
-
topic: parcels,payments
|
118
|
-
bootstrapServers: '{{kafka-brokers}}'
|
119
|
-
autoCommitEnable: true
|
120
|
-
consumerGroup: parceldemo
|
121
|
-
id: aggregator
|
122
|
-
- route:
|
123
|
-
from:
|
124
|
-
uri: kamelet:mqtt-source
|
125
|
-
steps:
|
126
|
-
- log:
|
127
|
-
message: 'Delivery: ${body}'
|
128
|
-
parameters:
|
129
|
-
topic: deliveries
|
130
|
-
brokerUrl: '{{mqtt-broker}}'
|
131
|
-
- beans:
|
132
|
-
- name: aggregator
|
133
|
-
type: org.apache.camel.processor.aggregate.GroupedBodyAggregationStrategy
|
@@ -1,31 +0,0 @@
|
|
1
|
-
- route:
|
2
|
-
id: route-1
|
3
|
-
from:
|
4
|
-
id: from-1
|
5
|
-
uri: timer
|
6
|
-
parameters:
|
7
|
-
name: info
|
8
|
-
steps:
|
9
|
-
- doTry:
|
10
|
-
id: doTry-1
|
11
|
-
doCatch:
|
12
|
-
- id: doCatch-1
|
13
|
-
exception:
|
14
|
-
- java.lang.ArithmeticException
|
15
|
-
steps:
|
16
|
-
- log:
|
17
|
-
id: log-1
|
18
|
-
message: Exception
|
19
|
-
doFinally:
|
20
|
-
id: doFinally-1
|
21
|
-
steps:
|
22
|
-
- log:
|
23
|
-
id: log-2
|
24
|
-
message: ${body}
|
25
|
-
steps:
|
26
|
-
- setBody:
|
27
|
-
id: setBody-1
|
28
|
-
expression:
|
29
|
-
groovy:
|
30
|
-
id: groovy-1
|
31
|
-
expression: 1000 / 0
|
package/test/plain.spec.ts
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Licensed to the Apache Software Foundation (ASF) under one or more
|
3
|
-
* contributor license agreements. See the NOTICE file distributed with
|
4
|
-
* this work for additional information regarding copyright ownership.
|
5
|
-
* The ASF licenses this file to You under the Apache License, Version 2.0
|
6
|
-
* (the "License"); you may not use this file except in compliance with
|
7
|
-
* the License. You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*/
|
17
|
-
import {expect} from 'chai';
|
18
|
-
import * as fs from 'fs';
|
19
|
-
import 'mocha';
|
20
|
-
import {CamelDefinitionYaml} from "../src/core/api/CamelDefinitionYaml";
|
21
|
-
|
22
|
-
|
23
|
-
describe('Plain YAML to integration', () => {
|
24
|
-
|
25
|
-
it('YAML <-> Object', () => {
|
26
|
-
const yaml = fs.readFileSync('test/plain1.yaml',{encoding:'utf8', flag:'r'});
|
27
|
-
const i = CamelDefinitionYaml.yamlToIntegration("test1.yaml", yaml);
|
28
|
-
expect(i.metadata.name).to.equal('test1.yaml');
|
29
|
-
expect(i.kind).to.equal('Integration');
|
30
|
-
expect(i.spec.flows?.length).to.equal(1);
|
31
|
-
expect(i.type).to.equal('plain');
|
32
|
-
if (i.spec.flows) {
|
33
|
-
expect(i.spec.flows[0].from.uri).to.equal('timer');
|
34
|
-
expect(i.spec.flows[0].from.steps[0].when.length).to.equal(2);
|
35
|
-
}
|
36
|
-
});
|
37
|
-
|
38
|
-
it('YAML <-> Object 2', () => {
|
39
|
-
const yaml = fs.readFileSync('test/plain2.yaml',{encoding:'utf8', flag:'r'});
|
40
|
-
const i = CamelDefinitionYaml.yamlToIntegration("test1.yaml", yaml);
|
41
|
-
expect(i.metadata.name).to.equal('test1.yaml');
|
42
|
-
expect(i.kind).to.equal('Integration');
|
43
|
-
expect(i.spec.flows?.length).to.equal(1);
|
44
|
-
expect(i.type).to.equal('plain');
|
45
|
-
if (i.spec.flows) {
|
46
|
-
expect(i.spec.flows[0].from.uri).to.equal('timer');
|
47
|
-
expect(i.spec.flows[0].from.parameters.name).to.equal('info');
|
48
|
-
expect(i.spec.flows[0].from.steps[0].expression.constant.expression).to.equal("Hello Yaml !!!");
|
49
|
-
}
|
50
|
-
});
|
51
|
-
|
52
|
-
it('Boolean Properties', () => {
|
53
|
-
const yaml1 = fs.readFileSync('test/plain3.yaml',{encoding:'utf8', flag:'r'});
|
54
|
-
const yaml2 = fs.readFileSync('test/plain4.yaml',{encoding:'utf8', flag:'r'});
|
55
|
-
const i = CamelDefinitionYaml.yamlToIntegration("test1.yaml", yaml1);
|
56
|
-
(i.spec.flows?.at(0)).autoStartup = false;
|
57
|
-
const y = CamelDefinitionYaml.integrationToYaml(i);
|
58
|
-
expect(y).to.equal(yaml2.replaceAll("\r\n", "\n")); // replace for Windows compatibility
|
59
|
-
});
|
60
|
-
|
61
|
-
it('YAML <-> Integration', () => {
|
62
|
-
const yaml = fs.readFileSync('test/plain-try-catch.yaml',{encoding:'utf8', flag:'r'});
|
63
|
-
const i = CamelDefinitionYaml.yamlToIntegration("try-catch.yaml", yaml);
|
64
|
-
expect(i.metadata.name).to.equal('try-catch.yaml');
|
65
|
-
expect(i.kind).to.equal('Integration');
|
66
|
-
expect(i.spec.flows?.length).to.equal(1);
|
67
|
-
expect(i.type).to.equal('plain');
|
68
|
-
const yaml2 = CamelDefinitionYaml.integrationToYaml(i);
|
69
|
-
expect(yaml.replaceAll("\r\n", "\n")).to.equal(yaml2); // replace for Windows compatibility
|
70
|
-
});
|
71
|
-
|
72
|
-
});
|
package/test/plain1.yaml
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
- from:
|
2
|
-
uri: timer
|
3
|
-
id: from-1
|
4
|
-
parameters:
|
5
|
-
name: info
|
6
|
-
steps:
|
7
|
-
- choice:
|
8
|
-
when:
|
9
|
-
- expression:
|
10
|
-
simple:
|
11
|
-
expression: ${headers} != null
|
12
|
-
steps:
|
13
|
-
- log:
|
14
|
-
message: hello11
|
15
|
-
logName: log11
|
16
|
-
- expression:
|
17
|
-
simple:
|
18
|
-
expression: ${headers} == null
|
19
|
-
steps:
|
20
|
-
- log:
|
21
|
-
message: hello22
|
22
|
-
logName: log22
|
package/test/plain2.yaml
DELETED
package/test/plain3.yaml
DELETED
package/test/plain4.yaml
DELETED
@@ -1,113 +0,0 @@
|
|
1
|
-
# ---------------------------------------------------------------------------
|
2
|
-
# Licensed to the Apache Software Foundation (ASF) under one or more
|
3
|
-
# contributor license agreements. See the NOTICE file distributed with
|
4
|
-
# this work for additional information regarding copyright ownership.
|
5
|
-
# The ASF licenses this file to You under the Apache License, Version 2.0
|
6
|
-
# (the "License"); you may not use this file except in compliance with
|
7
|
-
# the License. You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
# See the License for the specific language governing permissions and
|
15
|
-
# limitations under the License.
|
16
|
-
# ---------------------------------------------------------------------------
|
17
|
-
apiVersion: camel.apache.org/v1
|
18
|
-
kind: Kamelet
|
19
|
-
metadata:
|
20
|
-
name: postgresql-source
|
21
|
-
annotations:
|
22
|
-
camel.apache.org/kamelet.support.level: "Stable"
|
23
|
-
camel.apache.org/catalog.version: "4.6.0-SNAPSHOT"
|
24
|
-
camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+UG9zdGdyZVNRTCBpY29uPC90aXRsZT48cGF0aCBkPSJNMTcuMTI4IDBhMTAuMTM0IDEwLjEzNCAwIDAgMC0yLjc1NS40MDNsLS4wNjMuMDJBMTAuOTIyIDEwLjkyMiAwIDAgMCAxMi42LjI1OEMxMS40MjIuMjM4IDEwLjQxLjUyNCA5LjU5NCAxIDguNzkuNzIxIDcuMTIyLjI0IDUuMzY0LjMzNiA0LjE0LjQwMyAyLjgwNC43NzUgMS44MTQgMS44Mi44MjcgMi44NjUuMzA1IDQuNDgyLjQxNSA2LjY4MmMuMDMuNjA3LjIwMyAxLjU5Ny40OSAyLjg3OXMuNjkgMi43ODMgMS4xOTMgNC4xNTJjLjUwMyAxLjM3IDEuMDU0IDIuNiAxLjkxNSAzLjQzNi40My40MTkgMS4wMjIuNzcxIDEuNzIuNzQyLjQ5LS4wMi45MzMtLjIzNSAxLjMxNS0uNTUyLjE4Ni4yNDUuMzg1LjM1Mi41NjYuNDUxLjIyOC4xMjUuNDUuMjEuNjguMjY2LjQxMy4xMDMgMS4xMi4yNDEgMS45NDguMS4yODItLjA0Ny41NzktLjEzOS44NzUtLjI3LjAxMS4zMy4wMjQuNjUzLjAzNy45OC4wNDEgMS4wMzYuMDY3IDEuOTkzLjM3OCAyLjgzMi4wNS4xMzcuMTg3Ljg0My43MjcgMS40NjYuNTQuNjI0IDEuNTk4IDEuMDEzIDIuODAzLjc1NS44NS0uMTgyIDEuOTMxLS41MSAyLjY0OS0xLjUzMi43MS0xLjAxIDEuMDMtMi40NTkgMS4wOTMtNC44MDkuMDE2LS4xMjcuMDM1LS4yMzUuMDU1LS4zMzZsLjE2OS4wMTVoLjAyYy45MDcuMDQxIDEuODkxLS4wODggMi43MTMtLjQ3LjcyOC0uMzM3IDEuMjc5LS42NzggMS42OC0xLjI4My4xLS4xNS4yMS0uMzMxLjI0LS42NDNzLS4xNDktLjgtLjQ0Ni0xLjAyNWMtLjU5NS0uNDUyLS45NjktLjI4LTEuMzctLjE5N2E2LjI3IDYuMjcgMCAwIDEtMS4yMDIuMTQ2YzEuMTU2LTEuOTQ3IDEuOTg1LTQuMDE1IDIuNDU4LTUuODQ1LjI4LTEuMDguNDM3LTIuMDc2LjQ1LTIuOTQ3LjAxMy0uODcxLS4wNTgtMS42NDItLjU4LTIuMzA5QzIxLjM2LjYgMTkuMDY3LjAyNCAxNy4yOTMuMDA0Yy0uMDU1LS4wMDEtLjExLS4wMDItLjE2NS0uMDAxem0tLjA0Ny42NGMxLjY3OC0uMDE2IDMuODIyLjQ1NSA1LjM2MSAyLjQyMi4zNDYuNDQyLjQ0OSAxLjA4OC40MzcgMS44ODQtLjAxMy43OTUtLjE2IDEuNzQ3LS40MjkgMi43OS0uNTIyIDIuMDItMS41MDggNC4zNzUtMi44OTcgNi40ODhhLjc1Ni43NTYgMCAwIDAgLjE1OC4wODZjLjI5LjEyLjk1MS4yMjMgMi4yNy0uMDQ4LjMzMi0uMDcuNTc1LS4xMTcuODI3LjA3NWEuNTIuNTIgMCAwIDEgLjE4My40MjUuNzA0LjcwNCAwIDAgMS0uMTMuMzM2Yy0uMjU1LjM4My0uNzU4Ljc0Ni0xLjQwMyAxLjA0NS0uNTcxLjI2Ni0xLjM5LjQwNS0yLjExNi40MTMtLjM2NC4wMDQtLjctLjAyNC0uOTg1LS4xMTNsLS4wMTgtLjAwN2MtLjExIDEuMDYtLjM2MyAzLjE1My0uNTI4IDQuMTA4LS4xMzIuNzctLjM2MyAxLjM4Mi0uODA0IDEuODQtLjQ0LjQ1OC0xLjA2My43MzQtMS45MDEuOTE0LTEuMDM4LjIyMy0xLjc5NS0uMDE3LTIuMjgzLS40MjgtLjQ4Ny0uNDEtLjcxLS45NTQtLjg0NC0xLjI4Ny0uMDkyLS4yMy0uMTQtLjUyOC0uMTg2LS45MjYtLjA0Ni0uMzk4LS4wOC0uODg1LS4xMDMtMS40MzRhNTEuNDI2IDUxLjQyNiAwIDAgMS0uMDMtMi41MjMgMy4wNjEgMy4wNjEgMCAwIDEtMS41NTIuNzZjLS42ODkuMTE3LTEuMzA0LjAwMi0xLjY3MS0uMDlhMi4yNzYgMi4yNzYgMCAwIDEtLjUyLS4yMDFjLS4xNy0uMDkxLS4zMzItLjE5NC0uNDQtLjM5N2EuNTYuNTYgMCAwIDEtLjA1Ny0uMzgxLjYxLjYxIDAgMCAxIC4yMTgtLjMzMWMuMTk4LS4xNjEuNDYtLjI1MS44NTUtLjMzMy43MTktLjE0OC45Ny0uMjQ5IDEuMTIzLS4zNy4xMy0uMTA0LjI3Ny0uMzE0LjUzNy0uNjIyYTEuMTYgMS4xNiAwIDAgMS0uMDAzLS4wNDEgMi45NiAyLjk2IDAgMCAxLTEuMzMtLjM1OGMtLjE1LjE1OC0uOTE2Ljk2OC0xLjg1IDIuMDkyLS4zOTMuNDctLjgyNy43NC0xLjI4NS43NTktLjQ1OC4wMi0uODcyLS4yMTEtMS4yMjQtLjU1Mi0uNzAzLS42ODMtMS4yNjQtMS44NTgtMS43NTMtMy4xODYtLjQ4OC0xLjMyOC0uODg1LTIuODA3LTEuMTY3LTQuMDY3LS4yODMtMS4yNi0uNDUtMi4yNzYtLjQ3NC0yLjc2Ni0uMTA1LTIuMDgyLjM4Mi0zLjQ4NSAxLjIxNy00LjM3LjgzNi0uODg1IDEuOTgyLTEuMjIgMy4wOTktMS4yODQgMi4wMDUtLjExNSAzLjkwOS41ODQgNC4yOTQuNzM0Ljc0Mi0uNTA0IDEuNjk4LS44MTggMi44OTItLjc5OGE3LjM5IDcuMzkgMCAwIDEgMS42ODEuMjE4bC4wMi0uMDA5YTYuODU0IDYuODU0IDAgMCAxIC43MzktLjIxNEE5LjYyNiA5LjYyNiAwIDAgMSAxNy4wOC42NDJ6bS4xNTIuNjdoLS4xNDZhOC43NCA4Ljc0IDAgMCAwLTEuNzA0LjE5MmMxLjI0Ni41NTIgMi4xODcgMS40MDIgMi44NSAyLjI1YTguNDQgOC40NCAwIDAgMSAxLjEzMiAxLjkyYy4xMS4yNjQuMTg0LjQ4Ny4yMjYuNjYuMDIxLjA4Ny4wMzUuMTYuMDQuMjM2LjAwMi4wMzguMDA0LjA3Ny0uMDEyLjE0NCAwIC4wMDMtLjAwNS4wMS0uMDA2LjAxMy4wMy44NzYtLjE4NyAxLjQ3LS4yMTMgMi4zMDYtLjAyLjYwNi4xMzUgMS4zMTguMTczIDIuMDk1LjAzNi43My0uMDUyIDEuNTMyLS41MjYgMi4zMTkuMDQuMDQ4LjA3Ni4wOTYuMTE0LjE0NCAxLjI1NC0xLjk3NSAyLjE1OC00LjE2IDIuNjQtNi4wMjMuMjU4LTEuMDAzLjM5NS0xLjkxMi40MDctMi42MzIuMDEtLjcyLS4xMjQtMS4yNDItLjI5NS0xLjQ2LTEuMzQyLTEuNzE2LTMuMTU4LTIuMTUzLTQuNjgtMi4xNjV6bS00Ljc5LjI1NmMtMS4xODIuMDAzLTIuMDMuMzYtMi42NzMuODk1LS42NjMuNTUzLTEuMTA4IDEuMzEtMS40IDIuMDg1LS4zNDcuOTItLjQ2NiAxLjgxLS41MTMgMi40MTRsLjAxMy0uMDA4Yy4zNTctLjIuODI2LS40IDEuMzI4LS41MTYuNTAyLS4xMTUgMS4wNDMtLjE1MSAxLjUzMy4wMzlzLjg5NS42MzcgMS4wNDIgMS4zMTVjLjcwNCAzLjI1Ny0uMjE5IDQuNDY4LS41NTkgNS4zODJhOS42MSA5LjYxIDAgMCAwLS4zMzEgMS4wMTNjLjA0My0uMDEuMDg2LS4wMjIuMTI5LS4wMjYuMjQtLjAyLjQyOC4wNi41NC4xMDguMzQyLjE0Mi41NzcuNDQuNzA0Ljc4LjAzMy4wODkuMDU3LjE4NS4wNzEuMjg0YS4zMzYuMzM2IDAgMCAxIC4wMi4xMjcgNTUuMTQgNTUuMTQgMCAwIDAgLjAxMyAzLjczOGMuMDIzLjUzOC4wNTcgMS4wMTIuMSAxLjM4Ni4wNDMuMzczLjEwNC42NTcuMTQzLjc1My4xMjguMzIuMzE1LjczOS42NTMgMS4wMjQuMzM4LjI4NC44MjMuNDc0IDEuNzA5LjI4NC43NjgtLjE2NSAxLjI0Mi0uMzk0IDEuNTU5LS43MjMuMzE2LS4zMjkuNTA1LS43ODcuNjI2LTEuNDg4LjE4MS0xLjA1LjU0NS00LjA5NS41ODktNC42NjgtLjAyLS40MzIuMDQ0LS43NjQuMTgyLTEuMDE3LjE0Mi0uMjYuMzYyLS40MTkuNTUyLS41MDUuMDk1LS4wNDMuMTg0LS4wNzIuMjU3LS4wOTNhNS45NTYgNS45NTYgMCAwIDAtLjI0My0uMzI1IDQuNDU2IDQuNDU2IDAgMCAxLS42NjYtMS4wOTkgOC4yOTYgOC4yOTYgMCAwIDAtLjI1Ny0uNDgzYy0uMTMzLS4yNC0uMzAxLS41NC0uNDc3LS44NzctLjM1Mi0uNjc1LS43MzUtMS40OTMtLjkzNC0yLjI5LS4xOTgtLjc5Ni0uMjI3LTEuNjIuMjgxLTIuMjAxLjQ1LS41MTYgMS4yNC0uNzMgMi40MjYtLjYxLS4wMzUtLjEwNS0uMDU2LS4xOTItLjExNS0uMzMyYTcuODE3IDcuODE3IDAgMCAwLTEuMDQxLTEuNzY0Yy0xLjAwNS0xLjI4NS0yLjYzMi0yLjU1OS01LjE0Ni0yLjZoLS4xMTV6bS02LjY0Mi4wNTJjLS4xMjcgMC0uMjU0LjAwNC0uMzguMDExLTEuMDEuMDU4LTEuOTY1LjM1MS0yLjY0OCAxLjA3NS0uNjg0LjcyNC0xLjEzNCAxLjkxMS0xLjAzNiAzLjg3Ni4wMTkuMzcyLjE4MSAxLjQxNC40NTkgMi42NTIuMjc3IDEuMjM4LjY3IDIuNjk1IDEuMTQyIDMuOTgyLjQ3MyAxLjI4NyAxLjA0NiAyLjQwNyAxLjU5IDIuOTM3LjI3NC4yNjUuNTEyLjM3Mi43MjguMzYzLjIxNy0uMDEuNDc4LS4xMzUuNzk3LS41MThhNDMuMjQ0IDQzLjI0NCAwIDAgMSAxLjgxLTIuMDQ4IDMuNDk3IDMuNDk3IDAgMCAxLTEuMTY3LTMuMTVjLjEwMy0uNzM5LjExNy0xLjQzLjEwNS0xLjk3Ni0uMDEyLS41MzItLjA1LS44ODYtLjA1LTEuMTA3YS4zMzYuMzM2IDAgMCAxIDAtLjAxOXYtLjAwNWwtLjAwMS0uMDA2di0uMDAxYTkuODkzIDkuODkzIDAgMCAxIC41OTItMy4zNzZjLjI4LS43NDQuNjk3LTEuNSAxLjMyMi0yLjExMi0uNjE0LS4yMDItMS43MDQtLjUxLTIuODg0LS41NjhhNy42MDMgNy42MDMgMCAwIDAtLjM4LS4wMXpNMTguMTk5IDYuOWMtLjY3OS4wMDktMS4wNi4xODQtMS4yNi40MTMtLjI4My4zMjUtLjMxLjg5NS0uMTM0IDEuNTk3LjE3NS43MDMuNTM3IDEuNDg5Ljg3NyAyLjE0Mi4xNy4zMjcuMzM1LjYyMS40NjguODYuMTM0LjI0LjIzMi40MS4yOTIuNTU1LjA1NS4xMzQuMTE2LjI1Mi4xNzguMzYyLjI2My0uNTU1LjMxLTEuMS4yODMtMS42NjgtLjAzNS0uNzAzLS4xOTgtMS40MjItLjE3NC0yLjE1LjAyNy0uODUxLjE5NS0xLjQwNS4yMS0yLjA2M2E1Ljc5MyA1Ljc5MyAwIDAgMC0uNzQtLjA0OHptLTguMjM0LjExNWEyLjgyIDIuODIgMCAwIDAtLjYxNi4wNzQgNC42NjUgNC42NjUgMCAwIDAtMS4xNTMuNDQ5IDIuNDE3IDIuNDE3IDAgMCAwLS4zNDkuMjI4bC0uMDIyLjAyYy4wMDYuMTQ2LjAzNS41LjA0NyAxLjAyMS4wMTIuNTctLjAwMiAxLjI5Ny0uMTEyIDIuMDg0LS4yMzkgMS43MSAxLjAwMiAzLjEyNiAyLjQ2IDMuMTI4LjA4NS0uMzUxLjIyNS0uNzA3LjM2NS0xLjA4Mi40MDYtMS4wOTQgMS4yMDUtMS44OTIuNTMyLTUuMDA2LS4xMS0uNTEtLjMyOC0uNzE2LS42MjgtLjgzMmExLjQ3NCAxLjQ3NCAwIDAgMC0uNTI0LS4wODR6bTcuOTE3LjIwNGguMDVjLjA2Ni4wMDIuMTI3LjAwOS4xOC4wMjIuMDU0LjAxMi4xLjAzLjEzOC4wNTVhLjE2NC4xNjQgMCAwIDEgLjA3NS4xMWwtLjAwMS4wMDhoLjAwMS0uMDAxYS4yNC4yNCAwIDAgMS0uMDM1LjEzNS42NjguNjY4IDAgMCAxLS4xMS4xNS42NzcuNjc3IDAgMCAxLS4zODYuMjEyLjU5LjU5IDAgMCAxLS40MS0uMTAzLjYwOC42MDggMCAwIDEtLjEzLS4xMTguMjYuMjYgMCAwIDEtLjA2My0uMTI3LjE3LjE3IDAgMCAxIC4wNDItLjEyOC4zODQuMzg0IDAgMCAxIC4xMTctLjA5Yy4wOTYtLjA1NC4yMjYtLjA5NC4zNzMtLjExNi4wNTUtLjAwOC4xMDktLjAxMi4xNi0uMDEzem0tNy44Mi4xNjhjLjA1MyAwIC4xMDkuMDA1LjE2Ni4wMTMuMTUzLjAyMS4yODkuMDYyLjM5My4xMjJhLjQ0Ni40NDYgMCAwIDEgLjEzMy4xMDYuMjIzLjIyMyAwIDAgMSAuMDU0LjE3LjMwMi4zMDIgMCAwIDEtLjA3NS4xNTQuNjQ5LjY0OSAwIDAgMS0uMTQzLjEzLjY0LjY0IDAgMCAxLS40NDguMTEzLjcyOC43MjggMCAwIDEtLjQyLS4yMjguNzEuNzEgMCAwIDEtLjExOC0uMTY0LjI4LjI4IDAgMCAxLS4wNDEtLjE3N2MuMDE1LS4xMDguMTA0LS4xNjQuMTkxLS4xOTVhLjg2Ni44NjYgMCAwIDEgLjMwNy0uMDR6bTkuMDYgNy4zNDNsLS4wMDMuMDAxYy0uMTQ3LjA1My0uMjY4LjA3NS0uMzcuMTJhLjQ1Mi40NTIgMCAwIDAtLjIzOS4yMTRjLS4wNjMuMTE1LS4xMTcuMzE5LS4xMDEuNjY2YS41MS41MSAwIDAgMCAuMTQ4LjA3Yy4xNzEuMDUyLjQ1OC4wODYuNzc4LjA4MS42MzgtLjAwNyAxLjQyMy0uMTU2IDEuODQtLjM1YTMuOTUgMy45NSAwIDAgMCAuOTQzLS42MTVoLS4wMDFjLTEuMzkzLjI4OC0yLjE4LjIxMS0yLjY2My4wMTJhMS4zMTUgMS4zMTUgMCAwIDEtLjMzMi0uMnptLTguMDMxLjA5NGgtLjAyMWMtLjA1My4wMDUtLjEzLjAyMy0uMjc5LjE4OC0uMzQ4LjM5LS40Ny42MzUtLjc1Ny44NjQtLjI4Ny4yMjgtLjY2LjM1LTEuNDA1LjUwMy0uMjM2LjA0OC0uMzcxLjEwMS0uNDYxLjE0NC4wMjkuMDI0LjAyNi4wMy4wNy4wNTMuMTA5LjA2LjI0OS4xMTMuMzYyLjE0Mi4zMi4wOC44NDYuMTczIDEuMzk1LjA4LjU0OS0uMDk0IDEuMTItLjM1NyAxLjYwNy0xLjA0LjA4NC0uMTE4LjA5My0uMjkyLjAyNC0uNDc5LS4wNy0uMTg3LS4yMjMtLjM0OC0uMzMxLS4zOTNhLjY1My42NTMgMCAwIDAtLjIwNC0uMDZ6Ii8+PC9zdmc+"
|
25
|
-
camel.apache.org/provider: "Apache Software Foundation"
|
26
|
-
camel.apache.org/kamelet.group: "SQL"
|
27
|
-
camel.apache.org/kamelet.namespace: "Database"
|
28
|
-
labels:
|
29
|
-
camel.apache.org/kamelet.type: "source"
|
30
|
-
spec:
|
31
|
-
definition:
|
32
|
-
title: "PostgreSQL Source"
|
33
|
-
description: |-
|
34
|
-
Query data from a PostgreSQL Database.
|
35
|
-
required:
|
36
|
-
- serverName
|
37
|
-
- username
|
38
|
-
- password
|
39
|
-
- query
|
40
|
-
- databaseName
|
41
|
-
type: object
|
42
|
-
properties:
|
43
|
-
serverName:
|
44
|
-
title: Server Name
|
45
|
-
description: The server name for the data source.
|
46
|
-
type: string
|
47
|
-
example: localhost
|
48
|
-
serverPort:
|
49
|
-
title: Server Port
|
50
|
-
description: The server port for the data source.
|
51
|
-
type: string
|
52
|
-
default: 5432
|
53
|
-
username:
|
54
|
-
title: Username
|
55
|
-
description: The username to access a secured PostgreSQL Database.
|
56
|
-
type: string
|
57
|
-
x-descriptors:
|
58
|
-
- urn:camel:group:credentials
|
59
|
-
password:
|
60
|
-
title: Password
|
61
|
-
description: The password to access a secured PostgreSQL Database.
|
62
|
-
type: string
|
63
|
-
format: password
|
64
|
-
x-descriptors:
|
65
|
-
- urn:camel:group:credentials
|
66
|
-
query:
|
67
|
-
title: Query
|
68
|
-
description: The query to execute against the PostgreSQL Database.
|
69
|
-
type: string
|
70
|
-
example: 'INSERT INTO accounts (username,city) VALUES (:#username,:#city)'
|
71
|
-
databaseName:
|
72
|
-
title: Database Name
|
73
|
-
description: The name of the PostgreSQL Database.
|
74
|
-
type: string
|
75
|
-
consumedQuery:
|
76
|
-
title: Consumed Query
|
77
|
-
description: A query to run on a tuple consumed.
|
78
|
-
type: string
|
79
|
-
example: 'DELETE FROM accounts where user_id = :#user_id'
|
80
|
-
delay:
|
81
|
-
title: Delay
|
82
|
-
description: The number of milliseconds before the next poll
|
83
|
-
type: integer
|
84
|
-
default: 500
|
85
|
-
types:
|
86
|
-
out:
|
87
|
-
mediaType: application/json
|
88
|
-
dependencies:
|
89
|
-
- "camel:jackson"
|
90
|
-
- "camel:kamelet"
|
91
|
-
- "camel:sql"
|
92
|
-
- "mvn:org.postgresql:postgresql:42.7.3"
|
93
|
-
- "mvn:org.apache.commons:commons-dbcp2:2.12.0"
|
94
|
-
template:
|
95
|
-
beans:
|
96
|
-
- name: dsBean
|
97
|
-
type: "#class:org.apache.commons.dbcp2.BasicDataSource"
|
98
|
-
properties:
|
99
|
-
username: '{{username}}'
|
100
|
-
password: '{{password}}'
|
101
|
-
url: 'jdbc:postgresql://{{serverName}}:{{serverPort}}/{{databaseName}}'
|
102
|
-
driverClassName: 'org.postgresql.Driver'
|
103
|
-
from:
|
104
|
-
uri: "sql:{{query}}"
|
105
|
-
parameters:
|
106
|
-
dataSource: "#bean:{{dsBean}}"
|
107
|
-
onConsume: "{{?consumedQuery}}"
|
108
|
-
delay: "{{delay}}"
|
109
|
-
steps:
|
110
|
-
- marshal:
|
111
|
-
json:
|
112
|
-
library: Jackson
|
113
|
-
- to: "kamelet:sink"
|
package/test/restConfigDsl.yaml
DELETED