<workflowRun _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.BooleanParameterValue'><name>SKIP_TEST</name><value>false</value></parameter><parameter _class='hudson.model.BooleanParameterValue'><name>SKIP_QUALITY</name><value>false</value></parameter></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Démarré par l'utilisateur Miguel Moquillon</shortDescription><userId>mmoquillon</userId><userName>Miguel Moquillon</userName></cause></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'><environment></environment></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1152</buildNumber><marked><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><branch><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><branch><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><branch><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Jenkins-Pipelines.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginsonarqube _class='hudson.plugins.git.util.Build'><buildNumber>261</buildNumber><marked><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><branch><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><name>refs/remotes/origin/sonarqube</name></branch></marked><revision><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><branch><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><name>refs/remotes/origin/sonarqube</name></branch></revision></refsremotesoriginsonarqube><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1152</buildNumber><marked><SHA1>3230261df7221ec208496c4fc6d493c2bce1ab09</SHA1><branch><SHA1>3230261df7221ec208496c4fc6d493c2bce1ab09</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>3230261df7221ec208496c4fc6d493c2bce1ab09</SHA1><branch><SHA1>3230261df7221ec208496c4fc6d493c2bce1ab09</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>3230261df7221ec208496c4fc6d493c2bce1ab09</SHA1><branch><SHA1>3230261df7221ec208496c4fc6d493c2bce1ab09</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Core</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1152</buildNumber><marked><SHA1>246a7c5f20d80e4b03e946cabecb8c74c671b9dc</SHA1><branch><SHA1>246a7c5f20d80e4b03e946cabecb8c74c671b9dc</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>246a7c5f20d80e4b03e946cabecb8c74c671b9dc</SHA1><branch><SHA1>246a7c5f20d80e4b03e946cabecb8c74c671b9dc</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>246a7c5f20d80e4b03e946cabecb8c74c671b9dc</SHA1><branch><SHA1>246a7c5f20d80e4b03e946cabecb8c74c671b9dc</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Components</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1152</buildNumber><marked><SHA1>42983534eda853f561eb09be5cd5401300124d7a</SHA1><branch><SHA1>42983534eda853f561eb09be5cd5401300124d7a</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>42983534eda853f561eb09be5cd5401300124d7a</SHA1><branch><SHA1>42983534eda853f561eb09be5cd5401300124d7a</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>42983534eda853f561eb09be5cd5401300124d7a</SHA1><branch><SHA1>42983534eda853f561eb09be5cd5401300124d7a</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Looks</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1152</buildNumber><marked><SHA1>e19948115986a9e7647e4e02acfe87c02d4087f3</SHA1><branch><SHA1>e19948115986a9e7647e4e02acfe87c02d4087f3</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>e19948115986a9e7647e4e02acfe87c02d4087f3</SHA1><branch><SHA1>e19948115986a9e7647e4e02acfe87c02d4087f3</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>e19948115986a9e7647e4e02acfe87c02d4087f3</SHA1><branch><SHA1>e19948115986a9e7647e4e02acfe87c02d4087f3</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Setup</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1152</buildNumber><marked><SHA1>80a42db6bb19c41fd065b84d4e1a44a1f558bf8d</SHA1><branch><SHA1>80a42db6bb19c41fd065b84d4e1a44a1f558bf8d</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>80a42db6bb19c41fd065b84d4e1a44a1f558bf8d</SHA1><branch><SHA1>80a42db6bb19c41fd065b84d4e1a44a1f558bf8d</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>80a42db6bb19c41fd065b84d4e1a44a1f558bf8d</SHA1><branch><SHA1>80a42db6bb19c41fd065b84d4e1a44a1f558bf8d</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Distribution</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1152</buildNumber><marked><SHA1>dda9f6bb34fab31a14e1855fa37a11b6ac3262c0</SHA1><branch><SHA1>dda9f6bb34fab31a14e1855fa37a11b6ac3262c0</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>dda9f6bb34fab31a14e1855fa37a11b6ac3262c0</SHA1><branch><SHA1>dda9f6bb34fab31a14e1855fa37a11b6ac3262c0</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>dda9f6bb34fab31a14e1855fa37a11b6ac3262c0</SHA1><branch><SHA1>dda9f6bb34fab31a14e1855fa37a11b6ac3262c0</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Assembly</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://integration.silverpeas.org/jenkins/view/Continuous%20Autodeployment%20Build/job/Silverpeas_Master_AutoDeploy/lastCompletedBuild/artifact</artifactsUrl><changesUrl>https://integration.silverpeas.org/jenkins/view/Continuous%20Autodeployment%20Build/job/Silverpeas_Master_AutoDeploy/changes</changesUrl><displayUrl>https://integration.silverpeas.org/jenkins/view/Continuous%20Autodeployment%20Build/job/Silverpeas_Master_AutoDeploy/lastCompletedBuild/</displayUrl><testsUrl>https://integration.silverpeas.org/jenkins/view/Continuous%20Autodeployment%20Build/job/Silverpeas_Master_AutoDeploy/lastCompletedBuild/testReport</testsUrl></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'><restartEnabled>false</restartEnabled><restartableStage>Prepare the job</restartableStage><restartableStage>Check POM parent version</restartableStage><restartableStage>Checkout projects and check code changes</restartableStage></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'><node _class='org.jenkinsci.plugins.workflow.graph.FlowStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode'></node><node _class='org.jenkinsci.plugins.workflow.graph.FlowEndNode'></node></action><action></action><action></action><building>false</building><displayName>#1152</displayName><duration>49666</duration><estimatedDuration>6050401</estimatedDuration><fullDisplayName>Silverpeas_Master_AutoDeploy #1152</fullDisplayName><id>1152</id><keepLog>false</keepLog><number>1152</number><queueId>60077</queueId><result>FAILURE</result><timestamp>1789749913229</timestamp><url>https://integration.silverpeas.org/jenkins/view/Continuous%20Autodeployment%20Build/job/Silverpeas_Master_AutoDeploy/1152/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pom.xml</affectedPath><commitId>5c2b298957ba0bb6981d51e5ba749e6e34f4c1a9</commitId><timestamp>1789579462000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/devteam</absoluteUrl><fullName>devteam</fullName></author><authorEmail>devteam@silverpeas.net</authorEmail><comment>Update parent POM to version 2.0-build260915
</comment><date>2026-09-16 19:24:22 +0200</date><id>5c2b298957ba0bb6981d51e5ba749e6e34f4c1a9</id><msg>Update parent POM to version 2.0-build260915</msg><path><editType>edit</editType><file>pom.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core-services/pdc/src/integration-test/resources/META-INF/services/test-org.silverpeas.kernel.BeanContainer</affectedPath><affectedPath>core-web/src/main/java/org/silverpeas/core/web/util/viewgenerator/html/NeedWindowTag.java</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/AbstractPdcSubscriptionUserNotification.java</affectedPath><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/pdcSubscriptionPeas/multilang/pdcSubscriptionBundle_de.properties</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/up003/alter_table.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/003/create_table.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/002/create_constraint.sql</affectedPath><affectedPath>core-war/src/main/java/org/silverpeas/web/pdcsubscription/control/PdcSubscriptionData.java</affectedPath><affectedPath>core-services/pdc/src/integration-test/resources/META-INF/test-MANIFEST.MF</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/004/create_table.sql</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/PdcSubscriptionDAO.java</affectedPath><affectedPath>core-war/src/main/java/org/silverpeas/web/pdcsubscription/control/PdcSubscriptionSessionController.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/002/create_table.sql</affectedPath><affectedPath>core-library/src/main/java/org/silverpeas/core/contribution/publication/datereminder/PublicationDateReminderUserNotification.java</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/PdcSubscriptionManager.java</affectedPath><affectedPath>core-services/workflow/src/main/java/org/silverpeas/core/workflow/engine/notification/AbstractReplacementNotificationBuilder.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/up003/alter_table.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/003/create_table.sql</affectedPath><affectedPath>core-web/src/main/java/org/silverpeas/core/web/util/viewgenerator/html/browsebars/BrowseBarElementTag.java</affectedPath><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/pdcSubscriptionPeas/multilang/pdcSubscriptionBundle.properties</affectedPath><affectedPath>core-war/src/main/webapp/pdcPeas/jsp/checkAdvancedSearch.jsp</affectedPath><affectedPath>core-services/pdc/src/test/java/org/silverpeas/core/pdc/subscription/service/DefaultPdcSubscriptionServiceTest.java</affectedPath><affectedPath>core-library/src/main/java/org/silverpeas/core/notification/user/builder/AbstractUserNotificationBuilder.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/003/create_constraint.sql</affectedPath><affectedPath>core-web/src/main/java/org/silverpeas/core/web/sharing/notification/FileSharingUserNotification.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/modules/pdcSubscription-migration.xml</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/PdcSubscriptionInitialization.java</affectedPath><affectedPath>core-web/src/main/resources/META-INF/viewGenerator.tld</affectedPath><affectedPath>core-services/pdc/src/integration-test/resources/org/silverpeas/jobStartPagePeas/settings/jobStartPagePeasSettings.properties</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/002/create_table.sql</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/PdcResourceClassificationUserNotification.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/002/create_constraint.sql</affectedPath><affectedPath>core-war/src/main/webapp/pdcPeas/jsp/pdc.jsp</affectedPath><affectedPath>core-library/src/main/java/org/silverpeas/core/socialnetwork/invitation/AbstractInvitationUserNotification.java</affectedPath><affectedPath>core-war/src/main/java/org/silverpeas/web/subscription/control/SubscriptionSessionController.java</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/model/PdcSubscriptionPositionCriteria.java</affectedPath><affectedPath>core-war/src/main/java/org/silverpeas/web/subscription/servlets/SubscriptionRequestRouter.java</affectedPath><affectedPath>core-war/src/main/java/org/silverpeas/web/pdcsubscription/control/SubscriptionCategoryWebManager.java</affectedPath><affectedPath>core-web/src/main/java/org/silverpeas/core/web/util/viewgenerator/html/browsebars/BrowseBarTag.java</affectedPath><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/pdcSubscriptionPeas/multilang/pdcSubscriptionBundle_fr.properties</affectedPath><affectedPath>core-services/workflow/src/main/java/org/silverpeas/core/workflow/engine/notification/UserNotificationBuilder.java</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/model/PdcSubscription.java</affectedPath><affectedPath>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/check.jsp</affectedPath><affectedPath>core-services/pdc/src/integration-test/java/org/silverpeas/core/pdc/subscription/test/StubbedGroupProvider.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/004/create_constraint.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/003/create_table.sql</affectedPath><affectedPath>core-services/pdc/src/integration-test/java/org/silverpeas/core/pdc/subscription/test/StubbedOrganizationController.java</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/pdc/model/AxisValueCriterion.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/002/create_table.sql</affectedPath><affectedPath>core-services/pdc/src/integration-test/resources/arquillian.xml</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/002/create_table.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/003/create_constraint.sql</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/PdcSubscriptionDeletionUserNotification.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/004/create_table.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/003/create_table.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/003/create_constraint.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/003/create_constraint.sql</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/PdcSubscriptionService.java</affectedPath><affectedPath>core-services/pdc/src/integration-test/java/org/silverpeas/core/pdc/subscription/test/StubbedUserProvider.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/004/create_constraint.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/002/create_constraint.sql</affectedPath><affectedPath>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/subscription.jsp</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/DefaultPdcSubscriptionService.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/002/create_constraint.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/up003/alter_table.sql</affectedPath><affectedPath>core-services/pdc/src/integration-test/java/org/silverpeas/core/pdc/subscription/test/WarBuilder4Pdc.java</affectedPath><affectedPath>core-services/pdc/src/integration-test/java/org/silverpeas/core/pdc/subscription/service/PdcSubscriptionServiceIT.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/004/create_table.sql</affectedPath><affectedPath>core-services/pdc/src/integration-test/resources/org/silverpeas/lookAndFeel/generalLook.properties</affectedPath><affectedPath>core-services/pdc/src/integration-test/resources/create-database.sql</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/004/create_constraint.sql</affectedPath><affectedPath>core-services/comment/src/main/java/org/silverpeas/core/comment/service/CommentUserNotification.java</affectedPath><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/pdcSubscriptionPeas/multilang/pdcSubscriptionBundle_en.properties</affectedPath><affectedPath>core-services/pdc/src/integration-test/resources/org/silverpeas/util/logging/silverpeasLogging.properties</affectedPath><affectedPath>core-war/src/main/webapp/pdcPeas/jsp/checkPdc.jsp</affectedPath><affectedPath>core-web/src/main/java/org/silverpeas/core/web/util/viewgenerator/html/browsebars/BrowseBarLanguageSelectorTag.java</affectedPath><affectedPath>core-library/src/main/java/org/silverpeas/core/calendar/notification/user/AbstractCalendarUserNotificationBuilder.java</affectedPath><affectedPath>core-web/src/main/java/org/silverpeas/core/web/tools/agenda/notification/AgendaUserNotification.java</affectedPath><affectedPath>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/model/PdcSubscriptionConstants.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/004/create_table.sql</affectedPath><affectedPath>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/subscriptionList.jsp</affectedPath><affectedPath>core-war/src/main/webapp/subscription/jsp/subscriptionpanel.jsp</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/up003/alter_table.sql</affectedPath><affectedPath>core-war/src/main/java/org/silverpeas/web/pdcsubscription/servlets/PdcSubscriptionPeasRequestRouter.java</affectedPath><affectedPath>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/004/create_constraint.sql</affectedPath><affectedPath>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/viewSubscriptionsOfCategory.jsp</affectedPath><commitId>497d775d1846f653436ebb77726bb282572deda8</commitId><timestamp>1789726241000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@gmail.com</authorEmail><comment>Feature #15409

The goal of the feature is to allow forced subscriptions on positions
in the PdC for one or more users (and groups of users) and this by an
administrator or by a PdC manager.

The first step was to modernize the concerned JSPs by using both our
custom and Jakarta standard JSTL tags libs. Then it was to carry navigational
contextual information like, for example, in which context the subscriptions
on positions in the PdC have to be managed: either for the user himself
or for several users (forced subscriptions). In the first case the
subscriptions is done in the self subscription window of the user, in the
second case the subscriptions are done through the PdC window in the
backoffice. So, in this way, we can adapt the behavior of the PdC
subscriptions window according to the navigational scope.

The second step was an attempt of reusing and then enhancing a little the
existing PdC subscriptions mechanism (and hence the business and technical
objects).
Unfortunately, it isn't sufficient. The feature requires some important
refactoring and the target of such a refactoring is to reuse the
existing resource subscriptions mechanism.

This is why the subscriptions on the PdC has been refactored so that they
are taken in charge by the subscription API of Silverpeas instead of by
their own mechanism. This is required to bring the forced subscriptions
to the PdC without duplicating what the resource subscriptions already
carry.

A subscription on a position of some axis in the PdC is no more than
defining the criteria on the axis' values of the PdC. When the
classification in the PdC of a contribution matches the criteria, the
subscribed users and groups of users will be notified about any
modification, the deletion or the creation of such a contribution.
Citeria on a position on the axis of the PdC is now reified as a
PdcSubscriptionPositionCriteria, a SubscriptionResource of type PDC
registered into the SubscriptionFactory, and PdcSubscription becomes an
AbstractSubscription on it. SB_PDC_Subscription hence only defines the
criteria of a position; the subscriptions themselves are moved to the
subscribe table, the forced flag giving way to the SELF_CREATION and
FORCED subscription methods. Existing subscriptions are transferred by
the migration script.

As a consequence, groups of users are now supported: the subscribers of
criteria of a position are resolved through the subscription API, which
expands the groups into users. The notifications are therefore built for
several recipients at once and in each of the languages of the platform.

The instance identifier of criteria on a position is set to "-" and not
left empty: the column is non-nullable and Oracle stores an empty string
as a null value. The subscriptions forced from the window of the PdC get
an explicit FORCED method so that a manager subscribing himself doesn't
make his own set of positions drop out of the list.

The window of the PdC gets the edition of a forced subscription with its
subscribers, designated through the user panel.

The forced subscriptions on the PdC are visible to the users concerned
by those subscriptions in their "My subscriptions" personal tool. But,
they won't have to capability of deleting or modifying them, even they
are an administrator or a PdC manager.

A unit test and an integration test has been added to cover the behavior
of the PdC subscriptions.
</comment><date>2026-09-18 12:10:41 +0200</date><id>497d775d1846f653436ebb77726bb282572deda8</id><msg>Feature #15409</msg><path><editType>edit</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/PdcSubscriptionService.java</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/002/create_table.sql</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/004/create_constraint.sql</file></path><path><editType>add</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/PdcSubscriptionInitialization.java</file></path><path><editType>edit</editType><file>core-web/src/main/java/org/silverpeas/core/web/tools/agenda/notification/AgendaUserNotification.java</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/002/create_table.sql</file></path><path><editType>add</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/model/PdcSubscriptionConstants.java</file></path><path><editType>edit</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/AbstractPdcSubscriptionUserNotification.java</file></path><path><editType>edit</editType><file>core-web/src/main/resources/META-INF/viewGenerator.tld</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/004/create_constraint.sql</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/002/create_constraint.sql</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/up003/alter_table.sql</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/resources/META-INF/test-MANIFEST.MF</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/003/create_table.sql</file></path><path><editType>edit</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/pdc/model/AxisValueCriterion.java</file></path><path><editType>edit</editType><file>core-services/workflow/src/main/java/org/silverpeas/core/workflow/engine/notification/AbstractReplacementNotificationBuilder.java</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/002/create_constraint.sql</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/subscription.jsp</file></path><path><editType>edit</editType><file>core-web/src/main/java/org/silverpeas/core/web/util/viewgenerator/html/browsebars/BrowseBarElementTag.java</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/resources/org/silverpeas/lookAndFeel/generalLook.properties</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/002/create_table.sql</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/resources/META-INF/services/test-org.silverpeas.kernel.BeanContainer</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/004/create_table.sql</file></path><path><editType>edit</editType><file>core-library/src/main/java/org/silverpeas/core/notification/user/builder/AbstractUserNotificationBuilder.java</file></path><path><editType>edit</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/DefaultPdcSubscriptionService.java</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/java/org/silverpeas/core/pdc/subscription/test/StubbedUserProvider.java</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/003/create_constraint.sql</file></path><path><editType>edit</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/PdcSubscriptionDeletionUserNotification.java</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/pdcSubscriptionPeas/multilang/pdcSubscriptionBundle.properties</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/pdcPeas/jsp/checkPdc.jsp</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/002/create_table.sql</file></path><path><editType>edit</editType><file>core-web/src/main/java/org/silverpeas/core/web/util/viewgenerator/html/browsebars/BrowseBarTag.java</file></path><path><editType>edit</editType><file>core-library/src/main/java/org/silverpeas/core/contribution/publication/datereminder/PublicationDateReminderUserNotification.java</file></path><path><editType>add</editType><file>core-war/src/main/java/org/silverpeas/web/pdcsubscription/control/PdcSubscriptionData.java</file></path><path><editType>edit</editType><file>core-library/src/main/java/org/silverpeas/core/socialnetwork/invitation/AbstractInvitationUserNotification.java</file></path><path><editType>edit</editType><file>core-war/src/main/java/org/silverpeas/web/subscription/servlets/SubscriptionRequestRouter.java</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/003/create_constraint.sql</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/pdcSubscriptionPeas/multilang/pdcSubscriptionBundle_fr.properties</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/pdcPeas/jsp/pdc.jsp</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/up003/alter_table.sql</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/java/org/silverpeas/core/pdc/subscription/test/StubbedOrganizationController.java</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/java/org/silverpeas/core/pdc/subscription/test/WarBuilder4Pdc.java</file></path><path><editType>edit</editType><file>core-services/comment/src/main/java/org/silverpeas/core/comment/service/CommentUserNotification.java</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/subscription/jsp/subscriptionpanel.jsp</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/003/create_constraint.sql</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/up003/alter_table.sql</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/java/org/silverpeas/core/pdc/subscription/service/PdcSubscriptionServiceIT.java</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/003/create_constraint.sql</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/003/create_table.sql</file></path><path><editType>edit</editType><file>core-web/src/main/java/org/silverpeas/core/web/sharing/notification/FileSharingUserNotification.java</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/002/create_constraint.sql</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/h2/pdcSubscription/002/create_constraint.sql</file></path><path><editType>add</editType><file>core-web/src/main/java/org/silverpeas/core/web/util/viewgenerator/html/browsebars/BrowseBarLanguageSelectorTag.java</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/resources/arquillian.xml</file></path><path><editType>edit</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/model/PdcSubscription.java</file></path><path><editType>edit</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/PdcResourceClassificationUserNotification.java</file></path><path><editType>edit</editType><file>core-war/src/main/java/org/silverpeas/web/pdcsubscription/control/SubscriptionCategoryWebManager.java</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/up003/alter_table.sql</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/check.jsp</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/004/create_table.sql</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/resources/create-database.sql</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/003/create_table.sql</file></path><path><editType>delete</editType><file>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/003/create_table.sql</file></path><path><editType>edit</editType><file>core-war/src/main/java/org/silverpeas/web/pdcsubscription/servlets/PdcSubscriptionPeasRequestRouter.java</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/migrations/modules/pdcSubscription-migration.xml</file></path><path><editType>edit</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/PdcSubscriptionManager.java</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/subscriptionList.jsp</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/004/create_constraint.sql</file></path><path><editType>add</editType><file>core-services/pdc/src/test/java/org/silverpeas/core/pdc/subscription/service/DefaultPdcSubscriptionServiceTest.java</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/pdcSubscriptionPeas/multilang/pdcSubscriptionBundle_de.properties</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/pdcPeas/jsp/checkAdvancedSearch.jsp</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/oracle/pdcSubscription/004/create_constraint.sql</file></path><path><editType>add</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/model/PdcSubscriptionPositionCriteria.java</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/postgresql/pdcSubscription/004/create_table.sql</file></path><path><editType>edit</editType><file>core-web/src/main/java/org/silverpeas/core/web/util/viewgenerator/html/NeedWindowTag.java</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/resources/org/silverpeas/jobStartPagePeas/settings/jobStartPagePeasSettings.properties</file></path><path><editType>edit</editType><file>core-library/src/main/java/org/silverpeas/core/calendar/notification/user/AbstractCalendarUserNotificationBuilder.java</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/pdcSubscriptionPeas/multilang/pdcSubscriptionBundle_en.properties</file></path><path><editType>edit</editType><file>core-services/pdc/src/main/java/org/silverpeas/core/pdc/subscription/service/PdcSubscriptionDAO.java</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/viewSubscriptionsOfCategory.jsp</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/resources/org/silverpeas/util/logging/silverpeasLogging.properties</file></path><path><editType>add</editType><file>core-configuration/src/main/config/migrations/db/mssql/pdcSubscription/004/create_table.sql</file></path><path><editType>edit</editType><file>core-war/src/main/java/org/silverpeas/web/subscription/control/SubscriptionSessionController.java</file></path><path><editType>add</editType><file>core-services/pdc/src/integration-test/java/org/silverpeas/core/pdc/subscription/test/StubbedGroupProvider.java</file></path><path><editType>edit</editType><file>core-services/workflow/src/main/java/org/silverpeas/core/workflow/engine/notification/UserNotificationBuilder.java</file></path><path><editType>edit</editType><file>core-war/src/main/java/org/silverpeas/web/pdcsubscription/control/PdcSubscriptionSessionController.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core-war/src/main/webapp/util/styleSheets/silverpeas-main.css</affectedPath><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/pdcSubscriptionPeas/settings/pdcSubscriptionPeasIcons.properties</affectedPath><affectedPath>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/subscriptionList.jsp</affectedPath><affectedPath>core-war/src/main/webapp/util/icons/create-action/add-subscription.png</affectedPath><commitId>4c36334d6f251c1038ce55e334619d605e61d2c3</commitId><timestamp>1789726241000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@gmail.com</authorEmail><comment>Design details about feature #15409

Just want to personalize the "create action"
And give a differenciation between button final action et secondary (like selected users)
</comment><date>2026-09-18 12:10:41 +0200</date><id>4c36334d6f251c1038ce55e334619d605e61d2c3</id><msg>Design details about feature #15409</msg><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/pdcSubscriptionPeas/settings/pdcSubscriptionPeasIcons.properties</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/subscriptionList.jsp</file></path><path><editType>add</editType><file>core-war/src/main/webapp/util/icons/create-action/add-subscription.png</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/util/styleSheets/silverpeas-main.css</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/jobManagerPeas/multilang/jobManagerPeasBundle_en.properties</affectedPath><affectedPath>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/subscriptionList.jsp</affectedPath><affectedPath>core-war/src/main/java/org/silverpeas/web/jobmanager/control/JobManagerPeasSessionController.java</affectedPath><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/jobManagerPeas/multilang/jobManagerPeasBundle.properties</affectedPath><affectedPath>core-war/src/main/webapp/pdcPeas/jsp/pdc.jsp</affectedPath><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/jobManagerPeas/multilang/jobManagerPeasBundle_de.properties</affectedPath><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/jobManagerPeas/multilang/jobManagerPeasBundle_fr.properties</affectedPath><commitId>9617c05be1c35a46217f136e6e80be9ab7d8ec48</commitId><timestamp>1789726241000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@gmail.com</authorEmail><comment>Feature #15409 Now the PdC forced subscriptions editor is a tab in the
PdC tool of the backoffice.
</comment><date>2026-09-18 12:10:41 +0200</date><id>9617c05be1c35a46217f136e6e80be9ab7d8ec48</id><msg>Feature #15409 Now the PdC forced subscriptions editor is a tab in the</msg><path><editType>edit</editType><file>core-war/src/main/webapp/pdcPeas/jsp/pdc.jsp</file></path><path><editType>edit</editType><file>core-war/src/main/java/org/silverpeas/web/jobmanager/control/JobManagerPeasSessionController.java</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/pdcSubscriptionPeas/jsp/subscriptionList.jsp</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/jobManagerPeas/multilang/jobManagerPeasBundle_de.properties</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/jobManagerPeas/multilang/jobManagerPeasBundle_fr.properties</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/jobManagerPeas/multilang/jobManagerPeasBundle.properties</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/jobManagerPeas/multilang/jobManagerPeasBundle_en.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/notificationManager/settings/notificationManagerSettings.properties</affectedPath><affectedPath>core-api/src/main/java/org/silverpeas/core/notification/sse/SilverpeasServerEventContext.java</affectedPath><affectedPath>core-library/src/test/java/org/silverpeas/core/notification/sse/ServerEventWithWebsocketContextDispatcherTaskTest.java</affectedPath><affectedPath>core-war/src/main/webapp/util/javaScript/silverpeas-layout.js</affectedPath><affectedPath>core-library/src/test/java/org/silverpeas/core/notification/sse/AbstractServerEventDispatcherTaskTest.java</affectedPath><affectedPath>core-api/src/main/java/org/silverpeas/core/notification/sse/SilverpeasWebSocketContext.java</affectedPath><commitId>c65a0f5333619466510c0f95c09091dee569cce4</commitId><timestamp>1789738519000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>In our Intranet running by Silverpeas, we have enabled SSE. But we
caught a lot of warning messages like this one:

```
WARNING [silverpeas.core.notification.sse] (default task-3848) Error org.xnio.channels.ReadTimeoutException: UT000199: Read timed out after 90002 milliseconds. with session 2gev2Q2iCc5yylZs-dA7iE-bvtbrHKhyAvcK1fOy
```

The reason is our SSE is totally silent in client -&gt; server way.

The Silverpeas WebSockets carrying the server events were closed by the WEB
server each time a read inactivity timeout was reached. Contrary to the SSE
communication over HTTP, a client never sends anything over such a WebSocket,
so nothing kept the connection alive: each of them was closed and reopened in
a loop, flooding the logs with read timeout warnings and making the features
relying on the server events flaky.
SilverpeasWebSocketContext implements now sendHeartbeatIfEnabled() by sending
a ping frame. As a client answers such a frame by a pong one, the inbound
traffic it generates refreshes both the timeouts of the WEB server (the
read-timeout of the Undertow listener) and those of any network device
standing between the client and the server. The connections which are
actually broken are detected sooner as well, the context being unregistered
as soon as the ping fails. No new JOB is required: ServerEventJobInitializer
triggers already the heartbeat of every context every
notification.sse.job.trigger seconds (45s by default). This value MUST now be
kept lower than any such timeout, as documented in
notificationManagerSettings.properties.
On the client side, the identifier of the last event received was carried by
the error context of SilverpeasEventSource, which is reinitialized on each
successful (re)connection. The Last-Event-ID parameter was therefore lost as
soon as a reconnection occurred and the events emitted while the client was
disconnected were never sent again. This identifier is kept now by the
context itself.
The heartbeat over a WebSocket is covered by two new unit tests in
ServerEventWithWebSocketContextDispatcherTaskTest.
</comment><date>2026-09-18 15:35:19 +0200</date><id>c65a0f5333619466510c0f95c09091dee569cce4</id><msg>In our Intranet running by Silverpeas, we have enabled SSE. But we</msg><path><editType>edit</editType><file>core-war/src/main/webapp/util/javaScript/silverpeas-layout.js</file></path><path><editType>edit</editType><file>core-api/src/main/java/org/silverpeas/core/notification/sse/SilverpeasServerEventContext.java</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/notificationManager/settings/notificationManagerSettings.properties</file></path><path><editType>edit</editType><file>core-library/src/test/java/org/silverpeas/core/notification/sse/ServerEventWithWebsocketContextDispatcherTaskTest.java</file></path><path><editType>edit</editType><file>core-api/src/main/java/org/silverpeas/core/notification/sse/SilverpeasWebSocketContext.java</file></path><path><editType>edit</editType><file>core-library/src/test/java/org/silverpeas/core/notification/sse/AbstractServerEventDispatcherTaskTest.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core-api/src/main/java/org/silverpeas/core/persistence/jdbc/DBUtil.java</affectedPath><affectedPath>core-library/src/integration-test/java/org/silverpeas/core/util/DBUtilIT.java</affectedPath><commitId>60f25a444b880dc2eae41def010fbc178fa42362</commitId><timestamp>1789747139000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Fix a deadlock in the computation of a new numeric identifier

When a resource was created within a transaction, the computation of its identifier was performed
in a nested transaction (REQUIRES_NEW). With a non-XA datasource such a nested transaction cannot
be reliably isolated from the enclosing one: the lock on the row of the UniqueId table ended up
being held by the enclosing transaction until its completion, whereas a subsequent computation,
getting another connection from the pool, was waiting for that very lock. Neither the JVM (no
cycle of monitors) nor the DBMS (the owner of the lock waiting for nothing) can detect such a
deadlock; it was broken only by the expiration of the transaction timeout, one hour later in the
reported case.

* The computation of the next identifier value is now performed within the transaction of the
  caller: asking for such a value means a resource is being created, and hence the computation is
  part of this creation. Both have to succeed or to fail together. A concurrent computation isn't
  an issue as it is detected by the clause of the update statement and not by an exception, and
  therefore it cannot doom the transaction of the caller.
* The registering of a new identifier name keeps its own transaction: under concurrency, all the
  server processes but one get a primary key violation, and such an expected conflict must not
  doom the transaction of the caller. It occurs only once for a given identifier name in the whole
  life of a Silverpeas instance.
* The JVM-wide lock guarding the computation is removed. Concurrency is already handled by the
  clause of the update statement, exactly as it is between the servers of a cluster. Holding a
  monitor across a database round trip froze every thread of the application needing an identifier
  as soon as the row was locked; a user request was blocked 54 minutes in the reported case.
* The SQLException raised while accessing the UniqueId table isn't swallowed anymore. It was
  interpreted as an identifier name not yet registered, leading to an INSERT violating the primary
  key and logged as a misleading warning, this up to a hundred times per computation. Such a
  failure is now reported with its cause.

Both transactional choices are now documented in the code, as is the expectation of
DBUtilIT#nextUniqueIdNotUpdatedIfRollbackIsPerformed.
</comment><date>2026-09-18 17:58:59 +0200</date><id>60f25a444b880dc2eae41def010fbc178fa42362</id><msg>Fix a deadlock in the computation of a new numeric identifier</msg><path><editType>edit</editType><file>core-api/src/main/java/org/silverpeas/core/persistence/jdbc/DBUtil.java</file></path><path><editType>edit</editType><file>core-library/src/integration-test/java/org/silverpeas/core/util/DBUtilIT.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core-services/workflow/src/main/java/org/silverpeas/core/workflow/engine/instance/ProcessInstanceImpl.java</affectedPath><commitId>3230261df7221ec208496c4fc6d493c2bce1ab09</commitId><timestamp>1789747159000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Stop reporting as an error each non WYSIWYG field of an action form

The check of the WYSIWYG data logged, in its else branch, the error message meant for a field that
cannot be retrieved from the action data. Hence any field whose displayer isn't a WYSIWYG one was
reported as an error: performing a simple workflow action produced a burst of SEVERE traces, one
per field of the form. The condition on the nullity of the field is restored.
</comment><date>2026-09-18 17:59:19 +0200</date><id>3230261df7221ec208496c4fc6d493c2bce1ab09</id><msg>Stop reporting as an error each non WYSIWYG field of an action form</msg><path><editType>edit</editType><file>core-services/workflow/src/main/java/org/silverpeas/core/workflow/engine/instance/ProcessInstanceImpl.java</file></path></item><kind>git</kind></changeSet><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pom.xml</affectedPath><commitId>246a7c5f20d80e4b03e946cabecb8c74c671b9dc</commitId><timestamp>1789579472000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/devteam</absoluteUrl><fullName>devteam</fullName></author><authorEmail>devteam@silverpeas.net</authorEmail><comment>Update parent POM to version 2.0-build260915
</comment><date>2026-09-16 19:24:32 +0200</date><id>246a7c5f20d80e4b03e946cabecb8c74c671b9dc</id><msg>Update parent POM to version 2.0-build260915</msg><path><editType>edit</editType><file>pom.xml</file></path></item><kind>git</kind></changeSet><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pom.xml</affectedPath><commitId>42983534eda853f561eb09be5cd5401300124d7a</commitId><timestamp>1789579481000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/devteam</absoluteUrl><fullName>devteam</fullName></author><authorEmail>devteam@silverpeas.net</authorEmail><comment>Update parent POM to version 2.0-build260915
</comment><date>2026-09-16 19:24:41 +0200</date><id>42983534eda853f561eb09be5cd5401300124d7a</id><msg>Update parent POM to version 2.0-build260915</msg><path><editType>edit</editType><file>pom.xml</file></path></item><kind>git</kind></changeSet><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/resources/default_config.properties</affectedPath><affectedPath>src/main/groovy/org/silverpeas/setup/SilverpeasSetupPlugin.groovy</affectedPath><commitId>ac87b7f88de3f9d8874741da07750dcc1202a666</commitId><timestamp>1789747201000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Add the settings required to validate the pooled connections

* DB_VALIDATION_SQL is computed from DB_SERVERTYPE as the validation query is database system
  dependent: SELECT 1 for MSSQL, PostgreSQL and H2, SELECT 1 FROM DUAL for Oracle.
* DB_VALIDATION_INTERVAL defines the period, in milliseconds, at which the connections are
  validated in background. It defaults to 60000.

Both settings are expected by the silverpeas-ds.cli script of Silverpeas-Distribution.
</comment><date>2026-09-18 18:00:01 +0200</date><id>ac87b7f88de3f9d8874741da07750dcc1202a666</id><msg>Add the settings required to validate the pooled connections</msg><path><editType>edit</editType><file>src/main/resources/default_config.properties</file></path><path><editType>edit</editType><file>src/main/groovy/org/silverpeas/setup/SilverpeasSetupPlugin.groovy</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/resources/default_config.properties</affectedPath><affectedPath>src/main/groovy/org/silverpeas/setup/construction/SilverpeasBuilder.groovy</affectedPath><affectedPath>src/main/groovy/org/silverpeas/setup/configuration/JBossConfigurationTask.groovy</affectedPath><affectedPath>src/main/groovy/org/silverpeas/setup/SilverpeasSetupPlugin.groovy</affectedPath><commitId>ed5ef4f44af82752151cfb2410004ccba7494386</commitId><timestamp>1789748452000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Support the Microsoft JDBC driver and the encryption of the database connections

The jTDS driver is replaced by the Microsoft one for SQL Server. The name of the driver being
hardcoded in the installer to identify its jar among the delivered bundles, it is updated both in
the extraction of the software bundles and in the deployment of the driver into Wildfly. The URL
of the connections to SQL Server is rewritten accordingly: the database is now designated by the
databaseName parameter and no more by the path of the URL.

Because the Microsoft driver expects an encrypted connection since its version 10 whereas jTDS
never encrypted anything, the encryption has to be explicitly set, otherwise any installation
whose SQL Server has no trusted certificate would stop working. Instead of hardcoding it, two
settings are introduced:
* DB_ENCRYPT requires the connections to the database to be encrypted. It is supported for MSSQL,
  POSTGRESQL and, in server mode only, H2. It isn't supported for ORACLE in which the encryption
  is configured by the Oracle Net settings of the client and not by the connection URL. When it is
  false, nothing is required from the server but SQL Server, for the reason above; in particular
  PostgreSQL keeps its own default, in which an encrypted connection is tried first and a plain
  one is used if the server doesn't support the encryption. Disabling it explicitly would be a
  regression for the installations that are silently encrypted today.
* DB_ENCRYPT_TRUST_SERVER_CERT accepts the certificate of the server without validating it, for
  the installations willing to encrypt their connections without any PKI. The traffic is then
  protected from eavesdropping but the identity of the server isn't checked.

The parameter sendStringParametersAsUnicode=false is kept and now documented: without it the
varchar parameters are sent as nvarchar ones and SQL Server stops using the indexes on the varchar
columns.
</comment><date>2026-09-18 18:20:52 +0200</date><id>ed5ef4f44af82752151cfb2410004ccba7494386</id><msg>Support the Microsoft JDBC driver and the encryption of the database connections</msg><path><editType>edit</editType><file>src/main/groovy/org/silverpeas/setup/SilverpeasSetupPlugin.groovy</file></path><path><editType>edit</editType><file>src/main/resources/default_config.properties</file></path><path><editType>edit</editType><file>src/main/groovy/org/silverpeas/setup/construction/SilverpeasBuilder.groovy</file></path><path><editType>edit</editType><file>src/main/groovy/org/silverpeas/setup/configuration/JBossConfigurationTask.groovy</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/test/groovy/org/silverpeas/setup/configuration/SilverpeasConfigurationTaskTest.groovy</affectedPath><commitId>98a1cad5cee79c1d35d76519d54ee36280a7be73</commitId><timestamp>1789749735000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Fix the flakiness of SilverpeasConfigurationTaskTest

Beside the expected value of each configured parameter, the test asserted the value had changed.
But the configuration is applied in place, on the resources of the build directory, and hence a
subsequent execution of the test found them already configured: the value didn't change anymore
and the assertion failed whereas the configuration did work. The test was then failing one
execution out of two.

All the assertions on the change of a value are removed; the ones on the expected value are enough
to check the configuration has been applied, and they are idempotent. The assertions comparing a
value of the configuration before and after by equality are kept as they check a value is left
unchanged, which isn't sensitive to the issue. A comment explains why such assertions must not be
reintroduced.
</comment><date>2026-09-18 18:42:15 +0200</date><id>98a1cad5cee79c1d35d76519d54ee36280a7be73</id><msg>Fix the flakiness of SilverpeasConfigurationTaskTest</msg><path><editType>edit</editType><file>src/test/groovy/org/silverpeas/setup/configuration/SilverpeasConfigurationTaskTest.groovy</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/groovy/org/silverpeas/setup/SilverpeasSetupPlugin.groovy</affectedPath><commitId>e19948115986a9e7647e4e02acfe87c02d4087f3</commitId><timestamp>1789749756000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Remove the computation of the connection URL to the database of the JCR

Since the JCR is managed by Oak and its data stored by default into the filesystem by a segment
node store, it has no database of its own anymore. The JCR_NAME setting from which the JCR_URL one
was computed isn't documented anymore in the configuration of Silverpeas, and no code is consuming
JCR_URL but the migration from a JCR managed by Jackrabbit 2, in which the data were stored into
the database of Silverpeas itself.
</comment><date>2026-09-18 18:42:36 +0200</date><id>e19948115986a9e7647e4e02acfe87c02d4087f3</id><msg>Remove the computation of the connection URL to the database of the JCR</msg><path><editType>edit</editType><file>src/main/groovy/org/silverpeas/setup/SilverpeasSetupPlugin.groovy</file></path></item><kind>git</kind></changeSet><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/dist/configuration/sample_config.properties</affectedPath><affectedPath>src/main/dist/configuration/jboss/silverpeas-ds.cli</affectedPath><commitId>87963b2fe56552b7391c523be96ea7d93aa412db</commitId><timestamp>1789747237000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Validate in background the connections of the Silverpeas datasource

* The connections of the pool are now validated in background so that the dead or the stale ones
  are evicted instead of being handed over to the application. Nothing detected them until now.
* The connections aren't pooled by user anymore: Silverpeas accesses its datasource with a single
  and fixed credential, and allow-multiple-users made the connection manager use a pooling
  strategy by subject that is both useless here and far less exercised.
* The new DB_VALIDATION_INTERVAL setting is documented in the sample configuration.

Requires a version of Silverpeas-Setup in which DB_VALIDATION_SQL and DB_VALIDATION_INTERVAL are
defined, otherwise the configuration fails on the unresolved variables of the CLI script.
</comment><date>2026-09-18 18:00:37 +0200</date><id>87963b2fe56552b7391c523be96ea7d93aa412db</id><msg>Validate in background the connections of the Silverpeas datasource</msg><path><editType>edit</editType><file>src/main/dist/configuration/sample_config.properties</file></path><path><editType>edit</editType><file>src/main/dist/configuration/jboss/silverpeas-ds.cli</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/dist/configuration/sample_config.properties</affectedPath><commitId>074c9fef71e4f5bb792dcacef25e9ef2f39634da</commitId><timestamp>1789748468000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Document the settings about the encryption of the database connections

DB_ENCRYPT and DB_ENCRYPT_TRUST_SERVER_CERT are added to the sample configuration, with the
database systems for which they are supported. Requires the version of Silverpeas-Setup defining
them.
</comment><date>2026-09-18 18:21:08 +0200</date><id>074c9fef71e4f5bb792dcacef25e9ef2f39634da</id><msg>Document the settings about the encryption of the database connections</msg><path><editType>edit</editType><file>src/main/dist/configuration/sample_config.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/dist/configuration/silverpeas/01-jcrSettings.groovy</affectedPath><commitId>80a42db6bb19c41fd065b84d4e1a44a1f558bf8d</commitId><timestamp>1789749778000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Use the database of Silverpeas to migrate a JCR managed by Jackrabbit 2

The JCR_URL, JCR_USER and JCR_PASSWORD settings, from which the access to the database of a JCR
managed by Jackrabbit 2 was figured out, aren't supported anymore: the JCR is now managed by Oak
and it has no database of its own. The data of such a JCR were stored into the database of
Silverpeas, and hence its own settings are now used directly.
</comment><date>2026-09-18 18:42:58 +0200</date><id>80a42db6bb19c41fd065b84d4e1a44a1f558bf8d</id><msg>Use the database of Silverpeas to migrate a JCR managed by Jackrabbit 2</msg><path><editType>edit</editType><file>src/main/dist/configuration/silverpeas/01-jcrSettings.groovy</file></path></item><kind>git</kind></changeSet><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pom.xml</affectedPath><commitId>18f24eaf70fc17fb0673bfcb005556c02f8aaea5</commitId><timestamp>1789579490000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/devteam</absoluteUrl><fullName>devteam</fullName></author><authorEmail>devteam@silverpeas.net</authorEmail><comment>Update parent POM to version 2.0-build260915
</comment><date>2026-09-16 19:24:50 +0200</date><id>18f24eaf70fc17fb0673bfcb005556c02f8aaea5</id><msg>Update parent POM to version 2.0-build260915</msg><path><editType>edit</editType><file>pom.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pom.xml</affectedPath><commitId>dda9f6bb34fab31a14e1855fa37a11b6ac3262c0</commitId><timestamp>1789748435000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Deliver the Microsoft JDBC driver instead of the jTDS one

The version of jTDS isn't managed anymore by silverpeas-dependencies-bom, in which it has been
replaced by com.microsoft.sqlserver:mssql-jdbc. Requires that version of the BOM to build.
</comment><date>2026-09-18 18:20:35 +0200</date><id>dda9f6bb34fab31a14e1855fa37a11b6ac3262c0</id><msg>Deliver the Microsoft JDBC driver instead of the jTDS one</msg><path><editType>edit</editType><file>pom.xml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://integration.silverpeas.org/jenkins/user/devteam</absoluteUrl><description></description><fullName>devteam</fullName><id>devteam</id></culprit><culprit><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><description></description><fullName>Miguel Moquillon</fullName><id>mmoquillon</id></culprit><inProgress>false</inProgress><previousBuild><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Lancé par une alarme périodique</shortDescription></cause></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.BooleanParameterValue'><name>SKIP_TEST</name><value>false</value></parameter><parameter _class='hudson.model.BooleanParameterValue'><name>SKIP_QUALITY</name><value>false</value></parameter></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1151</buildNumber><marked><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><branch><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><branch><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><branch><SHA1>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Jenkins-Pipelines.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginsonarqube _class='hudson.plugins.git.util.Build'><buildNumber>261</buildNumber><marked><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><branch><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><name>refs/remotes/origin/sonarqube</name></branch></marked><revision><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><branch><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><name>refs/remotes/origin/sonarqube</name></branch></revision></refsremotesoriginsonarqube><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1151</buildNumber><marked><SHA1>5fb70a715400cc7fc46144673d0865862fcf6527</SHA1><branch><SHA1>5fb70a715400cc7fc46144673d0865862fcf6527</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>5fb70a715400cc7fc46144673d0865862fcf6527</SHA1><branch><SHA1>5fb70a715400cc7fc46144673d0865862fcf6527</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>5fb70a715400cc7fc46144673d0865862fcf6527</SHA1><branch><SHA1>5fb70a715400cc7fc46144673d0865862fcf6527</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Core</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1151</buildNumber><marked><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><branch><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><branch><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><branch><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Components</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1151</buildNumber><marked><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><branch><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><branch><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><branch><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Looks</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1151</buildNumber><marked><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><branch><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><branch><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><branch><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Setup</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1151</buildNumber><marked><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><branch><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><branch><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><branch><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Distribution</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1151</buildNumber><marked><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><branch><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><branch><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><branch><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Assembly</remoteUrl><scmName></scmName></action><action></action><action _class='hudson.plugins.sonar.action.SonarAnalysisAction'><ceTaskId>AaCrm47vqLa76v--XRTI</ceTaskId><installationName>Silverpeas SonarCloud</installationName><installationUrl>https://sonarcloud.io</installationUrl><new>true</new><serverUrl>https://sonarcloud.io</serverUrl><skipped>false</skipped><sonarqubeDashboardUrl>https://sonarcloud.io/dashboard?id=Silverpeas_Silverpeas-Core2&amp;branch=master</sonarqubeDashboardUrl></action><action></action><action></action><action _class='hudson.plugins.sonar.action.SonarAnalysisAction'><ceTaskId>AaCrvqPIukh13LWwuj7P</ceTaskId><installationName>Silverpeas SonarCloud</installationName><installationUrl>https://sonarcloud.io</installationUrl><new>true</new><serverUrl>https://sonarcloud.io</serverUrl><skipped>false</skipped><sonarqubeDashboardUrl>https://sonarcloud.io/dashboard?id=Silverpeas_Silverpeas-Components&amp;branch=master</sonarqubeDashboardUrl></action><action></action><action></action><action _class='hudson.plugins.sonar.action.SonarAnalysisAction'><ceTaskId>AaCrwcAfNzP1HlrUVeJs</ceTaskId><installationName>Silverpeas SonarCloud</installationName><installationUrl>https://sonarcloud.io</installationUrl><new>true</new><serverUrl>https://sonarcloud.io</serverUrl><skipped>false</skipped><sonarqubeDashboardUrl>https://sonarcloud.io/dashboard?id=Silverpeas_Silverpeas-Looks&amp;branch=master</sonarqubeDashboardUrl></action><action></action><action></action><action></action><action></action><action></action><action></action><action _class='hudson.plugins.sonar.action.SonarBuildBadgeAction'></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><artifact><displayPath>build.yaml</displayPath><fileName>build.yaml</fileName><relativePath>target/build.yaml</relativePath></artifact><building>false</building><displayName>6.5-build260916</displayName><duration>9179707</duration><estimatedDuration>6050401</estimatedDuration><fullDisplayName>Silverpeas_Master_AutoDeploy 6.5-build260916</fullDisplayName><id>1151</id><keepLog>false</keepLog><number>1151</number><queueId>59873</queueId><result>SUCCESS</result><timestamp>1789579440656</timestamp><url>https://integration.silverpeas.org/jenkins/view/Continuous%20Autodeployment%20Build/job/Silverpeas_Master_AutoDeploy/1151/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/releases/silverpeas-doc/Jenkinsfile</affectedPath><commitId>f64daadcc7bd085a2b858d8a925881e34c73162e</commitId><timestamp>1788856387000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Publish the documentation of the REST API and guard it against silent failures

The specification of the REST API is produced by the resolve goal of Swagger,
bound to the compile phase and forking no compilation, so the site lifecycle
alone would publish a page without any specification. Each project therefore
gets a dedicated step running the default lifecycle before the site one, on its
own documentation module.

The generation is silent about its own failures: it reports a success even when
it produces nothing, and an incomplete documentation would be published
unnoticed. Two checks now stand in the way:

  * checkRestApiDoc fails the build when a specification declares fewer paths
    than expected, currently 150 for Core and 60 for the applications;
  * checkCommonResponses compares the specifications with each other. The
    response common to every endpoint is brought by the CommonResponsesFilter
    class of Swagger, of which each project has its own copy, so the check
    fails both when an operation has lost that response and when the copies have
    drifted apart and word it differently.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</comment><date>2026-09-08 10:33:07 +0200</date><id>f64daadcc7bd085a2b858d8a925881e34c73162e</id><msg>Publish the documentation of the REST API and guard it against silent failures</msg><path><editType>edit</editType><file>src/releases/silverpeas-doc/Jenkinsfile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/releases/silverpeas-doc/Jenkinsfile</affectedPath><commitId>f8d46a4f391399737486d50523ff3627cf1860cd</commitId><timestamp>1789470418000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Check the documentation of the REST API declares an info section and summarizes

The published specification lacked the info section OpenAPI requires, and the
check didn't notice: it was counting the paths only. A renderer displays nothing
at all of such a document, so this is as bad a failure as an empty one.

The count of the operations carrying a summary is checked as well. None of the
tools reads the javadoc, hence an operation without any summary means the scan
has run over artefacts built out of the branch being documented -- a mistake the
more likely as the projects of a same machine share one local Maven repository.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</comment><date>2026-09-15 13:06:58 +0200</date><id>f8d46a4f391399737486d50523ff3627cf1860cd</id><msg>Check the documentation of the REST API declares an info section and summarizes</msg><path><editType>edit</editType><file>src/releases/silverpeas-doc/Jenkinsfile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/releases/silverpeas-doc/Jenkinsfile</affectedPath><commitId>e3e30163f69964e794525f171a36018c0bcc1e8a</commitId><timestamp>1789480465000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Word the check of the common responses after the merge of the filter

The class bringing the response common to every endpoint used to be duplicated
in each project, and the check was watching the copies for a drift. It now comes
from core-rs, so what the check guards against is a project documented against
another version of that class than the one being released.

Co-Authored-By: Claude Opus 5 &lt;noreply@anthropic.com&gt;
</comment><date>2026-09-15 15:54:25 +0200</date><id>e3e30163f69964e794525f171a36018c0bcc1e8a</id><msg>Word the check of the common responses after the merge of the filter</msg><path><editType>edit</editType><file>src/releases/silverpeas-doc/Jenkinsfile</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/releases/docker-build/Jenkinsfile</affectedPath><commitId>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</commitId><timestamp>1789485078000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Fix shell bad syntax
</comment><date>2026-09-15 17:11:18 +0200</date><id>c8dc7ef50e04c1b811eb42acbb89b17d98f982d7</id><msg>Fix shell bad syntax</msg><path><editType>edit</editType><file>src/releases/docker-build/Jenkinsfile</file></path></item><kind>git</kind></changeSet><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core-library/src/test/resources/org/silverpeas/index/search/searchEngineSettings.properties</affectedPath><affectedPath>core-library/src/test/java/org/silverpeas/core/index/indexing/model/LastUpdateDateSearchTest.java</affectedPath><affectedPath>core-library/src/main/java/org/silverpeas/core/contribution/content/wysiwyg/service/WysiwygController.java</affectedPath><affectedPath>core-library/src/main/java/org/silverpeas/core/calendar/ical4j/ICal4JExporter.java</affectedPath><affectedPath>core-library/src/test/java/org/silverpeas/core/node/service/NodeIndexationTest.java</affectedPath><affectedPath>core-library/src/test/java/org/silverpeas/core/contribution/attachment/SimpleDocumentIndexationTest.java</affectedPath><affectedPath>core-library/src/main/java/org/silverpeas/core/node/service/DefaultNodeService.java</affectedPath><affectedPath>core-library/src/main/java/org/silverpeas/core/contribution/attachment/SimpleDocumentService.java</affectedPath><affectedPath>core-library/src/main/java/org/silverpeas/core/contribution/content/wysiwyg/service/WysiwygManager.java</affectedPath><commitId>c21cb7a91fd337b57515c483512cbb6c18b57216</commitId><timestamp>1789390191000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Fix bug #15369. In fact, the last modification date of a document
(whatever it is, WYSIWYG or attachments for example), isn't indexed. Now
any documents have their modification data (date and author) indexed
when they have been modified.
Some unit tests are added to validate the bug and its fix.

ICal4JExporterTest fails if executed after ICal4JImporterTest because
the option iCal4J Outlook (KEY_OUTLOOK_COMPATIBILITY) has been enabled.
But, in the export, this option should be unset and the default line
feed should be used. This is done now with the
FoldingWriter.REDUCED_FOLD_LENGTH parameter.
</comment><date>2026-09-14 14:49:51 +0200</date><id>c21cb7a91fd337b57515c483512cbb6c18b57216</id><msg>Fix bug #15369. In fact, the last modification date of a document</msg><path><editType>edit</editType><file>core-library/src/main/java/org/silverpeas/core/contribution/content/wysiwyg/service/WysiwygManager.java</file></path><path><editType>edit</editType><file>core-library/src/main/java/org/silverpeas/core/contribution/attachment/SimpleDocumentService.java</file></path><path><editType>edit</editType><file>core-library/src/main/java/org/silverpeas/core/calendar/ical4j/ICal4JExporter.java</file></path><path><editType>add</editType><file>core-library/src/test/java/org/silverpeas/core/contribution/attachment/SimpleDocumentIndexationTest.java</file></path><path><editType>add</editType><file>core-library/src/test/resources/org/silverpeas/index/search/searchEngineSettings.properties</file></path><path><editType>add</editType><file>core-library/src/test/java/org/silverpeas/core/node/service/NodeIndexationTest.java</file></path><path><editType>edit</editType><file>core-library/src/main/java/org/silverpeas/core/node/service/DefaultNodeService.java</file></path><path><editType>add</editType><file>core-library/src/test/java/org/silverpeas/core/index/indexing/model/LastUpdateDateSearchTest.java</file></path><path><editType>edit</editType><file>core-library/src/main/java/org/silverpeas/core/contribution/content/wysiwyg/service/WysiwygController.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core-web/src/main/java/org/silverpeas/core/web/filter/IFrameChecker.java</affectedPath><affectedPath>core-library/src/test/java/org/silverpeas/core/index/indexing/model/LastUpdateDateSearchTest.java</affectedPath><affectedPath>core-web/src/test/resources/org/silverpeas/util/security.properties</affectedPath><affectedPath>core-war/src/main/webapp/WEB-INF/tags/silverpeas/util/displayExternalIframe.tag</affectedPath><affectedPath>core-web/src/integration-test/java/org/silverpeas/core/web/filter/MassiveWebSecurityFilterIT.java</affectedPath><affectedPath>core-web/src/main/java/org/silverpeas/core/web/filter/MassiveWebSecurityFilter.java</affectedPath><affectedPath>core-web/src/integration-test/resources/org/silverpeas/util/security.properties</affectedPath><affectedPath>core-api/src/main/java/org/silverpeas/core/util/security/SecuritySettings.java</affectedPath><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/util/security.properties</affectedPath><affectedPath>core-web/src/test/java/org/silverpeas/core/web/filter/IFrameCheckerTest.java</affectedPath><commitId>b997b332e28209735d876807a5b8fe31e1a9eb29</commitId><timestamp>1789390191000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Fix bug #15431

Allow iframes in the data sent to Silverpeas when they refer trusted sources
MassiveWebSecurityFilter no longer blocks every iframe. An iframe is now allowed
if its single src attribute refers either:
- an HTTPS URL whose host is the Silverpeas server or one of the hosts set in
  the new security.external.iframe.hosts.allowed property, or
- a relative URL within the Silverpeas application, without any path
  traversal attempt (even encoded).
Any iframe that cannot be strictly parsed, or that has a srcdoc attribute,
is still rejected.
The JSON bodies of requests are now decoded before the injection checks, so
that they are done on the text as it will be taken by Silverpeas.
The iframe checking is done by the new IFrameChecker class, covered by unit
tests. MassiveWebSecurityFilterIT is also completed.
</comment><date>2026-09-14 14:49:51 +0200</date><id>b997b332e28209735d876807a5b8fe31e1a9eb29</id><msg>Fix bug #15431</msg><path><editType>add</editType><file>core-web/src/test/java/org/silverpeas/core/web/filter/IFrameCheckerTest.java</file></path><path><editType>edit</editType><file>core-web/src/integration-test/resources/org/silverpeas/util/security.properties</file></path><path><editType>edit</editType><file>core-web/src/test/resources/org/silverpeas/util/security.properties</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/WEB-INF/tags/silverpeas/util/displayExternalIframe.tag</file></path><path><editType>edit</editType><file>core-api/src/main/java/org/silverpeas/core/util/security/SecuritySettings.java</file></path><path><editType>add</editType><file>core-web/src/main/java/org/silverpeas/core/web/filter/IFrameChecker.java</file></path><path><editType>edit</editType><file>core-library/src/test/java/org/silverpeas/core/index/indexing/model/LastUpdateDateSearchTest.java</file></path><path><editType>edit</editType><file>core-web/src/integration-test/java/org/silverpeas/core/web/filter/MassiveWebSecurityFilterIT.java</file></path><path><editType>edit</editType><file>core-web/src/main/java/org/silverpeas/core/web/filter/MassiveWebSecurityFilter.java</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/util/security.properties</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CLAUDE.md</affectedPath><commitId>5fb70a715400cc7fc46144673d0865862fcf6527</commitId><timestamp>1789576644000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Update Claude.md with more recent info about the project
</comment><date>2026-09-16 18:37:24 +0200</date><id>5fb70a715400cc7fc46144673d0865862fcf6527</id><msg>Update Claude.md with more recent info about the project</msg><path><editType>edit</editType><file>CLAUDE.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></culprit><inProgress>false</inProgress><nextBuild><number>1152</number><url>https://integration.silverpeas.org/jenkins/view/Continuous%20Autodeployment%20Build/job/Silverpeas_Master_AutoDeploy/1152/</url></nextBuild><previousBuild><number>1150</number><url>https://integration.silverpeas.org/jenkins/view/Continuous%20Autodeployment%20Build/job/Silverpeas_Master_AutoDeploy/1150/</url></previousBuild></previousBuild></workflowRun>