Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-18906

Exclude unnecessary dependencies introduced by caffeine update to 2.9.2

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 5.0-alpha2, 5.0, 5.1
    • Build
    • None

    Description

      When I checked out the latest code with CASSANDRA-18805 in, I noticed that it pulls these dependencies:

      [resolver:resolve] Downloading https://repo1.maven.org/maven2/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.pom
      [resolver:resolve] Downloaded https://repo1.maven.org/maven2/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.pom (3 KB at 8.7 KB/sec)
      [resolver:resolve] Downloading https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.37.0/checker-qual-3.37.0.pom
      [resolver:resolve] Downloaded https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.37.0/checker-qual-3.37.0.pom (3 KB at 127.9 KB/sec)
      [resolver:resolve] Downloading https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.pom
      [resolver:resolve] Downloaded https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.pom (2 KB at 119.3 KB/sec)
      [resolver:resolve] Downloading https://repo1.maven.org/maven2/com/google/errorprone/error_prone_parent/2.21.1/error_prone_parent-2.21.1.pom
      [resolver:resolve] Downloaded https://repo1.maven.org/maven2/com/google/errorprone/error_prone_parent/2.21.1/error_prone_parent-2.21.1.pom (13 KB at 658.5 KB/sec)
      [resolver:resolve] Downloading https://repo1.maven.org/maven2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.pom
      [resolver:resolve] Downloaded https://repo1.maven.org/maven2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.pom (0 B at 0.0 KB/sec)
      [resolver:resolve] Resolving artifacts
      [resolver:resolve] Downloading https://repo1.maven.org/maven2/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.jar
      [resolver:resolve] Downloading https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.37.0/checker-qual-3.37.0.jar
      [resolver:resolve] Downloading https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.jar
      [resolver:resolve] Downloading https://repo1.maven.org/maven2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar
      [resolver:resolve] Downloaded https://repo1.maven.org/maven2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar (0 B at 0.0 KB/sec)
      [resolver:resolve] Downloaded https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.jar (17 KB at 219.1 KB/sec)
      [resolver:resolve] Downloaded https://repo1.maven.org/maven2/org/checkerframework/checker-qual/3.37.0/checker-qual-3.37.0.jar (220 KB at 2490.9 KB/sec)
      [resolver:resolve] Downloaded https://repo1.maven.org/maven2/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.jar (869 KB at 6679.8 KB/sec)
      

      Notice there is checker-qual and error_prone_annotations

      If you do this on the current cassandra-5.0:

      find . -type f -name '*.java' | xargs grep 'import .*\.Nullable;' | cut -d ':' -f2 | sort | uniq
      

      you will get

      import org.checkerframework.checker.nullness.qual.Nullable;
      import javax.annotation.Nullable;
      

      The first import is wrong. We should not use that, we should use just javax.annotation.Nullable.

      The reason why it is possible to use that import is that it is on the classpath. Even worse, it is also added into libs which is not necessary at all.

      error_prone_annotations are compile-time annotations and checker-qual are too. We do not need them in Cassandra at all. They are dependencies which are brought there from caffeine.

      Attachments

        1. signature.asc
          0.5 kB
          miklosovic

        Activity

          People

            smiklosovic Stefan Miklosovic
            smiklosovic Stefan Miklosovic
            Stefan Miklosovic
            Ekaterina Dimitrova, Maxim Muzafarov
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 1h 20m
                1h 20m