From 9ae61e8c175ff4785c966bd76b24bc609760489d Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Tue, 12 Mar 2024 18:26:23 +0100 Subject: [PATCH] Throw an exception if the result can't be validated. --- .../jenkinsci/maven/plugins/hpi/TestInsertionMojo.java | 8 +++++++- .../maven/plugins/hpi/TestInsertionMojoTest.java | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jenkinsci/maven/plugins/hpi/TestInsertionMojo.java b/src/main/java/org/jenkinsci/maven/plugins/hpi/TestInsertionMojo.java index cd36c00773..179e489fc3 100644 --- a/src/main/java/org/jenkinsci/maven/plugins/hpi/TestInsertionMojo.java +++ b/src/main/java/org/jenkinsci/maven/plugins/hpi/TestInsertionMojo.java @@ -10,6 +10,7 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.attribute.FileTime; +import javax.lang.model.SourceVersion; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.versioning.ArtifactVersion; import org.apache.maven.artifact.versioning.DefaultArtifactVersion; @@ -182,11 +183,16 @@ public void execute() throws MojoExecutionException, MojoFailureException { } } - static String legalizePackageName(@NonNull String input) { + static String legalizePackageName(@NonNull String input) throws MojoFailureException { String result = input.replace('-', '_'); if (!result.isEmpty() && Character.isDigit(result.charAt(0))) { result = "_" + result; } + if (!SourceVersion.isName(result)) { + throw new MojoFailureException( + "Could not convert " + input + + " to a legal java package name. Please override \"injectedTestPackage\" with a valid java package name."); + } return result; } } diff --git a/src/test/java/org/jenkinsci/maven/plugins/hpi/TestInsertionMojoTest.java b/src/test/java/org/jenkinsci/maven/plugins/hpi/TestInsertionMojoTest.java index 4a55d68913..abf5f6daf2 100644 --- a/src/test/java/org/jenkinsci/maven/plugins/hpi/TestInsertionMojoTest.java +++ b/src/test/java/org/jenkinsci/maven/plugins/hpi/TestInsertionMojoTest.java @@ -1,18 +1,23 @@ package org.jenkinsci.maven.plugins.hpi; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; +import org.apache.maven.plugin.MojoExecutionException; import org.junit.Test; public class TestInsertionMojoTest { @Test - public void legalizePackageName() { + public void legalizePackageName() throws Exception { assertEquals( "org.jenkinsci.maven.plugins.hpi", TestInsertionMojo.legalizePackageName("org.jenkinsci.maven.plugins.hpi")); assertEquals( "_123org.jenkins_ci.maven.plugins.hpi", TestInsertionMojo.legalizePackageName("123org.jenkins-ci.maven.plugins.hpi")); + assertThrows( + MojoExecutionException.class, + () -> TestInsertionMojo.legalizePackageName("org.jenkinsci%maven.plugins.hpi")); } }