[
  {
    "extension": "revapi.java",
    "configuration": {
      "filter": {
        "classes": {
          "exclude": [
            "org\\.apache\\.logging\\.log4j\\.corel\\.impl\\.ContextAnchor",
            "org\\.apache\\.logging\\.log4j\\.core\\.async\\.AsyncLoggerDisruptor",
            "org\\.apache\\.logging\\.log4j\\.core\\.async\\.RingBufferLogEvent\\.Factory",
            "org\\.apache\\.logging\\.log4j\\.core\\.layout\\.AbstractJacksonLayout",
            "org\\.apache\\.logging\\.log4j\\.core\\.layout\\.AbstractJacksonLayout\\.ResolvableKeyValuePair",
            "org\\.apache\\.logging\\.log4j\\.core\\.net\\.SmtpManager\\.FactoryData",
            "org\\.apache\\.logging\\.log4j\\.core\\.net\\.TcpSocketManager\\.FactoryData",
            "org\\.apache\\.logging\\.log4j\\.core\\.util\\.CronExpression\\.ValueSet",
            "org\\.apache\\.logging\\.log4j\\.core\\.util\\.datetime\\.FastDatePrinter\\.NumberRule",
            "org\\.apache\\.logging\\.log4j\\.core\\.util\\.datetime\\.FastDatePrinter\\.Rule"
          ]
        },
        "packages": {
          "exclude": [
            "org.apache.logging.log4j.core.jmx",
            "org.apache.logging.log4j.core.jackson",
            "org.apache.logging.log4j.core.time.internal"
          ]
        }
      }
    }
  },
  {
    "extension": "revapi.ignore",
    "configuration": [
      {
        "code": "java.class.removed",
        "old": "class org.apache.logging.log4j.core.config.ConfiguratonFileWatcher",
        "justification": "LOG4J2-913 - This class name was misspelled"
      },
      {
        "code": "java.method.numberOfParametersChanged",
        "old": "method java.net.Socket org.apache.logging.log4j.core.net.SslSocketManager::createSocket(java.lang.String, int) throws java.io.IOException",
        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException @ org.apache.logging.log4j.core.net.SslSocketManager",
        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
      },
      {
        "code": "java.method.nowStatic",
        "old": "method java.net.Socket org.apache.logging.log4j.core.net.SslSocketManager::createSocket(java.lang.String, int) throws java.io.IOException",
        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException @ org.apache.logging.log4j.core.net.SslSocketManager",
        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
      },
      {
        "code": "java.method.numberOfParametersChanged",
        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException @ org.apache.logging.log4j.core.net.SslSocketManager",
        "new": "method java.net.Socket org.apache.logging.log4j.core.net.SslSocketManager::createSocket(java.net.InetSocketAddress) throws java.io.IOException",
        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
      },
      {
        "code": "java.method.noLongerStatic",
        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException @ org.apache.logging.log4j.core.net.SslSocketManager",
        "new": "method java.net.Socket org.apache.logging.log4j.core.net.SslSocketManager::createSocket(java.net.InetSocketAddress) throws java.io.IOException",
        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
      },
      {
        "code": "java.method.numberOfParametersChanged",
        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int) throws java.io.IOException",
        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException",
        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
      },
      {
        "code": "java.method.nowStatic",
        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int) throws java.io.IOException",
        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException",
        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
      },
      {
        "code": "java.method.numberOfParametersChanged",
        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException",
        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress) throws java.io.IOException",
        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
      },
      {
        "code": "java.method.noLongerStatic",
        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException",
        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress) throws java.io.IOException",
        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
      },
      {
        "code": "java.method.numberOfParametersChanged",
        "old": "method void org.apache.logging.log4j.core.layout.JsonLayout::<init>(org.apache.logging.log4j.core.config.Configuration, boolean, boolean, boolean, boolean, boolean, boolean, java.lang.String, java.lang.String, java.nio.charset.Charset, boolean)",
        "new": "method void org.apache.logging.log4j.core.layout.JsonLayout::<init>(org.apache.logging.log4j.core.config.Configuration, boolean, boolean, boolean, boolean, boolean, boolean, java.lang.String, java.lang.String, java.lang.String, java.nio.charset.Charset, boolean)",
        "justification": "LOG4J2-2337 - Allow to specify custom end-of-line for JSON layout"
      },
      {
        "code": "java.method.returnTypeTypeParametersChanged",
        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender::newBuilder()",
        "new": "method <B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>> B org.apache.logging.log4j.core.appender.WriterAppender::newBuilder()",
        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
      },
      {
        "code": "java.generics.elementNowParameterized",
        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender::newBuilder()",
        "new": "method <B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>> B org.apache.logging.log4j.core.appender.WriterAppender::newBuilder()",
        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
      },
      {
        "code": "java.generics.formalTypeParameterAdded",
        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender::newBuilder()",
        "new": "method <B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>> B org.apache.logging.log4j.core.appender.WriterAppender::newBuilder()",
        "typeParameter": "B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
      }
    ]
  }
]