Skip to content

Commit a9d02ca

Browse files
committed
JAVA-1885: Update API leak checks for 'internal' dependencies
1 parent d40ac56 commit a9d02ca

2 files changed

Lines changed: 40 additions & 1 deletion

File tree

core/src/main/java/com/datastax/oss/driver/api/core/metrics/Metrics.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public interface Metrics {
3838
*
3939
* @see <a href="http://metrics.dropwizard.io/4.0.0/manual/core.html#reporters">Reporters
4040
* (Dropwizard Metrics manual)</a>
41+
* @leaks-private-api
4142
*/
4243
@NonNull
4344
MetricRegistry getRegistry();

pom.xml

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,7 @@ limitations under the License.]]>
449449
</goals>
450450
</execution>
451451
<execution>
452+
<!-- Check that our "official" API (api.* packages) does not leak unwanted types -->
452453
<id>check-api-leaks</id>
453454
<goals>
454455
<goal>javadoc</goal>
@@ -463,10 +464,47 @@ limitations under the License.]]>
463464
</docletArtifact>
464465
<excludePackageNames>com.datastax.oss.driver.internal.*</excludePackageNames>
465466
<additionalJOptions>
467+
<!-- API types do not leak internal types -->
466468
<additionalparam>-preventleak</additionalparam>
467469
<additionalparam>com.datastax.oss.driver.internal</additionalparam>
470+
<!-- Shaded dependencies (Guava, JCTools) -->
468471
<additionalparam>-preventleak</additionalparam>
469-
<additionalparam>com.google.common</additionalparam>
472+
<additionalparam>com.datastax.oss.driver.shaded</additionalparam>
473+
<!--
474+
Typesafe config: implementation detail, can be excluded if the user wrote a custom
475+
DriverConfig implementation.
476+
-->
477+
<additionalparam>-preventleak</additionalparam>
478+
<additionalparam>com.typesafe.config</additionalparam>
479+
<!--
480+
DropWizard metrics: can be excluded if metrics are disabled, or the user plugged
481+
another framework.
482+
-->
483+
<additionalparam>-preventleak</additionalparam>
484+
<additionalparam>com.codahale.metrics</additionalparam>
485+
<!--
486+
HDR Histogram: implementation detail of Timer metrics, can be excluded if they are
487+
all disabled.
488+
-->
489+
<additionalparam>-preventleak</additionalparam>
490+
<additionalparam>org.HdrHistogram</additionalparam>
491+
<!-- Netty: implementation detail, only tweakable via internal classes. -->
492+
<additionalparam>-preventleak</additionalparam>
493+
<additionalparam>io.netty</additionalparam>
494+
<!-- JNR: can be excluded, the driver will fallback to non-native alternatives -->
495+
<additionalparam>-preventleak</additionalparam>
496+
<additionalparam>jnr</additionalparam>
497+
<additionalparam>-preventleak</additionalparam>
498+
<additionalparam>com.kenai.constantine</additionalparam>
499+
<additionalparam>-preventleak</additionalparam>
500+
<additionalparam>com.kenai.jffi</additionalparam>
501+
<additionalparam>-preventleak</additionalparam>
502+
<additionalparam>com.kenai.jnr</additionalparam>
503+
<!-- Compression libraries: optional dependencies -->
504+
<additionalparam>-preventleak</additionalparam>
505+
<additionalparam>net.jpountz</additionalparam>
506+
<additionalparam>-preventleak</additionalparam>
507+
<additionalparam>org.xerial.snappy</additionalparam>
470508
</additionalJOptions>
471509
<useStandardDocletOptions>false</useStandardDocletOptions>
472510
</configuration>

0 commit comments

Comments
 (0)