<?xml version="1.0"?>
<!--
 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.
-->
<!DOCTYPE import-control PUBLIC
    "-//Puppy Crawl//DTD Import Control 1.1//EN"
    "http://www.puppycrawl.com/dtds/import_control_1_1.dtd">

<import-control pkg="org.apache">
  <!-- Anything in J2SE is OK but need to list javax by package as not
       all javax packages are in J2SE -->
  <allow pkg="java"/>
  <allow pkg="javax.crypto"/>
  <allow class="javax.imageio.ImageIO"/>
  <allow pkg="javax.management"/>
  <allow pkg="javax.naming"/>
  <allow pkg="javax.net"/>
  <allow pkg="javax.rmi"/>
  <allow pkg="javax.security"/>
  <allow pkg="javax.sql"/>
  <allow pkg="javax.xml"/>
  <allow pkg="org.w3c.dom"/>
  <allow pkg="org.xml.sax"/>
  <allow pkg="org.ietf.jgss"/>
  <subpackage name="catalina">
    <allow pkg="javax.annotation"/>
    <allow pkg="javax.ejb"/>
    <allow pkg="javax.persistence"/>
    <allow pkg="javax.servlet"/>
    <allow pkg="org.apache.catalina"/>
    <disallow pkg="org.apache.catalina.ha"/>
    <disallow pkg="org.apache.catalina.tribes"/>
    <allow pkg="org.apache.coyote"/>
    <allow pkg="org.apache.juli"/>
    <allow pkg="org.apache.naming"/>
    <allow pkg="org.apache.tomcat"/>
    <subpackage name="ant">
      <allow pkg="org.apache.tools.ant"/>
      <allow class="org.apache.tomcat.util.Base64"/>
      <disallow pkg="javax.annotation"/>
      <disallow pkg="javax.ejb"/>
      <disallow pkg="javax.persistence"/>
      <disallow pkg="javax.servlet"/>
      <disallow pkg="org.apache.coyote"/>
      <disallow pkg="org.apache.juli"/>
      <disallow pkg="org.apache.naming"/>
    </subpackage>
    <subpackage name="ha">
      <disallow pkg="javax.annotation"/>
      <disallow pkg="javax.ejb"/>
      <disallow pkg="javax.persistence"/>
      <disallow pkg="org.apache.coyote"/>
      <disallow pkg="org.apache.naming"/>
      <allow pkg="org.apache.catalina.ha"/>
      <allow pkg="org.apache.catalina.tribes"/>
    </subpackage>
    <subpackage name="storeconfig">
      <allow pkg="org.apache.catalina.ha"/>
      <allow pkg="org.apache.catalina.tribes"/>
    </subpackage>
    <subpackage name="tribes">
      <disallow pkg="javax.annotation"/>
      <disallow pkg="javax.ejb"/>
      <disallow pkg="javax.persistence"/>
      <disallow pkg="javax.servlet"/>
      <disallow pkg="org.apache.catalina"/>
      <disallow pkg="org.apache.coyote"/>
      <disallow pkg="org.apache.naming"/>
      <disallow pkg="org.apache.tomcat"/>
      <allow pkg="org.apache.catalina.tribes"/>
    </subpackage>
  </subpackage>
  <subpackage name="coyote">
    <allow pkg="javax.servlet"/>
    <allow pkg="org.apache.coyote"/>
    <allow pkg="org.apache.juli"/>
    <allow pkg="org.apache.tomcat"/>
    <allow pkg="org.apache.tomcat.jni"/>
    <allow pkg="org.apache.tomcat.util"/>
  </subpackage>
  <subpackage name="el">
    <allow pkg="javax.el"/>
    <allow pkg="org.apache.el"/>
  </subpackage>
  <subpackage name="jasper">
    <allow pkg="javax.el"/>
    <allow pkg="javax.servlet"/>
    <allow pkg="org.apache.jasper"/>
    <allow pkg="org.apache.juli"/>
    <allow pkg="org.apache.tomcat" exact-match="true"/>
    <allow pkg="org.apache.tomcat.util.descriptor"/>
    <allow pkg="org.apache.tomcat.util.scan"/>
    <allow pkg="org.apache.tomcat.util.security"/>
    <allow pkg="org.apache.tools.ant"/>
    <allow pkg="org.eclipse.jdt"/>
  </subpackage>
  <subpackage name="juli">
    <allow pkg="org.apache.juli"/>
  </subpackage>
  <subpackage name="naming">
    <allow pkg="javax.mail"/>
    <allow pkg="javax.wsdl"/>
    <allow pkg="org.apache.naming"/>
    <allow class="org.apache.tomcat.util.buf.UDecoder"/>
    <allow class="org.apache.tomcat.util.buf.UEncoder"/>
    <allow class="org.apache.tomcat.util.http.FastHttpDateFormat"/>
    <allow class="org.apache.tomcat.util.http.RequestUtil"/>
    <subpackage name="factory.webservices">
    </subpackage>
  </subpackage>
  <subpackage name="tomcat">
    <allow pkg="javax.servlet"/>
    <subpackage name="buildutil">
      <allow pkg="org.apache.tools.ant"/>
      <allow pkg="org.apache.tomcat.util"/>
    </subpackage>
    <subpackage name="dbcp">
      <allow pkg="org.apache.juli"/>
      <subpackage name="dbcp2">
        <allow pkg="org.apache.tomcat.dbcp.dbcp2"/>
        <allow pkg="org.apache.tomcat.dbcp.pool2"/>
      </subpackage>
      <subpackage name="pool2">
        <subpackage name="impl">
          <allow pkg="org.apache.tomcat.dbcp.pool2"/>
        </subpackage>
      </subpackage>
    </subpackage>
    <subpackage name="jni">
      <subpackage name="socket">
        <allow pkg="org.apache.tomcat.jni"/>
      </subpackage>
    </subpackage>
    <subpackage name="util">
      <allow pkg="org.apache.juli"/>
      <allow pkg="org.apache.tomcat.jni"/>
      <allow pkg="org.apache.tomcat.util"/>
      <disallow pkg="org.apache.tomcat.util.scan"/>
      <subpackage name="descriptor">
        <allow pkg="org.apache.tomcat.util.scan"/>
        <allow pkg="org.apache.tomcat" exact-match="true"/>
      </subpackage>
      <subpackage name="scan">
        <allow pkg="org.apache.tomcat" exact-match="true"/>
      </subpackage>
    </subpackage>
    <subpackage name="websocket">
      <allow pkg="javax.websocket"/>
      <allow pkg="org.apache.juli"/>
      <allow pkg="org.apache.tomcat"/>
      <allow pkg="org.apache.tomcat.util"/>
      <!-- Ideally want to remove this -->
      <allow pkg="org.apache.tomcat.websocket.pojo"/>
      <disallow pkg="javax.servlet"/>
      <subpackage name="pojo">
        <allow pkg="org.apache.tomcat.websocket"/>
      </subpackage>
      <subpackage name="server">
        <allow pkg="javax.servlet"/>
        <allow pkg="org.apache.tomcat.websocket"/>
      </subpackage>
    </subpackage>
  </subpackage>
</import-control>