Home | History | Annotate | Download | only in buildscripts
      1 <?xml version="1.0"?>
      2 <!DOCTYPE import-control PUBLIC
      3     "-//Puppy Crawl//DTD Import Control 1.3//EN"
      4     "http://checkstyle.sourceforge.net/dtds/import_control_1_3.dtd">
      5 
      6 <!--
      7 
      8 General guidelines on imports:
      9 
     10 - 'stats' depends on 'tags', but 'tags' shouldn't depend on 'stats' or 'trace'.
     11   'stats'/'tags' and 'trace' should remain independent, where possible.
     12 
     13 - Packages should not be split between artifacts.
     14 
     15 - 'internal' packages should only be imported by packages within the same
     16   artifact.
     17 
     18 - Since we are trying to remove dependencies on Guava (issue #1113), we should
     19   avoid adding any new Guava imports here, especially in the API.
     20 
     21 -->
     22 
     23 <import-control pkg="io.opencensus">
     24   <allow pkg="com.google.auto.value"/>
     25   <allow pkg="com.google.errorprone.annotations"/>
     26   <allow pkg="java"/>
     27   <allow pkg="javax"/>
     28   <allow class="io.grpc.Context"/>
     29   <subpackage name="common">
     30     <allow pkg="io.opencensus.common"/>
     31   </subpackage>
     32   <subpackage name="internal">
     33     <allow pkg="io.opencensus.common"/>
     34     <allow pkg="io.opencensus.internal"/>
     35   </subpackage>
     36   <subpackage name="tags">
     37     <allow pkg="io.opencensus.common"/>
     38     <allow pkg="io.opencensus.internal"/>
     39     <allow pkg="io.opencensus.tags"/>
     40   </subpackage>
     41   <subpackage name="metrics">
     42     <allow pkg="io.opencensus.internal"/>
     43     <allow pkg="io.opencensus.common"/>
     44     <allow pkg="io.opencensus.metrics"/>
     45   </subpackage>
     46   <subpackage name="stats">
     47     <allow pkg="io.opencensus.common"/>
     48     <allow pkg="io.opencensus.internal"/>
     49     <allow pkg="io.opencensus.stats"/>
     50     <allow pkg="io.opencensus.tags"/>
     51   </subpackage>
     52   <subpackage name="trace">
     53     <allow pkg="io.opencensus.common"/>
     54     <allow pkg="io.opencensus.internal"/>
     55     <allow pkg="io.opencensus.trace"/>
     56 
     57     <!-- These dependencies on impl/implcore are only needed by -->
     58     <!-- io.opencensus.trace.TraceComponentImpl and io.opencensus.trace.TraceComponentImplLite, -->
     59     <!-- which are deprecated. -->
     60     <allow class="io.opencensus.impl.internal.DisruptorEventQueue"/>
     61     <allow class="io.opencensus.impl.trace.internal.ThreadLocalRandomHandler"/>
     62     <allow class="io.opencensus.implcore.common.MillisClock"/>
     63     <allow class="io.opencensus.implcore.internal.SimpleEventQueue"/>
     64     <allow class="io.opencensus.implcore.trace.TraceComponentImplBase"/>
     65     <allow class="io.opencensus.implcore.trace.internal.RandomHandler.SecureRandomHandler"/>
     66   </subpackage>
     67   <subpackage name="contrib">
     68     <allow pkg="com.google.common"/>
     69     <allow pkg="io.opencensus.common"/>
     70     <subpackage name="agent">
     71       <allow pkg="com.google.auto"/>
     72       <allow pkg="com.typesafe.config"/>
     73       <allow pkg="edu.umd.cs.findbugs.annotations"/>
     74       <allow pkg="io.opencensus.contrib.agent"/>
     75       <allow pkg="io.opencensus.trace"/>
     76       <allow pkg="net.bytebuddy"/>
     77     </subpackage>
     78     <subpackage name="appengine.standard.util">
     79       <allow pkg="com.google.apphosting"/>
     80       <allow pkg="io.opencensus.trace"/>
     81     </subpackage>
     82     <subpackage name="exemplar.util">
     83       <allow pkg="io.opencensus.stats"/>
     84       <allow pkg="io.opencensus.trace"/>
     85     </subpackage>
     86     <subpackage name="grpc.metrics">
     87       <allow pkg="io.opencensus.contrib.grpc.metrics"/>
     88       <allow pkg="io.opencensus.stats"/>
     89       <allow pkg="io.opencensus.tags"/>
     90     </subpackage>
     91     <subpackage name="http.util">
     92       <allow pkg="io.opencensus.contrib.http.util"/>
     93       <allow pkg="io.opencensus.stats"/>
     94       <allow pkg="io.opencensus.tags"/>
     95       <allow pkg="io.opencensus.trace"/>
     96     </subpackage>
     97     <subpackage name="logcorrelation.log4j2">
     98       <allow pkg="io.opencensus.contrib.logcorrelation.log4j2"/>
     99       <allow pkg="io.opencensus.trace"/>
    100       <disallow pkg="org.apache.logging.log4j.core.impl"/>
    101       <allow pkg="org.apache.logging.log4j"/>
    102     </subpackage>
    103     <subpackage name="logcorrelation.stackdriver">
    104       <allow pkg="com.google.cloud"/>
    105       <allow pkg="io.opencensus.trace"/>
    106     </subpackage>
    107     <subpackage name="spring">
    108       <allow pkg="io.opencensus.trace"/>
    109       <allow pkg="org.aspectj.lang"/>
    110       <allow pkg="org.aspectj.lang.annotation"/>
    111       <allow pkg="org.aspectj.lang.reflect"/>
    112       <allow pkg="org.springframework.beans.factory.annotation"/>
    113       <subpackage name="sleuth">
    114         <allow pkg="io.opencensus.trace"/>
    115         <allow pkg="org.apache.commons.logging"/>
    116         <allow pkg="org.springframework.beans.factory.annotation"/>
    117         <allow pkg="org.springframework.beans.factory.config"/>
    118         <allow pkg="org.springframework.boot.autoconfigure"/>
    119         <allow pkg="org.springframework.boot.context"/>
    120         <allow pkg="org.springframework.context.annotation"/>
    121         <allow pkg="org.springframework.boot.context.properties"/>
    122         <allow pkg="org.springframework.cloud.sleuth"/>
    123         <allow pkg="org.springframework.core"/>
    124       </subpackage>
    125     </subpackage>
    126     <subpackage name="zpages">
    127       <allow pkg="com.sun.net.httpserver"/>
    128       <allow pkg="io.opencensus.contrib.grpc.metrics"/>
    129       <allow pkg="io.opencensus.contrib.zpages"/>
    130       <allow pkg="io.opencensus.stats"/>
    131       <allow pkg="io.opencensus.tags"/>
    132       <allow pkg="io.opencensus.trace"/>
    133     </subpackage>
    134     <subpackage name="monitoredresource.util">
    135       <allow pkg="io.opencensus.contrib.monitoredresource.util"/>
    136     </subpackage>
    137     <subpackage name="dropwizard">
    138       <allow pkg="io.opencensus.contrib.dropwizard"/>
    139       <allow pkg="io.opencensus.metrics"/>
    140       <allow pkg="io.opencensus.implcore"/>
    141       <allow pkg="io.opencensus.internal"/>
    142       <allow pkg="com.codahale.metrics"/>
    143     </subpackage>
    144   </subpackage>
    145   <subpackage name="exporter">
    146     <allow pkg="com.google.common"/>
    147     <allow pkg="io.opencensus.common"/>
    148     <subpackage name="stats">
    149       <allow pkg="io.opencensus.stats"/>
    150       <allow pkg="io.opencensus.tags"/>
    151       <subpackage name="prometheus">
    152         <allow pkg="io.opencensus.exporter.stats.prometheus"/>
    153         <allow pkg="io.opencensus.trace"/>
    154         <allow pkg="io.prometheus.client"/>
    155       </subpackage>
    156       <subpackage name="signalfx">
    157         <allow pkg="com.signalfx"/>
    158         <allow pkg="io.opencensus.exporter.stats.signalfx"/>
    159         <allow pkg="io.opencensus.trace"/>
    160       </subpackage>
    161       <subpackage name="stackdriver">
    162         <allow pkg="com.google"/>
    163         <allow pkg="io.opencensus.exporter.stats.stackdriver"/>
    164         <allow pkg="io.opencensus.trace"/>
    165         <allow pkg="io.opencensus.contrib.monitoredresource.util"/>
    166       </subpackage>
    167     </subpackage>
    168     <subpackage name="trace">
    169       <allow pkg="io.opencensus.trace"/>
    170       <subpackage name="instana">
    171         <allow pkg="io.opencensus.exporter.trace.instana"/>
    172       </subpackage>
    173       <subpackage name="jaeger">
    174         <allow pkg="com.uber.jaeger"/>
    175         <allow pkg="io.opencensus.exporter.trace.jaeger"/>
    176         <allow pkg="org.apache.thrift"/>
    177       </subpackage>
    178       <subpackage name="ocagent">
    179         <allow pkg="com.google.protobuf"/>
    180         <allow pkg="io.grpc"/>
    181         <allow pkg="io.opencensus.contrib.monitoredresource.util"/>
    182         <allow pkg="io.opencensus.contrib.opencensus.proto.util"/>
    183         <allow pkg="io.opencensus.exporter.trace.ocagent"/>
    184         <allow pkg="io.opencensus.proto"/>
    185         <allow pkg="io.opencensus.trace"/>
    186       </subpackage>
    187       <subpackage name="stackdriver">
    188         <allow pkg="com.google"/>
    189         <allow pkg="io.opencensus.exporter.trace.stackdriver"/>
    190         <allow pkg="io.opencensus.contrib.monitoredresource.util"/>
    191       </subpackage>
    192       <subpackage name="zipkin">
    193         <allow pkg="io.opencensus.exporter.trace.zipkin"/>
    194         <allow pkg="zipkin2"/>
    195       </subpackage>
    196     </subpackage>
    197   </subpackage>
    198   <subpackage name="implcore">
    199     <allow pkg="com.google.common"/>
    200     <allow pkg="io.opencensus.common"/>
    201     <allow pkg="io.opencensus.implcore"/>
    202     <allow pkg="io.opencensus.metrics"/>
    203     <allow pkg="io.opencensus.stats"/>
    204     <allow pkg="io.opencensus.tags"/>
    205     <allow pkg="io.opencensus.trace"/>
    206   </subpackage>
    207   <subpackage name="impl">
    208     <allow pkg="com.lmax.disruptor"/>
    209     <allow pkg="io.opencensus.common"/>
    210     <allow pkg="io.opencensus.impl"/>
    211     <allow pkg="io.opencensus.implcore"/>
    212     <allow pkg="io.opencensus.metrics"/>
    213     <allow pkg="io.opencensus.stats"/>
    214     <allow pkg="io.opencensus.tags"/>
    215     <allow pkg="io.opencensus.trace"/>
    216   </subpackage>
    217   <subpackage name="impllite">
    218     <allow pkg="io.opencensus.common"/>
    219     <allow pkg="io.opencensus.implcore"/>
    220     <allow pkg="io.opencensus.impllite"/>
    221     <allow pkg="io.opencensus.metrics"/>
    222     <allow pkg="io.opencensus.stats"/>
    223     <allow pkg="io.opencensus.tags"/>
    224     <allow pkg="io.opencensus.trace"/>
    225   </subpackage>
    226   <subpackage name="testing">
    227     <allow pkg="com.google.common"/>
    228     <allow pkg="io.opencensus.common"/>
    229     <subpackage name="common">
    230       <allow pkg="io.opencensus.testing.common"/>
    231     </subpackage>
    232     <subpackage name="export">
    233       <allow pkg="io.opencensus.stats"/>
    234       <allow pkg="io.opencensus.tags"/>
    235       <allow pkg="io.opencensus.testing.export"/>
    236       <allow pkg="io.opencensus.trace"/>
    237     </subpackage>
    238   </subpackage>
    239   <subpackage name="examples">
    240     <allow pkg="com.google.common"/>
    241     <allow pkg="io.grpc"/>
    242     <allow pkg="io.opencensus.common"/>
    243     <allow pkg="io.opencensus.contrib"/>
    244     <allow pkg="io.opencensus.examples"/>
    245     <allow pkg="io.opencensus.exporter"/>
    246     <allow pkg="io.opencensus.stats"/>
    247     <allow pkg="io.opencensus.tags"/>
    248     <allow pkg="io.opencensus.testing.export"/>
    249     <allow pkg="io.opencensus.trace"/>
    250     <allow pkg="io.prometheus"/>
    251   </subpackage>
    252 </import-control>
    253