From 71cdc0691155cacf680fc2b20c5351fa75ea77cd Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Thu, 2 Feb 2023 20:08:56 +0100 Subject: [PATCH] Polish See gh-1370 --- .../actuate/stat/ProjectRequestDocumentFactory.java | 13 ++++++++++--- .../stat/ProjectGenerationStatPublisherTests.java | 2 +- .../test/resources/stat/request-invalid-type.json | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/initializr-actuator/src/main/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactory.java b/initializr-actuator/src/main/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactory.java index 43e0bdb4..51236153 100644 --- a/initializr-actuator/src/main/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactory.java +++ b/initializr-actuator/src/main/java/io/spring/initializr/actuate/stat/ProjectRequestDocumentFactory.java @@ -18,6 +18,8 @@ package io.spring.initializr.actuate.stat; import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import io.spring.initializr.actuate.stat.ProjectRequestDocument.ClientInformation; @@ -38,9 +40,12 @@ import org.springframework.util.StringUtils; * Create {@link ProjectRequestDocument} instances. * * @author Stephane Nicoll + * @author Brian Clozel */ public class ProjectRequestDocumentFactory { + private static final Pattern PROJECT_TYPE_PATTERN = Pattern.compile("([a-z]*)-[a-z-]*"); + public ProjectRequestDocument createDocument(ProjectRequestEvent event) { InitializrMetadata metadata = event.getMetadata(); ProjectRequest request = event.getProjectRequest(); @@ -97,9 +102,11 @@ public class ProjectRequestDocumentFactory { } private String determineBuildSystem(ProjectRequest request) { - String type = request.getType(); - String[] elements = type.split("-"); - return (elements.length >= 2) ? elements[0] : null; + Matcher typeMatcher = PROJECT_TYPE_PATTERN.matcher(request.getType()); + if (typeMatcher.matches()) { + return typeMatcher.group(1); + } + return null; } private VersionInformation determineVersionInformation(ProjectRequest request) { diff --git a/initializr-actuator/src/test/java/io/spring/initializr/actuate/stat/ProjectGenerationStatPublisherTests.java b/initializr-actuator/src/test/java/io/spring/initializr/actuate/stat/ProjectGenerationStatPublisherTests.java index f633d8de..e1da3ac4 100755 --- a/initializr-actuator/src/test/java/io/spring/initializr/actuate/stat/ProjectGenerationStatPublisherTests.java +++ b/initializr-actuator/src/test/java/io/spring/initializr/actuate/stat/ProjectGenerationStatPublisherTests.java @@ -185,7 +185,7 @@ class ProjectGenerationStatPublisherTests { ProjectRequest request = createProjectRequest(); request.setGroupId("com.example.acme"); request.setArtifactId("test"); - request.setType("not-a-type"); + request.setType("not_a_type"); request.setBootVersion("2.1.0.RELEASE"); request.setDependencies(Arrays.asList("web", "data-jpa")); request.setLanguage("java"); diff --git a/initializr-actuator/src/test/resources/stat/request-invalid-type.json b/initializr-actuator/src/test/resources/stat/request-invalid-type.json index c023eb9a..7bc14e90 100644 --- a/initializr-actuator/src/test/resources/stat/request-invalid-type.json +++ b/initializr-actuator/src/test/resources/stat/request-invalid-type.json @@ -1,6 +1,6 @@ { "generationTimestamp": 0, - "type": "not-a-type", + "type": "not_a_type", "groupId": "com.example.acme", "artifactId": "test", "javaVersion": "1.8",