diff options
21 files changed, 430 insertions, 757 deletions
diff --git a/src/main/paisa-nonslim/README.txt b/src/main/paisa-nonslim/README.txt index deb2909..a25ad9e 100644 --- a/src/main/paisa-nonslim/README.txt +++ b/src/main/paisa-nonslim/README.txt @@ -53,7 +53,6 @@ TODO awaiting builds again with (hopefully fixed jssc.so): ## Measurements - && `# Eddie` \ && while true; do ssh donner -oRemoteCommand='true \ && while true; do true \ && printf '\''%%s %%s %%s\n'\'' \ @@ -70,16 +69,18 @@ Boot ab KassenTaster, login mit RFID, vorgeschlagene Fahrt anmelden, warten. 2024-07-31 (1140-1150): Erster legacy boot versuch. Abbruch, weil port falsch. 2024-07-31 (1152-1200): Legacy begin. Ca 77sec bis ssh ok. Abbruch, weil cntnr re-create. 2024-07-31 (1329-): Legacy begin. - -2024-08-02 (1331-): Legacy begin. +2024-08-09 (1320-): Vorbereiten -> Failed, weil ständig reboot. +2024-08-09 (1450-): PowBox Stecker raus, nochmal neu versuchen. +2024-08-09 (-1700): ALLE LÄUFE bis 1700 FALSCHE VERSION! +2024-08-09 (1700-): NOCHMAL! When+0200;version;LoginScreen[sec];FahrtGewaehlt[sec]; 2024-08-02T13:31;legacy;190;208; 2024-08-02T13:40;legacy;180;208; 2024-08-02T13:47;legacy;175;198; 2024-08-02T14:03;legacy;172;196; -2024-08-02T14:26;legacy;___;208; -2024-08-02T14:43;noslim;210;;Ca, dann Kartenleser NICHT bereit +2024-08-09T__:__;noslim;___;___; +2024-08-09T__:__;noslim;___;___; diff --git a/src/main/paisa-nonslim/foo.js b/src/main/paisa-nonslim/foo.js index 21dcf99..740bd36 100644 --- a/src/main/paisa-nonslim/foo.js +++ b/src/main/paisa-nonslim/foo.js @@ -30,7 +30,7 @@ Related: +" Update local repos from remote.\n" +" \n" +" --reset-platform\n" - +" Reset worktree to develop.\n" + +" Reset worktree to base commit.\n" +" \n" +" --patch-platform\n" +" Remove slim packaging from patform and set snapshot version.\n" @@ -42,7 +42,7 @@ Related: +" Same idea as '--push-services' but for platform.\n" +" \n" +" --reset-services\n" - +" Reset worktree to develop.\n" + +" Reset worktree to base commit.\n" +" \n" +" --patch-services\n" +" Disable slim packaging in Jenkinsfile and use platform snapshot in\n" @@ -770,19 +770,27 @@ Related: function checkoutUpstreamDevelop( app, thingyName, onDone){ var iRemoteName = 0; + var iBranchName = 0; checkout(); function checkout(){ var remoteName = app.remoteNamesToTry[iRemoteName]; - if( remoteName === undefined ){ onDone(Error("No more remote names for "+ thingyName)); return; } - log.write("[DEBUG] git checkout "+ thingyName +" "+ remoteName +"/develop\n"); + var branchName = app.j21BranchesToTry[iBranchName++]; + if( branchName === undefined ){ + iBranchName = 0; + iRemoteName += 1; + checkout(); + return; + } + if( remoteName === undefined ){ onDone(Error("No more remotes/branches for "+ thingyName)); return; } + log.write("[DEBUG] git checkout "+ thingyName +" "+ remoteName +"/"+ branchName +"\n"); var child = child_process.spawn( - "git", ["checkout", remoteName+"/develop"], + "git", ["checkout", remoteName+"/"+ branchName], { cwd: workdirOfSync(app, thingyName), }); child.on("error", console.error.bind(console)); child.stderr.on("data", function( buf ){ log.write(buf); }); child.on("close", function( code, signal ){ - if( !"TODO_GlACAIQoAgDMTwIAIh8CAOJvAgALLgIA" ){ - checkout(); /* try next remote name */ + if( code === 1 && signal === null ){ + checkout(); /* try next remote/branch name */ }else if( code !== 0 || signal !== null ){ onDone(Error("code "+ code +", signal "+ signal)); }else{ @@ -876,7 +884,7 @@ Related: if( ex ) throw ex; if( !isClean ){ log.write("[WARN ] Skip platform patch: Worktree not clean\n"); endFn(); return; } - getDropSlimArtifactsTagInPlatformPatch(app, onPatchBufReady); + getPatch(app, "platform", onPatchBufReady); }); function onPatchBufReady( ex, patch ){ if( ex ) throw ex; @@ -952,12 +960,13 @@ Related: function resetPlatform( app, onDone ){ - resetHardToDevelop(app, "platform", onDone); + resetHardToFirstAvailBranch(app, "platform", onDone); } - function resetHardToDevelop( app, thingyName, onDone ){ + function resetHardToFirstAvailBranch( app, thingyName, onDone ){ var iRemoteName = 0; + var iBranchName = 0; if( typeof onDone !== "function" ) throw Error("onDone"); detach(); function detach(){ @@ -977,11 +986,18 @@ Related: }); } function tryResetHard(){ - var remoteName = app.remoteNamesToTry[iRemoteName++]; - if( remoteName === undefined ){ onDone(Error("no usable remote found")); return; } - log.write("[DEBUG] "+ thingyName +"$ git reset --hard "+ remoteName +"/develop\n"); + var remoteName = app.remoteNamesToTry[iRemoteName]; + var branchName = app.j21BranchesToTry[iBranchName++]; + if( branchName === undefined ){ + iRemoteName += 1; + iBranchName = 0; + tryResetHard(); + return; + } + if( remoteName === undefined ){ onDone(Error("no usable remote/branch found")); return; } + log.write("[DEBUG] "+ thingyName +"$ git reset --hard "+ remoteName +"/"+ branchName +"\n"); var child = child_process.spawn( - "git", ["reset", "--hard", remoteName +"/develop"], + "git", ["reset", "--hard", remoteName +"/"+ branchName], { cwd:workdirOfSync(app, thingyName) } ); child.on("error", console.error.bind(console)); @@ -1060,6 +1076,11 @@ Related: } + function resetHardByThingyName( app, thingyName, onDone ){ + resetHardToFirstAvailBranch(app, thingyName, onDone); + } + + function run( app ){ var actions = [ fetchListOfServices ]; if( app.isFetch ){ actions.push(fetchRemoteChanges); } @@ -1068,7 +1089,7 @@ Related: forEachInArrayDo(app, app.services, checkoutUpstreamDevelop, onDone); }); actions.push(function( app, onDone ){ - forEachInArrayDo(app, app.services, resetHardToDevelop, onDone); + forEachInArrayDo(app, app.services, resetHardByThingyName, onDone); }); } if( app.isResetPlatform ){ actions.push(resetPlatform); } @@ -1121,6 +1142,8 @@ Related: isPrintIsaVersion: false, isPrintBaselineVersion: false, remoteNamesToTry: ["origin"], + j21BranchesToTry: ["SDCISA-15636-Migrate-to-Java-21", "java-21", + "SDCISA-13957-platform-Java-21", "SDCISA-13957-Java-21-update-spring"], workdir: "C:/work/tmp/SlimPkg-Repos", maxParallel: 1, numRunningTasks: 0, diff --git a/src/main/paisa-nonslim/patches/babelfish.patch b/src/main/paisa-nonslim/patches/babelfish.patch index 9df330d..9c28b13 100644 --- a/src/main/paisa-nonslim/patches/babelfish.patch +++ b/src/main/paisa-nonslim/patches/babelfish.patch @@ -1,16 +1,20 @@ + WARN: Now based on "SDCISA-15636-Migrate-to-Java-21" branch. ---- a/Jenkinsfile -+++ b/Jenkinsfile -@@ -9,7 +9,7 @@ serviceBuildPipeline([ - jslPipeline - .checkout() - .setBranchVersion() -- .buildMaven([slim: true, spotless: true]) -+ .buildMaven([spotless: true]) - .finalizeAndUpdateVersion() - .saveArtifacts() - .executeSonar() +--- a/pom.xml ++++ b/pom.xml +@@ -85,6 +85,11 @@ + <artifactId>jbbp</artifactId> + <version>${jbbp.version}</version> + </dependency> ++ <dependency> ++ <groupId>org.eclipse.jetty.ee10</groupId> ++ <artifactId>jetty-ee10-webapp</artifactId> ++ <version>12.0.12</version><!-- TODO move version to properties --> ++ </dependency> + </dependencies> + </dependencyManagement> + --- a/babelfish-web/pom.xml diff --git a/src/main/paisa-nonslim/patches/barman.patch b/src/main/paisa-nonslim/patches/barman.patch new file mode 100644 index 0000000..f93ef4d --- /dev/null +++ b/src/main/paisa-nonslim/patches/barman.patch @@ -0,0 +1,41 @@ + + +--- a/Jenkinsfile ++++ a/Jenkinsfile +@@ -13,7 +13,7 @@ + jslPipeline + .checkout() + .setBranchVersion() +- .buildMaven() ++ .buildMaven() + .runKarma() + .withInstances([ + instances: [ +@@ -20,7 +20,7 @@ + testInstance: [ + services: [ + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], ++ platform: [version: '${j21.platform.version}'], + storage: [version: '00.24.00.00'], + barman: [version: '%currentBranch%'] + ] + + +--- a/pom.xml ++++ b/pom.xml +@@ -86,6 +86,11 @@ + <artifactId>linti</artifactId> + <version>${linti.version}</version> + </dependency> ++ <dependency> ++ <groupId>org.glassfish</groupId> ++ <artifactId>jakarta.el</artifactId> ++ <version>4.0.2</version> <!-- TODO move this version somewhere else --> ++ </dependency> + </dependencies> + </dependencyManagement> + + + + diff --git a/src/main/paisa-nonslim/patches/benjy.patch b/src/main/paisa-nonslim/patches/benjy.patch index 9e4b9d8..07c15b3 100644 --- a/src/main/paisa-nonslim/patches/benjy.patch +++ b/src/main/paisa-nonslim/patches/benjy.patch @@ -1,18 +1,20 @@ + WARN: Now based on "SDCISA-15636-Migrate-to-Java-21" branch. --- a/Jenkinsfile -+++ b/Jenkinsfile -@@ -9,7 +9,7 @@ serviceBuildPipeline([ +--- b/Jenkinsfile +@@ -10,7 +10,7 @@ jslPipeline .checkout() .setBranchVersion() -- .buildMaven([spotless: true, slim: true]) -+ .buildMaven([spotless: true, ]) +- .buildMaven([spotless: true]) ++ .buildMaven([spotless: true]) .finalizeAndUpdateVersion() .saveArtifacts() .executeSonar() + --- a/benjy-web/pom.xml +++ b/benjy-web/pom.xml @@ -37,6 +37,7 @@ diff --git a/src/main/paisa-nonslim/patches/blart.patch b/src/main/paisa-nonslim/patches/blart.patch index 6d0b90f..f517b0a 100644 --- a/src/main/paisa-nonslim/patches/blart.patch +++ b/src/main/paisa-nonslim/patches/blart.patch @@ -1,15 +1,11 @@ + WARN: now based on "SDCISA-15636-Migrate-to-Java-21" branch. --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -11,3 +11,3 @@ serviceBuildPipeline([ - .setBranchVersion() -- .buildMaven([slim: true, spotless: true]) -+ .buildMaven([spotless: true]) - .withInstances([ @@ -17,3 +17,3 @@ serviceBuildPipeline([ eagle: [version: '02.01.19.00'], -- platform: [version: '03.06.41.00'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], + platform: [version: '${j21.platform.version}'], storage: [version: '00.24.00.00'], diff --git a/src/main/paisa-nonslim/patches/caveman.patch b/src/main/paisa-nonslim/patches/caveman.patch index 32d58d8..1952ca9 100644 --- a/src/main/paisa-nonslim/patches/caveman.patch +++ b/src/main/paisa-nonslim/patches/caveman.patch @@ -5,13 +5,13 @@ @@ -11,11 +11,11 @@ serviceBuildPipeline([ .setBranchVersion() - .buildMaven([spotless: true, slim: true]) -+ .buildMaven([spotless: true, ]) ++ .buildMaven([spotless: true]) .withInstances([ instances: [ testInstance: [ services: [ eagle: [version: '02.01.19.00'], -- platform: [version: '03.06.41.00'], +- platform: [version: '03.06.44.00'], + platform: [version: '${j21.platform.version}'], storage: [version: '00.24.00.00'], caveman: [version: '%currentBranch%'] diff --git a/src/main/paisa-nonslim/patches/deep.patch b/src/main/paisa-nonslim/patches/deep.patch index 4c347ce..5982776 100644 --- a/src/main/paisa-nonslim/patches/deep.patch +++ b/src/main/paisa-nonslim/patches/deep.patch @@ -1,102 +1,23 @@ + WARN: Now based on "SDCISA-15636-Migrate-to-Java-21" branch. --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -19,10 +19,10 @@ serviceBuildPipeline([ +@@ -20,11 +20,11 @@ testInstance: [ services: [ - eagle: [version: '02.01.19.00'], -- platform: [version: '03.06.37.00'], + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], + platform: [version: '${j21.platform.version}'], storage: [version: '00.24.00.00'], deep: [version: '%currentBranch%'], -- slarti: [version: '03.14.33.00'], -- guide: [version: '02.14.10.00'], -- trillian: [version: '03.00.38.00'] +- slarti: [version: '03.15.12.01-PR-1019-SNAPSHOT'], + slarti: [version: '${j21.service.mangledVersion}'], +- guide: [version: '02.14.13.01-PR-122-SNAPSHOT'], + guide: [version: '${j21.service.mangledVersion}'], +- trillian: [version: '03.00.38.01-PR-413-SNAPSHOT'] + trillian: [version: '${j21.service.mangledVersion}'] ] - - ---- a/deep-process/src/test/java/ch/post/it/paisa/deep/process/event/definition/TrailerDefinitionTest.java -+++ b/deep-process/src/test/java/ch/post/it/paisa/deep/process/event/definition/TrailerDefinitionTest.java -@@ -29,75 +29,5 @@ import static org.mockito.Matchers.argThat; - */ - @RunWith(MockitoJUnitRunner.class) - public class TrailerDefinitionTest { -- -- @Mock -- AttributeProvider attributeProvider; -- @Mock -- BackendPositionProvider backendPositionProvider; -- @Mock -- StateMachine stateMachine; -- @Mock -- EventCompensator eventCompensator; -- @Mock -- EventSender eventSender; -- -- TrailerDefinition trailerDefinition; -- -- @Before -- public void init() { -- trailerDefinition = new TrailerDefinition(); -- trailerDefinition.setAttributeProvider(attributeProvider); -- trailerDefinition.setBackendPositionProvider(backendPositionProvider); -- trailerDefinition.setStateMachine(stateMachine); -- trailerDefinition.setEventCompensator(eventCompensator); -- trailerDefinition.setEventSender(eventSender); -- -- Mockito.when(attributeProvider.getTrailerId()).thenReturn("5802"); -- } -- -- @Test -- public void testTrailerTransition() { -- InOrder inOrder = Mockito.inOrder(eventSender); -- -- // receives TRAILER_PRESENT_BUT_NOT_CONFIGURED -> no event is sent -- TrailerStatus trailerStatus = new TrailerStatus().withTimestamp(DateTime.now()).withTrailerSituation(TrailerSituation.TRAILER_PRESENT_BUT_NOT_CONFIGURED); -- trailerDefinition.process(trailerStatus); -- inOrder.verifyNoMoreInteractions(); -- -- // receives TRAILER_PRESENT_AND_CONFIGURED -> sent TRAILER_COUPLED -- trailerStatus = new TrailerStatus().withTimestamp(DateTime.now()).withTrailerSituation(TrailerSituation.TRAILER_PRESENT_AND_CONFIGURED).withTrailerId("5802"); -- trailerDefinition.process(trailerStatus); -- inOrder.verify(eventSender).send(anEventOfTypeWithTrailerId(EventType.TRAILER_COUPLED, "5802")); -- -- // receives TRAILER_PRESENT_BUT_NOT_CONFIGURED -> sent TRAILER_UNCOUPLED -- trailerStatus = new TrailerStatus().withTimestamp(DateTime.now()).withTrailerSituation(TrailerSituation.TRAILER_PRESENT_BUT_NOT_CONFIGURED); -- trailerDefinition.process(trailerStatus); -- inOrder.verify(eventSender).send(anEventOfTypeWithTrailerId(EventType.TRAILER_UNCOUPLED, "5802")); -- -- // receives NO_TRAILER -> no event is sent -- trailerStatus = new TrailerStatus().withTimestamp(DateTime.now()).withTrailerSituation(TrailerSituation.NO_TRAILER); -- trailerDefinition.process(trailerStatus); -- inOrder.verifyNoMoreInteractions(); -- } -- -- -- @Test -- public void testTernarySignalRepetition() { -- InOrder inOrder = Mockito.inOrder(eventSender); -- -- // receives TRAILER_PRESENT_AND_CONFIGURED -> sent TRAILER_COUPLED -- TrailerStatus trailerStatus = new TrailerStatus().withTimestamp(DateTime.now()).withTrailerSituation(TrailerSituation.TRAILER_PRESENT_AND_CONFIGURED).withTrailerId("5802"); -- trailerDefinition.process(trailerStatus); -- inOrder.verify(eventSender).send(anEventOfTypeWithTrailerId(EventType.TRAILER_COUPLED, "5802")); -- -- // receives TRAILER_PRESENT_AND_CONFIGURED again -> no event is sent -- trailerStatus = new TrailerStatus().withTimestamp(DateTime.now()).withTrailerSituation(TrailerSituation.TRAILER_PRESENT_AND_CONFIGURED).withTrailerId("5802"); -- trailerDefinition.process(trailerStatus); -- inOrder.verifyNoMoreInteractions(); -- } -- -- -- private Event anEventOfTypeWithTrailerId(EventType expectedEventType, String trailerId) { -- return argThat(Matchers.allOf(Matchers.hasProperty("eventType", is(expectedEventType)), Matchers.hasProperty("trailerId", is(trailerId)))); -- } -+ @Test public void makeSurefireHappy() {} - } + ] diff --git a/src/main/paisa-nonslim/patches/drdan.patch b/src/main/paisa-nonslim/patches/drdan.patch index 7d86974..a60adb7 100644 --- a/src/main/paisa-nonslim/patches/drdan.patch +++ b/src/main/paisa-nonslim/patches/drdan.patch @@ -1,24 +1,23 @@ + WARN: Now based on "SDCISA-15636-Migrate-to-Java-21" branch. + --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -9,14 +9,14 @@ serviceBuildPipeline([ +@@ -10,13 +10,13 @@ jslPipeline .checkout() .setBranchVersion() -- .buildMaven([slim: true]) +- .buildMaven() + .buildMaven() .withInstances([ instances: [ testInstance: [ services: [ - eagle: [version: '02.01.19.00'], -- platform: [version: '03.06.41.00'], -- storage: [version: '00.24.00.00'], + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], + platform: [version: '0.0.0-SDCISA-15648-ed1d4665-SNAPSHOT'], -+ storage: [version: '00.24.00.00'], + storage: [version: '00.24.00.00'], drdan: [version: '%currentBranch%'], - guide: [version: '02.14.10.00'], - ] - + guide: [version: '02.14.13.01-PR-122-SNAPSHOT'], diff --git a/src/main/paisa-nonslim/patches/jeltz.patch b/src/main/paisa-nonslim/patches/jeltz.patch index 78e28c2..b09c1f3 100644 --- a/src/main/paisa-nonslim/patches/jeltz.patch +++ b/src/main/paisa-nonslim/patches/jeltz.patch @@ -2,25 +2,24 @@ --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -12,13 +12,13 @@ serviceBuildPipeline([ +@@ -13,13 +13,13 @@ jslPipeline .checkout() .setBranchVersion() -- .buildMaven([spotless: true, slim: true]) +- .buildMaven([spotless: true]) + .buildMaven([spotless: true]) .withInstances([ instances: [ vehicleInstance: [ services: [ - eagle: [version: '02.01.22.00'], -- platform: [version: '03.06.41.00'], + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], + platform: [version: '${j21.platform.version}'], storage: [version: '00.24.00.00'], jeltz: [version: '%currentBranch%'] ] - --- a/jeltz-process/pom.xml +++ b/jeltz-process/pom.xml @@ -58,4 +58,5 @@ diff --git a/src/main/paisa-nonslim/patches/loon.patch b/src/main/paisa-nonslim/patches/loon.patch index 9190f66..b773e93 100644 --- a/src/main/paisa-nonslim/patches/loon.patch +++ b/src/main/paisa-nonslim/patches/loon.patch @@ -1,22 +1,24 @@ + WARN: now based on "SDCISA-15636-Migrate-to-Java-21" branch. --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -9,11 +9,11 @@ serviceBuildPipeline([ +@@ -10,13 +10,13 @@ jslPipeline .checkout() .setBranchVersion() -- .buildMaven([slim: true]) +- .buildMaven() + .buildMaven() .withInstances([ instances: [ testInstance: [ services: [ - eagle: [version: '02.01.19.00'], -- platform: [version: '03.06.41.00'], + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], + platform: [version: '${j21.platform.version}'], storage: [version: '00.24.00.00'], - + loon: [version: '%currentBranch%'] + ] --- a/loon-web/pom.xml diff --git a/src/main/paisa-nonslim/patches/magician.patch b/src/main/paisa-nonslim/patches/magician.patch index eb72052..c688e83 100644 --- a/src/main/paisa-nonslim/patches/magician.patch +++ b/src/main/paisa-nonslim/patches/magician.patch @@ -1,20 +1,22 @@ --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -14,11 +14,11 @@ serviceBuildPipeline([ +@@ -15,13 +15,13 @@ jslPipeline .checkout() .setBranchVersion() -- .buildMaven([slim: true]) +- .buildMaven() + .buildMaven() .buildDocker() .withInstances([instances: [ vehicleInstance: [ services: [ - eagle: [version: '02.01.19.00'], -- platform: [version: '03.06.40.00'], + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.39.01-PR-388-SNAPSHOT'], + platform: [version: '${j21.platform.version}'], storage: [version: '00.24.00.00'], + magician: [version: '%currentBranch%'] + ] --- a/magician-process/pom.xml diff --git a/src/main/paisa-nonslim/patches/megacamel.patch b/src/main/paisa-nonslim/patches/megacamel.patch index 9c54c43..80d2add 100644 --- a/src/main/paisa-nonslim/patches/megacamel.patch +++ b/src/main/paisa-nonslim/patches/megacamel.patch @@ -1,14 +1,18 @@ + WARN: now based on "SDCISA-15636-Migrate-to-Java-21" branch. + --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -9,5 +9,5 @@ serviceBuildPipeline([ +@@ -10,7 +10,7 @@ jslPipeline .checkout() .setBranchVersion() -- .buildMaven([slim: true]) +- .buildMaven() + .buildMaven() .buildDocker() + .finalizeAndUpdateVersion() + .saveArtifacts() --- a/megacamel-web/pom.xml diff --git a/src/main/paisa-nonslim/patches/minetti.patch b/src/main/paisa-nonslim/patches/minetti.patch index 7df88f8..5f2b05b 100644 --- a/src/main/paisa-nonslim/patches/minetti.patch +++ b/src/main/paisa-nonslim/patches/minetti.patch @@ -1,23 +1,35 @@ + WARN: Now based on "SDCISA-15636-Migrate-to-Java-21" branch. + --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -12,7 +12,7 @@ serviceBuildPipeline([ +@@ -13,7 +13,7 @@ jslPipeline .checkout() .setBranchVersion() -- .buildMaven([slim: true, spotless: true]) +- .buildMaven([spotless: true]) + .buildMaven([spotless: true]) .runKarma() .withInstances([ instances: [ -@@ -25,7 +25,7 @@ serviceBuildPipeline([ +@@ -20,16 +20,16 @@ + backendInstance: [ + services: [ + houston: [version: '02.01.66.01-PR-519-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], ++ platform: [version: '${j21.platform.version}'], + storage: [version: '00.24.00.00'] + ] + ], vehicleInstance: [ services: [ - eagle: [version: '02.01.19.00'], -- platform: [version: '03.06.38.00'], + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], + platform: [version: '${j21.platform.version}'], storage: [version: '00.24.00.00'], -- slarti: [version: '03.14.37.00'], -+ slarti: [version: '${j21.service.mangledVersion}'], + slarti: [version: '03.15.09.01-PR-1019-SNAPSHOT'], minetti: [version: '%currentBranch%'] + ], + houstonInstance: 'backendInstance' + diff --git a/src/main/paisa-nonslim/patches/mown.patch b/src/main/paisa-nonslim/patches/mown.patch index 6cd319a..0cff219 100644 --- a/src/main/paisa-nonslim/patches/mown.patch +++ b/src/main/paisa-nonslim/patches/mown.patch @@ -1,414 +1,16 @@ + WARN now based on "SDCISA-15636-Migrate-to-Java-21" branch. --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -12,5 +12,5 @@ serviceBuildPipeline([ +@@ -12,7 +12,7 @@ serviceBuildPipeline([ + jslPipeline .checkout() .setBranchVersion() -- .buildMaven([slim: true, spotless: true]) +- .buildMaven([spotless: true]) + .buildMaven([spotless: true]) .finalizeAndUpdateVersion() .mergeTranslationBranch() - - ---- a/mown-process/src/test/java/ch/post/it/paisa/mown/process/nova/SearchServiceTest.java -+++ /dev/null -@@ -1,394 +0,0 @@ --package ch.post.it.paisa.mown.process.nova; -- --import static ch.post.it.paisa.mown.process.nova.ProductSearchResultBuilder.fromDescription; --import static ch.post.it.paisa.mown.process.nova.ProductSearchResultBuilder.fromDescriptionParameter; --import static ch.post.it.paisa.mown.process.nova.ProductSearchResultBuilder.fromNovaProductNumber; --import static ch.post.it.paisa.mown.process.nova.matcher.ValidCorrelationKontext.isValidCorrelationKontext; --import static ch.post.it.paisa.mown.process.utils.StringUtils.getLocalizedString; --import static ch.voev.nova.services.v14.vertriebsbase.KlassenTypCode.KLASSENWECHSEL; --import static ch.voev.nova.services.v14.vertriebsbase.KlassenTypCode.KLASSE_1; --import static ch.voev.nova.services.v14.vertriebsbase.KlassenTypCode.KLASSE_2; --import static org.junit.Assert.assertEquals; --import static org.mockito.Matchers.any; --import static org.mockito.Matchers.argThat; --import static org.mockito.Matchers.eq; --import static org.mockito.Mockito.mock; --import static org.mockito.Mockito.verify; --import static org.mockito.Mockito.when; -- --import ch.post.it.paisa.alice.service.process.nova.NovaServiceFactory; --import ch.post.it.paisa.alice.service.process.nova.configuration.NovaParameters; --import ch.post.it.paisa.mown.process.nova.matcher.ClientIdentifierMatcher; --import ch.post.it.paisa.mown.process.nova.matcher.SucheSwissPassMatcher; --import ch.post.it.paisa.mown.process.nova.matcher.ValidCorrelationKontext; --import ch.post.it.paisa.mown.process.translation.TranslationService; --import ch.voev.nova.services.base.ClientIdentifier; --import ch.voev.nova.services.base.Status; --import ch.voev.nova.services.swisspass.SucheSwissPassResponse; --import ch.voev.nova.services.swisspass.SwissPassServicePortTypeSOAPv14; --import ch.voev.nova.services.v14.geschaeftspartner.Partner; --import ch.voev.nova.services.vertrieb.LeistungsSuchErgebnis; --import ch.voev.nova.services.vertrieb.LeistungsSuchResponse; --import ch.voev.nova.services.vertrieb.VertriebsServicePortTypeSOAPv14; --import ch.voev.nova.services.vertrieb.vertriebsstammdaten.ProduktTaxonomie; --import ch.voev.nova.services.vertrieb.vertriebsstammdaten.ProduktTaxonomienResponse; --import ch.voev.nova.services.vertrieb.vertriebsstammdaten.TaxonomieKlasse; --import ch.voev.nova.services.vertrieb.vertriebsstammdaten.VertriebsstammdatenServicePortTypeSOAPv14; --import java.util.ArrayList; --import java.util.Arrays; --import java.util.List; --import java.util.UUID; --import org.joda.time.LocalDate; --import org.junit.Before; --import org.junit.Test; -- --public class SearchServiceTest { -- private NovaParameters novaParameters; -- private SearchService service; -- private SwissPassServicePortTypeSOAPv14 swisspassService; -- private NovaServiceFactory novaServiceFactory; -- private SucheSwissPassResponse findSwisspassResponse; -- private Partner partner; -- private LeistungsSuchResponse findProductsResponse; -- -- @Before -- public void generalSetup() throws Exception { -- novaParameters = mock(NovaParameters.class); -- when(novaParameters.getNovaLeistungsvermittler()).thenReturn("801"); -- when(novaParameters.getNovaKanal()).thenReturn("956"); -- -- NovaParametersFactory novaParametersFactory = mock(NovaParametersFactory.class); -- when(novaParametersFactory.getNovaParameters()).thenReturn(novaParameters); -- -- novaServiceFactory = mock(NovaServiceFactory.class); -- -- service = new SearchService(novaParametersFactory, novaServiceFactory); -- } -- -- @Before -- public void setupSwisspassService() { -- swisspassService = mock(SwissPassServicePortTypeSOAPv14.class); -- when(novaServiceFactory.getSwissPassService14_2(eq(novaParameters), any())) -- .thenReturn(swisspassService); -- -- findSwisspassResponse = mock(SucheSwissPassResponse.class); -- when(swisspassService.sucheSwissPass(any())).thenReturn(findSwisspassResponse); -- -- partner = mock(Partner.class); -- when(findSwisspassResponse.getKunde()).thenReturn(partner); -- } -- -- @Before -- public void setupSalesMasterdataService() { -- VertriebsstammdatenServicePortTypeSOAPv14 salesMasterdataService = -- mock(VertriebsstammdatenServicePortTypeSOAPv14.class); -- when(novaServiceFactory.getVertriebsstammdatenServicev14_2(eq(novaParameters), any())) -- .thenReturn(salesMasterdataService); -- -- ProduktTaxonomienResponse productTaxonomiesResponse = mock(ProduktTaxonomienResponse.class); -- when(productTaxonomiesResponse.getProduktTaxonomie()).thenReturn(createProductTaxonomies()); -- -- when(salesMasterdataService.getProduktTaxonomien(any())).thenReturn(productTaxonomiesResponse); -- } -- -- @Before -- public void setupSalesService() { -- VertriebsServicePortTypeSOAPv14 salesService = mock(VertriebsServicePortTypeSOAPv14.class); -- when(novaServiceFactory.getVertriebsServiceV14_2(eq(novaParameters), any())) -- .thenReturn(salesService); -- -- List<LeistungsSuchErgebnis> findProductsResults = new ArrayList<>(); -- -- findProductsResponse = mock(LeistungsSuchResponse.class); -- when(findProductsResponse.getLeistungsSuchErgebnis()).thenReturn(findProductsResults); -- -- when(salesService.sucheLeistungen(any())).thenReturn(findProductsResponse); -- } -- -- @Test -- public void findSwisspassCustomer_returnsTkid() throws Exception { -- when(partner.getTkid()).thenReturn("239c03cb-ce4d-4982-a680-2a6ea27deebf"); -- -- SwisspassCustomer swisspassCustomer = service.findSwisspassCustomer("0123456"); -- assertEquals("239c03cb-ce4d-4982-a680-2a6ea27deebf", swisspassCustomer.getTkid()); -- } -- -- @Test -- public void findSwisspassCustomer_usesClientIdentifier() throws Exception { -- ClientIdentifier clientIdentifier = new ClientIdentifier(); -- when(novaParameters.getClientIdentifier()).thenReturn(clientIdentifier); -- -- service.findSwisspassCustomer("0123456"); -- -- verify(swisspassService) -- .sucheSwissPass( -- argThat( -- SucheSwissPassMatcher.matching( -- "0123456", -- ClientIdentifierMatcher.matching(clientIdentifier), -- ValidCorrelationKontext.any()))); -- } -- -- @Test -- public void findSwisspassCustomer_usesValidCorrelationKontext() throws Exception { -- service.findSwisspassCustomer("0123456"); -- -- verify(swisspassService) -- .sucheSwissPass( -- argThat( -- SucheSwissPassMatcher.matching( -- "0123456", ClientIdentifierMatcher.any(), isValidCorrelationKontext()))); -- } -- -- @Test(expected = NotFoundException.class) -- public void findSwisspassCustomer_throwsNotFoundExceptionIfStatusNok() throws Exception { -- when(findSwisspassResponse.getStatus()).thenReturn(Status.NOK); -- -- service.findSwisspassCustomer("0123456"); -- } -- -- @Test(expected = NotFoundException.class) -- public void findSwisspassCustomer_throwsNotFoundExceptionIfNoCustomer() throws Exception { -- when(findSwisspassResponse.getKunde()).thenReturn(null); -- -- service.findSwisspassCustomer("0123456"); -- } -- -- @Test -- public void findSwisspassProducts_returnsAllProducts() throws Exception { -- LeistungsSuchErgebnis productSearchResult1 = fromDescription("My product 1").create(); -- LeistungsSuchErgebnis productSearchResult2 = fromDescription("My product 2").create(); -- LeistungsSuchErgebnis productSearchResult3 = fromDescription("My product 3").create(); -- -- findProductsResponse -- .getLeistungsSuchErgebnis() -- .addAll(Arrays.asList(productSearchResult1, productSearchResult2, productSearchResult3)); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- assertEquals(3, swisspassProducts.size()); -- assertEquals("My product 1", swisspassProducts.get(0).getDescription().getDefaultWert()); -- assertEquals("My product 2", swisspassProducts.get(1).getDescription().getDefaultWert()); -- assertEquals("My product 3", swisspassProducts.get(2).getDescription().getDefaultWert()); -- } -- -- @Test -- public void findSwisspassProducts_prefersDescriptionOverParameter() throws Exception { -- LeistungsSuchErgebnis productSearchResult = -- fromDescription("Product description") -- .withDescriptionParameter("Description parameter") -- .create(); -- -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- assertEquals(1, swisspassProducts.size()); -- assertEquals("Product description", swisspassProducts.get(0).getDescription().getDefaultWert()); -- } -- -- @Test -- public void findSwisspassProducts_prefersParameterOverProductNumber() throws Exception { -- LeistungsSuchErgebnis productSearchResult = -- fromDescriptionParameter("Description parameter").withNovaProductNumber(1).create(); -- -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- assertEquals(1, swisspassProducts.size()); -- assertEquals( -- "Description parameter", swisspassProducts.get(0).getDescription().getDefaultWert()); -- } -- -- @Test -- public void findSwisspassProducts_usesNovaProductNumberAsLastResort() throws Exception { -- LeistungsSuchErgebnis productSearchResult = fromNovaProductNumber(4).create(); -- -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- assertEquals(1, swisspassProducts.size()); -- assertEquals( -- "BüGA-Abonnemente description", swisspassProducts.get(0).getDescription().getDefaultWert()); -- } -- -- @Test -- public void findSwisspassProducts_alsoSearchesSubClassesForProductNumber() throws Exception { -- LeistungsSuchErgebnis productSearchResult = fromNovaProductNumber(6).create(); -- -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- assertEquals(1, swisspassProducts.size()); -- assertEquals( -- "Subclass description", swisspassProducts.get(0).getDescription().getDefaultWert()); -- } -- -- @Test -- public void findSwisspassProducts_returnsClassTypeIfAvailable() throws Exception { -- LeistungsSuchErgebnis productSearchResult1 = -- fromDescription("My 1st class product").withClassType(KLASSE_1).create(); -- -- LeistungsSuchErgebnis productSearchResult2 = -- fromDescription("My 2nd class product").withClassType(KLASSE_2).create(); -- -- LeistungsSuchErgebnis productSearchResult3 = -- fromDescription("My class upgrade product").withClassType(KLASSENWECHSEL).create(); -- -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult1); -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult2); -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult3); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- assertEquals(KLASSE_1, swisspassProducts.get(0).getClassType()); -- assertEquals(KLASSE_2, swisspassProducts.get(1).getClassType()); -- assertEquals(KLASSENWECHSEL, swisspassProducts.get(2).getClassType()); -- } -- -- @Test -- public void findSwisspassProducts_listsZonesIfAvailable() throws Exception { -- TranslationService translationService = new TranslationService(null); -- -- LeistungsSuchErgebnis productSearchResult = -- fromDescription("Product with zones").withVias("100", "101", "102", "103").create(); -- -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- List<String> zones = -- translationService.translateSwisspassProduct(swisspassProducts.get(0)).getVias(); -- assertEquals(Arrays.asList("100", "101", "102", "103"), zones); -- } -- -- @Test -- public void findSwisspassProducts_returnsValidityPeriod() throws Exception { -- LeistungsSuchErgebnis productSearchResult = -- fromDescription("Product with validity") -- .withValidityPeriod(LocalDate.parse("2020-01-01"), LocalDate.parse("2020-12-31")) -- .create(); -- -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- assertEquals(LocalDate.parse("2020-01-01"), swisspassProducts.get(0).getValidFrom()); -- assertEquals(LocalDate.parse("2020-12-31"), swisspassProducts.get(0).getValidTo()); -- } -- -- @Test -- public void findSwisspassProducts_returnsOrigin() throws Exception { -- LeistungsSuchErgebnis productSearchResult = -- fromDescription("Product with validity").withOrigin("origin").create(); -- -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- assertEquals("origin", swisspassProducts.get(0).getOrigin().getDefaultWert()); -- } -- -- @Test -- public void findSwisspassProducts_returnsDestination() throws Exception { -- LeistungsSuchErgebnis productSearchResult = -- fromDescription("Product with validity").withDestination("destination").create(); -- -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- assertEquals("destination", swisspassProducts.get(0).getDestination().getDefaultWert()); -- } -- -- @Test -- public void findSwisspassProducts_usesClassNameIfNoDescription() throws OfflineException { -- LeistungsSuchErgebnis productSearchResult = fromNovaProductNumber(7).create(); -- -- findProductsResponse.getLeistungsSuchErgebnis().add(productSearchResult); -- -- SwisspassCustomer customer = SwisspassCustomer.createFromTkid(UUID.randomUUID().toString()); -- List<SwisspassProduct> swisspassProducts = service.findSwisspassProducts(customer); -- -- assertEquals(1, swisspassProducts.size()); -- assertEquals("Halbtax", swisspassProducts.get(0).getDescription().getDefaultWert()); -- } -- -- private List<ProduktTaxonomie> createProductTaxonomies() { -- List<ProduktTaxonomie> productTaxonomies = new ArrayList<>(); -- -- TaxonomieKlasse class002 = new TaxonomieKlasse(); -- class002.setName("002"); -- class002.setBezeichnung(getLocalizedString("002 description")); -- class002.getProduktNummer().add(1); -- class002.getProduktNummer().add(2); -- class002.getProduktNummer().add(3); -- -- ProduktTaxonomie taxonomy002 = new ProduktTaxonomie(); -- taxonomy002.setName("Basistaxonomie Reporting"); -- taxonomy002.getKlasse().add(class002); -- -- TaxonomieKlasse class99 = new TaxonomieKlasse(); -- class99.setName("Class 99 name"); -- class99.setBezeichnung(getLocalizedString("Class 99 description")); -- class99.getProduktNummer().add(1); -- class99.getProduktNummer().add(2); -- class99.getProduktNummer().add(3); -- -- ProduktTaxonomie taxonomy99 = new ProduktTaxonomie(); -- taxonomy99.setName("Beratungsprovision GA_HTA"); -- taxonomy99.getKlasse().add(class99); -- -- TaxonomieKlasse class1 = new TaxonomieKlasse(); -- class1.setName("BüGA-Abonnemente"); -- class1.setBezeichnung(getLocalizedString("BüGA-Abonnemente description")); -- class1.getProduktNummer().add(4); -- -- ProduktTaxonomie taxonomy1 = new ProduktTaxonomie(); -- taxonomy1.setName("BüGA-Abonnemente"); -- taxonomy1.getKlasse().add(class1); -- -- TaxonomieKlasse class2 = new TaxonomieKlasse(); -- class2.setName("Generalabonnementee"); -- class2.setBezeichnung(getLocalizedString("Generalabonnemente description")); -- class2.getProduktNummer().add(5); -- -- ProduktTaxonomie taxonomy2 = new ProduktTaxonomie(); -- taxonomy2.setName("Generalabo"); -- taxonomy2.getKlasse().add(class2); -- -- TaxonomieKlasse subClass = new TaxonomieKlasse(); -- subClass.setName("Subclass name"); -- subClass.setBezeichnung(getLocalizedString("Subclass description")); -- subClass.getProduktNummer().add(6); -- -- TaxonomieKlasse class3 = new TaxonomieKlasse(); -- class3.setName("Halbtax"); -- class3.getSubTaxonomieKlasse().add(subClass); -- class3.getProduktNummer().add(7); -- -- ProduktTaxonomie taxonomy3 = new ProduktTaxonomie(); -- taxonomy3.setName("Halbtax"); -- taxonomy3.getKlasse().add(class3); -- -- productTaxonomies.add(taxonomy99); -- productTaxonomies.add(taxonomy1); -- productTaxonomies.add(taxonomy2); -- productTaxonomies.add(taxonomy3); -- -- return productTaxonomies; -- } --} - - + .saveArtifacts() diff --git a/src/main/paisa-nonslim/patches/platform.patch b/src/main/paisa-nonslim/patches/platform.patch new file mode 100644 index 0000000..c142b4a --- /dev/null +++ b/src/main/paisa-nonslim/patches/platform.patch @@ -0,0 +1,88 @@ + + 20240812 now based on the java-21 branch, no longer on develop. + +--- a/poms/service/paisa-service-superpom/pom.xml ++++ b/poms/service/paisa-service-superpom/pom.xml +@@ -895,79 +895,11 @@ + <configuration> + <properties> + <!-- + Don't you DARE add slf4j here. If you do, the services in a + constellation won't start up! So be mindful and DON'T add it. + --> + <slimArtifacts> +- aopalliance:aopalliance<!--TODO: never directly used in platform--> +- ch.post.it.paisa.alice:alice-service-config-core +- ch.post.it.paisa.alice:alice-service-domain-core +- ch.post.it.paisa.alice:alice-service-process-core +- ch.post.it.paisa.alice:alice-service-logging-core +- ch.post.it.paisa.alice:alice-service-web-core +- org.aspectj:aspectjweaver<!--Transitively used by spring-aspects--> +- org.aspectj:aspectjrt<!--TODO: never directly used in platform--> +- com.fasterxml:classmate<!--Transitively used by hibernate-validator--> +- ch.post.it.common.core:common-core-metadata +- commons-codec:commons-codec +- commons-collections:commons-collections +- commons-fileupload:commons-fileupload +- commons-io:commons-io +- commons-lang:commons-lang +- commons-logging:commons-logging +- commons-logging:commons-logging-api +- commons-logging:commons-logging-api:99.0-does-not-exist +- io.micrometer:micrometer-observation<!--Transitively used by spring-web & spring-context--> +- io.micrometer:micrometer-commons<!--Transitively used by micrometer-observation--> +- net.sf.ehcache:ehcache-core +- org.hibernate.validator:hibernate-validator +- org.hibernate:hibernate-core-jakarta +- org.apache.httpcomponents:httpclient +- org.apache.httpcomponents:httpcore +- org.apache.httpcomponents:httpmime +- com.fasterxml.jackson.core:jackson-annotations +- com.fasterxml.jackson.core:jackson-core +- com.fasterxml.jackson.core:jackson-databind +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310<!--Transitively used by shedlock--> +- org.glassfish:jakarta.el +- jakarta.annotation:jakarta.annotation-api +- com.sun.activation:jakarta.activation +- javax.xml.bind:jaxb-api +- com.sun.xml.bind:jaxb-core +- com.sun.xml.bind:jaxb-impl +- org.jboss.logging:jboss-logging<!--Transitively used by hibernate-validator--> +- org.slf4j:jcl-over-slf4j<!--TODO: never directly used in platform--> +- joda-time:joda-time +- com.google.code.findbugs:jsr305 + io.github.java-native:jssc +- org.slf4j:jul-to-slf4j<!--TODO: never used in platform--> +- org.apache.logging.log4j:log4j-core +- org.apache.logging.log4j:log4j-api +- ch.post.it.paisa.api:common-logging-api +- ch.post.it.paisa.api:common-server-api +- ch.post.it.paisa.api:system-status-api +- ch.post.it.paisa.api:common-metric-api +- ch.post.it.paisa.api:user-registration-api +- ch.post.it.paisa.api:vehiclelink-power-api +- ch.post.it.paisa.api:shared-navigation-api +- ch.post.it.paisa.api:navigation-location-api +- ch.post.it.paisa.api:maintenance-observation-api +- org.springframework:spring-aop<!--Transitively used by spring-webmvc--> +- org.springframework:spring-aspects +- org.springframework:spring-beans<!--Transitively used by spring-web--> +- org.springframework:spring-context +- org.springframework:spring-context-support +- org.springframework:spring-core +- org.springframework:spring-expression +- org.springframework:spring-test +- org.springframework:spring-web +- org.springframework:spring-webmvc +- jakarta.validation:jakarta.validation-api +- net.javacrumbs.shedlock:shedlock-spring +- net.javacrumbs.shedlock:shedlock-core +- net.bull.javamelody:javamelody-core +- org.jrobin:jrobin +- com.thoughtworks.xstream:xstream + </slimArtifacts> + </properties> + <source> + + + diff --git a/src/main/paisa-nonslim/patches/rob.patch b/src/main/paisa-nonslim/patches/rob.patch index db0f864..bc0576e 100644 --- a/src/main/paisa-nonslim/patches/rob.patch +++ b/src/main/paisa-nonslim/patches/rob.patch @@ -1,4 +1,5 @@ + WARN: Now based on "SDCISA-15636-Migrate-to-Java-21" branch. --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,7 +7,7 @@ jslPipeline .checkout() .setBranchVersion() -- .buildMaven([slim: true]) +- .buildMaven() + .buildMaven() .runKarma() .withInstances([ @@ -15,19 +16,21 @@ --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -22,9 +22,9 @@ serviceBuildPipeline([ +@@ -24,11 +24,11 @@ testInstance: [ services: [ - eagle: [version: '02.01.19.00'], -- platform: [version: '03.06.32.00'], + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.38.01-PR-388-SNAPSHOT'], + platform: [version: '${j21.platform.version}'], storage: [version: '00.24.00.00'], rob: [version: '%currentBranch%'], -- slarti: [version: '03.14.37.00'], -- captain: [version: '03.00.07.00'], +- slarti: [version: '03.15.09.01-PR-1019-SNAPSHOT'], + slarti: [version: '${j21.slarti.mangledVersion}'], +- captain: [version: '03.00.14.01-PR-103-SNAPSHOT'], + captain: [version: '${j21.captain.mangledVersion}'], hafas: [version: '5.41.SBB.4.15.8'], + nova: [version: '14.166.1-new-idp'], + 'data-nova': [version: '14.166.0.20230524-1305.P.P.3267.0'], --- a/Jenkinsfile @@ -40,13 +43,52 @@ --- a/pom.xml -+++ b/pom.xml -@@ -333,4 +333,6 @@ - strange effects here --> - <javax.s.version>3.1.0.redhat-1</javax.s.version> - <javax.servlet.version>2.5</javax.servlet.version> -+ <javax.s.version>3.1.0.redhat-1</javax.s.version> -+ <javax.servlet.version>2.5</javax.servlet.version> ++++ a/pom.xml +@@ -5,7 +5,7 @@ Bcause stupid maven shoots itself in the foot .... + <groupId>ch.post.it.paisa.service</groupId> + <!-- Caution: when changing the parent version number, also change the + platform.version below --> +- <version>03.06.38.01-PR-388-SNAPSHOT</version> ++ <version>${j21.platform.version}</version> + <relativePath/> + </parent> + + + +--- a/pom.xml ++++ a/pom.xml +@@ -285,6 +285,16 @@ + <artifactId>linti</artifactId> + <version>${linti.version}</version> + </dependency> ++ <dependency> ++ <groupId>org.glassfish</groupId> ++ <artifactId>jakarta.el</artifactId> ++ <version>4.0.2</version> <!-- TODO move this version somewhere else --> ++ </dependency> ++ <dependency> ++ <groupId>org.eclipse.jetty.ee10</groupId> ++ <artifactId>jetty-ee10-webapp</artifactId> ++ <version>12.0.12</version> <!-- TODO move this version somewhere else --> ++ </dependency> + </dependencies> + </dependencyManagement> + <properties> + + +--- a/pom.xml ++++ a/pom.xml +@@ -328,8 +333,10 @@ + If changing one version, also change the other. + Don't forget to change the version in the manifest.yaml, too. --> + <linti.version>03.13.17.00</linti.version> +- <slarti.version>03.15.09.01-PR-1019-SNAPSHOT</slarti.version> ++ <slarti.version>${j21.slarti.mangledVersion}</slarti.version> + <webjars.angular.sanitize.version>1.8.3</webjars.angular.sanitize.version> ++ <jakarta.annotation.version>3.0.0</jakarta.annotation.version> <!-- TODO probably move this version somewhere else? --> ++ <jakarta.servlet.version>6.1.0</jakarta.servlet.version> <!-- TODO probably move this version somewhere else? --> </properties> + + <modules> diff --git a/src/main/paisa-nonslim/patches/slarti.patch b/src/main/paisa-nonslim/patches/slarti.patch new file mode 100644 index 0000000..31e009f --- /dev/null +++ b/src/main/paisa-nonslim/patches/slarti.patch @@ -0,0 +1,77 @@ + + +--- a/Jenkinsfile +--- b/Jenkinsfile +@@ -18,7 +18,7 @@ + jslPipeline + .checkout() + .setBranchVersion() +- .buildMaven([spotless: true]) ++ .buildMaven([spotless: true]) + .runKarma() + .withInstances([instances: [ + backendSel: [ +@@ -51,7 +51,7 @@ + vehicleSel: [ + services: [ + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], ++ platform: [version: '${j21.platform.version}'], + storage: [version: '00.24.00.00'], + slarti: [version: '%currentBranch%'], + nowwhat: [version: '04.02.17.01-PR-123-SNAPSHOT'], +@@ -62,7 +62,7 @@ + vehicleCucumber_1: [ + services: [ + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], ++ platform: [version: '${j21.platform.version}'], + storage: [version: '00.24.00.00'], + slarti: [version: '%currentBranch%'], + nowwhat: [version: '04.02.17.01-PR-123-SNAPSHOT'], +@@ -73,7 +73,7 @@ + vehicleCucumber_take_out_service: [ + services: [ + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], ++ platform: [version: '${j21.platform.version}'], + storage: [version: '00.24.00.00'], + slarti: [version: '%currentBranch%'], + nowwhat: [version: '04.02.17.01-PR-123-SNAPSHOT'], +@@ -84,7 +84,7 @@ + st_rest: [ + services: [ + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], ++ platform: [version: '${j21.platform.version}'], + storage: [version: '00.24.00.00'], + slarti: [version: '%currentBranch%'], + nowwhat: [version: '04.02.17.01-PR-123-SNAPSHOT'], + + +--- a/pom.xml ++++ b/pom.xml +@@ -314,6 +314,21 @@ + <artifactId>moment-timezone</artifactId> + <version>${webjars.moment-timezone.version}</version> + </dependency> ++ <dependency> ++ <groupId>jakarta.servlet</groupId> ++ <artifactId>jakarta.servlet-api</artifactId> ++ <version>6.1.0</version> <!-- TODO move this version somewhere else --> ++ </dependency> ++ <dependency> ++ <groupId>org.eclipse.jetty.ee10</groupId> ++ <artifactId>jetty-ee10-webapp</artifactId> ++ <version>12.0.12</version> <!-- TODO move this version somewhere else --> ++ </dependency> ++ <dependency> ++ <groupId>org.awaitility</groupId> ++ <artifactId>awaitility</artifactId> ++ <version>4.2.2</version> <!-- TODO move this version somewhere else --> ++ </dependency> + </dependencies> + </dependencyManagement> + <build> + + diff --git a/src/main/paisa-nonslim/patches/trillian.patch b/src/main/paisa-nonslim/patches/trillian.patch index e85e0a7..3691a49 100644 --- a/src/main/paisa-nonslim/patches/trillian.patch +++ b/src/main/paisa-nonslim/patches/trillian.patch @@ -3315,181 +3315,6 @@ index 3af9d77..0000000 -@CucumberOptions(glue = {"ch.post.it.paisa.trillian.test"}, features = "classpath:features/phonebook-nsync.feature", plugin = {"pretty", "html:target/cucumber/phonebook-nsync", "json:target/cucumber.phonebook-nsync.json"}) -public class PhonebookNsyncUiTest { -} -diff --git a/trillian-test/src/test/java/ch/post/it/paisa/trillian/test/e2e/PhonebookSelectionSteps.java b/trillian-test/src/test/java/ch/post/it/paisa/trillian/test/e2e/PhonebookSelectionSteps.java -deleted file mode 100644 -index df9ca51..0000000 ---- a/trillian-test/src/test/java/ch/post/it/paisa/trillian/test/e2e/PhonebookSelectionSteps.java -+++ /dev/null -@@ -1,169 +0,0 @@ --package ch.post.it.paisa.trillian.test.e2e; -- --import ch.post.it.paisa.api.organization.information.v2.LocalizedText; --import ch.post.it.paisa.api.organization.information.v2.PlanningArea; --import ch.post.it.paisa.api.organization.information.v2.PlanningAreaList; --import ch.post.it.paisa.trillian.test.TestPaths; --import ch.post.it.paisa.trillian.test.ui.BaseTestTrillian; --import ch.post.it.paisa.trillian.test.ui.elements.SlartiNavigation; --import ch.post.it.paisa.trillian.test.ui.mock.MockInstances; --import io.cucumber.datatable.DataTable; --import io.cucumber.java.en.And; --import io.cucumber.java.en.Then; --import org.apache.http.HttpStatus; --import org.junit.Assert; --import org.openqa.selenium.By; --import org.openqa.selenium.StaleElementReferenceException; --import org.openqa.selenium.WebElement; --import org.openqa.selenium.support.ui.ExpectedConditions; --import org.slf4j.Logger; --import org.slf4j.LoggerFactory; -- --import java.util.ArrayList; --import java.util.HashMap; --import java.util.List; --import java.util.Map; -- --public class PhonebookSelectionSteps extends AbstractPhonebookSteps { -- private static final Logger LOG = LoggerFactory.getLogger(PhonebookSelectionSteps.class); -- -- private class SummaryEntry { -- public String phoneEntryType; -- public String phonenumberName; -- public String phonenumber; -- public boolean isDisplayed; -- } -- -- @And("^Delete existing resources \"([^\"]*)\" on eagle$") -- public void deleteExistingResourcesOnEagle(String url) { -- delete(TestPaths.getEagle1BaseUrl() + url); -- } -- -- @And("^We mock \"([^\"]*)\" on houston to return the following$") -- public void weMockOnHoustonToReturnTheFollowing(String url, DataTable dataTable) { -- List<List<String>> rows = dataTable.asLists(String.class); -- for (int i = 1; i < rows.size(); i++) { -- List<String> row = rows.get(i); -- String area = row.get(0); -- String localizedName = row.get(1); -- -- List<PlanningArea> planningAreaList = new ArrayList<>(); -- PlanningArea planningArea = new PlanningArea(); -- planningArea.setPlanningAreaId(Integer.parseInt(area)); -- planningArea.setPcId(18); -- planningArea.setConcessionaire(801); -- planningArea.setTenantId(801); -- planningArea.setLocalizedName(new LocalizedText().withDe(localizedName)); -- planningAreaList.add(planningArea); -- -- MockInstances.getEagle1().forGet(url, HttpStatus.SC_OK, new PlanningAreaList().withPlanningAreas(planningAreaList)); -- } -- -- } -- -- @Then("^the localized name \"([^\"]*)\" is present in planning area \"([^\"]*)\"$") -- public void theLocalizedNameIsPresentInPlanningArea(String localizedName, String areaId) { -- -- boolean testPassed = false; -- for (int retry = 0; retry < PHONE_BOOK_SELECTION_RETRY_COUNTER; retry++) { -- try { -- boolean localizedNameFound = false; -- List<WebElement> planningAreas = getPhoneBookSelectionDiv().findElements(By.xpath(".//h1")); -- for (WebElement planningAreaWebElement : planningAreas) { -- localizedNameFound = localizedName.equals(planningAreaWebElement.getText()); -- if (localizedNameFound) { -- break; -- } -- } -- if (!localizedNameFound) { -- navigateToOverviewAndThenToPhonebookSelection(); -- continue; -- } -- -- testPassed = true; -- } catch (StaleElementReferenceException exception) { -- LOG.warn("StaleElementReferenceException, something changed? Retrying ...", exception); -- } -- } -- Assert.assertTrue("Could not find localized name even after a couple of retries", testPassed); -- } -- -- @And("^We navigate to the phonebook selection summary page$") -- public void weNavigateToThePhonebookSelectionSummaryPage() { -- final SlartiNavigation slartiNavigation = new SlartiNavigation(driver, seleniumHelper); -- slartiNavigation.touchTrillianSideMenuByXpathStringSelector("shortcutmenu-Communication", "shortcutmenu-PhonebookSelection"); -- BaseTestTrillian.switchToFrame("module-Trillian"); -- WebElement element = BaseTestTrillian.getWait().until(ExpectedConditions.elementToBeClickable(By.id("menu_phonebook_summary"))); -- element.click(); -- } -- -- @Then("^The phonebook selection summary entries are$") -- public void thePhonebookSelectionSummaryEntriesAre(DataTable dataTable) { -- List<List<String>> rows = dataTable.asLists(String.class); -- Map<String, List<SummaryEntry>> expectedData = new HashMap<>(); -- for (int i = 1; i < rows.size(); i++) { -- List<String> row = rows.get(i); -- SummaryEntry summaryEntry = new SummaryEntry(); -- summaryEntry.phoneEntryType = row.get(0); -- summaryEntry.phonenumberName = row.get(2); -- summaryEntry.phonenumber = row.get(3); -- summaryEntry.isDisplayed = row.get(4).equals("true"); -- if (!expectedData.containsKey(summaryEntry.phoneEntryType)) { -- expectedData.put(summaryEntry.phoneEntryType, new ArrayList<>()); -- } -- expectedData.get(summaryEntry.phoneEntryType).add(summaryEntry); -- } -- -- -- boolean failed = false; -- -- for (int retry = 0; retry < PHONE_BOOK_SELECTION_RETRY_COUNTER; retry++) { -- List<WebElement> typeElementList = driver.findElements(By.xpath("//div[@ng-repeat=\"phonebookType in phonebookSelection.summaryPhonebookEntryTypes\"]")); -- failed = false; -- Map<String, WebElement> actualData = new HashMap<>(); -- for (WebElement entriesElement : typeElementList) { -- String typeId = entriesElement.getAttribute("id").replace("phonebookEntryType_", ""); -- // collect all entries for each type (CONTROLCENTER, EMERGENCY) -- actualData.put(typeId, entriesElement); -- } -- -- // loop through what we expect -- for (String typeName : expectedData.keySet()) { -- Assert.assertTrue("matched type must exist", actualData.containsKey(typeName)); -- WebElement entriesElement = actualData.get(typeName); -- for (SummaryEntry summaryEntry : expectedData.get(typeName)) { -- if (summaryEntry.isDisplayed) { -- if (entriesElement.findElements(By.id("phonenumber_label_" + summaryEntry.phonenumber)).size() == 1) { -- WebElement phoneNumberWebElement = entriesElement.findElement(By.id("phonenumber_label_" + summaryEntry.phonenumber)); -- if (!phoneNumberWebElement.getText().trim().equalsIgnoreCase((summaryEntry.phonenumber + " " + summaryEntry.phonenumberName).trim())) { -- LOG.warn("phonebook entry name and number must match, expected: '" + summaryEntry.phonenumber + " " + summaryEntry.phonenumberName + "', " + -- "found: '" + phoneNumberWebElement.getText() + "'"); -- failed = true; -- } -- } else { -- failed = true; -- } -- -- } else { -- if (entriesElement.findElements(By.id("phonenumber_label_" + summaryEntry.phonenumber)).size() > 0) { -- LOG.warn("number " + summaryEntry.phonenumber + " should not displayed"); -- failed = true; -- } -- } -- } -- } -- if (!failed) { -- break; -- } -- try { -- BaseTestTrillian.getWait().until(ExpectedConditions.elementToBeClickable(By.id("menu_phonebook_selection"))).click(); -- Thread.sleep(PHONE_BOOK_SELECTION_RETRY_SLEEP_TIME); -- BaseTestTrillian.getWait().until(ExpectedConditions.elementToBeClickable(By.id("menu_phonebook_summary"))).click(); -- -- } catch (InterruptedException ignore) { -- } -- } -- Assert.assertFalse("Could not find phonebook even after a couple of retries " + -- "(or the selection is not as expected)", failed); -- } --} diff --git a/trillian-test/src/test/java/ch/post/it/paisa/trillian/test/e2e/PhonebookSelectionUiTest.java b/trillian-test/src/test/java/ch/post/it/paisa/trillian/test/e2e/PhonebookSelectionUiTest.java deleted file mode 100644 index abed485..0000000 diff --git a/src/main/paisa-nonslim/patches/vogon.patch b/src/main/paisa-nonslim/patches/vogon.patch index 2628e81..59d631c 100644 --- a/src/main/paisa-nonslim/patches/vogon.patch +++ b/src/main/paisa-nonslim/patches/vogon.patch @@ -2,18 +2,18 @@ --- a/Jenkinsfile +++ b/Jenkinsfile -@@ -9,13 +9,13 @@ serviceBuildPipeline([ +@@ -9,13 +9,13 @@ jslPipeline .checkout() .setBranchVersion() -- .buildMaven([slim: true, spotless: true]) +- .buildMaven([spotless: true]) + .buildMaven([spotless: true]) .withInstances([ instances: [ testInstance: [ services: [ - eagle: [version: '02.01.22.00'], -- platform: [version: '03.06.41.00'], + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], + platform: [version: '${j21.platform.version}'], storage: [version: '00.24.00.00'], vogon: [version: '%currentBranch%'] diff --git a/src/main/paisa-nonslim/patches/vroom.patch b/src/main/paisa-nonslim/patches/vroom.patch new file mode 100644 index 0000000..17b71ee --- /dev/null +++ b/src/main/paisa-nonslim/patches/vroom.patch @@ -0,0 +1,33 @@ + +--- a/Jenkinsfile ++++ b/Jenkinsfile +@@ -10,13 +10,13 @@ + jslPipeline + .checkout() + .setBranchVersion() +- .buildMaven([spotless: true]) ++ .buildMaven([spotless: true]) + .withInstances([ + instances: [ + testInstance: [ + services: [ + eagle: [version: '02.01.26.01-PR-379-SNAPSHOT'], +- platform: [version: '03.06.40.01-PR-388-SNAPSHOT'], ++ platform: [version: '${j21.platform.version}'], + storage: [version: '00.24.00.00'], + vroom: [version: '%currentBranch%'] + ] + + +--- a/vroom-web/pom.xml ++++ b/vroom-web/pom.xml +@@ -58,6 +58,7 @@ + <groupId>io.github.java-native</groupId> + <artifactId>jssc</artifactId> + <version>${java-native.jssc.version}</version> ++ <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.webjars</groupId> + + |