From 0ee422576806f549e4d8e933349da9fc304aee46 Mon Sep 17 00:00:00 2001 From: Gabriel Belingueres Date: Sat, 8 Jun 2024 07:58:06 -0300 Subject: [PATCH] [MPIR-455] add support for multi-release JARs. --- pom.xml | 38 +++++- src/it/MPIR-455/invoker.properties | 20 +++ src/it/MPIR-455/pom.xml | 87 +++++++++++++ src/it/MPIR-455/verify.groovy | 119 ++++++++++++++++++ .../0.0.1/module-info-only-test-0.0.1.jar | Bin 0 -> 3340 bytes .../0.0.1/module-info-only-test-0.0.1.pom | 31 +++++ .../0.0.1/multi-release-test-0.0.1.jar | Bin 0 -> 10201 bytes .../0.0.1/multi-release-test-0.0.1.pom | 33 +++++ src/it/settings.xml | 14 +++ .../renderer/DependenciesRenderer.java | 63 ++++++++-- .../resources/project-info-reports.properties | 2 + .../project-info-reports_es.properties | 2 + 12 files changed, 398 insertions(+), 11 deletions(-) create mode 100644 src/it/MPIR-455/invoker.properties create mode 100644 src/it/MPIR-455/pom.xml create mode 100644 src/it/MPIR-455/verify.groovy create mode 100644 src/it/mrm/repository/org/apache/maven/its/mpir-455/module-info-only-test/0.0.1/module-info-only-test-0.0.1.jar create mode 100644 src/it/mrm/repository/org/apache/maven/its/mpir-455/module-info-only-test/0.0.1/module-info-only-test-0.0.1.pom create mode 100644 src/it/mrm/repository/org/apache/maven/its/mpir-455/multi-release-test/0.0.1/multi-release-test-0.0.1.jar create mode 100644 src/it/mrm/repository/org/apache/maven/its/mpir-455/multi-release-test/0.0.1/multi-release-test-0.0.1.pom diff --git a/pom.xml b/pom.xml index d7493a27..534607a1 100644 --- a/pom.xml +++ b/pom.xml @@ -188,7 +188,7 @@ under the License. org.apache.maven.shared maven-shared-jar - 3.0.0 + 3.1.0 org.apache.maven.resolver @@ -511,11 +511,47 @@ under the License. pom.xml ${project.build.directory}/local-repo + + ${repository.proxy.url} + + true + site + + org.codehaus.mojo + mrm-maven-plugin + 1.6.0 + + repository.proxy.url + + + src/it/mrm/repository + + ${project.build.directory}/local-repo + + + + ${project.build.directory}/local-repo + + + + + + + + start + stop + + + + diff --git a/src/it/MPIR-455/invoker.properties b/src/it/MPIR-455/invoker.properties new file mode 100644 index 00000000..277d7d1e --- /dev/null +++ b/src/it/MPIR-455/invoker.properties @@ -0,0 +1,20 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Remove with next major version +invoker.mavenOpts = -Duser.language=en +invoker.goals = ${project.groupId}:${project.artifactId}:${project.version}:dependencies diff --git a/src/it/MPIR-455/pom.xml b/src/it/MPIR-455/pom.xml new file mode 100644 index 00000000..82550735 --- /dev/null +++ b/src/it/MPIR-455/pom.xml @@ -0,0 +1,87 @@ + + + + + 4.0.0 + + org.apache.maven.plugins.project-info-reports.its + MPIR-455 + 1.0-SNAPSHOT + pom + http://maven.apache.org/plugins/it/${project.artifactId} + + + UTF-8 + UTF-8 + + + + + + org.apache.maven.its.mpir-455 + multi-release-test + 0.0.1 + test + + + org.codehaus.plexus + plexus-utils + 4.0.0 + + + org.apache.maven.its.mpir-455 + module-info-only-test + 0.0.1 + runtime + + + + + + + + org.apache.maven.plugins + maven-site-plugin + @sitePluginVersion@ + + + + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + @project.version@ + + + + dependencies + + + + + + + + diff --git a/src/it/MPIR-455/verify.groovy b/src/it/MPIR-455/verify.groovy new file mode 100644 index 00000000..2518dd77 --- /dev/null +++ b/src/it/MPIR-455/verify.groovy @@ -0,0 +1,119 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +String html = new File( basedir, 'target/site/dependencies.html' ).text + +def summaryLine = '''\ + +module-info-only-test-0.0.1.jar +3.3 kB +- +- +- +- +- + +   • Root +- +10 +0 +0 +- +- + +   • Versioned +- +1 +1 +1 +11 +No + +multi-release-test-0.0.1.jar +10.2 kB +- +- +- +- +- + +   • Root +- +37 +1 +1 +1.8 +Yes + +   • Versioned +- +9 +1 +1 +9 +Yes + +   • Versioned +- +9 +1 +1 +11 +Yes + +plexus-utils-4.0.0.jar +192.4 kB +- +- +- +- +- + +   • Root +- +128 +86 +7 +1.8 +Yes + +   • Versioned +- +5 +1 +1 +9 +Yes + +   • Versioned +- +5 +1 +1 +10 +Yes + +   • Versioned +- +5 +1 +1 +11 +Yes''' + +assert html.contains( summaryLine.replaceAll( "\n", System.lineSeparator() ) ) diff --git a/src/it/mrm/repository/org/apache/maven/its/mpir-455/module-info-only-test/0.0.1/module-info-only-test-0.0.1.jar b/src/it/mrm/repository/org/apache/maven/its/mpir-455/module-info-only-test/0.0.1/module-info-only-test-0.0.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..c6f5752ff0e2f2ee38b1343f85553f352e9feb1c GIT binary patch literal 3340 zcmb`K2~-m37JxwoaYa)MO>@m96-CP}v>XK`ml!oC&D@Z17sW73n`kw2Yt$x}+^BTa z9G6ftmyC4E+_M}9Z5&H2%q2&r9JdGcp73mW@673*!#Qxy-T(jo_XFo3C?pC1KmdT? z#+CyBJ`n*30i4io*7{gyjKOLL0D$AD$^sw|$VaNO9J6&*Cu?Uc2JPyGaKgYk%taZ7 zQlMV%f?b`U_M@)`+GfNB)NPJQuUt|6M#NM6cGH`(d^Yx(c4qzqbo0aBUbd&ce6!lz zvT4A|1=}e`pBz*5!j15To?#8JH{<+UW$$zC*1Al87$sp2bS^l&cW;>(&OsPr(YLfh z;3RRF^WmoXp`ySI6>Z{AlR}6h2StRF4S4!N8}wnH)JG!uOg1(R%5M_pM_=+6cL6v8WuY35f;HTky_33X^mZ~EXssy=|2@pO!Rl43Pc{fHDc(i zERL~Y?$vNn(b2+GtywkOixQd+IHPuw+?lLh6Ck99iXqjJdA2n{ipKsMY=dgAl z2bn$jR_!PH?99ya9amaRR2-_UrKh5~CnMhZXh%eCFQ=*;=K01AF4;CDMILT2LhLX6d$FO`j zFT0#T06sOsW1kobkHgPc;Z38zU71qD;(aPl*^xZlckgI}&K0EW#2XjIjblX{2SkdS zEk^WNC`}QcQ?F6(i3>`V$3>c?Z6tTNTP~4q9t**n=2|?H-4P`BDB)^UhC-Ks{PiOv zdaiYt>u$E&D|#=tt%jX$?F!625)VrMtyCkZ%JF3quKJ94iTLSR6!f}Y0~&dU_Mig| z@}O$i1a$oXhkdhOs4IE`Cobl4&80xuxY~N~q*3j;15*>FVL#cLKgv_>DWe&5xrfkc zBN!d2#Qp$aA7*7mKm>4lM;~aXq?jVii)o;`87WzBg;>t)?4M2UTij2dvi)xEylUWlx9lAC^s)Wcqe@tf8<=i&5r0sQ8qolHu5IyjeSlYNFNt=uJ(lUCc1G&sX+&l`lDj z-=@m+IBC;eKP))&GiK)@dIcO-7x<7+mTltsW;g3>AgG4PLJWhXX%_=LNXGlZ$4x!A zg|t0w7*wRn<4Raks*LtpX^n-+3`i9jv0%)e(IQJG)(CZWJ!PT>Wt<5`uVi+c9m%Pd z?%9^vm`71ubX=OZI_OjQ0wh#_d+>P~qoAASl;mj^-=FoM!M|b=GYQ$XG?1RM)pBzw zbm7F+cfmC#IVF*L&6dZvj^59DqLx)&$AW9q=Td7n_Xw1)l`?{-8W@+^LqkIne^8Qt z)234`e~{?%t3O}TOReo-i876HuJ@*qXB00u z)jC$BI`wR)n8&@JZF-**4P$^aVL-cqV-6NCh3Y&TW+P3ji-Eqc&4QhG!+?wJZ;JDi zz2Pr(M`CV|ITzWXjl;`4ho6iy`G;s zIJGK3^5z2&Ii%=1w+3k7tG}o3RIvPFJ-1PFuIhLhbO5+Ae8#*-%Nj{m`lA z`ZG)mfJn|iN#$qAKfwImjaxTu>z=m@s|b)q}lviR|&lS=faKy=~bS90emHGw&H zF@{0EyY??#L0#Gx)2MaFJ44d_Ny}n%ixvZVKQLG+PN}^KD%r{+3CmLqQsQMFv7|74 zVwq~gC3C+xStM4*jE)*|ww^HLv0lQE15>NZb`@(KZ#N`7Wd-y`D;?UIK!zP}8W?3)HhznEgd$B@ioFfFcSCZW;xb z`ElzJhGbdvtR-=>zx}>Gpnxdg^IXPJ;gfar`ao$w0a*Z#)A-Sd%V|8(<$PT?<)b#7 z126ce5Q^uapWnlJv-#~e9uF6(cp?Dg%V6F9Jz()t_!MICTg2B?zHoymh&%W{X+9!C%y_l%s$Qm1m@atXUta+0Jto| G{q-;Qv9nqL literal 0 HcmV?d00001 diff --git a/src/it/mrm/repository/org/apache/maven/its/mpir-455/module-info-only-test/0.0.1/module-info-only-test-0.0.1.pom b/src/it/mrm/repository/org/apache/maven/its/mpir-455/module-info-only-test/0.0.1/module-info-only-test-0.0.1.pom new file mode 100644 index 00000000..95e0eaf8 --- /dev/null +++ b/src/it/mrm/repository/org/apache/maven/its/mpir-455/module-info-only-test/0.0.1/module-info-only-test-0.0.1.pom @@ -0,0 +1,31 @@ + + + + + 4.0.0 + + org.apache.maven.its.mpir-455 + module-info-only-test + 0.0.1 + + module-info-only-test + diff --git a/src/it/mrm/repository/org/apache/maven/its/mpir-455/multi-release-test/0.0.1/multi-release-test-0.0.1.jar b/src/it/mrm/repository/org/apache/maven/its/mpir-455/multi-release-test/0.0.1/multi-release-test-0.0.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..b0a03bc110b91895f530e85fd631d45c9baffac1 GIT binary patch literal 10201 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 P`D27+i6L?$3jp{(9Q3*h literal 0 HcmV?d00001 diff --git a/src/it/mrm/repository/org/apache/maven/its/mpir-455/multi-release-test/0.0.1/multi-release-test-0.0.1.pom b/src/it/mrm/repository/org/apache/maven/its/mpir-455/multi-release-test/0.0.1/multi-release-test-0.0.1.pom new file mode 100644 index 00000000..8535ce91 --- /dev/null +++ b/src/it/mrm/repository/org/apache/maven/its/mpir-455/multi-release-test/0.0.1/multi-release-test-0.0.1.pom @@ -0,0 +1,33 @@ + + + + + 4.0.0 + + org.apache.maven.its.mpir-455 + multi-release-test + 0.0.1 + jar + + multi-release-test + + diff --git a/src/it/settings.xml b/src/it/settings.xml index 278bff2c..2977a4fc 100644 --- a/src/it/settings.xml +++ b/src/it/settings.xml @@ -28,6 +28,20 @@ under the License. true + + snapshots + @repository.proxy.url@ + + true + ignore + never + + + true + ignore + always + + local.central @localRepositoryUrl@ diff --git a/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java b/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java index 4981acc1..e520012e 100644 --- a/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java +++ b/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java @@ -62,6 +62,9 @@ import org.apache.maven.repository.RepositorySystem; import org.apache.maven.shared.dependency.graph.DependencyNode; import org.apache.maven.shared.jar.JarData; +import org.apache.maven.shared.jar.classes.JarClasses; +import org.apache.maven.shared.jar.classes.JarVersionedRuntime; +import org.apache.maven.shared.jar.classes.JarVersionedRuntimes; import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.util.StringUtils; @@ -591,16 +594,56 @@ private void renderSectionDependencyFileDetails() { fileLength = "-"; } - tableRow(hasSealed, new String[] { - name, - fileLength, - String.valueOf(jarDetails.getNumEntries()), - String.valueOf(jarDetails.getNumClasses()), - String.valueOf(jarDetails.getNumPackages()), - jdkRevisionCellValue, - debugInformationCellValue, - sealedCellValue - }); + if (jarDetails.isMultiRelease()) { + String htmlBullet = "   • "; + String rootTag = htmlBullet + getI18nString("file.details.multirelease.root"); + String versionedTag = htmlBullet + getI18nString("file.details.multirelease.versioned"); + + // general jar information row + tableRow(hasSealed, new String[] {name, fileLength, "", "", "", "", "", sealedCellValue}); + // root content information + tableRow(hasSealed, new String[] { + rootTag, + "", + String.valueOf(jarDetails.getNumEntries()), + String.valueOf(jarDetails.getNumClasses()), + String.valueOf(jarDetails.getNumPackages()), + jdkRevisionCellValue, + debugInformationCellValue, + "" + }); + + JarVersionedRuntimes versionedRuntimes = jarDetails.getVersionedRuntimes(); + for (JarVersionedRuntime versionedRuntime : + versionedRuntimes.getVersionedRuntimeMap().values()) { + JarClasses rtJarClasses = versionedRuntime.getJarClasses(); + + debugInformationCellValue = + rtJarClasses.isDebugPresent() ? debugInformationCellYes : debugInformationCellNo; + + tableRow(hasSealed, new String[] { + versionedTag, + "", + String.valueOf(versionedRuntime.getEntries().size()), + String.valueOf(rtJarClasses.getClassNames().size()), + String.valueOf(rtJarClasses.getPackages().size()), + rtJarClasses.getJdkRevision(), + debugInformationCellValue, + "" + }); + } + } else { + tableRow(hasSealed, new String[] { + name, + fileLength, + String.valueOf(jarDetails.getNumEntries()), + String.valueOf(jarDetails.getNumClasses()), + String.valueOf(jarDetails.getNumPackages()), + jdkRevisionCellValue, + debugInformationCellValue, + sealedCellValue + }); + } } catch (IOException e) { createExceptionInfoTableRow(artifact, artifactFile, e, hasSealed); } diff --git a/src/main/resources/project-info-reports.properties b/src/main/resources/project-info-reports.properties index 2845c90e..c8e9c7c8 100644 --- a/src/main/resources/project-info-reports.properties +++ b/src/main/resources/project-info-reports.properties @@ -69,6 +69,8 @@ report.dependencies.file.details.column.size.gb = GB report.dependencies.file.details.column.size.mb = MB report.dependencies.file.details.column.size.kb = kB report.dependencies.file.details.columntitle.debuginformation = Indicates whether these dependencies have been compiled with debug information. +report.dependencies.file.details.multirelease.root = Root +report.dependencies.file.details.multirelease.versioned = Versioned report.dependencies.file.details.title = Dependency File Details report.dependencies.file.details.total = Total report.dependencies.graph.icon.close = [Close] diff --git a/src/main/resources/project-info-reports_es.properties b/src/main/resources/project-info-reports_es.properties index ccbe75da..00c143c5 100644 --- a/src/main/resources/project-info-reports_es.properties +++ b/src/main/resources/project-info-reports_es.properties @@ -67,6 +67,8 @@ report.dependencies.file.details.column.size = Tama\u00f1o report.dependencies.file.details.column.size.gb = GB report.dependencies.file.details.column.size.mb = MB report.dependencies.file.details.column.size.kb = kB +report.dependencies.file.details.multirelease.root = Ra\u00edz +report.dependencies.file.details.multirelease.versioned = Versionado report.dependencies.file.details.title = Detalles del Fichero report.dependencies.file.details.total = Total report.dependencies.graph.tables.licenses = Licencias