Hi,
Please see https://bugzilla.redhat.com/show_bug.cgi?id=724409. This is reported for BRMS 5.3.
The failure to update the package name is caused by (I presume) changes to the de-serialization of RuleFlow files.
Drools Guvnor includes the following in org.drools.guvnor.server.contenthandler.RuleFlowHandler:-
RuleFlowProcess process = null;
InputStreamReader reader = new InputStreamReader( is );
PackageBuilderConfiguration configuration = new PackageBuilderConfiguration();
XmlProcessReader xmlReader = new XmlProcessReader( configuration.getSemanticModules(),
getClassLoader() );
RuleFlowProcess process = (RuleFlowProcess) xmlReader.read( reader ); \\<---- CCE
The problem is that XmlProcessReader returns a List<Process> and hence Guvnor gets a (swallowed) ClassCastException.
I could simply change this to use a List<Process> however I note that the XmlProcessReader fails to parse the RuleFlow file attached to the BZ issue (the processes list is null after parsing).
Furthermore there will (possibly) be an abundance of Drools Guvnor repository files that contain legacy RuleFlowProcess XML that Guvnor will need to continue to handle.
Are RuleFlowProcess deprecated in favor of Process? How can I convert a RuleFlowProcess into a Process (and back again)? How can I de-serialize the BZ RuleFlow XML into a RuleFlowProcess?
Whilst the BZ is for BRMS5.3 the problematic code is also in Drools Guvnor 5.4.0.CR1 and master branch (and jBPM 5.3.0-SNAPSHOT) so is not set to resolve itself.
With kind regards,
Mike