This is an automated email from the ASF dual-hosted git repository.
gitgabrio pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git
The following commit(s) were added to refs/heads/main by this push:
new e94225dc7f [incubator-kie-issues#2326] Provide correct `Jackson 2`
integration for all Spring Boot based KIE modules (#4307)
e94225dc7f is described below
commit e94225dc7fba9fa353514626a4256888e5e1996e
Author: Pere Fernández <[email protected]>
AuthorDate: Fri May 29 11:34:11 2026 +0200
[incubator-kie-issues#2326] Provide correct `Jackson 2` integration for all
Spring Boot based KIE modules (#4307)
* [incubator-kie-issues#2326] Provide correct Jackson 2 integration for all
Spring Boot based KIE modules
- Introduce common SpringBootConfiguration with default configurations
during codegen
- Add `org.springframework.boot:spring-boot-jackson2` dependency to
`kogito-spring-boot-bom`
* - Address review comments
* - Remove mockito from tests
* - Restore implicit dep
* - Fixed test
---
.../codegen/core/ApplicationConfigGenerator.java | 2 +-
.../codegen/manager/GenerateModelHelper.java | 18 +++++
.../manager/exceptions/KogitoCodegenException.java | 15 ++--
.../SpringBootKieConfigurationHelper.java | 84 ++++++++++++++++++++
.../SpringBootKieConfigurationTemplate.java | 19 ++---
.../resources/kie-spring-boot-config.properties | 27 +++++++
.../SpringBootKieConfigurationHelperTest.java | 92 ++++++++++++++++++++++
.../kogito/maven/plugin/GenerateModelMojoTest.java | 9 ++-
springboot/bom/pom.xml | 12 ++-
.../examples/KogitoSpringbootApplication.java | 2 +-
10 files changed, 257 insertions(+), 23 deletions(-)
diff --git
a/kogito-codegen-modules/kogito-codegen-core/src/main/java/org/kie/kogito/codegen/core/ApplicationConfigGenerator.java
b/kogito-codegen-modules/kogito-codegen-core/src/main/java/org/kie/kogito/codegen/core/ApplicationConfigGenerator.java
index 5cec2c94a1..35e8c0574c 100644
---
a/kogito-codegen-modules/kogito-codegen-core/src/main/java/org/kie/kogito/codegen/core/ApplicationConfigGenerator.java
+++
b/kogito-codegen-modules/kogito-codegen-core/src/main/java/org/kie/kogito/codegen/core/ApplicationConfigGenerator.java
@@ -82,7 +82,7 @@ public class ApplicationConfigGenerator {
generatedFiles.add(generateApplicationConfigDescriptor(configClassNames));
- if (context.hasDI() && context.hasRESTGloballyAvailable()) {
+ if (context.hasDI()) {
generatedFiles.add(ObjectMapperGenerator.generate(context));
}
diff --git
a/kogito-codegen-modules/kogito-codegen-manager/src/main/java/org/kie/kogito/codegen/manager/GenerateModelHelper.java
b/kogito-codegen-modules/kogito-codegen-manager/src/main/java/org/kie/kogito/codegen/manager/GenerateModelHelper.java
index 6833634995..93ce685cc0 100644
---
a/kogito-codegen-modules/kogito-codegen-manager/src/main/java/org/kie/kogito/codegen/manager/GenerateModelHelper.java
+++
b/kogito-codegen-modules/kogito-codegen-manager/src/main/java/org/kie/kogito/codegen/manager/GenerateModelHelper.java
@@ -26,9 +26,11 @@ import java.util.Map;
import org.drools.codegen.common.GeneratedFile;
import org.kie.kogito.codegen.api.context.KogitoBuildContext;
+import org.kie.kogito.codegen.api.context.impl.SpringBootKogitoBuildContext;
import org.kie.kogito.codegen.core.ApplicationGenerator;
import org.kie.kogito.codegen.core.utils.ApplicationGeneratorDiscovery;
import org.kie.kogito.codegen.manager.processes.PersistenceGenerationHelper;
+import
org.kie.kogito.codegen.manager.springboot.SpringBootKieConfigurationHelper;
import static org.drools.codegen.common.GeneratedFileType.COMPILED_CLASS;
import static
org.kie.efesto.common.api.constants.Constants.INDEXFILE_DIRECTORY_PROPERTY;
@@ -115,6 +117,22 @@ public class GenerateModelHelper {
/* 6. Compile and persist compiled files in target (maven) or gradle
(build) */
CompilerHelper.compileAndDump(compileInfo);
+ if
(SpringBootKogitoBuildContext.CONTEXT_NAME.equals(generateModelInfo.kogitoBuildContext().name()))
{
+ /* 7. Conditionally add Default KIE Configuration for SpringBoot */
+ Map<String, Collection<GeneratedFile>>
generatedSpringBootConfigFiles =
SpringBootKieConfigurationHelper.generateKieSpringBootConfiguration(generateModelInfo.kogitoBuildContext);
+
+ compileInfo =
+ new
CompilerHelper.CompileInfo(generatedSpringBootConfigFiles.get(SOURCES),
+ generatedSpringBootConfigFiles.get(RESOURCES),
generateModelInfo);
+
+ /* 8. Persist the Spring Boot KIE configuration code-generated
source and resources files in target (maven) or gradle (build) */
+
GeneratedFileManager.dumpGeneratedFiles(generatedSpringBootConfigFiles.get(SOURCES),
compileInfo.baseDir().toPath());
+
GeneratedFileManager.dumpGeneratedFiles(generatedSpringBootConfigFiles.get(RESOURCES),
compileInfo.baseDir().toPath());
+
+ /* 9. Compile and persist compiled files in target (maven) or
gradle (build) */
+ CompilerHelper.compileAndDump(compileInfo);
+ }
+
if (!generateModelInfo.keepSources()) {
GeneratedFileManager.deleteFilesByExtension(generateModelInfo.outputDirectory().toPath(),
"drl");
}
diff --git
a/springboot/integration-tests/integration-tests-springboot-norest-it/src/main/java/org/kie/kogito/examples/KogitoSpringbootApplication.java
b/kogito-codegen-modules/kogito-codegen-manager/src/main/java/org/kie/kogito/codegen/manager/exceptions/KogitoCodegenException.java
similarity index 66%
copy from
springboot/integration-tests/integration-tests-springboot-norest-it/src/main/java/org/kie/kogito/examples/KogitoSpringbootApplication.java
copy to
kogito-codegen-modules/kogito-codegen-manager/src/main/java/org/kie/kogito/codegen/manager/exceptions/KogitoCodegenException.java
index 8baed787dd..a9c77cac30 100644
---
a/springboot/integration-tests/integration-tests-springboot-norest-it/src/main/java/org/kie/kogito/examples/KogitoSpringbootApplication.java
+++
b/kogito-codegen-modules/kogito-codegen-manager/src/main/java/org/kie/kogito/codegen/manager/exceptions/KogitoCodegenException.java
@@ -16,15 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.kie.kogito.examples;
+package org.kie.kogito.codegen.manager.exceptions;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication(scanBasePackages = { "org.kie.dmn.kogito.**",
"org.kie.kogito.**", "http*.**" })
-public class KogitoSpringbootApplication {
+public class KogitoCodegenException extends RuntimeException {
+ public KogitoCodegenException(String message) {
+ super(message);
+ }
- public static void main(String[] args) {
- SpringApplication.run(KogitoSpringbootApplication.class, args);
+ public KogitoCodegenException(String message, Throwable ex) {
+ super(message, ex);
}
}
diff --git
a/kogito-codegen-modules/kogito-codegen-manager/src/main/java/org/kie/kogito/codegen/manager/springboot/SpringBootKieConfigurationHelper.java
b/kogito-codegen-modules/kogito-codegen-manager/src/main/java/org/kie/kogito/codegen/manager/springboot/SpringBootKieConfigurationHelper.java
new file mode 100644
index 0000000000..4c8cc2b8c3
--- /dev/null
+++
b/kogito-codegen-modules/kogito-codegen-manager/src/main/java/org/kie/kogito/codegen/manager/springboot/SpringBootKieConfigurationHelper.java
@@ -0,0 +1,84 @@
+/*
+ * 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.manager.springboot;
+
+import java.io.InputStream;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.codegen.common.GeneratedFile;
+import org.drools.codegen.common.GeneratedFileType;
+import org.kie.kogito.codegen.api.context.KogitoBuildContext;
+import org.kie.kogito.codegen.api.context.impl.SpringBootKogitoBuildContext;
+import org.kie.kogito.codegen.manager.exceptions.KogitoCodegenException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.github.javaparser.ast.CompilationUnit;
+
+import static com.github.javaparser.StaticJavaParser.parse;
+import static org.kie.kogito.codegen.manager.CompilerHelper.RESOURCES;
+import static org.kie.kogito.codegen.manager.CompilerHelper.SOURCES;
+
+public class SpringBootKieConfigurationHelper {
+
+ private static final Logger LOGGER =
LoggerFactory.getLogger(SpringBootKieConfigurationHelper.class);
+
+ private static final String KIE_SB_CONFIG_FILE_NAME =
"kie-spring-boot-config.properties";
+ private static final String SPRING_KIE_SB_CONFIGURATION_CLASS_NAME =
"SpringBootKieConfiguration";
+
+ private SpringBootKieConfigurationHelper() {
+ // Utility class it should not be initialized
+ }
+
+ public static Map<String, Collection<GeneratedFile>>
generateKieSpringBootConfiguration(KogitoBuildContext context) {
+ if (!SpringBootKogitoBuildContext.CONTEXT_NAME.equals(context.name()))
{
+ throw new KogitoCodegenException("Attempting to add Spring Boot
KIE Configuration outside of a Spring Boot Project");
+ }
+
+ return Map.of(SOURCES,
List.of(generateKieSpringBootConfigurationClass(context)), RESOURCES,
List.of(generateKieSpringBootConfigProperties(context)));
+ }
+
+ static GeneratedFile
generateKieSpringBootConfigurationClass(KogitoBuildContext context) {
+ CompilationUnit compilationUnit =
parse(context.getClassLoader().getResourceAsStream("class-templates/" +
SPRING_KIE_SB_CONFIGURATION_CLASS_NAME + "Template.java"));
+ compilationUnit.setPackageDeclaration(context.getPackageName());
+
+ String generatedPath = context.getPackageName().replace(".", "/") +
"/" + SPRING_KIE_SB_CONFIGURATION_CLASS_NAME + ".java";
+
+ return new GeneratedFile(GeneratedFileType.SOURCE, generatedPath,
compilationUnit.toString());
+ }
+
+ static GeneratedFile
generateKieSpringBootConfigProperties(KogitoBuildContext context) {
+ try (InputStream stream =
context.getClassLoader().getResourceAsStream(KIE_SB_CONFIG_FILE_NAME)) {
+ if (stream == null) {
+ LOGGER.error("Could not find Spring Boot KIE configuration
properties file");
+ throw new KogitoCodegenException("Could not find Spring Boot
KIE configuration properties file");
+ }
+
+ return new GeneratedFile(GeneratedFileType.INTERNAL_RESOURCE,
KIE_SB_CONFIG_FILE_NAME, stream.readAllBytes());
+ } catch (Exception ex) {
+ if (ex instanceof KogitoCodegenException kogitoCodegenException) {
+ throw kogitoCodegenException;
+ }
+ LOGGER.error("Failed to load KIE Spring Boot Config Properties",
ex);
+ throw new KogitoCodegenException("Failed to load KIE Spring Boot
Config Properties", ex);
+ }
+ }
+}
diff --git
a/springboot/integration-tests/integration-tests-springboot-norest-it/src/main/java/org/kie/kogito/examples/KogitoSpringbootApplication.java
b/kogito-codegen-modules/kogito-codegen-manager/src/main/resources/class-templates/SpringBootKieConfigurationTemplate.java
similarity index 63%
copy from
springboot/integration-tests/integration-tests-springboot-norest-it/src/main/java/org/kie/kogito/examples/KogitoSpringbootApplication.java
copy to
kogito-codegen-modules/kogito-codegen-manager/src/main/resources/class-templates/SpringBootKieConfigurationTemplate.java
index 8baed787dd..1f85512a5c 100644
---
a/springboot/integration-tests/integration-tests-springboot-norest-it/src/main/java/org/kie/kogito/examples/KogitoSpringbootApplication.java
+++
b/kogito-codegen-modules/kogito-codegen-manager/src/main/resources/class-templates/SpringBootKieConfigurationTemplate.java
@@ -16,15 +16,16 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.kie.kogito.examples;
+package org.kie.kogito.codegen.manager.springboot;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.SpringBootConfiguration;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.util.ResourceUtils;
-@SpringBootApplication(scanBasePackages = { "org.kie.dmn.kogito.**",
"org.kie.kogito.**", "http*.**" })
-public class KogitoSpringbootApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(KogitoSpringbootApplication.class, args);
- }
+/**
+ * SpringBootConfiguration to load default configurations for KIE modules.
+ */
+@SpringBootConfiguration
+@PropertySource(ResourceUtils.CLASSPATH_URL_PREFIX +
"/kie-spring-boot-config.properties")
+public class SpringBootKieConfiguration {
}
diff --git
a/kogito-codegen-modules/kogito-codegen-manager/src/main/resources/kie-spring-boot-config.properties
b/kogito-codegen-modules/kogito-codegen-manager/src/main/resources/kie-spring-boot-config.properties
new file mode 100644
index 0000000000..d97987298f
--- /dev/null
+++
b/kogito-codegen-modules/kogito-codegen-manager/src/main/resources/kie-spring-boot-config.properties
@@ -0,0 +1,27 @@
+#
+# 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.
+#
+
+# Config file to host the common configuration for all the Spring Boot based
KIE modules.
+# These configurations are loaded by SpringBootKieConfiguration class.
+
+# Required configurations to integrate Jackson 2 in Spring Boot 4. Remove
together with https://github.com/apache/incubator-kie-drools/issues/6702
(Jackson 3 migration)
+spring.jackson.use-jackson2-defaults=true
+spring.graphql.rsocket.preferred-json-mapper=jackson2
+spring.http.codecs.preferred-json-mapper=jackson2
+spring.http.converters.preferred-json-mapper=jackson2
\ No newline at end of file
diff --git
a/kogito-codegen-modules/kogito-codegen-manager/src/test/java/org/kie/kogito/codegen/manager/springboot/SpringBootKieConfigurationHelperTest.java
b/kogito-codegen-modules/kogito-codegen-manager/src/test/java/org/kie/kogito/codegen/manager/springboot/SpringBootKieConfigurationHelperTest.java
new file mode 100644
index 0000000000..92d9356265
--- /dev/null
+++
b/kogito-codegen-modules/kogito-codegen-manager/src/test/java/org/kie/kogito/codegen/manager/springboot/SpringBootKieConfigurationHelperTest.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.kie.kogito.codegen.manager.springboot;
+
+import java.nio.file.Path;
+import java.util.Collection;
+import java.util.Map;
+
+import org.drools.codegen.common.GeneratedFile;
+import org.drools.codegen.common.GeneratedFileType;
+import org.junit.jupiter.api.Test;
+import org.kie.kogito.codegen.api.context.KogitoBuildContext;
+import org.kie.kogito.codegen.api.context.impl.JavaKogitoBuildContext;
+import org.kie.kogito.codegen.api.context.impl.QuarkusKogitoBuildContext;
+import org.kie.kogito.codegen.api.context.impl.SpringBootKogitoBuildContext;
+import org.kie.kogito.codegen.manager.exceptions.KogitoCodegenException;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.kie.kogito.codegen.manager.CompilerHelper.RESOURCES;
+import static org.kie.kogito.codegen.manager.CompilerHelper.SOURCES;
+import static
org.kie.kogito.codegen.manager.springboot.SpringBootKieConfigurationHelper.generateKieSpringBootConfiguration;
+
+public class SpringBootKieConfigurationHelperTest {
+
+ @Test
+ public void testCodegenForSpringBootContext() {
+ KogitoBuildContext buildContext =
SpringBootKogitoBuildContext.builder()
+ .build();
+
+ Map<String, Collection<GeneratedFile>> generatedModelFiles =
generateKieSpringBootConfiguration(buildContext);
+
+ assertThat(generatedModelFiles)
+ .hasSize(2)
+ .hasEntrySatisfying(SOURCES, generatedFiles ->
assertThat(generatedFiles).hasSize(1)
+
.satisfiesOnlyOnce(this::assertSpringBootKieConfigurationClass))
+ .hasEntrySatisfying(RESOURCES, generatedFiles ->
assertThat(generatedFiles).hasSize(1)
+
.satisfiesOnlyOnce(this::assertSpringBootKieConfigProperties));
+ }
+
+ private void assertSpringBootKieConfigurationClass(GeneratedFile
generatedFile) {
+ assertThat(generatedFile)
+ .isNotNull()
+ .hasFieldOrPropertyWithValue("type", GeneratedFileType.SOURCE)
+ .hasFieldOrPropertyWithValue("path",
Path.of("org/kie/kogito/app/SpringBootKieConfiguration.java"))
+ .hasFieldOrProperty("contents");
+ }
+
+ private void assertSpringBootKieConfigProperties(GeneratedFile
generatedFile) {
+ assertThat(generatedFile)
+ .isNotNull()
+ .hasFieldOrPropertyWithValue("type",
GeneratedFileType.INTERNAL_RESOURCE)
+ .hasFieldOrPropertyWithValue("path",
Path.of("kie-spring-boot-config.properties"))
+ .hasFieldOrProperty("contents");
+ }
+
+ @Test
+ public void testCodegenForQuarkusContext() {
+ KogitoBuildContext buildContext = QuarkusKogitoBuildContext.builder()
+ .build();
+
+ assertThatThrownBy(() ->
generateKieSpringBootConfiguration(buildContext))
+ .isInstanceOf(KogitoCodegenException.class)
+ .hasMessage("Attempting to add Spring Boot KIE Configuration
outside of a Spring Boot Project");
+ }
+
+ @Test
+ public void testCodegenForJavaContext() {
+ KogitoBuildContext buildContext = JavaKogitoBuildContext.builder()
+ .build();
+
+ assertThatThrownBy(() ->
generateKieSpringBootConfiguration(buildContext))
+ .isInstanceOf(KogitoCodegenException.class)
+ .hasMessage("Attempting to add Spring Boot KIE Configuration
outside of a Spring Boot Project");
+ }
+}
diff --git
a/kogito-maven-plugin/src/test/java/org/kie/kogito/maven/plugin/GenerateModelMojoTest.java
b/kogito-maven-plugin/src/test/java/org/kie/kogito/maven/plugin/GenerateModelMojoTest.java
index 3167f8e56c..3f40b7353b 100644
---
a/kogito-maven-plugin/src/test/java/org/kie/kogito/maven/plugin/GenerateModelMojoTest.java
+++
b/kogito-maven-plugin/src/test/java/org/kie/kogito/maven/plugin/GenerateModelMojoTest.java
@@ -24,17 +24,18 @@ import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.testing.junit5.InjectMojo;
import org.apache.maven.plugin.testing.junit5.MojoTest;
import org.junit.jupiter.api.Test;
+import org.kie.kogito.codegen.api.context.impl.JavaKogitoBuildContext;
import org.kie.kogito.codegen.manager.BuilderManager;
import org.kie.kogito.codegen.manager.CompilerHelper;
import org.kie.kogito.codegen.manager.GenerateModelHelper;
import org.kie.kogito.codegen.manager.processes.PersistenceGenerationHelper;
import org.kie.kogito.codegen.manager.util.CodeGenManagerUtil;
import org.mockito.MockedStatic;
+import org.mockito.invocation.InvocationOnMock;
import static org.assertj.core.api.Fail.fail;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mockStatic;
-import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.*;
@MojoTest
class GenerateModelMojoTest {
@@ -47,16 +48,18 @@ class GenerateModelMojoTest {
}
private void commonGenerateModel(GenerateModelMojo mojo) {
- try (MockedStatic<BuilderManager> builderManagerMockedStatic =
mockStatic(BuilderManager.class);
+ try (MockedStatic<BuilderManager> builderManagerMockedStatic =
mockStatic(BuilderManager.class,
withSettings().defaultAnswer(InvocationOnMock::callRealMethod));
MockedStatic<CodeGenManagerUtil>
codeGenManagerUtilMockedStatic = mockStatic(CodeGenManagerUtil.class);
MockedStatic<GenerateModelHelper>
generateModelHelperMockedStatic = mockStatic(GenerateModelHelper.class);
MockedStatic<CompilerHelper> compilerHelperMockedStatic =
mockStatic(CompilerHelper.class);
MockedStatic<PersistenceGenerationHelper>
persistenceGenerationHelperMockedStatic =
mockStatic(PersistenceGenerationHelper.class)) {
builderManagerMockedStatic.when(() ->
BuilderManager.build(any(BuilderManager.BuildInfo.class))).thenCallRealMethod();
generateModelHelperMockedStatic.when(() ->
GenerateModelHelper.generateModel(any(GenerateModelHelper.GenerateModelInfo.class))).thenCallRealMethod();
+ codeGenManagerUtilMockedStatic.when(() ->
CodeGenManagerUtil.discoverKogitoRuntimeContext(any(), any(), any(), any(),
any())).thenReturn(JavaKogitoBuildContext.builder().build());
mojo.execute();
builderManagerMockedStatic.verify(() ->
BuilderManager.build(any(BuilderManager.BuildInfo.class)), times(1));
codeGenManagerUtilMockedStatic.verify(() ->
CodeGenManagerUtil.setSystemProperties(any()), times(1));
+ codeGenManagerUtilMockedStatic.verify(() ->
CodeGenManagerUtil.discoverKogitoRuntimeContext(any(), any(), any(), any(),
any()), times(1));
generateModelHelperMockedStatic.verify(() ->
GenerateModelHelper.generateModel(any(GenerateModelHelper.GenerateModelInfo.class)),
times(1));
generateModelHelperMockedStatic.verify(() ->
GenerateModelHelper.generateModelFiles(any(GenerateModelHelper.GenerateModelFilesInfo.class)),
times(1));
compilerHelperMockedStatic.verify(() ->
CompilerHelper.compileAndDump(any(CompilerHelper.CompileInfo.class)), times(2));
diff --git a/springboot/bom/pom.xml b/springboot/bom/pom.xml
index e8440abcb3..6eee362b4d 100644
--- a/springboot/bom/pom.xml
+++ b/springboot/bom/pom.xml
@@ -607,6 +607,12 @@
<artifactId>spring-boot-starter-web</artifactId>
<version>${version.org.springframework.boot}</version>
</dependency>
+ <!-- Jackson 2 Spring configuration — remove together with
https://github.com/apache/incubator-kie-drools/issues/6702 (Jackson 3
migration) -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-jackson2</artifactId>
+ <version>${version.org.springframework.boot}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
@@ -632,7 +638,11 @@
<artifactId>jcl-over-slf4j</artifactId>
<scope>runtime</scope>
</dependency>
-
+ <!-- Jackson 2 Spring configuration — remove together with
https://github.com/apache/incubator-kie-drools/issues/6702 (Jackson 3
migration) -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-jackson2</artifactId>
+ </dependency>
</dependencies>
<build>
<pluginManagement>
diff --git
a/springboot/integration-tests/integration-tests-springboot-norest-it/src/main/java/org/kie/kogito/examples/KogitoSpringbootApplication.java
b/springboot/integration-tests/integration-tests-springboot-norest-it/src/main/java/org/kie/kogito/examples/KogitoSpringbootApplication.java
index 8baed787dd..21fad1e3ab 100644
---
a/springboot/integration-tests/integration-tests-springboot-norest-it/src/main/java/org/kie/kogito/examples/KogitoSpringbootApplication.java
+++
b/springboot/integration-tests/integration-tests-springboot-norest-it/src/main/java/org/kie/kogito/examples/KogitoSpringbootApplication.java
@@ -21,7 +21,7 @@ package org.kie.kogito.examples;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-@SpringBootApplication(scanBasePackages = { "org.kie.dmn.kogito.**",
"org.kie.kogito.**", "http*.**" })
+@SpringBootApplication(scanBasePackages = { "org.kie.dmn.kogito.**",
"org.kie.kogito.**", "com.company.**" })
public class KogitoSpringbootApplication {
public static void main(String[] args) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]