From d87a1f891e4d020ed6bffa4514a24aa0e059d841 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Thu, 23 Jan 2025 15:12:37 +0000 Subject: [PATCH 1/2] Switch to spotless and PNC formatting --- pom.xml | 127 +++------------- .../jboss/pnc/konfluxtooling/EntryPoint.java | 16 +- .../deploy/CopyArtifactsCommand.java | 22 ++- .../konfluxtooling/deploy/DeployCommand.java | 9 +- .../deploy/MavenRepositoryDeployer.java | 34 +++-- .../logging/UploadLogCommand.java | 23 ++- .../notification/NotifyCommand.java | 7 +- .../deploy/CopyArtifactsCommandTest.java | 142 ++++++++++++++---- .../deploy/MavenDeployTest.java | 42 ++++-- .../notification/NotificationTest.java | 20 ++- .../notification/WireMockExtensions.java | 8 +- .../prebuild/PreprocessorTest.java | 8 +- 12 files changed, 268 insertions(+), 190 deletions(-) diff --git a/pom.xml b/pom.xml index fab3175..88044e8 100644 --- a/pom.xml +++ b/pom.xml @@ -55,10 +55,6 @@ 3.17.3 1.18.32 - 2.24.1 - 1.12.0 - - false @@ -184,37 +180,36 @@ - net.revelc.code.formatter - formatter-maven-plugin - ${formatter-maven-plugin.version} + com.diffplug.spotless + spotless-maven-plugin + 2.44.2 - io.quarkus - quarkus-ide-config - ${quarkus.platform.version} + org.jboss.pnc + ide-config + 1.0.0 - - .cache/formatter-maven-plugin-${formatter-maven-plugin.version} - eclipse-format.xml - LF - ${format.skip} - - - - net.revelc.code - impsort-maven-plugin - ${impsort-maven-plugin.version} - - - .cache/impsort-maven-plugin-${impsort-maven-plugin.version} - java.,javax.,jakarta.,org.,com. - * - LF - ${format.skip} - true + + + + java,javax,jakarta,org,com + + + java-formatter.xml + + UNIX + + + + + apply + + compile + + org.apache.maven.plugins @@ -241,79 +236,5 @@ true - - format - - true - - !validate-format - - - - - - net.revelc.code.formatter - formatter-maven-plugin - - - process-sources - - format - - - - - - net.revelc.code - impsort-maven-plugin - - - sort-imports - - sort - - - - - - - - - validate - - false - - validate-format - - - - - - net.revelc.code.formatter - formatter-maven-plugin - - - process-sources - - validate - - - - - - net.revelc.code - impsort-maven-plugin - - - check-imports - - check - - - - - - - diff --git a/src/main/java/org/jboss/pnc/konfluxtooling/EntryPoint.java b/src/main/java/org/jboss/pnc/konfluxtooling/EntryPoint.java index 3ce2496..3bd3f3c 100644 --- a/src/main/java/org/jboss/pnc/konfluxtooling/EntryPoint.java +++ b/src/main/java/org/jboss/pnc/konfluxtooling/EntryPoint.java @@ -10,12 +10,14 @@ import picocli.CommandLine; @TopCommand -@CommandLine.Command(mixinStandardHelpOptions = true, subcommands = { - CopyArtifactsCommand.class, - DeployCommand.class, - UploadLogCommand.class, - NotifyCommand.class, - PreprocessorCommand.class -}) +@CommandLine.Command( + mixinStandardHelpOptions = true, + subcommands = { + CopyArtifactsCommand.class, + DeployCommand.class, + UploadLogCommand.class, + NotifyCommand.class, + PreprocessorCommand.class + }) public class EntryPoint { } diff --git a/src/main/java/org/jboss/pnc/konfluxtooling/deploy/CopyArtifactsCommand.java b/src/main/java/org/jboss/pnc/konfluxtooling/deploy/CopyArtifactsCommand.java index 9781d48..116124a 100644 --- a/src/main/java/org/jboss/pnc/konfluxtooling/deploy/CopyArtifactsCommand.java +++ b/src/main/java/org/jboss/pnc/konfluxtooling/deploy/CopyArtifactsCommand.java @@ -52,8 +52,19 @@ public void run() { Log.warnf("Skipping POM %s with invalid version %s", fileName, version); } else { var packaging = project.getPackaging(); - var gav = new Gav(project.getGroupId(), project.getArtifactId(), version, null, packaging, null, - null, null, false, null, false, null); + var gav = new Gav( + project.getGroupId(), + project.getArtifactId(), + version, + null, + packaging, + null, + null, + null, + false, + null, + false, + null); var existingPath = pomFiles.get(gav); @@ -106,14 +117,17 @@ public void run() { var jarDestFile = Path.of(fullPath + ".jar"); var jarName = jarDestFile.getFileName().toString(); - var files = jarFiles.stream().filter(jarPath -> jarPath.getFileName().toString().equals(jarName)).toList(); + var files = jarFiles.stream() + .filter(jarPath -> jarPath.getFileName().toString().equals(jarName)) + .toList(); var jarSourceFile = (Path) null; if (!files.isEmpty()) { jarSourceFile = files.get(0); } else { var unversionedJarName = jarName.replace("-" + gav.getVersion(), ""); - files = jarFiles.stream().filter(jarPath -> jarPath.getFileName().toString().equals(unversionedJarName)) + files = jarFiles.stream() + .filter(jarPath -> jarPath.getFileName().toString().equals(unversionedJarName)) .toList(); if (!files.isEmpty()) { diff --git a/src/main/java/org/jboss/pnc/konfluxtooling/deploy/DeployCommand.java b/src/main/java/org/jboss/pnc/konfluxtooling/deploy/DeployCommand.java index f33acfb..1514ee5 100644 --- a/src/main/java/org/jboss/pnc/konfluxtooling/deploy/DeployCommand.java +++ b/src/main/java/org/jboss/pnc/konfluxtooling/deploy/DeployCommand.java @@ -90,8 +90,13 @@ public void run() { } } // Maven Repo Deployment - MavenRepositoryDeployer deployer = new MavenRepositoryDeployer(mvnCtx, mvnUser, mvnPassword.orElse(""), mvnRepo, - serverId, deploymentPath); + MavenRepositoryDeployer deployer = new MavenRepositoryDeployer( + mvnCtx, + mvnUser, + mvnPassword.orElse(""), + mvnRepo, + serverId, + deploymentPath); deployer.deploy(); } catch (Exception e) { Log.error("Deployment failed", e); diff --git a/src/main/java/org/jboss/pnc/konfluxtooling/deploy/MavenRepositoryDeployer.java b/src/main/java/org/jboss/pnc/konfluxtooling/deploy/MavenRepositoryDeployer.java index 3daada2..19194ca 100644 --- a/src/main/java/org/jboss/pnc/konfluxtooling/deploy/MavenRepositoryDeployer.java +++ b/src/main/java/org/jboss/pnc/konfluxtooling/deploy/MavenRepositoryDeployer.java @@ -41,8 +41,13 @@ public class MavenRepositoryDeployer { private final String serverId; - public MavenRepositoryDeployer(BootstrapMavenContext mvnCtx, String username, String password, String repository, - String serverId, Path artifacts) + public MavenRepositoryDeployer( + BootstrapMavenContext mvnCtx, + String username, + String password, + String repository, + String serverId, + Path artifacts) throws BootstrapMavenException { this.username = username; this.password = password; @@ -59,14 +64,17 @@ public MavenRepositoryDeployer(BootstrapMavenContext mvnCtx, String username, St public void deploy() throws IOException { RemoteRepository result; - RemoteRepository initial = new RemoteRepository.Builder(serverId, + RemoteRepository initial = new RemoteRepository.Builder( + serverId, "default", repository).build(); RemoteRepository.Builder builder = new RemoteRepository.Builder(initial); if (isNotEmpty(username)) { - builder.setAuthentication(new AuthenticationBuilder().addUsername(username) - .addPassword(password).build()); + builder.setAuthentication( + new AuthenticationBuilder().addUsername(username) + .addPassword(password) + .build()); } else { builder.setAuthentication(session.getAuthenticationSelector().getAuthentication(initial)); } @@ -77,7 +85,8 @@ public void deploy() Log.infof("Configured repository %s", result); - Files.walkFileTree(artifacts, + Files.walkFileTree( + artifacts, new SimpleFileVisitor<>() { @Override @@ -91,11 +100,14 @@ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) if (relative.getNameCount() <= 2) { Log.errorf( "Invalid repository format. Local directory is '%s' with relative path '%s' and not enough components to calculate groupId and artifactId", - artifacts, relative); + artifacts, + relative); } // If we're in org/foobar/artifact/1.0 then the group is two up and the artifact is one up. - String group = relative.getParent().getParent().toString().replace(File.separatorChar, - '.'); + String group = relative.getParent() + .getParent() + .toString() + .replace(File.separatorChar, '.'); String artifact = relative.getParent().getFileName().toString(); String version = dir.getFileName().toString(); Log.info( @@ -108,7 +120,9 @@ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) for (var i : files) { Matcher matcher = p.matcher(i.getFileName().toString()); if (matcher.matches()) { - Artifact jarArtifact = new DefaultArtifact(group, artifact, + Artifact jarArtifact = new DefaultArtifact( + group, + artifact, matcher.group(2), matcher.group(3), version); diff --git a/src/main/java/org/jboss/pnc/konfluxtooling/logging/UploadLogCommand.java b/src/main/java/org/jboss/pnc/konfluxtooling/logging/UploadLogCommand.java index eed2788..b61b8e6 100644 --- a/src/main/java/org/jboss/pnc/konfluxtooling/logging/UploadLogCommand.java +++ b/src/main/java/org/jboss/pnc/konfluxtooling/logging/UploadLogCommand.java @@ -38,19 +38,27 @@ public class UploadLogCommand implements Runnable { @CommandLine.Option(names = "--max-retries") int maxRetries = DEFAULT_MAX_RETRIES; - @CommandLine.Option(names = "--delay-seconds", description = "in case of retries this is the delay in seconds before next retry") + @CommandLine.Option( + names = "--delay-seconds", + description = "in case of retries this is the delay in seconds before next retry") int delaySeconds = DEFAULT_DELAY_SECONDS; - @CommandLine.Option(names = "--process-context", description = "id of an long running operation (in this case the build-id is used)") + @CommandLine.Option( + names = "--process-context", + description = "id of an long running operation (in this case the build-id is used)") String processContext; - @CommandLine.Option(names = "--process-context-variant", description = "in case there are subtasks or retries of individual steps this field can be used to add another ID") + @CommandLine.Option( + names = "--process-context-variant", + description = "in case there are subtasks or retries of individual steps this field can be used to add another ID") String processContextVariant; @CommandLine.Option(names = "--tmp", description = "temp build or not, used for a log clean-up") String tmp = "false"; - @CommandLine.Option(names = "--request-context", description = "an id of the initial (http) request that triggered this and potentially other processes") + @CommandLine.Option( + names = "--request-context", + description = "an id of the initial (http) request that triggered this and potentially other processes") String requestContext; public void run() { @@ -62,8 +70,8 @@ public void run() { var logFilePath = Path.of(logFile); var file = logFilePath.toFile(); if (!file.exists()) { - throw new RuntimeException(String.format( - "No log file found at %s. Has the build been correctly done?", logFilePath)); + throw new RuntimeException( + String.format("No log file found at %s. Has the build been correctly done?", logFilePath)); } var md5 = getMD5(logFilePath); uploadLogsToBifrost(file, md5); @@ -80,7 +88,8 @@ private String getMD5(Path logFilePath) throws Exception { } private void uploadLogsToBifrost(File logFile, String md5) { - BifrostLogUploader logUploader = new BifrostLogUploader(URI.create(bifrostURL), + BifrostLogUploader logUploader = new BifrostLogUploader( + URI.create(bifrostURL), maxRetries, delaySeconds, () -> accessToken.orElse("")); diff --git a/src/main/java/org/jboss/pnc/konfluxtooling/notification/NotifyCommand.java b/src/main/java/org/jboss/pnc/konfluxtooling/notification/NotifyCommand.java index f79b9d5..66de900 100644 --- a/src/main/java/org/jboss/pnc/konfluxtooling/notification/NotifyCommand.java +++ b/src/main/java/org/jboss/pnc/konfluxtooling/notification/NotifyCommand.java @@ -51,8 +51,11 @@ public void run() { Request callback = objectMapper.readValue(context, Request.class); Log.infof("Notification for build %s with status %s and callback %s", buildId, status, callback); - PipelineNotification notification = PipelineNotification.builder().buildId(buildId).status(status) - .completionCallback((Request) callback.getAttachment()).build(); + PipelineNotification notification = PipelineNotification.builder() + .buildId(buildId) + .status(status) + .completionCallback((Request) callback.getAttachment()) + .build(); String body = objectMapper.writeValueAsString(notification); HttpRequest.Builder builder = HttpRequest.newBuilder() diff --git a/src/test/java/org/jboss/pnc/konfluxtooling/deploy/CopyArtifactsCommandTest.java b/src/test/java/org/jboss/pnc/konfluxtooling/deploy/CopyArtifactsCommandTest.java index a2e7eca..796fcf6 100644 --- a/src/test/java/org/jboss/pnc/konfluxtooling/deploy/CopyArtifactsCommandTest.java +++ b/src/test/java/org/jboss/pnc/konfluxtooling/deploy/CopyArtifactsCommandTest.java @@ -15,7 +15,10 @@ import io.quarkus.test.junit.QuarkusTest; @QuarkusTest -@QuarkusTestResource(value = LogCollectingTestResource.class, restrictToAnnotatedClass = true, initArgs = @ResourceArg(name = LogCollectingTestResource.LEVEL, value = "FINE")) +@QuarkusTestResource( + value = LogCollectingTestResource.class, + restrictToAnnotatedClass = true, + initArgs = @ResourceArg(name = LogCollectingTestResource.LEVEL, value = "FINE")) class CopyArtifactsCommandTest { @BeforeEach void clearLogs() { @@ -38,18 +41,34 @@ void testDeployArtifacts(String dir, String logMessage, String... artifacts) thr } try (var stream = Files.walk(command.deployPath)) { - assertThat(stream).filteredOn(Files::isRegularFile).map(path -> path.getFileName().toString()) + assertThat(stream).filteredOn(Files::isRegularFile) + .map(path -> path.getFileName().toString()) .containsExactlyInAnyOrder(artifacts); } } @Test void testAsm() throws IOException { - testDeployArtifacts("asm", "Skipping POM asm-all.pom with invalid version @product.artifact@", "asm-5.0.3.jar", - "asm-5.0.3.pom", "asm-all-5.0.3.jar", "asm-all-5.0.3.pom", - "asm-analysis-5.0.3.jar", "asm-analysis-5.0.3.pom", "asm-commons-5.0.3.jar", "asm-commons-5.0.3.pom", - "asm-debug-all-5.0.3.jar", "asm-debug-all-5.0.3.pom", "asm-parent-5.0.3.pom", "asm-tree-5.0.3.jar", - "asm-tree-5.0.3.pom", "asm-util-5.0.3.jar", "asm-util-5.0.3.pom", "asm-xml-5.0.3.jar", "asm-xml-5.0.3.pom"); + testDeployArtifacts( + "asm", + "Skipping POM asm-all.pom with invalid version @product.artifact@", + "asm-5.0.3.jar", + "asm-5.0.3.pom", + "asm-all-5.0.3.jar", + "asm-all-5.0.3.pom", + "asm-analysis-5.0.3.jar", + "asm-analysis-5.0.3.pom", + "asm-commons-5.0.3.jar", + "asm-commons-5.0.3.pom", + "asm-debug-all-5.0.3.jar", + "asm-debug-all-5.0.3.pom", + "asm-parent-5.0.3.pom", + "asm-tree-5.0.3.jar", + "asm-tree-5.0.3.pom", + "asm-util-5.0.3.jar", + "asm-util-5.0.3.pom", + "asm-xml-5.0.3.jar", + "asm-xml-5.0.3.pom"); } @Test @@ -59,49 +78,108 @@ void testBeanshell() throws IOException { @Test void testIcu4J() throws IOException { - testDeployArtifacts("icu4j", "", "icu4j-71.1.jar", "icu4j-71.1.pom", "icu4j-charset-71.1.jar", "icu4j-charset-71.1.pom", - "icu4j-localespi-71.1.jar", "icu4j-localespi-71.1.pom"); + testDeployArtifacts( + "icu4j", + "", + "icu4j-71.1.jar", + "icu4j-71.1.pom", + "icu4j-charset-71.1.jar", + "icu4j-charset-71.1.pom", + "icu4j-localespi-71.1.jar", + "icu4j-localespi-71.1.pom"); } @Test void testJdom() throws IOException { - testDeployArtifacts("jdom", "Skipping POM maven.pom with invalid version @version@", "jdom2-2.x-2024.03.01.10.00.jar", + testDeployArtifacts( + "jdom", + "Skipping POM maven.pom with invalid version @version@", + "jdom2-2.x-2024.03.01.10.00.jar", "jdom2-2.x-2024.03.01.10.00.pom"); } @Test void testLombok() throws IOException { - testDeployArtifacts("lombok", "Skipping POM pom.xml with invalid version 1.0-SNAPSHOT", "lombok-1.18.24.jar", + testDeployArtifacts( + "lombok", + "Skipping POM pom.xml with invalid version 1.0-SNAPSHOT", + "lombok-1.18.24.jar", "lombok-1.18.24.pom"); } @Test void testLz4Java() throws IOException { - testDeployArtifacts("lz4-java", "", "lz4-java-1.8.0.jar", "lz4-java-1.8.0.pom", "lz4-pure-java-1.8.0.jar", + testDeployArtifacts( + "lz4-java", + "", + "lz4-java-1.8.0.jar", + "lz4-java-1.8.0.pom", + "lz4-pure-java-1.8.0.jar", "lz4-pure-java-1.8.0.pom"); } @Test void testTomcat() throws IOException { - testDeployArtifacts("tomcat", "Skipping POM tomcat-annotations-api.pom with invalid version @MAVEN.DEPLOY.VERSION@", - "tomcat-annotations-api-10.1.19.jar", "tomcat-annotations-api-10.1.19.pom", "tomcat-api-10.1.19.jar", - "tomcat-api-10.1.19.pom", "tomcat-catalina-10.1.19.jar", "tomcat-catalina-10.1.19.pom", - "tomcat-catalina-ant-10.1.19.jar", "tomcat-catalina-ant-10.1.19.pom", "tomcat-catalina-ha-10.1.19.jar", - "tomcat-catalina-ha-10.1.19.pom", "tomcat-coyote-10.1.19.jar", "tomcat-coyote-10.1.19.pom", - "tomcat-dbcp-10.1.19.jar", "tomcat-dbcp-10.1.19.pom", "tomcat-el-api-10.1.19.jar", "tomcat-el-api-10.1.19.pom", - "tomcat-embed-core-10.1.19.jar", "tomcat-embed-core-10.1.19.pom", "tomcat-embed-el-10.1.19.jar", - "tomcat-embed-el-10.1.19.pom", "tomcat-embed-jasper-10.1.19.jar", "tomcat-embed-jasper-10.1.19.pom", - "tomcat-embed-programmatic-10.1.19.jar", "tomcat-embed-programmatic-10.1.19.pom", - "tomcat-embed-websocket-10.1.19.jar", "tomcat-embed-websocket-10.1.19.pom", "tomcat-jasper-10.1.19.jar", - "tomcat-jasper-10.1.19.pom", "tomcat-jasper-el-10.1.19.jar", "tomcat-jasper-el-10.1.19.pom", - "tomcat-jaspic-api-10.1.19.jar", "tomcat-jaspic-api-10.1.19.pom", "tomcat-jdbc-10.1.19.jar", - "tomcat-jdbc-10.1.19.pom", "tomcat-jni-10.1.19.jar", "tomcat-jni-10.1.19.pom", "tomcat-jsp-api-10.1.19.jar", - "tomcat-jsp-api-10.1.19.pom", "tomcat-juli-10.1.19.jar", "tomcat-juli-10.1.19.pom", - "tomcat-servlet-api-10.1.19.jar", "tomcat-servlet-api-10.1.19.pom", "tomcat-ssi-10.1.19.jar", - "tomcat-ssi-10.1.19.pom", "tomcat-storeconfig-10.1.19.jar", "tomcat-storeconfig-10.1.19.pom", - "tomcat-tribes-10.1.19.jar", "tomcat-tribes-10.1.19.pom", "tomcat-util-10.1.19.jar", "tomcat-util-10.1.19.pom", - "tomcat-util-scan-10.1.19.jar", "tomcat-util-scan-10.1.19.pom", "tomcat-websocket-10.1.19.jar", - "tomcat-websocket-10.1.19.pom", "tomcat-websocket-api-10.1.19.jar", "tomcat-websocket-api-10.1.19.pom", - "tomcat-websocket-client-api-10.1.19.jar", "tomcat-websocket-client-api-10.1.19.pom"); + testDeployArtifacts( + "tomcat", + "Skipping POM tomcat-annotations-api.pom with invalid version @MAVEN.DEPLOY.VERSION@", + "tomcat-annotations-api-10.1.19.jar", + "tomcat-annotations-api-10.1.19.pom", + "tomcat-api-10.1.19.jar", + "tomcat-api-10.1.19.pom", + "tomcat-catalina-10.1.19.jar", + "tomcat-catalina-10.1.19.pom", + "tomcat-catalina-ant-10.1.19.jar", + "tomcat-catalina-ant-10.1.19.pom", + "tomcat-catalina-ha-10.1.19.jar", + "tomcat-catalina-ha-10.1.19.pom", + "tomcat-coyote-10.1.19.jar", + "tomcat-coyote-10.1.19.pom", + "tomcat-dbcp-10.1.19.jar", + "tomcat-dbcp-10.1.19.pom", + "tomcat-el-api-10.1.19.jar", + "tomcat-el-api-10.1.19.pom", + "tomcat-embed-core-10.1.19.jar", + "tomcat-embed-core-10.1.19.pom", + "tomcat-embed-el-10.1.19.jar", + "tomcat-embed-el-10.1.19.pom", + "tomcat-embed-jasper-10.1.19.jar", + "tomcat-embed-jasper-10.1.19.pom", + "tomcat-embed-programmatic-10.1.19.jar", + "tomcat-embed-programmatic-10.1.19.pom", + "tomcat-embed-websocket-10.1.19.jar", + "tomcat-embed-websocket-10.1.19.pom", + "tomcat-jasper-10.1.19.jar", + "tomcat-jasper-10.1.19.pom", + "tomcat-jasper-el-10.1.19.jar", + "tomcat-jasper-el-10.1.19.pom", + "tomcat-jaspic-api-10.1.19.jar", + "tomcat-jaspic-api-10.1.19.pom", + "tomcat-jdbc-10.1.19.jar", + "tomcat-jdbc-10.1.19.pom", + "tomcat-jni-10.1.19.jar", + "tomcat-jni-10.1.19.pom", + "tomcat-jsp-api-10.1.19.jar", + "tomcat-jsp-api-10.1.19.pom", + "tomcat-juli-10.1.19.jar", + "tomcat-juli-10.1.19.pom", + "tomcat-servlet-api-10.1.19.jar", + "tomcat-servlet-api-10.1.19.pom", + "tomcat-ssi-10.1.19.jar", + "tomcat-ssi-10.1.19.pom", + "tomcat-storeconfig-10.1.19.jar", + "tomcat-storeconfig-10.1.19.pom", + "tomcat-tribes-10.1.19.jar", + "tomcat-tribes-10.1.19.pom", + "tomcat-util-10.1.19.jar", + "tomcat-util-10.1.19.pom", + "tomcat-util-scan-10.1.19.jar", + "tomcat-util-scan-10.1.19.pom", + "tomcat-websocket-10.1.19.jar", + "tomcat-websocket-10.1.19.pom", + "tomcat-websocket-api-10.1.19.jar", + "tomcat-websocket-api-10.1.19.pom", + "tomcat-websocket-client-api-10.1.19.jar", + "tomcat-websocket-client-api-10.1.19.pom"); } } diff --git a/src/test/java/org/jboss/pnc/konfluxtooling/deploy/MavenDeployTest.java b/src/test/java/org/jboss/pnc/konfluxtooling/deploy/MavenDeployTest.java index d5555fb..9266853 100644 --- a/src/test/java/org/jboss/pnc/konfluxtooling/deploy/MavenDeployTest.java +++ b/src/test/java/org/jboss/pnc/konfluxtooling/deploy/MavenDeployTest.java @@ -32,7 +32,10 @@ import io.quarkus.test.junit.QuarkusTest; @QuarkusTest -@QuarkusTestResource(value = LogCollectingTestResource.class, restrictToAnnotatedClass = true, initArgs = @ResourceArg(name = LogCollectingTestResource.LEVEL, value = "FINE")) +@QuarkusTestResource( + value = LogCollectingTestResource.class, + restrictToAnnotatedClass = true, + initArgs = @ResourceArg(name = LogCollectingTestResource.LEVEL, value = "FINE")) public class MavenDeployTest { private static final String GROUP = "com.company.foo"; private static final String VERSION = "3.25.8"; @@ -43,8 +46,10 @@ public class MavenDeployTest { // ArtifactName -> [ collection of Artifacts ] private final Map> ARTIFACT_FILE_MAP = Map.of( - FOO_BAR, Set.of("foo-bar-" + VERSION + ".jar", "foo-bar-" + VERSION + "-tests.jar"), - FOO_BAZ, Set.of("foo-baz-" + VERSION + ".pom")); + FOO_BAR, + Set.of("foo-bar-" + VERSION + ".jar", "foo-bar-" + VERSION + "-tests.jar"), + FOO_BAZ, + Set.of("foo-baz-" + VERSION + ".pom")); @Inject BootstrapMavenContext mvnContext; @@ -71,13 +76,20 @@ public void testDeploy() throws IOException { deployCommand.run(); List logRecords = LogCollectingTestResource.current().getRecords(); - assertTrue(logRecords.stream() - .anyMatch(r -> LogCollectingTestResource.format(r).contains("no pom file found with files"))); - assertTrue(logRecords.stream().anyMatch(r -> LogCollectingTestResource.format(r) - .contains("Deploying [com.company.foo:foo-baz:pom:3.25.8]"))); - assertTrue(logRecords.stream().anyMatch(r -> LogCollectingTestResource.format(r) - .contains( - "Deploying [com.company.foo:foo-bar:jar:tests:3.25.8, com.company.foo:foo-bar:jar:3.25.8, com.company.foo:foo-bar:pom:3.25.8]"))); + assertTrue( + logRecords.stream() + .anyMatch(r -> LogCollectingTestResource.format(r).contains("no pom file found with files"))); + assertTrue( + logRecords.stream() + .anyMatch( + r -> LogCollectingTestResource.format(r) + .contains("Deploying [com.company.foo:foo-baz:pom:3.25.8]"))); + assertTrue( + logRecords.stream() + .anyMatch( + r -> LogCollectingTestResource.format(r) + .contains( + "Deploying [com.company.foo:foo-bar:jar:tests:3.25.8, com.company.foo:foo-bar:jar:3.25.8, com.company.foo:foo-bar:pom:3.25.8]"))); File[] files = Paths.get(deployment.toString(), "com/company/foo/foo-bar/3.25.8").toFile().listFiles(); assertNotNull(files); @@ -95,7 +107,10 @@ private Path createDeploymentRepo() // Add data to artifacts folder for (Map.Entry> artifactFiles : ARTIFACT_FILE_MAP.entrySet()) { String groupPath = GROUP.replace(DOT, File.separator); - Path testDir = Paths.get(artifacts.toString(), groupPath, artifactFiles.getKey(), + Path testDir = Paths.get( + artifacts.toString(), + groupPath, + artifactFiles.getKey(), VERSION); Files.createDirectories(testDir); for (String value : artifactFiles.getValue()) { @@ -108,7 +123,10 @@ private Path createDeploymentRepo() String sha1 = sha1(Files.readAllBytes(testFile)); Files.writeString(shaFile, sha1); } - Optional jarFile = artifactFiles.getValue().stream().filter(s -> s.endsWith(VERSION + ".jar")).findAny(); + Optional jarFile = artifactFiles.getValue() + .stream() + .filter(s -> s.endsWith(VERSION + ".jar")) + .findAny(); if (jarFile.isPresent()) { Path pomFile = Paths.get(testDir.toString(), jarFile.get().replace(".jar", ".pom")); Model model = new Model(); diff --git a/src/test/java/org/jboss/pnc/konfluxtooling/notification/NotificationTest.java b/src/test/java/org/jboss/pnc/konfluxtooling/notification/NotificationTest.java index b74c691..1324510 100644 --- a/src/test/java/org/jboss/pnc/konfluxtooling/notification/NotificationTest.java +++ b/src/test/java/org/jboss/pnc/konfluxtooling/notification/NotificationTest.java @@ -24,7 +24,10 @@ import io.quarkus.test.junit.QuarkusTest; @QuarkusTest -@QuarkusTestResource(value = LogCollectingTestResource.class, restrictToAnnotatedClass = true, initArgs = @ResourceArg(name = LogCollectingTestResource.LEVEL, value = "FINE")) +@QuarkusTestResource( + value = LogCollectingTestResource.class, + restrictToAnnotatedClass = true, + initArgs = @ResourceArg(name = LogCollectingTestResource.LEVEL, value = "FINE")) @QuarkusTestResource(WireMockExtensions.class) public class NotificationTest { @@ -42,8 +45,11 @@ public void testNoNotify() { notifyCommand.buildId = "1234"; notifyCommand.run(); List logRecords = LogCollectingTestResource.current().getRecords(); - assertTrue(logRecords.stream() - .anyMatch(r -> LogCollectingTestResource.format(r).contains("No callback configured ; unable to notify"))); + assertTrue( + logRecords.stream() + .anyMatch( + r -> LogCollectingTestResource.format(r) + .contains("No callback configured ; unable to notify"))); } @Test @@ -64,8 +70,10 @@ public void testNotify() throws IOException, URISyntaxException { notifyCommand.run(); List logRecords = LogCollectingTestResource.current().getRecords(); - assertTrue(logRecords.stream() - .anyMatch(r -> LogCollectingTestResource.format(r) - .contains("Response (PUT http://localhost:8080/internal/completed) 200"))); + assertTrue( + logRecords.stream() + .anyMatch( + r -> LogCollectingTestResource.format(r) + .contains("Response (PUT http://localhost:8080/internal/completed) 200"))); } } diff --git a/src/test/java/org/jboss/pnc/konfluxtooling/notification/WireMockExtensions.java b/src/test/java/org/jboss/pnc/konfluxtooling/notification/WireMockExtensions.java index e57f804..5d1f3f0 100644 --- a/src/test/java/org/jboss/pnc/konfluxtooling/notification/WireMockExtensions.java +++ b/src/test/java/org/jboss/pnc/konfluxtooling/notification/WireMockExtensions.java @@ -24,9 +24,11 @@ public Map start() { wireMockServer.stubFor( put(urlEqualTo("/internal/completed")) .withRequestBody( - equalToJson("{\"status\":\"Succeeded\",\"buildId\":\"1234\",\"completionCallback\":null}")) - .willReturn(aResponse() - .withStatus(200))); + equalToJson( + "{\"status\":\"Succeeded\",\"buildId\":\"1234\",\"completionCallback\":null}")) + .willReturn( + aResponse() + .withStatus(200))); return Map.of("quarkus.rest-client.wiremockextensions.url", wireMockServer.baseUrl()); } diff --git a/src/test/java/org/jboss/pnc/konfluxtooling/prebuild/PreprocessorTest.java b/src/test/java/org/jboss/pnc/konfluxtooling/prebuild/PreprocessorTest.java index 61f3cb0..b9014dd 100644 --- a/src/test/java/org/jboss/pnc/konfluxtooling/prebuild/PreprocessorTest.java +++ b/src/test/java/org/jboss/pnc/konfluxtooling/prebuild/PreprocessorTest.java @@ -21,7 +21,9 @@ public class PreprocessorTest { { - System.setProperty("org.slf4j.simpleLogger.log.com.github.dockerjava.api.command.BuildImageResultCallback", "debug"); + System.setProperty( + "org.slf4j.simpleLogger.log.com.github.dockerjava.api.command.BuildImageResultCallback", + "debug"); } @SystemStub @@ -42,7 +44,9 @@ public void testGenerate(@TempDir Path tempDir) throws IOException, InterruptedE preprocessor.run(); Process process = new ProcessBuilder("buildah", "build", "-f", tempDir.toString() + "/.jbs/Containerfile", ".") - .directory(tempDir.toFile()).redirectErrorStream(true).start(); + .directory(tempDir.toFile()) + .redirectErrorStream(true) + .start(); String text = new String(process.getInputStream().readAllBytes(), StandardCharsets.UTF_8); From 3d6c00e1e01f8681db3cc326d1df73b93680fec7 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Fri, 24 Jan 2025 09:34:37 +0000 Subject: [PATCH 2/2] Improve dockerfile --- src/main/docker/Dockerfile.all-in-one | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/docker/Dockerfile.all-in-one b/src/main/docker/Dockerfile.all-in-one index dbc1887..773b2b6 100644 --- a/src/main/docker/Dockerfile.all-in-one +++ b/src/main/docker/Dockerfile.all-in-one @@ -1,13 +1,12 @@ FROM registry.access.redhat.com/ubi8/openjdk-21@sha256:3f712e2b11fea22b81636747175d68830b5cba527c2dff9172d143b9acc5612e AS builder -USER root +USER 0 RUN microdnf --setopt=install_weak_deps=0 --setopt=tsflags=nodocs install -y git -USER 185 WORKDIR /work COPY ./ . -RUN mvn -V -B package -DskipTests +RUN git config --global --add safe.directory /work && mvn -e -V -B package -Dmaven.test.skip=true FROM registry.access.redhat.com/ubi8/openjdk-21-runtime@sha256:418b3b6f9bc41ba969a6c7a20b06831131e30d6b4140e29a9453c6a4f08f8c21 WORKDIR /work/