karavan-core 4.8.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.bebelrc +3 -0
- package/.mocharc.json +11 -0
- package/.prettierignore +9 -0
- package/.prettierrc +14 -0
- package/package.json +62 -0
- package/src/core/api/CamelDefinitionApi.ts +3271 -0
- package/src/core/api/CamelDefinitionApiExt.ts +757 -0
- package/src/core/api/CamelDefinitionYaml.ts +412 -0
- package/src/core/api/CamelDefinitionYamlStep.ts +4733 -0
- package/src/core/api/CamelDisplayUtil.ts +143 -0
- package/src/core/api/CamelUtil.ts +360 -0
- package/src/core/api/ComponentApi.ts +368 -0
- package/src/core/api/KameletApi.ts +147 -0
- package/src/core/api/MainConfigurationApi.ts +47 -0
- package/src/core/api/ProjectModelApi.ts +75 -0
- package/src/core/api/SpiBeanApi.ts +104 -0
- package/src/core/api/TemplateApi.ts +58 -0
- package/src/core/api/TopologyUtils.ts +392 -0
- package/src/core/api/VariableUtil.ts +104 -0
- package/src/core/model/CamelDefinition.ts +3783 -0
- package/src/core/model/CamelMetadata.ts +2714 -0
- package/src/core/model/ComponentModels.ts +106 -0
- package/src/core/model/IntegrationDefinition.ts +188 -0
- package/src/core/model/KameletModels.ts +223 -0
- package/src/core/model/MainConfigurationModel.ts +37 -0
- package/src/core/model/ProjectModel.ts +43 -0
- package/src/core/model/SpiBeanModels.ts +53 -0
- package/src/core/model/TopologyDefinition.ts +117 -0
- package/test/addStep.spec.ts +124 -0
- package/test/addStep1.yaml +27 -0
- package/test/allowableValues.camel.yaml +19 -0
- package/test/allowableValues.spec.ts +30 -0
- package/test/avro-serialize-action.kamelet.yaml +70 -0
- package/test/beans.spec.ts +92 -0
- package/test/beans1.yaml +36 -0
- package/test/beans2.yaml +42 -0
- package/test/beans3.yaml +7 -0
- package/test/checkRequired.spec.ts +53 -0
- package/test/circuitBreaker.spec.ts +57 -0
- package/test/circuitBreaker.yaml +19 -0
- package/test/cloneDefinition.spec.ts +106 -0
- package/test/createKamelet.spec.ts +38 -0
- package/test/cxf.json +615 -0
- package/test/cxf.spec.ts +44 -0
- package/test/cxf.yaml +15 -0
- package/test/deleteStep.spec.ts +74 -0
- package/test/demo.spec.ts +49 -0
- package/test/demo.yaml +32 -0
- package/test/doCatchOnWhen.camel.yaml +20 -0
- package/test/doCatchOnWhen.spec.ts +36 -0
- package/test/errorHandler.spec.ts +38 -0
- package/test/errorHandler1.yaml +27 -0
- package/test/expression.spec.ts +55 -0
- package/test/findStep.spec.ts +112 -0
- package/test/findStep.yaml +65 -0
- package/test/getElementProperties.spec.ts +32 -0
- package/test/getElementPropertiesByName.spec.ts +31 -0
- package/test/getExpressionLanguage.spec.ts +40 -0
- package/test/hasElementWithId.camel.yaml +98 -0
- package/test/hasElementWithId.spec.ts +57 -0
- package/test/hasElementWithId1.camel.yaml +16 -0
- package/test/hasElementWithIdError.camel.yaml +98 -0
- package/test/integration.spec.ts +60 -0
- package/test/integration1.yaml +24 -0
- package/test/integration2.yaml +23 -0
- package/test/integrationToYaml.spec.ts +51 -0
- package/test/intercept.spec.ts +62 -0
- package/test/intercept.yaml +19 -0
- package/test/is-not-integration.yaml +5114 -0
- package/test/isIntegration.spec.ts +45 -0
- package/test/kamelet.spec.ts +61 -0
- package/test/metadata/components.json +697 -0
- package/test/metadata/kamelets.yaml +23414 -0
- package/test/metadata/spiBeans.json +3094 -0
- package/test/multiObjectProperties.spec.ts +46 -0
- package/test/multiObjectProperties1.yaml +19 -0
- package/test/multiple.spec.ts +38 -0
- package/test/multiple.yaml +29 -0
- package/test/openapi.spec.ts +48 -0
- package/test/openapi.yaml +7 -0
- package/test/placeholder.spec.ts +32 -0
- package/test/placeholder.yaml +133 -0
- package/test/plain-try-catch.yaml +31 -0
- package/test/plain.spec.ts +72 -0
- package/test/plain1.yaml +22 -0
- package/test/plain2.yaml +13 -0
- package/test/plain3.yaml +5 -0
- package/test/plain4.yaml +5 -0
- package/test/postgresql-source.kamelet.yaml +113 -0
- package/test/restConfigDsl.yaml +15 -0
- package/test/restDsl.spec.ts +83 -0
- package/test/restDsl.yaml +29 -0
- package/test/routes.spec.ts +37 -0
- package/test/routes1.yaml +31 -0
- package/test/supported-components.json +1221 -0
- package/test/supportedComponents.spec.ts +34 -0
- package/test/template1.AggregationStrategy.java +21 -0
- package/test/template1.Processor.java +13 -0
- package/test/template2.AggregationStrategy.java +21 -0
- package/test/template2.Processor.java +13 -0
- package/test/templateApi.spec.ts +45 -0
- package/test/timer-source.kamelet.yaml +75 -0
- package/test/tod.spec.ts +31 -0
- package/test/tod.yaml +9 -0
- package/test/topology.spec.ts +51 -0
- package/test/topology1.camel.yaml +56 -0
- package/test/topology2.camel.yaml +44 -0
- package/test/topology3.camel.yaml +27 -0
- package/test/tsconfig.testing.json +14 -0
- package/test/updateStep.spec.ts +72 -0
- package/test/variable1.camel.yaml +42 -0
- package/test/variable2.camel.yaml +42 -0
- package/test/variables.spec.ts +34 -0
- package/tsconfig.json +34 -0
@@ -0,0 +1,106 @@
|
|
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
|
+
export class ComponentTitle {
|
18
|
+
kind: string = '';
|
19
|
+
name: string = '';
|
20
|
+
title: string = '';
|
21
|
+
description: string = '';
|
22
|
+
deprecated: boolean = false;
|
23
|
+
firstVersion: string = '';
|
24
|
+
label: string = '';
|
25
|
+
javaType: string = '';
|
26
|
+
supportLevel: string = '';
|
27
|
+
supportType: string = '';
|
28
|
+
groupId: string = '';
|
29
|
+
artifactId: string = '';
|
30
|
+
version: string = '';
|
31
|
+
scheme: string = '';
|
32
|
+
extendsScheme: string = '';
|
33
|
+
syntax: string = '';
|
34
|
+
async: boolean = false;
|
35
|
+
api: boolean = false;
|
36
|
+
consumerOnly: boolean = false;
|
37
|
+
producerOnly: boolean = false;
|
38
|
+
lenientProperties: boolean = false;
|
39
|
+
componentProperties: any;
|
40
|
+
remote: boolean = false;
|
41
|
+
|
42
|
+
public constructor(init?: Partial<ComponentTitle>) {
|
43
|
+
Object.assign(this, init);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
export class ComponentHeader {
|
48
|
+
name: string = '';
|
49
|
+
index: number = 0;
|
50
|
+
kind: string = '';
|
51
|
+
displayName: string = '';
|
52
|
+
group: string = '';
|
53
|
+
label: boolean = false;
|
54
|
+
javaType: string = '';
|
55
|
+
deprecated: boolean = false;
|
56
|
+
deprecationNote: string = '';
|
57
|
+
defaultValue: string = '';
|
58
|
+
secret: boolean = false;
|
59
|
+
autowired: boolean = false;
|
60
|
+
description: string = '';
|
61
|
+
constantName: string = '';
|
62
|
+
|
63
|
+
public constructor(init?: Partial<ComponentHeader>) {
|
64
|
+
Object.assign(this, init);
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
export class Component {
|
69
|
+
component: ComponentTitle = new ComponentTitle();
|
70
|
+
properties: any;
|
71
|
+
headers: any;
|
72
|
+
|
73
|
+
public constructor(init?: Partial<Component>) {
|
74
|
+
Object.assign(this, init);
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
export class ComponentProperty {
|
79
|
+
name: string = '';
|
80
|
+
deprecated: boolean = false;
|
81
|
+
description: string = '';
|
82
|
+
displayName: string = '';
|
83
|
+
group: string = '';
|
84
|
+
kind: string = '';
|
85
|
+
label: string = '';
|
86
|
+
type: string = '';
|
87
|
+
secret: boolean = false;
|
88
|
+
enum: string[] = [];
|
89
|
+
required: boolean = false;
|
90
|
+
defaultValue: string | number | boolean | any;
|
91
|
+
value: string | any;
|
92
|
+
|
93
|
+
public constructor(init?: Partial<ComponentProperty>) {
|
94
|
+
Object.assign(this, init);
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
export class SupportedComponent {
|
99
|
+
name: string = '';
|
100
|
+
level: string = '';
|
101
|
+
native: boolean = false;
|
102
|
+
|
103
|
+
public constructor(init?: Partial<SupportedComponent>) {
|
104
|
+
Object.assign(this, init);
|
105
|
+
}
|
106
|
+
}
|
@@ -0,0 +1,188 @@
|
|
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 { v4 as uuidv4 } from 'uuid';
|
18
|
+
import { BeanFactoryDefinition } from './CamelDefinition';
|
19
|
+
|
20
|
+
export class IntegrationFile {
|
21
|
+
name: string = '';
|
22
|
+
code: string = '';
|
23
|
+
|
24
|
+
constructor(name: string, code: string) {
|
25
|
+
this.name = name;
|
26
|
+
this.code = code;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
export class DefinitionProperty {
|
31
|
+
title: string = '';
|
32
|
+
description: string = '';
|
33
|
+
type: 'string' | 'integer' | 'boolean' = 'string';
|
34
|
+
default?: any;
|
35
|
+
example?: any;
|
36
|
+
format?: string;
|
37
|
+
"x-descriptors"?: string[];
|
38
|
+
enum?: string[];
|
39
|
+
|
40
|
+
public constructor(init?: Partial<DefinitionProperty>) {
|
41
|
+
Object.assign(this, init);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
export class MediaType {
|
46
|
+
mediaType: string = '';
|
47
|
+
|
48
|
+
public constructor(init?: Partial<MediaType>) {
|
49
|
+
Object.assign(this, init);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
export class Types {
|
54
|
+
in?: MediaType = new MediaType();
|
55
|
+
out?: MediaType = new MediaType();
|
56
|
+
|
57
|
+
public constructor(init?: Partial<Types>) {
|
58
|
+
Object.assign(this, init);
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
export class Definition {
|
63
|
+
title: string = '';
|
64
|
+
description: string = '';
|
65
|
+
required: string[] = [];
|
66
|
+
type: string = 'object';
|
67
|
+
properties: any = {};
|
68
|
+
|
69
|
+
public constructor(init?: Partial<Definition>) {
|
70
|
+
Object.assign(this, init);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
export class Spec {
|
75
|
+
definition?: Definition;
|
76
|
+
types?: Types;
|
77
|
+
flows?: any[] = [];
|
78
|
+
template?: any;
|
79
|
+
dependencies?: string[];
|
80
|
+
|
81
|
+
public constructor(init?: Partial<Spec>) {
|
82
|
+
Object.assign(this, init);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
export type KameletTypes = "sink" | "source" | "action";
|
87
|
+
|
88
|
+
export class MetadataLabels {
|
89
|
+
"camel.apache.org/kamelet.type": KameletTypes = 'source'
|
90
|
+
|
91
|
+
public constructor(init?: Partial<MetadataLabels>) {
|
92
|
+
Object.assign(this, init);
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
export class MetadataAnnotations {
|
97
|
+
"camel.apache.org/kamelet.support.level": string = 'Preview';
|
98
|
+
"camel.apache.org/catalog.version": string = '';
|
99
|
+
"camel.apache.org/kamelet.icon": string = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000000' viewBox='0 0 32 32' id='icon'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:none;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3Eapplication%3C/title%3E%3Cpath d='M16,18H6a2,2,0,0,1-2-2V6A2,2,0,0,1,6,4H16a2,2,0,0,1,2,2V16A2,2,0,0,1,16,18ZM6,6V16H16V6Z' transform='translate(0 0)'/%3E%3Cpath d='M26,12v4H22V12h4m0-2H22a2,2,0,0,0-2,2v4a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V12a2,2,0,0,0-2-2Z' transform='translate(0 0)'/%3E%3Cpath d='M26,22v4H22V22h4m0-2H22a2,2,0,0,0-2,2v4a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V22a2,2,0,0,0-2-2Z' transform='translate(0 0)'/%3E%3Cpath d='M16,22v4H12V22h4m0-2H12a2,2,0,0,0-2,2v4a2,2,0,0,0,2,2h4a2,2,0,0,0,2-2V22a2,2,0,0,0-2-2Z' transform='translate(0 0)'/%3E%3Cg id='_Transparent_Rectangle_' data-name='<Transparent Rectangle>'%3E%3Crect class='cls-1' width='32' height='32'/%3E%3C/g%3E%3C/svg%3E";
|
100
|
+
"camel.apache.org/provider": string = 'Custom';
|
101
|
+
"camel.apache.org/kamelet.group": string = '';
|
102
|
+
"camel.apache.org/kamelet.namespace": string = '';
|
103
|
+
|
104
|
+
public constructor(init?: Partial<MetadataAnnotations>) {
|
105
|
+
Object.assign(this, init);
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
109
|
+
export class Metadata {
|
110
|
+
name: string = '';
|
111
|
+
annotations?: MetadataAnnotations;
|
112
|
+
labels?: MetadataLabels;
|
113
|
+
|
114
|
+
public constructor(init?: Partial<Metadata>) {
|
115
|
+
Object.assign(this, init);
|
116
|
+
}
|
117
|
+
}
|
118
|
+
|
119
|
+
export class Integration {
|
120
|
+
apiVersion: string = 'camel.apache.org/v1';
|
121
|
+
kind: string = 'Integration' || 'Kamelet';
|
122
|
+
metadata: Metadata = new Metadata();
|
123
|
+
spec: Spec = new Spec();
|
124
|
+
type: 'crd' | 'plain' | 'kamelet' = 'crd';
|
125
|
+
|
126
|
+
public constructor(init?: Partial<Integration>) {
|
127
|
+
Object.assign(this, init);
|
128
|
+
}
|
129
|
+
|
130
|
+
static createNew(name?: string, type: 'crd' | 'plain' | 'kamelet' = 'plain'): Integration {
|
131
|
+
const i = new Integration({ type: type,
|
132
|
+
metadata: new Metadata({ name: name }),
|
133
|
+
kind : type === 'kamelet' ? 'Kamelet' : 'Integration',
|
134
|
+
spec: new Spec({ flows: [] }) });
|
135
|
+
|
136
|
+
if (type === 'kamelet') {
|
137
|
+
i.metadata.annotations = new MetadataAnnotations({})
|
138
|
+
i.spec.definition = new Definition({})
|
139
|
+
i.spec.types = new Types();
|
140
|
+
}
|
141
|
+
|
142
|
+
return i;
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
export class CamelElement {
|
147
|
+
uuid: string = '';
|
148
|
+
dslName: string = '';
|
149
|
+
showChildren: boolean = true;
|
150
|
+
|
151
|
+
constructor(dslName: string) {
|
152
|
+
this.uuid = uuidv4();
|
153
|
+
this.dslName = dslName;
|
154
|
+
}
|
155
|
+
|
156
|
+
hasId(): boolean {
|
157
|
+
return this.hasOwnProperty('id');
|
158
|
+
}
|
159
|
+
|
160
|
+
hasSteps(): boolean {
|
161
|
+
return this.hasOwnProperty('steps');
|
162
|
+
}
|
163
|
+
|
164
|
+
hasStepName(): boolean {
|
165
|
+
return this.hasOwnProperty('stepName');
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
export class Beans extends CamelElement {
|
170
|
+
beans: BeanFactoryDefinition[] = [];
|
171
|
+
|
172
|
+
public constructor(init?: Partial<Beans>) {
|
173
|
+
super('Beans');
|
174
|
+
Object.assign(this, init);
|
175
|
+
}
|
176
|
+
}
|
177
|
+
|
178
|
+
export class CamelElementMeta {
|
179
|
+
step?: CamelElement;
|
180
|
+
parentUuid?: string;
|
181
|
+
position: number = 0;
|
182
|
+
|
183
|
+
constructor(step?: CamelElement, parentUuid?: string, position: number = 0) {
|
184
|
+
this.step = step;
|
185
|
+
this.parentUuid = parentUuid;
|
186
|
+
this.position = position;
|
187
|
+
}
|
188
|
+
}
|
@@ -0,0 +1,223 @@
|
|
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
|
+
export class Property {
|
18
|
+
id: string = '';
|
19
|
+
title: string = '';
|
20
|
+
description: string = '';
|
21
|
+
type: string = '';
|
22
|
+
default: string = '';
|
23
|
+
format: string = '';
|
24
|
+
example: string = '';
|
25
|
+
'x-descriptors': string = '';
|
26
|
+
value: string | number | boolean = '';
|
27
|
+
enum?: string[];
|
28
|
+
}
|
29
|
+
|
30
|
+
export class Definition {
|
31
|
+
title: string = '';
|
32
|
+
description: string = '';
|
33
|
+
required: string[] = [];
|
34
|
+
properties: any = {};
|
35
|
+
|
36
|
+
public constructor(init?: Partial<Definition>) {
|
37
|
+
Object.assign(this, init);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
export class KameletSpec {
|
42
|
+
definition: Definition = new Definition();
|
43
|
+
types: any = {};
|
44
|
+
flow: any = {};
|
45
|
+
|
46
|
+
public constructor(init?: Partial<KameletSpec>) {
|
47
|
+
Object.assign(this, init);
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
export class Labels {
|
52
|
+
'camel.apache.org/kamelet.type': "sink" | "source" | "action" = 'source';
|
53
|
+
|
54
|
+
public constructor(init?: Partial<Labels>) {
|
55
|
+
Object.assign(this, init);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
export class Annotations {
|
60
|
+
'camel.apache.org/kamelet.icon': string | any = '';
|
61
|
+
'camel.apache.org/catalog.version': string | any = '';
|
62
|
+
'camel.apache.org/kamelet.support.level': string | any = '';
|
63
|
+
|
64
|
+
public constructor(init?: Partial<Annotations>) {
|
65
|
+
Object.assign(this, init);
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
export class KameletMetadata {
|
70
|
+
name: string = '';
|
71
|
+
labels: Labels = new Labels();
|
72
|
+
annotations: Annotations = new Annotations();
|
73
|
+
|
74
|
+
public constructor(init?: Partial<KameletMetadata>) {
|
75
|
+
Object.assign(this, init);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
export class KameletModel {
|
80
|
+
apiVersion: string = 'camel.apache.org/v1alpha1';
|
81
|
+
kind: string = 'Kamelet';
|
82
|
+
metadata: KameletMetadata = new KameletMetadata();
|
83
|
+
spec: KameletSpec = new KameletSpec();
|
84
|
+
|
85
|
+
public constructor(init?: Partial<KameletModel>) {
|
86
|
+
Object.assign(this, init);
|
87
|
+
}
|
88
|
+
|
89
|
+
type(): string {
|
90
|
+
return this.metadata.labels['camel.apache.org/kamelet.type'] || '';
|
91
|
+
}
|
92
|
+
|
93
|
+
icon(): string {
|
94
|
+
return this.metadata.annotations['camel.apache.org/kamelet.icon'] || '';
|
95
|
+
}
|
96
|
+
|
97
|
+
version(): string {
|
98
|
+
return this.metadata.annotations['camel.apache.org/catalog.version'] || '';
|
99
|
+
}
|
100
|
+
|
101
|
+
title(): string {
|
102
|
+
return this.spec.definition.title;
|
103
|
+
}
|
104
|
+
|
105
|
+
description(): string {
|
106
|
+
return this.spec.definition.description;
|
107
|
+
}
|
108
|
+
|
109
|
+
properties(): any {
|
110
|
+
return this.spec.definition.properties;
|
111
|
+
}
|
112
|
+
|
113
|
+
static default = (): KameletModel[] => defaultKamelets;
|
114
|
+
}
|
115
|
+
|
116
|
+
const defaultKamelets: KameletModel[] = [
|
117
|
+
new KameletModel({
|
118
|
+
kind: 'uri',
|
119
|
+
apiVersion: '',
|
120
|
+
metadata: new KameletMetadata({
|
121
|
+
name: 'uri-source',
|
122
|
+
labels: new Labels({ 'camel.apache.org/kamelet.type': 'source' }),
|
123
|
+
annotations: new Annotations({
|
124
|
+
'camel.apache.org/kamelet.icon':
|
125
|
+
"data:image/svg+xml,%3Csvg viewBox='0 0 130.21 130.01' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='333.48' x2='477' y1='702.6' y2='563.73' gradientTransform='translate(94.038 276.06) scale(.99206)' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23F69923' offset='0'/%3E%3Cstop stop-color='%23F79A23' offset='.11'/%3E%3Cstop stop-color='%23E97826' offset='.945'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='333.48' x2='477' y1='702.6' y2='563.73' gradientTransform='translate(94.038 276.06) scale(.99206)' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23F69923' offset='0'/%3E%3Cstop stop-color='%23F79A23' offset='.08'/%3E%3Cstop stop-color='%23E97826' offset='.419'/%3E%3C/linearGradient%3E%3ClinearGradient id='c' x1='633.55' x2='566.47' y1='814.6' y2='909.12' gradientTransform='translate(-85.421 56.236)' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23f6e423' offset='0'/%3E%3Cstop stop-color='%23F79A23' offset='.412'/%3E%3Cstop stop-color='%23E97826' offset='.733'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform='translate(-437.89 -835.29)'%3E%3Ccircle cx='503.1' cy='900.29' r='62.52' fill='url(%23a)' stroke='url(%23b)' stroke-linejoin='round' stroke-width='4.96'/%3E%3Cpath d='M487.89 873.64a89.53 89.53 0 0 0-2.688.031c-1.043.031-2.445.362-4.062.906 27.309 20.737 37.127 58.146 20.25 90.656.573.015 1.142.063 1.719.063 30.844 0 56.62-21.493 63.28-50.312-19.572-22.943-46.117-41.294-78.5-41.344z' fill='url(%23c)' opacity='.75'/%3E%3Cpath d='M481.14 874.58c-9.068 3.052-26.368 13.802-43 28.156 1.263 34.195 28.961 61.607 63.25 62.5 16.877-32.51 7.06-69.919-20.25-90.656z' fill='%2328170b' opacity='.75'/%3E%3Cpath d='M504.889 862.546c-.472-.032-.932.028-1.375.25-5.6 2.801 0 14 0 14-16.807 14.009-13.236 37.938-32.844 37.938-10.689 0-21.322-12.293-32.531-19.812-.144 1.773-.25 3.564-.25 5.375 0 24.515 13.51 45.863 33.469 57.063 5.583-.703 11.158-2.114 15.344-4.906 21.992-14.662 27.452-42.557 36.438-56.031 5.596-8.407 31.824-7.677 33.594-11.22 2.804-5.601-5.602-14-8.406-14h-22.406c-1.566 0-4.025-2.78-5.594-2.78h-8.406s-3.725-5.65-7.031-5.875z' fill='%23fff'/%3E%3C/g%3E%3C/svg%3E",
|
126
|
+
}),
|
127
|
+
}),
|
128
|
+
spec: new KameletSpec({ definition: new Definition({ title: 'URI source' }) }),
|
129
|
+
}),
|
130
|
+
new KameletModel({
|
131
|
+
kind: 'uri',
|
132
|
+
apiVersion: '',
|
133
|
+
metadata: new KameletMetadata({
|
134
|
+
name: 'uri-sink',
|
135
|
+
labels: new Labels({ 'camel.apache.org/kamelet.type': 'sink' }),
|
136
|
+
annotations: new Annotations({
|
137
|
+
'camel.apache.org/kamelet.icon':
|
138
|
+
"data:image/svg+xml,%3Csvg viewBox='0 0 130.21 130.01' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='333.48' x2='477' y1='702.6' y2='563.73' gradientTransform='translate(94.038 276.06) scale(.99206)' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23F69923' offset='0'/%3E%3Cstop stop-color='%23F79A23' offset='.11'/%3E%3Cstop stop-color='%23E97826' offset='.945'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='333.48' x2='477' y1='702.6' y2='563.73' gradientTransform='translate(94.038 276.06) scale(.99206)' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23F69923' offset='0'/%3E%3Cstop stop-color='%23F79A23' offset='.08'/%3E%3Cstop stop-color='%23E97826' offset='.419'/%3E%3C/linearGradient%3E%3ClinearGradient id='c' x1='633.55' x2='566.47' y1='814.6' y2='909.12' gradientTransform='translate(-85.421 56.236)' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23f6e423' offset='0'/%3E%3Cstop stop-color='%23F79A23' offset='.412'/%3E%3Cstop stop-color='%23E97826' offset='.733'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform='translate(-437.89 -835.29)'%3E%3Ccircle cx='503.1' cy='900.29' r='62.52' fill='url(%23a)' stroke='url(%23b)' stroke-linejoin='round' stroke-width='4.96'/%3E%3Cpath d='M487.89 873.64a89.53 89.53 0 0 0-2.688.031c-1.043.031-2.445.362-4.062.906 27.309 20.737 37.127 58.146 20.25 90.656.573.015 1.142.063 1.719.063 30.844 0 56.62-21.493 63.28-50.312-19.572-22.943-46.117-41.294-78.5-41.344z' fill='url(%23c)' opacity='.75'/%3E%3Cpath d='M481.14 874.58c-9.068 3.052-26.368 13.802-43 28.156 1.263 34.195 28.961 61.607 63.25 62.5 16.877-32.51 7.06-69.919-20.25-90.656z' fill='%2328170b' opacity='.75'/%3E%3Cpath d='M504.889 862.546c-.472-.032-.932.028-1.375.25-5.6 2.801 0 14 0 14-16.807 14.009-13.236 37.938-32.844 37.938-10.689 0-21.322-12.293-32.531-19.812-.144 1.773-.25 3.564-.25 5.375 0 24.515 13.51 45.863 33.469 57.063 5.583-.703 11.158-2.114 15.344-4.906 21.992-14.662 27.452-42.557 36.438-56.031 5.596-8.407 31.824-7.677 33.594-11.22 2.804-5.601-5.602-14-8.406-14h-22.406c-1.566 0-4.025-2.78-5.594-2.78h-8.406s-3.725-5.65-7.031-5.875z' fill='%23fff'/%3E%3C/g%3E%3C/svg%3E",
|
139
|
+
}),
|
140
|
+
}),
|
141
|
+
spec: new KameletSpec({ definition: new Definition({ title: 'URI sink' }) }),
|
142
|
+
}),
|
143
|
+
];
|
144
|
+
|
145
|
+
// KameletBinding data model
|
146
|
+
export class Ref {
|
147
|
+
apiVersion: string = 'camel.apache.org/v1alpha1';
|
148
|
+
kind: string = 'Kamelet';
|
149
|
+
name: string = '';
|
150
|
+
}
|
151
|
+
|
152
|
+
export class Source {
|
153
|
+
uri: string | any;
|
154
|
+
ref: Ref | any = new Ref();
|
155
|
+
properties: [] | any;
|
156
|
+
|
157
|
+
static createUri(uri: string) {
|
158
|
+
const source: Source = new Source();
|
159
|
+
source.uri = uri;
|
160
|
+
delete source.ref;
|
161
|
+
delete source.properties;
|
162
|
+
return source;
|
163
|
+
}
|
164
|
+
|
165
|
+
static createRef(refName: string) {
|
166
|
+
const source: Source = new Source();
|
167
|
+
source.ref.name = refName;
|
168
|
+
delete source.uri;
|
169
|
+
return source;
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
export class Sink {
|
174
|
+
uri: string | any;
|
175
|
+
ref: Ref | any = new Ref();
|
176
|
+
properties: [] | any;
|
177
|
+
|
178
|
+
static createUri(uri: string) {
|
179
|
+
const source: Sink = new Sink();
|
180
|
+
source.uri = uri;
|
181
|
+
delete source.ref;
|
182
|
+
delete source.properties;
|
183
|
+
return source;
|
184
|
+
}
|
185
|
+
|
186
|
+
static createRef(refName: string) {
|
187
|
+
const source: Sink = new Sink();
|
188
|
+
source.ref.name = refName;
|
189
|
+
delete source.uri;
|
190
|
+
return source;
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
194
|
+
export class Step {
|
195
|
+
ref: Ref = new Ref();
|
196
|
+
properties: any;
|
197
|
+
}
|
198
|
+
|
199
|
+
export class KameletBindingSpec {
|
200
|
+
source: Source = new Source();
|
201
|
+
steps: Step[] | any = [];
|
202
|
+
sink: Sink = new Sink();
|
203
|
+
}
|
204
|
+
|
205
|
+
export class KameletBindingAnnotations {
|
206
|
+
'camel.apache.org/karavan.title': string = '';
|
207
|
+
}
|
208
|
+
|
209
|
+
export class KameletBindingMetadata {
|
210
|
+
name: string = '';
|
211
|
+
annotations: KameletBindingAnnotations | any = new KameletBindingAnnotations();
|
212
|
+
}
|
213
|
+
|
214
|
+
export class KameletBinding {
|
215
|
+
apiVersion: string = 'camel.apache.org/v1alpha1';
|
216
|
+
kind: string = 'KameletBinding';
|
217
|
+
metadata: KameletBindingMetadata = new KameletBindingMetadata();
|
218
|
+
spec: KameletBindingSpec = new KameletBindingSpec();
|
219
|
+
|
220
|
+
public constructor(init?: Partial<KameletBinding>) {
|
221
|
+
Object.assign(this, init);
|
222
|
+
}
|
223
|
+
}
|
@@ -0,0 +1,37 @@
|
|
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
|
+
|
18
|
+
export class ApplicationProperty {
|
19
|
+
name: string = '';
|
20
|
+
value?: string;
|
21
|
+
defaultValue?: string;
|
22
|
+
description?: string;
|
23
|
+
type?: string;
|
24
|
+
|
25
|
+
public constructor(init?: Partial<ApplicationProperty>) {
|
26
|
+
Object.assign(this, init);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
export class ApplicationPropertyGroup {
|
31
|
+
name: string = '';
|
32
|
+
description?: string;
|
33
|
+
|
34
|
+
public constructor(init?: Partial<ApplicationPropertyGroup>) {
|
35
|
+
Object.assign(this, init);
|
36
|
+
}
|
37
|
+
}
|
@@ -0,0 +1,43 @@
|
|
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 { v4 as uuidv4 } from 'uuid';
|
18
|
+
|
19
|
+
export class ProjectProperty {
|
20
|
+
id: string = '';
|
21
|
+
key: string = '';
|
22
|
+
value: any;
|
23
|
+
|
24
|
+
public constructor(init?: Partial<ProjectProperty>) {
|
25
|
+
Object.assign(this, init);
|
26
|
+
}
|
27
|
+
|
28
|
+
static createNew(key: string, value: any): ProjectProperty {
|
29
|
+
return new ProjectProperty({ id: uuidv4(), key: key, value: value });
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
export class ProjectModel {
|
34
|
+
properties: ProjectProperty[] = [];
|
35
|
+
|
36
|
+
public constructor(init?: Partial<ProjectModel>) {
|
37
|
+
Object.assign(this, init);
|
38
|
+
}
|
39
|
+
|
40
|
+
static createNew(init?: Partial<ProjectModel>): ProjectModel {
|
41
|
+
return new ProjectModel(init ? init : {});
|
42
|
+
}
|
43
|
+
}
|
@@ -0,0 +1,53 @@
|
|
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
|
+
|
18
|
+
export class SpiBeanProperty {
|
19
|
+
name?: string;
|
20
|
+
index: number = 0;
|
21
|
+
kind?: string;
|
22
|
+
displayName?: string;
|
23
|
+
required: boolean = false;
|
24
|
+
type?: string;
|
25
|
+
javaType?: string;
|
26
|
+
deprecated: boolean = false;
|
27
|
+
autowired: boolean = false;
|
28
|
+
secret: boolean = false;
|
29
|
+
defaultValue?: string;
|
30
|
+
description?: string;
|
31
|
+
|
32
|
+
public constructor(init?: Partial<SpiBeanProperty>) {
|
33
|
+
Object.assign(this, init);
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
export class SpiBean {
|
38
|
+
kind?: string;
|
39
|
+
name?: string;
|
40
|
+
javaType?: string;
|
41
|
+
interfaceType?: string;
|
42
|
+
title?: string;
|
43
|
+
description?: string;
|
44
|
+
deprecated?: string;
|
45
|
+
groupId?: string;
|
46
|
+
artifactId?: string;
|
47
|
+
version?: string;
|
48
|
+
properties: any;
|
49
|
+
|
50
|
+
public constructor(init?: Partial<SpiBean>) {
|
51
|
+
Object.assign(this, init);
|
52
|
+
}
|
53
|
+
}
|