{
    "filters": {
        "revapi": {
            "java": {
                "_comment": "We don't want to check classes, just interfaces. Every class is therefore excluded so new interfaces and classes in future are discovered by revapi.",
                "filter": {
                    "packages": {
                        "_comment": [
                            "We don't want to check transitive classes, e.g. from kie-server-api, since we already check them in their own module.",
                            "Therefore, only module's packages are included. Excluded packages contain only classes."
                        ],
                        "regex": true,
                        "include": [
                            "org\\.kie\\.server\\.client.*"
                        ],
                        "exclude": [
                            "org\\.kie\\.server\\.client\\.admin\\.impl",
                            "org\\.kie\\.server\\.client\\.balancer\\.impl",
                            "org\\.kie\\.server\\.client\\.credentials",
                            "org\\.kie\\.server\\.client\\.impl"
                        ]
                    },
                    "classes": {
                        "_comment": "In the remaining packages which are mixed (both interfaces and classes), we just exclude classes.",
                        "regex": false,
                        "exclude": [
                            "org.kie.server.client.balancer.LoadBalancer",
                            "org.kie.server.client.helper.CaseServicesClientBuilder",
                            "org.kie.server.client.helper.DroolsServicesClientBuilder",
                            "org.kie.server.client.helper.JBPMServicesClientBuilder",
                            "org.kie.server.client.helper.JBPMUIServicesClientBuilder",
                            "org.kie.server.client.helper.OptaplannerServicesClientBuilder",
                            "org.kie.server.client.KieServicesException",
                            "org.kie.server.client.KieServicesFactory"
                        ]
                    }
                }
            }
        }
    },
    "ignores": {
        "revapi": {
            "_comment": "Changes between 7.48.0.Final and the current branch. These changes are desired and thus ignored.",
            "ignore": [
             {
              "code": "java.method.addedToInterface",
              "new": "method org.kie.server.api.model.ServiceResponse<org.kie.api.runtime.ExecutionResults> org.kie.server.client.RuleServicesClient::executeCommandsWithResults(java.lang.String, org.kie.api.command.Command<?>, javax.ws.rs.core.Response.Status)",
              "package": "org.kie.server.client",
              "classSimpleName": "RuleServicesClient",
              "methodName": "executeCommandsWithResults",
              "elementKind": "method",
              "justification": "https://issues.redhat.com/browse/JBPM-9611"
             },
             {
                "code": "java.method.addedToInterface",
                "new": "method java.util.Map<java.lang.String, java.lang.Object> org.kie.server.client.ProcessServicesClient::computeProcessOutcome(java.lang.String, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>)",
                "package": "org.kie.server.client",
                "classSimpleName": "ProcessServicesClient",
                "methodName": "computeProcessOutcome",
                "elementKind": "method",
                "justification": "[JBPM-9624] Return the process variables for synchronous execution use cases"
            },
            {
               "code": "java.method.addedToInterface",
               "new": "method void org.kie.server.client.admin.UserTaskAdminServicesClient::addBusinessAdmins(java.lang.String, java.lang.String, java.lang.Long, boolean, org.kie.server.api.model.admin.OrgEntities)",
               "package": "org.kie.server.client.admin",
               "classSimpleName": "UserTaskAdminServicesClient",
               "methodName": "addBusinessAdmins",
               "elementKind": "method",
               "justification": "[JBPM-9625]  Allow to bypass the authenticated user in the KIE REST API that is adding users or groups as potential owners"
             },
             {
               "code": "java.method.addedToInterface",
               "new": "method void org.kie.server.client.admin.UserTaskAdminServicesClient::addExcludedOwners(java.lang.String, java.lang.String, java.lang.Long, boolean, org.kie.server.api.model.admin.OrgEntities)",
               "package": "org.kie.server.client.admin",
               "classSimpleName": "UserTaskAdminServicesClient",
               "methodName": "addExcludedOwners",
               "elementKind": "method",
               "justification": "[JBPM-9625]  Allow to bypass the authenticated user in the KIE REST API that is adding users or groups as potential owners"
             },
             {
               "code": "java.method.addedToInterface",
               "new": "method void org.kie.server.client.admin.UserTaskAdminServicesClient::addPotentialOwners(java.lang.String, java.lang.String, java.lang.Long, boolean, org.kie.server.api.model.admin.OrgEntities)",
               "package": "org.kie.server.client.admin",
               "classSimpleName": "UserTaskAdminServicesClient",
               "methodName": "addPotentialOwners",
               "elementKind": "method",
               "justification": "[JBPM-9625]  Allow to bypass the authenticated user in the KIE REST API that is adding users or groups as potential owners"
             },
             {
               "code": "java.method.addedToInterface",
               "new": "method void org.kie.server.client.admin.UserTaskAdminServicesClient::removeBusinessAdminGroups(java.lang.String, java.lang.String, java.lang.Long, java.lang.String[])",
               "package": "org.kie.server.client.admin",
               "classSimpleName": "UserTaskAdminServicesClient",
               "methodName": "removeBusinessAdminGroups",
               "elementKind": "method",
               "justification": "[JBPM-9625]  Allow to bypass the authenticated user in the KIE REST API that is adding users or groups as potential owners"
             },
             {
               "code": "java.method.addedToInterface",
               "new": "method void org.kie.server.client.admin.UserTaskAdminServicesClient::removeBusinessAdminUsers(java.lang.String, java.lang.String, java.lang.Long, java.lang.String[])",
               "package": "org.kie.server.client.admin",
               "classSimpleName": "UserTaskAdminServicesClient",
               "methodName": "removeBusinessAdminUsers",
               "elementKind": "method",
               "justification": "[JBPM-9625]  Allow to bypass the authenticated user in the KIE REST API that is adding users or groups as potential owners"
             },
             {
               "code": "java.method.addedToInterface",
               "new": "method void org.kie.server.client.admin.UserTaskAdminServicesClient::removeExcludedOwnerGroups(java.lang.String, java.lang.String, java.lang.Long, java.lang.String[])",
               "package": "org.kie.server.client.admin",
               "classSimpleName": "UserTaskAdminServicesClient",
               "methodName": "removeExcludedOwnerGroups",
               "elementKind": "method",
               "justification": "[JBPM-9625]  Allow to bypass the authenticated user in the KIE REST API that is adding users or groups as potential owners"
             },
             {
               "code": "java.method.addedToInterface",
               "new": "method void org.kie.server.client.admin.UserTaskAdminServicesClient::removeExcludedOwnerUsers(java.lang.String, java.lang.String, java.lang.Long, java.lang.String[])",
               "package": "org.kie.server.client.admin",
               "classSimpleName": "UserTaskAdminServicesClient",
               "methodName": "removeExcludedOwnerUsers",
               "elementKind": "method",
               "justification": "[JBPM-9625]  Allow to bypass the authenticated user in the KIE REST API that is adding users or groups as potential owners"
             },
             {
               "code": "java.method.addedToInterface",
               "new": "method void org.kie.server.client.admin.UserTaskAdminServicesClient::removePotentialOwnerGroups(java.lang.String, java.lang.String, java.lang.Long, java.lang.String[])",
               "package": "org.kie.server.client.admin",
               "classSimpleName": "UserTaskAdminServicesClient",
               "methodName": "removePotentialOwnerGroups",
               "elementKind": "method",
               "justification": "[JBPM-9625]  Allow to bypass the authenticated user in the KIE REST API that is adding users or groups as potential owners"
             },
             {
               "code": "java.method.addedToInterface",
               "new": "method void org.kie.server.client.admin.UserTaskAdminServicesClient::removePotentialOwnerUsers(java.lang.String, java.lang.String, java.lang.Long, java.lang.String[])",
               "package": "org.kie.server.client.admin",
               "classSimpleName": "UserTaskAdminServicesClient",
               "methodName": "removePotentialOwnerUsers",
               "elementKind": "method",
               "justification": "[JBPM-9625]  Allow to bypass the authenticated user in the KIE REST API that is adding users or groups as potential owners"
             },
             {
               "code": "java.method.addedToInterface",
               "new": "method java.util.List<org.kie.server.api.model.admin.MigrationReportInstance> org.kie.server.client.admin.ProcessAdminServicesClient::migrateProcessInstanceWithSubprocess(java.lang.String, java.lang.Long, java.lang.String, org.kie.server.api.model.admin.MigrationSpecification)",
               "package": "org.kie.server.client.admin",
               "classSimpleName": "ProcessAdminServicesClient",
               "methodName": "migrateProcessInstanceWithSubprocess",
               "elementKind": "method",
               "justification": "[JBPM-9583] Enhance migration service to check parent/sub-process relations"
             }
            ]
        }
    }
}
