yesamer commented on code in PR #6310:
URL: 
https://github.com/apache/incubator-kie-drools/pull/6310#discussion_r2084678136


##########
kie-pmml-trusty/kie-pmml-evaluator/kie-pmml-evaluator-core/src/main/java/org/kie/pmml/evaluator/core/serialization/PMMLRequestDataDeserializerService.java:
##########
@@ -18,7 +18,9 @@
  */
 package org.kie.pmml.evaluator.core.serialization;
 
+
 import com.fasterxml.jackson.databind.JsonDeserializer;
+import org.kie.api.pmml.PMMLRequestData;

Review Comment:
   @gitgabrio Double import?



##########
kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/pmml/DMNKiePMMLTrustyInvocationEvaluator.java:
##########
@@ -175,47 +163,48 @@ private Collection<EfestoOutput> 
evaluateInput(EfestoInput<PMMLRequestData> inpu
         }
     }
 
-    protected Map<String, GeneratedResources> compileFile(String fileName,
-                                                          ClassLoader 
parentClassLoader) {
-        try {
-            EfestoCompilationContext compilationContext =
-                    
EfestoCompilationContextUtils.buildWithParentClassLoader(parentClassLoader);
-            EfestoInputStreamResource toProcess = new 
EfestoInputStreamResource(documentResource.getInputStream(),
-                                                                               
 fileName);
-            compilationManager.processResource(compilationContext, toProcess);
-            return compilationContext.getGeneratedResourcesMap();
-        } catch (Exception t) {
-            String errorMessage = String.format("Compilation error for %s due 
to %s: please %s",
-                                                fileName,
-                                                t.getMessage(),
-                                                CHECK_CLASSPATH);
-            LOG.error(errorMessage);
-            throw new KieCompilerServiceException(errorMessage, t);
-        }
-    }
-
-    protected PMMLRequestData getPMMLRequestData(String correlationId, String 
modelName, String fileName,
+//    protected Map<String, GeneratedResources> compileFile(String fileName,

Review Comment:
   @gitgabrio Can we remove this block of code?



##########
kie-dmn/kie-dmn-core/src/test/resources/0001-input-data-string.dmn:
##########
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2016 Red Hat, Inc. and/or its affiliates.

Review Comment:
   @gitgabrio Old header?



##########
drools-util/src/main/java/org/drools/util/FileUtils.java:
##########
@@ -59,6 +62,38 @@ public static File getFile(String fileName) {
         return toReturn;
     }
 
+    /**
+     * Retrieve the <code>File</code> from jars
+     *
+     * @param fileName
+     * @return
+     */
+    public static File getFileFromDependency(String fileName) throws 
IOException {
+        URL jarUrl =
+                
Collections.list(Thread.currentThread().getContextClassLoader().getResources(fileName))
+                        .stream()
+                        .filter(url -> url.getProtocol().equals("jar"))
+                        .findFirst()
+                        .orElseThrow(() -> new RuntimeException("Failed to 
retrieve jar containing " + fileName));
+        String jarFileName = jarUrl.getFile();
+        String jarPath = jarFileName.substring(jarFileName.lastIndexOf(":") + 
1,
+                                               jarFileName.lastIndexOf("!"));
+        System.out.println(jarPath);
+        final JarFile jarFile = new JarFile(new File(jarPath));
+        System.out.println(jarFile);
+        String foundFile = Collections.list(jarFile.entries())
+                .stream()
+                .filter(entry -> entry.getName().equals(fileName) && 
!entry.isDirectory())
+                .map(ZipEntry::getName)
+                .findFirst()
+                .orElseThrow(() -> new RuntimeException("Failed to find file " 
+ fileName));
+        System.out.println(foundFile);
+        URL r = 
Thread.currentThread().getContextClassLoader().getResource(foundFile);
+        System.out.println(r);
+
+        return null;

Review Comment:
   @gitgabrio Is it expected and acceptable to return null here?



##########
kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/pmml/DMNKiePMMLTrustyInvocationEvaluator.java:
##########
@@ -130,43 +119,42 @@ private void populateWithObject(Map<String, Object> 
toPopulate, String resultNam
         }
     }
 
-    protected PMML4Result evaluate(String modelName, String pmmlFileName, 
DMNResult dmnr,
+    protected Map<String, Object> evaluate(String modelName, ModelLocalUriId 
pmmlModelLocalUriID, DMNResult dmnr,
                                    ClassLoader parentClassloader) {
-        EfestoLocalRuntimeContext runtimeContext = 
getEfestoRuntimeContext(parentClassloader);
-        ModelLocalUriId modelLocalUriId = getModelLocalUriId(pmmlFileName, 
modelName);
-
-        Collection<EfestoOutput> retrieved;
-        if (!(isPresentExecutableOrRedirect(modelLocalUriId, runtimeContext))) 
{
-            LOG.warn("GeneratedResources for {}@{} are not present: trying to 
invoke compilation....",
-                     pmmlFileName,
-                     modelName);
-            Map<String, GeneratedResources> generatedResourcesMap = 
compileFile(pmmlFileName,
-                                                                               
 parentClassloader);
-            
runtimeContext.getGeneratedResourcesMap().putAll(generatedResourcesMap);
-        }
-        PMMLRequestData pmmlRequestData = 
getPMMLRequestData(UUID.randomUUID().toString(), modelName, pmmlFileName,
+        EfestoCompilationContext efestoCompilationContext = 
ContextStorage.getEfestoCompilationContext(pmmlModelLocalUriID);
+
+        EfestoLocalRuntimeContext runtimeContext = 
getEfestoRuntimeContext(parentClassloader, 
efestoCompilationContext.getGeneratedResourcesMap());
+//        if (!(isPresentExecutableOrModelOrRedirect(pmmlModelLocalUriID, 
runtimeContext))) {
+//            LOG.warn("GeneratedResources for {}@{} are not present: trying 
to invoke compilation....",
+//                     pmmlFileName,
+//                     modelName);
+//            Map<String, GeneratedResources> generatedResourcesMap = 
compileFile(pmmlFileName,
+//                                                                             
   parentClassloader);
+//            
runtimeContext.getGeneratedResourcesMap().putAll(generatedResourcesMap);
+//        }

Review Comment:
   @gitgabrio Can we remove this block of code?



##########
drools-scenario-simulation/drools-scenario-simulation-backend/src/main/java/org/drools/scenariosimulation/backend/util/DMNSimulationUtils.java:
##########
@@ -18,47 +18,81 @@
  */
 package org.drools.scenariosimulation.backend.util;
 
+import java.io.File;
 import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 
-import org.kie.api.runtime.KieContainer;
-import org.kie.api.runtime.KieRuntimeFactory;
+import java.util.Map;
 import org.kie.dmn.api.core.DMNModel;
-import org.kie.dmn.api.core.DMNRuntime;
+import org.kie.dmn.efesto.compiler.model.DmnCompilationContext;
+import org.kie.efesto.common.api.identifiers.LocalUri;
+import org.kie.efesto.common.api.identifiers.ModelLocalUriId;
+import org.kie.efesto.common.api.model.EfestoCompilationContext;
+import org.kie.efesto.common.api.model.GeneratedResources;
+import org.kie.efesto.compilationmanager.api.model.EfestoFileSetResource;
+import org.kie.efesto.compilationmanager.api.service.CompilationManager;
+import org.kie.efesto.compilationmanager.api.utils.SPIUtils;
+import org.kie.efesto.runtimemanager.api.model.BaseEfestoInput;
+import org.kie.efesto.runtimemanager.api.model.EfestoInput;
+import org.kie.efesto.runtimemanager.api.model.EfestoLocalRuntimeContext;
+import org.kie.efesto.runtimemanager.api.model.EfestoOutput;
+import org.kie.efesto.runtimemanager.api.service.RuntimeManager;
+import org.kie.efesto.runtimemanager.core.model.EfestoRuntimeContextUtils;
+import org.kie.memorycompiler.KieMemoryCompiler;
 
 public class DMNSimulationUtils {
 
-    private static String delimiter = "/";
+    private static final String SLASH = "/";

Review Comment:
   @gitgabrio Most likely it is, but: is it safe in Windows-based OS?



##########
drools-util/src/main/java/org/drools/util/FileUtils.java:
##########
@@ -59,6 +62,38 @@ public static File getFile(String fileName) {
         return toReturn;
     }
 
+    /**
+     * Retrieve the <code>File</code> from jars
+     *
+     * @param fileName
+     * @return
+     */
+    public static File getFileFromDependency(String fileName) throws 
IOException {
+        URL jarUrl =
+                
Collections.list(Thread.currentThread().getContextClassLoader().getResources(fileName))
+                        .stream()
+                        .filter(url -> url.getProtocol().equals("jar"))
+                        .findFirst()
+                        .orElseThrow(() -> new RuntimeException("Failed to 
retrieve jar containing " + fileName));
+        String jarFileName = jarUrl.getFile();
+        String jarPath = jarFileName.substring(jarFileName.lastIndexOf(":") + 
1,
+                                               jarFileName.lastIndexOf("!"));
+        System.out.println(jarPath);
+        final JarFile jarFile = new JarFile(new File(jarPath));
+        System.out.println(jarFile);
+        String foundFile = Collections.list(jarFile.entries())
+                .stream()
+                .filter(entry -> entry.getName().equals(fileName) && 
!entry.isDirectory())
+                .map(ZipEntry::getName)
+                .findFirst()
+                .orElseThrow(() -> new RuntimeException("Failed to find file " 
+ fileName));
+        System.out.println(foundFile);
+        URL r = 
Thread.currentThread().getContextClassLoader().getResource(foundFile);
+        System.out.println(r);

Review Comment:
   @gitgabrio Please consider the above suggestion ^^



##########
kie-internal/src/main/java/org/kie/internal/pmml/PMMLCommandExecutor.java:
##########
@@ -18,17 +18,17 @@
  */
 package org.kie.internal.pmml;
 
-import org.kie.api.pmml.PMML4Result;
-import org.kie.api.pmml.PMMLRequestData;

Review Comment:
   @gitgabrio Are those DTOs still required? I see them removed in a lot of 
places.



##########
kie-dmn/kie-dmn-pmml-tests-parent/kie-dmn-pmml-tests-trusty/pom.xml:
##########
@@ -34,6 +34,7 @@
 
   <properties>
     <java.module.name>org.kie.dmn.pmml.tests.trusty</java.module.name>
+    <archunit.version>1.4.0</archunit.version>

Review Comment:
   @gitgabrio Can be declared in the parent pom?



##########
kie-pmml-trusty/kie-pmml-api/pom.xml:
##########
@@ -43,6 +43,7 @@
     <dependency>
       <groupId>org.kie</groupId>
       <artifactId>kie-api</artifactId>
+      <scope></scope>

Review Comment:
   @gitgabrio ?



##########
kie-pmml-trusty/kie-pmml-evaluator/kie-pmml-evaluator-core/src/main/java/org/kie/pmml/evaluator/core/serialization/PMMLRequestDataDeserializer.java:
##########
@@ -18,6 +18,8 @@
  */
 package org.kie.pmml.evaluator.core.serialization;
 
+import java.io.IOException;

Review Comment:
   @gitgabrio It seems unused?



##########
kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/pmml/DMNKiePMMLTrustyInvocationEvaluator.java:
##########
@@ -175,47 +163,48 @@ private Collection<EfestoOutput> 
evaluateInput(EfestoInput<PMMLRequestData> inpu
         }
     }
 
-    protected Map<String, GeneratedResources> compileFile(String fileName,
-                                                          ClassLoader 
parentClassLoader) {
-        try {
-            EfestoCompilationContext compilationContext =
-                    
EfestoCompilationContextUtils.buildWithParentClassLoader(parentClassLoader);
-            EfestoInputStreamResource toProcess = new 
EfestoInputStreamResource(documentResource.getInputStream(),
-                                                                               
 fileName);
-            compilationManager.processResource(compilationContext, toProcess);
-            return compilationContext.getGeneratedResourcesMap();
-        } catch (Exception t) {
-            String errorMessage = String.format("Compilation error for %s due 
to %s: please %s",
-                                                fileName,
-                                                t.getMessage(),
-                                                CHECK_CLASSPATH);
-            LOG.error(errorMessage);
-            throw new KieCompilerServiceException(errorMessage, t);
-        }
-    }
-
-    protected PMMLRequestData getPMMLRequestData(String correlationId, String 
modelName, String fileName,
+//    protected Map<String, GeneratedResources> compileFile(String fileName,
+//                                                          ClassLoader 
parentClassLoader) {
+//        try {
+//            EfestoCompilationContext compilationContext =
+//                    
EfestoCompilationContextUtils.buildWithParentClassLoader(parentClassLoader);
+//            EfestoInputStreamResource toProcess = new 
EfestoInputStreamResource(documentResource.getInputStream(),
+//                                                                             
   fileName);
+//            compilationManager.processResource(compilationContext, 
toProcess);
+//            return compilationContext.getGeneratedResourcesMap();
+//        } catch (Exception t) {
+//            String errorMessage = String.format("Compilation error for %s 
due to %s: please %s",
+//                                                fileName,
+//                                                t.getMessage(),
+//                                                CHECK_CLASSPATH);
+//            LOG.error(errorMessage);
+//            throw new KieCompilerServiceException(errorMessage, t);
+//        }
+//    }
+
+    protected Map<String, Object> getPMMLRequestData(String correlationId, 
String modelName, String fileName,
                                                DMNResult dmnr) {
-        PMMLRequestData toReturn = new PMMLRequestData(correlationId, 
modelName);
+        Map<String, Object> toReturn = new HashMap<>();
         for (DMNFunctionDefinitionEvaluator.FormalParameter p : parameters) {
             Object pValue = getValueForPMMLInput(dmnr, p.name);
-            toReturn.addRequestParam(p.name, pValue);
+            toReturn.put(p.name, pValue);
         }
-        toReturn.addRequestParam("_pmml_file_name_", fileName);
+        toReturn.put(PMML_FILE_NAME, fileName);
+        toReturn.put(PMML_MODEL_NAME, modelName);
         return toReturn;
     }
 
-    private EfestoLocalRuntimeContext getEfestoRuntimeContext(final 
ClassLoader parentClassloader) {
-        return 
EfestoRuntimeContextUtils.buildWithParentClassLoader(parentClassloader);
+    private EfestoLocalRuntimeContext getEfestoRuntimeContext(final 
ClassLoader parentClassloader, final Map<String, GeneratedResources> 
generatedResourcesMap) {
+        return 
EfestoRuntimeContextUtils.buildWithParentClassLoader(parentClassloader, 
generatedResourcesMap);
     }
 
-    private ModelLocalUriId getModelLocalUriId(String fileName, String 
modelName) {
-        String path = "/pmml/" + getFileNameNoSuffix(fileName) + SLASH + 
getSanitizedClassName(modelName);
-        LocalUri parsed = LocalUri.parse(path);
-        return new ModelLocalUriId(parsed);
-    }
+//    private ModelLocalUriId getModelLocalUriId(String fileName, String 
modelName) {

Review Comment:
   @gitgabrio Can we remove this code block?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to