autonomousapps / dependency-analysis-gradle-plugin

Gradle plugin for JVM projects written in Java, Kotlin, Groovy, or Scala; and Android projects written in Java or Kotlin. Provides advice for managing dependencies and other applied plugins
Apache License 2.0
1.8k stars 117 forks source link

Dominator view for dependency size #256

Closed vlsi closed 2 years ago

vlsi commented 4 years ago

Hi, this is a cross-post from https://github.com/gradle/gradle/issues/14222 I'm not sure what Gradle's vision on the dependency tree is, however, it might make sense to add the dominator tree to d-a-a-g-p.

WDYT?

Is your feature request related to a problem? Please describe.

There's a use-case to optimize dependencies (e.g. for faster builds in CI and less download bandwidth). Unfortunately, the impact of dependency is hard to see.

For instance: dependency abc.jar is used in one class only (PreciousClass), and if you remove it you'll eliminate 100MiB worth of dependencies.

Describe the solution you'd like

Here's a regular dependency tree:

jacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks.
\--- org.jacoco:org.jacoco.ant:0.8.5
     +--- org.jacoco:org.jacoco.core:0.8.5
     |    +--- org.ow2.asm:asm:7.2
     |    +--- org.ow2.asm:asm-commons:7.2
     |    |    +--- org.ow2.asm:asm:7.2
     |    |    +--- org.ow2.asm:asm-tree:7.2
     |    |    |    \--- org.ow2.asm:asm:7.2
     |    |    \--- org.ow2.asm:asm-analysis:7.2
     |    |         \--- org.ow2.asm:asm-tree:7.2 (*)
     |    \--- org.ow2.asm:asm-tree:7.2 (*)
     +--- org.jacoco:org.jacoco.report:0.8.5
     |    \--- org.jacoco:org.jacoco.core:0.8.5 (*)
     \--- org.jacoco:org.jacoco.agent:0.8.5

Here's the dominator tree for it:

jacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks.
\--- 861K (34K self) org.jacoco:org.jacoco.ant:0.8.5
     +--- 451K (190K self) org.jacoco:org.jacoco.core:0.8.5
     |    +--- 112K org.ow2.asm:asm:7.2
     |    +--- 100K (68K self) org.ow2.asm:asm-commons:7.2
     |    |    \--- 32K org.ow2.asm:asm-analysis:7.2
     |    \--- 49K org.ow2.asm:asm-tree:7.2
     +--- 251K org.jacoco:org.jacoco.agent:0.8.5
     \--- 125K org.jacoco:org.jacoco.report:0.8.5

Describe alternatives you've considered

I've filed an issue to Gradle core: https://github.com/gradle/gradle/issues/14222

autonomousapps commented 4 years ago

Thank you for the interesting idea. I have a related issue that I'm actively working on right now at https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/issues/251. While working on that, I'll consider ways to include this size information.

androideveloper commented 2 years ago

super cool idea! Was there any progress on it?

autonomousapps commented 2 years ago

super cool idea! Was there any progress on it?

nope!

autonomousapps commented 2 years ago

Is that a dominator tree of dependencies with jar sizes in human-readable units I see?!

Screen Shot 2022-06-06 at 11 37 48 AM

vlsi commented 2 years ago

WOW!

Frankly speaking, I find automatic units hard to reason since 10 MB is way more important that 10 KB.

What do you think if the root element determines the unit, and then all the nodes use it?

vlsi commented 2 years ago

I see you print $selfSize ($totalSize), however, it looks awkward to me. I don't really care how much the library takes itself. The most important questions is like "how much could I save if I remove androidx.fragment:frament. In that case, the dominated size should be the first, and the self size should be in brackets.

autonomousapps commented 2 years ago

What do you think if the root element determines the unit, and then all the nodes use it?

interesting idea! I'll give it a try and see what it looks like. I can also reverse the order of what's in parentheses.

autonomousapps commented 2 years ago

@vlsi how about this

4.26 MB :app
+--- 4.26 MB (1.47 MB) androidx.appcompat:appcompat:1.1.0
|    +--- (0.02 MB) androidx.cursoradapter:cursoradapter:1.0.0
|    +--- (0.04 MB) androidx.collection:collection:1.1.0
|    +--- (0.02 MB) androidx.lifecycle:lifecycle-common:2.1.0
|    +--- (0.01 MB) androidx.arch.core:core-common:2.1.0
|    +--- (0.06 MB) androidx.drawerlayout:drawerlayout:1.0.0
|    +--- (0.02 MB) androidx.annotation:annotation:1.1.0
|    +--- 0.33 MB (0.15 MB) androidx.appcompat:appcompat-resources:1.1.0
|    |    +--- 0.09 MB (0.08 MB) androidx.vectordrawable:vectordrawable-animated:1.1.0
|    |    |    \--- (0.01 MB) androidx.interpolator:interpolator:1.0.0
|    |    \--- (0.08 MB) androidx.vectordrawable:vectordrawable:1.1.0
|    +--- 1.46 MB (1.39 MB) androidx.core:core:1.1.0
|    |    \--- (0.06 MB) androidx.versionedparcelable:versionedparcelable:1.1.0
|    +--- 0.69 MB (0.38 MB) androidx.fragment:fragment:1.1.0
|    |    +--- (0.01 MB) androidx.lifecycle:lifecycle-viewmodel:2.1.0
|    |    +--- 0.05 MB (0.03 MB) androidx.activity:activity:1.0.0
|    |    |    \--- (0.01 MB) androidx.savedstate:savedstate:1.0.0
|    |    +--- (0.11 MB) androidx.viewpager:viewpager:1.0.0
|    |    +--- 0.12 MB (0.08 MB) androidx.loader:loader:1.0.0
|    |    |    +--- 0.04 MB (0.01 MB) androidx.lifecycle:lifecycle-livedata:2.0.0
|    |    |    |    +--- (0 MB) androidx.arch.core:core-runtime:2.0.0
|    |    |    |    \--- (0.01 MB) androidx.lifecycle:lifecycle-livedata-core:2.0.0
|    +--- (0.01 MB) androidx.lifecycle:lifecycle-runtime:2.1.0
|    \--- (0.07 MB) androidx.customview:customview:1.0.0
\--- (0 MB) :lib
vlsi commented 2 years ago

I like it.

What do you think if print size like 0.02 MB androidx.cursoradapter:cursoradapter:1.0.0 instead of (0.02)..? It looks like the excessive parenthesis could be removed.

Can I try the tree? :) (or would you please try showing the tree for org.jacoco:org.jacoco.core:0.8.5?)

vlsi commented 2 years ago

By the way, I guess the dependencies should be sorted from biggest to smallest

autonomousapps commented 2 years ago

I'm using the parentheses to indicate it's for this dependency. If an element only has a number in parentheses, that just means it doesn't dominate anything. I guess it could be tweaked.

Sorting is a whole other can of worms. I'm pushing the PR now. You're welcome to take a look, give it a try, and propose improvements.

vlsi commented 2 years ago

Ok, I managed to get it running, however, I added a standalone test (I have no Android SDK, so running tests that rely on Android is problematic for me).

import com.autonomousapps.utils.runner
import org.gradle.util.GradleVersion
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.io.TempDir
import java.io.File

class DominatorTreeTest {
  @TempDir
  lateinit var projectDir: File

  @Test
  fun test(){
    projectDir.resolve("build.gradle").writeText(
      """
        plugins {
          id 'java-library'
          id 'com.autonomousapps.dependency-analysis'
        }

        repositories {
          mavenCentral()
        }

        dependencies {
          implementation("org.apache.calcite:calcite-core:1.21.0")
        }
      """.trimIndent()
    )
    runner(GradleVersion.version("7.4.2"), projectDir, "printDominatorTreeMain").withPluginClasspath().build()
  }
}
17.05 MB :
+--- 17.05 MB (4.81 MB) org.apache.calcite:calcite-core:1.21.0
|    +--- 3.66 MB (1.24 MB) org.apache.calcite.avatica:avatica-core:1.15.0
|    |    +--- 1.35 MB com.google.protobuf:protobuf-java:3.6.1
|    |    +--- 0.73 MB org.apache.httpcomponents:httpclient:4.5.6
|    |    +--- 0.31 MB org.apache.httpcomponents:httpcore:4.4.10
|    |    \--- 0.01 MB org.apache.calcite.avatica:avatica-metrics:1.15.0
|    +--- 2.2 MB com.google.guava:guava:19.0
|    +--- 1.28 MB com.fasterxml.jackson.core:jackson-databind:2.9.9.3
|    +--- 0.88 MB com.esri.geometry:esri-geometry-api:2.2.0
|    +--- 0.8 MB org.codehaus.janino:janino:3.0.11
|    +--- 0.47 MB org.apache.commons:commons-lang3:3.8
|    +--- 0.46 MB (0.43 MB) com.yahoo.datasketches:sketches-core:0.9.0
|    |    \--- 0.02 MB com.yahoo.datasketches:memory:0.9.0
|    +--- 0.46 MB org.apache.calcite:calcite-linq4j:1.21.0
|    +--- 0.32 MB (0.04 MB) com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.9
|    |    \--- 0.28 MB org.yaml:snakeyaml:1.23
|    +--- 0.32 MB commons-codec:commons-codec:1.12
|    +--- 0.32 MB (0.19 MB) org.apache.commons:commons-dbcp2:2.6.0
|    |    \--- 0.12 MB org.apache.commons:commons-pool2:2.6.1
|    +--- 0.31 MB com.fasterxml.jackson.core:jackson-core:2.9.9
|    +--- 0.29 MB (0.04 MB) net.hydromatic:aggdesigner-algorithm:6.0
|    |    \--- 0.24 MB commons-lang:commons-lang:2.4
|    +--- 0.21 MB com.jayway.jsonpath:json-path:2.4.0
|    +--- 0.06 MB com.fasterxml.jackson.core:jackson-annotations:2.9.9
|    +--- 0.05 MB commons-logging:commons-logging:1.2
|    +--- 0.03 MB org.slf4j:slf4j-api:1.7.25
|    \--- 0.03 MB org.codehaus.janino:commons-compiler:3.0.11

I would suggest avoid .stripTrailingZeros() in com.autonomousapps.internal.utils.FileUtils#byteCountToDisplaySize(java.math.BigDecimal, com.autonomousapps.internal.utils.FileUtils.Scale) so 0.8 MB org.codehaus.janino:janino:3.0.11 would be like 0.80 MB org.codehaus.janino:janino:3.0.11 and it would be aligned with the rest:

17.05 MB :
+--- 17.05 MB (4.81 MB) org.apache.calcite:calcite-core:1.21.0
|    +--- 3.66 MB (1.24 MB) org.apache.calcite.avatica:avatica-core:1.15.0
|    |    +--- 1.35 MB com.google.protobuf:protobuf-java:3.6.1
|    |    +--- 0.73 MB org.apache.httpcomponents:httpclient:4.5.6
|    |    +--- 0.31 MB org.apache.httpcomponents:httpcore:4.4.10
|    |    \--- 0.01 MB org.apache.calcite.avatica:avatica-metrics:1.15.0
|    +--- 2.20 MB com.google.guava:guava:19.0
|    +--- 1.28 MB com.fasterxml.jackson.core:jackson-databind:2.9.9.3
|    +--- 0.88 MB com.esri.geometry:esri-geometry-api:2.2.0
|    +--- 0.80 MB org.codehaus.janino:janino:3.0.11
|    +--- 0.47 MB org.apache.commons:commons-lang3:3.8
|    +--- 0.46 MB (0.43 MB) com.yahoo.datasketches:sketches-core:0.9.0
|    |    \--- 0.02 MB com.yahoo.datasketches:memory:0.9.0
|    +--- 0.46 MB org.apache.calcite:calcite-linq4j:1.21.0
|    +--- 0.32 MB (0.04 MB) com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.9
|    |    \--- 0.28 MB org.yaml:snakeyaml:1.23
|    +--- 0.32 MB commons-codec:commons-codec:1.12
|    +--- 0.32 MB (0.19 MB) org.apache.commons:commons-dbcp2:2.6.0
|    |    \--- 0.12 MB org.apache.commons:commons-pool2:2.6.1
|    +--- 0.31 MB com.fasterxml.jackson.core:jackson-core:2.9.9
|    +--- 0.29 MB (0.04 MB) net.hydromatic:aggdesigner-algorithm:6.0
|    |    \--- 0.24 MB commons-lang:commons-lang:2.4
|    +--- 0.21 MB com.jayway.jsonpath:json-path:2.4.0
|    +--- 0.06 MB com.fasterxml.jackson.core:jackson-annotations:2.9.9
|    +--- 0.05 MB commons-logging:commons-logging:1.2
|    +--- 0.03 MB org.slf4j:slf4j-api:1.7.25
|    \--- 0.03 MB org.codehaus.janino:commons-compiler:3.0.11
vlsi commented 2 years ago

Then suppose my project depends on both calcite-core, guava, and jackson-databind.

        dependencies {
          implementation("org.apache.calcite:calcite-core:1.21.0")
          implementation("com.google.guava:guava:19.0")
          implementation("com.fasterxml.jackson.core:jackson-databind:2.9.9.3")
        }

The output becomes:

17.05 MB :
+--- 13.19 MB (4.81 MB) org.apache.calcite:calcite-core:1.21.0
|    +--- 3.66 MB (1.24 MB) org.apache.calcite.avatica:avatica-core:1.15.0
|    |    +--- 1.35 MB com.google.protobuf:protobuf-java:3.6.1
|    |    +--- 0.73 MB org.apache.httpcomponents:httpclient:4.5.6
|    |    +--- 0.31 MB org.apache.httpcomponents:httpcore:4.4.10
|    |    \--- 0.01 MB org.apache.calcite.avatica:avatica-metrics:1.15.0
|    +--- 0.88 MB com.esri.geometry:esri-geometry-api:2.2.0
|    +--- 0.80 MB org.codehaus.janino:janino:3.0.11
|    +--- 0.47 MB org.apache.commons:commons-lang3:3.8
|    +--- 0.46 MB (0.43 MB) com.yahoo.datasketches:sketches-core:0.9.0
|    |    \--- 0.02 MB com.yahoo.datasketches:memory:0.9.0
|    +--- 0.46 MB org.apache.calcite:calcite-linq4j:1.21.0
|    +--- 0.32 MB (0.04 MB) com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.9
|    |    \--- 0.28 MB org.yaml:snakeyaml:1.23
|    +--- 0.32 MB commons-codec:commons-codec:1.12
|    +--- 0.32 MB (0.19 MB) org.apache.commons:commons-dbcp2:2.6.0
|    |    \--- 0.12 MB org.apache.commons:commons-pool2:2.6.1
|    +--- 0.29 MB (0.04 MB) net.hydromatic:aggdesigner-algorithm:6.0
|    |    \--- 0.24 MB commons-lang:commons-lang:2.4
|    +--- 0.21 MB com.jayway.jsonpath:json-path:2.4.0
|    +--- 0.05 MB commons-logging:commons-logging:1.2
|    +--- 0.03 MB org.slf4j:slf4j-api:1.7.25
|    \--- 0.03 MB org.codehaus.janino:commons-compiler:3.0.11
+--- 2.20 MB com.google.guava:guava:19.0
+--- 1.28 MB com.fasterxml.jackson.core:jackson-databind:2.9.9.3
+--- 0.31 MB com.fasterxml.jackson.core:jackson-core:2.9.9
\--- 0.06 MB com.fasterxml.jackson.core:jackson-annotations:2.9.9

It kind of makes sense:

Just in case, here's a sample with just jackson-databind

        dependencies {
          //implementation("org.apache.calcite:calcite-core:1.21.0")
          //implementation("com.google.guava:guava:19.0")
          implementation("com.fasterxml.jackson.core:jackson-databind:2.9.9.3")
        }
> Task :printDominatorTreeMain
1.65 MB :
+--- 1.65 MB (1.28 MB) com.fasterxml.jackson.core:jackson-databind:2.9.9.3
|    +--- 0.31 MB com.fasterxml.jackson.core:jackson-core:2.9.9
|    \--- 0.06 MB com.fasterxml.jackson.core:jackson-annotations:2.9.0

> Task :dependencies

------------------------------------------------------------
Root project 'junit14618342795805391501'
------------------------------------------------------------

runtimeClasspath - Runtime classpath of source set 'main'.
\--- com.fasterxml.jackson.core:jackson-databind:2.9.9.3
     +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0
     \--- com.fasterxml.jackson.core:jackson-core:2.9.9
vlsi commented 2 years ago

Regarding com.autonomousapps.internal.utils.FileUtils#getScale(java.math.BigDecimal)

I would suggest something like 4 or 5 as a flip point for the base unit calculation. In other words, 6.0 MiB is ok as megabytes, however, it would probably make sense to use 1699.74 KB instead of 1.65 MiB.

For example, I think the following output is slightly better than 1.65 M, however, I would like to hear what you think.

1699.74 KB :
+--- 1699.74 KB (1316.78 KB) com.fasterxml.jackson.core:jackson-databind:2.9.9.3
|    +--- 318.00 KB com.fasterxml.jackson.core:jackson-core:2.9.9
|    \--- 64.95 KB com.fasterxml.jackson.core:jackson-annotations:2.9.0
3954.15 KB :
+--- 2254.41 KB com.google.guava:guava:19.0
+--- 1699.74 KB (1316.78 KB) com.fasterxml.jackson.core:jackson-databind:2.9.9.3
|    +--- 318.00 KB com.fasterxml.jackson.core:jackson-core:2.9.9
|    \--- 64.95 KB com.fasterxml.jackson.core:jackson-annotations:2.9.0

By the way, it would be great to right-align all the numbers as follows. I believe it is super-easy to do when all the number have the same units. You check the width of the "size label" length of the first element in the tree, and then use it to pad the siblings. For example, 318.00 is 6 chars, so you pad 64.95 to 6 chars

3954.15 KB :
+--- 2254.41 KB com.google.guava:guava:19.0
+--- 1699.74 KB (1316.78 KB) com.fasterxml.jackson.core:jackson-databind:2.9.9.3
|    +--- 318.00 KB com.fasterxml.jackson.core:jackson-core:2.9.9
|    \---  64.95 KB com.fasterxml.jackson.core:jackson-annotations:2.9.0
vlsi commented 2 years ago

If you use 1024 for the unit fraction, then the units should probably be KiB, MiB, GiB, and so on: https://en.wikipedia.org/wiki/Byte#Multiple-byte_units

vlsi commented 2 years ago

It looks like the dominator tree misses some of the dependencies. For instance, com.github.weisj, org.apache.tika, etc are completely missing

implementation("org.apache.jmeter:ApacheJMeter_core:5.4.3")

See https://repo1.maven.org/maven2/org/apache/jmeter/ApacheJMeter_core/5.4.3/ApacheJMeter_core-5.4.3.pom

> Task :printDominatorTreeMain
15.03 MB :
+--- 15.03 MB (1.67 MB) org.apache.jmeter:ApacheJMeter_core:5.4.3
|    +--- 5.25 MB net.sf.saxon:Saxon-HE:9.9.1-8
|    +--- 3.45 MB (3.00 MB) xalan:xalan:2.7.2
|    |    +--- 0.44 MB (0.26 MB) xalan:serializer:2.7.2
|    |    |    \--- 0.18 MB xml-apis:xml-apis:1.3.04
|    +--- 1.70 MB org.apache.logging.log4j:log4j-core:2.17.0
|    +--- 1.14 MB com.fifesoft:rsyntaxtextarea:3.1.1
|    +--- 0.62 MB (0.59 MB) com.thoughtworks.xstream:xstream:1.4.15
|    |    +--- 0.02 MB xpp3:xpp3_min:1.1.4c
|    |    \--- 0.00 MB xmlpull:xmlpull:1.1.3.1
|    +--- 0.28 MB org.apache.logging.log4j:log4j-api:2.17.0
|    +--- 0.23 MB net.sf.jtidy:jtidy:r938
|    +--- 0.19 MB org.apache.logging.log4j:log4j-1.2-api:2.17.0
|    +--- 0.16 MB org.apache.jmeter:jorphan:5.4.3
|    +--- 0.14 MB (0.10 MB) bsf:bsf:2.4.0
|    |    \--- 0.03 MB commons-logging:commons-logging:1.0.4
|    +--- 0.06 MB oro:oro:2.0.8
|    +--- 0.03 MB org.slf4j:slf4j-api:1.7.30
|    +--- 0.02 MB org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
|    +--- 0.01 MB org.apache.jmeter:ApacheJMeter:5.4.3
|    \--- 0.00 MB org.apiguardian:apiguardian-api:1.1.0

> Task :dependencies

------------------------------------------------------------
Root project 'junit2722563613273408154'
------------------------------------------------------------

runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.jmeter:ApacheJMeter_core:5.4.3
     +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
     +--- com.fasterxml.jackson.core:jackson-core:2.10.5
     +--- com.fasterxml.jackson.core:jackson-databind:2.10.5
     |    +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
     |    \--- com.fasterxml.jackson.core:jackson-core:2.10.5
     +--- com.formdev:svgSalamander:1.1.2.3
     +--- com.github.ben-manes.caffeine:caffeine:2.8.8
     |    +--- org.checkerframework:checker-qual:3.8.0
     |    \--- com.google.errorprone:error_prone_annotations:2.4.0
     +--- com.github.weisj:darklaf-core:2.5.4
     |    +--- com.github.weisj:darklaf-theme:2.5.4
     |    |    +--- com.github.weisj:darklaf-property-loader:2.5.4
     |    |    |    +--- com.github.weisj:darklaf-utils:2.5.4
     |    |    |    \--- com.formdev:svgSalamander:1.1.2.3
     |    |    \--- com.github.weisj:darklaf-utils:2.5.4
     |    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
     |    +--- com.github.weisj:darklaf-utils:2.5.4
     |    +--- com.github.weisj:darklaf-native-utils:2.5.4
     |    +--- com.github.weisj:darklaf-platform-base:2.5.4
     |    +--- com.github.weisj:darklaf-windows:2.5.4
     |    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
     |    |    +--- com.github.weisj:darklaf-utils:2.5.4
     |    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
     |    |    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
     |    |    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
     |    |    \--- net.java.dev.jna:jna:5.5.0
     |    +--- com.github.weisj:darklaf-macos:2.5.4
     |    |    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
     |    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
     |    |    +--- com.github.weisj:darklaf-utils:2.5.4
     |    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
     |    |    \--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
     |    +--- org.swinglabs:jxlayer:3.0.4
     |    \--- com.formdev:svgSalamander:1.1.2.3
     +--- com.github.weisj:darklaf-theme:2.5.4 (*)
     +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
     +--- com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
     +--- com.miglayout:miglayout-swing:5.2
     |    \--- com.miglayout:miglayout-core:5.2
     +--- commons-codec:commons-codec:1.15
     +--- commons-collections:commons-collections:3.2.2
     +--- org.apache.commons:commons-collections4:4.4
     +--- org.apache.commons:commons-math3:3.6.1
     +--- org.apache.commons:commons-text:1.9
     |    \--- org.apache.commons:commons-lang3:3.11
     +--- org.apache.tika:tika-core:1.24.1
     +--- org.apache.xmlgraphics:xmlgraphics-commons:2.3
     |    +--- commons-io:commons-io:1.3.1 -> 2.8.0
     |    \--- commons-logging:commons-logging:1.0.4
     +--- org.freemarker:freemarker:2.3.30
     +--- org.jodd:jodd-core:5.0.13
     +--- org.jodd:jodd-props:5.0.13
     |    \--- org.jodd:jodd-core:5.0.13
     +--- org.mozilla:rhino:1.7.13
     +--- org.slf4j:jcl-over-slf4j:1.7.30
     |    \--- org.slf4j:slf4j-api:1.7.30
     +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
     +--- org.apache.jmeter:ApacheJMeter:5.4.3
     |    \--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
     +--- org.apache.jmeter:jorphan:5.4.3
     |    +--- commons-io:commons-io:2.8.0
     |    +--- org.apache.commons:commons-collections4:4.4
     |    +--- org.apache.commons:commons-lang3:3.11
     |    +--- org.apache.commons:commons-math3:3.6.1
     |    +--- org.apache.commons:commons-text:1.9 (*)
     |    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
     |    +--- org.apiguardian:apiguardian-api:1.1.0
     |    \--- org.slf4j:slf4j-api:1.7.30
     +--- bsf:bsf:2.4.0
     |    \--- commons-logging:commons-logging:1.0.4
     +--- com.fifesoft:rsyntaxtextarea:3.1.1
     +--- net.sf.jtidy:jtidy:r938
     +--- com.thoughtworks.xstream:xstream:1.4.15
     |    +--- xmlpull:xmlpull:1.1.3.1
     |    \--- xpp3:xpp3_min:1.1.4c
     +--- org.apache.logging.log4j:log4j-1.2-api:2.17.0
     |    \--- org.apache.logging.log4j:log4j-api:2.17.0
     +--- org.apache.logging.log4j:log4j-api:2.17.0
     +--- org.apache.logging.log4j:log4j-core:2.17.0
     |    \--- org.apache.logging.log4j:log4j-api:2.17.0
     +--- org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
     |    +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
     |    +--- org.apache.logging.log4j:log4j-api:2.17.0
     |    \--- org.apache.logging.log4j:log4j-core:2.17.0 (*)
     +--- org.apiguardian:apiguardian-api:1.1.0
     +--- oro:oro:2.0.8
     +--- xalan:xalan:2.7.2
     |    \--- xalan:serializer:2.7.2
     |         \--- xml-apis:xml-apis:1.3.04 -> 1.4.01
     +--- net.sf.saxon:Saxon-HE:9.9.1-8
     +--- org.codehaus.groovy:groovy:3.0.7
     +--- org.codehaus.groovy:groovy-dateutil:3.0.7
     |    \--- org.codehaus.groovy:groovy:3.0.7
     +--- org.codehaus.groovy:groovy-datetime:3.0.7
     |    \--- org.codehaus.groovy:groovy:3.0.7
     +--- org.codehaus.groovy:groovy-jmx:3.0.7
     |    \--- org.codehaus.groovy:groovy:3.0.7
     +--- org.codehaus.groovy:groovy-json:3.0.7
     |    \--- org.codehaus.groovy:groovy:3.0.7
     +--- org.codehaus.groovy:groovy-jsr223:3.0.7
     |    \--- org.codehaus.groovy:groovy:3.0.7
     +--- org.codehaus.groovy:groovy-sql:3.0.7
     |    \--- org.codehaus.groovy:groovy:3.0.7
     +--- org.codehaus.groovy:groovy-templates:3.0.7
     |    +--- org.codehaus.groovy:groovy:3.0.7
     |    \--- org.codehaus.groovy:groovy-xml:3.0.7
     |         \--- org.codehaus.groovy:groovy:3.0.7
     +--- org.apache.tika:tika-parsers:1.24.1
     +--- xerces:xercesImpl:2.12.0
     |    \--- xml-apis:xml-apis:1.4.01
     \--- xml-apis:xml-apis:1.4.01
vlsi commented 2 years ago

One more thing: I would expect that printDependencyDominators would behave similar to the existing dependencies task.

In other words, I would expect something like printDependencyDominators --configuration runtimeClasspath or printDependencyDominators --configuration testRuntimeClasspath.

autonomousapps commented 2 years ago

@vlsi I have rewritten the DominanceTree class from scratch using an entirely different algorithm and no prior art. GPL issues begone!

I haven't yet made any effort to investigate any other issues you raised. If you have a chance to test it out and let me know if you still see "missing" dependencies, I'd appreciate it.

autonomousapps commented 2 years ago

Regarding the missing dependencies, it might be due to this:

> Task :printDominatorTreeMain
...

> Task :dependencies

------------------------------------------------------------
Root project 'junit2722563613273408154'
------------------------------------------------------------

runtimeClasspath - Runtime classpath of source set 'main'.

The :printDominatorTreeMain task as currently written uses the compile classpath. Your :dependencies invocation printed the runtime classpath. Those are probably just different in your case.

vlsi commented 2 years ago

The :printDominatorTreeMain task as currently written uses the compile classpath. Your :dependencies invocation printed the runtime classpath. Those are probably just different in your case.

Yeah, that was indeed the reason.

It would be great if the configuration could be customized.


I just did a quick test with runtimeClasspath (I replaced dependencyAnalyzer.compileConfigurationName with dependencyAnalyzer.runtimeConfigurationName), and it looks something is not quite right with the dominatror tree:

Watch for net.java.dev.jna:jna. I would expect it to appear on a top level (side by side with org.jetbrains.kotlin:kotlin-compiler-embeddable and org.apache.jmeter:ApacheJMeter_core) because both of them use jna, so neither of them dominates it. However jna is rendered as | | | \--- 1.44 MiB net.java.dev.jna:jna:5.6.0

> Task :printDominatorTreeMain
98.18 MiB :
+--- 55.99 MiB (50.08 MiB) org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.0
|    +--- 2.97 MiB org.jetbrains.kotlin:kotlin-reflect:1.7.0
|    +--- 1.66 MiB (1.45 MiB) org.jetbrains.kotlin:kotlin-stdlib:1.7.0
|    |    +--- 0.19 MiB org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0
|    |    \--- 0.02 MiB org.jetbrains:annotations:13.0
|    +--- 0.69 MiB org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.0
|    +--- 0.55 MiB org.jetbrains.intellij.deps:trove4j:1.0.20200330
|    \--- 0.04 MiB org.jetbrains.kotlin:kotlin-script-runtime:1.7.0
+--- 40.75 MiB (1.68 MiB) org.apache.jmeter:ApacheJMeter_core:5.4.3
|    +--- 7.58 MiB org.codehaus.groovy:groovy:3.0.7
|    +--- 5.25 MiB net.sf.saxon:Saxon-HE:9.9.1-8
|    +--- 3.27 MiB (3.01 MiB) xalan:xalan:2.7.2
|    |    \--- 0.26 MiB xalan:serializer:2.7.2
|    +--- 2.11 MiB org.apache.commons:commons-math3:3.6.1
|    +--- 1.89 MiB (1.48 MiB) com.github.weisj:darklaf-core:2.5.4
|    |    +--- 0.32 MiB com.github.weisj:darklaf-windows:2.5.4
|    |    +--- 0.05 MiB org.swinglabs:jxlayer:3.0.4
|    |    +--- 0.03 MiB com.github.weisj:darklaf-macos:2.5.4
|    |    +--- 0.01 MiB com.github.weisj:darklaf-native-utils:2.5.4
|    |    \--- 0.00 MiB com.github.weisj:darklaf-platform-base:2.5.4
|    +--- 1.71 MiB org.apache.logging.log4j:log4j-core:2.17.0
|    +--- 1.62 MiB org.freemarker:freemarker:2.3.30
|    +--- 1.34 MiB com.fasterxml.jackson.core:jackson-databind:2.10.5
|    +--- 1.32 MiB xerces:xercesImpl:2.12.0
|    +--- 1.27 MiB org.apache.tika:tika-parsers:1.24.1
|    +--- 1.25 MiB org.mozilla:rhino:1.7.13
|    +--- 1.14 MiB com.fifesoft:rsyntaxtextarea:3.1.1
|    +--- 1.11 MiB (0.88 MiB) com.github.ben-manes.caffeine:caffeine:2.8.8
|    |    +--- 0.22 MiB org.checkerframework:checker-qual:3.8.0
|    |    \--- 0.01 MiB com.google.errorprone:error_prone_annotations:2.4.0
|    +--- 0.72 MiB org.apache.commons:commons-collections4:4.4
|    +--- 0.68 MiB org.apache.tika:tika-core:1.24.1
|    +--- 0.64 MiB org.apache.xmlgraphics:xmlgraphics-commons:2.3
|    +--- 0.63 MiB (0.60 MiB) com.thoughtworks.xstream:xstream:1.4.15
|    |    +--- 0.02 MiB xpp3:xpp3_min:1.1.4c
|    |    \--- 0.01 MiB xmlpull:xmlpull:1.1.3.1
|    +--- 0.56 MiB commons-collections:commons-collections:3.2.2
|    |    \--- 0.55 MiB org.apache.commons:commons-lang3:3.11
|    +--- 0.38 MiB org.jodd:jodd-core:5.0.13
|    +--- 0.37 MiB (0.09 MiB) org.codehaus.groovy:groovy-templates:3.0.7
|    |    \--- 0.28 MiB org.codehaus.groovy:groovy-xml:3.0.7
|    +--- 0.34 MiB commons-codec:commons-codec:1.15
|    +--- 0.33 MiB com.fasterxml.jackson.core:jackson-core:2.10.5
|    +--- 0.29 MiB org.apache.logging.log4j:log4j-api:2.17.0
|    +--- 0.29 MiB com.formdev:svgSalamander:1.1.2.3
|    |    \--- 0.27 MiB commons-io:commons-io:2.8.0
|    +--- 0.24 MiB net.sf.jtidy:jtidy:r938
|    +--- 0.21 MiB xml-apis:xml-apis:1.4.01
|    +--- 0.21 MiB org.apache.commons:commons-text:1.9
|    +--- 0.20 MiB org.apache.logging.log4j:log4j-1.2-api:2.17.0
|    +--- 0.16 MiB org.apache.jmeter:jorphan:5.4.3
|    +--- 0.13 MiB org.codehaus.groovy:groovy-jmx:3.0.7
|    +--- 0.13 MiB org.codehaus.groovy:groovy-json:3.0.7
|    +--- 0.12 MiB (0.02 MiB) com.miglayout:miglayout-swing:5.2
|    |    \--- 0.10 MiB com.miglayout:miglayout-core:5.2
|    +--- 0.11 MiB bsf:bsf:2.4.0
|    +--- 0.08 MiB com.github.weisj:darklaf-theme:2.5.4
|    +--- 0.08 MiB org.codehaus.groovy:groovy-sql:3.0.7
|    +--- 0.07 MiB com.github.weisj:darklaf-property-loader:2.5.4
|    +--- 0.06 MiB com.fasterxml.jackson.core:jackson-annotations:2.10.5
|    +--- 0.06 MiB oro:oro:2.0.8
|    |    +--- 0.04 MiB com.github.weisj:darklaf-utils:2.5.4
|    |    +--- 0.04 MiB org.slf4j:slf4j-api:1.7.30
|    |    \--- 0.04 MiB commons-logging:commons-logging:1.0.4
|    +--- 0.02 MiB org.jodd:jodd-props:5.0.13
|    +--- 0.02 MiB org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
|    +--- 0.02 MiB org.codehaus.groovy:groovy-jsr223:3.0.7
|    +--- 0.02 MiB com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
|    +--- 0.02 MiB org.codehaus.groovy:groovy-datetime:3.0.7
|    +--- 0.02 MiB org.slf4j:jcl-over-slf4j:1.7.30
|    +--- 0.01 MiB org.apache.jmeter:ApacheJMeter:5.4.3
|    +--- 0.01 MiB org.codehaus.groovy:groovy-dateutil:3.0.7
|    +--- 0.00 MiB org.apiguardian:apiguardian-api:1.1.0
|    |    |    \--- 1.44 MiB net.java.dev.jna:jna:5.6.0

> Task :dependencies

------------------------------------------------------------
Root project 'junit11727857352436424294'
------------------------------------------------------------

runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.jmeter:ApacheJMeter_core:5.4.3
|    +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
|    +--- com.fasterxml.jackson.core:jackson-core:2.10.5
|    +--- com.fasterxml.jackson.core:jackson-databind:2.10.5
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
|    |    \--- com.fasterxml.jackson.core:jackson-core:2.10.5
|    +--- com.formdev:svgSalamander:1.1.2.3
|    +--- com.github.ben-manes.caffeine:caffeine:2.8.8
|    |    +--- org.checkerframework:checker-qual:3.8.0
|    |    \--- com.google.errorprone:error_prone_annotations:2.4.0
|    +--- com.github.weisj:darklaf-core:2.5.4
|    |    +--- com.github.weisj:darklaf-theme:2.5.4
|    |    |    +--- com.github.weisj:darklaf-property-loader:2.5.4
|    |    |    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    |    |    \--- com.formdev:svgSalamander:1.1.2.3
|    |    |    \--- com.github.weisj:darklaf-utils:2.5.4
|    |    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
|    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
|    |    +--- com.github.weisj:darklaf-windows:2.5.4
|    |    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
|    |    |    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
|    |    |    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    |    |    \--- net.java.dev.jna:jna:5.5.0 -> 5.6.0
|    |    +--- com.github.weisj:darklaf-macos:2.5.4
|    |    |    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
|    |    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
|    |    |    \--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    |    +--- org.swinglabs:jxlayer:3.0.4
|    |    \--- com.formdev:svgSalamander:1.1.2.3
|    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
|    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    +--- com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
|    +--- com.miglayout:miglayout-swing:5.2
|    |    \--- com.miglayout:miglayout-core:5.2
|    +--- commons-codec:commons-codec:1.15
|    +--- commons-collections:commons-collections:3.2.2
|    +--- org.apache.commons:commons-collections4:4.4
|    +--- org.apache.commons:commons-math3:3.6.1
|    +--- org.apache.commons:commons-text:1.9
|    |    \--- org.apache.commons:commons-lang3:3.11
|    +--- org.apache.tika:tika-core:1.24.1
|    +--- org.apache.xmlgraphics:xmlgraphics-commons:2.3
|    |    +--- commons-io:commons-io:1.3.1 -> 2.8.0
|    |    \--- commons-logging:commons-logging:1.0.4
|    +--- org.freemarker:freemarker:2.3.30
|    +--- org.jodd:jodd-core:5.0.13
|    +--- org.jodd:jodd-props:5.0.13
|    |    \--- org.jodd:jodd-core:5.0.13
|    +--- org.mozilla:rhino:1.7.13
|    +--- org.slf4j:jcl-over-slf4j:1.7.30
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:ApacheJMeter:5.4.3
|    |    \--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:jorphan:5.4.3
|    |    +--- commons-io:commons-io:2.8.0
|    |    +--- org.apache.commons:commons-collections4:4.4
|    |    +--- org.apache.commons:commons-lang3:3.11
|    |    +--- org.apache.commons:commons-math3:3.6.1
|    |    +--- org.apache.commons:commons-text:1.9 (*)
|    |    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    |    +--- org.apiguardian:apiguardian-api:1.1.0
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    +--- bsf:bsf:2.4.0
|    |    \--- commons-logging:commons-logging:1.0.4
|    +--- com.fifesoft:rsyntaxtextarea:3.1.1
|    +--- net.sf.jtidy:jtidy:r938
|    +--- com.thoughtworks.xstream:xstream:1.4.15
|    |    +--- xmlpull:xmlpull:1.1.3.1
|    |    \--- xpp3:xpp3_min:1.1.4c
|    +--- org.apache.logging.log4j:log4j-1.2-api:2.17.0
|    |    \--- org.apache.logging.log4j:log4j-api:2.17.0
|    +--- org.apache.logging.log4j:log4j-api:2.17.0
|    +--- org.apache.logging.log4j:log4j-core:2.17.0
|    |    \--- org.apache.logging.log4j:log4j-api:2.17.0
|    +--- org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
|    |    +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    |    +--- org.apache.logging.log4j:log4j-api:2.17.0
|    |    \--- org.apache.logging.log4j:log4j-core:2.17.0 (*)
|    +--- org.apiguardian:apiguardian-api:1.1.0
|    +--- oro:oro:2.0.8
|    +--- xalan:xalan:2.7.2
|    |    \--- xalan:serializer:2.7.2
|    |         \--- xml-apis:xml-apis:1.3.04 -> 1.4.01
|    +--- net.sf.saxon:Saxon-HE:9.9.1-8
|    +--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-dateutil:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-datetime:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-jmx:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-json:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-jsr223:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-sql:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-templates:3.0.7
|    |    +--- org.codehaus.groovy:groovy:3.0.7
|    |    \--- org.codehaus.groovy:groovy-xml:3.0.7
|    |         \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.apache.tika:tika-parsers:1.24.1
|    +--- xerces:xercesImpl:2.12.0
|    |    \--- xml-apis:xml-apis:1.4.01
|    \--- xml-apis:xml-apis:1.4.01
\--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.0
     +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0
     |    +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0
     |    \--- org.jetbrains:annotations:13.0
     +--- org.jetbrains.kotlin:kotlin-script-runtime:1.7.0
     +--- org.jetbrains.kotlin:kotlin-reflect:1.7.0
     |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0 (*)
     +--- org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.0
     +--- org.jetbrains.intellij.deps:trove4j:1.0.20200330
     \--- net.java.dev.jna:jna:5.6.0
autonomousapps commented 2 years ago

I had a little rendering error which I'm fixing now.

vlsi commented 2 years ago

Another case for a wrong (?) dominator tree:

          api("org.apache.jmeter:ApacheJMeter_core:5.4.3")
          api("org.apache.jmeter:ApacheJMeter_http:5.4.3")

The following lines come out of order (it believe they should be top-level elements as well):

|    +--- 2.11 MiB org.apache.commons:commons-math3:3.6.1
|    +--- 1.34 MiB com.fasterxml.jackson.core:jackson-databind:2.10.5
|    +--- 1.27 MiB org.apache.tika:tika-parsers:1.24.1
|    +--- 1.11 MiB (0.88 MiB) com.github.ben-manes.caffeine:caffeine:2.8.8
|    |    +--- 0.22 MiB org.checkerframework:checker-qual:3.8.0
|    |    \--- 0.01 MiB com.google.errorprone:error_prone_annotations:2.4.0
> Task :printDominatorTreeMain
50.22 MiB :
+--- 31.68 MiB (1.68 MiB) org.apache.jmeter:ApacheJMeter_core:5.4.3
|    +--- 7.58 MiB org.codehaus.groovy:groovy:3.0.7
|    +--- 5.25 MiB net.sf.saxon:Saxon-HE:9.9.1-8
|    +--- 3.33 MiB (1.48 MiB) com.github.weisj:darklaf-core:2.5.4
|    |    +--- 1.76 MiB (0.32 MiB) com.github.weisj:darklaf-windows:2.5.4
|    |    |    \--- 1.44 MiB net.java.dev.jna:jna:5.5.0
|    |    +--- 0.05 MiB org.swinglabs:jxlayer:3.0.4
|    |    +--- 0.03 MiB com.github.weisj:darklaf-macos:2.5.4
|    |    +--- 0.01 MiB com.github.weisj:darklaf-native-utils:2.5.4
|    |    \--- 0.00 MiB com.github.weisj:darklaf-platform-base:2.5.4
|    +--- 3.27 MiB (3.01 MiB) xalan:xalan:2.7.2
|    |    \--- 0.26 MiB xalan:serializer:2.7.2
|    +--- 1.71 MiB org.apache.logging.log4j:log4j-core:2.17.0
|    +--- 1.62 MiB org.freemarker:freemarker:2.3.30
|    +--- 1.32 MiB xerces:xercesImpl:2.12.0
|    +--- 1.25 MiB org.mozilla:rhino:1.7.13
|    +--- 1.14 MiB com.fifesoft:rsyntaxtextarea:3.1.1
|    +--- 0.64 MiB org.apache.xmlgraphics:xmlgraphics-commons:2.3
|    +--- 0.56 MiB commons-collections:commons-collections:3.2.2
|    +--- 0.37 MiB (0.09 MiB) org.codehaus.groovy:groovy-templates:3.0.7
|    |    \--- 0.28 MiB org.codehaus.groovy:groovy-xml:3.0.7
|    +--- 0.29 MiB org.apache.logging.log4j:log4j-api:2.17.0
|    +--- 0.29 MiB com.formdev:svgSalamander:1.1.2.3
|    +--- 0.21 MiB xml-apis:xml-apis:1.4.01
|    +--- 0.20 MiB org.apache.logging.log4j:log4j-1.2-api:2.17.0
|    +--- 0.16 MiB org.apache.jmeter:jorphan:5.4.3
|    +--- 0.13 MiB org.codehaus.groovy:groovy-jmx:3.0.7
|    +--- 0.13 MiB org.codehaus.groovy:groovy-json:3.0.7
|    +--- 0.11 MiB bsf:bsf:2.4.0
|    +--- 0.08 MiB com.github.weisj:darklaf-theme:2.5.4
|    +--- 0.08 MiB org.codehaus.groovy:groovy-sql:3.0.7
|    +--- 0.07 MiB com.github.weisj:darklaf-property-loader:2.5.4
|    |    \--- 0.04 MiB com.github.weisj:darklaf-utils:2.5.4
|    +--- 0.02 MiB org.jodd:jodd-props:5.0.13
|    +--- 0.02 MiB org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
|    +--- 0.02 MiB org.codehaus.groovy:groovy-jsr223:3.0.7
|    +--- 0.02 MiB com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
|    +--- 0.02 MiB org.codehaus.groovy:groovy-datetime:3.0.7
|    +--- 0.02 MiB org.slf4j:jcl-over-slf4j:1.7.30
|    +--- 0.01 MiB org.apache.jmeter:ApacheJMeter:5.4.3
|    +--- 0.01 MiB org.codehaus.groovy:groovy-dateutil:3.0.7
|    \--- 0.00 MiB org.apiguardian:apiguardian-api:1.1.0
+--- 8.01 MiB (0.49 MiB) org.apache.jmeter:ApacheJMeter_http:5.4.3
|    +--- 3.40 MiB (0.72 MiB) org.apache.jmeter:ApacheJMeter_components:5.4.3
|    |    +--- 0.50 MiB javax.mail:mail:1.5.0-b01
|    |    +--- 0.47 MiB io.burt:jmespath-core:0.5.0
|    |    +--- 0.37 MiB org.apache-extras.beanshell:bsh:2.0b6
|    |    +--- 0.35 MiB org.apache.httpcomponents:httpcore-nio:4.4.13
|    |    +--- 0.21 MiB com.jayway.jsonpath:json-path:2.4.0
|    |    +--- 0.17 MiB org.apache.httpcomponents:httpasyncclient:4.1.4
|    |    +--- 0.14 MiB jcharts:jcharts:0.7.5
|    |    +--- 0.13 MiB org.apache.commons:commons-pool2:2.9.0
|    |    +--- 0.12 MiB org.ow2.asm:asm:9.0
|    |    +--- 0.11 MiB net.minidev:json-smart:2.3
|    |    +--- 0.07 MiB com.sun.activation:javax.activation:1.2.0
|    |    +--- 0.03 MiB net.minidev:accessors-smart:1.2
|    |    \--- 0.01 MiB io.burt:jmespath-jackson:0.5.0
|    +--- 1.24 MiB com.helger:ph-commons:9.5.1
|    |    \--- 0.74 MiB org.apache.httpcomponents:httpclient:4.5.12
|    +--- 0.48 MiB com.helger:ph-css:6.2.3
|    +--- 0.38 MiB org.jsoup:jsoup:1.13.1
|    +--- 0.31 MiB org.apache.httpcomponents:httpcore:4.4.13
|    +--- 0.31 MiB dnsjava:dnsjava:2.1.9
|    +--- 0.29 MiB commons-net:commons-net:3.7.2
|    +--- 0.21 MiB org.jodd:jodd-lagarto:5.0.13
|    +--- 0.09 MiB org.brotli:dec:0.1.2
|    +--- 0.04 MiB org.apache.httpcomponents:httpmime:4.5.12
|    |    \--- 0.02 MiB org.jodd:jodd-log:5.0.13
|    +--- 2.11 MiB org.apache.commons:commons-math3:3.6.1
|    +--- 1.34 MiB com.fasterxml.jackson.core:jackson-databind:2.10.5
|    +--- 1.27 MiB org.apache.tika:tika-parsers:1.24.1
|    +--- 1.11 MiB (0.88 MiB) com.github.ben-manes.caffeine:caffeine:2.8.8
|    |    +--- 0.22 MiB org.checkerframework:checker-qual:3.8.0
|    |    \--- 0.01 MiB com.google.errorprone:error_prone_annotations:2.4.0
|    +--- 0.72 MiB org.apache.commons:commons-collections4:4.4
|    +--- 0.68 MiB org.apache.tika:tika-core:1.24.1
|    +--- 0.63 MiB (0.60 MiB) com.thoughtworks.xstream:xstream:1.4.15
|    |    +--- 0.02 MiB xpp3:xpp3_min:1.1.4c
|    |    +--- 0.01 MiB xmlpull:xmlpull:1.1.3.1
|    |    \--- 0.55 MiB org.apache.commons:commons-lang3:3.11
|    +--- 0.38 MiB org.jodd:jodd-core:5.0.13
|    +--- 0.34 MiB commons-codec:commons-codec:1.15
|    +--- 0.33 MiB com.fasterxml.jackson.core:jackson-core:2.10.5
|    |    \--- 0.27 MiB commons-io:commons-io:2.8.0
|    +--- 0.24 MiB net.sf.jtidy:jtidy:r938
|    +--- 0.21 MiB org.apache.commons:commons-text:1.9
|    +--- 0.12 MiB (0.02 MiB) com.miglayout:miglayout-swing:5.2
|    |    \--- 0.10 MiB com.miglayout:miglayout-core:5.2
|    +--- 0.06 MiB com.fasterxml.jackson.core:jackson-annotations:2.10.5
|    +--- 0.06 MiB oro:oro:2.0.8
|    |    +--- 0.06 MiB commons-logging:commons-logging:1.2
|    |    \--- 0.04 MiB org.slf4j:slf4j-api:1.7.30

> Task :dependencies

------------------------------------------------------------
Root project 'junit18279366235942890377'
------------------------------------------------------------

runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.jmeter:ApacheJMeter_core:5.4.3
|    +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
|    +--- com.fasterxml.jackson.core:jackson-core:2.10.5
|    +--- com.fasterxml.jackson.core:jackson-databind:2.10.5
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
|    |    \--- com.fasterxml.jackson.core:jackson-core:2.10.5
|    +--- com.formdev:svgSalamander:1.1.2.3
|    +--- com.github.ben-manes.caffeine:caffeine:2.8.8
|    |    +--- org.checkerframework:checker-qual:3.8.0
|    |    \--- com.google.errorprone:error_prone_annotations:2.4.0
|    +--- com.github.weisj:darklaf-core:2.5.4
|    |    +--- com.github.weisj:darklaf-theme:2.5.4
|    |    |    +--- com.github.weisj:darklaf-property-loader:2.5.4
|    |    |    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    |    |    \--- com.formdev:svgSalamander:1.1.2.3
|    |    |    \--- com.github.weisj:darklaf-utils:2.5.4
|    |    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
|    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
|    |    +--- com.github.weisj:darklaf-windows:2.5.4
|    |    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
|    |    |    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
|    |    |    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    |    |    \--- net.java.dev.jna:jna:5.5.0
|    |    +--- com.github.weisj:darklaf-macos:2.5.4
|    |    |    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
|    |    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
|    |    |    \--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    |    +--- org.swinglabs:jxlayer:3.0.4
|    |    \--- com.formdev:svgSalamander:1.1.2.3
|    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
|    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    +--- com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
|    +--- com.miglayout:miglayout-swing:5.2
|    |    \--- com.miglayout:miglayout-core:5.2
|    +--- commons-codec:commons-codec:1.15
|    +--- commons-collections:commons-collections:3.2.2
|    +--- org.apache.commons:commons-collections4:4.4
|    +--- org.apache.commons:commons-math3:3.6.1
|    +--- org.apache.commons:commons-text:1.9
|    |    \--- org.apache.commons:commons-lang3:3.11
|    +--- org.apache.tika:tika-core:1.24.1
|    +--- org.apache.xmlgraphics:xmlgraphics-commons:2.3
|    |    +--- commons-io:commons-io:1.3.1 -> 2.8.0
|    |    \--- commons-logging:commons-logging:1.0.4 -> 1.2
|    +--- org.freemarker:freemarker:2.3.30
|    +--- org.jodd:jodd-core:5.0.13
|    +--- org.jodd:jodd-props:5.0.13
|    |    \--- org.jodd:jodd-core:5.0.13
|    +--- org.mozilla:rhino:1.7.13
|    +--- org.slf4j:jcl-over-slf4j:1.7.30
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:ApacheJMeter:5.4.3
|    |    \--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:jorphan:5.4.3
|    |    +--- commons-io:commons-io:2.8.0
|    |    +--- org.apache.commons:commons-collections4:4.4
|    |    +--- org.apache.commons:commons-lang3:3.11
|    |    +--- org.apache.commons:commons-math3:3.6.1
|    |    +--- org.apache.commons:commons-text:1.9 (*)
|    |    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    |    +--- org.apiguardian:apiguardian-api:1.1.0
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    +--- bsf:bsf:2.4.0
|    |    \--- commons-logging:commons-logging:1.0.4 -> 1.2
|    +--- com.fifesoft:rsyntaxtextarea:3.1.1
|    +--- net.sf.jtidy:jtidy:r938
|    +--- com.thoughtworks.xstream:xstream:1.4.15
|    |    +--- xmlpull:xmlpull:1.1.3.1
|    |    \--- xpp3:xpp3_min:1.1.4c
|    +--- org.apache.logging.log4j:log4j-1.2-api:2.17.0
|    |    \--- org.apache.logging.log4j:log4j-api:2.17.0
|    +--- org.apache.logging.log4j:log4j-api:2.17.0
|    +--- org.apache.logging.log4j:log4j-core:2.17.0
|    |    \--- org.apache.logging.log4j:log4j-api:2.17.0
|    +--- org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
|    |    +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    |    +--- org.apache.logging.log4j:log4j-api:2.17.0
|    |    \--- org.apache.logging.log4j:log4j-core:2.17.0 (*)
|    +--- org.apiguardian:apiguardian-api:1.1.0
|    +--- oro:oro:2.0.8
|    +--- xalan:xalan:2.7.2
|    |    \--- xalan:serializer:2.7.2
|    |         \--- xml-apis:xml-apis:1.3.04 -> 1.4.01
|    +--- net.sf.saxon:Saxon-HE:9.9.1-8
|    +--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-dateutil:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-datetime:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-jmx:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-json:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-jsr223:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-sql:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-templates:3.0.7
|    |    +--- org.codehaus.groovy:groovy:3.0.7
|    |    \--- org.codehaus.groovy:groovy-xml:3.0.7
|    |         \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.apache.tika:tika-parsers:1.24.1
|    +--- xerces:xercesImpl:2.12.0
|    |    \--- xml-apis:xml-apis:1.4.01
|    \--- xml-apis:xml-apis:1.4.01
\--- org.apache.jmeter:ApacheJMeter_http:5.4.3
     +--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
     +--- commons-io:commons-io:2.8.0
     +--- org.apache.commons:commons-lang3:3.11
     +--- org.apache.commons:commons-text:1.9 (*)
     +--- org.jodd:jodd-lagarto:5.0.13
     |    +--- org.jodd:jodd-core:5.0.13
     |    \--- org.jodd:jodd-log:5.0.13
     +--- org.jsoup:jsoup:1.13.1
     +--- oro:oro:2.0.8
     +--- org.apache.commons:commons-collections4:4.4
     +--- commons-net:commons-net:3.7.2
     +--- com.helger:ph-commons:9.5.1
     |    \--- org.slf4j:slf4j-api:1.7.30
     +--- com.helger:ph-css:6.2.3
     |    +--- com.helger:ph-commons:9.4.2 -> 9.5.1 (*)
     |    \--- org.slf4j:slf4j-api:1.7.30
     +--- dnsjava:dnsjava:2.1.9
     +--- org.apache.httpcomponents:httpmime:4.5.12
     |    \--- org.apache.httpcomponents:httpclient:4.5.12
     |         +--- org.apache.httpcomponents:httpcore:4.4.13
     |         +--- commons-logging:commons-logging:1.2
     |         \--- commons-codec:commons-codec:1.11 -> 1.15
     +--- org.apache.httpcomponents:httpcore:4.4.13
     +--- org.brotli:dec:0.1.2
     +--- com.miglayout:miglayout-swing:5.2 (*)
     +--- com.fasterxml.jackson.core:jackson-core:2.10.5
     +--- com.fasterxml.jackson.core:jackson-databind:2.10.5 (*)
     +--- org.apache.tika:tika-core:1.24.1
     +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
     +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
     +--- org.apache.jmeter:ApacheJMeter_components:5.4.3
     |    +--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
     |    +--- io.burt:jmespath-core:0.5.0
     |    +--- io.burt:jmespath-jackson:0.5.0
     |    |    +--- io.burt:jmespath-core:0.5.0
     |    |    \--- com.fasterxml.jackson.core:jackson-databind:2.9.9 -> 2.10.5 (*)
     |    +--- jcharts:jcharts:0.7.5
     |    +--- oro:oro:2.0.8
     |    +--- net.minidev:json-smart:2.3
     |    |    \--- net.minidev:accessors-smart:1.2
     |    |         \--- org.ow2.asm:asm:5.0.4 -> 9.0
     |    +--- net.minidev:accessors-smart:1.2 (*)
     |    +--- org.apache.commons:commons-pool2:2.9.0
     |    +--- commons-codec:commons-codec:1.15
     |    +--- org.ow2.asm:asm:9.0
     |    +--- org.jodd:jodd-log:5.0.13
     |    +--- org.jodd:jodd-lagarto:5.0.13 (*)
     |    +--- com.jayway.jsonpath:json-path:2.4.0
     |    |    +--- net.minidev:json-smart:2.3 (*)
     |    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
     |    +--- org.apache.httpcomponents:httpasyncclient:4.1.4
     |    |    +--- org.apache.httpcomponents:httpcore:4.4.10 -> 4.4.13
     |    |    +--- org.apache.httpcomponents:httpcore-nio:4.4.10 -> 4.4.13
     |    |    |    \--- org.apache.httpcomponents:httpcore:4.4.13
     |    |    +--- org.apache.httpcomponents:httpclient:4.5.6 -> 4.5.12 (*)
     |    |    \--- commons-logging:commons-logging:1.2
     |    +--- org.apache.httpcomponents:httpcore-nio:4.4.13 (*)
     |    +--- org.jsoup:jsoup:1.13.1
     |    +--- org.apache.commons:commons-lang3:3.11
     |    +--- net.sf.jtidy:jtidy:r938
     |    +--- org.apache.commons:commons-collections4:4.4
     |    +--- org.apache.commons:commons-math3:3.6.1
     |    +--- commons-io:commons-io:2.8.0
     |    +--- org.apache.commons:commons-text:1.9 (*)
     |    +--- com.miglayout:miglayout-swing:5.2 (*)
     |    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
     |    +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
     |    +--- org.apache-extras.beanshell:bsh:2.0b6
     |    +--- javax.mail:mail:1.5.0-b01
     |    \--- com.sun.activation:javax.activation:1.2.0
     +--- com.thoughtworks.xstream:xstream:1.4.15 (*)
     \--- org.apache.tika:tika-parsers:1.24.1
autonomousapps commented 2 years ago

Pull latest and try again. I had a rendering issue.

vlsi commented 2 years ago

Thank you. It looks much better now:

> Task :printDominatorTreeMain
56.90 MiB :
+--- 30.42 MiB (1.68 MiB) org.apache.jmeter:ApacheJMeter_core:5.4.3
|    +--- 7.58 MiB org.codehaus.groovy:groovy:3.0.7
|    +--- 5.25 MiB net.sf.saxon:Saxon-HE:9.9.1-8
|    +--- 3.33 MiB (1.48 MiB) com.github.weisj:darklaf-core:2.5.4
|    |    +--- 1.76 MiB (0.32 MiB) com.github.weisj:darklaf-windows:2.5.4
|    |    |    \--- 1.44 MiB net.java.dev.jna:jna:5.5.0
|    |    +--- 0.05 MiB org.swinglabs:jxlayer:3.0.4
|    |    +--- 0.03 MiB com.github.weisj:darklaf-macos:2.5.4
|    |    +--- 0.01 MiB com.github.weisj:darklaf-native-utils:2.5.4
|    |    \--- 0.00 MiB com.github.weisj:darklaf-platform-base:2.5.4
|    +--- 3.27 MiB (3.01 MiB) xalan:xalan:2.7.2
|    |    \--- 0.26 MiB xalan:serializer:2.7.2
|    +--- 1.71 MiB org.apache.logging.log4j:log4j-core:2.17.0
|    +--- 1.62 MiB org.freemarker:freemarker:2.3.30
|    +--- 1.32 MiB xerces:xercesImpl:2.12.0
|    +--- 1.14 MiB com.fifesoft:rsyntaxtextarea:3.1.1
|    +--- 0.64 MiB org.apache.xmlgraphics:xmlgraphics-commons:2.3
|    +--- 0.56 MiB commons-collections:commons-collections:3.2.2
|    +--- 0.37 MiB (0.09 MiB) org.codehaus.groovy:groovy-templates:3.0.7
|    |    \--- 0.28 MiB org.codehaus.groovy:groovy-xml:3.0.7
|    +--- 0.29 MiB org.apache.logging.log4j:log4j-api:2.17.0
|    +--- 0.29 MiB com.formdev:svgSalamander:1.1.2.3
|    +--- 0.21 MiB xml-apis:xml-apis:1.4.01
|    +--- 0.20 MiB org.apache.logging.log4j:log4j-1.2-api:2.17.0
|    +--- 0.16 MiB org.apache.jmeter:jorphan:5.4.3
|    +--- 0.13 MiB org.codehaus.groovy:groovy-jmx:3.0.7
|    +--- 0.13 MiB org.codehaus.groovy:groovy-json:3.0.7
|    +--- 0.11 MiB bsf:bsf:2.4.0
|    +--- 0.08 MiB com.github.weisj:darklaf-theme:2.5.4
|    +--- 0.08 MiB org.codehaus.groovy:groovy-sql:3.0.7
|    +--- 0.07 MiB com.github.weisj:darklaf-property-loader:2.5.4
|    +--- 0.04 MiB com.github.weisj:darklaf-utils:2.5.4
|    +--- 0.02 MiB org.jodd:jodd-props:5.0.13
|    +--- 0.02 MiB org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
|    +--- 0.02 MiB org.codehaus.groovy:groovy-jsr223:3.0.7
|    +--- 0.02 MiB com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
|    +--- 0.02 MiB org.codehaus.groovy:groovy-datetime:3.0.7
|    +--- 0.02 MiB org.slf4j:jcl-over-slf4j:1.7.30
|    +--- 0.01 MiB org.apache.jmeter:ApacheJMeter:5.4.3
|    +--- 0.01 MiB org.codehaus.groovy:groovy-dateutil:3.0.7
|    \--- 0.00 MiB org.apiguardian:apiguardian-api:1.1.0
+--- 4.40 MiB (0.02 MiB) org.apache.jmeter:ApacheJMeter_bolt:5.4.3
|    +--- 4.38 MiB (4.37 MiB) org.neo4j.driver:neo4j-java-driver:4.2.0
|    |    \--- 0.01 MiB org.reactivestreams:reactive-streams:1.0.3
+--- 2.70 MiB (0.72 MiB) org.apache.jmeter:ApacheJMeter_components:5.4.3
|    +--- 0.47 MiB io.burt:jmespath-core:0.5.0
|    +--- 0.37 MiB org.apache-extras.beanshell:bsh:2.0b6
|    +--- 0.35 MiB org.apache.httpcomponents:httpcore-nio:4.4.13
|    +--- 0.21 MiB com.jayway.jsonpath:json-path:2.4.0
|    +--- 0.17 MiB org.apache.httpcomponents:httpasyncclient:4.1.4
|    +--- 0.14 MiB jcharts:jcharts:0.7.5
|    +--- 0.12 MiB org.ow2.asm:asm:9.0
|    +--- 0.11 MiB net.minidev:json-smart:2.3
|    +--- 0.03 MiB net.minidev:accessors-smart:1.2
|    \--- 0.01 MiB io.burt:jmespath-jackson:0.5.0
+--- 2.66 MiB (0.49 MiB) org.apache.jmeter:ApacheJMeter_http:5.4.3
|    +--- 1.24 MiB com.helger:ph-commons:9.5.1
|    +--- 0.48 MiB com.helger:ph-css:6.2.3
|    +--- 0.31 MiB dnsjava:dnsjava:2.1.9
|    +--- 0.09 MiB org.brotli:dec:0.1.2
|    \--- 0.04 MiB org.apache.httpcomponents:httpmime:4.5.12
+--- 2.11 MiB org.apache.commons:commons-math3:3.6.1
+--- 1.34 MiB com.fasterxml.jackson.core:jackson-databind:2.10.5
+--- 1.27 MiB org.apache.tika:tika-parsers:1.24.1
+--- 1.25 MiB org.mozilla:rhino:1.7.13
+--- 1.11 MiB (0.88 MiB) com.github.ben-manes.caffeine:caffeine:2.8.8
|    +--- 0.22 MiB org.checkerframework:checker-qual:3.8.0
|    \--- 0.01 MiB com.google.errorprone:error_prone_annotations:2.4.0
+--- 0.75 MiB (0.11 MiB) org.apache.jmeter:ApacheJMeter_functions:5.4.3
|    +--- 0.38 MiB org.apache.commons:commons-jexl3:3.1
|    \--- 0.26 MiB org.apache.commons:commons-jexl:2.1.1
+--- 0.74 MiB org.apache.httpcomponents:httpclient:4.5.12
+--- 0.72 MiB org.apache.commons:commons-collections4:4.4
+--- 0.68 MiB org.apache.tika:tika-core:1.24.1
+--- 0.63 MiB (0.60 MiB) com.thoughtworks.xstream:xstream:1.4.15
|    +--- 0.02 MiB xpp3:xpp3_min:1.1.4c
|    \--- 0.01 MiB xmlpull:xmlpull:1.1.3.1
+--- 0.55 MiB org.apache.commons:commons-lang3:3.11
+--- 0.53 MiB (0.02 MiB) org.apache.jmeter:ApacheJMeter_junit:5.4.3
|    +--- 0.36 MiB junit:junit:4.13.1
|    +--- 0.10 MiB org.exparity:hamcrest-date:2.0.7
|    \--- 0.04 MiB org.hamcrest:hamcrest-core:1.3
+--- 0.50 MiB javax.mail:mail:1.5.0-b01
+--- 0.43 MiB (0.03 MiB) org.apache.jmeter:ApacheJMeter_mongodb:5.4.3
|    \--- 0.40 MiB org.mongodb:mongo-java-driver:2.11.3
+--- 0.38 MiB org.jodd:jodd-core:5.0.13
+--- 0.38 MiB org.jsoup:jsoup:1.13.1
+--- 0.34 MiB commons-codec:commons-codec:1.15
+--- 0.33 MiB com.fasterxml.jackson.core:jackson-core:2.10.5
+--- 0.31 MiB org.apache.httpcomponents:httpcore:4.4.13
+--- 0.29 MiB commons-net:commons-net:3.7.2
+--- 0.27 MiB commons-io:commons-io:2.8.0
+--- 0.26 MiB (0.06 MiB) org.apache.jmeter:ApacheJMeter_jdbc:5.4.3
|    \--- 0.20 MiB org.apache.commons:commons-dbcp2:2.8.0
+--- 0.24 MiB net.sf.jtidy:jtidy:r938
+--- 0.21 MiB org.jodd:jodd-lagarto:5.0.13
+--- 0.21 MiB org.apache.commons:commons-text:1.9
+--- 0.13 MiB org.apache.commons:commons-pool2:2.9.0
+--- 0.12 MiB (0.02 MiB) com.miglayout:miglayout-swing:5.2
|    \--- 0.10 MiB com.miglayout:miglayout-core:5.2
+--- 0.12 MiB (0.09 MiB) org.apache.jmeter:ApacheJMeter_jms:5.4.3
|    \--- 0.03 MiB org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1
+--- 0.07 MiB com.sun.activation:javax.activation:1.2.0
+--- 0.06 MiB com.fasterxml.jackson.core:jackson-annotations:2.10.5
+--- 0.06 MiB oro:oro:2.0.8
+--- 0.06 MiB commons-logging:commons-logging:1.2
+--- 0.06 MiB org.apache.jmeter:ApacheJMeter_mail:5.4.3
+--- 0.05 MiB org.apache.jmeter:ApacheJMeter_ldap:5.4.3
+--- 0.05 MiB org.apache.jmeter:ApacheJMeter_java:5.4.3
+--- 0.04 MiB org.slf4j:slf4j-api:1.7.30
+--- 0.03 MiB org.apache.jmeter:ApacheJMeter_tcp:5.4.3
+--- 0.02 MiB org.jodd:jodd-log:5.0.13
+--- 0.01 MiB org.apache.jmeter:ApacheJMeter_ftp:5.4.3
\--- 0.01 MiB org.apache.jmeter:ApacheJMeter_native:5.4.3

> Task :dependencies

------------------------------------------------------------
Root project 'junit14444170473448658469'
------------------------------------------------------------

runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.jmeter:ApacheJMeter_core:5.4.3
|    +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
|    +--- com.fasterxml.jackson.core:jackson-core:2.10.5
|    +--- com.fasterxml.jackson.core:jackson-databind:2.10.5
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
|    |    \--- com.fasterxml.jackson.core:jackson-core:2.10.5
|    +--- com.formdev:svgSalamander:1.1.2.3
|    +--- com.github.ben-manes.caffeine:caffeine:2.8.8
|    |    +--- org.checkerframework:checker-qual:3.8.0
|    |    \--- com.google.errorprone:error_prone_annotations:2.4.0
|    +--- com.github.weisj:darklaf-core:2.5.4
|    |    +--- com.github.weisj:darklaf-theme:2.5.4
|    |    |    +--- com.github.weisj:darklaf-property-loader:2.5.4
|    |    |    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    |    |    \--- com.formdev:svgSalamander:1.1.2.3
|    |    |    \--- com.github.weisj:darklaf-utils:2.5.4
|    |    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
|    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
|    |    +--- com.github.weisj:darklaf-windows:2.5.4
|    |    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
|    |    |    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
|    |    |    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    |    |    \--- net.java.dev.jna:jna:5.5.0
|    |    +--- com.github.weisj:darklaf-macos:2.5.4
|    |    |    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
|    |    |    +--- com.github.weisj:darklaf-native-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-utils:2.5.4
|    |    |    +--- com.github.weisj:darklaf-platform-base:2.5.4
|    |    |    \--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    |    +--- org.swinglabs:jxlayer:3.0.4
|    |    \--- com.formdev:svgSalamander:1.1.2.3
|    +--- com.github.weisj:darklaf-theme:2.5.4 (*)
|    +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
|    +--- com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
|    +--- com.miglayout:miglayout-swing:5.2
|    |    \--- com.miglayout:miglayout-core:5.2
|    +--- commons-codec:commons-codec:1.15
|    +--- commons-collections:commons-collections:3.2.2
|    +--- org.apache.commons:commons-collections4:4.4
|    +--- org.apache.commons:commons-math3:3.6.1
|    +--- org.apache.commons:commons-text:1.9
|    |    \--- org.apache.commons:commons-lang3:3.11
|    +--- org.apache.tika:tika-core:1.24.1
|    +--- org.apache.xmlgraphics:xmlgraphics-commons:2.3
|    |    +--- commons-io:commons-io:1.3.1 -> 2.8.0
|    |    \--- commons-logging:commons-logging:1.0.4 -> 1.2
|    +--- org.freemarker:freemarker:2.3.30
|    +--- org.jodd:jodd-core:5.0.13
|    +--- org.jodd:jodd-props:5.0.13
|    |    \--- org.jodd:jodd-core:5.0.13
|    +--- org.mozilla:rhino:1.7.13
|    +--- org.slf4j:jcl-over-slf4j:1.7.30
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:ApacheJMeter:5.4.3
|    |    \--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:jorphan:5.4.3
|    |    +--- commons-io:commons-io:2.8.0
|    |    +--- org.apache.commons:commons-collections4:4.4
|    |    +--- org.apache.commons:commons-lang3:3.11
|    |    +--- org.apache.commons:commons-math3:3.6.1
|    |    +--- org.apache.commons:commons-text:1.9 (*)
|    |    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    |    +--- org.apiguardian:apiguardian-api:1.1.0
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    +--- bsf:bsf:2.4.0
|    |    \--- commons-logging:commons-logging:1.0.4 -> 1.2
|    +--- com.fifesoft:rsyntaxtextarea:3.1.1
|    +--- net.sf.jtidy:jtidy:r938
|    +--- com.thoughtworks.xstream:xstream:1.4.15
|    |    +--- xmlpull:xmlpull:1.1.3.1
|    |    \--- xpp3:xpp3_min:1.1.4c
|    +--- org.apache.logging.log4j:log4j-1.2-api:2.17.0
|    |    \--- org.apache.logging.log4j:log4j-api:2.17.0
|    +--- org.apache.logging.log4j:log4j-api:2.17.0
|    +--- org.apache.logging.log4j:log4j-core:2.17.0
|    |    \--- org.apache.logging.log4j:log4j-api:2.17.0
|    +--- org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
|    |    +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    |    +--- org.apache.logging.log4j:log4j-api:2.17.0
|    |    \--- org.apache.logging.log4j:log4j-core:2.17.0 (*)
|    +--- org.apiguardian:apiguardian-api:1.1.0
|    +--- oro:oro:2.0.8
|    +--- xalan:xalan:2.7.2
|    |    \--- xalan:serializer:2.7.2
|    |         \--- xml-apis:xml-apis:1.3.04 -> 1.4.01
|    +--- net.sf.saxon:Saxon-HE:9.9.1-8
|    +--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-dateutil:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-datetime:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-jmx:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-json:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-jsr223:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-sql:3.0.7
|    |    \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.codehaus.groovy:groovy-templates:3.0.7
|    |    +--- org.codehaus.groovy:groovy:3.0.7
|    |    \--- org.codehaus.groovy:groovy-xml:3.0.7
|    |         \--- org.codehaus.groovy:groovy:3.0.7
|    +--- org.apache.tika:tika-parsers:1.24.1
|    +--- xerces:xercesImpl:2.12.0
|    |    \--- xml-apis:xml-apis:1.4.01
|    \--- xml-apis:xml-apis:1.4.01
+--- org.apache.jmeter:ApacheJMeter_bshclient:5.4.3 FAILED
+--- org.apache.jmeter:ApacheJMeter_components:5.4.3
|    +--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
|    +--- io.burt:jmespath-core:0.5.0
|    +--- io.burt:jmespath-jackson:0.5.0
|    |    +--- io.burt:jmespath-core:0.5.0
|    |    \--- com.fasterxml.jackson.core:jackson-databind:2.9.9 -> 2.10.5 (*)
|    +--- jcharts:jcharts:0.7.5
|    +--- oro:oro:2.0.8
|    +--- net.minidev:json-smart:2.3
|    |    \--- net.minidev:accessors-smart:1.2
|    |         \--- org.ow2.asm:asm:5.0.4 -> 9.0
|    +--- net.minidev:accessors-smart:1.2 (*)
|    +--- org.apache.commons:commons-pool2:2.9.0
|    +--- commons-codec:commons-codec:1.15
|    +--- org.ow2.asm:asm:9.0
|    +--- org.jodd:jodd-log:5.0.13
|    +--- org.jodd:jodd-lagarto:5.0.13
|    |    +--- org.jodd:jodd-core:5.0.13
|    |    \--- org.jodd:jodd-log:5.0.13
|    +--- com.jayway.jsonpath:json-path:2.4.0
|    |    +--- net.minidev:json-smart:2.3 (*)
|    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    +--- org.apache.httpcomponents:httpasyncclient:4.1.4
|    |    +--- org.apache.httpcomponents:httpcore:4.4.10 -> 4.4.13
|    |    +--- org.apache.httpcomponents:httpcore-nio:4.4.10 -> 4.4.13
|    |    |    \--- org.apache.httpcomponents:httpcore:4.4.13
|    |    +--- org.apache.httpcomponents:httpclient:4.5.6 -> 4.5.12
|    |    |    +--- org.apache.httpcomponents:httpcore:4.4.13
|    |    |    +--- commons-logging:commons-logging:1.2
|    |    |    \--- commons-codec:commons-codec:1.11 -> 1.15
|    |    \--- commons-logging:commons-logging:1.2
|    +--- org.apache.httpcomponents:httpcore-nio:4.4.13 (*)
|    +--- org.jsoup:jsoup:1.13.1
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- net.sf.jtidy:jtidy:r938
|    +--- org.apache.commons:commons-collections4:4.4
|    +--- org.apache.commons:commons-math3:3.6.1
|    +--- commons-io:commons-io:2.8.0
|    +--- org.apache.commons:commons-text:1.9 (*)
|    +--- com.miglayout:miglayout-swing:5.2 (*)
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
|    +--- org.apache-extras.beanshell:bsh:2.0b6
|    +--- javax.mail:mail:1.5.0-b01
|    \--- com.sun.activation:javax.activation:1.2.0
+--- org.apache.jmeter:ApacheJMeter_functions:5.4.3
|    +--- org.mozilla:rhino:1.7.13
|    +--- commons-codec:commons-codec:1.15
|    +--- org.apache.commons:commons-jexl:2.1.1
|    |    \--- commons-logging:commons-logging:1.1.1 -> 1.2
|    +--- org.apache.commons:commons-jexl3:3.1
|    |    \--- commons-logging:commons-logging:1.2
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- commons-io:commons-io:2.8.0
|    +--- org.apache.commons:commons-text:1.9 (*)
|    +--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
|    +--- oro:oro:2.0.8
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    \--- org.apache.jmeter:ApacheJMeter_components:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_jorphan:5.4.3 FAILED
+--- org.apache.jmeter:ApacheJMeter_http:5.4.3
|    +--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
|    +--- commons-io:commons-io:2.8.0
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- org.apache.commons:commons-text:1.9 (*)
|    +--- org.jodd:jodd-lagarto:5.0.13 (*)
|    +--- org.jsoup:jsoup:1.13.1
|    +--- oro:oro:2.0.8
|    +--- org.apache.commons:commons-collections4:4.4
|    +--- commons-net:commons-net:3.7.2
|    +--- com.helger:ph-commons:9.5.1
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    +--- com.helger:ph-css:6.2.3
|    |    +--- com.helger:ph-commons:9.4.2 -> 9.5.1 (*)
|    |    \--- org.slf4j:slf4j-api:1.7.30
|    +--- dnsjava:dnsjava:2.1.9
|    +--- org.apache.httpcomponents:httpmime:4.5.12
|    |    \--- org.apache.httpcomponents:httpclient:4.5.12 (*)
|    +--- org.apache.httpcomponents:httpcore:4.4.13
|    +--- org.brotli:dec:0.1.2
|    +--- com.miglayout:miglayout-swing:5.2 (*)
|    +--- com.fasterxml.jackson.core:jackson-core:2.10.5
|    +--- com.fasterxml.jackson.core:jackson-databind:2.10.5 (*)
|    +--- org.apache.tika:tika-core:1.24.1
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
|    +--- org.apache.jmeter:ApacheJMeter_components:5.4.3 (*)
|    +--- com.thoughtworks.xstream:xstream:1.4.15 (*)
|    \--- org.apache.tika:tika-parsers:1.24.1
+--- org.apache.jmeter:ApacheJMeter_bolt:5.4.3
|    +--- org.neo4j.driver:neo4j-java-driver:4.2.0
|    |    \--- org.reactivestreams:reactive-streams:1.0.3
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- com.fasterxml.jackson.core:jackson-core:2.10.5
|    +--- com.fasterxml.jackson.core:jackson-databind:2.10.5 (*)
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_ftp:5.4.3
|    +--- commons-net:commons-net:3.7.2
|    +--- commons-io:commons-io:2.8.0
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_java:5.4.3
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- commons-io:commons-io:2.8.0
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_jdbc:5.4.3
|    +--- org.apache.commons:commons-dbcp2:2.8.0
|    |    +--- org.apache.commons:commons-pool2:2.8.1 -> 2.9.0
|    |    \--- commons-logging:commons-logging:1.2
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- commons-io:commons-io:2.8.0
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_jms:5.4.3
|    +--- org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- commons-io:commons-io:2.8.0
|    +--- com.miglayout:miglayout-swing:5.2 (*)
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
|    \--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
+--- org.apache.jmeter:ApacheJMeter_junit:5.4.3
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- org.exparity:hamcrest-date:2.0.7
|    |    \--- org.hamcrest:hamcrest-core:1.3
|    +--- com.miglayout:miglayout-swing:5.2 (*)
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
|    \--- junit:junit:4.13.1
|         \--- org.hamcrest:hamcrest-core:1.3
+--- org.apache.jmeter:ApacheJMeter_ldap:5.4.3
|    +--- org.apache.commons:commons-text:1.9 (*)
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_mail:5.4.3
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- commons-io:commons-io:2.8.0
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
|    +--- javax.mail:mail:1.5.0-b01
|    \--- com.sun.activation:javax.activation:1.2.0
+--- org.apache.jmeter:ApacheJMeter_mongodb:5.4.3
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
|    \--- org.mongodb:mongo-java-driver:2.11.3
+--- org.apache.jmeter:ApacheJMeter_native:5.4.3
|    +--- org.apache.commons:commons-lang3:3.11
|    +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
|    \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
\--- org.apache.jmeter:ApacheJMeter_tcp:5.4.3
     +--- org.apache.commons:commons-lang3:3.11
     +--- commons-io:commons-io:2.8.0
     +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
     \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
autonomousapps commented 2 years ago

Thank you. It looks much better now:

Very much thank you for testing for me.

autonomousapps commented 2 years ago

@vlsi let me know if you want to reopen this or open a new issue for the other improvements you were looking for.