3.3. Defining Kie Base

You can create a Kie Base either using the API or in the kmodule.xml project descriptor file of your project via the Project Editor.

Defining Kie Base in the Project Editor

To define a Kie Base in the web environment, which is stored in the kmodule.xml file, do the following:
  1. To open Project Explorer, click Authoring > Project Authoring and select or navigate to your project.
  2. Open your project properties in Project Editor: in the perspective menu, click ToolsProject Editor.
  3. In the drop-down menu on the Project Screen view, click Knowledge bases and sessions.
    Selecting Knowledge Base and Knowledge Session properties option from the project properties options

    Figure 3.1. Project properties selection

  4. In the Knowledge Bases area on the updated Project Screen, define and select the Knowledge (Kie) Base definition.
    New Knowledge Base created

    Figure 3.2. New Knowledge Base created

Defining Kie Base using API

To define Kie Base using API, use the following code:
import org.kie.api.KieServices;
import org.kie.api.builder.KieRepository;
import org.kie.api.builder.KieFileSystem;
import org.kie.api.builder.KieBuilder;
import org.kie.api.runtime.KieContainer;
import org.kie.api.KieBase;
...
KieServices kServices = KieServices.Factory.get();
KieRepository kRepository = kServices.getRepository();
KieFileSystem kFileSystem = kServices.newKieFileSystem();

kFileSystem.write(ResourceFactory.newClassPathResource("MyProcess.bpmn"));

KieBuilder kBuilder = kServices.newKieBuilder(kFileSystem);
kBuilder.buildAll();

KieContainer kContainer = kServices.newKieContainer(kRepository.getDefaultReleaseId());
KieBase kBase = kContainer.getKieBase();