Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-8967

Maven artifact beam-sdks-java-core does not have JSR305 specified as "compile"

Details

    • Improvement
    • Status: Resolved
    • P2
    • Resolution: Fixed
    • None
    • 2.17.0
    • build-system
    • None

    Description

      Maven artifact beam-sdks-java-core does not have dependencies specified as "compile".

      This is a followup of iemejia's finding:

      Just double checked with today's SNAPSHOTs after the merge and the pom of core is not modified, however the deps look good in master, not sure if the change was applied before the SNAPSHOT generation, but still to double check.
      https://repository.apache.org/content/repositories/snapshots/org/apache/beam/beam-sdks-java-core/2.19.0-SNAPSHOT/beam-sdks-java-core-2.19.0-20191213.072102-9.pom

       

      in jsr305 dependency declaration for Nullable class.

      Other 4 dependencies are not found in the snapshot pom either:

        compile library.java.antlr_runtime
        compile library.java.protobuf_java
        compile library.java.commons_compress
        compile library.java.commons_lang3
      

      Compile-declared dependencies needed at runtime?

      protobuf-java

      They are shaded. For example, Beam's TextBasedReader uses com.google.protobuf.ByteString from protobuf-java. The shaded ByteString class is in the published JAR file:

      suztomo-macbookpro44:beam suztomo$ jar tf ~/Downloads/beam-sdks-java-core-2.16.0.jar |grep protobuf.ByteString
      org/apache/beam/repackaged/core/com/google/protobuf/ByteString$1.class
      

      commons-compress

      They are shaded. For example, Beam's org.apache.beam.sdk.io.Compression uses org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream. The shaded class is in the published JAR file:

      suztomo-macbookpro44:beam suztomo$ jar tf ~/Downloads/beam-sdks-java-core-2.16.0.jar |grep BZip2CompressorInputStream
      org/apache/beam/repackaged/core/org/apache/commons/compress/compressors/bzip2/BZip2CompressorInputStream$Data.class
      org/apache/beam/repackaged/core/org/apache/commons/compress/compressors/bzip2/BZip2CompressorInputStream.class
      

      commons-lang3

      They are shaded. For example, Beam's org.apache.beam.sdk.io.LocalFileSystem uses org.apache.commons.lang3.SystemUtils. The shaded class is in the published JAR file:

      suztomo-macbookpro44:beam suztomo$ jar tf ~/Downloads/beam-sdks-java-core-2.16.0.jar |grep SystemUtils
      org/apache/beam/repackaged/core/org/apache/commons/lang3/SystemUtils.class
      

      antlr-runtime

      Same.

      suztomo-macbookpro44:beam suztomo$ jar tf ~/Downloads/beam-sdks-java-core-2.16.0.jar |grep org.antlr.v4 |head
      org/apache/beam/repackaged/core/org/antlr/v4/
      org/apache/beam/repackaged/core/org/antlr/v4/runtime/
      org/apache/beam/repackaged/core/org/antlr/v4/runtime/ANTLRErrorListener.class
      

      Attachments

        Activity

          People

            suztomo Tomo Suzuki
            suztomo Tomo Suzuki
            Votes:
            0 Vote for this issue
            Watchers:
            2 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 - 2h
                2h