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

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


The following commit(s) were added to refs/heads/main by this push:
     new 0438d41360 [DROOLS-7555] move automatic rest endpoints generation from 
Kogito to Drools (#3248)
0438d41360 is described below

commit 0438d41360b23c0c3b34bb4f7ea750488779edb1
Author: Mario Fusco <[email protected]>
AuthorDate: Wed Oct 11 11:26:09 2023 +0200

    [DROOLS-7555] move automatic rest endpoints generation from Kogito to 
Drools (#3248)
---
 .../codegen/api/context/KogitoBuildContext.java    |  14 +-
 .../context/impl/AbstractKogitoBuildContext.java   |   4 +-
 .../api/context/impl/JavaKogitoBuildContext.java   |   5 +
 .../context/impl/QuarkusKogitoBuildContext.java    |   9 +-
 .../context/impl/SpringBootKogitoBuildContext.java |   9 +-
 .../api/di/DependencyInjectionAnnotator.java       | 270 ---------------------
 .../di/impl/CDIDependencyInjectionAnnotator.java   | 187 --------------
 .../impl/SpringDependencyInjectionAnnotator.java   | 190 ---------------
 .../kie/kogito/codegen/api/rest/RestAnnotator.java |  29 ---
 .../codegen/api/rest/impl/CDIRestAnnotator.java    |  43 ----
 .../codegen/api/rest/impl/SpringRestAnnotator.java |  48 ----
 .../impl/AbstractKogitoBuildContextTest.java       |   5 +
 .../prediction/PMMLRestResourceGeneratorTest.java  |   2 +-
 .../prediction/PredictionCodegenUtilsTest.java     |   2 +-
 .../codegen/rules/QueryEndpointGenerator.java      |   6 +-
 .../kie/kogito/codegen/rules/QueryGenerator.java   |   4 +-
 .../org/kie/kogito/codegen/rules/RuleCodegen.java  |  25 +-
 .../kie/kogito/codegen/rules/RuleCodegenUtils.java |  77 ------
 .../codegen/rules/RuleObjectMapperCodegen.java     |  43 ----
 .../codegen/rules/RuleUnitExtendedCodegen.java     |  12 +-
 .../kogito/codegen/rules/RuleUnitGenerator.java    |  10 -
 .../kie/kogito/codegen/rules/RuleUnitHelper.java   |  57 -----
 .../kogito/codegen/rules/RuleUnitMainCodegen.java  |  84 -------
 .../codegen/rules/RuleUnitPojoGenerator.java       |  95 --------
 .../codegen/rules/RuleUnitQueryRestCodegen.java    |  46 ----
 .../rules/KogitoObjectMapperQuarkusTemplate.java   | 131 ----------
 .../rules/KogitoObjectMapperSpringTemplate.java    | 123 ----------
 .../rules/RestQueryJavaTemplate.java               |  66 -----
 .../rules/RestQueryQuarkusTemplate.java            |  67 -----
 .../rules/RestQuerySpringTemplate.java             |  65 -----
 .../rules/RuleUnitQueryJavaTemplate.java           |  37 ---
 .../kie/kogito/codegen/rules/RuleCodegenTest.java  |   6 +-
 32 files changed, 62 insertions(+), 1709 deletions(-)

diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/KogitoBuildContext.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/KogitoBuildContext.java
index 48406f10ab..5bb7f95dc7 100644
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/KogitoBuildContext.java
+++ 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/KogitoBuildContext.java
@@ -30,13 +30,13 @@ import java.util.stream.Collectors;
 
 import org.drools.codegen.common.AppPaths;
 import org.drools.codegen.common.DroolsModelBuildContext;
+import org.drools.codegen.common.di.DependencyInjectionAnnotator;
+import org.drools.codegen.common.rest.RestAnnotator;
 import org.kie.kogito.KogitoGAV;
 import org.kie.kogito.codegen.api.AddonsConfig;
 import org.kie.kogito.codegen.api.ApplicationSection;
 import org.kie.kogito.codegen.api.Generator;
 import org.kie.kogito.codegen.api.SourceFileCodegenBindNotifier;
-import org.kie.kogito.codegen.api.di.DependencyInjectionAnnotator;
-import org.kie.kogito.codegen.api.rest.RestAnnotator;
 import org.kie.kogito.codegen.api.utils.KogitoCodeGenConstants;
 
 public interface KogitoBuildContext extends DroolsModelBuildContext {
@@ -49,11 +49,6 @@ public interface KogitoBuildContext extends 
DroolsModelBuildContext {
 
     boolean hasImplementationClassAvailable(Class<?> clazz);
 
-    /**
-     * Return DependencyInjectionAnnotator if available or null
-     */
-    DependencyInjectionAnnotator getDependencyInjectionAnnotator();
-
     /**
      * Method to override default dependency injection annotator
      */
@@ -69,11 +64,6 @@ public interface KogitoBuildContext extends 
DroolsModelBuildContext {
                 
"true".equalsIgnoreCase(getApplicationProperty(KOGITO_GENERATE_DI).orElse("true"));
     }
 
-    /**
-     * Return RestAnnotator if available or null
-     */
-    RestAnnotator getRestAnnotator();
-
     /**
      * Method to override default REST annotator
      */
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/AbstractKogitoBuildContext.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/AbstractKogitoBuildContext.java
index 75242cf28a..25a0e8794d 100644
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/AbstractKogitoBuildContext.java
+++ 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/AbstractKogitoBuildContext.java
@@ -37,14 +37,14 @@ import java.util.function.Predicate;
 import javax.lang.model.SourceVersion;
 
 import org.drools.codegen.common.AppPaths;
+import org.drools.codegen.common.di.DependencyInjectionAnnotator;
+import org.drools.codegen.common.rest.RestAnnotator;
 import org.kie.kogito.KogitoGAV;
 import org.kie.kogito.codegen.api.AddonsConfig;
 import org.kie.kogito.codegen.api.ApplicationSection;
 import org.kie.kogito.codegen.api.SourceFileCodegenBindNotifier;
 import org.kie.kogito.codegen.api.context.KogitoApplicationPropertyProvider;
 import org.kie.kogito.codegen.api.context.KogitoBuildContext;
-import org.kie.kogito.codegen.api.di.DependencyInjectionAnnotator;
-import org.kie.kogito.codegen.api.rest.RestAnnotator;
 import org.kie.kogito.codegen.api.utils.AddonsConfigDiscovery;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/JavaKogitoBuildContext.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/JavaKogitoBuildContext.java
index e0c549332b..2af68b401e 100644
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/JavaKogitoBuildContext.java
+++ 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/JavaKogitoBuildContext.java
@@ -30,6 +30,11 @@ public class JavaKogitoBuildContext extends 
AbstractKogitoBuildContext {
         return new JavaKogitoBuildContextBuilder();
     }
 
+    @Override
+    public boolean hasRest() {
+        return false;
+    }
+
     protected static class JavaKogitoBuildContextBuilder extends 
AbstractBuilder {
 
         protected JavaKogitoBuildContextBuilder() {
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/QuarkusKogitoBuildContext.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/QuarkusKogitoBuildContext.java
index 9a888b9c4e..a845270664 100644
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/QuarkusKogitoBuildContext.java
+++ 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/QuarkusKogitoBuildContext.java
@@ -18,8 +18,8 @@
  */
 package org.kie.kogito.codegen.api.context.impl;
 
-import org.kie.kogito.codegen.api.di.impl.CDIDependencyInjectionAnnotator;
-import org.kie.kogito.codegen.api.rest.impl.CDIRestAnnotator;
+import org.drools.codegen.common.di.impl.CDIDependencyInjectionAnnotator;
+import org.drools.codegen.common.rest.impl.CDIRestAnnotator;
 
 public class QuarkusKogitoBuildContext extends AbstractKogitoBuildContext {
 
@@ -35,6 +35,11 @@ public class QuarkusKogitoBuildContext extends 
AbstractKogitoBuildContext {
         return new QuarkusKogitoBuildContextBuilder();
     }
 
+    @Override
+    public boolean hasRest() {
+        return hasClassAvailable(QUARKUS_REST);
+    }
+
     protected static class QuarkusKogitoBuildContextBuilder extends 
AbstractBuilder {
 
         protected QuarkusKogitoBuildContextBuilder() {
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/SpringBootKogitoBuildContext.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/SpringBootKogitoBuildContext.java
index ddb5da3657..baa4fc4863 100644
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/SpringBootKogitoBuildContext.java
+++ 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/context/impl/SpringBootKogitoBuildContext.java
@@ -18,8 +18,8 @@
  */
 package org.kie.kogito.codegen.api.context.impl;
 
-import org.kie.kogito.codegen.api.di.impl.SpringDependencyInjectionAnnotator;
-import org.kie.kogito.codegen.api.rest.impl.SpringRestAnnotator;
+import org.drools.codegen.common.di.impl.SpringDependencyInjectionAnnotator;
+import org.drools.codegen.common.rest.impl.SpringRestAnnotator;
 
 public class SpringBootKogitoBuildContext extends AbstractKogitoBuildContext {
 
@@ -35,6 +35,11 @@ public class SpringBootKogitoBuildContext extends 
AbstractKogitoBuildContext {
         return new SpringBootKogitoBuildContextBuilder();
     }
 
+    @Override
+    public boolean hasRest() {
+        return hasClassAvailable(SPRING_REST);
+    }
+
     protected static class SpringBootKogitoBuildContextBuilder extends 
AbstractBuilder {
 
         protected SpringBootKogitoBuildContextBuilder() {
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/di/DependencyInjectionAnnotator.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/di/DependencyInjectionAnnotator.java
deleted file mode 100644
index 54db958521..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/di/DependencyInjectionAnnotator.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * 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.kie.kogito.codegen.api.di;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.github.javaparser.ast.NodeList;
-import com.github.javaparser.ast.expr.ArrayInitializerExpr;
-import com.github.javaparser.ast.expr.Expression;
-import com.github.javaparser.ast.expr.MemberValuePair;
-import com.github.javaparser.ast.expr.MethodCallExpr;
-import com.github.javaparser.ast.expr.Name;
-import com.github.javaparser.ast.expr.NameExpr;
-import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr;
-import com.github.javaparser.ast.expr.StringLiteralExpr;
-import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
-
-/**
- * Generic abstraction for dependency injection annotations that allow to
- * use different frameworks based needs.
- * <p>
- * Currently in scope
- *
- * <ul>
- * <li>CDI</li>
- * <li>Spring</li>
- * </ul>
- */
-public interface DependencyInjectionAnnotator {
-
-    /**
-     * Annotates the given node with an annotation to produce a DI instance of 
the node target class, e.g. Produces,
-     * Bean. This is used by configuration classes in the DI, like a factory 
method.
-     * 
-     * @param node
-     * @param isDefault indicates if the bean instance is created only if 
there are not any other bean of this type
-     *        already declared in the application, e.g DefaultBean
-     */
-    <T extends NodeWithAnnotations<?>> T withProduces(T node, boolean 
isDefault);
-
-    /**
-     * Annotates given node with name annotation e.g. Named, Qualifier
-     *
-     * @param node node to be annotated
-     */
-    <T extends NodeWithAnnotations<?>> T withNamed(T node, String name);
-
-    /**
-     * Annotates given node with application level annotations e.g. 
ApplicationScoped, Component
-     *
-     * @param node node to be annotated
-     */
-    <T extends NodeWithAnnotations<?>> T withApplicationComponent(T node);
-
-    /**
-     * Annotates given node with application level annotations e.g. 
ApplicationScoped, Component
-     * additionally adding name to it
-     *
-     * @param node node to be annotated
-     * @param name name to be assigned to given node
-     */
-    <T extends NodeWithAnnotations<?>> T withNamedApplicationComponent(T node, 
String name);
-
-    /**
-     * Annotates given node with singleton level annotations e.g. Singleton, 
Component
-     *
-     * @param node node to be annotated
-     */
-    <T extends NodeWithAnnotations<?>> T withSingletonComponent(T node);
-
-    /**
-     * Annotates given node with singleton level annotations e.g. Singleton, 
Component
-     * additionally adding name to it
-     *
-     * @param node node to be annotated
-     * @param name name to be assigned to given node
-     */
-    <T extends NodeWithAnnotations<?>> T withNamedSingletonComponent(T node, 
String name);
-
-    /**
-     * Annotates given node with injection annotations e.g. Inject, Autowire
-     *
-     * @param node node to be annotated
-     * @boolean forceLazyInit use lazy initialization (for those container 
that applies)
-     */
-    <T extends NodeWithAnnotations<?>> T withInjection(T node, boolean 
forceLazyInit);
-
-    /**
-     * Annotates given node with injection annotations e.g. Inject, Autowire
-     *
-     * @param node node to be annotated
-     */
-    default <T extends NodeWithAnnotations<?>> T withInjection(T node) {
-        return withInjection(node, false);
-    }
-
-    /**
-     * Annotates given node with injection annotations e.g. Inject, Autowire
-     * additionally adding name to it
-     *
-     * @param node node to be annotated
-     * @param name name to be assigned to given node
-     */
-    <T extends NodeWithAnnotations<?>> T withNamedInjection(T node, String 
name);
-
-    /**
-     * Annotates given node with optional injection annotations e.g. Inject, 
Autowire
-     *
-     * @param node node to be annotated
-     */
-    <T extends NodeWithAnnotations<?>> T withOptionalInjection(T node);
-
-    /**
-     * Annotates given node with incoming message that it should consume from
-     *
-     * @param node node to be annotated
-     * @param channel name of the channel messages should be consumer from
-     */
-    <T extends NodeWithAnnotations<?>> T withIncomingMessage(T node, String 
channel);
-
-    /**
-     * Annotates given node with outgoing message that it should send to
-     *
-     * @param node node to be annotated
-     * @param channel name of the channel messages should be send to
-     */
-    <T extends NodeWithAnnotations<?>> T withOutgoingMessage(T node, String 
channel);
-
-    /**
-     * Annotates given node with configuration parameter injection
-     *
-     * @param node node to be annotated
-     * @param configKey name of the configuration property to be injected
-     */
-    <T extends NodeWithAnnotations<?>> T withConfigInjection(T node, String 
configKey);
-
-    /**
-     * Annotates given node with configuration parameter injection with 
default value
-     *
-     * @param node node to be annotated
-     * @param configKey name of the configuration property to be injected
-     * @param defaultValue value to be used in case there is no config 
parameter defined
-     */
-    <T extends NodeWithAnnotations<?>> T withConfigInjection(T node, String 
configKey, String defaultValue);
-
-    /**
-     * Annotates and enhances method used to produce messages
-     *
-     * @param produceMethod method to be annotated
-     * @param channel channel on which messages should be produced
-     * @param event actual data to be send
-     */
-    MethodCallExpr withMessageProducer(MethodCallExpr produceMethod, String 
channel, Expression event);
-
-    /**
-     * Annotates given node with set of roles to enforce security
-     *
-     * @param node node to be annotated
-     * @param roles roles that are allowed
-     */
-    default <T extends NodeWithAnnotations<?>> T withSecurityRoles(T node, 
String[] roles) {
-        if (roles != null && roles.length > 0) {
-            List<Expression> rolesExpr = new ArrayList<>();
-
-            for (String role : roles) {
-                rolesExpr.add(new StringLiteralExpr(role.trim()));
-            }
-
-            node.addAnnotation(new SingleMemberAnnotationExpr(new 
Name("javax.annotation.security.RolesAllowed"), new 
ArrayInitializerExpr(NodeList.nodeList(rolesExpr))));
-        }
-        return node;
-    }
-
-    /**
-     * Returns type that allows to inject optional instances of the same type
-     *
-     * @return fully qualified class name
-     */
-    String optionalInstanceInjectionType();
-
-    /**
-     * Creates an expression that represents optional instance for given field
-     *
-     * @param fieldName name of the field that should be considered optional
-     * @return complete expression for optional instance
-     */
-    Expression optionalInstanceExists(String fieldName);
-
-    /**
-     * Creates an expression that returns instance for given optional field
-     *
-     * @param fieldName name of the optional field that should be accessed
-     * @return complete expression for optional instance
-     */
-    default Expression getOptionalInstance(String fieldName) {
-        return new MethodCallExpr(new NameExpr(fieldName), "get");
-    }
-
-    /**
-     * Returns type that allows to inject multiple instances of the same type
-     *
-     * @return fully qualified class name
-     */
-    String multiInstanceInjectionType();
-
-    /**
-     * Creates an expression that returns a list of instances for given multi 
instance field
-     *
-     * @param fieldName name of the multi field that should be accessed
-     * @return complete expression for multi instance
-     */
-    Expression getMultiInstance(String fieldName);
-
-    /**
-     * Returns type that allows to mark instance as application component e.g. 
ApplicationScoped, Component
-     *
-     * @return fully qualified class name
-     */
-    String applicationComponentType();
-
-    /**
-     * Returns type to be used as message emitter
-     *
-     * @param dataType type of the data produces by the emitter
-     * @return fully qualified class name
-     */
-    String emitterType(String dataType);
-
-    /**
-     * Annotates given node with a initializing annotation e.g. Startup
-     *
-     * @param node node to be annotated
-     */
-    <T extends NodeWithAnnotations<?>> T withEagerStartup(T node);
-
-    /**
-     * Annotates given node with factory class annotations e.g. Configuration 
for Spring Boot
-     *
-     * @param node node to be annotated
-     */
-    <T extends NodeWithAnnotations<?>> T withFactoryClass(T node);
-
-    /**
-     * Annotates given node with factory method annotations e.g. Produces, Bean
-     *
-     * @param node node to be annotated
-     */
-    <T extends NodeWithAnnotations<?>> T withFactoryMethod(T node);
-
-    default <T extends NodeWithAnnotations<?>> T withTagAnnotation(T node, 
NodeList<MemberValuePair> attributes) {
-        return node;
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/di/impl/CDIDependencyInjectionAnnotator.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/di/impl/CDIDependencyInjectionAnnotator.java
deleted file mode 100644
index c95e834bb0..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/di/impl/CDIDependencyInjectionAnnotator.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * 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.kie.kogito.codegen.api.di.impl;
-
-import org.kie.kogito.codegen.api.di.DependencyInjectionAnnotator;
-
-import com.github.javaparser.ast.NodeList;
-import com.github.javaparser.ast.expr.BinaryExpr;
-import com.github.javaparser.ast.expr.BooleanLiteralExpr;
-import com.github.javaparser.ast.expr.Expression;
-import com.github.javaparser.ast.expr.MemberValuePair;
-import com.github.javaparser.ast.expr.MethodCallExpr;
-import com.github.javaparser.ast.expr.Name;
-import com.github.javaparser.ast.expr.NameExpr;
-import com.github.javaparser.ast.expr.NormalAnnotationExpr;
-import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr;
-import com.github.javaparser.ast.expr.StringLiteralExpr;
-import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
-
-public class CDIDependencyInjectionAnnotator implements 
DependencyInjectionAnnotator {
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withProduces(T node, boolean 
isDefault) {
-        node.addAndGetAnnotation("javax.enterprise.inject.Produces");
-        if (isDefault) {
-            node.addAndGetAnnotation("io.quarkus.arc.DefaultBean");
-        }
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withNamed(T node, String name) 
{
-        node.addAnnotation(new SingleMemberAnnotationExpr(new 
Name("javax.inject.Named"), new StringLiteralExpr(name)));
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withApplicationComponent(T 
node) {
-        node.addAnnotation("javax.enterprise.context.ApplicationScoped");
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T 
withNamedApplicationComponent(T node, String name) {
-        return withNamed(withApplicationComponent(node), name);
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withSingletonComponent(T node) 
{
-        node.addAnnotation("javax.inject.Singleton");
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withNamedSingletonComponent(T 
node, String name) {
-        return withNamed(withSingletonComponent(node), name);
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withInjection(T node, boolean 
lazy) {
-        node.addAnnotation("javax.inject.Inject");
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withNamedInjection(T node, 
String name) {
-        return withNamed(withInjection(node), name);
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withOptionalInjection(T node) {
-        return withInjection(node);
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withIncomingMessage(T node, 
String channel) {
-        node.addAnnotation(new SingleMemberAnnotationExpr(new 
Name("org.eclipse.microprofile.reactive.messaging.Incoming"), new 
StringLiteralExpr(channel)));
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withOutgoingMessage(T node, 
String channel) {
-        node.addAnnotation(new SingleMemberAnnotationExpr(new 
Name("org.eclipse.microprofile.reactive.messaging.Channel"), new 
StringLiteralExpr(channel)));
-        return node;
-    }
-
-    @Override
-    public MethodCallExpr withMessageProducer(MethodCallExpr produceMethod, 
String channel, Expression event) {
-        produceMethod.addArgument(event);
-        return produceMethod;
-    }
-
-    @Override
-    public String optionalInstanceInjectionType() {
-        return "javax.enterprise.inject.Instance";
-    }
-
-    @Override
-    public Expression optionalInstanceExists(String fieldName) {
-        MethodCallExpr condition = new MethodCallExpr(new NameExpr(fieldName), 
"isUnsatisfied");
-        return new BinaryExpr(condition, new BooleanLiteralExpr(false), 
BinaryExpr.Operator.EQUALS);
-    }
-
-    @Override
-    public String multiInstanceInjectionType() {
-        return optionalInstanceInjectionType();
-    }
-
-    @Override
-    public Expression getMultiInstance(String fieldName) {
-        return new MethodCallExpr(
-                new MethodCallExpr(new 
NameExpr("java.util.stream.StreamSupport"), "stream", NodeList.nodeList(
-                        new MethodCallExpr(new NameExpr(fieldName), 
"spliterator"),
-                        new BooleanLiteralExpr(false))),
-                "collect",
-                NodeList.nodeList(
-                        new MethodCallExpr(new 
NameExpr("java.util.stream.Collectors"), "toList")));
-    }
-
-    @Override
-    public String applicationComponentType() {
-        return "javax.enterprise.context.ApplicationScoped";
-    }
-
-    @Override
-    public String emitterType(String dataType) {
-        return "org.eclipse.microprofile.reactive.messaging.Emitter<" + 
dataType + ">";
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withConfigInjection(T node, 
String configKey) {
-        node.addAnnotation(new NormalAnnotationExpr(
-                new 
Name("org.eclipse.microprofile.config.inject.ConfigProperty"),
-                NodeList.nodeList(
-                        new MemberValuePair("name", new 
StringLiteralExpr(configKey)))));
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withConfigInjection(T node, 
String configKey, String defaultValue) {
-        node.addAnnotation(new NormalAnnotationExpr(
-                new 
Name("org.eclipse.microprofile.config.inject.ConfigProperty"),
-                NodeList.nodeList(
-                        new MemberValuePair("name", new 
StringLiteralExpr(configKey)),
-                        new MemberValuePair("defaultValue", new 
StringLiteralExpr(defaultValue)))));
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withEagerStartup(T node) {
-        node.addAnnotation("io.quarkus.runtime.Startup");
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withFactoryClass(T node) {
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withFactoryMethod(T node) {
-        node.addAnnotation("javax.enterprise.inject.Produces");
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withTagAnnotation(T node, 
NodeList<MemberValuePair> attributes) {
-        node.addAnnotation(new NormalAnnotationExpr(new 
Name("org.eclipse.microprofile.openapi.annotations.tags.Tag"), attributes));
-        return node;
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/di/impl/SpringDependencyInjectionAnnotator.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/di/impl/SpringDependencyInjectionAnnotator.java
deleted file mode 100644
index 7cdeeece4b..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/di/impl/SpringDependencyInjectionAnnotator.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * 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.kie.kogito.codegen.api.di.impl;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Optional;
-
-import org.kie.kogito.codegen.api.di.DependencyInjectionAnnotator;
-
-import com.github.javaparser.ast.NodeList;
-import com.github.javaparser.ast.expr.BinaryExpr;
-import com.github.javaparser.ast.expr.BooleanLiteralExpr;
-import com.github.javaparser.ast.expr.ConditionalExpr;
-import com.github.javaparser.ast.expr.Expression;
-import com.github.javaparser.ast.expr.MemberValuePair;
-import com.github.javaparser.ast.expr.MethodCallExpr;
-import com.github.javaparser.ast.expr.Name;
-import com.github.javaparser.ast.expr.NameExpr;
-import com.github.javaparser.ast.expr.NormalAnnotationExpr;
-import com.github.javaparser.ast.expr.NullLiteralExpr;
-import com.github.javaparser.ast.expr.SingleMemberAnnotationExpr;
-import com.github.javaparser.ast.expr.StringLiteralExpr;
-import com.github.javaparser.ast.expr.TypeExpr;
-import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
-import com.github.javaparser.ast.type.ClassOrInterfaceType;
-
-public class SpringDependencyInjectionAnnotator implements 
DependencyInjectionAnnotator {
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withProduces(T node, boolean 
isDefault) {
-        node.addAnnotation("org.springframework.context.annotation.Bean");
-        if (isDefault) {
-            
node.addAnnotation("org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean");
-        }
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withNamed(T node, String name) 
{
-        node.addAnnotation(new SingleMemberAnnotationExpr(new 
Name("org.springframework.beans.factory.annotation.Qualifier"), new 
StringLiteralExpr(name)));
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withApplicationComponent(T 
node) {
-        node.addAnnotation("org.springframework.stereotype.Component");
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T 
withNamedApplicationComponent(T node, String name) {
-        node.addAnnotation(new SingleMemberAnnotationExpr(new 
Name("org.springframework.stereotype.Component"), new StringLiteralExpr(name)));
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withSingletonComponent(T node) 
{
-        return withApplicationComponent(node);
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withNamedSingletonComponent(T 
node, String name) {
-        return withNamedApplicationComponent(node, name);
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withInjection(T node, boolean 
lazy) {
-        
node.addAnnotation("org.springframework.beans.factory.annotation.Autowired");
-        if (lazy) {
-            node.addAnnotation("org.springframework.context.annotation.Lazy");
-        }
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withNamedInjection(T node, 
String name) {
-        return withNamed(withInjection(node), name);
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withOptionalInjection(T node) {
-        node.addAnnotation(
-                new NormalAnnotationExpr(new 
Name("org.springframework.beans.factory.annotation.Autowired"), 
NodeList.nodeList(new MemberValuePair("required", new 
BooleanLiteralExpr(false)))));
-        node.addAnnotation("org.springframework.context.annotation.Lazy");
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withIncomingMessage(T node, 
String channel) {
-        node.addAnnotation(new NormalAnnotationExpr(new 
Name("org.springframework.kafka.annotation.KafkaListener"), 
NodeList.nodeList(new MemberValuePair("topics", new 
StringLiteralExpr(channel)))));
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withOutgoingMessage(T node, 
String channel) {
-        // currently no-op
-        return node;
-    }
-
-    @Override
-    public MethodCallExpr withMessageProducer(MethodCallExpr produceMethod, 
String channel, Expression event) {
-        produceMethod.addArgument(new 
StringLiteralExpr(channel)).addArgument(event);
-        return produceMethod;
-    }
-
-    @Override
-    public String optionalInstanceInjectionType() {
-        return Optional.class.getCanonicalName();
-    }
-
-    @Override
-    public Expression optionalInstanceExists(String fieldName) {
-        return new MethodCallExpr(new NameExpr(fieldName), "isPresent");
-    }
-
-    @Override
-    public String multiInstanceInjectionType() {
-        return Collection.class.getCanonicalName();
-    }
-
-    @Override
-    public Expression getMultiInstance(String fieldName) {
-        return new ConditionalExpr(
-                new BinaryExpr(new NameExpr(fieldName), new NullLiteralExpr(), 
BinaryExpr.Operator.NOT_EQUALS),
-                new NameExpr(fieldName),
-                new MethodCallExpr(new TypeExpr(new ClassOrInterfaceType(null, 
Collections.class.getCanonicalName())), "emptyList"));
-    }
-
-    @Override
-    public String applicationComponentType() {
-        return "org.springframework.stereotype.Component";
-    }
-
-    @Override
-    public String emitterType(String dataType) {
-        return "org.springframework.kafka.core.KafkaTemplate<String, " + 
dataType + ">";
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withConfigInjection(T node, 
String configKey) {
-        node.addAnnotation(new SingleMemberAnnotationExpr(new 
Name("org.springframework.beans.factory.annotation.Value"), new 
StringLiteralExpr("${" + configKey + ":#{null}}")));
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withConfigInjection(T node, 
String configKey, String defaultValue) {
-        node.addAnnotation(new SingleMemberAnnotationExpr(new 
Name("org.springframework.beans.factory.annotation.Value"), new 
StringLiteralExpr("${" + configKey + ":" + defaultValue + "}")));
-        return node;
-    }
-
-    /**
-     * no-op, Spring beans are not lazy by default.
-     *
-     * @param node node to be annotated
-     * @return
-     */
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withEagerStartup(T node) {
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withFactoryClass(T node) {
-        
node.addAnnotation("org.springframework.context.annotation.Configuration");
-        return node;
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> T withFactoryMethod(T node) {
-        node.addAnnotation("org.springframework.context.annotation.Bean");
-        return node;
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/rest/RestAnnotator.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/rest/RestAnnotator.java
deleted file mode 100644
index be952e6cff..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/rest/RestAnnotator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.kie.kogito.codegen.api.rest;
-
-import java.util.Optional;
-
-import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
-
-public interface RestAnnotator {
-    <T extends NodeWithAnnotations<?>> boolean isRestAnnotated(T node);
-
-    <T extends NodeWithAnnotations<?>> Optional<String> getEndpointValue(T 
node);
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/rest/impl/CDIRestAnnotator.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/rest/impl/CDIRestAnnotator.java
deleted file mode 100644
index 66fecd0f80..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/rest/impl/CDIRestAnnotator.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.kie.kogito.codegen.api.rest.impl;
-
-import java.util.Optional;
-import java.util.stream.Stream;
-
-import org.kie.kogito.codegen.api.rest.RestAnnotator;
-
-import com.github.javaparser.ast.expr.AnnotationExpr;
-import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
-
-public class CDIRestAnnotator implements RestAnnotator {
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> boolean isRestAnnotated(T node) {
-        return Stream.of("POST", "GET", "PUT", "DELETE")
-                .map(node::getAnnotationByName)
-                .anyMatch(Optional::isPresent);
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> Optional<String> 
getEndpointValue(T node) {
-        Optional<AnnotationExpr> path = node.getAnnotationByName("Path");
-        return path.map(annotationExpr -> 
annotationExpr.asSingleMemberAnnotationExpr().getMemberValue().asStringLiteralExpr().asString());
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/rest/impl/SpringRestAnnotator.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/rest/impl/SpringRestAnnotator.java
deleted file mode 100644
index e9dfe39361..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/main/java/org/kie/kogito/codegen/api/rest/impl/SpringRestAnnotator.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.kie.kogito.codegen.api.rest.impl;
-
-import java.util.Optional;
-import java.util.stream.Stream;
-
-import org.kie.kogito.codegen.api.rest.RestAnnotator;
-
-import com.github.javaparser.ast.expr.AnnotationExpr;
-import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations;
-
-public class SpringRestAnnotator implements RestAnnotator {
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> boolean isRestAnnotated(T node) {
-        return Stream.of("PostMapping", "GetMapping", "PutMapping", 
"DeleteMapping")
-                .map(node::getAnnotationByName)
-                .anyMatch(Optional::isPresent);
-    }
-
-    @Override
-    public <T extends NodeWithAnnotations<?>> Optional<String> 
getEndpointValue(T node) {
-        Optional<AnnotationExpr> path = 
node.getAnnotationByName("PostMapping");
-        return path
-                .flatMap(p -> p.asNormalAnnotationExpr()
-                        .getPairs()
-                        .stream()
-                        .filter(x -> 
"value".equals(x.getName().asString())).findFirst())
-                .map(value -> 
value.getValue().asStringLiteralExpr().asString());
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-api/src/test/java/org/kie/kogito/codegen/api/context/impl/AbstractKogitoBuildContextTest.java
 
b/kogito-codegen-modules/kogito-codegen-api/src/test/java/org/kie/kogito/codegen/api/context/impl/AbstractKogitoBuildContextTest.java
index c41878539a..61b4e50dfa 100644
--- 
a/kogito-codegen-modules/kogito-codegen-api/src/test/java/org/kie/kogito/codegen/api/context/impl/AbstractKogitoBuildContextTest.java
+++ 
b/kogito-codegen-modules/kogito-codegen-api/src/test/java/org/kie/kogito/codegen/api/context/impl/AbstractKogitoBuildContextTest.java
@@ -97,6 +97,11 @@ class AbstractKogitoBuildContextTest {
             super(builder, null, null, "Mock");
         }
 
+        @Override
+        public boolean hasRest() {
+            return false;
+        }
+
         public static class MockKogiotBuildContextBuilder extends 
AbstractKogitoBuildContext.AbstractBuilder {
 
             protected MockKogiotBuildContextBuilder() {
diff --git 
a/kogito-codegen-modules/kogito-codegen-predictions/src/test/java/org/kie/kogito/codegen/prediction/PMMLRestResourceGeneratorTest.java
 
b/kogito-codegen-modules/kogito-codegen-predictions/src/test/java/org/kie/kogito/codegen/prediction/PMMLRestResourceGeneratorTest.java
index 3295646907..8fe6c0dd94 100644
--- 
a/kogito-codegen-modules/kogito-codegen-predictions/src/test/java/org/kie/kogito/codegen/prediction/PMMLRestResourceGeneratorTest.java
+++ 
b/kogito-codegen-modules/kogito-codegen-predictions/src/test/java/org/kie/kogito/codegen/prediction/PMMLRestResourceGeneratorTest.java
@@ -22,6 +22,7 @@ import java.net.URLEncoder;
 import java.util.NoSuchElementException;
 import java.util.Optional;
 
+import org.drools.codegen.common.di.impl.CDIDependencyInjectionAnnotator;
 import org.drools.util.StringUtils;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
@@ -30,7 +31,6 @@ import org.kie.dmn.feel.codegen.feel11.CodegenStringUtil;
 import org.kie.kogito.codegen.api.context.KogitoBuildContext;
 import org.kie.kogito.codegen.api.context.impl.QuarkusKogitoBuildContext;
 import org.kie.kogito.codegen.api.context.impl.SpringBootKogitoBuildContext;
-import org.kie.kogito.codegen.api.di.impl.CDIDependencyInjectionAnnotator;
 import org.kie.kogito.codegen.api.template.TemplatedGenerator;
 import org.kie.pmml.commons.model.KiePMMLModel;
 
diff --git 
a/kogito-codegen-modules/kogito-codegen-predictions/src/test/java/org/kie/kogito/codegen/prediction/PredictionCodegenUtilsTest.java
 
b/kogito-codegen-modules/kogito-codegen-predictions/src/test/java/org/kie/kogito/codegen/prediction/PredictionCodegenUtilsTest.java
index 93dda1c71b..3442c2de18 100644
--- 
a/kogito-codegen-modules/kogito-codegen-predictions/src/test/java/org/kie/kogito/codegen/prediction/PredictionCodegenUtilsTest.java
+++ 
b/kogito-codegen-modules/kogito-codegen-predictions/src/test/java/org/kie/kogito/codegen/prediction/PredictionCodegenUtilsTest.java
@@ -42,8 +42,8 @@ import org.kie.pmml.commons.model.KiePMMLModelWithSources;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
 import static org.drools.codegen.common.GeneratedFileType.COMPILED_CLASS;
+import static org.drools.codegen.common.GeneratedFileType.REST;
 import static org.drools.codegen.common.GeneratedFileType.STATIC_HTTP_RESOURCE;
-import static org.drools.model.codegen.execmodel.GeneratedFile.Type.REST;
 import static org.kie.kogito.pmml.CommonTestUtility.getKiePMMLModelInternal;
 import static org.kie.kogito.pmml.CommonTestUtility.getRandomMiningFields;
 import static org.kie.kogito.pmml.CommonTestUtility.getRandomOutputField;
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/QueryEndpointGenerator.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/QueryEndpointGenerator.java
index c0c6e9386d..ef34f2e81d 100644
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/QueryEndpointGenerator.java
+++ 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/QueryEndpointGenerator.java
@@ -47,10 +47,10 @@ import com.github.javaparser.ast.stmt.TryStmt;
 import com.github.javaparser.ast.type.Type;
 
 import static com.github.javaparser.StaticJavaParser.parseStatement;
+import static 
org.drools.model.codegen.execmodel.util.RuleCodegenUtils.setGeneric;
+import static 
org.drools.model.codegen.execmodel.util.RuleCodegenUtils.toKebabCase;
+import static 
org.drools.model.codegen.execmodel.util.RuleCodegenUtils.toNonPrimitiveType;
 import static org.kie.kogito.codegen.api.Generator.REST_TYPE;
-import static org.kie.kogito.codegen.rules.RuleCodegenUtils.setGeneric;
-import static org.kie.kogito.codegen.rules.RuleCodegenUtils.toKebabCase;
-import static org.kie.kogito.codegen.rules.RuleCodegenUtils.toNonPrimitiveType;
 
 public class QueryEndpointGenerator extends AbstractQueryEntrypointGenerator {
 
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/QueryGenerator.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/QueryGenerator.java
index d2f4c4c237..d0e98d00c1 100644
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/QueryGenerator.java
+++ 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/QueryGenerator.java
@@ -50,10 +50,10 @@ import com.github.javaparser.ast.stmt.ReturnStmt;
 import com.github.javaparser.ast.stmt.Statement;
 
 import static 
org.drools.model.codegen.execmodel.generator.DrlxParseUtil.classToReferenceType;
+import static 
org.drools.model.codegen.execmodel.util.RuleCodegenUtils.setGeneric;
+import static 
org.drools.model.codegen.execmodel.util.RuleCodegenUtils.toCamelCase;
 import static org.drools.util.StringUtils.ucFirst;
 import static org.kie.kogito.codegen.rules.RuleCodegen.TEMPLATE_RULE_FOLDER;
-import static org.kie.kogito.codegen.rules.RuleCodegenUtils.setGeneric;
-import static org.kie.kogito.codegen.rules.RuleCodegenUtils.toCamelCase;
 
 public class QueryGenerator implements RuleFileGenerator {
 
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleCodegen.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleCodegen.java
index 642acfbc1d..c042be4002 100644
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleCodegen.java
+++ 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleCodegen.java
@@ -29,6 +29,7 @@ import java.util.Optional;
 import org.drools.codegen.common.GeneratedFile;
 import org.drools.codegen.common.GeneratedFileType;
 import org.drools.drl.extensions.DecisionTableFactory;
+import org.drools.drl.parser.DroolsError;
 import org.drools.model.codegen.execmodel.PackageModelWriter;
 import org.drools.model.codegen.project.CodegenPackageSources;
 import org.drools.model.codegen.project.DroolsModelBuilder;
@@ -140,9 +141,8 @@ public class RuleCodegen extends AbstractGenerator {
                     .flatMap(pkgSrc -> pkgSrc.getRuleUnits().stream())
                     .forEach(ru -> kieModuleModelWrapper.addRuleUnitConfig(ru, 
configs.get(ru.getCanonicalName())));
 
-            // main codegen procedure (rule units, rule unit instances, 
queries, generated pojos)
-            RuleUnitMainCodegen ruleUnitCodegen = new 
RuleUnitMainCodegen(context(), ruleUnitGenerators, hotReloadMode);
-            generatedFiles.addAll(ruleUnitCodegen.generate());
+            List<DroolsError> errors = new ArrayList<>();
+            List<QueryGenerator> validQueries = validateQueries(errors);
 
             // dashboard for rule unit
             RuleUnitDashboardCodegen dashboardCodegen = new 
RuleUnitDashboardCodegen(context(), ruleUnitGenerators);
@@ -150,13 +150,12 @@ public class RuleCodegen extends AbstractGenerator {
 
             // "extended" procedure: REST + Event handlers + query dashboards
             if (context().hasRESTForGenerator(this)) {
-                Collection<QueryGenerator> validQueries = 
ruleUnitCodegen.validQueries();
                 RuleUnitExtendedCodegen ruleUnitExtendedCodegen = new 
RuleUnitExtendedCodegen(context(), validQueries);
                 generatedFiles.addAll(ruleUnitExtendedCodegen.generate());
             }
 
-            if (!ruleUnitCodegen.errors().isEmpty()) {
-                throw new RuleCodegenError(ruleUnitCodegen.errors());
+            if (!errors.isEmpty()) {
+                throw new RuleCodegenError(errors);
             }
         } else {
             LOGGER.info("No rule unit is present: generate KieRuntimeBuilder 
implementation.");
@@ -168,6 +167,20 @@ public class RuleCodegen extends AbstractGenerator {
         return generatedFiles;
     }
 
+    private List<QueryGenerator> validateQueries(List<DroolsError> errors) {
+        List<QueryGenerator> validQueries = new ArrayList<>();
+        for (RuleUnitGenerator ruleUnit : ruleUnitGenerators) {
+            for (QueryGenerator queryGenerator : ruleUnit.queries()) {
+                if (queryGenerator.validate()) {
+                    validQueries.add(queryGenerator);
+                } else {
+                    errors.add(queryGenerator.getError());
+                }
+            }
+        }
+        return validQueries;
+    }
+
     public RuleCodegen withHotReloadMode() { // fixme this is currently only 
used in test cases. Drop?
         this.hotReloadMode = true;
         return this;
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleCodegenUtils.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleCodegenUtils.java
deleted file mode 100644
index 22e66798a0..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleCodegenUtils.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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.kie.kogito.codegen.rules;
-
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.kie.internal.ruleunit.RuleUnitDescription;
-
-import com.github.javaparser.ast.type.Type;
-
-import static com.github.javaparser.StaticJavaParser.parseClassOrInterfaceType;
-import static 
org.drools.model.codegen.execmodel.generator.DrlxParseUtil.toClassOrInterfaceType;
-
-public class RuleCodegenUtils {
-
-    private RuleCodegenUtils() {
-        // utility class
-    }
-
-    public static void setGeneric(Type type, RuleUnitDescription ruleUnit) {
-        
type.asClassOrInterfaceType().setTypeArguments(toClassOrInterfaceType(ruleUnit.getCanonicalName()));
-    }
-
-    public static void setGeneric(Type type, String typeArgument) {
-        
type.asClassOrInterfaceType().setTypeArguments(parseClassOrInterfaceType(toNonPrimitiveType(typeArgument)));
-    }
-
-    public static String toNonPrimitiveType(String type) {
-        switch (type) {
-            case "int":
-                return "Integer";
-            case "long":
-                return "Long";
-            case "double":
-                return "Double";
-            case "float":
-                return "Float";
-            case "short":
-                return "Short";
-            case "byte":
-                return "Byte";
-            case "char":
-                return "Character";
-            case "boolean":
-                return "Boolean";
-            default:
-                return type;
-        }
-    }
-
-    public static String toCamelCase(String inputString) {
-        return Stream.of(inputString.split(" "))
-                .map(s -> s.length() > 1 ? s.substring(0, 1).toUpperCase() + 
s.substring(1) : s.substring(0, 1).toUpperCase())
-                .collect(Collectors.joining());
-    }
-
-    public static String toKebabCase(String inputString) {
-        return inputString.replaceAll("(.)(\\p{Upper})", 
"$1-$2").toLowerCase();
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleObjectMapperCodegen.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleObjectMapperCodegen.java
deleted file mode 100644
index 4f753f38ef..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleObjectMapperCodegen.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.kie.kogito.codegen.rules;
-
-import org.drools.codegen.common.GeneratedFile;
-import org.kie.kogito.codegen.api.Generator;
-import org.kie.kogito.codegen.api.context.KogitoBuildContext;
-import org.kie.kogito.codegen.api.template.TemplatedGenerator;
-
-public class RuleObjectMapperCodegen {
-
-    private final KogitoBuildContext context;
-
-    public RuleObjectMapperCodegen(KogitoBuildContext context) {
-        this.context = context;
-    }
-
-    GeneratedFile generate() {
-        TemplatedGenerator generator = TemplatedGenerator.builder()
-                .withTemplateBasePath(RuleCodegen.TEMPLATE_RULE_FOLDER)
-                .build(context, "KogitoObjectMapper");
-
-        return new GeneratedFile(Generator.REST_TYPE,
-                generator.generatedFilePath(),
-                generator.compilationUnitOrThrow().toString());
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitExtendedCodegen.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitExtendedCodegen.java
index d9e21468ef..c4e6d93c60 100644
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitExtendedCodegen.java
+++ 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitExtendedCodegen.java
@@ -21,6 +21,7 @@ package org.kie.kogito.codegen.rules;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import org.drools.codegen.common.GeneratedFile;
 import org.kie.kogito.codegen.api.context.KogitoBuildContext;
@@ -28,25 +29,22 @@ import 
org.kie.kogito.codegen.api.context.KogitoBuildContext;
 public class RuleUnitExtendedCodegen {
     private final RuleUnitQueryDashboardCodegen dashboards;
     private final RuleUnitQueryEventCodegen events;
-    private final RuleUnitQueryRestCodegen rest;
-    private final RuleObjectMapperCodegen objectMapper;
 
     public RuleUnitExtendedCodegen(
             KogitoBuildContext context,
             Collection<QueryGenerator> validQueries) {
-        this.rest = new RuleUnitQueryRestCodegen(validQueries);
         this.events = new RuleUnitQueryEventCodegen(context, validQueries);
-        this.dashboards = new RuleUnitQueryDashboardCodegen(context, 
rest.endpointGenerators());
-        this.objectMapper = new RuleObjectMapperCodegen(context);
+        Collection<QueryEndpointGenerator> endpointGenerators = 
validQueries.stream()
+                .map(QueryEndpointGenerator::new)
+                .collect(Collectors.toUnmodifiableList());
+        this.dashboards = new RuleUnitQueryDashboardCodegen(context, 
endpointGenerators);
     }
 
     Collection<GeneratedFile> generate() {
         List<GeneratedFile> generatedFiles = new ArrayList<>();
 
         generatedFiles.addAll(events.generate());
-        generatedFiles.addAll(rest.generate());
         generatedFiles.addAll(dashboards.generate());
-        generatedFiles.add(objectMapper.generate());
 
         return generatedFiles;
     }
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitGenerator.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitGenerator.java
index c5ffe08ac0..0c6ee8be27 100644
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitGenerator.java
+++ 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitGenerator.java
@@ -20,13 +20,11 @@ package org.kie.kogito.codegen.rules;
 
 import java.util.Collection;
 import java.util.List;
-import java.util.Optional;
 
 import org.drools.model.codegen.execmodel.QueryModel;
 import org.drools.ruleunits.api.RuleUnit;
 import org.drools.ruleunits.api.conf.RuleUnitConfig;
 import org.drools.ruleunits.impl.AbstractRuleUnitDescription;
-import org.drools.ruleunits.impl.GeneratedRuleUnitDescription;
 import org.kie.internal.ruleunit.RuleUnitDescription;
 import org.kie.kogito.codegen.api.context.KogitoBuildContext;
 
@@ -77,14 +75,6 @@ public class RuleUnitGenerator {
         return typeName;
     }
 
-    public Optional<RuleUnitPojoGenerator> pojo(RuleUnitHelper ruleUnitHelper) 
{
-        if (ruleUnit instanceof GeneratedRuleUnitDescription) {
-            return Optional.of(new 
RuleUnitPojoGenerator((GeneratedRuleUnitDescription) ruleUnit, ruleUnitHelper));
-        } else {
-            return Optional.empty();
-        }
-    }
-
     public static ClassOrInterfaceType ruleUnitType(String canonicalName) {
         return new ClassOrInterfaceType(null, 
RuleUnit.class.getCanonicalName())
                 .setTypeArguments(new ClassOrInterfaceType(null, 
canonicalName));
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitHelper.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitHelper.java
deleted file mode 100644
index d66e14eb39..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitHelper.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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.kie.kogito.codegen.rules;
-
-import org.drools.ruleunits.impl.AssignableChecker;
-import org.drools.ruleunits.impl.ReflectiveRuleUnitDescription;
-import org.kie.internal.ruleunit.RuleUnitDescription;
-
-public class RuleUnitHelper {
-    private AssignableChecker defaultChecker;
-    private AssignableChecker assignableChecker;
-
-    public RuleUnitHelper() {
-    }
-
-    public RuleUnitHelper(ClassLoader cl, boolean hotReloadMode) {
-        this.defaultChecker = AssignableChecker.create(cl, hotReloadMode);
-    }
-
-    public RuleUnitHelper(AssignableChecker assignableChecker) {
-        this.assignableChecker = assignableChecker;
-    }
-
-    void initRuleUnitHelper(RuleUnitDescription ruleUnitDesc) {
-        if (ruleUnitDesc instanceof ReflectiveRuleUnitDescription) {
-            assignableChecker = ((ReflectiveRuleUnitDescription) 
ruleUnitDesc).getAssignableChecker();
-        } else {
-            if (assignableChecker == null) {
-                assignableChecker = defaultChecker;
-            }
-        }
-    }
-
-    public AssignableChecker getAssignableChecker() {
-        return assignableChecker;
-    }
-
-    public boolean isAssignableFrom(Class<?> source, Class<?> target) {
-        return assignableChecker.isAssignableFrom(source, target);
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitMainCodegen.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitMainCodegen.java
deleted file mode 100644
index 33ee944c5d..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitMainCodegen.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * 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.kie.kogito.codegen.rules;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.drools.codegen.common.GeneratedFile;
-import org.drools.drl.parser.DroolsError;
-import org.kie.kogito.codegen.api.context.KogitoBuildContext;
-
-/**
- * Generates rule units, rule unit instances, pojos, queries
- */
-public class RuleUnitMainCodegen {
-    private final KogitoBuildContext context;
-    private final Collection<RuleUnitGenerator> ruleUnitGenerators;
-    private final boolean hotReloadMode;
-    private final List<QueryGenerator> validQueries;
-    private List<DroolsError> errors = new ArrayList<>();
-
-    public RuleUnitMainCodegen(KogitoBuildContext context, 
Collection<RuleUnitGenerator> ruleUnitGenerators, boolean hotReloadMode) {
-        this.context = context;
-        this.ruleUnitGenerators = ruleUnitGenerators;
-        this.hotReloadMode = hotReloadMode;
-        this.validQueries = validateQueries();
-    }
-
-    Collection<QueryGenerator> validQueries() {
-        return validQueries;
-    }
-
-    Collection<DroolsError> errors() {
-        return errors;
-    }
-
-    Collection<GeneratedFile> generate() {
-        List<GeneratedFile> generatedFiles = new ArrayList<>();
-
-        RuleUnitHelper ruleUnitHelper = new 
RuleUnitHelper(context.getClassLoader(), hotReloadMode);
-
-        for (RuleUnitGenerator ruleUnit : ruleUnitGenerators) {
-            
ruleUnitHelper.initRuleUnitHelper(ruleUnit.getRuleUnitDescription());
-            ruleUnit.pojo(ruleUnitHelper).ifPresent(p -> 
generatedFiles.add(p.generate()));
-        }
-
-        for (QueryGenerator query : validQueries) {
-            generatedFiles.add(query.generate());
-        }
-        return generatedFiles;
-    }
-
-    private List<QueryGenerator> validateQueries() {
-        List<QueryGenerator> validQueries = new ArrayList<>();
-        for (RuleUnitGenerator ruleUnit : ruleUnitGenerators) {
-            for (QueryGenerator queryGenerator : ruleUnit.queries()) {
-                if (queryGenerator.validate()) {
-                    validQueries.add(queryGenerator);
-                } else {
-                    errors.add(queryGenerator.getError());
-                }
-            }
-        }
-        return validQueries;
-    }
-
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitPojoGenerator.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitPojoGenerator.java
deleted file mode 100644
index 4659172bef..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitPojoGenerator.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.kie.kogito.codegen.rules;
-
-import java.util.Collections;
-
-import org.drools.codegen.common.GeneratedFile;
-import org.drools.model.codegen.execmodel.JavaParserCompiler;
-import org.drools.ruleunits.api.DataStore;
-import org.drools.ruleunits.api.RuleUnitData;
-import org.drools.ruleunits.impl.GeneratedRuleUnitDescription;
-import org.kie.internal.ruleunit.RuleUnitVariable;
-
-import com.github.javaparser.StaticJavaParser;
-import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
-import com.github.javaparser.ast.body.FieldDeclaration;
-import com.github.javaparser.ast.body.VariableDeclarator;
-import com.github.javaparser.ast.type.ClassOrInterfaceType;
-
-import static org.drools.util.ClassUtils.rawType;
-import static org.kie.kogito.codegen.rules.RuleCodegen.RULE_TYPE;
-
-public class RuleUnitPojoGenerator implements RuleFileGenerator {
-
-    private final GeneratedRuleUnitDescription ruleUnitDescription;
-    private final RuleUnitHelper ruleUnitHelper;
-
-    public RuleUnitPojoGenerator(GeneratedRuleUnitDescription 
ruleUnitDescription, RuleUnitHelper ruleUnitHelper) {
-        this.ruleUnitDescription = ruleUnitDescription;
-        this.ruleUnitHelper = ruleUnitHelper;
-    }
-
-    @Override
-    public GeneratedFile generate() {
-        String pojoSource = JavaParserCompiler.toPojoSource(
-                ruleUnitDescription.getPackageName(),
-                Collections.emptyList(),
-                Collections.emptyList(),
-                classOrInterfaceDeclaration());
-        return new GeneratedFile(RULE_TYPE,
-                generatedFilePath(),
-                pojoSource);
-    }
-
-    private ClassOrInterfaceDeclaration classOrInterfaceDeclaration() {
-        ClassOrInterfaceDeclaration c =
-                new ClassOrInterfaceDeclaration()
-                        .setPublic(true)
-                        
.addImplementedType(RuleUnitData.class.getCanonicalName())
-                        .setName(ruleUnitDescription.getSimpleName());
-
-        for (RuleUnitVariable v : 
ruleUnitDescription.getUnitVarDeclarations()) {
-            ClassOrInterfaceType t = new ClassOrInterfaceType()
-                    .setName(rawType(v.getType()).getCanonicalName());
-            FieldDeclaration f = new FieldDeclaration();
-            VariableDeclarator vd = new VariableDeclarator(t, v.getName());
-            f.getVariables().add(vd);
-            if (v.isDataSource()) {
-                
t.setTypeArguments(StaticJavaParser.parseType(v.getDataSourceParameterType().getCanonicalName()));
-                if (ruleUnitHelper.isAssignableFrom(DataStore.class, 
rawType(v.getType()))) {
-                    
vd.setInitializer("org.drools.ruleunits.api.DataSource.createStore()");
-                } else {
-                    
vd.setInitializer("org.drools.ruleunits.api.DataSource.createSingleton()");
-                }
-            }
-            c.addMember(f);
-            f.createGetter();
-            if (v.setter() != null) {
-                f.createSetter();
-            }
-        }
-
-        return c;
-    }
-
-    public String generatedFilePath() {
-        return ruleUnitDescription.getPackageName().replace('.', '/') + "/" + 
ruleUnitDescription.getSimpleName() + ".java";
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitQueryRestCodegen.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitQueryRestCodegen.java
deleted file mode 100644
index b8705d7443..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/java/org/kie/kogito/codegen/rules/RuleUnitQueryRestCodegen.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.kie.kogito.codegen.rules;
-
-import java.util.Collection;
-import java.util.stream.Collectors;
-
-import org.drools.codegen.common.GeneratedFile;
-
-public class RuleUnitQueryRestCodegen {
-
-    private final Collection<QueryEndpointGenerator> endpointGenerators;
-
-    public RuleUnitQueryRestCodegen(Collection<QueryGenerator> validQueries) {
-        this.endpointGenerators =
-                validQueries.stream().map(QueryEndpointGenerator::new)
-                        .collect(Collectors.toUnmodifiableList());
-    }
-
-    Collection<QueryEndpointGenerator> endpointGenerators() {
-        return endpointGenerators;
-    }
-
-    Collection<GeneratedFile> generate() {
-        return endpointGenerators.stream()
-                .map(QueryEndpointGenerator::generate)
-                .collect(Collectors.toUnmodifiableList());
-    }
-
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/KogitoObjectMapperQuarkusTemplate.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/KogitoObjectMapperQuarkusTemplate.java
deleted file mode 100644
index e5dc9e080f..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/KogitoObjectMapperQuarkusTemplate.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * 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 $Package$;
-
-import java.util.List;
-
-import java.io.IOException;
-import java.util.List;
-
-import com.fasterxml.jackson.databind.JavaType;
-import javax.inject.Singleton;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.deser.ContextualDeserializer;
-import com.fasterxml.jackson.databind.module.SimpleModule;
-import com.fasterxml.jackson.databind.type.CollectionType;
-
-import org.drools.ruleunits.api.DataSource;
-import org.drools.ruleunits.api.DataStore;
-import org.drools.ruleunits.api.DataStream;
-import org.drools.ruleunits.api.SingletonStore;
-
-import io.quarkus.jackson.ObjectMapperCustomizer;
-
-@Singleton
-public class KogitoObjectMapper implements ObjectMapperCustomizer {
-
-    public void customize(ObjectMapper mapper) {
-        mapper.registerModule(new KogitoModule());
-    }
-
-    public static class KogitoModule extends SimpleModule {
-
-        public KogitoModule() {
-            addDefaultSerializers();
-            addDefaultDeserializers();
-        }
-
-        private void addDefaultSerializers() {
-        }
-
-        private void addDefaultDeserializers() {
-            addDeserializer( DataStream.class, new DataStreamDeserializer() );
-            addDeserializer( DataStore.class, new DataStoreDeserializer() );
-            addDeserializer( SingletonStore.class, new 
SingletonStoreDeserializer() );
-        }
-
-        public static class DataStreamDeserializer extends 
JsonDeserializer<DataStream<?>> implements ContextualDeserializer {
-
-            private CollectionType collectionType;
-
-            @Override
-            public DataStream deserialize( JsonParser jp, 
DeserializationContext ctxt) throws IOException {
-                DataStream stream = DataSource.createBufferedStream(16);
-                List list = ctxt.readValue( jp, collectionType );
-                list.forEach( stream::append );
-                return stream;
-            }
-
-            @Override
-            public JsonDeserializer<?> createContextual( 
DeserializationContext ctxt, BeanProperty property) throws JsonMappingException 
{
-                CollectionType collectionType = 
ctxt.getTypeFactory().constructCollectionType(List.class, 
property.getType().containedType(0));
-                DataStreamDeserializer deserializer = new 
DataStreamDeserializer();
-                deserializer.collectionType = collectionType;
-                return deserializer;
-            }
-        }
-
-        public static class DataStoreDeserializer extends 
JsonDeserializer<DataStore<?>> implements ContextualDeserializer {
-
-            private CollectionType collectionType;
-
-            @Override
-            public DataStore deserialize(JsonParser jp, DeserializationContext 
ctxt) throws IOException {
-                DataStore store = DataSource.createStore();
-                List list = ctxt.readValue( jp, collectionType );
-                list.forEach( store::add );
-                return store;
-            }
-
-            @Override
-            public JsonDeserializer<?> createContextual(DeserializationContext 
ctxt, BeanProperty property) throws JsonMappingException {
-                CollectionType collectionType = 
ctxt.getTypeFactory().constructCollectionType(List.class, 
property.getType().containedType(0));
-                DataStoreDeserializer deserializer = new 
DataStoreDeserializer();
-                deserializer.collectionType = collectionType;
-                return deserializer;
-            }
-        }
-
-        public static class SingletonStoreDeserializer extends 
JsonDeserializer<SingletonStore<?>> implements ContextualDeserializer {
-
-            private JavaType javaType ;
-
-            @Override
-            public SingletonStore deserialize(JsonParser jp, 
DeserializationContext ctxt) throws IOException {
-                SingletonStore store = DataSource.createSingleton();
-                store.set( ctxt.readValue( jp, javaType ) );
-                return store;
-            }
-
-            @Override
-            public JsonDeserializer<?> createContextual(DeserializationContext 
ctxt, BeanProperty property) throws JsonMappingException {
-                JavaType javaType = property.getType().containedType(0);
-                SingletonStoreDeserializer deserializer = new 
KogitoModule.SingletonStoreDeserializer();
-                deserializer.javaType = javaType;
-                return deserializer;
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/KogitoObjectMapperSpringTemplate.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/KogitoObjectMapperSpringTemplate.java
deleted file mode 100644
index 95599886fd..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/KogitoObjectMapperSpringTemplate.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * 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 $Package$;
-
-import java.util.List;
-
-import java.io.IOException;
-import java.util.List;
-
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.deser.ContextualDeserializer;
-import com.fasterxml.jackson.databind.type.CollectionType;
-
-import org.drools.ruleunits.api.DataSource;
-import org.drools.ruleunits.api.DataStore;
-import org.drools.ruleunits.api.DataStream;
-import org.drools.ruleunits.api.SingletonStore;
-
-import 
org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
-import org.springframework.boot.SpringBootConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
-
-@SpringBootConfiguration
-public class KogitoObjectMapper {
-
-    @Bean
-    public Jackson2ObjectMapperBuilderCustomizer customizeObjectMapper() {
-        return new Jackson2ObjectMapperBuilderCustomizer() {
-            @Override
-            public void customize(Jackson2ObjectMapperBuilder builder) {
-                //addDefaultDeserializers
-                builder.deserializerByType(DataStream.class, new 
DataStreamDeserializer());
-                builder.deserializerByType(DataStore.class, new 
DataStoreDeserializer());
-                builder.deserializerByType(SingletonStore.class, new 
SingletonStoreDeserializer());
-            }
-        };
-    }
-
-    public static class DataStreamDeserializer extends 
JsonDeserializer<DataStream<?>> implements ContextualDeserializer {
-
-        private CollectionType collectionType;
-
-        @Override
-        public DataStream deserialize(JsonParser jp, DeserializationContext 
ctxt) throws IOException {
-            DataStream stream = DataSource.createBufferedStream(16);
-            List list = ctxt.readValue(jp, collectionType);
-            list.forEach(stream::append);
-            return stream;
-        }
-
-        @Override
-        public JsonDeserializer<?> createContextual(DeserializationContext 
ctxt, BeanProperty property) throws JsonMappingException {
-            CollectionType collectionType = 
ctxt.getTypeFactory().constructCollectionType(List.class, 
property.getType().containedType(0));
-            DataStreamDeserializer deserializer = new DataStreamDeserializer();
-            deserializer.collectionType = collectionType;
-            return deserializer;
-        }
-    }
-
-    public static class DataStoreDeserializer extends 
JsonDeserializer<DataStore<?>> implements ContextualDeserializer {
-
-        private CollectionType collectionType;
-
-        @Override
-        public DataStore deserialize(JsonParser jp, DeserializationContext 
ctxt) throws IOException {
-            DataStore store = DataSource.createStore();
-            List list = ctxt.readValue(jp, collectionType);
-            list.forEach(store::add);
-            return store;
-        }
-
-        @Override
-        public JsonDeserializer<?> createContextual(DeserializationContext 
ctxt, BeanProperty property) throws JsonMappingException {
-            CollectionType collectionType = 
ctxt.getTypeFactory().constructCollectionType(List.class, 
property.getType().containedType(0));
-            DataStoreDeserializer deserializer = new DataStoreDeserializer();
-            deserializer.collectionType = collectionType;
-            return deserializer;
-        }
-    }
-
-    public static class SingletonStoreDeserializer extends 
JsonDeserializer<SingletonStore<?>> implements ContextualDeserializer {
-
-        private JavaType javaType;
-
-        @Override
-        public SingletonStore deserialize(JsonParser jp, 
DeserializationContext ctxt) throws IOException {
-            SingletonStore store = DataSource.createSingleton();
-            store.set(ctxt.readValue(jp, javaType));
-            return store;
-        }
-
-        @Override
-        public JsonDeserializer<?> createContextual(DeserializationContext 
ctxt, BeanProperty property) throws JsonMappingException {
-            JavaType javaType = property.getType().containedType(0);
-            SingletonStoreDeserializer deserializer = new 
SingletonStoreDeserializer();
-            deserializer.javaType = javaType;
-            return deserializer;
-        }
-    }
-}
\ No newline at end of file
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RestQueryJavaTemplate.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RestQueryJavaTemplate.java
deleted file mode 100644
index b9c7d8ed0a..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RestQueryJavaTemplate.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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 com.myspace.demo;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.drools.ruleunits.api.RuleUnit;
-import org.drools.ruleunits.api.RuleUnitInstance;
-
-import static java.util.stream.Collectors.toList;
-
-@Path("/$endpointName$")
-public class $unit$Query$name$Endpoint {
-
-    RuleUnit<$UnitType$> ruleUnit;
-
-    public $unit$Query$name$Endpoint() { }
-
-    public $unit$Query$name$Endpoint(RuleUnit<$UnitType$> ruleUnit) {
-        this.ruleUnit = ruleUnit;
-    }
-
-    @POST()
-    @Produces(MediaType.APPLICATION_JSON)
-    @Consumes(MediaType.APPLICATION_JSON)
-    public List<$ReturnType$> executeQuery($UnitTypeDTO$ unitDTO) {
-        RuleUnitInstance<$UnitType$> instance = ruleUnit.createInstance();
-        // Do not return the result directly to allow post execution codegen 
(like monitoring)
-        List<$ReturnType$> response = $unit$Query$name$.execute(instance);
-        instance.close();
-        return response;
-    }
-
-    @POST()
-    @Path("/first")
-    @Produces(MediaType.APPLICATION_JSON)
-    @Consumes(MediaType.APPLICATION_JSON)
-    public $ReturnType$ executeQueryFirst($UnitTypeDTO$ unitDTO) {
-        List<$ReturnType$> results = executeQuery(unitDTO);
-        $ReturnType$ response = results.isEmpty() ? null : results.get(0);
-        return response;
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RestQueryQuarkusTemplate.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RestQueryQuarkusTemplate.java
deleted file mode 100644
index 59492c3e68..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RestQueryQuarkusTemplate.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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 com.myspace.demo;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.drools.ruleunits.api.RuleUnit;
-import org.drools.ruleunits.api.RuleUnitInstance;
-
-import static java.util.stream.Collectors.toList;
-
-@Path("/$endpointName$")
-public class $unit$Query$name$Endpoint {
-
-    @javax.inject.Inject
-    RuleUnit<$UnitType$> ruleUnit;
-
-    public $unit$Query$name$Endpoint() { }
-
-    public $unit$Query$name$Endpoint(RuleUnit<$UnitType$> ruleUnit) {
-        this.ruleUnit = ruleUnit;
-    }
-
-    @POST()
-    @Produces(MediaType.APPLICATION_JSON)
-    @Consumes(MediaType.APPLICATION_JSON)
-    public List<$ReturnType$> executeQuery($UnitTypeDTO$ unitDTO) {
-        RuleUnitInstance<$UnitType$> instance = ruleUnit.createInstance();
-        // Do not return the result directly to allow post execution codegen 
(like monitoring)
-        List<$ReturnType$> response = $unit$Query$name$.execute(instance);
-        instance.close();
-        return response;
-    }
-
-    @POST()
-    @Path("/first")
-    @Produces(MediaType.APPLICATION_JSON)
-    @Consumes(MediaType.APPLICATION_JSON)
-    public $ReturnType$ executeQueryFirst($UnitTypeDTO$ unitDTO) {
-        List<$ReturnType$> results = executeQuery(unitDTO);
-        $ReturnType$ response = results.isEmpty() ? null : results.get(0);
-        return response;
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RestQuerySpringTemplate.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RestQuerySpringTemplate.java
deleted file mode 100644
index 905456e1ab..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RestQuerySpringTemplate.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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 com.myspace.demo;
-
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import org.drools.ruleunits.api.RuleUnit;
-import org.drools.ruleunits.api.RuleUnitInstance;
-
-import static java.util.stream.Collectors.toList;
-
-@RestController
-@RequestMapping("/$endpointName$")
-public class $unit$Query$name$Endpoint {
-
-    @Autowired
-    RuleUnit<$UnitType$> ruleUnit;
-
-    public $unit$Query$name$Endpoint() { }
-
-    public $unit$Query$name$Endpoint(RuleUnit<$UnitType$> ruleUnit) {
-        this.ruleUnit = ruleUnit;
-    }
-
-    @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE, consumes = 
MediaType.APPLICATION_JSON_VALUE)
-    public List<$ReturnType$> executeQuery(@RequestBody(required = true) 
$UnitTypeDTO$ unitDTO) {
-        RuleUnitInstance<$UnitType$> instance = ruleUnit.createInstance();
-        // Do not return the result directly to allow post execution codegen 
(like monitoring)
-        List<$ReturnType$> response = $unit$Query$name$.execute(instance);
-        instance.close();
-        return response;
-    }
-
-    @PostMapping(value = "/first", produces = 
MediaType.APPLICATION_JSON_VALUE, consumes =
-            MediaType.APPLICATION_JSON_VALUE)
-    public $ReturnType$ executeQueryFirst(@RequestBody(required = true) 
$UnitTypeDTO$ unitDTO) {
-        List<$ReturnType$> results = executeQuery(unitDTO);
-        $ReturnType$ response = results.isEmpty() ? null : results.get(0);
-        return response;
-    }
-}
\ No newline at end of file
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RuleUnitQueryJavaTemplate.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RuleUnitQueryJavaTemplate.java
deleted file mode 100644
index 0a681b9b43..0000000000
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/main/resources/class-templates/rules/RuleUnitQueryJavaTemplate.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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 com.myspace.demo;
-
-import org.drools.ruleunits.api.RuleUnitInstance;
-
-import java.util.List;
-import java.util.Map;
-
-import static java.util.stream.Collectors.toList;
-
-public class $unit$Query$name$ {
-
-    public static List<$ReturnType$> execute(RuleUnitInstance<$UnitType$> 
instance) {
-        return instance.executeQuery( "$queryName$" 
).toList().stream().map($unit$Query$name$::toResult).collect(toList());
-    }
-
-    private static $ReturnType$ toResult(Map<String, Object> tuple) {
-        return ($ReturnType$) tuple.get("");
-    }
-}
diff --git 
a/kogito-codegen-modules/kogito-codegen-rules/src/test/java/org/kie/kogito/codegen/rules/RuleCodegenTest.java
 
b/kogito-codegen-modules/kogito-codegen-rules/src/test/java/org/kie/kogito/codegen/rules/RuleCodegenTest.java
index 24e4636fa9..af70cbb198 100644
--- 
a/kogito-codegen-modules/kogito-codegen-rules/src/test/java/org/kie/kogito/codegen/rules/RuleCodegenTest.java
+++ 
b/kogito-codegen-modules/kogito-codegen-rules/src/test/java/org/kie/kogito/codegen/rules/RuleCodegenTest.java
@@ -286,10 +286,10 @@ public class RuleCodegenTest {
 
         Collection<GeneratedFile> generatedFiles = 
incrementalRuleCodegen.withHotReloadMode().generate();
         assertThat(generatedFiles).hasSizeGreaterThan(0);
-        if (contextBuilder.build().hasRESTGloballyAvailable()) {
-            assertThat(generatedFiles.stream()).anyMatch(f -> 
f.relativePath().endsWith("KogitoObjectMapper.java"));
+        if (contextBuilder.build().hasRest()) {
+            assertThat(generatedFiles.stream()).anyMatch(f -> 
f.relativePath().endsWith("ObjectMapper.java"));
         } else {
-            assertThat(generatedFiles.stream()).noneMatch(f -> 
f.relativePath().endsWith("KogitoObjectMapper.java"));
+            assertThat(generatedFiles.stream()).noneMatch(f -> 
f.relativePath().endsWith("ObjectMapper.java"));
         }
     }
 


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

Reply via email to