From b1ce984a4564f48be95121a7573a466811ca34e1 Mon Sep 17 00:00:00 2001 From: chvostek Date: Thu, 9 Jul 2026 19:13:51 +0200 Subject: [PATCH 1/2] [NAE-2461] Create case filter only deployed - add deploymentState in PetriNetReference - fix wrong call of cacheable method - fix some warnings --- .../petrinet/service/PetriNetService.java | 5 ++- .../petrinet/web/PetriNetController.java | 33 +++++++------------ .../web/responsebodies/PetriNetReference.java | 12 +++---- .../PetriNetReferenceResource.java | 2 +- 4 files changed, 21 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/netgrif/application/engine/petrinet/service/PetriNetService.java b/src/main/java/com/netgrif/application/engine/petrinet/service/PetriNetService.java index 63d476a75c5..7755f6ac32a 100644 --- a/src/main/java/com/netgrif/application/engine/petrinet/service/PetriNetService.java +++ b/src/main/java/com/netgrif/application/engine/petrinet/service/PetriNetService.java @@ -133,10 +133,9 @@ public class PetriNetService implements IPetriNetService { private IUriService uriService; private IElasticPetriNetService elasticPetriNetService; + @Autowired private TaskService taskService; - @Autowired - private IDataService iDataService; @Autowired public void setElasticPetriNetService(IElasticPetriNetService elasticPetriNetService) { @@ -458,7 +457,7 @@ public List getReferencesByUsersProcessRoles(LoggedUser user, @Override public PetriNetReference getReference(String identifier, Version version, LoggedUser user, Locale locale) { - PetriNet net = version == null ? getNewestVersionByIdentifier(identifier) : getPetriNet(identifier, version); + PetriNet net = version == null ? self.getNewestVersionByIdentifier(identifier) : self.getPetriNet(identifier, version); return net != null ? transformToReference(net, locale) : new PetriNetReference(); } diff --git a/src/main/java/com/netgrif/application/engine/petrinet/web/PetriNetController.java b/src/main/java/com/netgrif/application/engine/petrinet/web/PetriNetController.java index ed29ce7f6a6..50eaf9b8a4a 100644 --- a/src/main/java/com/netgrif/application/engine/petrinet/web/PetriNetController.java +++ b/src/main/java/com/netgrif/application/engine/petrinet/web/PetriNetController.java @@ -14,7 +14,6 @@ import com.netgrif.application.engine.petrinet.service.interfaces.IPetriNetService; import com.netgrif.application.engine.petrinet.service.interfaces.IProcessRoleService; import com.netgrif.application.engine.petrinet.web.responsebodies.*; -import com.netgrif.application.engine.workflow.domain.FileStorageConfiguration; import com.netgrif.application.engine.workflow.domain.eventoutcomes.petrinetoutcomes.ImportPetriNetEventOutcome; import com.netgrif.application.engine.workflow.domain.eventoutcomes.response.EventOutcomeWithMessage; import com.netgrif.application.engine.workflow.domain.eventoutcomes.response.EventOutcomeWithMessageResource; @@ -46,7 +45,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; import java.util.Collections; @@ -66,9 +64,6 @@ public class PetriNetController { private static final Logger log = LoggerFactory.getLogger(PetriNetController.class); - @Autowired - private FileStorageConfiguration fileStorageConfiguration; - @Autowired private IPetriNetService service; @@ -85,14 +80,10 @@ public class PetriNetController { private AsyncRunner asyncRunner; public static String decodeUrl(String s1) { - try { - if (s1 == null) - return null; - return URLDecoder.decode(s1, StandardCharsets.UTF_8.name()); - } catch (UnsupportedEncodingException e) { - log.error("Decoding URL failed: ", e); - return ""; + if (s1 == null) { + return null; } + return URLDecoder.decode(s1, StandardCharsets.UTF_8); } @PreAuthorize("@authorizationService.hasAuthority('ADMIN')") @@ -106,8 +97,8 @@ public static String decodeUrl(String s1) { }) @PostMapping(value = "/import", produces = MediaTypes.HAL_JSON_VALUE) public EntityModel importPetriNet( - @RequestParam(value = "file", required = true) MultipartFile multipartFile, - @RequestParam(value = "uriNodeId", required = true) String uriNodeId, + @RequestParam(value = "file") MultipartFile multipartFile, + @RequestParam(value = "uriNodeId") String uriNodeId, @RequestParam(value = "meta", required = false) String releaseType, Authentication auth, Locale locale) throws MissingPetriNetMetaDataException, MissingIconKeyException { try { @@ -129,7 +120,7 @@ public PetriNetReferenceResources getAll(@RequestParam(value = "indentifier", re return new PetriNetReferenceResources(service.getReferencesByIdentifier(identifier, user, locale)); } else if (identifier == null && version != null) { return new PetriNetReferenceResources(service.getReferencesByVersion(converter.convert(version), user, locale)); - } else if (identifier != null && version != null) { + } else if (identifier != null) { return new PetriNetReferenceResources(Collections.singletonList(service.getReference(identifier, converter.convert(version), user, locale))); } else { return new PetriNetReferenceResources(service.getReferences(user, locale)); @@ -138,13 +129,13 @@ public PetriNetReferenceResources getAll(@RequestParam(value = "indentifier", re @Operation(summary = "Get process by id", security = {@SecurityRequirement(name = "BasicAuth")}) @GetMapping(value = "/{id}", produces = MediaTypes.HAL_JSON_VALUE) - public PetriNetReferenceResource getOne(@PathVariable("id") String id, Authentication auth, Locale locale) { + public PetriNetReferenceResource getOne(@PathVariable String id, Locale locale) { return new PetriNetReferenceResource(IPetriNetService.transformToReference(service.getPetriNet(decodeUrl(id)), locale)); } @Operation(summary = "Get process by identifier and version", security = {@SecurityRequirement(name = "BasicAuth")}) @GetMapping(value = "/{identifier}/{version}", produces = MediaTypes.HAL_JSON_VALUE) - public PetriNetReferenceResource getOne(@PathVariable("identifier") String identifier, @PathVariable("version") String version, Authentication auth, Locale locale) { + public PetriNetReferenceResource getOne(@PathVariable String identifier, @PathVariable String version, Authentication auth, Locale locale) { String resolvedIdentifier = Base64.isBase64(identifier) ? new String(Base64.decodeBase64(identifier)) : identifier; return new PetriNetReferenceResource(service.getReference(resolvedIdentifier, converter.convert(version), (LoggedUser) auth.getPrincipal(), locale)); } @@ -164,14 +155,14 @@ public DataFieldReferencesResource getDataFieldReferences(@RequestBody List searchElasticPetriNets(@RequestBody PetriN public MessageResource deletePetriNet(@PathVariable("id") String processId, Authentication auth) { String decodedProcessId = decodeUrl(processId); if (Objects.equals(decodedProcessId, "")) { - log.error("Deleting Petri net [" + processId + "] failed: could not decode process ID from URL"); + log.error("Deleting Petri net [{}] failed: could not decode process ID from URL", processId); return MessageResource.errorMessage("Deleting Petri net " + processId + " failed!"); } LoggedUser user = (LoggedUser) auth.getPrincipal(); diff --git a/src/main/java/com/netgrif/application/engine/petrinet/web/responsebodies/PetriNetReference.java b/src/main/java/com/netgrif/application/engine/petrinet/web/responsebodies/PetriNetReference.java index ee25b13947d..2e20e31e941 100644 --- a/src/main/java/com/netgrif/application/engine/petrinet/web/responsebodies/PetriNetReference.java +++ b/src/main/java/com/netgrif/application/engine/petrinet/web/responsebodies/PetriNetReference.java @@ -1,10 +1,11 @@ package com.netgrif.application.engine.petrinet.web.responsebodies; - import com.netgrif.application.engine.auth.domain.Author; +import com.netgrif.application.engine.petrinet.domain.DeploymentState; import com.netgrif.application.engine.petrinet.domain.PetriNet; import com.netgrif.application.engine.workflow.web.responsebodies.DataFieldReference; import lombok.Data; +import lombok.EqualsAndHashCode; import java.time.LocalDateTime; import java.util.List; @@ -12,6 +13,7 @@ import java.util.stream.Collectors; @Data +@EqualsAndHashCode(callSuper = true) public class PetriNetReference extends Reference { private String identifier; @@ -22,7 +24,7 @@ public class PetriNetReference extends Reference { private LocalDateTime createdDate; private Author author; private List immediateData; - + private DeploymentState deploymentState; public PetriNetReference() { super(); @@ -37,10 +39,7 @@ public PetriNetReference(String stringId, String identifier, String version, Str } public PetriNetReference(String stringId, String title, String identifier, String version, String initials, String icon, LocalDateTime createdDate, Author author) { - super(stringId, title); - this.identifier = identifier; - this.version = version; - this.initials = initials; + this(stringId, identifier, version, title, initials, null); this.icon = icon; this.createdDate = createdDate; this.author = author; @@ -52,5 +51,6 @@ public PetriNetReference(PetriNet net, Locale locale) { this.createdDate = net.getCreationDate(); this.author = net.getAuthor(); this.immediateData = net.getImmediateFields().stream().map(field -> new DataFieldReference(field, locale)).collect(Collectors.toList()); + this.deploymentState = net.getDeploymentState(); } } \ No newline at end of file diff --git a/src/main/java/com/netgrif/application/engine/petrinet/web/responsebodies/PetriNetReferenceResource.java b/src/main/java/com/netgrif/application/engine/petrinet/web/responsebodies/PetriNetReferenceResource.java index 950fa53fec4..ad504babb3b 100644 --- a/src/main/java/com/netgrif/application/engine/petrinet/web/responsebodies/PetriNetReferenceResource.java +++ b/src/main/java/com/netgrif/application/engine/petrinet/web/responsebodies/PetriNetReferenceResource.java @@ -13,7 +13,7 @@ public PetriNetReferenceResource(PetriNetReference content) { private void buildLinks() { add(WebMvcLinkBuilder.linkTo(WebMvcLinkBuilder - .methodOn(PetriNetController.class).getOne(getContent().getStringId(), null, null)) + .methodOn(PetriNetController.class).getOne(getContent().getStringId(), null)) .withSelfRel()); add(WebMvcLinkBuilder.linkTo(WebMvcLinkBuilder From da30ae1fdbca09c31f98a76e64f25d25f110005b Mon Sep 17 00:00:00 2001 From: chvostek Date: Fri, 10 Jul 2026 08:59:27 +0200 Subject: [PATCH 2/2] [NAE-2461] Create case filter only deployed - fix decoding issues --- .../application/engine/petrinet/web/PetriNetController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/netgrif/application/engine/petrinet/web/PetriNetController.java b/src/main/java/com/netgrif/application/engine/petrinet/web/PetriNetController.java index 50eaf9b8a4a..52b49e72c76 100644 --- a/src/main/java/com/netgrif/application/engine/petrinet/web/PetriNetController.java +++ b/src/main/java/com/netgrif/application/engine/petrinet/web/PetriNetController.java @@ -157,13 +157,14 @@ public DataFieldReferencesResource getDataFieldReferences(@RequestBody List