grant {
  // needed because of problems in unbound LDAP library
  permission java.util.PropertyPermission "*", "read,write";

  // required to configure the custom mailcap for watcher
  permission java.lang.RuntimePermission "setFactory";

  // needed when sending emails for javax.activation
  // otherwise a classnotfound exception is thrown due to trying
  // to load the class with the application class loader
  permission java.lang.RuntimePermission "setContextClassLoader";
  permission java.lang.RuntimePermission "getClassLoader";
  // TODO: remove use of this jar as soon as possible!!!!
  permission java.lang.RuntimePermission "accessClassInPackage.com.sun.activation.registries";

  // needed for multiple server implementations used in tests
  permission java.net.SocketPermission "*", "accept,connect";
};

grant codeBase "${codebase.netty-common}" {
   // for reading the system-wide configuration for the backlog of established sockets
   permission java.io.FilePermission "/proc/sys/net/core/somaxconn", "read";
};

grant codeBase "${codebase.netty-transport}" {
   // Netty NioEventLoop wants to change this, because of https://bugs.openjdk.java.net/browse/JDK-6427854
   // the bug says it only happened rarely, and that its fixed, but apparently it still happens rarely!
   permission java.util.PropertyPermission "sun.nio.ch.bugLevel", "write";
};

grant codeBase "${codebase.elasticsearch-rest-client}" {
  // rest client uses system properties which gets the default proxy
  permission java.net.NetPermission "getProxySelector";
};

grant codeBase "${codebase.httpasyncclient}" {
  // rest client uses system properties which gets the default proxy
  permission java.net.NetPermission "getProxySelector";
};