[jboss-jira] [JBoss JIRA] (DROOLS-5360) Avoid direct invocation of PMMLModelExecutor.evaluate

Gabriele Cardosi (Jira) issues at jboss.org
Wed May 27 09:32:28 EDT 2020


     [ https://issues.redhat.com/browse/DROOLS-5360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gabriele Cardosi updated DROOLS-5360:
-------------------------------------
    Description: 
-Change PMMLModelExecutor public API so that user should not retrieve the KiePMMLModel to invoke the "evaluate" method-


-PMML4Result evaluate(final KieBase knowledgeBase, KiePMMLModel model, PMMLContext context)-

 ->

-PMML4Result evaluate(final KieBase knowledgeBase, String modelName, PMMLContext context);-

-Create AbstractPMMLModelExecutor that implement the above interface and declare an abstract method-

-PMML4Result evaluate(final KieBase knowledgeBase, KiePMMLModel model, PMMLContext context)-


-AbstractPMMLModelExecutor should then use KnoweledgeBaseUtils to retrieve the KiePMMLModel and invoke/delegate to actual implementations-

-Actual implementations should then extend AbstractPMMLModelExecutor-

The PMMLModelExecutor API should be intended as private API, i.e. users should not invoke it directly, nor they should need to retrieve the KiePMMLModel.
Unfortunately, for the moment being the KiePMMLModel is needed to retrieve the actual implementation of PMMLModelExecutor, so it is not possible to invoke 
{code}
PMMLModelExecutor.evaluate(...)
{/code}
on it using only the model name without retrieve the KiePMMLModel itself before.
For the moment being this ticket will remove usage of PMMLModelExecutor implementation inside integrations tests.
Moreover, there will also be a small name refactoring to uniform the name of the classes in the hierarchy, so that the main interface will be
PMMLModelEvaluator, and all the implementing class will end with "Evaluator"



  was:
-Change PMMLModelExecutor public API so that user should not retrieve the KiePMMLModel to invoke the "evaluate" method-


-PMML4Result evaluate(final KieBase knowledgeBase, KiePMMLModel model, PMMLContext context)-

 ->

-PMML4Result evaluate(final KieBase knowledgeBase, String modelName, PMMLContext context);-

-Create AbstractPMMLModelExecutor that implement the above interface and declare an abstract method-

-PMML4Result evaluate(final KieBase knowledgeBase, KiePMMLModel model, PMMLContext context)-


-AbstractPMMLModelExecutor should then use KnoweledgeBaseUtils to retrieve the KiePMMLModel and invoke/delegate to actual implementations-

-Actual implementations should then extend AbstractPMMLModelExecutor-

The 





> Avoid direct invocation of PMMLModelExecutor.evaluate
> -----------------------------------------------------
>
>                 Key: DROOLS-5360
>                 URL: https://issues.redhat.com/browse/DROOLS-5360
>             Project: Drools
>          Issue Type: Task
>            Reporter: Gabriele Cardosi
>            Assignee: Gabriele Cardosi
>            Priority: Major
>              Labels: TrustyAI
>
> -Change PMMLModelExecutor public API so that user should not retrieve the KiePMMLModel to invoke the "evaluate" method-
> -PMML4Result evaluate(final KieBase knowledgeBase, KiePMMLModel model, PMMLContext context)-
>  ->
> -PMML4Result evaluate(final KieBase knowledgeBase, String modelName, PMMLContext context);-
> -Create AbstractPMMLModelExecutor that implement the above interface and declare an abstract method-
> -PMML4Result evaluate(final KieBase knowledgeBase, KiePMMLModel model, PMMLContext context)-
> -AbstractPMMLModelExecutor should then use KnoweledgeBaseUtils to retrieve the KiePMMLModel and invoke/delegate to actual implementations-
> -Actual implementations should then extend AbstractPMMLModelExecutor-
> The PMMLModelExecutor API should be intended as private API, i.e. users should not invoke it directly, nor they should need to retrieve the KiePMMLModel.
> Unfortunately, for the moment being the KiePMMLModel is needed to retrieve the actual implementation of PMMLModelExecutor, so it is not possible to invoke 
> {code}
> PMMLModelExecutor.evaluate(...)
> {/code}
> on it using only the model name without retrieve the KiePMMLModel itself before.
> For the moment being this ticket will remove usage of PMMLModelExecutor implementation inside integrations tests.
> Moreover, there will also be a small name refactoring to uniform the name of the classes in the hierarchy, so that the main interface will be
> PMMLModelEvaluator, and all the implementing class will end with "Evaluator"



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the jboss-jira mailing list