<div class="gmail_quote">[ re sending to the whole list as requested by Julian ]</div><div class="gmail_quote"><br></div><div class="gmail_quote">Hi Julian,<div>I've completed the first stage of the xmla-over-olap4j work.</div>
<div><br></div><div>I still haven't found out how to create patch files - it can probably be done using the p4 client, I will look at it tomorrow.</div>
<div><br></div><div>For now I am attaching to this email the three files that I updated and an example web.xml that shows how the servlet could be deployed.</div><div>You can find most of my changes easily by searching for [MROSSI].</div>
<div><br></div><div>Initially I tried to split out the servlet from the rest of the Mondrian codebase but the dependencies are many and go fairly deep.</div><div>I am not sure that such an endeavour would be very valuable.</div>
<div>After all there is nothing wrong in just using the whole mondrian jar as it is.</div><div><br></div><div>I've tested my code using Excel and the SimbaO2X adapter.</div><div>I can successfully connect to a Foodmart olap database in the following way:</div>
<div><br></div><div>Excel-->Simba-->My Server with the modified DefaultXmlaServlet-->Olap4j Xmla Driver-->A standard mondrian installation with a standard xmla servlet.</div><div><br></div><div>I will need to make some more changes to handle the credentials passed by Excel in the XMLA requests.</div>
<div>I did most of the work last year but never contributed it back.</div><div><br></div><div>What do you think?</div><div>How do you think I should proceed from this point?</div><div><br></div><div>Many thanks!</div><div>
Michele</div><div><div></div><div class="h5"><div> </div><div><br><br><div class="gmail_quote">On 11 March 2011 17:56, Julian Hyde <span dir="ltr"><<a href="mailto:jhyde@pentaho.com" target="_blank">jhyde@pentaho.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div><font color="#000080" size="2" face="Lucida Sans"></font> </div><br>
<blockquote style="border-left:#000080 2px solid;padding-left:5px;margin-left:5px;margin-right:0px" dir="ltr">
<div dir="ltr" lang="en-us" align="left">
<hr>
<font size="2" face="Tahoma"><b>From:</b> Michele Rossi
[mailto:<a href="mailto:michele.rossi@gmail.com" target="_blank">michele.rossi@gmail.com</a>] <br><b>Sent:</b> Friday, March 11, 2011 1:43
AM<br><b>To:</b> <a href="mailto:mondrian@pentaho.org" target="_blank">mondrian@pentaho.org</a>; <a href="mailto:jhyde@pentaho.com" target="_blank">jhyde@pentaho.com</a><br><b>Subject:</b>
Re: [Mondrian] xmla over olap4j server<br></font><br></div><div>
<div></div>[re-sending from my private email address as it's not working from
my work address]
<div><br>
<blockquote style="border-left:#ccc 1px solid;margin:0px 0px 0px 0.8ex;padding-left:1ex" class="gmail_quote">
<div class="gmail_quote"><br>
<div class="gmail_quote"><span style="border-collapse:collapse;font-family:arial, sans-serif;font-size:13px">Julian,
<div>I have a few questions for you:</div>
<div><br></div>
<div>1. How do I get started?</div>
<div>Can you create an account on perforce for me with write
permissions?<span><font color="#000080" size="2" face="Lucida Sans"> </font></span></div></span></div></div></blockquote></div></div></blockquote>
<div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans">Please submit your changes as patches
attached to jira cases. We don't give people committer privileges until they
have made a few successful contributions. </font></span></div><div>
<blockquote style="border-left:#000080 2px solid;padding-left:5px;margin-left:5px;margin-right:0px" dir="ltr">
<blockquote style="border-left:#ccc 1px solid;margin:0px 0px 0px 0.8ex;padding-left:1ex" class="gmail_quote">
<div class="gmail_quote"><span> </span>2. Olap4j
drillthrough</div>
<div class="gmail_quote">The mondrian olap4j driver implements drillthrough
via the "executeQuery" method which returns a java.sql.ResultSet
right? </div>
<div class="gmail_quote">Can we not leverage that method to implement
drillthrough on the xmla server?<span><font color="#000080" size="2" face="Lucida Sans"> </font></span></div></blockquote></blockquote>
</div><div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans">Possibly. Depends on your requirements.
Mondrian's XMLA clients expect more in the XMLA response than is currently
available in the ResultSet returned by that method. Therefore the XMLA server
calls a method in XmlaExtra. The default implementation of XmlaExtra calls
executeQuery. Same effect, longer route.</font></span></div><div>
<blockquote style="border-left:#000080 2px solid;padding-left:5px;margin-left:5px;margin-right:0px" dir="ltr">
<blockquote style="border-left:#ccc 1px solid;margin:0px 0px 0px 0.8ex;padding-left:1ex" class="gmail_quote">
<div class="gmail_quote"><span> </span></div><font color="#000080" size="2" face="Lucida Sans"></font></blockquote>
<blockquote style="border-left:#ccc 1px solid;margin:0px 0px 0px 0.8ex;padding-left:1ex" class="gmail_quote">
<div class="gmail_quote"><font color="#000080" size="2" face="Lucida Sans"></font><br></div>
<div class="gmail_quote">3. The new project:</div>
<div class="gmail_quote">We will need a new "olap4j xmla server" project with
its separate build an dependencies.</div>
<div class="gmail_quote">Can you think of a good name for it?</div>
<div class="gmail_quote">Perhaps Olap4jXmlaServer could be a good candidate
:)<span><font color="#000080" size="2" face="Lucida Sans"> </font></span></div></blockquote></blockquote>
</div><div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans">Sounds reasonable.</font></span></div><div>
<blockquote style="border-left:#000080 2px solid;padding-left:5px;margin-left:5px;margin-right:0px" dir="ltr">
<blockquote style="border-left:#ccc 1px solid;margin:0px 0px 0px 0.8ex;padding-left:1ex" class="gmail_quote">
<div class="gmail_quote">4. How to build the new project: </div>
<div class="gmail_quote">I know that mondrian is built using Ant.</div>
<div class="gmail_quote"><font color="#000080" size="2" face="Lucida Sans"></font><br></div>
<div class="gmail_quote">Have you ever thought about starting to use
Maven?</div>
<div class="gmail_quote">I've used Maven successfully for years and I've
totally forgot how to use ant.</div>
<div class="gmail_quote"><font color="#000080" size="2" face="Lucida Sans"></font><br></div>
<div class="gmail_quote">I think it would also be beneficial in terms of
linking olap4j releases with server releases.</div>
<div class="gmail_quote">We could then distribute both olap4j, mondrian and
the xmla server on public maven repositories.<span><font color="#000080" size="2" face="Lucida Sans"> </font></span></div></blockquote></blockquote>
</div><div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans">At this point I don't want to create a
new project. I would like to work with the xmla server code in situ in the
mondrian code base, to learn what the necessary changes are, and where would be
the appropriate cut points. Then I will help you factor it into another project.
But first, let's get it working in situ.</font></span></div>
<div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans"></font></span> </div>
<div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans">Re. maven, see
below.</font></span></div><div>
<blockquote style="border-left:#000080 2px solid;padding-left:5px;margin-left:5px;margin-right:0px" dir="ltr">
<blockquote style="border-left:#ccc 1px solid;margin:0px 0px 0px 0.8ex;padding-left:1ex" class="gmail_quote"><font color="#000080" size="2" face="Lucida Sans"></font>
<div class="gmail_quote"><font color="#000080" size="2" face="Lucida Sans"></font><font color="#000080" size="2" face="Lucida Sans"></font><font color="#000080" size="2" face="Lucida Sans"></font><font color="#000080" size="2" face="Lucida Sans"></font><font color="#000080" size="2" face="Lucida Sans"></font><font color="#000080" size="2" face="Lucida Sans"></font><br>
</div>
<div class="gmail_quote">5. Proposed solution</div>
<div class="gmail_quote">I can put together a webapp project quickly using the
following ingredients </div>
<div class="gmail_quote"><font color="#000080" size="2" face="Lucida Sans"></font><br></div>
<div class="gmail_quote">a. maven build</div>
<div class="gmail_quote"><font color="#000080" size="2" face="Lucida Sans"></font><br></div>
<div class="gmail_quote">b. unit tests based on mondrian: </div>
<div class="gmail_quote">You create an in-process mondrian instance and
connect to it using the mondrian olap4j driver. </div>
<div class="gmail_quote">Then you hit the new server using the olap4j xmla
driver. </div>
<div class="gmail_quote">You can then compare results making assertions on the
equality of metadata and values.</div>
<div class="gmail_quote"><font color="#000080" size="2" face="Lucida Sans"></font><br></div>
<div class="gmail_quote">c. The output artifact would a standard .WAR
file </div>
<div class="gmail_quote"><font color="#000080" size="2" face="Lucida Sans"></font><br></div>
<div class="gmail_quote">d. Jetty launcher</div>
<div class="gmail_quote">I propose the creation of a jetty launcher
too. </div>
<div class="gmail_quote">I can create such launcher using maven reasonably
quickly. </div>
<div class="gmail_quote">The result would be a tar.gz file with a number of
sub-folders, one of them containing the .war file discussed above, others
containing shared jetty libraries and finally the .bat and .sh
launchers.</div>
<div class="gmail_quote"><font color="#000080" size="2" face="Lucida Sans"></font><br></div>
<div class="gmail_quote">We could then have a "cfg" folder with a template
.properties file where a user would have to put the details of his/her
favourite olap4j driver and the connection details.<span><font color="#000080" size="2" face="Lucida Sans"> </font></span></div></blockquote></blockquote>
</div><div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans">All of the above sounds fine. In due
course. But please, don't make big changes as the first step. (I've found that
the most successful committers are the ones who submit small patches at
first.)</font></span></div>
<div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans"></font></span> </div>
<div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans">In this case, the patches would be
whatever hacks to mondrian's xmla server are necessary to build your flavor of
the server. I will learn a lot from those patches.</font></span></div>
<div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans"></font></span> </div>
<div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans">When time comes to create the new
project, we can discuss using maven. You'd have to make a strong case, because
it would be a Pentaho project (containing about 15k of mondrian source code,
plus unit tests) and Pentaho projects have standardized on using an
ant+ivy+subfloor infrastructure.</font></span></div>
<div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans"></font></span> </div><font color="#888888">
<div dir="ltr" class="gmail_quote"><span><font color="#000080" size="2" face="Lucida Sans">Julian</font></span></div></font></div>
</blockquote></div><br></div>
</div></div></div><br>