Details

    Description

      Instead of shading as part of our build, we can shade before build so that it is apparent when reading code, and in IDEs, that a particular class resides in a hidden namespace.

      import com.google.common.reflect.TypeToken

      becomes something like

      import org.apache.beam.private.guava21.com.google.common.reflect.TypeToken

      So we can very trivially ban `org.apache.beam.private` from public APIs unless they are annotated @Internal, and it makes sharing between our own modules never get broken by shading again.

      Attachments

        Issue Links

          Activity

            People

              kenn Kenneth Knowles
              kenn Kenneth Knowles
              Votes:
              0 Vote for this issue
              Watchers:
              3 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 - 10h 40m
                  10h 40m