diff --git a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/ModelSourceClass.java b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/ModelSourceClass.java index 164eb57f9e7..d5fd40b2e35 100644 --- a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/ModelSourceClass.java +++ b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/execmodel/ModelSourceClass.java @@ -211,6 +211,10 @@ public String getDefaultKieSessionName() { return defaultKieSessionName; } + public String getDefaultKieStatelessSessionName() { + return defaultKieStatelessSessionName; + } + public Map getkSessionConfs() { return kSessionConfs; } diff --git a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/project/ProjectRuntimeGenerator.java b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/project/ProjectRuntimeGenerator.java index 053a3161c39..5bb12d525e8 100644 --- a/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/project/ProjectRuntimeGenerator.java +++ b/drools-model/drools-model-codegen/src/main/java/org/drools/model/codegen/project/ProjectRuntimeGenerator.java @@ -90,31 +90,33 @@ private void writeInitKieBasesMethod(ClassOrInterfaceDeclaration clazz) { } private void writeGetDefaultKieBaseMethod(ClassOrInterfaceDeclaration clazz) { - MethodDeclaration getDefaultKieBaseMethod = clazz.findAll(MethodDeclaration.class).stream() - .filter(m -> m.getNameAsString().equals("getKieBase")) - .filter(m -> m.getParameters().isEmpty()) - .findFirst() - .orElseThrow(() -> new InvalidTemplateException(generator, "Cannot find getKieBase method")); - if (modelMethod.getDefaultKieBaseName() != null) { - getDefaultKieBaseMethod.findFirst(StringLiteralExpr.class) + findDefaultKieMethod(clazz, "getKieBase").findFirst(StringLiteralExpr.class) .orElseThrow(() -> new InvalidTemplateException(generator, "Cannot find string inside getKieBase method")) .setString(modelMethod.getDefaultKieBaseName()); } } private void writeNewDefaultKieSessionMethod(ClassOrInterfaceDeclaration clazz) { - MethodDeclaration newDefaultKieSessionMethod = clazz.findAll(MethodDeclaration.class).stream() - .filter(m -> m.getNameAsString().equals("newKieSession")) - .filter(m -> m.getParameters().isEmpty()) - .findFirst() - .orElseThrow(() -> new InvalidTemplateException(generator, "Cannot find newKieSession method")); - if (modelMethod.getDefaultKieSessionName() != null) { - newDefaultKieSessionMethod.findFirst(StringLiteralExpr.class) + findDefaultKieMethod(clazz, "newKieSession").findFirst(StringLiteralExpr.class) .orElseThrow(() -> new InvalidTemplateException(generator, "Cannot find string inside newKieSession method")) .setString(modelMethod.getDefaultKieSessionName()); } + + if (modelMethod.getDefaultKieStatelessSessionName() != null) { + findDefaultKieMethod(clazz, "newStatelessKieSession").findFirst(StringLiteralExpr.class) + .orElseThrow(() -> new InvalidTemplateException(generator, "Cannot find string inside newStatelessKieSession method")) + .setString(modelMethod.getDefaultKieStatelessSessionName()); + } + } + + private MethodDeclaration findDefaultKieMethod(ClassOrInterfaceDeclaration clazz, String methodName) { + return clazz.findAll(MethodDeclaration.class).stream() + .filter(m -> m.getNameAsString().equals(methodName)) + .filter(m -> m.getParameters().isEmpty()) + .findFirst() + .orElseThrow(() -> new InvalidTemplateException(generator, "Cannot find " + methodName + " method")); } private void writeGetKieBaseForSessionMethod(ClassOrInterfaceDeclaration clazz) { diff --git a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeJavaTemplate.java b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeJavaTemplate.java index 90edc28323a..f6363b63c40 100644 --- a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeJavaTemplate.java +++ b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeJavaTemplate.java @@ -25,6 +25,7 @@ import org.kie.api.KieBase; import org.kie.api.runtime.KieSession; import org.kie.api.runtime.KieRuntimeBuilder; +import org.kie.api.runtime.StatelessKieSession; import org.drools.modelcompiler.KieBaseBuilder; public class ProjectRuntime implements KieRuntimeBuilder { @@ -62,8 +63,21 @@ public KieSession newKieSession(String sessionName) { if (kbase == null) { throw new RuntimeException("Unknown KieSession with name '" + sessionName + "'"); } - KieSession ksession = kbase.newKieSession(getConfForSession(sessionName), null); - return ksession; + return kbase.newKieSession(getConfForSession(sessionName), null); + } + + @Override + public StatelessKieSession newStatelessKieSession() { + return newStatelessKieSession("$defaultStatelessKieSession$"); + } + + @Override + public StatelessKieSession newStatelessKieSession(String sessionName) { + KieBase kbase = getKieBaseForSession(sessionName); + if (kbase == null) { + throw new RuntimeException("Unknown StatelessKieSession with name '" + sessionName + "'"); + } + return kbase.newStatelessKieSession(getConfForSession(sessionName)); } private KieBase getKieBaseForSession(String sessionName) { diff --git a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeQuarkusTemplate.java b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeQuarkusTemplate.java index ee69deb295e..5f4da3847b9 100644 --- a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeQuarkusTemplate.java +++ b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeQuarkusTemplate.java @@ -25,6 +25,7 @@ import org.kie.api.KieBase; import org.kie.api.runtime.KieSession; import org.kie.api.runtime.KieRuntimeBuilder; +import org.kie.api.runtime.StatelessKieSession; import org.drools.modelcompiler.KieBaseBuilder; @jakarta.enterprise.context.ApplicationScoped @@ -63,8 +64,21 @@ public KieSession newKieSession(String sessionName) { if (kbase == null) { throw new RuntimeException("Unknown KieSession with name '" + sessionName + "'"); } - KieSession ksession = kbase.newKieSession(getConfForSession(sessionName), null); - return ksession; + return kbase.newKieSession(getConfForSession(sessionName), null); + } + + @Override + public StatelessKieSession newStatelessKieSession() { + return newStatelessKieSession("$defaultStatelessKieSession$"); + } + + @Override + public StatelessKieSession newStatelessKieSession(String sessionName) { + KieBase kbase = getKieBaseForSession(sessionName); + if (kbase == null) { + throw new RuntimeException("Unknown StatelessKieSession with name '" + sessionName + "'"); + } + return kbase.newStatelessKieSession(getConfForSession(sessionName)); } private KieBase getKieBaseForSession(String sessionName) { diff --git a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeSpringTemplate.java b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeSpringTemplate.java index 3bb8b500842..13ac7e0e26e 100644 --- a/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeSpringTemplate.java +++ b/drools-model/drools-model-codegen/src/main/resources/class-templates/rules/ProjectRuntimeSpringTemplate.java @@ -25,6 +25,7 @@ import org.kie.api.KieBase; import org.kie.api.runtime.KieSession; import org.kie.api.runtime.KieRuntimeBuilder; +import org.kie.api.runtime.StatelessKieSession; import org.drools.modelcompiler.KieBaseBuilder; @org.springframework.stereotype.Component @@ -63,8 +64,21 @@ public KieSession newKieSession(String sessionName) { if (kbase == null) { throw new RuntimeException("Unknown KieSession with name '" + sessionName + "'"); } - KieSession ksession = kbase.newKieSession(getConfForSession(sessionName), null); - return ksession; + return kbase.newKieSession(getConfForSession(sessionName), null); + } + + @Override + public StatelessKieSession newStatelessKieSession() { + return newStatelessKieSession("$defaultStatelessKieSession$"); + } + + @Override + public StatelessKieSession newStatelessKieSession(String sessionName) { + KieBase kbase = getKieBaseForSession(sessionName); + if (kbase == null) { + throw new RuntimeException("Unknown StatelessKieSession with name '" + sessionName + "'"); + } + return kbase.newStatelessKieSession(getConfForSession(sessionName)); } private KieBase getKieBaseForSession(String sessionName) { 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 08c68ad06de..32022f63891 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 @@ -205,6 +205,9 @@ private Map readKieBaseModels() { 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; diff --git a/drools-quarkus-extension/drools-quarkus-integration-test/pom.xml b/drools-quarkus-extension/drools-quarkus-integration-test/pom.xml index 77e1fb06d06..1a4e3e16452 100644 --- a/drools-quarkus-extension/drools-quarkus-integration-test/pom.xml +++ b/drools-quarkus-extension/drools-quarkus-integration-test/pom.xml @@ -41,6 +41,10 @@ org.drools drools-quarkus + + org.drools + drools-commands + org.drools drools-decisiontables diff --git a/drools-quarkus-extension/drools-quarkus-integration-test/src/main/resources/application.properties b/drools-quarkus-extension/drools-quarkus-integration-test/src/main/resources/application.properties index b26fc31a187..e7193773be4 100644 --- a/drools-quarkus-extension/drools-quarkus-integration-test/src/main/resources/application.properties +++ b/drools-quarkus-extension/drools-quarkus-integration-test/src/main/resources/application.properties @@ -21,12 +21,16 @@ drools.prototypes=allowed drools.kbase.canDrinkKB.packages=org.drools.drl drools.kbase.canDrinkKB.ksession.canDrinkKS.default=true +drools.kbase.canDrinkKB.ksession.statelessCanDrinkKS.stateless=true +drools.kbase.canDrinkKB.ksession.statelessCanDrinkKS.default=true drools.kbase.canDrinkKBDTable.packages=org.drools.dtable -drools.kbase.canDrinkKBDTable.ksession=canDrinkKSDTable +drools.kbase.canDrinkKBDTable.ksession.canDrinkKSDTable.stateless=false +drools.kbase.canDrinkKBDTable.ksession.statelessCanDrinkKSDTable.stateless=true drools.kbase.canDrinkKBYaml.packages=org.drools.yaml drools.kbase.canDrinkKBYaml.ksession=canDrinkKSYaml +drools.kbase.canDrinkKBYaml.ksession.statelessCanDrinkKSYaml.stateless=true drools.kbase.canDrinkKBPrototype.packages=org.drools.prototype drools.kbase.canDrinkKBPrototype.prototypes=allowed diff --git a/drools-quarkus-extension/drools-quarkus-integration-test/src/test/java/org/drools/quarkus/test/RuntimeTest.java b/drools-quarkus-extension/drools-quarkus-integration-test/src/test/java/org/drools/quarkus/test/RuntimeTest.java index a6905fbdcef..1ac971dafd9 100644 --- a/drools-quarkus-extension/drools-quarkus-integration-test/src/test/java/org/drools/quarkus/test/RuntimeTest.java +++ b/drools-quarkus-extension/drools-quarkus-integration-test/src/test/java/org/drools/quarkus/test/RuntimeTest.java @@ -24,11 +24,16 @@ import io.quarkus.test.junit.QuarkusTest; import jakarta.inject.Inject; import org.junit.jupiter.api.Test; +import org.kie.api.KieServices; +import org.kie.api.command.KieCommands; import org.kie.api.definition.KiePackage; +import org.kie.api.internal.utils.KieService; import org.kie.api.prototype.PrototypeFact; import org.kie.api.prototype.PrototypeFactInstance; import org.kie.api.runtime.KieRuntimeBuilder; import org.kie.api.runtime.KieSession; +import org.kie.api.runtime.RuntimeSession; +import org.kie.api.runtime.StatelessKieSession; import static org.assertj.core.api.Assertions.assertThat; import static org.kie.api.prototype.PrototypeBuilder.prototype; @@ -42,30 +47,59 @@ public class RuntimeTest { @Test public void testDrlEvaluation() { // canDrinkKS is the default session - testSimpleDrl(runtimeBuilder.newKieSession(), "org.drools.drl"); + testSimpleDrl(runtimeBuilder.newKieSession(), "org.drools.drl", true); } @Test public void testDTableEvaluation() { - testSimpleDrl(runtimeBuilder.newKieSession("canDrinkKSDTable"), "org.drools.dtable"); + testSimpleDrl(runtimeBuilder.newKieSession("canDrinkKSDTable"), "org.drools.dtable", true); } @Test public void testYamlEvaluation() { - testSimpleDrl(runtimeBuilder.newKieSession("canDrinkKSYaml"), "org.drools.yaml"); + testSimpleDrl(runtimeBuilder.newKieSession("canDrinkKSYaml"), "org.drools.yaml", true); } - private void testSimpleDrl(KieSession ksession, String assetPackage) { - List pkgNames = ksession.getKieBase().getKiePackages().stream().map(KiePackage::getName).collect(Collectors.toList()); + @Test + public void testStatelessDrlEvaluation() { + // statelessCanDrinkKS is the default stateless session + testSimpleDrl(runtimeBuilder.newStatelessKieSession(), "org.drools.drl", false); + } + + @Test + public void testStatelessDTableEvaluation() { + testSimpleDrl(runtimeBuilder.newStatelessKieSession("statelessCanDrinkKSDTable"), "org.drools.dtable", false); + } + + @Test + public void testStatelessYamlEvaluation() { + testSimpleDrl(runtimeBuilder.newStatelessKieSession("statelessCanDrinkKSYaml"), "org.drools.yaml", false); + } + + private void testSimpleDrl(RuntimeSession session, String assetPackage, boolean stateful) { + if (stateful) { + assertThat(session).isInstanceOf(KieSession.class); + } else { + assertThat(session).isInstanceOf(StatelessKieSession.class); + } + + List pkgNames = session.getKieBase().getKiePackages().stream().map(KiePackage::getName).collect(Collectors.toList()); assertThat(pkgNames).hasSize(2).containsExactlyInAnyOrder("org.drools.quarkus.test", assetPackage); + KieCommands kieCommands = KieServices.get().getCommands(); + Result result = new Result(); - ksession.insert(result); - ksession.insert(new Person("Mark", 17)); - ksession.fireAllRules(); + session.execute( kieCommands.newBatchExecution( + kieCommands.newInsert(result), + kieCommands.newInsert(new Person("Mark", 17)), + kieCommands.newFireAllRules() ) ); assertThat(result.toString()).isEqualTo("Mark can NOT drink"); + + if (stateful) { + ((KieSession) session).dispose(); + } } @Test diff --git a/kie-api/src/main/java/org/kie/api/command/KieCommands.java b/kie-api/src/main/java/org/kie/api/command/KieCommands.java index afb5d8d2bbd..9cb50473ad2 100644 --- a/kie-api/src/main/java/org/kie/api/command/KieCommands.java +++ b/kie-api/src/main/java/org/kie/api/command/KieCommands.java @@ -29,6 +29,8 @@ import org.kie.api.runtime.process.WorkItemHandler; import org.kie.api.runtime.rule.FactHandle; +import static java.util.Arrays.asList; + /** * KieCommands is a factory for Commands that can be used by classes that implement CommandExecutor. Typically more than one Command * will want to be executed, where is where the BatchExecution comes in, which takes a List of commands, think of it as CompositeCommand. @@ -115,6 +117,10 @@ Command newQuery(String identifier, String name, Object[] arguments); + default BatchExecutionCommand newBatchExecution(Command... commands) { + return newBatchExecution( asList(commands) ); + } + BatchExecutionCommand newBatchExecution(List< ? extends Command> commands); BatchExecutionCommand newBatchExecution(List< ? extends Command> commands, String lookup); diff --git a/kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java b/kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java index 1ea1669fc18..d8495f069c2 100644 --- a/kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java +++ b/kie-api/src/main/java/org/kie/api/runtime/KieRuntime.java @@ -18,53 +18,23 @@ */ package org.kie.api.runtime; -import java.util.Map; - -import org.kie.api.KieBase; import org.kie.api.event.KieRuntimeEventManager; -import org.kie.api.runtime.KieSessionConfiguration; import org.kie.api.runtime.process.ProcessRuntime; import org.kie.api.runtime.rule.RuleRuntime; import org.kie.api.time.SessionClock; -public interface KieRuntime - extends - RuleRuntime, - ProcessRuntime, - KieRuntimeEventManager { +public interface KieRuntime extends RuntimeSession, RuleRuntime, ProcessRuntime, KieRuntimeEventManager { /** * @return the session clock instance assigned to this session */ T getSessionClock(); - /** - * Sets a global value in this session - * @param identifier the global identifier - * @param value the value assigned to the global identifier - */ - void setGlobal(String identifier, - Object value); - Object getGlobal(String identifier); - Globals getGlobals(); - Calendars getCalendars(); Environment getEnvironment(); - /** - * @return the KieBase reference from which this stateful session was created. - */ - KieBase getKieBase(); - - void registerChannel(String name, - Channel channel); - - void unregisterChannel(String name); - - Map< String, Channel> getChannels(); - KieSessionConfiguration getSessionConfiguration(); } diff --git a/kie-api/src/main/java/org/kie/api/runtime/KieRuntimeBuilder.java b/kie-api/src/main/java/org/kie/api/runtime/KieRuntimeBuilder.java index 4628f816bbe..9f4868fa105 100644 --- a/kie-api/src/main/java/org/kie/api/runtime/KieRuntimeBuilder.java +++ b/kie-api/src/main/java/org/kie/api/runtime/KieRuntimeBuilder.java @@ -27,6 +27,9 @@ public interface KieRuntimeBuilder { KieSession newKieSession(); KieSession newKieSession(String sessionName); + StatelessKieSession newStatelessKieSession(); + StatelessKieSession newStatelessKieSession(String sessionName); + default KieSession newKieSession(KieSessionConfiguration conf) { return getKieBase().newKieSession(conf, null); } diff --git a/kie-api/src/main/java/org/kie/api/runtime/RuntimeSession.java b/kie-api/src/main/java/org/kie/api/runtime/RuntimeSession.java new file mode 100644 index 00000000000..60ddf5a957d --- /dev/null +++ b/kie-api/src/main/java/org/kie/api/runtime/RuntimeSession.java @@ -0,0 +1,67 @@ +/** + * 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.api.runtime; + +import org.kie.api.KieBase; + +import java.util.Map; + +public interface RuntimeSession extends CommandExecutor { + + /** + * @return the Globals store + */ + Globals getGlobals(); + + /** + * Sets a global value on the globals store + * + * @param identifier the global identifier + * @param value the value assigned to the global identifier + */ + void setGlobal(String identifier, + Object value); + + + /** + * Registers a channel with the given name + * + * @param name the name of the channel + * @param channel the channel instance. It has to be thread safe. + */ + void registerChannel(String name, + Channel channel); + + /** + * Unregisters the channel with the given name + * + * @param name + */ + void unregisterChannel(String name); + + /** + * @return a map with all registered channels. + */ + Map getChannels(); + + /** + * @return the KieBase reference from which this stateless session was created. + */ + KieBase getKieBase(); +} diff --git a/kie-api/src/main/java/org/kie/api/runtime/StatelessKieSession.java b/kie-api/src/main/java/org/kie/api/runtime/StatelessKieSession.java index 4c7869eb1e6..5f8460d6bb4 100644 --- a/kie-api/src/main/java/org/kie/api/runtime/StatelessKieSession.java +++ b/kie-api/src/main/java/org/kie/api/runtime/StatelessKieSession.java @@ -18,9 +18,6 @@ */ package org.kie.api.runtime; -import java.util.Map; - -import org.kie.api.KieBase; import org.kie.api.event.KieRuntimeEventManager; import org.kie.api.runtime.process.StatelessProcessSession; import org.kie.api.runtime.rule.StatelessRuleSession; @@ -106,51 +103,6 @@ * results.getValue( "Get People" );// returns the query as a QueryResults instance. * */ -public interface StatelessKieSession - extends - StatelessRuleSession, - StatelessProcessSession, - CommandExecutor, - KieRuntimeEventManager { - - /** - * @return the Globals store - */ - Globals getGlobals(); - - /** - * Sets a global value on the globals store - * - * @param identifier the global identifier - * @param value the value assigned to the global identifier - */ - void setGlobal(String identifier, - Object value); - - - /** - * Registers a channel with the given name - * - * @param name the name of the channel - * @param channel the channel instance. It has to be thread safe. - */ - void registerChannel(String name, - Channel channel); - - /** - * Unregisters the channel with the given name - * - * @param name - */ - void unregisterChannel(String name); - - /** - * @return a map with all registered channels. - */ - Map getChannels(); +public interface StatelessKieSession extends StatelessRuleSession, StatelessProcessSession, RuntimeSession, KieRuntimeEventManager { - /** - * @return the KieBase reference from which this stateless session was created. - */ - KieBase getKieBase(); } diff --git a/kie-dmn/kie-dmn-core-jsr223/pom.xml b/kie-dmn/kie-dmn-core-jsr223/pom.xml index b0f93bc3ac2..42c9feff4fa 100644 --- a/kie-dmn/kie-dmn-core-jsr223/pom.xml +++ b/kie-dmn/kie-dmn-core-jsr223/pom.xml @@ -112,21 +112,10 @@ kie-dmn-core-jsr223-jq test + + org.openjdk.nashorn + nashorn-core + test + - - - - add-jdk15plus-dependencies - - [15,) - - - - org.openjdk.nashorn - nashorn-core - test - - - - \ No newline at end of file diff --git a/kie-dmn/kie-dmn-pmml-tests-parent/kie-dmn-pmml-tests-trusty/pom.xml b/kie-dmn/kie-dmn-pmml-tests-parent/kie-dmn-pmml-tests-trusty/pom.xml index 8861992393d..126cfd4e4bf 100644 --- a/kie-dmn/kie-dmn-pmml-tests-parent/kie-dmn-pmml-tests-trusty/pom.xml +++ b/kie-dmn/kie-dmn-pmml-tests-parent/kie-dmn-pmml-tests-trusty/pom.xml @@ -152,6 +152,11 @@ test + + org.glassfish.jaxb + jaxb-runtime + + org.kie kie-dmn-validation @@ -188,19 +193,4 @@ - - - - jdk11 - - [11,) - - - - org.glassfish.jaxb - jaxb-runtime - - - - diff --git a/kie-pmml-trusty/kie-pmml-compiler/kie-pmml-compiler-api/pom.xml b/kie-pmml-trusty/kie-pmml-compiler/kie-pmml-compiler-api/pom.xml index bdbd389a054..e7921b7ce0e 100644 --- a/kie-pmml-trusty/kie-pmml-compiler/kie-pmml-compiler-api/pom.xml +++ b/kie-pmml-trusty/kie-pmml-compiler/kie-pmml-compiler-api/pom.xml @@ -53,6 +53,10 @@ org.jpmml pmml-model + + org.glassfish.jaxb + jaxb-runtime + org.kie @@ -74,20 +78,4 @@ - - - - java11-pmml - - [11,) - - - - org.glassfish.jaxb - jaxb-runtime - - - - - \ No newline at end of file