<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF 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.

-->
<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd">
  <!-- add supressions for known vulnerabilities detected by OWASP Dependency Check -->
  <suppress>
    <notes>Ignore netty CVEs in GRPC shaded Netty.</notes>
    <filePath regex="true">.*grpc-netty-shaded.*</filePath>
    <cpe>cpe:/a:netty:netty</cpe>
  </suppress>
  <suppress>
    <notes>Suppress all pulsar-presto-distribution vulnerabilities</notes>
    <filePath regex="true">.*pulsar-presto-distribution-.*</filePath>
    <vulnerabilityName regex="true">.*</vulnerabilityName>
  </suppress>
  <suppress>
    <notes>Suppress libthrift-0.12.0.jar vulnerabilities</notes>
    <gav>org.apache.thrift:libthrift:0.12.0</gav>
    <vulnerabilityName regex="true">.*</vulnerabilityName>
  </suppress>
  <suppress>
    <notes>Suppress Zookeeper 3.6.2 vulnerabilities</notes>
    <gav regex="true">org\.apache\.zookeeper:.*:3\.6\.2</gav>
    <vulnerabilityName regex="true">.*</vulnerabilityName>
  </suppress>
</suppressions>