Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-19713

Enable TestInterfaceAudienceAnnotations

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Won't Fix
    • None
    • 2.0.0
    • None
    • None
    • Hide
      All classes, which are in
      a) hbase-server,
      b) hbase-client,
      c) hbase-replication,
      d) hbase-mapreduce,
      e) hbase-http,
      f) hbase-thrift,
      g) hbase-common,
      h) hbase-procedure,
      i) hbase-endpoint,
      j) hbase-rest,
      k) and hbase-zookeeper,
      must obey the following rules.
      1. Public class MUST have the InterfaceAudience annotation
      2. The class having InterfaceAudience.Public must NOT have InterfaceStability
      3. The class having InterfaceAudience.LimitedPrivate MUST have InterfaceStability unless InterfaceAudience.LimitedPrivate consists of HBaseInterfaceAudience.Tools or HBaseInterfaceAudience.Config
      4. All classes extending the o.a.h.u.Tool must have InterfaceAudience.LimitedPrivate and HBaseInterfaceAudience.Tools annotations
      5. The Public class having InterfaceAudience.Public/LimitedPrivate CAN’T use protobuf object as parameter and return type unless the class is denoted as either HBaseInterfaceAudience.TOOLS or HBaseInterfaceAudience.CONFIG
      6. All Test** class should have a small/medium/large category

      Add two annotations
      1. HBaseInterfaceAudience.Hive - The TokenUtil is exposed as Public for Hive
      2. HBaseInterfaceAudience.ProtobufExposed- used to denote the classes which are allowed to use protobuf object in return type or parameter

      TestInterfaceAudienceAnnotations is moved to hbase-example module since TestInterfaceAudienceAnnotations have to "see" other modules from the classpath. The hbase-example module can add dependencies freely.
      Show
      All classes, which are in a) hbase-server, b) hbase-client, c) hbase-replication, d) hbase-mapreduce, e) hbase-http, f) hbase-thrift, g) hbase-common, h) hbase-procedure, i) hbase-endpoint, j) hbase-rest, k) and hbase-zookeeper, must obey the following rules. 1. Public class MUST have the InterfaceAudience annotation 2. The class having InterfaceAudience.Public must NOT have InterfaceStability 3. The class having InterfaceAudience.LimitedPrivate MUST have InterfaceStability unless InterfaceAudience.LimitedPrivate consists of HBaseInterfaceAudience.Tools or HBaseInterfaceAudience.Config 4. All classes extending the o.a.h.u.Tool must have InterfaceAudience.LimitedPrivate and HBaseInterfaceAudience.Tools annotations 5. The Public class having InterfaceAudience.Public/LimitedPrivate CAN’T use protobuf object as parameter and return type unless the class is denoted as either HBaseInterfaceAudience.TOOLS or HBaseInterfaceAudience.CONFIG 6. All Test** class should have a small/medium/large category Add two annotations 1. HBaseInterfaceAudience.Hive - The TokenUtil is exposed as Public for Hive 2. HBaseInterfaceAudience.ProtobufExposed- used to denote the classes which are allowed to use protobuf object in return type or parameter TestInterfaceAudienceAnnotations is moved to hbase-example module since TestInterfaceAudienceAnnotations have to "see" other modules from the classpath. The hbase-example module can add dependencies freely.

    Description

      Make sure TestInterfaceAudienceAnnotations pass before 2.0 release.

      Attachments

        1. HBASE-19713.v0.patch
          284 kB
          Chia-Ping Tsai
        2. HBASE-19713.branch-2.v2.patch
          254 kB
          Chia-Ping Tsai
        3. HBASE-19713.branch-2.v1.patch
          274 kB
          Chia-Ping Tsai
        4. HBASE-19713.branch-2.v0.patch
          284 kB
          Chia-Ping Tsai

        Issue Links

          Activity

            People

              chia7712 Chia-Ping Tsai
              chia7712 Chia-Ping Tsai
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: