Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MPIR-431] Dependency file details section: segregate Java version #47

Merged
merged 1 commit into from
May 26, 2023

Conversation

belingueres
Copy link
Contributor

column into execution and test versions

Following this checklist to help us incorporate your
contribution quickly and easily:

  • Make sure there is a JIRA issue filed
    for the change (usually before you start working on it). Trivial changes like typos do not
    require a JIRA issue. Your pull request should address just this issue, without
    pulling in other changes.
  • Each commit in the pull request should have a meaningful subject line and body.
  • Format the pull request title like [MPIR-XXX] - Fixes bug in ApproximateQuantiles,
    where you replace MPIR-XXX with the appropriate JIRA issue. Best practice
    is to use the JIRA issue title in the pull request title and in the first line of the
    commit message.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Run mvn clean verify to make sure basic checks pass. A more thorough check will
    be performed on your pull request automatically.
  • You have run the integration tests successfully (mvn -Prun-its clean verify).

If your pull request is about ~20 lines of code you don't need to sign an
Individual Contributor License Agreement if you are unsure
please ask on the developers list.

To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

@michael-o michael-o self-requested a review May 8, 2023 19:32
@michael-o
Copy link
Member

I think I do understand the objective behind this change, though I am not really happy with the output. I have changed the full-pom IT to contain a runtime and provided dependency, now lets look at the output:
grafik

It doesn't look right, it says that 19 dependencies requrie Java 1.8 to run, which is not correct and the same again with 1.5, but when tests are run they do not require 1.5, they do require 1.8 because the max version is necessary. I understand the opposite case where your code and deps need 1.8, but test deps are on 11. I don't think that the information is properly visualized here avoid misunderstandings.

@belingueres
Copy link
Contributor Author

Yes this is the kind of conclusions I'd like to derive about the jdk versions by looking at the report, and just separating test scoped deps into its own column I agree it is too simplistic, but I think it offers more value than having only one column for all scopes.

@michael-o michael-o self-requested a review May 14, 2023 17:21
Copy link
Member

@michael-o michael-o left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@belingueres Please rebase and let's discuss how to make this better. I think that the intentions are very noble, but the represenation of information is confusing.

@michael-o
Copy link
Member

Here is my counter-proposal based on your output:
grafik

We will keep one column for the Java version, but here is the diff:

  • Total test row will have its own value, it will change position with compile
  • Grand total will contain Java version of all scopes
  • Non-test scopes will colspan with max Java version

WDYT?

@belingueres
Copy link
Contributor Author

I'm OK with the first two bullets.
Third one I don't understand what do you mean by colspan. Do you mean to center vertically the result to cover compile,runtime and provided rows? like HTML table "rowspan" attribute? I'm OK if it shows clearly and there is no confusion regarding if it is a total covering the 3 non-test scopes, or it is just one of them.

@michael-o
Copy link
Member

I'm OK with the first two bullets. Third one I don't understand what do you mean by colspan. Do you mean to center vertically the result to cover compile,runtime and provided rows? like HTML table "rowspan" attribute? I'm OK if it shows clearly and there is no confusion regarding if it is a total covering the 3 non-test scopes, or it is just one of them.

Yes, this is exactly what I mean.

@belingueres
Copy link
Contributor Author

OK let's move on that direction. I will look how can I add this rowspan attribute using the API.

@michael-o
Copy link
Member

Colspan, not rowspan in our case

@belingueres
Copy link
Contributor Author

I don't get what value should span which columns. IIUC your drawing, the "Test java version" is gone. The max jdk version remains the same. The test max jdk version go into the "Java version" column (changing test scope as the first row of the table). The only value left is the non test scoped jdk version, which should be in the "Java version" column too (rowspan="4" to cover all non test scopes if present). Obviously this is not what you have in mind, so please elaborate.

@michael-o
Copy link
Member

Will provide a mockup

@michael-o
Copy link
Member

My bad, I messed up rowspan with colspan, of course, you were right. We are talking about rowspan:
grafik

I have moved test row down; 19 shows max Java version from both test and non-test and the rows below spilt.

@belingueres
Copy link
Contributor Author

I will fix and simplify the javaVersionFormat variable. It does not print versions "1.0" and "1.1".

@michael-o
Copy link
Member

michael-o commented May 19, 2023

I will fix and simplify the javaVersionFormat variable. It does not print versions "1.0" and "1.1".

This confuses me:

Can you elaborate?

PS: I will double check.

@michael-o
Copy link
Member

michael-o commented May 19, 2023

I will fix and simplify the javaVersionFormat variable. It does not print versions "1.0" and "1.1".

This confuses me:

* There is no Java 1.0 here: https://github.com/apache/maven-shared-jar/blob/3cd1e4d7060bba0b378c2f3bcb5bd00037b299dc/src/main/java/org/apache/maven/shared/jar/classes/JarClassesAnalysis.java#L59-L81

* Looking at the output of the `full-pom` IT it prints 1.1 as expected.

Can you elaborate?

PS: I will double check.

@belingueres, you were partially right. Though, I tested with a loop, still missed. Fixed with 1.1 by making the range inclusive. 1.0 is not printed as noted in the link. Does this resolve the issue for you?

Sample code:

import java.text.MessageFormat;
import java.util.Locale;

public class Main {

	public static void main(String[] args) {
	    MessageFormat javaVersionFormat =
	            new MessageFormat("{0,choice,0#|1.1#{0,number,0.0}|9#{0,number,0}}", Locale.ROOT);

	    for(double d : new double[] {0.0, 0.9,1.0, 1.1, 1.2, 1.5, 1.8, 1.9, 9, 10, 21}) {
	    	System.out.printf("input: %s, output: %s%n", d, javaVersionFormat.format(new Object[] {d}));
	    }

	}

}

output:

input: 0.0, output: 
input: 0.9, output: 
input: 1.0, output: 
input: 1.1, output: 1.1
input: 1.2, output: 1.2
input: 1.5, output: 1.5
input: 1.8, output: 1.8
input: 1.9, output: 1.9
input: 9.0, output: 9
input: 10.0, output: 10
input: 21.0, output: 21

Copy link
Member

@michael-o michael-o left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The IT fails for me:

[DEBUG]   Included: org.codehaus.plexus:plexus-interpolation:jar:1.26
[DEBUG]   Included: commons-validator:commons-validator:jar:1.7
[DEBUG]   Included: commons-beanutils:commons-beanutils:jar:1.9.4
[DEBUG]   Included: commons-digester:commons-digester:jar:2.1
[DEBUG]   Included: commons-logging:commons-logging:jar:1.2
[DEBUG]   Included: commons-io:commons-io:jar:2.11.0
[DEBUG] class org.apache.maven.report.projectinfo.DependenciesReport isMavenReport: true
[DEBUG] Loading mojo org.apache.maven.plugins:maven-project-info-reports-plugin:3.4.4-SNAPSHOT:dependencies from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-project-info-reports-plugin:3.4.4-SNAPSHOT, parent: ClassRealm[plugin>org.apache.maven.plugins:maven-site-plugin:3.3, parent: sun.misc.Launcher$AppClassLoader@7852e922]]
[WARNING] Error injecting: org.apache.maven.report.projectinfo.DependenciesReport
java.lang.NoClassDefFoundError: org/apache/maven/doxia/siterenderer/DocumentContent
    at java.lang.Class.getDeclaredConstructors0 (Native Method)
    at java.lang.Class.privateGetDeclaredConstructors (Class.java:2671)
    at java.lang.Class.getDeclaredConstructors (Class.java:2020)
    at com.google.inject.spi.InjectionPoint.forConstructorOf (InjectionPoint.java:245)
    at com.google.inject.internal.ConstructorBindingImpl.create (ConstructorBindingImpl.java:115)
    at com.google.inject.internal.InjectorImpl.createUninitializedBinding (InjectorImpl.java:706)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBinding (InjectorImpl.java:930)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive (InjectorImpl.java:852)
    at com.google.inject.internal.InjectorImpl.getJustInTimeBinding (InjectorImpl.java:291)
    at com.google.inject.internal.InjectorImpl.getBindingOrThrow (InjectorImpl.java:222)
    at com.google.inject.internal.InjectorImpl.getProviderOrThrow (InjectorImpl.java:1040)
    at com.google.inject.internal.InjectorImpl.getProvider (InjectorImpl.java:1071)
    at com.google.inject.internal.InjectorImpl.getProvider (InjectorImpl.java:1034)
    at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1086)
    at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)
    at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:85)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
    at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:66)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:112)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:127)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:61)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1050)
    at org.eclipse.sisu.inject.Guice4$1.get (Guice4.java:162)
    at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)
    at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:263)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:255)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:520)
    at org.apache.maven.reporting.exec.DefaultMavenReportExecutor.getConfiguredMavenReport (DefaultMavenReportExecutor.java:306)
    at org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildReportPlugin (DefaultMavenReportExecutor.java:263)
    at org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildMavenReports (DefaultMavenReportExecutor.java:154)
    at org.apache.maven.plugins.site.AbstractSiteRenderingMojo.getReports (AbstractSiteRenderingMojo.java:235)
    at org.apache.maven.plugins.site.SiteMojo.execute (SiteMojo.java:121)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:299)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:963)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:296)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.ClassNotFoundException: org.apache.maven.doxia.siterenderer.DocumentContent
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239)
    at java.lang.Class.getDeclaredConstructors0 (Native Method)
    at java.lang.Class.privateGetDeclaredConstructors (Class.java:2671)
    at java.lang.Class.getDeclaredConstructors (Class.java:2020)
    at com.google.inject.spi.InjectionPoint.forConstructorOf (InjectionPoint.java:245)
    at com.google.inject.internal.ConstructorBindingImpl.create (ConstructorBindingImpl.java:115)
    at com.google.inject.internal.InjectorImpl.createUninitializedBinding (InjectorImpl.java:706)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBinding (InjectorImpl.java:930)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive (InjectorImpl.java:852)
    at com.google.inject.internal.InjectorImpl.getJustInTimeBinding (InjectorImpl.java:291)
    at com.google.inject.internal.InjectorImpl.getBindingOrThrow (InjectorImpl.java:222)
    at com.google.inject.internal.InjectorImpl.getProviderOrThrow (InjectorImpl.java:1040)
    at com.google.inject.internal.InjectorImpl.getProvider (InjectorImpl.java:1071)
    at com.google.inject.internal.InjectorImpl.getProvider (InjectorImpl.java:1034)
    at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1086)
    at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)
    at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:85)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
    at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:66)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:112)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:127)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:61)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1050)
    at org.eclipse.sisu.inject.Guice4$1.get (Guice4.java:162)
    at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)
    at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:263)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:255)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:520)
    at org.apache.maven.reporting.exec.DefaultMavenReportExecutor.getConfiguredMavenReport (DefaultMavenReportExecutor.java:306)
    at org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildReportPlugin (DefaultMavenReportExecutor.java:263)
    at org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildMavenReports (DefaultMavenReportExecutor.java:154)
    at org.apache.maven.plugins.site.AbstractSiteRenderingMojo.getReports (AbstractSiteRenderingMojo.java:235)
    at org.apache.maven.plugins.site.SiteMojo.execute (SiteMojo.java:121)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:299)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:963)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:296)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  10.116 s
[INFO] Finished at: 2023-05-21T11:57:27+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.3:site (default-site) on project MPIR-431: Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.3:site failed: A required class was missing while executing org.apache.maven.plugins:maven-site-plugin:3.3:site: org/apache/maven/doxia/siterenderer/DocumentContent
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.apache.maven.plugins:maven-site-plugin:3.3
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/apache/maven/plugins/maven-site-plugin/3.3/maven-site-plugin-3.3.jar
[ERROR] urls[1] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/apache/maven/reporting/maven-reporting-exec/1.1/maven-reporting-exec-1.1.jar
[ERROR] urls[2] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
[ERROR] urls[3] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/apache/maven/shared/maven-shared-utils/0.3/maven-shared-utils-0.3.jar
[ERROR] urls[4] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
[ERROR] urls[5] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[6] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
[ERROR] urls[7] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
[ERROR] urls[8] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
[ERROR] urls[9] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
[ERROR] urls[10] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
[ERROR] urls[11] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[12] = file:/D:/Entwicklung/Projekte/maven-project-info-reports-plugin/target/local-repo/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar

@belingueres belingueres force-pushed the MPIR-431 branch 2 times, most recently from a4725ae to 09dfef3 Compare May 21, 2023 14:17
"",
"",
""
artifactFile.getName(), fileLengthDecimalFormat.format(artifactFile.length()), "", "", "", "", ""
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is one column gone here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll fix it

Copy link
Member

@michael-o michael-o left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not 100% happy with the usage of integer literals for the scopes now because this is fragile and can change, bugs can creep in. Would you turn them into static finals or something better?

@asfgit asfgit closed this in dbd863f May 26, 2023
@asfgit asfgit merged commit dbd863f into apache:master May 26, 2023
@pzygielo
Copy link
Contributor

Just FYI: With this change I'm getting:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.12.1:site (default-site) on project jasmine-maven-plugin: Error generating maven-project-info-reports-plugin:3.4.4-SNAPSHOT:dependencies report: Cannot invoke "org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer$TotalCell$SummaryTableRowOrder.addTotal(org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer$TotalCell, long)" because "currentRow" is null
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.12.1:site (default-site) on project jasmine-maven-plugin: Error generating maven-project-info-reports-plugin:3.4.4-SNAPSHOT:dependencies report: Cannot invoke "org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer$TotalCell$SummaryTableRowOrder.addTotal(org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer$TotalCell, long)" because "currentRow" is null -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.12.1:site (default-site) on project jasmine-maven-plugin: Error generating maven-project-info-reports-plugin:3.4.4-SNAPSHOT:dependencies report
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:375)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:298)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:53)
    at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:152)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:76)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error generating maven-project-info-reports-plugin:3.4.4-SNAPSHOT:dependencies report
    at org.apache.maven.plugins.site.render.SiteMojo.execute (SiteMojo.java:153)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:298)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:53)
    at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:152)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:76)
Caused by: org.apache.maven.doxia.siterenderer.RendererException: Error generating maven-project-info-reports-plugin:3.4.4-SNAPSHOT:dependencies report
    at org.apache.maven.plugins.site.render.ReportDocumentRenderer.renderDocument (ReportDocumentRenderer.java:247)
    at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render (DefaultSiteRenderer.java:348)
    at org.apache.maven.plugins.site.render.SiteMojo.renderLocale (SiteMojo.java:194)
    at org.apache.maven.plugins.site.render.SiteMojo.execute (SiteMojo.java:143)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:298)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:53)
    at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:152)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:76)
Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer$TotalCell$SummaryTableRowOrder.addTotal(org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer$TotalCell, long)" because "currentRow" is null
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer$TotalCell.addTotal (DependenciesRenderer.java:1391)
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer$TotalCell.incrementTotal (DependenciesRenderer.java:1365)
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderSectionDependencyFileDetails (DependenciesRenderer.java:539)
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderBody (DependenciesRenderer.java:229)
    at org.apache.maven.reporting.AbstractMavenReportRenderer.render (AbstractMavenReportRenderer.java:82)
    at org.apache.maven.report.projectinfo.DependenciesReport.executeReport (DependenciesReport.java:167)
    at org.apache.maven.reporting.AbstractMavenReport.generate (AbstractMavenReport.java:289)
    at org.apache.maven.plugins.site.render.ReportDocumentRenderer.renderDocument (ReportDocumentRenderer.java:226)
    at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render (DefaultSiteRenderer.java:348)
    at org.apache.maven.plugins.site.render.SiteMojo.renderLocale (SiteMojo.java:194)
    at org.apache.maven.plugins.site.render.SiteMojo.execute (SiteMojo.java:143)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:298)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:53)
    at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:152)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:76)

@michael-o
Copy link
Member

@pzygielo Thanks for the heads up. Can you please file a JIRA and maybe a test case? I wonder what we have missed.

@michael-o
Copy link
Member

This seems to be the problem:

[INFO] |  +- io.netty:netty-transport-native-epoll:jar:4.1.91.Final:linux-x86_64
[INFO] |  +- io.netty:netty-transport-native-kqueue:jar:4.1.91.Final:osx-x86_64

@michael-o
Copy link
Member

Ran with the old version. Something is wrong because the classifer is shown as scope. Non-sense.

@michael-o
Copy link
Member

Trying 3.4.5-SNAPSHOT which uses maven-dependency-tree 3.2.1 which does not have this problem, but gives me:

Caused by: java.lang.NullPointerException
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer$TotalCell.addTotal (DependenciesRenderer.java:1391)
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer$TotalCell.incrementTotal (DependenciesRenderer.java:1365)
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderSectionDependencyFileDetails (DependenciesRenderer.java:539)
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderBody (DependenciesRenderer.java:229)

well...
grafik

@michael-o
Copy link
Member

So it was before from my PoV:
grafik
we simply did not know.

@michael-o
Copy link
Member

OK, there is no bug, but this POM is just broken: https://repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-remote-driver/4.9.1/selenium-remote-driver-4.9.1.pom
They messed up scope with classifier. There is nothing to fix from our end.

@belingueres
Copy link
Contributor Author

We could fix the error by taking the same scope than its parent dependency AND logging a warning. It is warranted to eventually succeed since direct dependencies must have a correct scope (otherwise the project's pom.xml won't pass the validation phase)

imagen

@michael-o
Copy link
Member

We could fix the error by taking the same scope than its parent dependency AND logging a warning. It is warranted to eventually succeed since direct dependencies must have a correct scope (otherwise the project's pom.xml won't pass the validation phase)

imagen

Sounds good. Do you want to work on a PR?

@michael-o
Copy link
Member

Idiotlike approach:

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 d4c6b84..7f2694b 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
@@ -1386,9 +1386,11 @@ public class DependenciesRenderer extends AbstractProjectInfoRenderer {
         }

         void addTotal(long add, String scope) {
-            SummaryTableRowOrder.TOTALS.addTotal(this, add);
             SummaryTableRowOrder currentRow = SummaryTableRowOrder.fromScope(scope);
-            currentRow.addTotal(this, add);
+            if (currentRow != null) {
+                SummaryTableRowOrder.TOTALS.addTotal(this, add);
+                currentRow.addTotal(this, add);
+            }
         }

         /** {@inheritDoc} */

What I have noticed:
grafik

The debug column value does not make sense if no Java version could be determined.

@michael-o
Copy link
Member

Patch works:
grafik

@belingueres
Copy link
Contributor Author

I'll try to work on a PR if not too complex.

We could fix the error by taking the same scope than its parent dependency AND logging a warning. It is warranted to eventually succeed since direct dependencies must have a correct scope (otherwise the project's pom.xml won't pass the validation phase)
imagen

Sounds good. Do you want to work on a PR?

I'll give it a try

@michael-o
Copy link
Member

I'll try to work on a PR if not too complex.

We could fix the error by taking the same scope than its parent dependency AND logging a warning. It is warranted to eventually succeed since direct dependencies must have a correct scope (otherwise the project's pom.xml won't pass the validation phase)
imagen

Sounds good. Do you want to work on a PR?

I'll give it a try

Don't waste your time, if it takes more than one hour. Before the faulty method is called we can test the scope for validity and log a warning that this artifact is ignored from the global calculation. Done.

@michael-o
Copy link
Member

@belingueres This is my proposal: a38c46b

No fuzz, straight forward.

@pzygielo
Copy link
Contributor

pzygielo commented May 31, 2023

Thanks to all checking this case.

If a38c46b prevents breaking the build/NPEx - I like it 😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants