[Mondrian] Mondrian and olap4j-xmlaserver incompatibility

Ganong, Kenneth ken.ganong at truvenhealth.com
Thu Aug 14 15:06:46 EDT 2014


Hello Mondrian developers,

My company, Truven, is currently running with an older, forked version of Mondrian and we are interested in updating to the community version of Mondrian. We are taking advantage of the fact that the olap4j-xmlaserver project has been separated from Mondrian and using it as a stepping stone for updating Mondrian.

However, I have noticed that the separate olap4j-xmlaserver is incompatible with Mondrian--both the latest 3.x version of Mondrian and the latest 4.0 code from github. These incompatibilities mostly come from the XmlaHandler.XmlaExtra interface.

Mondrian implements the XmlaExtra interface with MondrianOlap4jExtra. The interface has different methods and method signatures in the olap4j-xmlaserver source code than it does in the Mondrian source code, making this MondrianOlap4jExtra implementation incompatible with the olap-xmlaserver project.
Here are a couple examples:

*         getSchemaFunctionList

o   in olap4j-xmlaserver: void getSchemaFunctionList(List<FunctionDefinition> funDefs, Schema schema, Util.Predicate1<String> functionFilter);

o   in Mondrian 3.6.1 and Mondrian 4.0: void getSchemaFunctionList(List<FunctionDefinition> funDefs, Schema schema, Util.Functor1<Boolean, String> functionFilter);

*         getKeywords

o   in olap4j-xmlaserver, the getKeywords method exists on the XmlaExtra interface

o   in Mondrian 3.6.1 and Mondrian 4.0, the getKeywords method does not exist on the XmlaExtra interface, nor the MondrianOlap4jExtra implementation.

In RowsetDefinition in Mondrian, there is a line which has 'propertyDefinition.value'. In the same place in the olap4j-xmlaserver, the line has 'extra.getPropertyValue(propertyDefinition)'. Unfortunately, not only does MondrianOlap4jExtra not implement this method, but the value field in PropertyDefinition is package protected, so the implementation could not simply be 'return propertyDefinition.value'.

The way that drill through queries are handled seems to be a little different between olap4j-xmlaserver and Mondrian as well.

Since Mondrian 3.x and 4.0 still do implement the classes that are in the olap4j-server source code, these incompatibilities do not yet affect Mondrian. I had the understanding, however, that Mondrian 4.0 would eventually depend on the olap4j-server project which makes the finding of these incompatibilities unexpected even while both projects are under development.

Are these mismatches known or has there been an unintentional fork?

        Ken
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pentaho.org/pipermail/mondrian/attachments/20140814/18d86ae9/attachment.html 


More information about the Mondrian mailing list