[Mondrian] Proposal for adding result post processor
extension tospi
Ajit Vasudeo Joglekar
ajogleka at thoughtworks.com
Thu Oct 11 02:52:48 EDT 2007
Julian,
We are using XMLA in the deployment scenario. This is what we have done to
post process the rolap result in xmla pipeline
- Extend XmlaServlet
Override "protected XmlaHandler getXmlaHandler()" to return our
own XmlaHandler
- Extend XmlaHandler
Override "protected Connection getConnection(final
DataSourcesConfig.Catalog catalog, final Role role, final String roleName)
throws XmlaException" to return our own RolapConnection
- Implement Connection, delegate to RolapConnection
Wrap "public Result execute(Query query)" to return our own
Result. Delegate all other method calls to RolapConnection.
- Extend ResultBase to do the Result post processing as required. Use in
the Connection execute method
- Define the classes that need to access RolapCell (package visibility) in
package mondrian.rolap
- Use reflection to invoke getMembers on RolapCell. Required to determine
whether the cell value is a result of literal calculated member evaluation
This takes care of the post processing the result in Xmla pipeline. We
also use Mdx servlet in our development setup for simplifying the
development cycle. We will need to handle the post processing separately
for this
In the post I mentioned about removing final
protected final Axis[] axes; // remove final
This is not required
It doesn't feel very clean the way we have made changes from the end of
the xmla processing pipeline, added the new classes in mondrian.rolap
package and used reflection in one case. It will be much simpler and
cleaner if we could intercept the result and change visibility,
accessibility of few things. Hence the proposal.
-Ajit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pentaho.org/pipermail/mondrian/attachments/20071011/9cf42736/attachment.html
More information about the Mondrian
mailing list