Uploaded image for project: 'Kogito'
  1. Kogito
  2. KOGITO-6286

Quarkus Platform Kogito BOM inconsistent Spring Boot exclusions

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • None
    • 1.13.0.Final
    • Build and release
    • None
    • False
    • False

      Kogito BOM by default contains all the Kogito artifacts, including Spring Boot ones.

      This leads to problem in Quarkus Platform, where those Spring Boot artifacts are not expected to be.

      Up to now it was dealt with using Quarkus Platform specific configuration using exclusions [2]. That requires explicit mentioning of such GAV items. Moreover, in case there are GAV with varying classifiers (like JAR + sources, javadoc, etc). There would need to be exclusion for each individual item. So far we've had:

      <bomGenerator>
        ...
        <excludedDependencies>
          ...
          <!-- Kogito: exclude Spring-related dependencies -->                                
          <dependency>org.kie.kogito:kogito-spring-boot-starter</dependency>                                
          <dependency>org.kie.kogito:kogito-decisions-spring-boot-starter</dependency>                                
          <dependency>org.kie.kogito:kogito-processes-spring-boot-starter</dependency>                                
          <dependency>org.kie.kogito:kogito-rules-spring-boot-starter</dependency>                              
        </excludedDependencies>
      </bomGenerator>

      But already this configuration is not complete, lacking some GAV altogether, for others extra classifier-specific entries would be needed.

      For example in current Quarkus Platform, there's following entry in quarkus-kogito-bom[1]:

            <dependency>
              <groupId>org.kie.kogito</groupId>
              <artifactId>kogito-decisions-spring-boot-starter</artifactId>
              <version>1.13.0.Final</version>
              <classifier>sources</classifier>
            </dependency> 

      Even though we excluded decisions JAR, sources artifact is still present in the resulting BOM [1].

       

      Now the scope of what would need to be excluded grows with the Spring Boot specific addons that are also part of kogito-bom, turning this exclusion method daunting and prone to error (with each single addition the config becomes obsolete).

      The ideal solution here would be to introduce Quarkus specific and Spring Boot specific user BOMs to prevent any need for exclusions.

       

      [1]https://github.com/quarkusio/quarkus-platform/blob/main/generated-platform-project/quarkus-kogito/bom/pom.xml

      [2] https://github.com/quarkusio/quarkus-platform/blob/main/pom.xml#L489

       

       

              Unassigned Unassigned
              jstastny@redhat.com Jan Stastny
              Marian Macik Marian Macik
              Marian Macik Marian Macik
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: