Drools accediendo a archivos java generados.

Estoy ejecutando la regla de Drools a través de la prueba de Mockito. La regla falla en el tiempo de ejecución que informa el error con un número de línea de un archivo java que tiene un nombre largo y arbitrario. Parece que Drools genera archivos java sobre la marcha e inyecta en JVM. Pero cuando busco esos archivos en mi disco no encuentro ninguno. ¿Hay alguna manera de poder almacenarlos en mi disco?

Tengo la solucion

Puedes volcar los archivos Java generados por Drools de dos maneras.

1) A través de la línea de comando:

-Ddrools.dump.dir="target/dumpDir" 

Por ejemplo, yo uso el comando Maven para ejecutar la regla por lo que sería

 mvn -Ddrools.dump.dir="target/dumpDir" -Dtest=DroolsRuleTest test 

2) A través de la API

 public class FileKnowledgeBaseFactory implements KnowledgeBaseFactory { private Log log = LogFactory.getLog(FileKnowledgeBaseFactory.class); public KnowledgeBase load(String drlFullFilename) { KnowledgeBuilderConfiguration config = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); config.setOption(DumpDirOption.get(new File("target/dumpDir"))); KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(config); .... .... } }