Skip to content

Commit eb04807

Browse files
committed
feat(camel): upgrade Camel models to 4.0.4 and 4.4.0
Drop support for Camel model 3.x as the 3.x versions are EOL'ed upstream. Fix #800
1 parent b132958 commit eb04807

4 files changed

Lines changed: 59 additions & 27 deletions

File tree

packages/hawtio/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
"prepack": "yarn build && yarn replace-version"
3434
},
3535
"dependencies": {
36-
"@hawtio/camel-model-v3": "npm:@hawtio/camel-model@^3.21.2",
37-
"@hawtio/camel-model-v4": "npm:@hawtio/camel-model@~4.0.3",
36+
"@hawtio/camel-model-v4_0": "npm:@hawtio/camel-model@~4.0.4",
37+
"@hawtio/camel-model-v4_4": "npm:@hawtio/camel-model@~4.4.0",
3838
"@module-federation/utilities": "^3.0.5",
3939
"@patternfly/react-charts": "~6.94.21",
4040
"@patternfly/react-code-editor": "~4.82.122",

packages/hawtio/src/plugins/camel/camel-service.test.ts

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import * as camel3 from '@hawtio/camel-model-v3'
2-
import * as camel4 from '@hawtio/camel-model-v4'
1+
import * as camel4_0 from '@hawtio/camel-model-v4_0'
2+
import * as camel4_4 from '@hawtio/camel-model-v4_4'
33
import { MBeanNode } from '@hawtiosrc/plugins/shared/tree'
44
import * as camelService from './camel-service'
55
import { contextNodeType, endpointNodeType, endpointsType, jmxDomain } from './globals'
@@ -44,25 +44,51 @@ describe('camel-service', () => {
4444
camel3Node.addMetadata('version', '3.21.0')
4545
const camel3Model = camelService.getCamelModel(camel3Node)
4646
expect(camel3Model).toBeDefined()
47-
expect(camel3Model.apacheCamelModelVersion).toBe(camel3.apacheCamelModelVersion)
47+
expect(camel3Model.apacheCamelModelVersion).toBe(camel4_0.apacheCamelModelVersion)
4848
expect(camel3Model.components).not.toBeUndefined()
4949
expect(camel3Model.dataformats).not.toBeUndefined()
5050
expect(camel3Model.definitions).not.toBeUndefined()
5151
expect(camel3Model.languages).not.toBeUndefined()
5252
expect(camel3Model.rests).not.toBeUndefined()
5353

54-
const camel4Node = new MBeanNode(null, 'test-context-camel4', true)
55-
camel4Node.addMetadata('domain', jmxDomain)
56-
camel4Node.setType(contextNodeType)
57-
camel4Node.addMetadata('version', '4.0.0')
58-
const camel4Model = camelService.getCamelModel(camel4Node)
54+
const camel40Node = new MBeanNode(null, 'test-context-camel4_0', true)
55+
camel40Node.addMetadata('domain', jmxDomain)
56+
camel40Node.setType(contextNodeType)
57+
camel40Node.addMetadata('version', '4.0.4')
58+
const camel4Model = camelService.getCamelModel(camel40Node)
5959
expect(camel4Model).toBeDefined()
60-
expect(camel4Model.apacheCamelModelVersion).toBe(camel4.apacheCamelModelVersion)
60+
expect(camel4Model.apacheCamelModelVersion).toBe(camel4_0.apacheCamelModelVersion)
6161
expect(camel4Model.components).not.toBeUndefined()
6262
expect(camel4Model.dataformats).not.toBeUndefined()
6363
expect(camel4Model.definitions).not.toBeUndefined()
6464
expect(camel4Model.languages).not.toBeUndefined()
6565
expect(camel4Model.rests).not.toBeUndefined()
66+
67+
const camel41Node = new MBeanNode(null, 'test-context-camel4_1', true)
68+
camel41Node.addMetadata('domain', jmxDomain)
69+
camel41Node.setType(contextNodeType)
70+
camel41Node.addMetadata('version', '4.1.0')
71+
const camel41Model = camelService.getCamelModel(camel41Node)
72+
expect(camel41Model).toBeDefined()
73+
expect(camel41Model.apacheCamelModelVersion).toBe(camel4_0.apacheCamelModelVersion)
74+
expect(camel41Model.components).not.toBeUndefined()
75+
expect(camel41Model.dataformats).not.toBeUndefined()
76+
expect(camel41Model.definitions).not.toBeUndefined()
77+
expect(camel41Model.languages).not.toBeUndefined()
78+
expect(camel41Model.rests).not.toBeUndefined()
79+
80+
const camel44Node = new MBeanNode(null, 'test-context-camel4_4', true)
81+
camel44Node.addMetadata('domain', jmxDomain)
82+
camel44Node.setType(contextNodeType)
83+
camel44Node.addMetadata('version', '4.4.0')
84+
const camel44Model = camelService.getCamelModel(camel44Node)
85+
expect(camel44Model).toBeDefined()
86+
expect(camel44Model.apacheCamelModelVersion).toBe(camel4_4.apacheCamelModelVersion)
87+
expect(camel44Model.components).not.toBeUndefined()
88+
expect(camel44Model.dataformats).not.toBeUndefined()
89+
expect(camel44Model.definitions).not.toBeUndefined()
90+
expect(camel44Model.languages).not.toBeUndefined()
91+
expect(camel44Model.rests).not.toBeUndefined()
6692
})
6793

6894
test('compareVersions', () => {

packages/hawtio/src/plugins/camel/camel-service.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import * as camel3 from '@hawtio/camel-model-v3'
2-
import * as camel4 from '@hawtio/camel-model-v4'
1+
import * as camel4_0 from '@hawtio/camel-model-v4_0'
2+
import * as camel4_4 from '@hawtio/camel-model-v4_4'
33
import { eventService } from '@hawtiosrc/core'
44
import { MBeanNode } from '@hawtiosrc/plugins/shared'
55
import { jolokiaService } from '@hawtiosrc/plugins/shared/jolokia-service'
@@ -325,18 +325,24 @@ export function hasProperties(node: MBeanNode): boolean {
325325
}
326326

327327
export function getCamelVersions(): string[] {
328-
return [camel3.apacheCamelModelVersion, camel4.apacheCamelModelVersion]
328+
return [camel4_0.apacheCamelModelVersion, camel4_4.apacheCamelModelVersion]
329329
}
330330

331331
/**
332332
* Returns the corresponding version of Camel model based on the Camel version of
333-
* the given node. Currently, it supports Camel v3 and v4.
333+
* the given node.
334334
*/
335335
export function getCamelModel(node: MBeanNode): CamelModel {
336+
// 4.4 ~ => 4.4.x
337+
// 4.0 ~ 4.3 => 4.0.x
338+
if (isCamelVersionEQGT(node, 4, 4)) {
339+
return camel4_4 as unknown as CamelModel
340+
}
336341
if (isCamelVersionEQGT(node, 4, 0)) {
337-
return camel4 as unknown as CamelModel
342+
return camel4_0 as unknown as CamelModel
338343
}
339-
return camel3 as unknown as CamelModel
344+
// Fallback to 4.0.x model
345+
return camel4_0 as unknown as CamelModel
340346
}
341347

342348
/**

yarn.lock

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2177,17 +2177,17 @@ __metadata:
21772177
languageName: node
21782178
linkType: hard
21792179

2180-
"@hawtio/camel-model-v3@npm:@hawtio/camel-model@^3.21.2":
2181-
version: 3.21.2
2182-
resolution: "@hawtio/camel-model@npm:3.21.2"
2183-
checksum: 10/feebd08f32479336191e5df8e859d1dcfc32c0d05b307a5d05ce7a2a2730b9de110951fc6787664c43a2ddb1146bcbe2bfa441a467320f2d2c492d1335c840cc
2180+
"@hawtio/camel-model-v4_0@npm:@hawtio/camel-model@~4.0.4":
2181+
version: 4.0.4
2182+
resolution: "@hawtio/camel-model@npm:4.0.4"
2183+
checksum: 10/c4c92f7dc07216205adb84e544b52d0d1c7d7271cc42925ac9dc290cf3abd74cce4fc7910f8a65d409a4e7df53d5f9db84e5223ffb3d0ee5bbd9e0a81679ddb4
21842184
languageName: node
21852185
linkType: hard
21862186

2187-
"@hawtio/camel-model-v4@npm:@hawtio/camel-model@~4.0.3":
2188-
version: 4.0.3
2189-
resolution: "@hawtio/camel-model@npm:4.0.3"
2190-
checksum: 10/0270c632bdeea39fdc1febd0380d862eeb1059cbd9c6627a41fa02fdba175a6d67a089cbf953db32a62f402de546b5a212e3d0745bcbc9a4518002cb928dae1c
2187+
"@hawtio/camel-model-v4_4@npm:@hawtio/camel-model@~4.4.0":
2188+
version: 4.4.0
2189+
resolution: "@hawtio/camel-model@npm:4.4.0"
2190+
checksum: 10/895dbe3988e552842ab6443574631b185145fe6c97123cc24d43eef074815bdac5bd0c06a648e795dd366d12fafb280a30fe76f81a7f79e32884c01a49af3fa2
21912191
languageName: node
21922192
linkType: hard
21932193

@@ -2213,8 +2213,8 @@ __metadata:
22132213
version: 0.0.0-use.local
22142214
resolution: "@hawtio/react@workspace:packages/hawtio"
22152215
dependencies:
2216-
"@hawtio/camel-model-v3": "npm:@hawtio/camel-model@^3.21.2"
2217-
"@hawtio/camel-model-v4": "npm:@hawtio/camel-model@~4.0.3"
2216+
"@hawtio/camel-model-v4_0": "npm:@hawtio/camel-model@~4.0.4"
2217+
"@hawtio/camel-model-v4_4": "npm:@hawtio/camel-model@~4.4.0"
22182218
"@module-federation/utilities": "npm:^3.0.5"
22192219
"@patternfly/react-charts": "npm:~6.94.21"
22202220
"@patternfly/react-code-editor": "npm:~4.82.122"

0 commit comments

Comments
 (0)