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-drools.git


The following commit(s) were added to refs/heads/main by this push:
     new 293afbb46f [NO ISSUE] Quarkus ruleunit extension (#6352)
293afbb46f is described below

commit 293afbb46fe1aff3f68db2c4203851dbaa951c0b
Author: Paolo Bizzarri <[email protected]>
AuthorDate: Wed Jun 11 14:05:03 2025 +0200

    [NO ISSUE] Quarkus ruleunit extension (#6352)
    
    * Trying to create proper extension for drools ruleunit
    
    * Fix for proper working of the extension
    
    * More work on drools quarkus ruleunit extension
    
    * Proper naming for modules
    
    * First cut for codestarts for ruleunits
    
    * WIP - trying to fix stuff
    
    * Fixed various issues
    
    * Reduced duplicated classes
    
    * Removed the quarkus-common module
    
    * Working version of the PR
    
    * Trying to fix split packages
---
 bom/drools-bom/pom.xml                             |  44 ++++-
 .../quarkus/deployment/DroolsAssetsProcessor.java  | 215 ++-------------------
 .../io.quarkus.deployment.dev.CompilationProvider  |   2 +-
 .../drools/quarkus/deployment/BuildItemsTest.java  |   3 +
 .../drools-quarkus-examples-multiunit/pom.xml      |  10 +-
 .../drools-quarkus-examples-reactive/pom.xml       |   8 +-
 .../drools-quarkus-quickstart-test/guide.adoc      |   6 +-
 .../drools-quarkus-quickstart-test/pom.xml         |   8 +-
 .../pom.xml                                        |  12 +-
 .../drools-quarkus-ruleunits-deployment/pom.xml    | 186 ++++++++++++++++++
 .../deployment/ruleunit/DroolsAssetsProcessor.java |  68 +++++++
 .../io.quarkus.deployment.dev.CompilationProvider  |   2 +-
 .../pom.xml                                        |  16 +-
 .../codestart.yml                                  |  26 +++
 .../java/src/main/java/org/acme/FirstUnit.java}    |  28 ++-
 .../java/src/main/java/org/acme/RuleInput.java}    |  25 +--
 .../java/src/main/java/org/acme/RuleOutput1.java}  |  25 +--
 .../java/src/main/java/org/acme/RuleOutput2.java}  |  26 +--
 .../java/src/main/java/org/acme/SecondUnit.java}   |  28 ++-
 .../java/src/main/resources/org/acme/First.drl}    |  33 ++--
 .../java/src/main/resources/org/acme/Second.drl}   |  32 ++-
 .../resources/META-INF/quarkus-extension.yaml}     |  19 +-
 .../drools-quarkus-util-deployment/pom.xml         |  13 ++
 .../deployment/AbstractCompilationProvider.java    |   2 +-
 .../deployment/AbstractDroolsAssetsProcessor.java} |  36 ++--
 .../deployment/DroolsCompilationProvider.java      |   2 +-
 .../util}/deployment/ResourceCollector.java        |   2 +-
 drools-quarkus-extension/drools-quarkus/pom.xml    |   7 +-
 drools-quarkus-extension/pom.xml                   |   2 +
 29 files changed, 482 insertions(+), 404 deletions(-)

diff --git a/bom/drools-bom/pom.xml b/bom/drools-bom/pom.xml
index 55081e52f9..aecc807c9e 100644
--- a/bom/drools-bom/pom.xml
+++ b/bom/drools-bom/pom.xml
@@ -687,6 +687,25 @@
         <type>test-jar</type>
         <scope>test</scope>
       </dependency>
+      <dependency>
+        <groupId>org.drools</groupId>
+        <artifactId>drools-quarkus-ruleunits</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.drools</groupId>
+        <artifactId>drools-quarkus-ruleunits</artifactId>
+        <version>${project.version}</version>
+        <classifier>sources</classifier>      
+      </dependency>
+      <dependency>
+        <groupId>org.drools</groupId>
+        <artifactId>drools-quarkus-ruleunits</artifactId>
+        <version>${project.version}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+
       <dependency>
         <groupId>org.drools</groupId>
         <artifactId>drools-quarkus-deployment</artifactId>
@@ -711,6 +730,30 @@
         <type>test-jar</type>
         <scope>test</scope>
       </dependency>
+      <dependency>
+        <groupId>org.drools</groupId>
+        <artifactId>drools-quarkus-ruleunits-deployment</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.drools</groupId>
+        <artifactId>drools-quarkus-ruleunits-deployment</artifactId>
+        <version>${project.version}</version>
+        <classifier>sources</classifier>
+      </dependency>
+      <dependency>
+        <groupId>org.drools</groupId>
+        <artifactId>drools-quarkus-ruleunits-deployment</artifactId>
+        <version>${project.version}</version>
+        <type>pom</type>
+      </dependency>
+      <dependency>
+        <groupId>org.drools</groupId>
+        <artifactId>drools-quarkus-ruleunits-deployment</artifactId>
+        <version>${project.version}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
       <dependency>
         <groupId>org.drools</groupId>
         <artifactId>drools-quarkus-util-deployment</artifactId>
@@ -729,7 +772,6 @@
         <type>test-jar</type>
         <scope>test</scope>
       </dependency>
-
       <dependency>
         <groupId>org.drools</groupId>
         <artifactId>drools-alphanetwork-compiler</artifactId>
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
 
b/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
index 6ad807ffa0..42f5aa97b9 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
+++ 
b/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
@@ -18,17 +18,6 @@
  */
 package org.drools.quarkus.deployment;
 
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import java.util.stream.StreamSupport;
 
 import io.quarkus.arc.deployment.GeneratedBeanBuildItem;
 import io.quarkus.deployment.annotations.BuildProducer;
@@ -40,69 +29,33 @@ import 
io.quarkus.deployment.builditem.GeneratedResourceBuildItem;
 import io.quarkus.deployment.builditem.LiveReloadBuildItem;
 import 
io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.pkg.builditem.CurateOutcomeBuildItem;
-import io.quarkus.maven.dependency.DependencyFlags;
-import io.quarkus.maven.dependency.ResolvedDependency;
 import io.quarkus.resteasy.reactive.spi.GeneratedJaxRsResourceBuildItem;
 import io.quarkus.vertx.http.deployment.spi.AdditionalStaticResourceBuildItem;
-import jakarta.inject.Inject;
-import org.drools.codegen.common.DroolsModelBuildContext;
-import org.drools.codegen.common.GeneratedFile;
-import org.drools.codegen.common.GeneratedFileType;
-import org.drools.compiler.kproject.models.KieBaseModelImpl;
-import org.drools.model.codegen.execmodel.PackageModel;
-import org.drools.model.codegen.project.RuleCodegen;
+import org.drools.quarkus.util.deployment.AbstractDroolsAssetsProcessor;
 import org.drools.quarkus.util.deployment.GlobalsBuildItem;
 import org.drools.quarkus.util.deployment.KmoduleKieBaseModelsBuiltItem;
 import org.drools.quarkus.util.deployment.PatternsTypesBuildItem;
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
-import org.kie.api.builder.model.KieBaseModel;
-import org.kie.api.builder.model.KieSessionModel;
-import org.kie.api.conf.EventProcessingOption;
-import org.kie.api.conf.KieBaseMutabilityOption;
-import org.kie.api.conf.PrototypesOption;
-import org.kie.api.conf.SessionsPoolOption;
-import org.kie.api.io.Resource;
-import org.kie.api.runtime.conf.ClockTypeOption;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-import static org.drools.model.codegen.project.RuleCodegen.ofResources;
-import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.HOT_RELOAD_SUPPORT_PATH;
-import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.compileGeneratedSources;
-import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.createDroolsBuildContext;
-import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.dumpFilesToDisk;
-import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.getHotReloadSupportSource;
-import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.getRuleUnitDefProducerSource;
-import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.registerResources;
-import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.toClassName;
-
-public class DroolsAssetsProcessor {
-
-    private static final Logger LOGGER = 
LoggerFactory.getLogger(DroolsAssetsProcessor.class);
-
-    @Inject
-    ArchiveRootBuildItem root;
-    @Inject
-    LiveReloadBuildItem liveReload;
-    @Inject
-    CurateOutcomeBuildItem curateOutcomeBuildItem;
-    @Inject
-    CombinedIndexBuildItem combinedIndexBuildItem;
-
-    private static final String FEATURE = "drools";
-
-    private static final String CONFIG_PREFIX = "drools.kbase.";
-
-    private static final String ASSET_DEPENDENCIES_CONFIG = 
"drools.asset.dependencies";
+public class DroolsAssetsProcessor extends AbstractDroolsAssetsProcessor{
 
+       
+       public DroolsAssetsProcessor() {
+               super();
+       }
+       
     @BuildStep
     public FeatureBuildItem feature() {
         return new FeatureBuildItem(FEATURE);
     }
+    private static final String FEATURE = "drools";
 
     @BuildStep
-    public void generateSources( BuildProducer<GeneratedBeanBuildItem> 
generatedBeans,
+    public void generateSources( 
+               ArchiveRootBuildItem root,
+           LiveReloadBuildItem liveReload,
+           CurateOutcomeBuildItem curateOutcomeBuildItem,
+           CombinedIndexBuildItem combinedIndexBuildItem,              
+           BuildProducer<GeneratedBeanBuildItem> generatedBeans,
                                  BuildProducer<NativeImageResourceBuildItem> 
resource,
                                  
BuildProducer<AdditionalStaticResourceBuildItem> staticResProducer,
                                  BuildProducer<GeneratedResourceBuildItem> 
genResBI,
@@ -110,144 +63,6 @@ public class DroolsAssetsProcessor {
                                  BuildProducer<KmoduleKieBaseModelsBuiltItem> 
kbaseModelsBI,
                                  BuildProducer<GlobalsBuildItem> globalsBI,
                                  
BuildProducer<GeneratedJaxRsResourceBuildItem> jaxrsProducer) {
-
-        DroolsModelBuildContext context = 
createDroolsBuildContext(root.getPaths(), combinedIndexBuildItem.getIndex());
-
-        Path[] assetPaths = getAssetPaths(context);
-        Collection<Resource> resources = 
ResourceCollector.fromPaths(assetPaths);
-
-        RuleCodegen ruleCodegen = ofResources(context, 
resources).withKieBaseModels(readKieBaseModels());
-        Collection<GeneratedFile> generatedFiles = ruleCodegen.generate();
-        
generatedFiles.addAll(getRuleUnitDefProducerSource(combinedIndexBuildItem.getIndex()));
-
-        // The HotReloadSupportClass has to be generated only during the first 
model generation
-        // During actual hot reloads it will be regenerated by the compilation 
providers in order to retrigger this build step
-        if (!liveReload.isLiveReload()) {
-            generatedFiles.add(new GeneratedFile(GeneratedFileType.SOURCE, 
HOT_RELOAD_SUPPORT_PATH + ".java", getHotReloadSupportSource()));
-        }
-
-        // dump files to disk
-        dumpFilesToDisk(context.getAppPaths(), generatedFiles);
-
-        Collection<ResolvedDependency> dependencies = 
curateOutcomeBuildItem.getApplicationModel().getRuntimeDependencies();
-
-        // build Java source code and register the generated beans
-        Collection<GeneratedBeanBuildItem> generatedBeanBuildItems =
-                compileGeneratedSources(context, dependencies, generatedFiles, 
liveReload.isLiveReload());
-        generatedBeanBuildItems.forEach(generatedBeans::produce);
-
-        registerResources(generatedFiles, staticResProducer, resource, 
genResBI);
-        
-        otnClasesBI.produce(new 
PatternsTypesBuildItem(ruleCodegen.getPackageModels().stream().collect(Collectors.toMap(PackageModel::getName,
 PackageModel::getOtnsClasses))));
-        if (ruleCodegen.hasKieBaseModels()) {
-            kbaseModelsBI.produce(new 
KmoduleKieBaseModelsBuiltItem(ruleCodegen.getKmoduleKieBaseModels()));
-        }
-        globalsBI.produce(new 
GlobalsBuildItem(ruleCodegen.getPackageModels().stream().collect(Collectors.toMap(PackageModel::getName,
 PackageModel::getGlobals))));
-
-        Set<String> restResourceClassNameSet = generatedFiles.stream()
-                .filter(file -> file.type() == GeneratedFileType.REST)
-                .map(file -> toClassName(file.path().toString()))
-                .collect(Collectors.toSet());
-        generatedBeanBuildItems.stream()
-                .filter(b -> restResourceClassNameSet.contains(b.getName()))
-                .forEach(b -> jaxrsProducer.produce(new 
GeneratedJaxRsResourceBuildItem(b.getName(), b.getData())));
-    }
-
-    private Path[] getAssetPaths(DroolsModelBuildContext context) {
-        Path[] appPaths = context.getAppPaths().getPaths();
-
-        Config config = ConfigProvider.getConfig();
-        Optional<List<String>> assetDependenciesOpt = 
config.getOptionalValues(ASSET_DEPENDENCIES_CONFIG, String.class);
-        if (assetDependenciesOpt.isPresent()) {
-            List<String> assetDependencies = 
assetDependenciesOpt.get().stream().map(String::trim).toList();
-            Iterable<ResolvedDependency> directDependenciesIter = 
curateOutcomeBuildItem.getApplicationModel().getDependencies(DependencyFlags.DIRECT);
-            List<ResolvedDependency> directDependencies = 
StreamSupport.stream(directDependenciesIter.spliterator(), false).toList();
-            Path[] assetDependencyPaths = directDependencies.stream()
-                    .filter(d -> assetDependencies.contains(d.getGroupId() + 
":" + d.getArtifactId()))
-                    .flatMap(d -> d.getResolvedPaths().stream())
-                    .toArray(Path[]::new);
-            LOGGER.debug("assetDependencyPaths: {}", 
Arrays.asList(assetDependencyPaths));
-            return Stream.concat(Arrays.stream(assetDependencyPaths), 
Arrays.stream(appPaths)).toArray(Path[]::new);
-        } else {
-            return appPaths;
-        }
-    }
-
-    private Map<String, KieBaseModel> readKieBaseModels() {
-        Map<String, KieBaseModel> kieBaseModels = new HashMap<>();
-        Config config = ConfigProvider.getConfig();
-
-        for (String propertyName : config.getPropertyNames()) {
-            if (!propertyName.startsWith(CONFIG_PREFIX)) {
-                continue;
-            }
-
-            String[] splitProp = 
propertyName.substring(CONFIG_PREFIX.length()).split("\\.");
-            if (splitProp.length < 2) {
-                LOGGER.error("Malformed Drools property: " + propertyName);
-                continue;
-            }
-
-            String kBaseName = splitProp[0];
-            KieBaseModel kieBaseModel = 
kieBaseModels.computeIfAbsent(kBaseName, KieBaseModelImpl::new);
-            switch (splitProp[1]) {
-                case "packages":
-                    for (String pkg : config.getValue(propertyName, 
String.class).split("\\,")) {
-                        kieBaseModel.addPackage(pkg);
-                    }
-                    break;
-                case "default":
-                    kieBaseModel.setDefault( config.getValue(propertyName, 
Boolean.class) );
-                    break;
-                case "prototypes":
-                    
kieBaseModel.setPrototypes(PrototypesOption.determinePrototypesOption(config.getValue(propertyName,
 String.class)));
-                    break;
-                case "eventProcessingMode":
-                    
kieBaseModel.setEventProcessingMode(EventProcessingOption.determineEventProcessingMode(config.getValue(propertyName,
 String.class)));
-                    break;
-                case "mutability":
-                    
kieBaseModel.setMutability(KieBaseMutabilityOption.determineMutability(config.getValue(propertyName,
 String.class)));
-                    break;
-                case "sessionsPool":
-                    
kieBaseModel.setSessionsPool(SessionsPoolOption.get(config.getValue(propertyName,
 Integer.class)));
-                    break;
-                case "ksessions":
-                    for (String ksession : config.getValue(propertyName, 
String.class).split("\\,")) {
-                        kieBaseModel.newKieSessionModel(ksession);
-                    }
-                    break;
-                case "ksession":
-                    if (splitProp.length == 2) {
-                        
kieBaseModel.newKieSessionModel(config.getValue(propertyName, String.class));
-                    } else {
-                        if (splitProp.length < 4) {
-                            LOGGER.error("Malformed Drools property: " + 
propertyName);
-                            break;
-                        }
-
-                        String kSessionName = splitProp[2];
-                        KieSessionModel kieSessionModel = 
kieBaseModel.getKieSessionModels().get(kSessionName);
-                        if (kieSessionModel == null) {
-                            kieSessionModel = 
kieBaseModel.newKieSessionModel(kSessionName);
-                        }
-
-                        switch (splitProp[3]) {
-                            case "default":
-                                kieSessionModel.setDefault( 
config.getValue(propertyName, Boolean.class) );
-                                break;
-                            case "stateless":
-                                kieSessionModel.setType( 
config.getValue(propertyName, Boolean.class) ? 
KieSessionModel.KieSessionType.STATELESS : 
KieSessionModel.KieSessionType.STATEFUL );
-                                break;
-                            case "clockType":
-                                kieSessionModel.setClockType( 
ClockTypeOption.get(config.getValue(propertyName, String.class) ) );
-                                break;
-                        }
-                    }
-                    break;
-            }
-
-        }
-
-        return kieBaseModels;
+       super.generateSources(root, liveReload, curateOutcomeBuildItem, 
combinedIndexBuildItem, generatedBeans, resource, staticResProducer, genResBI, 
otnClasesBI, kbaseModelsBI, globalsBI, jaxrsProducer);
     }
 }
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
 
b/drools-quarkus-extension/drools-quarkus-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
index d76f53f9cb..6830a11e32 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
+++ 
b/drools-quarkus-extension/drools-quarkus-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
@@ -17,4 +17,4 @@
 # under the License.
 #
 
-org.drools.quarkus.deployment.DroolsCompilationProvider
\ No newline at end of file
+org.drools.quarkus.util.deployment.DroolsCompilationProvider
\ No newline at end of file
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/test/java/org/drools/quarkus/deployment/BuildItemsTest.java
 
b/drools-quarkus-extension/drools-quarkus-deployment/src/test/java/org/drools/quarkus/deployment/BuildItemsTest.java
index 043aad820f..75cfa8f367 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/test/java/org/drools/quarkus/deployment/BuildItemsTest.java
+++ 
b/drools-quarkus-extension/drools-quarkus-deployment/src/test/java/org/drools/quarkus/deployment/BuildItemsTest.java
@@ -52,6 +52,8 @@ import io.quarkus.test.QuarkusUnitTest;
 /*
  * The scope of these tests is to check the resulting BuildItems as produced 
by this drools-quarkus-extension.
  */
+
+
 public class BuildItemsTest {
     
     static final Logger LOG = LoggerFactory.getLogger(BuildItemsTest.class);
@@ -65,6 +67,7 @@ public class BuildItemsTest {
                 b.addBuildStep(new BuildStep() {
                     @Override
                     public void execute(BuildContext context) {
+                       
                         GlobalsBuildItem gbi = 
context.consume(GlobalsBuildItem.class);
                         assertGlobals(gbi.getGlobals());
                         
diff --git 
a/drools-quarkus-extension/drools-quarkus-examples/drools-quarkus-examples-multiunit/pom.xml
 
b/drools-quarkus-extension/drools-quarkus-examples/drools-quarkus-examples-multiunit/pom.xml
index 461c155ba9..872069de54 100644
--- 
a/drools-quarkus-extension/drools-quarkus-examples/drools-quarkus-examples-multiunit/pom.xml
+++ 
b/drools-quarkus-extension/drools-quarkus-examples/drools-quarkus-examples-multiunit/pom.xml
@@ -29,7 +29,7 @@
     <version>999-SNAPSHOT</version>
   </parent>
 
-  <name>Drools :: Quarkus Extension :: Examples :: Reactive</name>
+  <name>Drools :: Quarkus Extension :: Examples :: Multiunit</name>
   <artifactId>drools-quarkus-examples-multiunit</artifactId>
 
   <properties>
@@ -39,11 +39,7 @@
   <dependencies>
     <dependency>
       <groupId>org.drools</groupId>
-      <artifactId>drools-quarkus</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.drools</groupId>
-      <artifactId>drools-ruleunits-engine</artifactId>
+      <artifactId>drools-quarkus-ruleunits</artifactId>
     </dependency>
     <dependency>
       <groupId>io.quarkus</groupId>
@@ -73,7 +69,7 @@
       of it -->
     <dependency>
       <groupId>org.drools</groupId>
-      <artifactId>drools-quarkus-deployment</artifactId>
+      <artifactId>drools-quarkus-ruleunits-deployment</artifactId>
       <scope>test</scope>
       <exclusions>
         <exclusion>
diff --git 
a/drools-quarkus-extension/drools-quarkus-examples/drools-quarkus-examples-reactive/pom.xml
 
b/drools-quarkus-extension/drools-quarkus-examples/drools-quarkus-examples-reactive/pom.xml
index 081ac97154..8c94031080 100644
--- 
a/drools-quarkus-extension/drools-quarkus-examples/drools-quarkus-examples-reactive/pom.xml
+++ 
b/drools-quarkus-extension/drools-quarkus-examples/drools-quarkus-examples-reactive/pom.xml
@@ -39,11 +39,7 @@
   <dependencies>
     <dependency>
       <groupId>org.drools</groupId>
-      <artifactId>drools-quarkus</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.drools</groupId>
-      <artifactId>drools-ruleunits-engine</artifactId>
+      <artifactId>drools-quarkus-ruleunits</artifactId>
     </dependency>
     <dependency>
       <groupId>io.quarkus</groupId>
@@ -88,7 +84,7 @@
       of it -->
     <dependency>
       <groupId>org.drools</groupId>
-      <artifactId>drools-quarkus-deployment</artifactId>
+      <artifactId>drools-quarkus-ruleunits-deployment</artifactId>
       <scope>test</scope>
       <exclusions>
         <exclusion>
diff --git a/drools-quarkus-extension/drools-quarkus-quickstart-test/guide.adoc 
b/drools-quarkus-extension/drools-quarkus-quickstart-test/guide.adoc
index 40d7a74ee1..53a021ece9 100644
--- a/drools-quarkus-extension/drools-quarkus-quickstart-test/guide.adoc
+++ b/drools-quarkus-extension/drools-quarkus-quickstart-test/guide.adoc
@@ -66,11 +66,7 @@ When you have your Quarkus project configured, you can add 
the Drools Quarkus ex
 ----
 <dependency>
     <groupId>org.drools</groupId>
-    <artifactId>drools-quarkus</artifactId>
-</dependency>
-<dependency>
-    <groupId>org.drools</groupId>
-    <artifactId>drools-ruleunits-engine</artifactId>
+    <artifactId>drools-quarkus-ruleunits</artifactId>
 </dependency>
 
 <dependency>
diff --git a/drools-quarkus-extension/drools-quarkus-quickstart-test/pom.xml 
b/drools-quarkus-extension/drools-quarkus-quickstart-test/pom.xml
index 2e4724e4da..7dd782dd98 100644
--- a/drools-quarkus-extension/drools-quarkus-quickstart-test/pom.xml
+++ b/drools-quarkus-extension/drools-quarkus-quickstart-test/pom.xml
@@ -39,11 +39,7 @@
   <dependencies>
     <dependency>
       <groupId>org.drools</groupId>
-      <artifactId>drools-quarkus</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.drools</groupId>
-      <artifactId>drools-ruleunits-engine</artifactId>
+      <artifactId>drools-quarkus-ruleunits</artifactId>
     </dependency>
     <dependency>
       <groupId>io.quarkus</groupId>
@@ -79,7 +75,7 @@
     <!-- this is used implicitly by quarkus tests so let's make Maven aware of 
it -->
     <dependency>
       <groupId>org.drools</groupId>
-      <artifactId>drools-quarkus-deployment</artifactId>
+      <artifactId>drools-quarkus-ruleunits-deployment</artifactId>
       <type>pom</type>
       <scope>test</scope>
       <exclusions>
diff --git 
a/drools-quarkus-extension/drools-quarkus-ruleunit-integration-test/pom.xml 
b/drools-quarkus-extension/drools-quarkus-ruleunit-integration-test/pom.xml
index f1df8766b4..e1e1a79e83 100644
--- a/drools-quarkus-extension/drools-quarkus-ruleunit-integration-test/pom.xml
+++ b/drools-quarkus-extension/drools-quarkus-ruleunit-integration-test/pom.xml
@@ -29,7 +29,7 @@
     <version>999-SNAPSHOT</version>
   </parent>
 
-  <name>Drools :: Quarkus Extension :: Integration Test with Rule Unit</name>
+  <name>Drools :: Quarkus Extension :: Integration Test :: Ruleunits</name>
   <artifactId>drools-quarkus-ruleunit-integration-test</artifactId>
 
   <properties>
@@ -39,11 +39,7 @@
   <dependencies>
     <dependency>
       <groupId>org.drools</groupId>
-      <artifactId>drools-quarkus</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.drools</groupId>
-      <artifactId>drools-ruleunits-engine</artifactId>
+      <artifactId>drools-quarkus-ruleunits</artifactId>
     </dependency>
     <dependency>
       <groupId>io.quarkus</groupId>
@@ -86,7 +82,7 @@
     <!-- this is used implicitly by quarkus tests so let's make Maven aware of 
it -->
     <dependency>
       <groupId>org.drools</groupId>
-      <artifactId>drools-quarkus-deployment</artifactId>
+      <artifactId>drools-quarkus-ruleunits-deployment</artifactId>
       <type>pom</type>
       <scope>test</scope>
       <exclusions>
@@ -231,4 +227,4 @@
       </build>
     </profile>
   </profiles>
-</project>
\ No newline at end of file
+</project>
diff --git 
a/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/pom.xml 
b/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/pom.xml
new file mode 100644
index 0000000000..eb12c96de3
--- /dev/null
+++ b/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/pom.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-quarkus-extension</artifactId>
+      <version>999-SNAPSHOT</version>
+    </parent>
+
+  <name>Drools :: Quarkus Extension :: Deployment :: Ruleunits</name>
+  <artifactId>drools-quarkus-ruleunits-deployment</artifactId>
+
+  <properties>
+    
<java.module.name>org.drools.quarkus.ruleunits.deployment</java.module.name>
+  </properties>
+
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.kie</groupId>
+        <artifactId>kie-drl-map-input-runtime</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-quarkus-ruleunits</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-quarkus-util-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-xml-support</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-model-codegen</artifactId>
+        </dependency>
+
+      <!-- quarkus -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-core-deployment</artifactId>
+            <exclusions>
+              <exclusion>
+                <groupId>org.jboss</groupId>
+                <artifactId>jandex</artifactId>
+              </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-arc-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-rest-server-spi-deployment</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-vertx-http-deployment-spi</artifactId>
+        </dependency>
+
+    <!-- test -->
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-junit5-internal</artifactId>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-xml</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.apache.maven</groupId>
+          <artifactId>maven-xml-impl</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>io.rest-assured</groupId>
+      <artifactId>rest-assured</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+        <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+  </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <annotationProcessorPaths>
+                        <path>
+                            <groupId>io.quarkus</groupId>
+                            
<artifactId>quarkus-extension-processor</artifactId>
+                            <version>${version.io.quarkus}</version>
+                        </path>
+                    </annotationProcessorPaths>
+                    <compilerArgs>
+                        <arg>-AlegacyConfigRoot=true</arg>
+                    </compilerArgs>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <executions>
+                  <execution>
+                    <id>default-test</id>
+                    <phase>test</phase>
+                    <goals>
+                      <goal>test</goal>
+                    </goals>
+                    <configuration>
+                      <systemPropertyVariables>
+                        
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
+                      </systemPropertyVariables>
+                    </configuration>
+                  </execution>
+                </executions>
+                <configuration>
+                  <systemPropertyVariables>
+                    
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
+                  </systemPropertyVariables>
+                </configuration>
+              </plugin>
+
+            <!-- quarkus-resteasy brings in a couple of dependencies in the 
javax.* namespace that cannot be excluded -->
+            <!-- that's why it is necessary to disable the plugin that checks 
for banned dependencies -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>ban-blacklisted-dependencies</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <fail>false</fail>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build></project>
diff --git 
a/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/src/main/java/org/drools/quarkus/deployment/ruleunit/DroolsAssetsProcessor.java
 
b/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/src/main/java/org/drools/quarkus/deployment/ruleunit/DroolsAssetsProcessor.java
new file mode 100644
index 0000000000..87671b7de1
--- /dev/null
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/src/main/java/org/drools/quarkus/deployment/ruleunit/DroolsAssetsProcessor.java
@@ -0,0 +1,68 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.drools.quarkus.deployment.ruleunit;
+
+
+import io.quarkus.arc.deployment.GeneratedBeanBuildItem;
+import io.quarkus.deployment.annotations.BuildProducer;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.ArchiveRootBuildItem;
+import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.GeneratedResourceBuildItem;
+import io.quarkus.deployment.builditem.LiveReloadBuildItem;
+import 
io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
+import io.quarkus.deployment.pkg.builditem.CurateOutcomeBuildItem;
+import io.quarkus.resteasy.reactive.spi.GeneratedJaxRsResourceBuildItem;
+import io.quarkus.vertx.http.deployment.spi.AdditionalStaticResourceBuildItem;
+import org.drools.quarkus.util.deployment.AbstractDroolsAssetsProcessor;
+import org.drools.quarkus.util.deployment.GlobalsBuildItem;
+import org.drools.quarkus.util.deployment.KmoduleKieBaseModelsBuiltItem;
+import org.drools.quarkus.util.deployment.PatternsTypesBuildItem;
+
+public class DroolsAssetsProcessor extends AbstractDroolsAssetsProcessor{
+
+       
+       public DroolsAssetsProcessor() {
+               super();
+       }
+       
+    @BuildStep
+    public FeatureBuildItem feature() {
+        return new FeatureBuildItem(FEATURE);
+    }
+    private static final String FEATURE = "drools";
+
+    @BuildStep
+    public void generateSources( 
+               ArchiveRootBuildItem root,
+           LiveReloadBuildItem liveReload,
+           CurateOutcomeBuildItem curateOutcomeBuildItem,
+           CombinedIndexBuildItem combinedIndexBuildItem,              
+           BuildProducer<GeneratedBeanBuildItem> generatedBeans,
+                                 BuildProducer<NativeImageResourceBuildItem> 
resource,
+                                 
BuildProducer<AdditionalStaticResourceBuildItem> staticResProducer,
+                                 BuildProducer<GeneratedResourceBuildItem> 
genResBI,
+                                 BuildProducer<PatternsTypesBuildItem> 
otnClasesBI,
+                                 BuildProducer<KmoduleKieBaseModelsBuiltItem> 
kbaseModelsBI,
+                                 BuildProducer<GlobalsBuildItem> globalsBI,
+                                 
BuildProducer<GeneratedJaxRsResourceBuildItem> jaxrsProducer) {
+       super.generateSources(root, liveReload, curateOutcomeBuildItem, 
combinedIndexBuildItem, generatedBeans, resource, staticResProducer, genResBI, 
otnClasesBI, kbaseModelsBI, globalsBI, jaxrsProducer);
+    }
+}
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
 
b/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
similarity index 92%
copy from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
copy to 
drools-quarkus-extension/drools-quarkus-ruleunits-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
index d76f53f9cb..6830a11e32 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
@@ -17,4 +17,4 @@
 # under the License.
 #
 
-org.drools.quarkus.deployment.DroolsCompilationProvider
\ No newline at end of file
+org.drools.quarkus.util.deployment.DroolsCompilationProvider
\ No newline at end of file
diff --git a/drools-quarkus-extension/drools-quarkus/pom.xml 
b/drools-quarkus-extension/drools-quarkus-ruleunits/pom.xml
similarity index 94%
copy from drools-quarkus-extension/drools-quarkus/pom.xml
copy to drools-quarkus-extension/drools-quarkus-ruleunits/pom.xml
index 5bf7e4d928..c0f0737dad 100644
--- a/drools-quarkus-extension/drools-quarkus/pom.xml
+++ b/drools-quarkus-extension/drools-quarkus-ruleunits/pom.xml
@@ -29,16 +29,20 @@
         <version>999-SNAPSHOT</version>
     </parent>
 
-    <artifactId>drools-quarkus</artifactId>
-    <name>Drools Quarkus - Runtime</name>
-    <description>Define and execute your business rules with 
Drools</description>
+    <artifactId>drools-quarkus-ruleunits</artifactId>
+    <name>Drools :: Quarkus Extension :: Runtime :: Ruleunits</name>
+    <description>Define and execute your business rules with Drools and 
Ruleunits</description>
     <url>https://www.drools.org/</url>
 
     <properties>
-        <java.module.name>org.drools.quarkus.runtime</java.module.name>
+        
<java.module.name>org.drools.quarkus.ruleunits.runtime</java.module.name>
     </properties>
 
     <dependencies>
+           <dependency>
+             <groupId>org.drools</groupId>
+             <artifactId>drools-ruleunits-engine</artifactId>
+           </dependency>
         <dependency>
             <groupId>org.kie</groupId>
             <artifactId>kie-api</artifactId>
@@ -108,8 +112,7 @@
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
-
-    </dependencies>
+     </dependencies>
 
     <build>
         <plugins>
@@ -152,6 +155,7 @@
                 <groupId>io.smallrye</groupId>
                 <artifactId>jandex-maven-plugin</artifactId>
             </plugin>
+        
                      <plugin>
                        <artifactId>maven-jar-plugin</artifactId>
                        <executions>
diff --git 
a/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/codestart.yml
 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/codestart.yml
new file mode 100644
index 0000000000..9f965077fe
--- /dev/null
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/codestart.yml
@@ -0,0 +1,26 @@
+ # 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.
+ 
+
+name: quarkus-drools-ruleunits-codestart
+ref: quarkus-drools-ruleunits
+type: code
+tags: extension-codestart
+metadata:
+  title: Quarkus Drool Ruleunits Codestsart
+  description: Start to code with the Quarkus Drool Ruleunits Extension
+  related-guide-section: https://quarkus.io/guides/drools
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/FirstUnit.java
similarity index 52%
copy from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
copy to 
drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/FirstUnit.java
index 885900c3af..c2a0662da5 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/FirstUnit.java
@@ -16,28 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
+package org.acme;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+import org.drools.ruleunits.api.DataSource;
+import org.drools.ruleunits.api.DataStream;
+import org.drools.ruleunits.api.RuleUnitData;
 
-import org.kie.api.io.ResourceType;
+public class FirstUnit implements RuleUnitData {
 
-public class DroolsCompilationProvider extends AbstractCompilationProvider {
+    private final DataStream<RuleInput> input = DataSource.createStream();
+    private final DataStream<RuleOutput1> output = DataSource.createStream();
 
-    private static final Set<String> MANAGED_EXTENSIONS = initExtensions();
-
-    private static Set<String> initExtensions() {
-        Set<String> extensions = new HashSet<>();
-        extensions.addAll(ResourceType.DRL.getAllExtensions());
-        extensions.addAll(ResourceType.DTABLE.getAllExtensions());
-        extensions.addAll(ResourceType.YAML.getAllExtensions());
-        return Collections.unmodifiableSet(extensions);
+    public DataStream<RuleInput> getInput() {
+        return input;
     }
 
-    @Override
-    public Set<String> handledExtensions() {
-        return MANAGED_EXTENSIONS;
+    public DataStream<RuleOutput1> getOutput() {
+        return output;
     }
 }
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/RuleInput.java
similarity index 52%
copy from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
copy to 
drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/RuleInput.java
index 885900c3af..4099812ffc 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/RuleInput.java
@@ -16,28 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
+package org.acme;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+import org.drools.ruleunits.api.RuleUnitData;
 
-import org.kie.api.io.ResourceType;
+public class RuleInput implements RuleUnitData {
 
-public class DroolsCompilationProvider extends AbstractCompilationProvider {
+    private final String text;
 
-    private static final Set<String> MANAGED_EXTENSIONS = initExtensions();
-
-    private static Set<String> initExtensions() {
-        Set<String> extensions = new HashSet<>();
-        extensions.addAll(ResourceType.DRL.getAllExtensions());
-        extensions.addAll(ResourceType.DTABLE.getAllExtensions());
-        extensions.addAll(ResourceType.YAML.getAllExtensions());
-        return Collections.unmodifiableSet(extensions);
+    public RuleInput(String text) {
+        this.text = text;
     }
 
-    @Override
-    public Set<String> handledExtensions() {
-        return MANAGED_EXTENSIONS;
+    public String getText() {
+        return text;
     }
 }
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/RuleOutput1.java
similarity index 52%
copy from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
copy to 
drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/RuleOutput1.java
index 885900c3af..bf6b92b1c3 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/RuleOutput1.java
@@ -16,28 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
+package org.acme;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+public class RuleOutput1 {
 
-import org.kie.api.io.ResourceType;
+    private final String text;
 
-public class DroolsCompilationProvider extends AbstractCompilationProvider {
-
-    private static final Set<String> MANAGED_EXTENSIONS = initExtensions();
-
-    private static Set<String> initExtensions() {
-        Set<String> extensions = new HashSet<>();
-        extensions.addAll(ResourceType.DRL.getAllExtensions());
-        extensions.addAll(ResourceType.DTABLE.getAllExtensions());
-        extensions.addAll(ResourceType.YAML.getAllExtensions());
-        return Collections.unmodifiableSet(extensions);
+    public RuleOutput1(String text) {
+        this.text = text;
     }
 
-    @Override
-    public Set<String> handledExtensions() {
-        return MANAGED_EXTENSIONS;
+    public String getText() {
+        return text;
     }
 }
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/RuleOutput2.java
similarity index 52%
copy from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
copy to 
drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/RuleOutput2.java
index 885900c3af..b1693285cf 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/RuleOutput2.java
@@ -16,28 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
+package org.acme;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+public class RuleOutput2 {
+    private final String text;
 
-import org.kie.api.io.ResourceType;
-
-public class DroolsCompilationProvider extends AbstractCompilationProvider {
-
-    private static final Set<String> MANAGED_EXTENSIONS = initExtensions();
-
-    private static Set<String> initExtensions() {
-        Set<String> extensions = new HashSet<>();
-        extensions.addAll(ResourceType.DRL.getAllExtensions());
-        extensions.addAll(ResourceType.DTABLE.getAllExtensions());
-        extensions.addAll(ResourceType.YAML.getAllExtensions());
-        return Collections.unmodifiableSet(extensions);
+    public RuleOutput2(String text) {
+        this.text = text;
     }
 
-    @Override
-    public Set<String> handledExtensions() {
-        return MANAGED_EXTENSIONS;
+    public String getText() {
+        return text;
     }
 }
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/SecondUnit.java
similarity index 52%
copy from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
copy to 
drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/SecondUnit.java
index 885900c3af..818441fdac 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/java/org/acme/SecondUnit.java
@@ -16,28 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
+package org.acme;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+import org.drools.ruleunits.api.DataSource;
+import org.drools.ruleunits.api.DataStream;
+import org.drools.ruleunits.api.RuleUnitData;
 
-import org.kie.api.io.ResourceType;
+public class SecondUnit implements RuleUnitData {
 
-public class DroolsCompilationProvider extends AbstractCompilationProvider {
+    private final DataStream<RuleInput> input = DataSource.createStream();
+    private final DataStream<RuleOutput2> output = DataSource.createStream();
 
-    private static final Set<String> MANAGED_EXTENSIONS = initExtensions();
-
-    private static Set<String> initExtensions() {
-        Set<String> extensions = new HashSet<>();
-        extensions.addAll(ResourceType.DRL.getAllExtensions());
-        extensions.addAll(ResourceType.DTABLE.getAllExtensions());
-        extensions.addAll(ResourceType.YAML.getAllExtensions());
-        return Collections.unmodifiableSet(extensions);
+    public DataStream<RuleInput> getInput() {
+        return input;
     }
 
-    @Override
-    public Set<String> handledExtensions() {
-        return MANAGED_EXTENSIONS;
+    public DataStream<RuleOutput2> getOutput() {
+        return output;
     }
 }
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/resources/org/acme/First.drl
similarity index 51%
copy from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
copy to 
drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/resources/org/acme/First.drl
index 885900c3af..154ac7bc5d 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/resources/org/acme/First.drl
@@ -16,28 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+package org.acme;
 
-import org.kie.api.io.ResourceType;
+unit FirstUnit;
 
-public class DroolsCompilationProvider extends AbstractCompilationProvider {
+import org.drools.ruleunits.api.DataSource;
+import org.drools.ruleunits.api.DataStream;
+import org.drools.ruleunits.api.RuleUnitData;
 
-    private static final Set<String> MANAGED_EXTENSIONS = initExtensions();
-
-    private static Set<String> initExtensions() {
-        Set<String> extensions = new HashSet<>();
-        extensions.addAll(ResourceType.DRL.getAllExtensions());
-        extensions.addAll(ResourceType.DTABLE.getAllExtensions());
-        extensions.addAll(ResourceType.YAML.getAllExtensions());
-        return Collections.unmodifiableSet(extensions);
-    }
-
-    @Override
-    public Set<String> handledExtensions() {
-        return MANAGED_EXTENSIONS;
-    }
-}
+rule "MyRule"
+when
+    /input [ text == "Hello" ];
+then
+    System.out.println("Hi 1");
+    output.append(new RuleOutput1("Hi 1"));
+end
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/resources/org/acme/Second.drl
similarity index 51%
copy from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
copy to 
drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/resources/org/acme/Second.drl
index 885900c3af..2be9347bcb 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/codestarts/quarkus/drools-quarkus-ruleunits-codestart/java/src/main/resources/org/acme/Second.drl
@@ -16,28 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
 
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+package org.acme;
 
-import org.kie.api.io.ResourceType;
+unit SecondUnit;
 
-public class DroolsCompilationProvider extends AbstractCompilationProvider {
+import org.drools.ruleunits.api.DataSource;
+import org.drools.ruleunits.api.DataStream;
+import org.drools.ruleunits.api.RuleUnitData;
 
-    private static final Set<String> MANAGED_EXTENSIONS = initExtensions();
-
-    private static Set<String> initExtensions() {
-        Set<String> extensions = new HashSet<>();
-        extensions.addAll(ResourceType.DRL.getAllExtensions());
-        extensions.addAll(ResourceType.DTABLE.getAllExtensions());
-        extensions.addAll(ResourceType.YAML.getAllExtensions());
-        return Collections.unmodifiableSet(extensions);
-    }
-
-    @Override
-    public Set<String> handledExtensions() {
-        return MANAGED_EXTENSIONS;
-    }
-}
+rule "MyRule"
+when
+    /input [ text == "Hello" ];
+then
+    output.append(new RuleOutput2("Hi 2"));
+end
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/resources/META-INF/quarkus-extension.yaml
similarity index 65%
copy from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
copy to 
drools-quarkus-extension/drools-quarkus-ruleunits/src/main/resources/META-INF/quarkus-extension.yaml
index d76f53f9cb..6c76af0c2d 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/resources/META-INF/services/io.quarkus.deployment.dev.CompilationProvider
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits/src/main/resources/META-INF/quarkus-extension.yaml
@@ -17,4 +17,21 @@
 # under the License.
 #
 
-org.drools.quarkus.deployment.DroolsCompilationProvider
\ No newline at end of file
+---
+name: "Drools Ruleunits"
+metadata:
+  keywords:
+  - "drools"
+  - "rules"
+  - "rule engine"
+  - "artificial intelligence"
+  - "DRL"
+  guide: "https://quarkus.io/guides/drools";
+  categories:
+    - "business-automation"
+  status: "stable"
+  codestart:
+      name: quarkus-drools-ruleunits
+      languages:
+      - "java"
+      artifact: 
"org.drools:drools-quarkus-ruleunits:codestarts:jar:${project.version}"
diff --git a/drools-quarkus-extension/drools-quarkus-util-deployment/pom.xml 
b/drools-quarkus-extension/drools-quarkus-util-deployment/pom.xml
index 5ee6b05108..b9a3cbc0f0 100644
--- a/drools-quarkus-extension/drools-quarkus-util-deployment/pom.xml
+++ b/drools-quarkus-extension/drools-quarkus-util-deployment/pom.xml
@@ -49,6 +49,14 @@
             <groupId>org.drools</groupId>
             <artifactId>drools-codegen-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-xml-support</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.drools</groupId>
+            <artifactId>drools-model-codegen</artifactId>
+        </dependency>
 
         <!-- quarkus -->
         <dependency>
@@ -69,6 +77,11 @@
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-vertx-http-deployment-spi</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-rest-server-spi-deployment</artifactId>
+        </dependency>
+        
 
     </dependencies>
 </project>
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/AbstractCompilationProvider.java
 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractCompilationProvider.java
similarity index 98%
rename from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/AbstractCompilationProvider.java
rename to 
drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractCompilationProvider.java
index a854acde13..f36a5affd1 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/AbstractCompilationProvider.java
+++ 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractCompilationProvider.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
+package org.drools.quarkus.util.deployment;
 
 import java.io.File;
 import java.io.IOException;
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java
similarity index 92%
copy from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
copy to 
drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java
index 6ad807ffa0..d11542d157 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
+++ 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
+package org.drools.quarkus.util.deployment;
 
 import java.nio.file.Path;
 import java.util.Arrays;
@@ -32,7 +32,6 @@ import java.util.stream.StreamSupport;
 
 import io.quarkus.arc.deployment.GeneratedBeanBuildItem;
 import io.quarkus.deployment.annotations.BuildProducer;
-import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.ArchiveRootBuildItem;
 import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
@@ -44,16 +43,12 @@ import io.quarkus.maven.dependency.DependencyFlags;
 import io.quarkus.maven.dependency.ResolvedDependency;
 import io.quarkus.resteasy.reactive.spi.GeneratedJaxRsResourceBuildItem;
 import io.quarkus.vertx.http.deployment.spi.AdditionalStaticResourceBuildItem;
-import jakarta.inject.Inject;
 import org.drools.codegen.common.DroolsModelBuildContext;
 import org.drools.codegen.common.GeneratedFile;
 import org.drools.codegen.common.GeneratedFileType;
 import org.drools.compiler.kproject.models.KieBaseModelImpl;
 import org.drools.model.codegen.execmodel.PackageModel;
 import org.drools.model.codegen.project.RuleCodegen;
-import org.drools.quarkus.util.deployment.GlobalsBuildItem;
-import org.drools.quarkus.util.deployment.KmoduleKieBaseModelsBuiltItem;
-import org.drools.quarkus.util.deployment.PatternsTypesBuildItem;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.kie.api.builder.model.KieBaseModel;
@@ -77,32 +72,23 @@ import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.getR
 import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.registerResources;
 import static 
org.drools.quarkus.util.deployment.DroolsQuarkusResourceUtils.toClassName;
 
-public class DroolsAssetsProcessor {
+public class AbstractDroolsAssetsProcessor {
 
-    private static final Logger LOGGER = 
LoggerFactory.getLogger(DroolsAssetsProcessor.class);
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(AbstractDroolsAssetsProcessor.class);
 
-    @Inject
-    ArchiveRootBuildItem root;
-    @Inject
-    LiveReloadBuildItem liveReload;
-    @Inject
-    CurateOutcomeBuildItem curateOutcomeBuildItem;
-    @Inject
-    CombinedIndexBuildItem combinedIndexBuildItem;
 
-    private static final String FEATURE = "drools";
 
     private static final String CONFIG_PREFIX = "drools.kbase.";
 
     private static final String ASSET_DEPENDENCIES_CONFIG = 
"drools.asset.dependencies";
 
-    @BuildStep
-    public FeatureBuildItem feature() {
-        return new FeatureBuildItem(FEATURE);
-    }
 
-    @BuildStep
-    public void generateSources( BuildProducer<GeneratedBeanBuildItem> 
generatedBeans,
+    public void generateSources( ArchiveRootBuildItem root,
+           LiveReloadBuildItem liveReload,
+           CurateOutcomeBuildItem curateOutcomeBuildItem,
+           CombinedIndexBuildItem combinedIndexBuildItem,
+               
+               BuildProducer<GeneratedBeanBuildItem> generatedBeans,
                                  BuildProducer<NativeImageResourceBuildItem> 
resource,
                                  
BuildProducer<AdditionalStaticResourceBuildItem> staticResProducer,
                                  BuildProducer<GeneratedResourceBuildItem> 
genResBI,
@@ -113,7 +99,7 @@ public class DroolsAssetsProcessor {
 
         DroolsModelBuildContext context = 
createDroolsBuildContext(root.getPaths(), combinedIndexBuildItem.getIndex());
 
-        Path[] assetPaths = getAssetPaths(context);
+        Path[] assetPaths = getAssetPaths(context, curateOutcomeBuildItem);
         Collection<Resource> resources = 
ResourceCollector.fromPaths(assetPaths);
 
         RuleCodegen ruleCodegen = ofResources(context, 
resources).withKieBaseModels(readKieBaseModels());
@@ -153,7 +139,7 @@ public class DroolsAssetsProcessor {
                 .forEach(b -> jaxrsProducer.produce(new 
GeneratedJaxRsResourceBuildItem(b.getName(), b.getData())));
     }
 
-    private Path[] getAssetPaths(DroolsModelBuildContext context) {
+    private Path[] getAssetPaths(DroolsModelBuildContext context, 
CurateOutcomeBuildItem curateOutcomeBuildItem) {
         Path[] appPaths = context.getAppPaths().getPaths();
 
         Config config = ConfigProvider.getConfig();
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/DroolsCompilationProvider.java
similarity index 97%
rename from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
rename to 
drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/DroolsCompilationProvider.java
index 885900c3af..8273101be0 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsCompilationProvider.java
+++ 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/DroolsCompilationProvider.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
+package org.drools.quarkus.util.deployment;
 
 import java.util.Collections;
 import java.util.HashSet;
diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/ResourceCollector.java
 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/ResourceCollector.java
similarity index 99%
rename from 
drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/ResourceCollector.java
rename to 
drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/ResourceCollector.java
index 746885d8a8..eb7a1d9289 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/ResourceCollector.java
+++ 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/ResourceCollector.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.drools.quarkus.deployment;
+package org.drools.quarkus.util.deployment;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/drools-quarkus-extension/drools-quarkus/pom.xml 
b/drools-quarkus-extension/drools-quarkus/pom.xml
index 5bf7e4d928..c733de8f9a 100644
--- a/drools-quarkus-extension/drools-quarkus/pom.xml
+++ b/drools-quarkus-extension/drools-quarkus/pom.xml
@@ -30,7 +30,7 @@
     </parent>
 
     <artifactId>drools-quarkus</artifactId>
-    <name>Drools Quarkus - Runtime</name>
+    <name>Drools :: Quarkus Extension :: Runtime</name>
     <description>Define and execute your business rules with 
Drools</description>
     <url>https://www.drools.org/</url>
 
@@ -38,7 +38,7 @@
         <java.module.name>org.drools.quarkus.runtime</java.module.name>
     </properties>
 
-    <dependencies>
+       <dependencies>
         <dependency>
             <groupId>org.kie</groupId>
             <artifactId>kie-api</artifactId>
@@ -108,8 +108,7 @@
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
-
-    </dependencies>
+       </dependencies>
 
     <build>
         <plugins>
diff --git a/drools-quarkus-extension/pom.xml b/drools-quarkus-extension/pom.xml
index 71f86d688a..9d14268140 100644
--- a/drools-quarkus-extension/pom.xml
+++ b/drools-quarkus-extension/pom.xml
@@ -39,6 +39,8 @@
     <module>drools-quarkus-util-deployment</module>
     <module>drools-quarkus</module>
     <module>drools-quarkus-deployment</module>
+    <module>drools-quarkus-ruleunits</module>
+    <module>drools-quarkus-ruleunits-deployment</module>
     <module>drools-quarkus-integration-test</module>
     <module>drools-quarkus-integration-test-kmodule</module>
     <module>drools-quarkus-integration-test-hotreload</module>


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

Reply via email to