From 7f36c405cb5c1878f9b47798e18a7284abfc6514 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Fri, 17 Oct 2025 16:50:21 +0200 Subject: [PATCH 01/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/ApplicationDetailBean.java | 19 ++++++------- .../application/PmvDetailBean.java | 18 ++++++------ .../application/model/LibSpecification.java | 28 +++++++++---------- .../application/model/ProcessModel.java | 20 ++++++------- .../model/ProcessModelVersion.java | 25 ++++++++--------- .../deployment/DeployOptions.java | 24 ---------------- .../deployment/DeploymentBean.java | 1 - 7 files changed, 51 insertions(+), 84 deletions(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationDetailBean.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationDetailBean.java index 08259d32e..0bd560d51 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationDetailBean.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationDetailBean.java @@ -5,7 +5,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; @@ -21,8 +20,6 @@ import ch.ivyteam.enginecockpit.security.model.SecuritySystem; import ch.ivyteam.enginecockpit.system.ManagerBean; import ch.ivyteam.ivy.application.IApplication; -import ch.ivyteam.ivy.application.ILibrary; -import ch.ivyteam.ivy.application.IProcessModelVersion; import ch.ivyteam.ivy.application.restricted.IApplicationInternal; import ch.ivyteam.ivy.environment.Ivy; import ch.ivyteam.ivy.workflow.StandardProcessType; @@ -152,14 +149,14 @@ private List availableStandardProcesses(ConfigProperty config) { private static List librariesOf(IApplication app) { List libs = new LinkedList<>(); libs.add(""); - var available = app.getProcessModels().stream() - .flatMap(pm -> pm.getProcessModelVersions().stream()) - .map(IProcessModelVersion::getLibrary) - .filter(Objects::nonNull) - .map(ILibrary::getId) - .distinct() - .collect(Collectors.toList()); - libs.addAll(available); + // var available = app.getProcessModels().stream() + // .flatMap(pm -> pm.getProcessModelVersions().stream()) + // .map(IProcessModelVersion::getLibrary) + // .filter(Objects::nonNull) + // .map(ILibrary::getId) + // .distinct() + // .collect(Collectors.toList()); + // libs.addAll(available); return libs; } } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java index 999bf6214..43163fbd1 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java @@ -12,8 +12,8 @@ import ch.ivyteam.enginecockpit.application.model.ProcessModelVersion; import ch.ivyteam.enginecockpit.commons.ResponseHelper; import ch.ivyteam.enginecockpit.system.ManagerBean; -import ch.ivyteam.ivy.application.restricted.IApplicationConfigurationManager; import ch.ivyteam.ivy.application.ProcessModelVersionRelation; +import ch.ivyteam.ivy.application.restricted.IApplicationConfigurationManager; @ManagedBean @ViewScoped @@ -89,14 +89,14 @@ public void onload() { requriedPmvs = iPmv.getAllRelatedProcessModelVersions(ProcessModelVersionRelation.REQUIRED).stream() .map(ProcessModelVersion::new) .collect(Collectors.toList()); - var library = iPmv.getLibrary(); - if (library == null) { - return; - } - deployedProject = library.getId(); - requiredSpecifications = library.getRequiredLibrarySpecifications().stream() - .map(LibSpecification::new) - .collect(Collectors.toList()); + // var library = iPmv.getLibrary(); + // if (library == null) { + // return; + // } + // deployedProject = library.getId(); + // requiredSpecifications = library.getRequiredLibrarySpecifications().stream() + // .map(LibSpecification::new) + // .collect(Collectors.toList()); } public ProcessModelVersion getPmv() { diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/LibSpecification.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/LibSpecification.java index a242e6876..0b0f8e5ef 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/LibSpecification.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/LibSpecification.java @@ -1,27 +1,25 @@ package ch.ivyteam.enginecockpit.application.model; -import ch.ivyteam.ivy.application.ILibrarySpecification; -import ch.ivyteam.ivy.application.value.VersionRange; import ch.ivyteam.ivy.environment.Ivy; public class LibSpecification { - private final String id; - private final boolean resolved; - private final String version; + private String id; + private boolean resolved; + private String version; private ProcessModelVersion resolvedPmv; private String resolvedPmvName; - public LibSpecification(ILibrarySpecification spec) { - id = spec.getId(); - resolved = spec.isResolved(); - version = VersionRange.of(spec).toString(); - var resolvedLib = spec.getResolvedLibrary(); - if (resolvedLib != null) { - resolvedPmv = new ProcessModelVersion(resolvedLib.getProcessModelVersion()); - resolvedPmvName = resolvedPmv.getName() + " (" + resolvedPmv.getQualifiedVersion() + " / " + - resolvedPmv.getState().getOperation() + " / " + resolvedPmv.getState().getReleaseState() + ")"; - } + public LibSpecification() { + // id = spec.getId(); + // resolved = spec.isResolved(); + // version = VersionRange.of(spec).toString(); + // var resolvedLib = spec.getResolvedLibrary(); + // if (resolvedLib != null) { + // resolvedPmv = new ProcessModelVersion(resolvedLib.getProcessModelVersion()); + // resolvedPmvName = resolvedPmv.getName() + " (" + resolvedPmv.getQualifiedVersion() + " / " + + // resolvedPmv.getState().getOperation() + " / " + resolvedPmv.getState().getReleaseState() + ")"; + // } } public String getId() { diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java index 43939ef9c..763bb682a 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java @@ -1,12 +1,9 @@ package ch.ivyteam.enginecockpit.application.model; import java.util.List; -import java.util.Objects; import ch.ivyteam.enginecockpit.application.ApplicationBean; -import ch.ivyteam.ivy.application.ILibrary; import ch.ivyteam.ivy.application.IProcessModel; -import ch.ivyteam.ivy.application.IProcessModelVersion; import ch.ivyteam.ivy.application.restricted.IApplicationInternal; import ch.ivyteam.ivy.environment.Ivy; import ch.ivyteam.ivy.workflow.IWorkflowContext; @@ -92,14 +89,15 @@ public String getWarningMessageForNoReleasedPmv() { public boolean isOverrideProject() { if (isOverrideProject == null) { var overrideProject = ((IApplicationInternal) pm.getApplication()).getConfiguration().getOrDefault("OverrideProject"); - var projectId = pm.getProcessModelVersions().stream() - .map(IProcessModelVersion::getLibrary) - .filter(Objects::nonNull) - .map(ILibrary::getId) - .distinct() - .findFirst() - .orElse(null); - isOverrideProject = projectId != null && projectId.equals(overrideProject); + // var projectId = pm.getProcessModelVersions().stream() + // .map(IProcessModelVersion::getLibrary) + // .filter(Objects::nonNull) + // .map(ILibrary::getId) + // .distinct() + // .findFirst() + // .orElse(null); + // var projectId = null; + isOverrideProject = null;// projectId != null && projectId.equals(overrideProject); } return isOverrideProject; } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java index 01688a7c2..9ab9b21db 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java @@ -4,11 +4,10 @@ import ch.ivyteam.enginecockpit.application.ApplicationBean; import ch.ivyteam.enginecockpit.util.DateUtil; -import ch.ivyteam.ivy.application.ILibrary; import ch.ivyteam.ivy.application.IProcessModelVersion; +import ch.ivyteam.ivy.application.ReleaseState; import ch.ivyteam.ivy.application.restricted.IProcessModelVersionInternal; import ch.ivyteam.ivy.environment.Ivy; -import ch.ivyteam.ivy.application.ReleaseState; import ch.ivyteam.ivy.workflow.IWorkflowContext; public class ProcessModelVersion extends AbstractActivity { @@ -24,7 +23,7 @@ public ProcessModelVersion(IProcessModelVersion pmv) { public ProcessModelVersion(IProcessModelVersion pmv, ApplicationBean bean) { super(pmv.getVersionName(), pmv.getId(), pmv, bean); - lib = new Library(pmv.getLibrary()); + lib = new Library(); lastChangeDate = DateUtil.formatDate(pmv.getLastChangeDate()); this.pmv = (IProcessModelVersionInternal) pmv; updateStats(); @@ -141,16 +140,16 @@ private void countRunningCases() { } private static class Library { - private String id = "Unknown id"; - private String version = "Unknown version"; - private boolean resolved = false; - - private Library(ILibrary lib) { - if (lib != null) { - id = lib.getId(); - version = lib.getQualifiedVersion().getRawVersion(); - resolved = lib.isResolved(); - } + private final String id = "Unknown id"; + private final String version = "Unknown version"; + private final boolean resolved = false; + + private Library() { + // if (lib != null) { + // id = lib.getId(); + // version = lib.getQualifiedVersion().getRawVersion(); + // resolved = lib.isResolved(); + // } } } } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/deployment/DeployOptions.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/deployment/DeployOptions.java index d3280aa1f..ecfa74044 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/deployment/DeployOptions.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/deployment/DeployOptions.java @@ -4,7 +4,6 @@ import java.util.List; import ch.ivyteam.ivy.deployment.DeploymentOptions.TargetState; -import ch.ivyteam.ivy.deployment.DeploymentOptions.TargetVersion; import ch.ivyteam.ivy.deployment.DeploymentOptions.TestUser; public class DeployOptions { @@ -12,9 +11,6 @@ public class DeployOptions { private TestUser deployTestUsers = TestUser.AUTO; private List deployTestUsersValues = Arrays.asList(TestUser.values()); - private TargetVersion version = TargetVersion.AUTO; - private List versions = Arrays.asList(TargetVersion.values()); - private TargetState state = TargetState.ACTIVE_AND_RELEASED; private List states = Arrays.asList(TargetState.values()); @@ -26,18 +22,6 @@ public List getDeployTestUsersValues() { return deployTestUsersValues; } - public TargetVersion getVersion() { - return version; - } - - public Boolean isRangeVersion() { - return TargetVersion.RANGE.equals(version); - } - - public List getVersions() { - return versions; - } - public TargetState getState() { return state; } @@ -54,14 +38,6 @@ public void setDeployTestUsersValues(List deployTestUsersValues) { this.deployTestUsersValues = deployTestUsersValues; } - public void setVersion(TargetVersion version) { - this.version = version; - } - - public void setVersions(List versions) { - this.versions = versions; - } - public void setState(TargetState state) { this.state = state; } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/deployment/DeploymentBean.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/deployment/DeploymentBean.java index 35c73d5d5..56d3c345f 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/deployment/DeploymentBean.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/deployment/DeploymentBean.java @@ -105,7 +105,6 @@ private void deploy() { var deploymentOptions = DeploymentOptions.create() .deployTestUsers(deployOptions.getDeployTestUsers()) - .targetVersion(deployOptions.getVersion()) .targetState(deployOptions.getState()) .toOptions(); From 0f4e982f9af0d6f6abb1d4b3a1d00843c74d5255 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Fri, 17 Oct 2025 16:52:49 +0200 Subject: [PATCH 02/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/Jenkinsfile | 2 +- build/build.groovy | 2 +- engine-cockpit-selenium-test/pom.xml | 4 ++-- .../test-apps/pmv-dependencies-app/core/pom.xml | 4 ++-- .../test-apps/pmv-dependencies-app/custom/pom.xml | 6 +++--- .../test-apps/pmv-dependencies-app/main/pom.xml | 6 +++--- .../test-apps/pmv-dependencies-app/pom.xml | 4 ++-- engine-cockpit-selenium-test/test-apps/test-ad/pom.xml | 6 +++--- engine-cockpit-test-data/pom.xml | 4 ++-- engine-cockpit-test/pom.xml | 6 +++--- engine-cockpit/pom.xml | 4 ++-- image-validation/pom.xml | 2 +- maven-config/pom.xml | 2 +- pom.xml | 2 +- 14 files changed, 27 insertions(+), 27 deletions(-) diff --git a/build/Jenkinsfile b/build/Jenkinsfile index 1f99f6aff..19d8ee63e 100644 --- a/build/Jenkinsfile +++ b/build/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { } parameters { - string(name: 'engineSource', defaultValue: 'https://product.ivyteam.io', description: 'Engine page url') + string(name: 'engineSource', defaultValue: 'https://jenkins.ivyteam.io/job/core_product/job/kingfisher/', description: 'Engine page url') } stages { diff --git a/build/build.groovy b/build/build.groovy index 3c7246b0c..9070b9aa2 100644 --- a/build/build.groovy +++ b/build/build.groovy @@ -51,7 +51,7 @@ def build() { } def mvnBuild(def mvnArgs = '') { - def phase = isReleasingBranch() ? 'deploy' : 'verify' + def phase = isReleasingBranch() ? 'deploy' : 'deploy' maven cmd: "clean ${phase} -ntp -Divy.engine.version.latest.minor=true -Dmaven.test.skip=false " + mvnArgs junit testDataPublishers: [[$class: 'AttachmentPublisher'], [$class: 'StabilityTestDataPublisher']], testResults: '**/target/surefire-reports/**/*.xml' } diff --git a/engine-cockpit-selenium-test/pom.xml b/engine-cockpit-selenium-test/pom.xml index 9dd075e6a..3808c418c 100644 --- a/engine-cockpit-selenium-test/pom.xml +++ b/engine-cockpit-selenium-test/pom.xml @@ -1,7 +1,7 @@ 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../maven-config @@ -95,7 +95,7 @@ - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit ${project.version} engine-cockpit.jar diff --git a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/core/pom.xml b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/core/pom.xml index ce0ddd9f4..c87f168c0 100644 --- a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/core/pom.xml +++ b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/core/pom.xml @@ -3,13 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../../../../maven-config - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit core-pmv-test 13.2.0-SNAPSHOT iar diff --git a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/custom/pom.xml b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/custom/pom.xml index 52a2a6c98..8dbf29bb9 100644 --- a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/custom/pom.xml +++ b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/custom/pom.xml @@ -3,18 +3,18 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../../../../maven-config - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit custom-pmv-test 13.2.0-SNAPSHOT iar - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit main-pmv-test ${project.version} iar diff --git a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/main/pom.xml b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/main/pom.xml index d9545dba6..f8381749e 100644 --- a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/main/pom.xml +++ b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/main/pom.xml @@ -3,18 +3,18 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../../../../maven-config - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit main-pmv-test 13.2.0-SNAPSHOT iar - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit core-pmv-test ${project.version} iar diff --git a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/pom.xml b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/pom.xml index a0fadcbae..eb9c875ae 100644 --- a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/pom.xml +++ b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/pom.xml @@ -1,13 +1,13 @@ 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../../../maven-config - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-test-app-pmvs 13.2.0-SNAPSHOT pom diff --git a/engine-cockpit-selenium-test/test-apps/test-ad/pom.xml b/engine-cockpit-selenium-test/test-apps/test-ad/pom.xml index 0eee9580b..8f6a3190d 100644 --- a/engine-cockpit-selenium-test/test-apps/test-ad/pom.xml +++ b/engine-cockpit-selenium-test/test-apps/test-ad/pom.xml @@ -1,20 +1,20 @@ 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../../../maven-config - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-test-app-test-ad 13.2.0-SNAPSHOT pom - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-test-data 13.2.0-SNAPSHOT iar diff --git a/engine-cockpit-test-data/pom.xml b/engine-cockpit-test-data/pom.xml index 75c6bc18a..d941cde80 100644 --- a/engine-cockpit-test-data/pom.xml +++ b/engine-cockpit-test-data/pom.xml @@ -3,13 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../maven-config - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-test-data 13.2.0-SNAPSHOT iar diff --git a/engine-cockpit-test/pom.xml b/engine-cockpit-test/pom.xml index 3bb55e6c9..268be26ad 100644 --- a/engine-cockpit-test/pom.xml +++ b/engine-cockpit-test/pom.xml @@ -3,13 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../maven-config - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-test 13.2.0-SNAPSHOT iar @@ -20,7 +20,7 @@ - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit ${project.version} iar diff --git a/engine-cockpit/pom.xml b/engine-cockpit/pom.xml index 2225470ff..b1d606173 100644 --- a/engine-cockpit/pom.xml +++ b/engine-cockpit/pom.xml @@ -5,13 +5,13 @@ 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../maven-config - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit 13.2.0-SNAPSHOT engine-cockpit iar diff --git a/image-validation/pom.xml b/image-validation/pom.xml index efce1a622..5a9180d35 100644 --- a/image-validation/pom.xml +++ b/image-validation/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../maven-config diff --git a/maven-config/pom.xml b/maven-config/pom.xml index 828cb7423..6620dd137 100644 --- a/maven-config/pom.xml +++ b/maven-config/pom.xml @@ -1,6 +1,6 @@ 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index d68f4dc0e..514da4a8b 100644 --- a/pom.xml +++ b/pom.xml @@ -1,7 +1,7 @@ 4.0.0 - ch.ivyteam.enginecockpit + ch.ivyteam..kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT maven-config From 35c33fb145a727a8300f8947c95896047d91421e Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Fri, 17 Oct 2025 16:54:44 +0200 Subject: [PATCH 03/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- engine-cockpit-selenium-test/pom.xml | 4 ++-- .../test-apps/pmv-dependencies-app/core/pom.xml | 4 ++-- .../test-apps/pmv-dependencies-app/custom/pom.xml | 6 +++--- .../test-apps/pmv-dependencies-app/main/pom.xml | 6 +++--- .../test-apps/pmv-dependencies-app/pom.xml | 4 ++-- engine-cockpit-selenium-test/test-apps/test-ad/pom.xml | 6 +++--- engine-cockpit-test-data/pom.xml | 4 ++-- engine-cockpit-test/pom.xml | 6 +++--- engine-cockpit/pom.xml | 4 ++-- image-validation/pom.xml | 2 +- maven-config/pom.xml | 2 +- pom.xml | 2 +- 12 files changed, 25 insertions(+), 25 deletions(-) diff --git a/engine-cockpit-selenium-test/pom.xml b/engine-cockpit-selenium-test/pom.xml index 3808c418c..fe9e219f7 100644 --- a/engine-cockpit-selenium-test/pom.xml +++ b/engine-cockpit-selenium-test/pom.xml @@ -1,7 +1,7 @@ 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../maven-config @@ -95,7 +95,7 @@ - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit ${project.version} engine-cockpit.jar diff --git a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/core/pom.xml b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/core/pom.xml index c87f168c0..aa23f4357 100644 --- a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/core/pom.xml +++ b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/core/pom.xml @@ -3,13 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../../../../maven-config - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit core-pmv-test 13.2.0-SNAPSHOT iar diff --git a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/custom/pom.xml b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/custom/pom.xml index 8dbf29bb9..f84ed7778 100644 --- a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/custom/pom.xml +++ b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/custom/pom.xml @@ -3,18 +3,18 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../../../../maven-config - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit custom-pmv-test 13.2.0-SNAPSHOT iar - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit main-pmv-test ${project.version} iar diff --git a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/main/pom.xml b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/main/pom.xml index f8381749e..6d9dc6b91 100644 --- a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/main/pom.xml +++ b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/main/pom.xml @@ -3,18 +3,18 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../../../../maven-config - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit main-pmv-test 13.2.0-SNAPSHOT iar - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit core-pmv-test ${project.version} iar diff --git a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/pom.xml b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/pom.xml index eb9c875ae..b61344a03 100644 --- a/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/pom.xml +++ b/engine-cockpit-selenium-test/test-apps/pmv-dependencies-app/pom.xml @@ -1,13 +1,13 @@ 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../../../maven-config - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-test-app-pmvs 13.2.0-SNAPSHOT pom diff --git a/engine-cockpit-selenium-test/test-apps/test-ad/pom.xml b/engine-cockpit-selenium-test/test-apps/test-ad/pom.xml index 8f6a3190d..fa103ad3c 100644 --- a/engine-cockpit-selenium-test/test-apps/test-ad/pom.xml +++ b/engine-cockpit-selenium-test/test-apps/test-ad/pom.xml @@ -1,20 +1,20 @@ 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../../../maven-config - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-test-app-test-ad 13.2.0-SNAPSHOT pom - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-test-data 13.2.0-SNAPSHOT iar diff --git a/engine-cockpit-test-data/pom.xml b/engine-cockpit-test-data/pom.xml index d941cde80..f614f0482 100644 --- a/engine-cockpit-test-data/pom.xml +++ b/engine-cockpit-test-data/pom.xml @@ -3,13 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../maven-config - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-test-data 13.2.0-SNAPSHOT iar diff --git a/engine-cockpit-test/pom.xml b/engine-cockpit-test/pom.xml index 268be26ad..8f2bfa425 100644 --- a/engine-cockpit-test/pom.xml +++ b/engine-cockpit-test/pom.xml @@ -3,13 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../maven-config - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-test 13.2.0-SNAPSHOT iar @@ -20,7 +20,7 @@ - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit ${project.version} iar diff --git a/engine-cockpit/pom.xml b/engine-cockpit/pom.xml index b1d606173..1992a19c7 100644 --- a/engine-cockpit/pom.xml +++ b/engine-cockpit/pom.xml @@ -5,13 +5,13 @@ 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../maven-config - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit 13.2.0-SNAPSHOT engine-cockpit iar diff --git a/image-validation/pom.xml b/image-validation/pom.xml index 5a9180d35..d80e274ec 100644 --- a/image-validation/pom.xml +++ b/image-validation/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT ../maven-config diff --git a/maven-config/pom.xml b/maven-config/pom.xml index 6620dd137..9cdaae76d 100644 --- a/maven-config/pom.xml +++ b/maven-config/pom.xml @@ -1,6 +1,6 @@ 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT pom diff --git a/pom.xml b/pom.xml index 514da4a8b..920b8ca11 100644 --- a/pom.xml +++ b/pom.xml @@ -1,7 +1,7 @@ 4.0.0 - ch.ivyteam..kingfisher.enginecockpit + ch.ivyteam.kingfisher.enginecockpit engine-cockpit-config 13.2.0-SNAPSHOT maven-config From 97052947ba05ef048d551249d2b5ee99f2be2984 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Fri, 17 Oct 2025 16:57:49 +0200 Subject: [PATCH 04/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ivyteam/enginecockpit/application/model/ProcessModel.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java index 763bb682a..0e9ca9d83 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java @@ -88,7 +88,7 @@ public String getWarningMessageForNoReleasedPmv() { @SuppressWarnings("restriction") public boolean isOverrideProject() { if (isOverrideProject == null) { - var overrideProject = ((IApplicationInternal) pm.getApplication()).getConfiguration().getOrDefault("OverrideProject"); + ((IApplicationInternal) pm.getApplication()).getConfiguration().getOrDefault("OverrideProject"); // var projectId = pm.getProcessModelVersions().stream() // .map(IProcessModelVersion::getLibrary) // .filter(Objects::nonNull) @@ -97,7 +97,7 @@ public boolean isOverrideProject() { // .findFirst() // .orElse(null); // var projectId = null; - isOverrideProject = null;// projectId != null && projectId.equals(overrideProject); + isOverrideProject = false;// projectId != null && projectId.equals(overrideProject); } return isOverrideProject; } From 83f9b977d99d4d369eb138ea2f7192dc2c0adbfa Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Fri, 24 Oct 2025 18:28:38 +0200 Subject: [PATCH 05/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- engine-cockpit/cms/cms_en.yaml | 2 +- .../application/ApplicationBean.java | 67 +++++++------- .../application/model/AppTreeItem.java | 7 ++ .../application/model/Application.java | 90 +++++++++---------- .../application/model/ProcessModel.java | 30 +++---- .../model/ProcessModelVersion.java | 48 +++++----- .../services/rest/RestTestRunner.java | 8 +- .../webContent/view/applications.xhtml | 10 +++ 8 files changed, 131 insertions(+), 131 deletions(-) create mode 100644 engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java diff --git a/engine-cockpit/cms/cms_en.yaml b/engine-cockpit/cms/cms_en.yaml index 00b75b0ca..7e3c80985 100644 --- a/engine-cockpit/cms/cms_en.yaml +++ b/engine-cockpit/cms/cms_en.yaml @@ -14,7 +14,7 @@ admins: applicationDetail: ProcessModels: Process Models applications: - AppPmPmvHeader: App / PM / PMV + AppPmPmvHeader: App / Version / Project ApplicationConvertToLatestVersionMessage: All Axon Ivy Projects in state RELEASED and DEPRECATED will be converted to the latest version. ApplicationWarningMessageForNoReleasedPmv: At least one process model has no released process model version Convert: Convert diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationBean.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationBean.java index 32e6d2590..faf38bf2b 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationBean.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationBean.java @@ -11,7 +11,7 @@ import org.primefaces.model.DefaultTreeNode; import org.primefaces.model.TreeNode; -import ch.ivyteam.enginecockpit.application.model.AbstractActivity; +import ch.ivyteam.enginecockpit.application.model.AppTreeItem; import ch.ivyteam.enginecockpit.application.model.Application; import ch.ivyteam.enginecockpit.application.model.ProcessModel; import ch.ivyteam.enginecockpit.application.model.ProcessModelVersion; @@ -19,7 +19,6 @@ import ch.ivyteam.enginecockpit.system.ManagerBean; import ch.ivyteam.ivy.application.IApplication; import ch.ivyteam.ivy.application.IProcessModel; -import ch.ivyteam.ivy.application.ReleaseState; import ch.ivyteam.ivy.application.app.IApplicationRepository; import ch.ivyteam.ivy.application.app.NewApplication; import ch.ivyteam.ivy.environment.Ivy; @@ -27,10 +26,10 @@ @ManagedBean @ViewScoped -public class ApplicationBean extends TreeView { +public class ApplicationBean extends TreeView { private boolean processing; - private AbstractActivity selectedActivity; + private AppTreeItem selectedActivity; private final Application newApp; private boolean activateNewApp; @@ -50,36 +49,36 @@ public ApplicationBean() { protected void buildTree() { for (var app : managerBean.getIApplications()) { var activity = new Application(app, this); - var node = new DefaultTreeNode(activity, rootTreeNode); + var node = new DefaultTreeNode(activity, rootTreeNode); loadPmTree(app, node, activity); - activity.getState().updateChildProblems(activity); + // activity.getState().updateChildProblems(activity); } } - private void loadPmTree(IApplication app, TreeNode appNode, AbstractActivity parent) { + private void loadPmTree(IApplication app, TreeNode appNode, AppTreeItem parent) { for (var pm : app.getProcessModels()) { var activity = new ProcessModel(pm, this); - parent.addChild(activity); - var node = new DefaultTreeNode(activity, appNode); + // parent.addChild(activity); + var node = new DefaultTreeNode(activity, appNode); loadPmvTree(pm, node, activity); - activity.getState().updateChildProblems(activity); + // activity.getState().updateChildProblems(activity); } } @SuppressWarnings("unused") - private void loadPmvTree(IProcessModel pm, TreeNode pmNode, AbstractActivity parent) { + private void loadPmvTree(IProcessModel pm, TreeNode pmNode, AppTreeItem parent) { for (var pmv : pm.getProcessModelVersions()) { - if (pmv.getReleaseState() != ReleaseState.DELETED) { - var activity = new ProcessModelVersion(pmv, this); - parent.addChild(activity); - new DefaultTreeNode(activity, pmNode); - } + // if (pmv.getReleaseState() != ReleaseState.DELETED) { + var activity = new ProcessModelVersion(pmv, this); + // parent.addChild(activity); + new DefaultTreeNode(activity, pmNode); + // } } } @Override @SuppressWarnings("unused") - protected void filterNode(TreeNode node) { + protected void filterNode(TreeNode node) { var activity = node.getData(); if (Strings.CI.contains(activity.getName(), filter)) { new DefaultTreeNode<>(activity, filteredTreeNode); @@ -91,15 +90,15 @@ public void reloadActivityStates() { reloadNodeState(rootTreeNode.getChildren()); } - private void reloadNodeState(List> nodes) { + private void reloadNodeState(List> nodes) { for (var node : nodes) { var activity = node.getData(); - activity.updateStats(); + // activity.updateStats(); if (!processing) { - processing = activity.getState().isProcessing(); + // processing = activity.getState().isProcessing(); } reloadNodeState(node.getChildren()); - activity.getState().updateChildProblems(activity); + // activity.getState().updateChildProblems(activity); } } @@ -127,7 +126,7 @@ public void createNewApplication() { try { var securityContext = ISecurityManager.instance().securityContexts().get(newApp.getSecSystem()); var appToCreate = NewApplication.create(newApp.getName()) - .active(activateNewApp) + // .active(activateNewApp) .toNewApplication(); IApplicationRepository.of(securityContext).create(appToCreate); reloadTree(); @@ -138,22 +137,22 @@ public void createNewApplication() { } } - public void setActiveActivity(AbstractActivity activity) { + public void setActiveActivity(AppTreeItem activity) { this.selectedActivity = activity; } - public AbstractActivity getActiveActivity() { + public AppTreeItem getActiveActivity() { return selectedActivity; } - @Override - protected String dataIdentifier(AbstractActivity data) { - var id = Long.toString(data.getApplicationId()); - if (data.isPm()) { - id += "-" + Long.toString(data.getId()); - } else if (data instanceof ProcessModelVersion pmv) { - id += "-" + Long.toString(pmv.getProcessModelId()) + "-" + Long.toString(pmv.getId()); - } - return id; - } + // @Override + // protected String dataIdentifier(AppTreeItem data) { + // var id = Long.toString(data.getApplicationId()); + // if (data.isPm()) { + // id += "-" + Long.toString(data.getId()); + // } else if (data instanceof ProcessModelVersion pmv) { + // id += "-" + Long.toString(pmv.getProcessModelId()) + "-" + Long.toString(pmv.getId()); + // } + // return id; + // } } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java new file mode 100644 index 000000000..99e805d85 --- /dev/null +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java @@ -0,0 +1,7 @@ +package ch.ivyteam.enginecockpit.application.model; + +public interface AppTreeItem { + + String getName(); + String getDetailView(); +} diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java index 6c749f717..86e1d9efe 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java @@ -1,8 +1,6 @@ package ch.ivyteam.enginecockpit.application.model; import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; @@ -10,16 +8,13 @@ import ch.ivyteam.enginecockpit.application.ApplicationBean; import ch.ivyteam.ivy.application.IApplication; -import ch.ivyteam.ivy.application.IProcessModel; -import ch.ivyteam.ivy.application.app.IApplicationRepository; import ch.ivyteam.ivy.application.restricted.IApplicationInternal; import ch.ivyteam.ivy.environment.Ivy; import ch.ivyteam.ivy.security.ISecurityContext; -import ch.ivyteam.ivy.workflow.IWorkflowProcessModelVersion; import ch.ivyteam.ivy.workflow.WorkflowNavigationUtil; @SuppressWarnings("removal") -public class Application extends AbstractActivity { +public class Application implements AppTreeItem { private String fileDir; private String secSystem = ISecurityContext.DEFAULT; @@ -27,8 +22,18 @@ public class Application extends AbstractActivity { private IApplicationInternal app; private List webServiceProcesses; - public Application() { - super("", 0, null, null); + public Application() {} + + @Override + public String getName() { + if (app == null) { + return ""; + } + return app.getName(); + } + + public long getId() { + return app.getId(); } public Application(IApplication app) { @@ -36,18 +41,15 @@ public Application(IApplication app) { } public Application(IApplication app, ApplicationBean bean) { - super(app.getName(), app.getId(), app, bean); this.app = (IApplicationInternal) app; fileDir = app.getFileDirectory(); secSystem = app.getSecurityContext().getName(); } - @Override public boolean isApplication() { return true; } - @Override public String getDetailView() { return UriBuilder.fromPath("application-detail.xhtml") .queryParam("appName", getName()) @@ -55,30 +57,28 @@ public String getDetailView() { .toString(); } - @Override public long getRunningCasesCount() { countRunningCases(); return runningCasesCount; } - @Override public String getIcon() { return "module"; } - @Override public boolean isNotStartable() { - return super.isNotStartable() || isDesignerOrSystem(); + // return super.isNotStartable() || isDesignerOrSystem(); + return false; } - @Override public boolean isNotStopable() { - return super.isNotStopable() || isDesignerOrSystem(); + // return super.isNotStopable() || isDesignerOrSystem(); + return false; } - @Override public boolean isNotLockable() { - return super.isNotLockable() || isDesignerOrSystem(); + // return super.isNotLockable() || isDesignerOrSystem(); + return false; } private boolean isDesignerOrSystem() { @@ -125,47 +125,39 @@ public ISecurityContext getSecurityContext() { return app.getSecurityContext(); } - @Override public long getApplicationId() { return getId(); } - @Override public String getActivityType() { return AbstractActivity.APP; } - @Override public void convert() { - execute(() -> app.convertProjects(new ProjectConversionLog()), "convert", true); + // execute(() -> app.convertProjects(new ProjectConversionLog()), "convert", true); } - @Override public boolean canConvert() { return true; } + // + // if(app!=null) + // { + // return !app.hasProjectsToConvert(); + // }return true; + // } - @Override - public boolean isNotConvertable() { - if (app != null) { - return !app.hasProjectsToConvert(); - } - return true; - } - - @Override public void delete() { - execute(() -> IApplicationRepository.instance().delete(getName()), "delete", false); + // execute(() -> IApplicationRepository.instance().delete(getName()), "delete", false); } - @Override public String getDeleteHint() { var message = new StringBuilder(); if (runningCasesCount > 0) { message.append(Ivy.cm().content("/applications/DeleteRunningCasesHintMessage") .replace("activityType", getActivityType()).replace("runningCases", String.valueOf(runningCasesCount)).get()); } - message.append(super.getDeleteHint()); + // message.append(super.getDeleteHint()); return message.toString(); } @@ -186,32 +178,30 @@ public IApplicationInternal app() { @SuppressWarnings("deprecation") public List getWebServiceProcesses() { if (webServiceProcesses == null) { - webServiceProcesses = app.getProcessModels().stream() - .map(IProcessModel::getReleasedProcessModelVersion) - .map(IWorkflowProcessModelVersion::of) - .filter(Objects::nonNull) - .flatMap(pmv -> pmv.getWebServiceProcesses().stream()) - .map(WebServiceProcess::new) - .collect(Collectors.toList()); + // webServiceProcesses = app.getProcessModels().stream() + // .map(IProcessModel::getReleasedProcessModelVersion) + // .map(IWorkflowProcessModelVersion::of) + // .filter(Objects::nonNull) + // .flatMap(pmv -> pmv.getWebServiceProcesses().stream()) + // .map(WebServiceProcess::new) + // .collect(Collectors.toList()); } return webServiceProcesses; } - @Override @SuppressWarnings("restriction") public boolean hasReleasedProcessModelVersion() { - return app.getProcessModels() - .stream() - .map(ch.ivyteam.ivy.application.internal.ProcessModel.class::cast) - .allMatch(ch.ivyteam.ivy.application.internal.ProcessModel::hasReleasedProcessModelVersion); + // return app.getProcessModels() + // .stream() + // .map(ch.ivyteam.ivy.application.internal.ProcessModel.class::cast) + // .allMatch(ch.ivyteam.ivy.application.internal.ProcessModel::hasReleasedProcessModelVersion); + return true; } - @Override public String getWarningMessageForNoReleasedPmv() { return Ivy.cm().co("/applications/ApplicationWarningMessageForNoReleasedPmv"); } - @Override public List isDeletable() { return app.isDeletable(); } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java index 0e9ca9d83..17d152e86 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java @@ -9,23 +9,30 @@ import ch.ivyteam.ivy.workflow.IWorkflowContext; import ch.ivyteam.ivy.workflow.restricted.WorkflowContextInternal; -public class ProcessModel extends AbstractActivity { +public class ProcessModel implements AppTreeItem { private final IProcessModel pm; private Boolean isOverrideProject; private long runningCasesCount = -1; private List deletable; public ProcessModel(IProcessModel pm, ApplicationBean bean) { - super(pm.getName(), pm.getId(), pm, bean); this.pm = pm; } @Override + public String getName() { + return String.valueOf(pm.getVersion()); + } + public boolean isPm() { return true; } @Override + public String getDetailView() { + return "#"; + } + @SuppressWarnings("restriction") public long getRunningCasesCount() { if (runningCasesCount < 0) { @@ -35,37 +42,31 @@ public long getRunningCasesCount() { return runningCasesCount; } - @Override public String getIcon() { return isOverrideProject() ? "move-to-bottom" : "module-three-2"; } - @Override public String getIconTitle() { return isOverrideProject() ? "This PM is configured as strict override project" : getActivityType(); } - @Override public long getApplicationId() { - return ((IProcessModel) activity).getApplication().getId(); + // return ((IProcessModel) activity).getApplication().getId(); + return pm.getApplication().getId(); } - @Override public String getActivityType() { return AbstractActivity.PM; } - @Override public void delete() { - execute(() -> pm.getApplication().deleteProcessModel(getName()), "delete", false); + // execute(() -> pm.getApplication().deleteProcessModel(getName()), "delete", false); } - @Override public void forceDelete() { - execute(() -> ((IApplicationInternal) pm.getApplication()).forceDeleteProcessModel(getName()), "force delete", false); + // execute(() -> ((IApplicationInternal) pm.getApplication()).forceDeleteProcessModel(getName()), "force delete", false); } - @Override public List isDeletable() { if (deletable == null) { deletable = pm.isDeletableInternal(); @@ -73,14 +74,13 @@ public List isDeletable() { return deletable; } - @Override @SuppressWarnings("restriction") public boolean hasReleasedProcessModelVersion() { var processModel = (ch.ivyteam.ivy.application.internal.ProcessModel) pm; - return processModel.hasReleasedProcessModelVersion(); + // return processModel.hasReleasedProcessModelVersion(); + return false; } - @Override public String getWarningMessageForNoReleasedPmv() { return Ivy.cm().co("/applications/WarningMessageForNoReleasedPmv"); } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java index 9ab9b21db..ea2db03ca 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java @@ -5,12 +5,11 @@ import ch.ivyteam.enginecockpit.application.ApplicationBean; import ch.ivyteam.enginecockpit.util.DateUtil; import ch.ivyteam.ivy.application.IProcessModelVersion; -import ch.ivyteam.ivy.application.ReleaseState; import ch.ivyteam.ivy.application.restricted.IProcessModelVersionInternal; import ch.ivyteam.ivy.environment.Ivy; import ch.ivyteam.ivy.workflow.IWorkflowContext; -public class ProcessModelVersion extends AbstractActivity { +public class ProcessModelVersion implements AppTreeItem { private final IProcessModelVersionInternal pmv; private final String lastChangeDate; @@ -21,80 +20,74 @@ public ProcessModelVersion(IProcessModelVersion pmv) { this(pmv, null); } + @Override + public String getName() { + return pmv.getName(); + } + public ProcessModelVersion(IProcessModelVersion pmv, ApplicationBean bean) { - super(pmv.getVersionName(), pmv.getId(), pmv, bean); lib = new Library(); lastChangeDate = DateUtil.formatDate(pmv.getLastChangeDate()); this.pmv = (IProcessModelVersionInternal) pmv; updateStats(); } - @Override public String getDetailView() { - return "pmv-detail.xhtml?appName=" + pmv.getApplication().getName() + "&pmName=" - + pmv.getProcessModel().getName() + "&pmvVersion=" + pmv.getVersionNumber(); + return "xx"; + // return "pmv-detail.xhtml?appName=" + pmv.getApplication().getName() + "&pmName=" + // + pmv.getProcessModel().getName() + "&pmvVersion=" + pmv.getVersionNumber(); } - @Override public void updateStats() { - super.updateStats(); - if (pmv != null) { - getState().updateReleaseState(pmv.getReleaseState()); - } + // super.updateStats(); + // if (pmv != null) { + //// getState().updateReleaseState(pmv.getReleaseState()); + // } } - @Override public long getRunningCasesCount() { countRunningCases(); return runningCasesCount; } - @Override public String getIcon() { return "module-three-1"; } - @Override public boolean isPmv() { return true; } - @Override public boolean isNotConvertable() { return !pmv.canBeConverted(); } - @Override public void release() { - execute(() -> pmv.release(), "release", true); + // execute(() -> pmv.release(), "release", true); } - @Override public void delete() { - execute(() -> pmv.delete(), "delete", false); + // execute(() -> pmv.delete(), "delete", false); } - @Override public void convert() { - execute(() -> pmv.convertProject(new ProjectConversionLog()), "convert", true); + // execute(() -> pmv.convertProject(new ProjectConversionLog()), "convert", true); } - @Override public boolean canConvert() { return true; } - @Override public boolean isReleasable() { - return getState().is(ReleaseState.DEPRECATED, ReleaseState.ARCHIVED, ReleaseState.PREPARED); + // return getState().is(ReleaseState.DEPRECATED, ReleaseState.ARCHIVED, ReleaseState.PREPARED); + return true; } - @Override public List isDeletable() { - return pmv.isDeletable(); + // return pmv.isDeletable(); + return List.of(); } - @Override public long getApplicationId() { return pmv.getProcessModel().getApplication().getId(); } @@ -103,7 +96,6 @@ public long getProcessModelId() { return pmv.getProcessModel().getId(); } - @Override public String getActivityType() { return AbstractActivity.PMV; } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/services/rest/RestTestRunner.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/services/rest/RestTestRunner.java index 83c424cc3..0959ae693 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/services/rest/RestTestRunner.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/services/rest/RestTestRunner.java @@ -12,7 +12,6 @@ import ch.ivyteam.enginecockpit.services.model.ConnectionTestResult; import ch.ivyteam.enginecockpit.services.model.ConnectionTestResult.TestResult; import ch.ivyteam.ivy.application.IApplication; -import ch.ivyteam.ivy.application.IProcessModel; import ch.ivyteam.ivy.application.IProcessModelVersion; import ch.ivyteam.ivy.application.restricted.di.ApplicationContext; import ch.ivyteam.ivy.application.restricted.di.ProcessModelVersionContext; @@ -54,8 +53,11 @@ private ConnectionTestResult testInAppContext() { @SuppressWarnings("restriction") private Optional findClientPmv() { var restManager = ch.ivyteam.ivy.rest.client.config.restricted.IRestClientsManager.instance(); - return app.getProcessModels().stream() - .map(IProcessModel::getReleasedProcessModelVersion) + var pm = app.getReleasedProcessModel(); + if (pm == null) { + return Optional.empty(); + } + return pm.getProcessModelVersions().stream() .filter(pmv -> restManager.getProjectDataModelFor(pmv).findRestClient(uiClient.uniqueId()).isPresent()) .findAny(); } diff --git a/engine-cockpit/webContent/view/applications.xhtml b/engine-cockpit/webContent/view/applications.xhtml index 08a979c37..54a9c91d4 100644 --- a/engine-cockpit/webContent/view/applications.xhtml +++ b/engine-cockpit/webContent/view/applications.xhtml @@ -37,6 +37,7 @@ actionListener="#{applicationBean.collapseAllNodes}" update="tree" title="#{ivy.cm.co('/common/CollapseAll')}" styleClass="ml-1 flex-shrink-0 ui-button-secondary rounded-button ui-button-outlined" /> + @@ -53,6 +54,7 @@ + @@ -67,6 +70,7 @@ + + + From 8f4621912f55784364f6143c7b2b749f63a5247a Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Fri, 24 Oct 2025 21:01:44 +0200 Subject: [PATCH 06/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/model/AppTreeItem.java | 28 +++++++++++++++++++ .../application/model/ProcessModel.java | 18 ++++++++++++ .../model/ProcessModelVersion.java | 8 ++++++ .../webContent/view/applications.xhtml | 10 +++---- 4 files changed, 58 insertions(+), 6 deletions(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java index 99e805d85..1a87349a3 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java @@ -1,7 +1,35 @@ package ch.ivyteam.enginecockpit.application.model; +import ch.ivyteam.ivy.application.ReleaseState; + public interface AppTreeItem { String getName(); String getDetailView(); + + // PM stuff + default boolean isPm() { + return false; + } + + default String getReleaseStateIcon() { + return null; + } + + default ReleaseState getReleaseState() { + return null; + } + + // PMV stuff + default boolean isPmv() { + return false; + } + + default String getVersion() { + return null; + } + + default String getLastChangeDate() { + return null; + } } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java index 17d152e86..d778bc8d5 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java @@ -4,6 +4,7 @@ import ch.ivyteam.enginecockpit.application.ApplicationBean; import ch.ivyteam.ivy.application.IProcessModel; +import ch.ivyteam.ivy.application.ReleaseState; import ch.ivyteam.ivy.application.restricted.IApplicationInternal; import ch.ivyteam.ivy.environment.Ivy; import ch.ivyteam.ivy.workflow.IWorkflowContext; @@ -24,6 +25,7 @@ public String getName() { return String.valueOf(pm.getVersion()); } + @Override public boolean isPm() { return true; } @@ -81,6 +83,22 @@ public boolean hasReleasedProcessModelVersion() { return false; } + @Override + public ReleaseState getReleaseState() { + return pm.getReleaseState(); + } + + @Override + public String getReleaseStateIcon() { + return switch (getReleaseState()) { + case RELEASED -> "check-circle-1"; + case DEPRECATED -> "delete"; + case ARCHIVED -> "archive"; + case CREATED, PREPARED -> "advertising-megaphone-2"; + default -> "question-circle"; + }; + } + public String getWarningMessageForNoReleasedPmv() { return Ivy.cm().co("/applications/WarningMessageForNoReleasedPmv"); } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java index ea2db03ca..89587f60b 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java @@ -32,6 +32,7 @@ public ProcessModelVersion(IProcessModelVersion pmv, ApplicationBean bean) { updateStats(); } + @Override public String getDetailView() { return "xx"; // return "pmv-detail.xhtml?appName=" + pmv.getApplication().getName() + "&pmName=" @@ -54,10 +55,16 @@ public String getIcon() { return "module-three-1"; } + @Override public boolean isPmv() { return true; } + @Override + public String getVersion() { + return pmv.getLibraryVersion(); + } + public boolean isNotConvertable() { return !pmv.canBeConverted(); } @@ -104,6 +111,7 @@ public String getQualifiedVersion() { return lib.version; } + @Override public String getLastChangeDate() { return lastChangeDate; } diff --git a/engine-cockpit/webContent/view/applications.xhtml b/engine-cockpit/webContent/view/applications.xhtml index 54a9c91d4..c62e63f55 100644 --- a/engine-cockpit/webContent/view/applications.xhtml +++ b/engine-cockpit/webContent/view/applications.xhtml @@ -54,15 +54,13 @@ - From 3396f67b553bdf2b3292dd60511a80255bae61b3 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Mon, 27 Oct 2025 13:32:05 +0100 Subject: [PATCH 07/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/PmvDetailBean.java | 30 ++++--- .../application/model/Application.java | 1 + .../application/model/ProcessModel.java | 2 +- .../model/ProcessModelVersion.java | 41 +++------- .../webContent/view/application-detail.xhtml | 3 - .../webContent/view/applications.xhtml | 26 ++----- .../webContent/view/pmv-detail.xhtml | 78 ++----------------- 7 files changed, 42 insertions(+), 139 deletions(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java index 43163fbd1..718f54adb 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java @@ -21,8 +21,8 @@ public class PmvDetailBean { private static final Logger LOGGER = Logger.getLogger(PmvDetailBean.class); private String appName; - private String pmName; - private String pmvVersion; + private String pmVersion; + private String pmvName; private final ManagerBean managerBean; private ProcessModelVersion pmv; private String deployedProject; @@ -34,12 +34,12 @@ public PmvDetailBean() { managerBean = ManagerBean.instance(); } - public void setPmvVersion(String pmvVersion) { - this.pmvVersion = pmvVersion; + public void setPmvName(String pmvName) { + this.pmvName = pmvName; } - public String getPmvVersion() { - return pmvVersion; + public String getPmvName() { + return pmvName; } public void setAppName(String appName) { @@ -50,12 +50,12 @@ public String getAppName() { return appName; } - public void setPmName(String pmName) { - this.pmName = pmName; + public void setPmVersion(String pmVersion) { + this.pmVersion = pmVersion; } - public String getPmName() { - return pmName; + public String getPmVersion() { + return pmVersion; } public void onload() { @@ -63,22 +63,20 @@ public void onload() { ResponseHelper.notFound("appName not set"); return; } - if (pmName == null) { + if (pmVersion == null) { ResponseHelper.notFound("pmName not set"); return; } - if (pmvVersion == null) { + if (pmvName == null) { ResponseHelper.notFound("pmvVersion not set"); return; } managerBean.reloadApplications(); var appMgr = IApplicationConfigurationManager.instance(); - var iPmv = appMgr.findProcessModelVersion(appName, pmName, Integer.parseInt(pmvVersion)); + var iPmv = appMgr.findProcessModelVersion(appName, pmvName, Integer.parseInt(pmVersion)); if (iPmv == null) { - LOGGER.warn("Can not refresh PMV details for " + appName + "/" + pmName + "/" + pmvVersion); - ResponseHelper.notFound("Process Model Version '" + pmName + "' for version '" + pmvVersion - + "' in app '" + appName + "' not found"); + ResponseHelper.notFound("Process Model Version '" + pmVersion + "' for version '" + pmvName + "' in app '" + appName + "' not found"); return; } diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java index 86e1d9efe..64ced0151 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java @@ -50,6 +50,7 @@ public boolean isApplication() { return true; } + @Override public String getDetailView() { return UriBuilder.fromPath("application-detail.xhtml") .queryParam("appName", getName()) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java index d778bc8d5..5d0be30a0 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java @@ -22,7 +22,7 @@ public ProcessModel(IProcessModel pm, ApplicationBean bean) { @Override public String getName() { - return String.valueOf(pm.getVersion()); + return "Version " + String.valueOf(pm.getVersion()); } @Override diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java index 89587f60b..4e8b16fe3 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModelVersion.java @@ -2,18 +2,18 @@ import java.util.List; +import javax.ws.rs.core.UriBuilder; + import ch.ivyteam.enginecockpit.application.ApplicationBean; import ch.ivyteam.enginecockpit.util.DateUtil; import ch.ivyteam.ivy.application.IProcessModelVersion; import ch.ivyteam.ivy.application.restricted.IProcessModelVersionInternal; -import ch.ivyteam.ivy.environment.Ivy; import ch.ivyteam.ivy.workflow.IWorkflowContext; public class ProcessModelVersion implements AppTreeItem { private final IProcessModelVersionInternal pmv; private final String lastChangeDate; - private final Library lib; private int runningCasesCount = -1; public ProcessModelVersion(IProcessModelVersion pmv) { @@ -26,7 +26,6 @@ public String getName() { } public ProcessModelVersion(IProcessModelVersion pmv, ApplicationBean bean) { - lib = new Library(); lastChangeDate = DateUtil.formatDate(pmv.getLastChangeDate()); this.pmv = (IProcessModelVersionInternal) pmv; updateStats(); @@ -34,9 +33,12 @@ public ProcessModelVersion(IProcessModelVersion pmv, ApplicationBean bean) { @Override public String getDetailView() { - return "xx"; - // return "pmv-detail.xhtml?appName=" + pmv.getApplication().getName() + "&pmName=" - // + pmv.getProcessModel().getName() + "&pmvVersion=" + pmv.getVersionNumber(); + return UriBuilder.fromPath("pmv-detail.xhtml") + .queryParam("appName", pmv.getApplication().getName()) + .queryParam("pmVersion", pmv.getProcessModel().getVersion()) + .queryParam("pmvName", pmv.getName()) + .build() + .toString(); } public void updateStats() { @@ -108,7 +110,7 @@ public String getActivityType() { } public String getQualifiedVersion() { - return lib.version; + return pmv.getLibraryVersion(); } @Override @@ -117,39 +119,16 @@ public String getLastChangeDate() { } public String getLibraryId() { - return lib.id; - } - - public boolean isLibraryResolved() { - return lib.resolved; + return pmv.getLibraryId(); } public int getProjectVersion() { return pmv.projectVersion(); } - public String getLibraryResolvedTooltip() { - return isLibraryResolved() ? Ivy.cm().co("/pmvDetail/AllDirectIndirectRequiredLibrariesAvailableMessage") - : Ivy.cm().co("/pmvDetail/NotAllDirectIndirectRequiredLibrariesAvailableMessage"); - } - private void countRunningCases() { if (pmv != null && runningCasesCount < 0) { runningCasesCount = IWorkflowContext.current().getRunningCasesCount(pmv); } } - - private static class Library { - private final String id = "Unknown id"; - private final String version = "Unknown version"; - private final boolean resolved = false; - - private Library() { - // if (lib != null) { - // id = lib.getId(); - // version = lib.getQualifiedVersion().getRawVersion(); - // resolved = lib.isResolved(); - // } - } - } } diff --git a/engine-cockpit/webContent/view/application-detail.xhtml b/engine-cockpit/webContent/view/application-detail.xhtml index 64d62e09a..f2e0996a7 100644 --- a/engine-cockpit/webContent/view/application-detail.xhtml +++ b/engine-cockpit/webContent/view/application-detail.xhtml @@ -50,9 +50,6 @@
-
- -
diff --git a/engine-cockpit/webContent/view/applications.xhtml b/engine-cockpit/webContent/view/applications.xhtml index c62e63f55..97ac90084 100644 --- a/engine-cockpit/webContent/view/applications.xhtml +++ b/engine-cockpit/webContent/view/applications.xhtml @@ -54,32 +54,22 @@ - - - - - - - - + + + + diff --git a/engine-cockpit/webContent/view/pmv-detail.xhtml b/engine-cockpit/webContent/view/pmv-detail.xhtml index 55648a707..2a48dc5f4 100644 --- a/engine-cockpit/webContent/view/pmv-detail.xhtml +++ b/engine-cockpit/webContent/view/pmv-detail.xhtml @@ -6,8 +6,8 @@ - - + + @@ -28,7 +28,7 @@
-
+
@@ -42,9 +42,7 @@ - - - + @@ -53,60 +51,6 @@
-
-
-
-
- -
#{ivy.cm.co('/common/Activity')}
-
-
- - - - - - #{pmvDetailBean.pmv.state.errorMessage} - - - - - - -
-
- -
-
-
-
- -
#{ivy.cm.co('/pmvDetail/SpecifiedRequiredProjects')}
-
-
- - - - - - - - - - - - - - -
-
-
@@ -124,14 +68,10 @@ - - - +
@@ -162,14 +103,10 @@ - - - +
From 1deda1f7d8bc3060336efc8cce34e09a654ca989 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Tue, 28 Oct 2025 00:29:51 +0100 Subject: [PATCH 08/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ch/ivyteam/enginecockpit/application/model/Application.java | 2 +- .../src/ch/ivyteam/enginecockpit/system/ManagerBean.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java index 64ced0151..bd7d4cae3 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java @@ -83,7 +83,7 @@ public boolean isNotLockable() { } private boolean isDesignerOrSystem() { - return app.isDesigner() || app.isSystem(); + return app.isDesigner(); } public String getHomeUrl() { diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/system/ManagerBean.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/system/ManagerBean.java index be574e38f..ac6e9be3d 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/system/ManagerBean.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/system/ManagerBean.java @@ -164,7 +164,6 @@ public IApplication getIApplication(long id) { public List getIApplications() { return apps.all().stream() - .filter(app -> !app.isSystem()) .sorted(Comparator.comparing(IApplication::getName, String.CASE_INSENSITIVE_ORDER)) .collect(Collectors.toList()); } From edf7aaa5601f03b44865c1dc452001506c14ff24 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Tue, 28 Oct 2025 11:17:57 +0100 Subject: [PATCH 09/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/model/AppTreeItem.java | 32 ++++++++++++++ .../application/model/ProcessModel.java | 42 +++++++++++++++++++ .../webContent/view/applications.xhtml | 24 +++++++---- 3 files changed, 91 insertions(+), 7 deletions(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java index 1a87349a3..8f055a7ed 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/AppTreeItem.java @@ -1,11 +1,19 @@ package ch.ivyteam.enginecockpit.application.model; +import java.util.List; +import java.util.stream.Collectors; + import ch.ivyteam.ivy.application.ReleaseState; public interface AppTreeItem { String getName(); String getDetailView(); + List isDeletable(); + + default String getNotDeletableMessage() { + return isDeletable().stream().collect(Collectors.joining("\n")); + } // PM stuff default boolean isPm() { @@ -20,6 +28,30 @@ default ReleaseState getReleaseState() { return null; } + default boolean isNotStartable() { + return true; + } + + default boolean isNotStopable() { + return true; + } + + default boolean isNotLockable() { + return true; + } + + default boolean isReleasable() { + return false; + } + + default void release() {} + + default void activate() {} + + default void deactivate() {} + + default void lock() {} + // PMV stuff default boolean isPmv() { return false; diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java index 5d0be30a0..efdff43a7 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/ProcessModel.java @@ -3,6 +3,7 @@ import java.util.List; import ch.ivyteam.enginecockpit.application.ApplicationBean; +import ch.ivyteam.ivy.application.ActivityState; import ch.ivyteam.ivy.application.IProcessModel; import ch.ivyteam.ivy.application.ReleaseState; import ch.ivyteam.ivy.application.restricted.IApplicationInternal; @@ -69,6 +70,7 @@ public void forceDelete() { // execute(() -> ((IApplicationInternal) pm.getApplication()).forceDeleteProcessModel(getName()), "force delete", false); } + @Override public List isDeletable() { if (deletable == null) { deletable = pm.isDeletableInternal(); @@ -76,6 +78,26 @@ public List isDeletable() { return deletable; } + @Override + public boolean isNotStartable() { + return pm.getActivityState() == ActivityState.ACTIVE; + } + + @Override + public boolean isNotStopable() { + return pm.getActivityState() == ActivityState.INACTIVE; + } + + @Override + public void activate() { + pm.activate(); + } + + @Override + public void deactivate() { + pm.deactivate(); + } + @SuppressWarnings("restriction") public boolean hasReleasedProcessModelVersion() { var processModel = (ch.ivyteam.ivy.application.internal.ProcessModel) pm; @@ -83,11 +105,31 @@ public boolean hasReleasedProcessModelVersion() { return false; } + @Override + public void release() { + pm.release(); + } + + @Override + public void lock() { + pm.lock(); + } + @Override public ReleaseState getReleaseState() { return pm.getReleaseState(); } + @Override + public boolean isNotLockable() { + return pm.getActivityState() == ActivityState.LOCKED; + } + + @Override + public boolean isReleasable() { + return pm.getReleaseState() != ReleaseState.RELEASED; + } + @Override public String getReleaseStateIcon() { return switch (getReleaseState()) { diff --git a/engine-cockpit/webContent/view/applications.xhtml b/engine-cockpit/webContent/view/applications.xhtml index 97ac90084..89e6c3eb1 100644 --- a/engine-cockpit/webContent/view/applications.xhtml +++ b/engine-cockpit/webContent/view/applications.xhtml @@ -73,7 +73,7 @@ - + + + - + - - + - --> + + + - - @@ -107,9 +107,9 @@ - - Date: Fri, 31 Oct 2025 15:43:30 +0100 Subject: [PATCH 13/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enginecockpit/services/notification/NotificationDto.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/services/notification/NotificationDto.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/services/notification/NotificationDto.java index 016924c2f..4c4c456ac 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/services/notification/NotificationDto.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/services/notification/NotificationDto.java @@ -51,7 +51,7 @@ public boolean isReceiversConcat() { public String getPmv() { return notification.pmv() - .map(IProcessModelVersion::getVersionName) + .map(IProcessModelVersion::getName) .orElse(""); } From 42fa9823c94d3b7f6260df9e6b113f8d5ffb54de Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Tue, 11 Nov 2025 15:40:34 +0100 Subject: [PATCH 14/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enginecockpit/application/TestProcessModelVersion.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/engine-cockpit-test/src_test/ch/ivyteam/enginecockpit/application/TestProcessModelVersion.java b/engine-cockpit-test/src_test/ch/ivyteam/enginecockpit/application/TestProcessModelVersion.java index 28f29d547..9ff073717 100644 --- a/engine-cockpit-test/src_test/ch/ivyteam/enginecockpit/application/TestProcessModelVersion.java +++ b/engine-cockpit-test/src_test/ch/ivyteam/enginecockpit/application/TestProcessModelVersion.java @@ -16,9 +16,9 @@ public class TestProcessModelVersion { /** ISSUE XIVY-4159 Application overview not displayed due to NPE */ @Test void emptyLibrary() { - ProcessModelVersion pmv = new ProcessModelVersion(createPmvProxy()); - assertThat(pmv.getQualifiedVersion()).isEqualTo("Unknown version"); - assertThat(pmv.getLibraryId()).isEqualTo("Unknown id"); + var pmv = new ProcessModelVersion(createPmvProxy()); + assertThat(pmv.getQualifiedVersion()).isNull(); + assertThat(pmv.getLibraryId()).isNull(); } private IProcessModelVersion createPmvProxy() { From 9bafe88d2cc5b86fe70abba4231533db7992a864 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Wed, 12 Nov 2025 09:09:43 +0100 Subject: [PATCH 15/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ch/ivyteam/enginecockpit/application/ApplicationBean.java | 2 +- .../ch/ivyteam/enginecockpit/application/PmvDetailBean.java | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationBean.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationBean.java index 943acbcb0..8561fcdad 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationBean.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/ApplicationBean.java @@ -90,7 +90,7 @@ public void reloadActivityStates() { private void reloadNodeState(List> nodes) { for (var node : nodes) { - var activity = node.getData(); + // var activity = node.getData(); // activity.updateStats(); if (!processing) { // processing = activity.getState().isProcessing(); diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java index 718f54adb..0f0962beb 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java @@ -6,8 +6,6 @@ import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; -import org.apache.log4j.Logger; - import ch.ivyteam.enginecockpit.application.model.LibSpecification; import ch.ivyteam.enginecockpit.application.model.ProcessModelVersion; import ch.ivyteam.enginecockpit.commons.ResponseHelper; @@ -17,9 +15,9 @@ @ManagedBean @ViewScoped +@SuppressWarnings("restriction") public class PmvDetailBean { - private static final Logger LOGGER = Logger.getLogger(PmvDetailBean.class); private String appName; private String pmVersion; private String pmvName; From 120975f0bea845989e7ffa31860d2bedca0ff3a5 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Wed, 12 Nov 2025 09:25:36 +0100 Subject: [PATCH 16/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ivyteam/enginecockpit/application/model/Application.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java index 81a7dcf9e..0d80b6dd8 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java @@ -15,7 +15,7 @@ import ch.ivyteam.ivy.security.ISecurityContext; import ch.ivyteam.ivy.workflow.WorkflowNavigationUtil; -@SuppressWarnings("removal") +@SuppressWarnings({"removal", "unused"}) public class Application implements AppTreeItem { private String fileDir; @@ -42,6 +42,7 @@ public Application(IApplication app) { this(app, null); } + @SuppressWarnings("restriction") public Application(IApplication app, ApplicationBean bean) { this.app = (IApplicationInternal) app; fileDir = app.getFileDirectory(); @@ -220,7 +221,6 @@ public IApplicationInternal app() { return app; } - @SuppressWarnings("deprecation") public List getWebServiceProcesses() { if (webServiceProcesses == null) { // webServiceProcesses = app.getProcessModels().stream() @@ -234,7 +234,6 @@ public List getWebServiceProcesses() { return webServiceProcesses; } - @SuppressWarnings("restriction") public boolean hasReleasedProcessModelVersion() { // return app.getProcessModels() // .stream() From 32c8fc6f4fe54ea43087b6d2a03aa459eea144ae Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Tue, 2 Dec 2025 13:57:12 +0100 Subject: [PATCH 17/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webContent/includes/dialogs/deployment.xhtml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/engine-cockpit/webContent/includes/dialogs/deployment.xhtml b/engine-cockpit/webContent/includes/dialogs/deployment.xhtml index dbc92a975..7b9fe355f 100644 --- a/engine-cockpit/webContent/includes/dialogs/deployment.xhtml +++ b/engine-cockpit/webContent/includes/dialogs/deployment.xhtml @@ -45,17 +45,6 @@ - - - - - - - - - From 5bfd817337b789aad96769bf3b284e5245edab2d Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Tue, 2 Dec 2025 13:58:19 +0100 Subject: [PATCH 18/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- maven-config/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maven-config/pom.xml b/maven-config/pom.xml index d164d1fa5..8393e53c4 100644 --- a/maven-config/pom.xml +++ b/maven-config/pom.xml @@ -11,7 +11,7 @@ 1.7.3 13.2.0-SNAPSHOT 13.2.0-SNAPSHOT - 13.2.0-SNAPSHOT + 13.2.999-SNAPSHOT true From d449424fcc0efa22b5025c42ed9fac59aa6cac2b Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Tue, 2 Dec 2025 15:22:54 +0100 Subject: [PATCH 19/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/integration/Jenkinsfile | 2 +- build/integration/windows/Jenkinsfile | 2 +- build/screenshots/Jenkinsfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/integration/Jenkinsfile b/build/integration/Jenkinsfile index 512d9b566..4224194bb 100644 --- a/build/integration/Jenkinsfile +++ b/build/integration/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { } parameters { - string(name: 'engineSource', defaultValue: 'https://product.ivyteam.io', description: 'Engine page url') + string(name: 'engineSource', defaultValue: 'https://jenkins.ivyteam.io/job/core_product/job/kingfisher/', description: 'Engine page url') string(name: 'testFilter', defaultValue: 'WebTest*.java', description: 'Change to only run tests of the matching classes (flag will be gnored on master)') } diff --git a/build/integration/windows/Jenkinsfile b/build/integration/windows/Jenkinsfile index cbd39fed2..8faec964d 100644 --- a/build/integration/windows/Jenkinsfile +++ b/build/integration/windows/Jenkinsfile @@ -16,7 +16,7 @@ pipeline { } parameters { - string(name: 'engineSource', defaultValue: 'https://product.ivyteam.io', description: 'Engine page url') + string(name: 'engineSource', defaultValue: 'https://jenkins.ivyteam.io/job/core_product/job/kingfisher/', description: 'Engine page url') } stages { diff --git a/build/screenshots/Jenkinsfile b/build/screenshots/Jenkinsfile index 8db3b88ad..3ebd73f0d 100644 --- a/build/screenshots/Jenkinsfile +++ b/build/screenshots/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { } parameters { - string(name: 'engineSource', defaultValue: 'https://product.ivyteam.io', description: 'Engine page url') + string(name: 'engineSource', defaultValue: 'https://jenkins.ivyteam.io/job/core_product/job/kingfisher/', description: 'Engine page url') } stages { From 5dbe075ed5ea2ef7ff2837d5b03fa54f90ed2624 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Mon, 29 Dec 2025 12:10:24 +0100 Subject: [PATCH 20/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- maven-config/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maven-config/pom.xml b/maven-config/pom.xml index 9e3157ccb..67fda7d4a 100644 --- a/maven-config/pom.xml +++ b/maven-config/pom.xml @@ -8,7 +8,7 @@ com.axonivy.ivy.api ivy-project-parent - 14.0.0-SNAPSHOT + 14.0.999-SNAPSHOT From 4794edd59b55752ae24871674a9723e1f310569e Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Mon, 29 Dec 2025 12:12:42 +0100 Subject: [PATCH 21/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ch/ivyteam/enginecockpit/application/model/Application.java | 1 - 1 file changed, 1 deletion(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java index d159543ad..0d80b6dd8 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java @@ -234,7 +234,6 @@ public List getWebServiceProcesses() { return webServiceProcesses; } - @Override public boolean hasReleasedProcessModelVersion() { // return app.getProcessModels() // .stream() From b6453fe0f4e78a66d031d64e1d3048db3fc681a1 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Mon, 29 Dec 2025 12:24:24 +0100 Subject: [PATCH 22/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java | 1 - .../ch/ivyteam/enginecockpit/application/model/Application.java | 1 - 2 files changed, 2 deletions(-) diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java index 0f0962beb..73661d79a 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/PmvDetailBean.java @@ -15,7 +15,6 @@ @ManagedBean @ViewScoped -@SuppressWarnings("restriction") public class PmvDetailBean { private String appName; diff --git a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java index 0d80b6dd8..532152983 100644 --- a/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java +++ b/engine-cockpit/src/ch/ivyteam/enginecockpit/application/model/Application.java @@ -42,7 +42,6 @@ public Application(IApplication app) { this(app, null); } - @SuppressWarnings("restriction") public Application(IApplication app, ApplicationBean bean) { this.app = (IApplicationInternal) app; fileDir = app.getFileDirectory(); From ec8359bb1236de23661864b386f180f16ca0df69 Mon Sep 17 00:00:00 2001 From: Alexander Suter Date: Wed, 21 Jan 2026 11:24:42 +0100 Subject: [PATCH 23/23] =?UTF-8?q?=F0=9F=90=B5=F0=9F=90=B6=F0=9F=90=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/ch/ivyteam/enginecockpit/util/Tab.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine-cockpit-selenium-test/test/ch/ivyteam/enginecockpit/util/Tab.java b/engine-cockpit-selenium-test/test/ch/ivyteam/enginecockpit/util/Tab.java index 02cfb197c..454bb002d 100644 --- a/engine-cockpit-selenium-test/test/ch/ivyteam/enginecockpit/util/Tab.java +++ b/engine-cockpit-selenium-test/test/ch/ivyteam/enginecockpit/util/Tab.java @@ -17,7 +17,7 @@ public class Tab { - public static String DEFAULT_APP = isDesigner() ? DESIGNER : "test"; + public static String DEFAULT_APP = isDesigner() ? DESIGNER : "test (v1)"; public static final Tab SECURITY_SYSTEM = new Tab( "li.security-system-tab > a",