# Licensed to Elasticsearch under one or more contributor # license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright # ownership. Elasticsearch licenses this file to you under # the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on # an 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, # either express or implied. See the License for the specific # language governing permissions and limitations under the License. # Checks that we run against bytecode of third-party dependencies # # Be judicious about what is denied here: MANY classes will be subject # to these rules, so please try to keep the false positive rate low! # # Each third party .class failing checks will need to be explicitly # listed in the module's build.gradle file: # # thirdPartyAudit.excludes = [ # // uses internal java api: sun.misc.Unsafe # 'org.foo.Bar', # // missing class! # 'com.missing.dependency.WTF', # // ... # ] # # Wildcards are not allowed, excludes must be exact. The build also fails with # the message "Invalid exclusions, nothing is wrong with these classes" if # extraneous classes are in the excludes list, this ensures the list is # up-to-date, and that each module accurately documents the evil things # that its dependencies do. # # For more information, look at ThirdPartyAuditTask.groovy in buildSrc/ # # Ruleset to fail on java internal apis, using this logic: # http://docs.oracle.com/javase/8/docs/api/java/lang/SecurityManager.html#checkPackageAccess-java.lang.String- # # // The list may change at any time, regenerated with: # for (String pkg : new TreeSet<>(Arrays.asList( # Security.getProperty("package.access").split(",")))) { # System.out.println(pkg + "**"); # } # @defaultMessage non-public internal runtime class com.oracle.webservices.internal.** com.oracle.xmlns.internal.** com.sun.activation.registries.** com.sun.browser.** com.sun.corba.se.** com.sun.glass.** com.sun.imageio.** com.sun.istack.internal.** com.sun.javafx.** com.sun.jmx.** com.sun.media.** com.sun.media.sound.** com.sun.naming.internal.** com.sun.openpisces.** com.sun.org.apache.bcel.internal.** com.sun.org.apache.regexp.internal.** com.sun.org.apache.xalan.internal.extensions.** com.sun.org.apache.xalan.internal.lib.** com.sun.org.apache.xalan.internal.res.** com.sun.org.apache.xalan.internal.templates.** com.sun.org.apache.xalan.internal.utils.** com.sun.org.apache.xalan.internal.xslt.** com.sun.org.apache.xalan.internal.xsltc.cmdline.** com.sun.org.apache.xalan.internal.xsltc.compiler.** com.sun.org.apache.xalan.internal.xsltc.trax.** com.sun.org.apache.xalan.internal.xsltc.util.** com.sun.org.apache.xerces.internal.** com.sun.org.apache.xml.internal.res.** com.sun.org.apache.xml.internal.security.** com.sun.org.apache.xml.internal.serializer.utils.** com.sun.org.apache.xml.internal.utils.** com.sun.org.apache.xpath.internal.** com.sun.org.glassfish.** com.sun.pisces.** com.sun.prism.** com.sun.proxy.** com.sun.scenario.** com.sun.t2k.** com.sun.webkit.** com.sun.xml.internal.** jdk.internal.** jdk.management.resource.internal.** jdk.nashorn.internal.** jdk.nashorn.tools.** oracle.jrockit.jfr.** org.jcp.xml.dsig.internal.** sun.**