This is an automated email from the ASF dual-hosted git repository.

gitgabrio pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-benchmarks.git


The following commit(s) were added to refs/heads/main by this push:
     new a4304bfc [incubator-kie-issues#1973]  Create DMN-Efesto benchmarks 
(#294)
a4304bfc is described below

commit a4304bfcf6be835d5998cf4526c83764b94eba3c
Author: Gabriele Cardosi <[email protected]>
AuthorDate: Tue Jul 1 09:49:02 2025 +0200

    [incubator-kie-issues#1973]  Create DMN-Efesto benchmarks (#294)
    
    * [incubator-kie-issues#1973] Introducing dmn efesto benchmarks. Minor 
refactoring of other benchmarks. Fixing some generated models
    
    * [incubator-kie-issues#1973] Implemented efesto runtime benchmarks
    
    ---------
    
    Co-authored-by: Gabriele-Cardosi <[email protected]>
---
 .../org/drools/benchmarks/common/DMNProvider.java  |  10 ++
 .../dmn/BusinessKnowledgeModelDMNProvider.java     |   9 +-
 .../common/providers/dmn/ContextDMNProvider.java   |  16 ++-
 .../dmn/DTNoGapsNoOverlapsDMNProvider.java         |   9 +-
 .../common/providers/dmn/DecisionDMNProvider.java  |  13 +-
 .../providers/dmn/DecisionTableDMNProvider.java    |   9 +-
 .../providers/dmn/DecisionTablesDMNProvider.java   |   9 +-
 .../dmn/TriangularNumHardDMNProvider.java          |   9 +-
 .../dmn/efesto/DMNEfestoAbstractBenchmark.java     | 146 +++++++++++++++++++++
 ...CompilationBusinessKnowledgeModelBenchmark.java |  61 +++++++++
 .../DMNCompilationComplexDMNModelBenchmark.java    |  60 +++++++++
 .../DMNCompilationContextBenchmark.java}           |  60 ++++-----
 .../DMNCompilationDecisionBenchmark.java}          |  59 ++++-----
 .../DMNCompilationDecisionTableBenchmark.java}     |  62 ++++-----
 .../DMNCompilationMultipleBenchmark.java           |  92 +++++++++++++
 .../runtime/DMNEvaluateContextBenchmark.java       |  51 +++----
 .../runtime/DMNEvaluateDecisionBenchmark.java      |  47 +++----
 .../runtime/DMNEvaluateDecisionTableBenchmark.java |  59 ++++-----
 .../DMNEvaluateDecisionTablesSparseBenchmark.java  |  60 +++------
 .../DMNEvaluateFewLiteralDecisionBenchmark.java    |  52 +++-----
 .../runtime/DMNEvaluatePojoInputBenchmark.java     |  72 ++++++++++
 .../DMNEvaluateTriangularNumHardBenchmark.java     |  45 +++----
 .../efesto/runtime/DMNRuntimeBKModelBenchmark.java |  66 ++++++++++
 .../dmn/runtime/DMNEvaluateContextBenchmark.java   |   2 +-
 .../dmn/runtime/DMNEvaluateDecisionBenchmark.java  |   2 +-
 .../runtime/DMNEvaluateDecisionTableBenchmark.java |   2 +-
 .../DMNEvaluateDecisionTablesSparseBenchmark.java  |   2 +-
 .../DMNEvaluateFewLiteralDecisionBenchmark.java    |   2 +-
 .../DMNEvaluateTriangularNumHardBenchmark.java     |   2 +-
 .../validation/DTNoGapsNoOverlapsBenchmark.java    |   2 +-
 drools-benchmarks-parent/pom.xml                   |  19 +++
 31 files changed, 786 insertions(+), 323 deletions(-)

diff --git 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/DMNProvider.java
 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/DMNProvider.java
index f7c45b42..7cfcfb9b 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/DMNProvider.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/DMNProvider.java
@@ -30,10 +30,20 @@ public interface DMNProvider {
      */
     String getDMN();
 
+    /**
+     *
+     * @return the model name of the generated model
+     */
+    String getModelName();
+
     /**
      * Returns DMN that contains specified number of core elements (e.g. 
decisions, business knowledge model, etc.).
      * @param numberOfElements Required number of core elements in resulting 
DRL.
      * @return String representation of the generated DMN file.
      */
     String getDMN(int numberOfElements);
+
+    default String getFormattedDefinitions(String modelName) {
+        return String.format("<definitions id=\"%1$s\" name=\"%1$s\"\n", 
modelName);
+    }
 }
diff --git 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/BusinessKnowledgeModelDMNProvider.java
 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/BusinessKnowledgeModelDMNProvider.java
index f9989796..21b9f5ca 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/BusinessKnowledgeModelDMNProvider.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/BusinessKnowledgeModelDMNProvider.java
@@ -23,17 +23,24 @@ import org.drools.benchmarks.common.DMNProvider;
 
 public class BusinessKnowledgeModelDMNProvider implements DMNProvider {
 
+    private static final String MODEL_NAME = "business-knowledge-model";
+
     @Override
     public String getDMN() {
         return getDMN(1);
     }
 
+    @Override
+    public String getModelName() {
+        return MODEL_NAME;
+    }
+
     @Override
     public String getDMN(int numberOfElements) {
         final StringBuilder dmnBuilder = new StringBuilder();
 
         dmnBuilder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-        dmnBuilder.append("<definitions id=\"business-knowledge-model\" 
name=\"business-knowledge-model\"\n");
+        dmnBuilder.append(getFormattedDefinitions(MODEL_NAME));
         dmnBuilder.append("             
namespace=\"https://github.com/kiegroup/kie-dmn\"\n";);
         dmnBuilder.append("             
xmlns=\"http://www.omg.org/spec/DMN/20151101/dmn.xsd\"\n";);
         dmnBuilder.append("             
xmlns:feel=\"http://www.omg.org/spec/FEEL/20140401\";>\n");
diff --git 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/ContextDMNProvider.java
 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/ContextDMNProvider.java
index 8c80f194..5f3d72ab 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/ContextDMNProvider.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/ContextDMNProvider.java
@@ -23,21 +23,29 @@ import org.drools.benchmarks.common.DMNProvider;
 
 public class ContextDMNProvider implements DMNProvider {
 
+    private static final String MODEL_NAME = "dmn-context";
+
     @Override
     public String getDMN() {
         return getDMN(1);
     }
 
+    @Override
+    public String getModelName() {
+        return MODEL_NAME;
+    }
+
     @Override
     public String getDMN(int numberOfElements) {
         final StringBuilder dmnBuilder = new StringBuilder();
 
         dmnBuilder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-        dmnBuilder.append("<definitions id=\"dmn-context\" 
name=\"dmn-context\"\n");
+        dmnBuilder.append(getFormattedDefinitions(MODEL_NAME));
         dmnBuilder.append("             
namespace=\"https://github.com/kiegroup/kie-dmn\"\n";);
         dmnBuilder.append("             
xmlns=\"http://www.omg.org/spec/DMN/20151101/dmn.xsd\"\n";);
-        dmnBuilder.append("             
xmlns:feel=\"http://www.omg.org/spec/FEEL/20140401\";>\n");
-        dmnBuilder.append("             
xsi:schemaLocation=\"http://www.omg.org/spec/DMN/20151101/dmn.xsd 
http://www.omg.org/spec/DMN/20151101/dmn.xsd \"\n");
+        dmnBuilder.append("             
xmlns:feel=\"http://www.omg.org/spec/FEEL/20140401\"\n";);
+        dmnBuilder.append("             
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n";);
+        dmnBuilder.append("             
xsi:schemaLocation=\"http://www.omg.org/spec/DMN/20151101/dmn.xsd 
http://www.omg.org/spec/DMN/20151101/dmn.xsd \"\n>");
 
         for (int i = 0; i < numberOfElements; i++) {
             dmnBuilder.append(getContext(i));
@@ -51,7 +59,7 @@ public class ContextDMNProvider implements DMNProvider {
     private String getContext(final int index) {
         final StringBuilder contextBuilder = new StringBuilder();
         contextBuilder.append("  <decision id=\"decision" + index + "\" 
name=\"decision" + index + "\">\n");
-        contextBuilder.append("    <variable name=\"DecisionVar" + index + "\" 
typeRef=\"feel:context\"/>\n");
+        contextBuilder.append("    <variable name=\"decision" + index + "\" 
typeRef=\"feel:context\"/>\n");
         contextBuilder.append("    <context>\n");
         contextBuilder.append("      <contextEntry>\n");
         contextBuilder.append("        <variable name=\"entry" + index + "-1\" 
typeRef=\"feel:string\"/>\n");
diff --git 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DTNoGapsNoOverlapsDMNProvider.java
 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DTNoGapsNoOverlapsDMNProvider.java
index 427945e9..9f6497e1 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DTNoGapsNoOverlapsDMNProvider.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DTNoGapsNoOverlapsDMNProvider.java
@@ -25,17 +25,24 @@ import org.drools.benchmarks.common.DMNProvider;
 
 public class DTNoGapsNoOverlapsDMNProvider implements DMNProvider {
 
+    private static final String MODEL_NAME = "dt-nogapsnooverlaps";
+
     @Override
     public String getDMN() {
         return getDMN(1);
     }
 
+    @Override
+    public String getModelName() {
+        return MODEL_NAME;
+    }
+
     @Override
     public String getDMN(int param) {
         final StringBuilder dmnBuilder = new StringBuilder();
 
         dmnBuilder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-        dmnBuilder.append("<definitions id=\"dt-nogapsnooverlaps\" 
name=\"dt-nogapsnooverlaps\"\n");
+        dmnBuilder.append(getFormattedDefinitions(MODEL_NAME));
         dmnBuilder.append("             
namespace=\"https://github.com/kiegroup/kie-dmn\"\n";);
         dmnBuilder.append("             
xmlns=\"http://www.omg.org/spec/DMN/20180521/MODEL/\"\n";);
         dmnBuilder.append("             
xmlns:feel=\"http://www.omg.org/spec/DMN/20180521/FEEL/\";>\n");
diff --git 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionDMNProvider.java
 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionDMNProvider.java
index 98a2a3b6..6d014b51 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionDMNProvider.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionDMNProvider.java
@@ -23,17 +23,24 @@ import org.drools.benchmarks.common.DMNProvider;
 
 public class DecisionDMNProvider implements DMNProvider {
 
+    private static final String MODEL_NAME = "decision";
+
     @Override
     public String getDMN() {
         return getDMN(1);
     }
 
+    @Override
+    public String getModelName() {
+        return MODEL_NAME;
+    }
+
     @Override
     public String getDMN(int numberOfElements) {
         final StringBuilder dmnBuilder = new StringBuilder();
 
         dmnBuilder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-        dmnBuilder.append("<definitions id=\"decision\" name=\"decision\"\n");
+        dmnBuilder.append(getFormattedDefinitions(MODEL_NAME));
         dmnBuilder.append("             
namespace=\"https://github.com/kiegroup/drools/kie-dmn\"\n";);
         dmnBuilder.append("             
xmlns=\"http://www.omg.org/spec/DMN/20151101/dmn.xsd\"\n";);
         dmnBuilder.append("             
xmlns:feel=\"http://www.omg.org/spec/FEEL/20140401\";>\n");
@@ -52,8 +59,8 @@ public class DecisionDMNProvider implements DMNProvider {
 
     private String getDecision(final int index) {
         final StringBuilder decisionBuilder = new StringBuilder();
-        decisionBuilder.append("  <decision id=\"decision" + index + "\" 
name=\"decision" + index + "\">\n");
-        decisionBuilder.append("    <variable name=\"variable" + index + "\" 
typeRef=\"feel:string\"/>\n");
+        decisionBuilder.append( "  <decision id=\"decision" + index + "\" 
name=\"decision" + index + "\">\n");
+        decisionBuilder.append("    <variable name=\"decision" + index + "\" 
typeRef=\"feel:string\"/>\n");
         decisionBuilder.append("    <informationRequirement>\n");
         decisionBuilder.append("      <requiredInput 
href=\"#i_FullName\"/>\n");
         decisionBuilder.append("    </informationRequirement>\n");
diff --git 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionTableDMNProvider.java
 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionTableDMNProvider.java
index 1a126a7e..bee0b8de 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionTableDMNProvider.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionTableDMNProvider.java
@@ -23,17 +23,24 @@ import org.drools.benchmarks.common.DMNProvider;
 
 public class DecisionTableDMNProvider implements DMNProvider {
 
+    private static final String MODEL_NAME = "decision-table";
+
     @Override
     public String getDMN() {
         return getDMN(1);
     }
 
+    @Override
+    public String getModelName() {
+        return MODEL_NAME;
+    }
+
     @Override
     public String getDMN(int numberOfTableRules) {
         final StringBuilder dmnBuilder = new StringBuilder();
 
         dmnBuilder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-        dmnBuilder.append("<definitions id=\"decision-table-id\" 
name=\"decision-table-name\"\n");
+        dmnBuilder.append(getFormattedDefinitions(MODEL_NAME));
         dmnBuilder.append("             
namespace=\"https://github.com/kiegroup/kie-dmn\"\n";);
         dmnBuilder.append("             
xmlns=\"http://www.omg.org/spec/DMN/20151101/dmn.xsd\"\n";);
         dmnBuilder.append("             
xmlns:feel=\"http://www.omg.org/spec/FEEL/20140401\"\n";);
diff --git 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionTablesDMNProvider.java
 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionTablesDMNProvider.java
index 7b7a5f12..3f6b471c 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionTablesDMNProvider.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/DecisionTablesDMNProvider.java
@@ -23,17 +23,24 @@ import org.drools.benchmarks.common.DMNProvider;
 
 public class DecisionTablesDMNProvider implements DMNProvider {
 
+    private static final String MODEL_NAME = "decision-tables";
+
     @Override
     public String getDMN() {
         return getDMN(1);
     }
 
+    @Override
+    public String getModelName() {
+        return MODEL_NAME;
+    }
+
     @Override
     public String getDMN(int numberOfElements) {
         final StringBuilder dmnBuilder = new StringBuilder();
 
         dmnBuilder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-        dmnBuilder.append("<definitions id=\"decision-table-id\" 
name=\"decision-table-name\"\n");
+        dmnBuilder.append(getFormattedDefinitions(MODEL_NAME));
         dmnBuilder.append("             
namespace=\"https://github.com/kiegroup/kie-dmn\"\n";);
         
dmnBuilder.append("xmlns=\"http://www.omg.org/spec/DMN/20180521/MODEL/\";  ");
         
dmnBuilder.append("xmlns:triso=\"http://www.trisotech.com/2015/triso/modeling\"; 
 ");
diff --git 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/TriangularNumHardDMNProvider.java
 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/TriangularNumHardDMNProvider.java
index 701d83d9..e3bac410 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/TriangularNumHardDMNProvider.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-common/src/main/java/org/drools/benchmarks/common/providers/dmn/TriangularNumHardDMNProvider.java
@@ -26,17 +26,24 @@ import org.drools.benchmarks.common.DMNProvider;
 
 public class TriangularNumHardDMNProvider implements DMNProvider {
 
+    private static final String MODEL_NAME = "dmn-triangular";
+
     @Override
     public String getDMN() {
         return getDMN(1);
     }
 
+    @Override
+    public String getModelName() {
+        return MODEL_NAME;
+    }
+
     @Override
     public String getDMN(int numberOfElements) {
         final StringBuilder dmnBuilder = new StringBuilder();
 
         dmnBuilder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-        dmnBuilder.append("<definitions id=\"dmn-triangular\" 
name=\"dmn-triangular\"\n");
+        dmnBuilder.append(getFormattedDefinitions(MODEL_NAME));
         dmnBuilder.append("             
namespace=\"https://github.com/kiegroup/kie-dmn\"\n";);
         dmnBuilder.append("             
xmlns=\"http://www.omg.org/spec/DMN/20180521/MODEL/\"\n";);
         dmnBuilder.append("             
xmlns:feel=\"http://www.omg.org/spec/DMN/20180521/FEEL/\";>\n");
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/DMNEfestoAbstractBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/DMNEfestoAbstractBenchmark.java
new file mode 100644
index 00000000..1c96322f
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/DMNEfestoAbstractBenchmark.java
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.drools.benchmarks.dmn.efesto;
+
+import org.drools.benchmarks.common.AbstractBenchmark;
+import org.drools.io.ClassPathResource;
+import org.kie.api.io.Resource;
+import org.kie.dmn.core.api.DMNFactory;
+import org.kie.dmn.efesto.compiler.model.DmnCompilationContext;
+import org.kie.efesto.common.api.identifiers.LocalUri;
+import org.kie.efesto.common.api.identifiers.ModelLocalUriId;
+import org.kie.efesto.common.api.model.EfestoCompilationContext;
+import org.kie.efesto.common.api.model.GeneratedModelResource;
+import org.kie.efesto.common.api.model.GeneratedResources;
+import org.kie.efesto.common.core.storage.ContextStorage;
+import org.kie.efesto.compilationmanager.api.model.EfestoFileResource;
+import org.kie.efesto.compilationmanager.api.model.EfestoFileSetResource;
+import org.kie.efesto.compilationmanager.api.model.EfestoInputStreamResource;
+import org.kie.efesto.compilationmanager.api.model.EfestoStringResource;
+import org.kie.efesto.compilationmanager.api.service.CompilationManager;
+import org.kie.efesto.compilationmanager.api.utils.SPIUtils;
+import org.kie.efesto.runtimemanager.api.model.BaseEfestoInput;
+import org.kie.efesto.runtimemanager.api.model.EfestoInput;
+import org.kie.efesto.runtimemanager.api.model.EfestoLocalRuntimeContext;
+import org.kie.efesto.runtimemanager.api.model.EfestoOutput;
+import org.kie.efesto.runtimemanager.api.service.RuntimeManager;
+import org.kie.efesto.runtimemanager.core.model.EfestoRuntimeContextUtils;
+import org.kie.memorycompiler.KieMemoryCompiler;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+
+@SuppressWarnings({"rawtypes", "unchecked"})
+public abstract class DMNEfestoAbstractBenchmark extends AbstractBenchmark {
+
+    private static final KieMemoryCompiler.MemoryCompilerClassLoader 
memoryCompilerClassLoader =
+            new 
KieMemoryCompiler.MemoryCompilerClassLoader(Thread.currentThread().getContextClassLoader());
+    private static final CompilationManager compilationManager =
+            SPIUtils.getCompilationManager(true).orElseThrow(() -> new 
RuntimeException("Compilation Manager not " +
+                    "available"));
+    private static final RuntimeManager runtimeManager =
+            
org.kie.efesto.runtimemanager.api.utils.SPIUtils.getRuntimeManager(true).orElseThrow(()
 -> new RuntimeException("Runtime Manager not available"));
+
+    protected Map<String, GeneratedResources> generatedResources;
+    protected ModelLocalUriId modelLocalUriId;
+    protected EfestoLocalRuntimeContext runtimeContext;
+    protected Map<String, Object> inputData;
+
+    protected EfestoLocalRuntimeContext getRuntimeContext(Map<String, 
GeneratedResources> generatedResourcesMap, ModelLocalUriId modelLocalUriId) {
+        EfestoLocalRuntimeContext toReturn = (EfestoLocalRuntimeContext) 
ContextStorage.getEfestoRuntimeContext(modelLocalUriId);
+        if (toReturn == null) {
+            toReturn = 
EfestoRuntimeContextUtils.buildWithParentClassLoader(memoryCompilerClassLoader, 
generatedResourcesMap);
+            ContextStorage.putEfestoRuntimeContext(modelLocalUriId, toReturn);
+
+        }
+        return toReturn;
+    }
+
+    protected Collection<EfestoOutput> evaluate(EfestoLocalRuntimeContext 
runtimeContext,
+                                                ModelLocalUriId 
modelLocalUriId, Map<String, Object> inputData) {
+        EfestoInput<Map<String, Object>> inputDMN = new 
BaseEfestoInput<>(modelLocalUriId, inputData);
+        return runtimeManager.evaluateInput(runtimeContext, inputDMN);
+    }
+
+    protected ModelLocalUriId getModelLocalUriId(Map<String, 
GeneratedResources> generatedResources) {
+        List<GeneratedModelResource> generatedModelResources = 
generatedResources.get("dmn")
+                .stream()
+                .filter(GeneratedModelResource.class::isInstance)
+                .map(GeneratedModelResource.class::cast)
+                .toList();
+        if (generatedModelResources.size() != 1) {
+            throw new IllegalStateException("Expected exactly one generated 
model resource");
+        }
+        return generatedModelResources.get(0).getModelLocalUriId();
+    }
+
+    protected HashMap getInputData() {
+        return new HashMap<>(DMNFactory.newContext().getAll());
+    }
+
+    protected Map<String, GeneratedResources> compileModel(Resource 
dmnResource, String model) {
+        try (InputStream inputStream = dmnResource.getInputStream()) {
+            EfestoInputStreamResource toProcessDmn = new 
EfestoInputStreamResource(inputStream, model + ".dmn");
+            EfestoCompilationContext dmnCompilationContext = 
DmnCompilationContext.buildWithParentClassLoader(memoryCompilerClassLoader);
+            compilationManager.processResource(dmnCompilationContext, 
toProcessDmn);
+            return dmnCompilationContext.getGeneratedResourcesMap();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    protected Map<String, GeneratedResources> compileModel(String dmn, String 
model) {
+        ModelLocalUriId dmnModelLocalUriId = new 
ModelLocalUriId(LocalUri.Root.append("dmn").append(model));
+        EfestoStringResource toProcessDmn = new EfestoStringResource(dmn, 
dmnModelLocalUriId);
+        EfestoCompilationContext dmnCompilationContext = 
DmnCompilationContext.buildWithParentClassLoader(memoryCompilerClassLoader);
+        compilationManager.processResource(dmnCompilationContext, 
toProcessDmn);
+        return dmnCompilationContext.getGeneratedResourcesMap();
+    }
+
+    protected Map<String, GeneratedResources> compileModel(File dmnFile) {
+        EfestoFileResource toProcessDmn = new EfestoFileResource(dmnFile);
+        EfestoCompilationContext dmnCompilationContext = 
DmnCompilationContext.buildWithParentClassLoader(memoryCompilerClassLoader);
+        compilationManager.processResource(dmnCompilationContext, 
toProcessDmn);
+        return dmnCompilationContext.getGeneratedResourcesMap();
+    }
+
+    protected Map<String, GeneratedResources> compileModels(Collection<File> 
dmnFiles) {
+        ModelLocalUriId dmnModelLocalUriId = new 
ModelLocalUriId(LocalUri.Root.append("dmn").append("benchmarks"));
+        EfestoFileSetResource toProcessDmn = new EfestoFileSetResource(new 
HashSet<>(dmnFiles), dmnModelLocalUriId);
+        EfestoCompilationContext dmnCompilationContext = 
DmnCompilationContext.buildWithParentClassLoader(memoryCompilerClassLoader);
+        compilationManager.processResource(dmnCompilationContext, 
toProcessDmn);
+        return dmnCompilationContext.getGeneratedResourcesMap();
+    }
+
+    protected String getDmnContent(String resourceName) {
+        final Resource dmnResource = new ClassPathResource(resourceName);
+        try (InputStream inputStream = dmnResource.getInputStream()) {
+            return new String(inputStream.readAllBytes(), 
StandardCharsets.UTF_8);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}   
\ No newline at end of file
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationBusinessKnowledgeModelBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationBusinessKnowledgeModelBenchmark.java
new file mode 100644
index 00000000..eb2ed8a1
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationBusinessKnowledgeModelBenchmark.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License. 
+ */
+
+package org.drools.benchmarks.dmn.efesto.compilation;
+
+import org.drools.benchmarks.common.DMNProvider;
+import org.drools.benchmarks.common.ProviderException;
+import 
org.drools.benchmarks.common.providers.dmn.BusinessKnowledgeModelDMNProvider;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.kie.efesto.common.api.model.GeneratedResources;
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.BenchmarkMode;
+import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.annotations.Param;
+import org.openjdk.jmh.annotations.Setup;
+import org.openjdk.jmh.annotations.Warmup;
+
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+@BenchmarkMode(Mode.AverageTime)
+@Warmup(iterations = 40, time = 2, timeUnit = TimeUnit.SECONDS)
+@Measurement(iterations = 15, time = 2, timeUnit = TimeUnit.SECONDS)
+public class DMNCompilationBusinessKnowledgeModelBenchmark extends 
DMNEfestoAbstractBenchmark {
+
+    private String dmn;
+    private String modelName;
+
+    @Param({"3000"})
+    private int numberOfDecisionsWithBKM;
+
+    @Setup
+    @Override
+    public void setup() throws ProviderException {
+        DMNProvider dmnProvider = new BusinessKnowledgeModelDMNProvider();
+        dmn = dmnProvider.getDMN(numberOfDecisionsWithBKM);
+        modelName = dmnProvider.getModelName();
+    }
+
+    @Benchmark
+    public Map<String, GeneratedResources> testGetGeneratedResourcesMap() {
+        return compileModel(dmn, modelName);
+    }
+}
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationComplexDMNModelBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationComplexDMNModelBenchmark.java
new file mode 100644
index 00000000..6fc0fd08
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationComplexDMNModelBenchmark.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License. 
+ */
+
+package org.drools.benchmarks.dmn.efesto.compilation;
+
+import org.drools.benchmarks.common.ProviderException;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.drools.io.ClassPathResource;
+import org.kie.api.io.Resource;
+import org.kie.efesto.common.api.model.GeneratedResources;
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.BenchmarkMode;
+import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.annotations.Param;
+import org.openjdk.jmh.annotations.Setup;
+import org.openjdk.jmh.annotations.Warmup;
+
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+@BenchmarkMode(Mode.AverageTime)
+@Warmup(iterations = 15, time = 2, timeUnit = TimeUnit.SECONDS)
+@Measurement(iterations = 15, time = 2, timeUnit = TimeUnit.SECONDS)
+public class DMNCompilationComplexDMNModelBenchmark extends 
DMNEfestoAbstractBenchmark {
+
+    private Resource dmnResource;
+
+    @Param({"dmn/ch11MODIFIED.dmn"})
+    private String resourceName;
+    private String modelName;
+
+    @Setup
+    @Override
+    public void setup() throws ProviderException {
+        dmnResource = new ClassPathResource(resourceName);
+        modelName = "ch11MODIFIED";
+    }
+
+    @Benchmark
+    public Map<String, GeneratedResources> testGetGeneratedResourcesMap() {
+        return compileModel(dmnResource, modelName);
+    }
+}
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateContextBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationContextBenchmark.java
similarity index 55%
copy from 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateContextBenchmark.java
copy to 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationContextBenchmark.java
index a60a1281..f4aec2c8 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateContextBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationContextBenchmark.java
@@ -17,61 +17,53 @@
  * under the License. 
  */
 
-package org.drools.benchmarks.dmn.runtime;
+package org.drools.benchmarks.dmn.efesto.compilation;
 
-import java.io.IOException;
-import java.io.StringReader;
-
-import org.drools.benchmarks.common.AbstractBenchmark;
 import org.drools.benchmarks.common.DMNProvider;
 import org.drools.benchmarks.common.ProviderException;
 import org.drools.benchmarks.common.providers.dmn.ContextDMNProvider;
-import org.drools.benchmarks.dmn.util.DMNUtil;
-import org.kie.api.KieServices;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.drools.io.ReaderResource;
 import org.kie.api.io.Resource;
 import org.kie.api.io.ResourceType;
-import org.kie.dmn.api.core.DMNContext;
-import org.kie.dmn.api.core.DMNModel;
-import org.kie.dmn.api.core.DMNResult;
-import org.kie.dmn.api.core.DMNRuntime;
+import org.kie.efesto.common.api.model.GeneratedResources;
 import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.annotations.Level;
+import org.openjdk.jmh.annotations.BenchmarkMode;
 import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
 import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.Warmup;
 
-@Warmup(iterations = 100)
-@Measurement(iterations = 50)
-public class DMNEvaluateContextBenchmark extends AbstractBenchmark {
+import java.io.StringReader;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
-    @Param({"1000"})
-    private int numberOfDecisionsWithContext;
+@BenchmarkMode(Mode.AverageTime)
+@Warmup(iterations = 40, time = 2, timeUnit = TimeUnit.SECONDS)
+@Measurement(iterations = 15, time = 2, timeUnit = TimeUnit.SECONDS)
+public class DMNCompilationContextBenchmark extends DMNEfestoAbstractBenchmark 
{
 
+    private String dmn;
     private Resource dmnResource;
-    private DMNRuntime dmnRuntime;
-    private DMNModel dmnModel;
-    private DMNContext dmnContext;
+    private String modelName;
 
-    @Setup
-    public void setupResource() throws IOException {
-        final DMNProvider dmnProvider = new ContextDMNProvider();
-        dmnResource = KieServices.get().getResources()
-                .newReaderResource(new 
StringReader(dmnProvider.getDMN(numberOfDecisionsWithContext)))
-                .setResourceType(ResourceType.DMN)
-                .setSourcePath("dmnFile.dmn");
-        dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"dmn-context");
-    }
+    @Param({"3000"})
+    private int numberOfDecisionsWithContext;
 
-    @Setup(Level.Iteration)
+    @Setup
     @Override
     public void setup() throws ProviderException {
-        dmnContext = dmnRuntime.newContext();
+        DMNProvider dmnProvider = new ContextDMNProvider();
+        dmn = dmnProvider.getDMN(numberOfDecisionsWithContext);
+        dmnResource = new ReaderResource(new StringReader(dmn))
+                .setResourceType(ResourceType.DMN)
+                .setSourcePath("dmnFile.dmn");
+        modelName = dmnProvider.getModelName();
     }
 
     @Benchmark
-    public DMNResult evaluateContext() {
-        return dmnRuntime.evaluateAll(dmnModel, dmnContext);
+    public Map<String, GeneratedResources> testGetGeneratedResourcesMap() {
+        return compileModel(dmnResource, modelName);
     }
 }
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationDecisionBenchmark.java
similarity index 56%
copy from 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionBenchmark.java
copy to 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationDecisionBenchmark.java
index 0c21b5c4..de46c1e7 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationDecisionBenchmark.java
@@ -17,62 +17,53 @@
  * under the License. 
  */
 
-package org.drools.benchmarks.dmn.runtime;
+package org.drools.benchmarks.dmn.efesto.compilation;
 
-import java.io.IOException;
-import java.io.StringReader;
-
-import org.drools.benchmarks.common.AbstractBenchmark;
 import org.drools.benchmarks.common.DMNProvider;
 import org.drools.benchmarks.common.ProviderException;
 import org.drools.benchmarks.common.providers.dmn.DecisionDMNProvider;
-import org.drools.benchmarks.dmn.util.DMNUtil;
-import org.kie.api.KieServices;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.drools.io.ReaderResource;
 import org.kie.api.io.Resource;
 import org.kie.api.io.ResourceType;
-import org.kie.dmn.api.core.DMNContext;
-import org.kie.dmn.api.core.DMNModel;
-import org.kie.dmn.api.core.DMNResult;
-import org.kie.dmn.api.core.DMNRuntime;
+import org.kie.efesto.common.api.model.GeneratedResources;
 import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.annotations.Level;
+import org.openjdk.jmh.annotations.BenchmarkMode;
 import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
 import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.Warmup;
 
-@Warmup(iterations = 300)
-@Measurement(iterations = 50)
-public class DMNEvaluateDecisionBenchmark extends AbstractBenchmark {
+import java.io.StringReader;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
-    @Param({"1000"})
-    private int numberOfDecisions;
+@BenchmarkMode(Mode.AverageTime)
+@Warmup(iterations = 40, time = 2, timeUnit = TimeUnit.SECONDS)
+@Measurement(iterations = 15, time = 2, timeUnit = TimeUnit.SECONDS)
+public class DMNCompilationDecisionBenchmark extends 
DMNEfestoAbstractBenchmark {
 
+    private String dmn;
     private Resource dmnResource;
-    private DMNRuntime dmnRuntime;
-    private DMNModel dmnModel;
-    private DMNContext dmnContext;
+    private String modelName;
+
+    @Param({"3000"})
+    private int numberOfDecisions;
 
     @Setup
-    public void setupResource() throws IOException {
+    @Override
+    public void setup() throws ProviderException {
         final DMNProvider dmnProvider = new DecisionDMNProvider();
-        dmnResource = KieServices.get().getResources()
-                .newReaderResource(new 
StringReader(dmnProvider.getDMN(numberOfDecisions)))
+        dmn = dmnProvider.getDMN(numberOfDecisions);
+        dmnResource = new ReaderResource(new StringReader(dmn))
                 .setResourceType(ResourceType.DMN)
                 .setSourcePath("dmnFile.dmn");
-        dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = 
dmnRuntime.getModel("https://github.com/kiegroup/drools/kie-dmn";, "decision");
-    }
-
-    @Setup(Level.Iteration)
-    @Override
-    public void setup() throws ProviderException {
-        dmnContext = dmnRuntime.newContext();
-        dmnContext.set("Full Name", "John Doe");
+        modelName = dmnProvider.getModelName();
     }
 
     @Benchmark
-    public DMNResult evaluateDecision() {
-        return dmnRuntime.evaluateAll(dmnModel, dmnContext);
+    public Map<String, GeneratedResources> testGetGeneratedResourcesMap() {
+        return compileModel(dmnResource, modelName);
     }
 }
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTableBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationDecisionTableBenchmark.java
similarity index 54%
copy from 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTableBenchmark.java
copy to 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationDecisionTableBenchmark.java
index b8455c6d..47e56ade 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTableBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationDecisionTableBenchmark.java
@@ -17,65 +17,53 @@
  * under the License. 
  */
 
-package org.drools.benchmarks.dmn.runtime;
+package org.drools.benchmarks.dmn.efesto.compilation;
 
-import java.io.IOException;
-import java.io.StringReader;
-import java.math.BigDecimal;
-
-import org.drools.benchmarks.common.AbstractBenchmark;
 import org.drools.benchmarks.common.DMNProvider;
 import org.drools.benchmarks.common.ProviderException;
 import org.drools.benchmarks.common.providers.dmn.DecisionTableDMNProvider;
-import org.drools.benchmarks.dmn.util.DMNUtil;
-import org.kie.api.KieServices;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.drools.io.ReaderResource;
 import org.kie.api.io.Resource;
 import org.kie.api.io.ResourceType;
-import org.kie.dmn.api.core.DMNContext;
-import org.kie.dmn.api.core.DMNModel;
-import org.kie.dmn.api.core.DMNResult;
-import org.kie.dmn.api.core.DMNRuntime;
+import org.kie.efesto.common.api.model.GeneratedResources;
 import org.openjdk.jmh.annotations.Benchmark;
-import org.openjdk.jmh.annotations.Level;
+import org.openjdk.jmh.annotations.BenchmarkMode;
 import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
 import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.Warmup;
 
-@Warmup(iterations = 40000)
-@Measurement(iterations = 5000)
-public class DMNEvaluateDecisionTableBenchmark extends AbstractBenchmark {
+import java.io.StringReader;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
-    @Param({"1000"})
-    private int numberOfDecisionTableRules;
+@BenchmarkMode(Mode.AverageTime)
+@Warmup(iterations = 40, time = 2, timeUnit = TimeUnit.SECONDS)
+@Measurement(iterations = 15, time = 2, timeUnit = TimeUnit.SECONDS)
+public class DMNCompilationDecisionTableBenchmark extends 
DMNEfestoAbstractBenchmark {
 
+    private String dmn;
     private Resource dmnResource;
-    private DMNRuntime dmnRuntime;
-    private DMNModel dmnModel;
-    private DMNContext dmnContext;
+    private String modelName;
+
+    @Param({"3000"})
+    private int numberOfDecisionTableRules;
 
     @Setup
-    public void setupResource() throws IOException {
+    @Override
+    public void setup() throws ProviderException {
         final DMNProvider dmnProvider = new DecisionTableDMNProvider();
-        dmnResource = KieServices.get().getResources()
-                .newReaderResource(new 
StringReader(dmnProvider.getDMN(numberOfDecisionTableRules)))
+        dmn = dmnProvider.getDMN(numberOfDecisionTableRules);
+        dmnResource = new ReaderResource(new StringReader(dmn))
                 .setResourceType(ResourceType.DMN)
                 .setSourcePath("dmnFile.dmn");
-        dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"decision-table-name");
-    }
-
-    @Setup(Level.Iteration)
-    @Override
-    public void setup() throws ProviderException {
-        dmnContext = dmnRuntime.newContext();
-        dmnContext.set("Age", BigDecimal.valueOf(18));
-        dmnContext.set("RiskCategory", "Medium");
-        dmnContext.set("isAffordable", true);
+        modelName = dmnProvider.getModelName();
     }
 
     @Benchmark
-    public DMNResult evaluateDecisionTable() {
-        return dmnRuntime.evaluateAll(dmnModel, dmnContext);
+    public Map<String, GeneratedResources> testGetGeneratedResourcesMap() {
+        return compileModel(dmnResource, modelName);
     }
 }
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationMultipleBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationMultipleBenchmark.java
new file mode 100644
index 00000000..7e933b91
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/compilation/DMNCompilationMultipleBenchmark.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.drools.benchmarks.dmn.efesto.compilation;
+
+import org.drools.benchmarks.common.ProviderException;
+import 
org.drools.benchmarks.common.providers.dmn.BusinessKnowledgeModelDMNProvider;
+import org.drools.benchmarks.common.providers.dmn.ContextDMNProvider;
+import org.drools.benchmarks.common.providers.dmn.DecisionDMNProvider;
+import org.drools.benchmarks.common.providers.dmn.DecisionTableDMNProvider;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.drools.io.ClassPathResource;
+import org.drools.io.ReaderResource;
+import org.kie.api.io.Resource;
+import org.kie.api.io.ResourceType;
+import org.kie.dmn.api.core.DMNRuntime;
+import org.kie.dmn.core.internal.utils.DMNRuntimeBuilder;
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.BenchmarkMode;
+import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Mode;
+import org.openjdk.jmh.annotations.OutputTimeUnit;
+import org.openjdk.jmh.annotations.Scope;
+import org.openjdk.jmh.annotations.Setup;
+import org.openjdk.jmh.annotations.State;
+import org.openjdk.jmh.annotations.Warmup;
+
+import java.io.StringReader;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+@BenchmarkMode(Mode.AverageTime)
+@State(Scope.Thread)
+@Warmup(iterations = 40, time = 2, timeUnit = TimeUnit.SECONDS)
+@Measurement(iterations = 15, time = 2, timeUnit = TimeUnit.SECONDS)
+@OutputTimeUnit(TimeUnit.MILLISECONDS)
+public class DMNCompilationMultipleBenchmark extends 
DMNEfestoAbstractBenchmark {
+
+    private Resource resource1;
+
+    private String dmn1;
+    private String dmn2;
+    private String dmn3;
+    private String dmn4;
+
+    @Setup
+    public void setup() throws ProviderException {
+        resource1 = new ClassPathResource("dmn/ch11MODIFIED.dmn");
+        resource1.setResourceType(ResourceType.DMN);
+
+        dmn1 = new BusinessKnowledgeModelDMNProvider().getDMN(1000);
+        dmn2 = new DecisionTableDMNProvider().getDMN(1000);
+        dmn3 = new DecisionDMNProvider().getDMN(1000);
+        dmn4 = new ContextDMNProvider().getDMN(1000);
+    }
+
+    @Benchmark
+    public DMNRuntime createDMNRuntime() {
+        List<Resource> dmnResources = Arrays.asList(resource1,
+                getDMNResource(dmn1, "bkm.dmn"),
+                getDMNResource(dmn2, "decisionTable.dmn"),
+                getDMNResource(dmn3, "decision.dmn"),
+                getDMNResource(dmn4, "context.dmn"));
+        return DMNRuntimeBuilder.fromDefaults()
+                .buildConfiguration()
+                .fromResources(dmnResources)
+                .getOrElseThrow(e -> new RuntimeException("Error initializing 
DMNRuntime", e));
+    }
+
+    private Resource getDMNResource(String dmn, final String sourcePath) {
+        return new ReaderResource(new StringReader(dmn))
+                .setResourceType(ResourceType.DMN)
+                .setSourcePath(sourcePath);
+    }
+}
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateContextBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateContextBenchmark.java
similarity index 53%
copy from 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateContextBenchmark.java
copy to 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateContextBenchmark.java
index a60a1281..d72a3bc3 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateContextBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateContextBenchmark.java
@@ -6,34 +6,24 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
- * under the License. 
+ * under the License.
  */
 
-package org.drools.benchmarks.dmn.runtime;
+package org.drools.benchmarks.dmn.efesto.runtime;
 
-import java.io.IOException;
-import java.io.StringReader;
-
-import org.drools.benchmarks.common.AbstractBenchmark;
 import org.drools.benchmarks.common.DMNProvider;
 import org.drools.benchmarks.common.ProviderException;
 import org.drools.benchmarks.common.providers.dmn.ContextDMNProvider;
-import org.drools.benchmarks.dmn.util.DMNUtil;
-import org.kie.api.KieServices;
-import org.kie.api.io.Resource;
-import org.kie.api.io.ResourceType;
-import org.kie.dmn.api.core.DMNContext;
-import org.kie.dmn.api.core.DMNModel;
-import org.kie.dmn.api.core.DMNResult;
-import org.kie.dmn.api.core.DMNRuntime;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.kie.efesto.runtimemanager.api.model.EfestoOutput;
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.Level;
 import org.openjdk.jmh.annotations.Measurement;
@@ -41,37 +31,34 @@ import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.Warmup;
 
+import java.util.Collection;
+
 @Warmup(iterations = 100)
 @Measurement(iterations = 50)
-public class DMNEvaluateContextBenchmark extends AbstractBenchmark {
+@SuppressWarnings({"unchecked", "rawtypes"})
+public class DMNEvaluateContextBenchmark extends DMNEfestoAbstractBenchmark {
 
     @Param({"1000"})
     private int numberOfDecisionsWithContext;
 
-    private Resource dmnResource;
-    private DMNRuntime dmnRuntime;
-    private DMNModel dmnModel;
-    private DMNContext dmnContext;
-
     @Setup
-    public void setupResource() throws IOException {
+    public void setupResource() {
         final DMNProvider dmnProvider = new ContextDMNProvider();
-        dmnResource = KieServices.get().getResources()
-                .newReaderResource(new 
StringReader(dmnProvider.getDMN(numberOfDecisionsWithContext)))
-                .setResourceType(ResourceType.DMN)
-                .setSourcePath("dmnFile.dmn");
-        dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"dmn-context");
+        String dmn = dmnProvider.getDMN(numberOfDecisionsWithContext);
+        String modelName = dmnProvider.getModelName();
+        generatedResources = compileModel(dmn, modelName);
+        modelLocalUriId = getModelLocalUriId(generatedResources);
     }
 
     @Setup(Level.Iteration)
     @Override
     public void setup() throws ProviderException {
-        dmnContext = dmnRuntime.newContext();
+        inputData = getInputData();
+        runtimeContext = getRuntimeContext(generatedResources, 
modelLocalUriId);
     }
 
     @Benchmark
-    public DMNResult evaluateContext() {
-        return dmnRuntime.evaluateAll(dmnModel, dmnContext);
+    public Collection<EfestoOutput> evaluateContext() {
+        return evaluate(runtimeContext, modelLocalUriId, inputData);
     }
 }
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateDecisionBenchmark.java
similarity index 54%
copy from 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionBenchmark.java
copy to 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateDecisionBenchmark.java
index 0c21b5c4..c13e0173 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateDecisionBenchmark.java
@@ -17,23 +17,13 @@
  * under the License. 
  */
 
-package org.drools.benchmarks.dmn.runtime;
+package org.drools.benchmarks.dmn.efesto.runtime;
 
-import java.io.IOException;
-import java.io.StringReader;
-
-import org.drools.benchmarks.common.AbstractBenchmark;
 import org.drools.benchmarks.common.DMNProvider;
 import org.drools.benchmarks.common.ProviderException;
 import org.drools.benchmarks.common.providers.dmn.DecisionDMNProvider;
-import org.drools.benchmarks.dmn.util.DMNUtil;
-import org.kie.api.KieServices;
-import org.kie.api.io.Resource;
-import org.kie.api.io.ResourceType;
-import org.kie.dmn.api.core.DMNContext;
-import org.kie.dmn.api.core.DMNModel;
-import org.kie.dmn.api.core.DMNResult;
-import org.kie.dmn.api.core.DMNRuntime;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.kie.efesto.runtimemanager.api.model.EfestoOutput;
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.Level;
 import org.openjdk.jmh.annotations.Measurement;
@@ -41,38 +31,35 @@ import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.Warmup;
 
+import java.util.Collection;
+
 @Warmup(iterations = 300)
 @Measurement(iterations = 50)
-public class DMNEvaluateDecisionBenchmark extends AbstractBenchmark {
+@SuppressWarnings({"unchecked", "rawtypes"})
+public class DMNEvaluateDecisionBenchmark extends DMNEfestoAbstractBenchmark {
 
     @Param({"1000"})
     private int numberOfDecisions;
 
-    private Resource dmnResource;
-    private DMNRuntime dmnRuntime;
-    private DMNModel dmnModel;
-    private DMNContext dmnContext;
-
     @Setup
-    public void setupResource() throws IOException {
+    public void setupResource() {
         final DMNProvider dmnProvider = new DecisionDMNProvider();
-        dmnResource = KieServices.get().getResources()
-                .newReaderResource(new 
StringReader(dmnProvider.getDMN(numberOfDecisions)))
-                .setResourceType(ResourceType.DMN)
-                .setSourcePath("dmnFile.dmn");
-        dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = 
dmnRuntime.getModel("https://github.com/kiegroup/drools/kie-dmn";, "decision");
+        String dmn = dmnProvider.getDMN(numberOfDecisions);
+        String modelName = dmnProvider.getModelName();
+        generatedResources = compileModel(dmn, modelName);
+        modelLocalUriId = getModelLocalUriId(generatedResources);
     }
 
     @Setup(Level.Iteration)
     @Override
     public void setup() throws ProviderException {
-        dmnContext = dmnRuntime.newContext();
-        dmnContext.set("Full Name", "John Doe");
+        inputData = getInputData();
+        inputData.put("Full Name", "John Doe");
+        runtimeContext = getRuntimeContext(generatedResources, 
modelLocalUriId);
     }
 
     @Benchmark
-    public DMNResult evaluateDecision() {
-        return dmnRuntime.evaluateAll(dmnModel, dmnContext);
+    public Collection<EfestoOutput> evaluateDecision() {
+        return evaluate(runtimeContext, modelLocalUriId, inputData);
     }
 }
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTableBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateDecisionTableBenchmark.java
similarity index 51%
copy from 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTableBenchmark.java
copy to 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateDecisionTableBenchmark.java
index b8455c6d..020bb8db 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTableBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateDecisionTableBenchmark.java
@@ -6,35 +6,24 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
- * under the License. 
+ * under the License.
  */
 
-package org.drools.benchmarks.dmn.runtime;
+package org.drools.benchmarks.dmn.efesto.runtime;
 
-import java.io.IOException;
-import java.io.StringReader;
-import java.math.BigDecimal;
-
-import org.drools.benchmarks.common.AbstractBenchmark;
 import org.drools.benchmarks.common.DMNProvider;
 import org.drools.benchmarks.common.ProviderException;
 import org.drools.benchmarks.common.providers.dmn.DecisionTableDMNProvider;
-import org.drools.benchmarks.dmn.util.DMNUtil;
-import org.kie.api.KieServices;
-import org.kie.api.io.Resource;
-import org.kie.api.io.ResourceType;
-import org.kie.dmn.api.core.DMNContext;
-import org.kie.dmn.api.core.DMNModel;
-import org.kie.dmn.api.core.DMNResult;
-import org.kie.dmn.api.core.DMNRuntime;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.kie.efesto.runtimemanager.api.model.EfestoOutput;
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.Level;
 import org.openjdk.jmh.annotations.Measurement;
@@ -42,40 +31,38 @@ import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.Warmup;
 
+import java.math.BigDecimal;
+import java.util.Collection;
+
 @Warmup(iterations = 40000)
 @Measurement(iterations = 5000)
-public class DMNEvaluateDecisionTableBenchmark extends AbstractBenchmark {
+@SuppressWarnings({"unchecked", "rawtypes"})
+public class DMNEvaluateDecisionTableBenchmark extends 
DMNEfestoAbstractBenchmark {
 
     @Param({"1000"})
     private int numberOfDecisionTableRules;
 
-    private Resource dmnResource;
-    private DMNRuntime dmnRuntime;
-    private DMNModel dmnModel;
-    private DMNContext dmnContext;
-
     @Setup
-    public void setupResource() throws IOException {
+    public void setupResource() {
         final DMNProvider dmnProvider = new DecisionTableDMNProvider();
-        dmnResource = KieServices.get().getResources()
-                .newReaderResource(new 
StringReader(dmnProvider.getDMN(numberOfDecisionTableRules)))
-                .setResourceType(ResourceType.DMN)
-                .setSourcePath("dmnFile.dmn");
-        dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"decision-table-name");
+        String dmn = dmnProvider.getDMN(numberOfDecisionTableRules);
+        String modelName = dmnProvider.getModelName();
+        generatedResources = compileModel(dmn, modelName);
+        modelLocalUriId = getModelLocalUriId(generatedResources);
     }
 
     @Setup(Level.Iteration)
     @Override
     public void setup() throws ProviderException {
-        dmnContext = dmnRuntime.newContext();
-        dmnContext.set("Age", BigDecimal.valueOf(18));
-        dmnContext.set("RiskCategory", "Medium");
-        dmnContext.set("isAffordable", true);
+        inputData = getInputData();
+        inputData.put("Age", BigDecimal.valueOf(18));
+        inputData.put("RiskCategory", "Medium");
+        inputData.put("isAffordable", true);
+        runtimeContext = getRuntimeContext(generatedResources, 
modelLocalUriId);
     }
 
     @Benchmark
-    public DMNResult evaluateDecisionTable() {
-        return dmnRuntime.evaluateAll(dmnModel, dmnContext);
+    public Collection<EfestoOutput> evaluateDecisionTable() {
+        return evaluate(runtimeContext, modelLocalUriId, inputData);
     }
 }
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTablesSparseBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateDecisionTablesSparseBenchmark.java
similarity index 57%
copy from 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTablesSparseBenchmark.java
copy to 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateDecisionTablesSparseBenchmark.java
index c8604caf..50bb590c 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTablesSparseBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateDecisionTablesSparseBenchmark.java
@@ -17,48 +17,33 @@
  * under the License. 
  */
 
-package org.drools.benchmarks.dmn.runtime;
+package org.drools.benchmarks.dmn.efesto.runtime;
 
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.Scanner;
-
-import org.drools.benchmarks.common.AbstractBenchmark;
 import org.drools.benchmarks.common.DMNProvider;
 import org.drools.benchmarks.common.ProviderException;
 import org.drools.benchmarks.common.providers.dmn.DecisionTablesDMNProvider;
-import org.drools.benchmarks.dmn.util.DMNUtil;
-import org.kie.api.KieServices;
-import org.kie.api.io.Resource;
-import org.kie.api.io.ResourceType;
-import org.kie.dmn.api.core.DMNContext;
-import org.kie.dmn.api.core.DMNModel;
-import org.kie.dmn.api.core.DMNResult;
-import org.kie.dmn.api.core.DMNRuntime;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.kie.efesto.runtimemanager.api.model.EfestoOutput;
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.Level;
 import org.openjdk.jmh.annotations.Measurement;
 import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.Warmup;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
+import java.util.Collection;
+import java.util.Scanner;
 
 @Warmup(iterations = 200)
 @Measurement(iterations = 50)
-public class DMNEvaluateDecisionTablesSparseBenchmark extends 
AbstractBenchmark {
-
-    private static final Logger LOG = 
LoggerFactory.getLogger(DMNEvaluateDecisionTablesSparseBenchmark.class);
+@SuppressWarnings({"unchecked", "rawtypes"})
+public class DMNEvaluateDecisionTablesSparseBenchmark extends 
DMNEfestoAbstractBenchmark {
 
     @Param({"500"})
     private int numberOfElements;
     @Param({"1", "2", "50"})
     private int sparseness;
-
-    private Resource dmnResource;
-    private DMNRuntime dmnRuntime;
-    private DMNModel dmnModel;
-    private DMNContext dmnContext;
+    
 
     public static void main(String[] args) throws Exception {
         try (Scanner scanner = new Scanner(System.in)) {
@@ -76,35 +61,30 @@ public class DMNEvaluateDecisionTablesSparseBenchmark 
extends AbstractBenchmark
     }
 
     @Setup
-    public void setupResource() throws IOException {
+    public void setupResource() {
         final DMNProvider dmnProvider = new DecisionTablesDMNProvider();
-        String dmnContent = dmnProvider.getDMN(numberOfElements);
-        LOG.debug("{}", dmnContent);
-        dmnResource = KieServices.get().getResources()
-                .newReaderResource(new StringReader(dmnContent))
-                .setResourceType(ResourceType.DMN)
-                .setSourcePath("dmnFile.dmn");
-        dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"decision-table-name");
+        String dmn = dmnProvider.getDMN(numberOfElements);
+        String modelName = dmnProvider.getModelName();
+        generatedResources = compileModel(dmn, modelName);
+        modelLocalUriId = getModelLocalUriId(generatedResources);
     }
 
     @Setup(Level.Iteration)
     @Override
     public void setup() throws ProviderException {
-        dmnContext = dmnRuntime.newContext();
+        inputData = getInputData();
         for (int i = 0; i < numberOfElements; i++) {
             if (i % sparseness == 0) {
-                dmnContext.set("leftInput_" + i, "a");
-                dmnContext.set("rightInput_" + i, "x");
+                inputData.put("leftInput_" + i, "a");
+                inputData.put("rightInput_" + i, "x");
             }
         }
+        runtimeContext = getRuntimeContext(generatedResources, 
modelLocalUriId);
     }
 
     @Benchmark
-    public DMNResult evaluateDecision() {
-        DMNResult evaluateAll = dmnRuntime.evaluateAll(dmnModel, dmnContext);
-        LOG.debug("{}", evaluateAll);
-        return evaluateAll;
+    public Collection<EfestoOutput> evaluateDecision() {
+        return evaluate(runtimeContext, modelLocalUriId, inputData);
     }
 }
 
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateFewLiteralDecisionBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateFewLiteralDecisionBenchmark.java
similarity index 53%
copy from 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateFewLiteralDecisionBenchmark.java
copy to 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateFewLiteralDecisionBenchmark.java
index e4aaa9e0..6308bf0a 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateFewLiteralDecisionBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateFewLiteralDecisionBenchmark.java
@@ -6,34 +6,24 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
- * under the License. 
+ * under the License.
  */
 
-package org.drools.benchmarks.dmn.runtime;
+package org.drools.benchmarks.dmn.efesto.runtime;
 
-import java.io.IOException;
-import java.io.StringReader;
-
-import org.drools.benchmarks.common.AbstractBenchmark;
 import org.drools.benchmarks.common.DMNProvider;
 import org.drools.benchmarks.common.ProviderException;
 import org.drools.benchmarks.common.providers.dmn.DecisionDMNProvider;
-import org.drools.benchmarks.dmn.util.DMNUtil;
-import org.kie.api.KieServices;
-import org.kie.api.io.Resource;
-import org.kie.api.io.ResourceType;
-import org.kie.dmn.api.core.DMNContext;
-import org.kie.dmn.api.core.DMNModel;
-import org.kie.dmn.api.core.DMNResult;
-import org.kie.dmn.api.core.DMNRuntime;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.kie.efesto.runtimemanager.api.model.EfestoOutput;
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.Level;
 import org.openjdk.jmh.annotations.Measurement;
@@ -41,38 +31,36 @@ import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.Warmup;
 
+import java.util.Collection;
+
 @Warmup(iterations = 5000)
 @Measurement(iterations = 2000)
-public class DMNEvaluateFewLiteralDecisionBenchmark extends AbstractBenchmark {
+@SuppressWarnings({"unchecked", "rawtypes"})
+public class DMNEvaluateFewLiteralDecisionBenchmark extends 
DMNEfestoAbstractBenchmark {
 
     @Param({"20", "50", "100"})
     private int numberOfDecisions;
 
-    private Resource dmnResource;
-    private DMNRuntime dmnRuntime;
-    private DMNModel dmnModel;
-    private DMNContext dmnContext;
 
     @Setup
-    public void setupResource() throws IOException {
+    public void setupResource() {
         final DMNProvider dmnProvider = new DecisionDMNProvider();
-        dmnResource = KieServices.get().getResources()
-                .newReaderResource(new 
StringReader(dmnProvider.getDMN(numberOfDecisions)))
-                .setResourceType(ResourceType.DMN)
-                .setSourcePath("dmnFile.dmn");
-        dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = 
dmnRuntime.getModel("https://github.com/kiegroup/drools/kie-dmn";, "decision");
+        String dmn = dmnProvider.getDMN(numberOfDecisions);
+        String modelName = dmnProvider.getModelName();
+        generatedResources = compileModel(dmn, modelName);
+        modelLocalUriId = getModelLocalUriId(generatedResources);
     }
 
     @Setup(Level.Iteration)
     @Override
     public void setup() throws ProviderException {
-        dmnContext = dmnRuntime.newContext();
-        dmnContext.set("Full Name", "John Doe");
+        inputData = getInputData();
+        inputData.put("Full Name", "John Doe");
+        runtimeContext = getRuntimeContext(generatedResources, 
modelLocalUriId);
     }
 
     @Benchmark
-    public DMNResult evaluateDecision() {
-        return dmnRuntime.evaluateAll(dmnModel, dmnContext);
+    public Collection<EfestoOutput> evaluateDecision() {
+        return evaluate(runtimeContext, modelLocalUriId, inputData);
     }
 }
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluatePojoInputBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluatePojoInputBenchmark.java
new file mode 100644
index 00000000..53bd3caa
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluatePojoInputBenchmark.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License. 
+ */
+
+package org.drools.benchmarks.dmn.efesto.runtime;
+
+import org.drools.benchmarks.common.ProviderException;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.drools.benchmarks.dmn.runtime.model.Person;
+import org.kie.efesto.runtimemanager.api.model.EfestoOutput;
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.Level;
+import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Param;
+import org.openjdk.jmh.annotations.Scope;
+import org.openjdk.jmh.annotations.Setup;
+import org.openjdk.jmh.annotations.State;
+import org.openjdk.jmh.annotations.Warmup;
+
+import java.util.Collection;
+import java.util.concurrent.atomic.AtomicInteger;
+
+@Warmup(iterations = 40000)
+@Measurement(iterations = 10000)
+@SuppressWarnings({"unchecked", "rawtypes"})
+public class DMNEvaluatePojoInputBenchmark extends DMNEfestoAbstractBenchmark {
+
+    @Param({"dmn/pojo-input.dmn"})
+    private String resourceName;
+
+
+    @State(Scope.Benchmark)
+    public static class IterationCounter {
+        public static AtomicInteger value = new AtomicInteger(0);
+    }
+
+    @Setup
+    public void setupResource() {
+        String dmn = getDmnContent(resourceName);
+        String modelName = "20180731-pr1997";
+        generatedResources = compileModel(dmn, modelName);
+        modelLocalUriId = getModelLocalUriId(generatedResources);
+    }
+
+    @Setup(Level.Iteration)
+    @Override
+    public void setup() throws ProviderException {
+        inputData = getInputData();
+        inputData.put("a Person", new Person("John", "Doe", 
IterationCounter.value.incrementAndGet()));
+        runtimeContext = getRuntimeContext(generatedResources, 
modelLocalUriId);
+    }
+
+    @Benchmark
+    public Collection<EfestoOutput> evaluateModel() {
+        return evaluate(runtimeContext, modelLocalUriId, inputData);
+    }
+}
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateTriangularNumHardBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateTriangularNumHardBenchmark.java
similarity index 55%
copy from 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateTriangularNumHardBenchmark.java
copy to 
drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateTriangularNumHardBenchmark.java
index 0cedce10..cabc8bf3 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateTriangularNumHardBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNEvaluateTriangularNumHardBenchmark.java
@@ -17,23 +17,13 @@
  * under the License. 
  */
 
-package org.drools.benchmarks.dmn.runtime;
+package org.drools.benchmarks.dmn.efesto.runtime;
 
-import java.io.IOException;
-import java.io.StringReader;
-
-import org.drools.benchmarks.common.AbstractBenchmark;
 import org.drools.benchmarks.common.DMNProvider;
 import org.drools.benchmarks.common.ProviderException;
 import org.drools.benchmarks.common.providers.dmn.TriangularNumHardDMNProvider;
-import org.drools.benchmarks.dmn.util.DMNUtil;
-import org.kie.api.KieServices;
-import org.kie.api.io.Resource;
-import org.kie.api.io.ResourceType;
-import org.kie.dmn.api.core.DMNContext;
-import org.kie.dmn.api.core.DMNModel;
-import org.kie.dmn.api.core.DMNResult;
-import org.kie.dmn.api.core.DMNRuntime;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.kie.efesto.runtimemanager.api.model.EfestoOutput;
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.Level;
 import org.openjdk.jmh.annotations.Measurement;
@@ -41,37 +31,34 @@ import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.Warmup;
 
+import java.util.Collection;
+
 @Warmup(iterations = 50000)
 @Measurement(iterations = 10000)
-public class DMNEvaluateTriangularNumHardBenchmark extends AbstractBenchmark {
+@SuppressWarnings({"unchecked", "rawtypes"})
+public class DMNEvaluateTriangularNumHardBenchmark extends 
DMNEfestoAbstractBenchmark {
 
     @Param({"20", "50"})
     private int numberOfDecisionsWithContext;
 
-    private Resource dmnResource;
-    private DMNRuntime dmnRuntime;
-    private DMNModel dmnModel;
-    private DMNContext dmnContext;
-
     @Setup
-    public void setupResource() throws IOException {
+    public void setupResource() {
         final DMNProvider dmnProvider = new TriangularNumHardDMNProvider();
-        dmnResource = KieServices.get().getResources()
-                .newReaderResource(new 
StringReader(dmnProvider.getDMN(numberOfDecisionsWithContext)))
-                .setResourceType(ResourceType.DMN)
-                .setSourcePath("dmnFile.dmn");
-        dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"dmn-triangular");
+        String dmn = dmnProvider.getDMN(numberOfDecisionsWithContext);
+        String modelName = dmnProvider.getModelName();
+        generatedResources = compileModel(dmn, modelName);
+        modelLocalUriId = getModelLocalUriId(generatedResources);
     }
 
     @Setup(Level.Iteration)
     @Override
     public void setup() throws ProviderException {
-        dmnContext = dmnRuntime.newContext();
+        inputData = getInputData();
+        runtimeContext = getRuntimeContext(generatedResources, 
modelLocalUriId);
     }
 
     @Benchmark
-    public DMNResult evaluateContext() {
-        return dmnRuntime.evaluateAll(dmnModel, dmnContext);
+    public Collection<EfestoOutput> evaluateContext() {
+        return evaluate(runtimeContext, modelLocalUriId, inputData);
     }
 }
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNRuntimeBKModelBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNRuntimeBKModelBenchmark.java
new file mode 100644
index 00000000..1bcce639
--- /dev/null
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/efesto/runtime/DMNRuntimeBKModelBenchmark.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.drools.benchmarks.dmn.efesto.runtime;
+
+import org.drools.benchmarks.common.DMNProvider;
+import org.drools.benchmarks.common.ProviderException;
+import 
org.drools.benchmarks.common.providers.dmn.BusinessKnowledgeModelDMNProvider;
+import org.drools.benchmarks.dmn.efesto.DMNEfestoAbstractBenchmark;
+import org.kie.efesto.runtimemanager.api.model.EfestoOutput;
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.Fork;
+import org.openjdk.jmh.annotations.Level;
+import org.openjdk.jmh.annotations.Measurement;
+import org.openjdk.jmh.annotations.Param;
+import org.openjdk.jmh.annotations.Setup;
+import org.openjdk.jmh.annotations.Warmup;
+
+import java.util.Collection;
+
+@Warmup(iterations = 100)
+@Measurement(iterations = 50)
+@Fork(value = 0)
+@SuppressWarnings({"unchecked", "rawtypes"})
+public class DMNRuntimeBKModelBenchmark extends DMNEfestoAbstractBenchmark {
+
+    @Param({"1000"})
+    private int numberOfDecisionsWithBKM;
+
+    @Setup
+    public void setupResource() {
+        final DMNProvider dmnProvider = new 
BusinessKnowledgeModelDMNProvider();
+        String dmn = dmnProvider.getDMN(numberOfDecisionsWithBKM);
+        String modelName = dmnProvider.getModelName();
+        generatedResources = compileModel(dmn, modelName);
+        modelLocalUriId = getModelLocalUriId(generatedResources);
+    }
+
+    @Setup(Level.Iteration)
+    @Override
+    public void setup() throws ProviderException {
+        inputData = getInputData();
+        runtimeContext = getRuntimeContext(generatedResources, 
modelLocalUriId);
+    }
+
+    @Benchmark
+    public Collection<EfestoOutput> evaluateBusinessKnowledgeModel() {
+        return evaluate(runtimeContext, modelLocalUriId, inputData);
+    }
+}
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateContextBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateContextBenchmark.java
index a60a1281..3bbd5fed 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateContextBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateContextBenchmark.java
@@ -61,7 +61,7 @@ public class DMNEvaluateContextBenchmark extends 
AbstractBenchmark {
                 .setResourceType(ResourceType.DMN)
                 .setSourcePath("dmnFile.dmn");
         dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"dmn-context");
+        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
dmnProvider.getModelName());
     }
 
     @Setup(Level.Iteration)
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionBenchmark.java
index 0c21b5c4..51966201 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionBenchmark.java
@@ -61,7 +61,7 @@ public class DMNEvaluateDecisionBenchmark extends 
AbstractBenchmark {
                 .setResourceType(ResourceType.DMN)
                 .setSourcePath("dmnFile.dmn");
         dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = 
dmnRuntime.getModel("https://github.com/kiegroup/drools/kie-dmn";, "decision");
+        dmnModel = 
dmnRuntime.getModel("https://github.com/kiegroup/drools/kie-dmn";, 
dmnProvider.getModelName());
     }
 
     @Setup(Level.Iteration)
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTableBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTableBenchmark.java
index b8455c6d..cf18aef0 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTableBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTableBenchmark.java
@@ -62,7 +62,7 @@ public class DMNEvaluateDecisionTableBenchmark extends 
AbstractBenchmark {
                 .setResourceType(ResourceType.DMN)
                 .setSourcePath("dmnFile.dmn");
         dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"decision-table-name");
+        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
dmnProvider.getModelName());
     }
 
     @Setup(Level.Iteration)
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTablesSparseBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTablesSparseBenchmark.java
index c8604caf..07181109 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTablesSparseBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateDecisionTablesSparseBenchmark.java
@@ -85,7 +85,7 @@ public class DMNEvaluateDecisionTablesSparseBenchmark extends 
AbstractBenchmark
                 .setResourceType(ResourceType.DMN)
                 .setSourcePath("dmnFile.dmn");
         dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"decision-table-name");
+        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
dmnProvider.getModelName());
     }
 
     @Setup(Level.Iteration)
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateFewLiteralDecisionBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateFewLiteralDecisionBenchmark.java
index e4aaa9e0..b1519764 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateFewLiteralDecisionBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateFewLiteralDecisionBenchmark.java
@@ -61,7 +61,7 @@ public class DMNEvaluateFewLiteralDecisionBenchmark extends 
AbstractBenchmark {
                 .setResourceType(ResourceType.DMN)
                 .setSourcePath("dmnFile.dmn");
         dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = 
dmnRuntime.getModel("https://github.com/kiegroup/drools/kie-dmn";, "decision");
+        dmnModel = 
dmnRuntime.getModel("https://github.com/kiegroup/drools/kie-dmn";, 
dmnProvider.getModelName());
     }
 
     @Setup(Level.Iteration)
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateTriangularNumHardBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateTriangularNumHardBenchmark.java
index 0cedce10..ba804e73 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateTriangularNumHardBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/runtime/DMNEvaluateTriangularNumHardBenchmark.java
@@ -61,7 +61,7 @@ public class DMNEvaluateTriangularNumHardBenchmark extends 
AbstractBenchmark {
                 .setResourceType(ResourceType.DMN)
                 .setSourcePath("dmnFile.dmn");
         dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"dmn-triangular");
+        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
dmnProvider.getModelName());
     }
 
     @Setup(Level.Iteration)
diff --git 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/validation/DTNoGapsNoOverlapsBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/validation/DTNoGapsNoOverlapsBenchmark.java
index 897b9676..e554084f 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/validation/DTNoGapsNoOverlapsBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks/src/main/java/org/drools/benchmarks/dmn/validation/DTNoGapsNoOverlapsBenchmark.java
@@ -93,7 +93,7 @@ public class DTNoGapsNoOverlapsBenchmark extends 
AbstractBenchmark {
                                  .setResourceType(ResourceType.DMN)
                                  .setSourcePath("dmnFile.dmn");
         dmnRuntime = DMNUtil.getDMNRuntimeWithResources(false, dmnResource);
-        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
"dt-nogapsnooverlaps");
+        dmnModel = dmnRuntime.getModel("https://github.com/kiegroup/kie-dmn";, 
dmnProvider.getModelName());
     }
 
     @Setup(Level.Iteration)
diff --git a/drools-benchmarks-parent/pom.xml b/drools-benchmarks-parent/pom.xml
index b58e8036..b48b6073 100644
--- a/drools-benchmarks-parent/pom.xml
+++ b/drools-benchmarks-parent/pom.xml
@@ -64,6 +64,17 @@
         <artifactId>kie-pmml-dependencies</artifactId>
         <version>${version.org.drools}</version>
       </dependency>
+      <!-- TO BE MOVED INSIDE kie-dmn-bom -->
+      <dependency>
+        <groupId>org.kie</groupId>
+        <artifactId>kie-dmn-efesto-compilation</artifactId>
+        <version>${version.org.drools}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.kie</groupId>
+        <artifactId>kie-dmn-efesto-runtime</artifactId>
+        <version>${version.org.drools}</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 
@@ -112,6 +123,14 @@
       <groupId>org.kie</groupId>
       <artifactId>kie-dmn-feel</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.kie</groupId>
+      <artifactId>kie-dmn-efesto-compilation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.kie</groupId>
+      <artifactId>kie-dmn-efesto-runtime</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.kie</groupId>
       <artifactId>kie-pmml-dependencies</artifactId>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to