diff --git a/tests/release-test/src/main/java/org/glassfish/tyrus/test/artifacts/MavenUtil.java b/tests/release-test/src/main/java/org/glassfish/tyrus/test/artifacts/MavenUtil.java index a3fd4221..99853a58 100644 --- a/tests/release-test/src/main/java/org/glassfish/tyrus/test/artifacts/MavenUtil.java +++ b/tests/release-test/src/main/java/org/glassfish/tyrus/test/artifacts/MavenUtil.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0, which is available at @@ -29,6 +29,7 @@ import java.util.Collections; import java.util.List; import java.util.Properties; +import java.util.stream.Collectors; import java.util.stream.Stream; public final class MavenUtil { @@ -52,7 +53,11 @@ private static File getArtifactFile(File repositoryRoot, Dependency dependency, } String version = MavenUtil.getDependencyVersion(dependency, properties); fileSuffix.append(version).append(File.separator); - fileSuffix.append(dependency.getArtifactId()).append('-').append(version).append(".").append(extension); + fileSuffix.append(dependency.getArtifactId()).append('-').append(version); + if (dependency.getClassifier() != null) { + fileSuffix.append('-').append(dependency.getClassifier()); + } + fileSuffix.append(".").append(extension); return new File(repositoryRoot, fileSuffix.toString()); } @@ -103,7 +108,16 @@ static Stream keepTyrusJars(Stream stream, DependencyPai static Stream streamTyrusJars() throws IOException, XmlPullParserException { Model model = getModelFromFile("pom.xml"); List deps = getBomPomDependencies(model); + return streamTyrusJars(deps); + } + + static Stream streamTyrusSources() throws IOException, XmlPullParserException { + Model model = getModelFromFile("pom.xml"); + List deps = getBomPomSources(model); + return streamTyrusJars(deps); + } + private static Stream streamTyrusJars(List deps) throws IOException, XmlPullParserException { return deps.stream() .filter(dep -> dep.getGroupId().startsWith("org.glassfish.tyrus")) .filter(dep -> dep.getType().equals("jar")); @@ -139,6 +153,14 @@ private static List getBomPomDependencies(Model model) throws IOExce return bomPomModel.getDependencyManagement().getDependencies(); } + private static List getBomPomSources(Model model) throws XmlPullParserException, IOException { + return getBomPomDependencies(model).stream() + .map(dependency -> { + dependency.setClassifier("sources"); + return dependency; + }) + .collect(Collectors.toList()); + } static String getTyrusVersion(Properties properties) { String property = properties.getProperty(TYRUS_VERSION); // when it is in the pom.file if (property == null || property.startsWith("${")) { diff --git a/tests/release-test/src/test/java/org/glassfish/tyrus/test/artifacts/DownloadBomPomDependencies.java b/tests/release-test/src/test/java/org/glassfish/tyrus/test/artifacts/DownloadBomPomDependencies.java index 528238ac..07f9f528 100644 --- a/tests/release-test/src/test/java/org/glassfish/tyrus/test/artifacts/DownloadBomPomDependencies.java +++ b/tests/release-test/src/test/java/org/glassfish/tyrus/test/artifacts/DownloadBomPomDependencies.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0, which is available at @@ -58,6 +58,12 @@ public void testDownloadBomPomDependencies() throws Exception { Artifact m = mavenEnvironment.resolveArtifact(member); System.out.append("Resolved ").append(member.getGroupId()).append(":").append(member.getArtifactId()).append(":") .append(member.getVersion()).append(" to ").println(m.getFile().getName()); + m = mavenEnvironment.resolveSource(member); + System.out.append("Resolved sources ").append(member.getGroupId()).append(":").append(member.getArtifactId()) + .append(":").append(member.getVersion()).append(" to ").println(m.getFile().getName()); + m = mavenEnvironment.resolveJavadoc(member); + System.out.append("Resolved javadoc ").append(member.getGroupId()).append(":").append(member.getArtifactId()) + .append(":").append(member.getVersion()).append(" to ").println(m.getFile().getName()); } } @@ -70,6 +76,14 @@ public void testDownloadNonBomPomDependencies() throws Exception { System.out.append("Resolved ").append(dependency.getGroupId()).append(":") .append(dependency.getArtifactId()).append(":") .append(dependency.getVersion()).append(" to ").println(m.getFile().getName()); + m = mavenEnvironment.resolveSource(dependency); + System.out.append("Resolved source ").append(dependency.getGroupId()).append(":") + .append(dependency.getArtifactId()).append(":") + .append(dependency.getVersion()).append(" to ").println(m.getFile().getName()); + m = mavenEnvironment.resolveJavadoc(dependency); + System.out.append("Resolved javadoc ").append(dependency.getGroupId()).append(":") + .append(dependency.getArtifactId()).append(":") + .append(dependency.getVersion()).append(" to ").println(m.getFile().getName()); } } @@ -98,6 +112,17 @@ Artifact resolveArtifact(Dependency dependency) throws ArtifactResolutionExcepti return DependencyResolver.resolveArtifact(dependency, remoteRepos, repositorySystem, repoSession); } + Artifact resolveSource(Dependency dependency) throws ArtifactResolutionException { + dependency.setVersion(tyrusVersion); + dependency.setClassifier("sources"); + return DependencyResolver.resolveArtifact(dependency, remoteRepos, repositorySystem, repoSession); + } + + Artifact resolveJavadoc(Dependency dependency) throws ArtifactResolutionException { + dependency.setVersion(tyrusVersion); + dependency.setClassifier("javadoc"); + return DependencyResolver.resolveArtifact(dependency, remoteRepos, repositorySystem, repoSession); + } private List getRemoteRepositories() throws Exception { MavenProject project = getMavenProjectForResourceFile("/release-test-pom.xml"); List remoteArtifactRepositories = project.getRemoteProjectRepositories(); diff --git a/tests/release-test/src/test/java/org/glassfish/tyrus/test/artifacts/LegalDocsIncludedTest.java b/tests/release-test/src/test/java/org/glassfish/tyrus/test/artifacts/LegalDocsIncludedTest.java index 0013904a..41251391 100644 --- a/tests/release-test/src/test/java/org/glassfish/tyrus/test/artifacts/LegalDocsIncludedTest.java +++ b/tests/release-test/src/test/java/org/glassfish/tyrus/test/artifacts/LegalDocsIncludedTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0, which is available at @@ -41,7 +41,16 @@ public void testLegalFiles() throws IOException, XmlPullParserException { List jars = MavenUtil.streamTyrusJars() .map(dependency -> MavenUtil.getArtifactJar(localRepository, dependency, properties)) .collect(Collectors.toList()); + testLegalFiles(jars, testResult); + jars = MavenUtil.streamTyrusSources() + .map(dependency -> MavenUtil.getArtifactJar(localRepository, dependency, properties)) + .collect(Collectors.toList()); + testLegalFiles(jars, testResult); + + } + + private void testLegalFiles(List jars, TestResult testResult) throws IOException { for (File jar : jars) { for (String filename : new String[]{LICENSE_FILE, NOTICE_FILE}) { JarFile jarFile = new JarFile(jar);