{
  "filters": {
    "revapi": {
      "java": {
        "filter": {
          "classes": {
            "regex": true,
            "exclude": []
          }
        }
      }
    }
  },

  "ignores": {
    "revapi": {
      "_comment": "Changes between 7.11.0.Final and the current branch. These changes are desired and thus ignored.",
      "ignore": [
        {
          "code": "java.method.addedToInterface",
          "new": "method org.kie.api.runtime.builder.KieContainerFluent org.kie.api.runtime.builder.ExecutableBuilder::setKieContainer(org.kie.api.runtime.KieContainer)",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "ExecutableBuilder",
          "methodName": "setKieContainer",
          "elementKind": "method",
          "justification": "add the possibility to plug existing KieContainer in ExecutableBuilder"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method org.kie.api.runtime.builder.KieSessionFluent org.kie.api.runtime.builder.KieContainerFluent::newSessionCustomized(java.lang.String, java.util.function.BiFunction<java.lang.String, org.kie.api.runtime.KieContainer, org.kie.api.runtime.KieContainer>)",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "KieContainerFluent",
          "methodName": "newSessionCustomized",
          "elementKind": "method",
          "justification": "support session creation with customization"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method org.kie.api.runtime.KieSessionsPool org.kie.api.KieBase::newKieSessionsPool(int)",
          "package": "org.kie.api",
          "classSimpleName": "KieBase",
          "methodName": "newKieSessionsPool",
          "elementKind": "method",
          "justification": "add sessions pool"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method org.kie.api.runtime.KieContainerSessionsPool org.kie.api.runtime.KieContainer::newKieSessionsPool(int)",
          "package": "org.kie.api.runtime",
          "classSimpleName": "KieContainer",
          "methodName": "newKieSessionsPool",
          "elementKind": "method",
          "justification": "add sessions pool"
        },
        {
          "code": "java.method.parameterTypeChanged",
          "old": "parameter T org.kie.api.internal.runtime.KieRuntimeService<T>::newKieRuntime(===org.kie.api.runtime.KieRuntime===)",
          "new": "parameter T org.kie.api.internal.runtime.KieRuntimeService<T>::newKieRuntime(===org.kie.api.KieBase===)",
          "oldType": "org.kie.api.runtime.KieRuntime",
          "newType": "org.kie.api.KieBase",
          "package": "org.kie.api.internal.runtime",
          "classSimpleName": "KieRuntimeService",
          "methodName": "newKieRuntime",
          "parameterIndex": "0",
          "elementKind": "parameter",
          "justification": "KieRuntimeService instances often do not require a whole KieRuntime (session) to be created -- DMN does not"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method org.kie.api.builder.model.KieSessionModel org.kie.api.builder.model.KieSessionModel::addCalendar(java.lang.String, java.lang.String)",
          "package": "org.kie.api.builder.model",
          "classSimpleName": "KieSessionModel",
          "methodName": "addCalendar",
          "elementKind": "method",
          "justification": "allow to set Calendars on a KieSession in a declartive way"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method java.util.Map<java.lang.String, java.lang.String> org.kie.api.builder.model.KieSessionModel::getCalendars()",
          "package": "org.kie.api.builder.model",
          "classSimpleName": "KieSessionModel",
          "methodName": "getCalendars",
          "elementKind": "method",
          "justification": "allow to set Calendars on a KieSession in a declartive way"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method org.kie.api.builder.KieScanner org.kie.api.KieServices::newKieScanner(org.kie.api.runtime.KieContainer, java.lang.String)",
          "package": "org.kie.api",
          "classSimpleName": "KieServices",
          "methodName": "newKieScanner",
          "elementKind": "method",
          "justification": "allow KieScanner to work with a plain file system"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method java.util.Collection<java.lang.String> org.kie.api.runtime.process.CaseAssignment::getRoles()",
          "package": "org.kie.api.runtime.process",
          "classSimpleName": "CaseAssignment",
          "methodName": "getRoles",
          "elementKind": "method",
          "justification": "ElasticSearch event emitter for runtime events"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.ContextFluent<T extends java.lang.Object, E extends java.lang.Object>",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "ContextFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.DataSourceFluent<E extends java.lang.Object, U extends org.kie.api.runtime.builder.RuleUnitFluent>",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "DataSourceFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.ExecutableBuilder",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "ExecutableBuilder",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.KieContainerFluent",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "KieContainerFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.KieSessionFluent",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "KieSessionFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.ProcessFluent<T extends java.lang.Object, U extends java.lang.Object>",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "ProcessFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.RuleFluent<T extends java.lang.Object, U extends java.lang.Object>",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "RuleFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.RuleUnitExecutorFluent",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "RuleUnitExecutorFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.RuleUnitFluent<T extends org.kie.api.runtime.builder.RuleUnitFluent, U extends java.lang.Object>",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "RuleUnitFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "enum org.kie.api.runtime.builder.Scope",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "Scope",
          "elementKind": "enum",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.TaskFluent<T extends java.lang.Object>",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "TaskFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.TimeFluent<T extends java.lang.Object>",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "TimeFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.class.removed",
          "old": "interface org.kie.api.runtime.builder.WorkItemManagerFluent<T extends java.lang.Object, P extends java.lang.Object, U extends java.lang.Object>",
          "package": "org.kie.api.runtime.builder",
          "classSimpleName": "WorkItemManagerFluent",
          "elementKind": "interface",
          "justification": "Moved fluent builder interfaces to kie-internal"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method void org.kie.api.internal.assembler.KieAssemblers::addResource(java.lang.Object, org.kie.api.io.Resource, org.kie.api.io.ResourceType, org.kie.api.io.ResourceConfiguration) throws java.lang.Exception",
          "package": "org.kie.api.internal.assembler",
          "classSimpleName": "KieAssemblers",
          "methodName": "addResource",
          "elementKind": "method",
          "justification": "expose a method to add resource via assemblers, without explicitly 'getting' the specific assembler"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method void org.kie.api.internal.assembler.KieAssemblers::addResources(java.lang.Object, java.util.List<org.kie.api.io.ResourceWithConfiguration>, org.kie.api.io.ResourceType) throws java.lang.Exception",
          "package": "org.kie.api.internal.assembler",
          "classSimpleName": "KieAssemblers",
          "methodName": "addResources",
          "elementKind": "method",
          "justification": "expose a method to add resource via assemblers, without explicitly 'getting' the specific assembler"
        },
        {
          "code": "java.method.removed",
          "old": "method java.util.Map<org.kie.api.io.ResourceType, org.kie.api.internal.assembler.KieAssemblerService> org.kie.api.internal.assembler.KieAssemblers::getAssemblers()",
          "package": "org.kie.api.internal.assembler",
          "classSimpleName": "KieAssemblers",
          "methodName": "getAssemblers",
          "elementKind": "method",
          "justification": "remove method to get internal state (Map) of the Assemblers service, provide methods to delegate to available assemblers instead"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method void org.kie.api.internal.io.ResourceTypePackage<T>::add(T)",
          "package": "org.kie.api.internal.io",
          "classSimpleName": "ResourceTypePackage",
          "methodName": "add",
          "elementKind": "method",
          "justification": "generic method to add an element to a package"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method java.util.Iterator<T> java.lang.Iterable<T>::iterator() @ org.kie.api.internal.io.ResourceTypePackage<T>",
          "package": "org.kie.api.internal.io",
          "classSimpleName": "ResourceTypePackage",
          "methodName": "iterator",
          "elementKind": "method",
          "justification": "made packages iterable, returning their contents"
        },
        {
          "code": "java.generics.elementNowParameterized",
          "old": "interface org.kie.api.internal.io.ResourceTypePackage",
          "new": "interface org.kie.api.internal.io.ResourceTypePackage<T extends java.lang.Object>",
          "package": "org.kie.api.internal.io",
          "classSimpleName": "ResourceTypePackage",
          "elementKind": "interface",
          "justification": "packages are now generic in the type of their contents"
        },
        {
          "code": "java.generics.formalTypeParameterAdded",
          "old": "interface org.kie.api.internal.io.ResourceTypePackage",
          "new": "interface org.kie.api.internal.io.ResourceTypePackage<T extends java.lang.Object>",
          "package": "org.kie.api.internal.io",
          "classSimpleName": "ResourceTypePackage",
          "elementKind": "interface",
          "justification": "type of the contents of a package"
        },
        {
          "code": "java.method.removed",
          "old": "method java.util.Map<org.kie.api.io.ResourceType, org.kie.api.internal.weaver.KieWeaverService> org.kie.api.internal.weaver.KieWeavers::getWeavers()",
          "package": "org.kie.api.internal.weaver",
          "classSimpleName": "KieWeavers",
          "methodName": "getWeavers",
          "elementKind": "method",
          "justification": "remove method to get internal state (Map) of the Weavers service, provide methods to delegate to available weavers instead"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method void org.kie.api.internal.weaver.KieWeavers::merge(org.kie.api.KieBase, org.kie.api.definition.KiePackage, org.kie.api.internal.io.ResourceTypePackage)",
          "package": "org.kie.api.internal.weaver",
          "classSimpleName": "KieWeavers",
          "methodName": "merge",
          "elementKind": "method",
          "justification": "expose a method to merge packages, without explicitly 'getting' the specific weaver"
        },
        {
          "code": "java.method.addedToInterface",
          "new": "method void org.kie.api.internal.weaver.KieWeavers::weave(org.kie.api.KieBase, org.kie.api.definition.KiePackage, org.kie.api.internal.io.ResourceTypePackage)",
          "package": "org.kie.api.internal.weaver",
          "classSimpleName": "KieWeavers",
          "methodName": "weave",
          "elementKind": "method",
          "justification": "expose a method to weave packages, without explicitly 'getting' the specific weaver"
        }

      ]
    }
  }
}

