Hello Mark,
For reference, I've attached to the original Jira DROOLS-419 zip file with source code and detailed instruction how to replicate issue, and how to replicate workaround as well. That is the simple code I've used to replicate the issue on Windows box and Linux box before submitting the jira bug entry.

Concerning your question to provide unit test, I have to admit I'm a bit lost how could this be achieved ?
As this is more of an integration aspect than code, if I was to write a JUnit for this, it would require to 1 empty .m2 local repo directory, 2 provide an "embedded nexus" (not sure if actually feasible) and 3 perform maven commands from shell, not by direct use of the API. 4 do the kie api call to trigger the stack trace.

So, can I kindly know if zip file and instructions with Jira DROOLS-419 are sufficient, or I shall investigate further if and how to self-contain all of this in a JUnit test, please?

Thank you for your feedback

On Fri, Jan 31, 2014 at 1:44 AM, Mark Proctor <mproctor@codehaus.org> wrote:
Can you create a unit test that reproduces your issue. Something that follows this:



On 30 Jan 2014, at 19:49, Matteo Mortari <matteo.mortari@gmail.com> wrote:

in the hope this could save time if someone has been experiencing same issue. Drools 6.0.1.Final

I had message "Cannot find KieModule" with kieServices.newKieContainer() with LATEST or RELEASE , instead of explicit version number (eg: 0.0.1) on a application where the KIE module Rule artifact project kjar has been locally-installed from remote Maven repository, that is the right hand side of this diagram: http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/#d0e933

Meaning that before launching Application, I performed
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=com.acme:X:LATEST -DrepoUrl=http://nexus-hostname/nexus/content/repositories/releases/

kieServices.newKieContainer() with LATEST, 
kieServices.newKieContainer() with RELEASE,

failed with stack trace:
Exception in thread "main" java.lang.RuntimeException: Cannot find KieModule: com.acme:X:RELEASE
        at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:86)
        at (...)

But kieServices.newKieContainer() with a fixed version, eg.: 0.0.2 did indeed worked OK, if installed in the local .m2 repository.

To avoid this issue, I found only 3 possible workarounds
1 use mvn maven-dependency-plugin:go-offline but did not work all of the time
2 manually ensure maven-metadata-local.xml file is generate in local .m2 repository
3 just download manually .jar and .pom of the remote maven repo, and then install with mvn install:install-file 

In this case, of workaround kieServices.newKieContainer()  works OK with all the version LATEST, RELEASE, and fixed version number.

Raise jira DROOLS-419 with more details and example projects, please don't hate me if was just me missing something or not-Drools issue actually
In my defense I had good intentions saving somebody's else time in case same strange behavior, which is really strange because to me it worked only with explicit fixed version number, and that was really bizarre ;)

Hope this helps,
rules-users mailing list

rules-users mailing list