<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word"><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18904"><!--[if !mso]>
<STYLE>v\:* {
        BEHAVIOR: url(#default#VML)
}
o\:* {
        BEHAVIOR: url(#default#VML)
}
w\:* {
        BEHAVIOR: url(#default#VML)
}
.shape {
        BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]-->
<STYLE>@font-face {
        font-family: Wingdings;
}
@font-face {
        font-family: Tahoma;
}
@font-face {
        font-family: Lucida Sans;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
P.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt
}
LI.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt
}
DIV.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"; FONT-SIZE: 12pt
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.EmailStyle17 {
        FONT-FAMILY: Arial; COLOR: navy; mso-style-type: personal-reply
}
DIV.Section1 {
        page: Section1
}
OL {
        MARGIN-BOTTOM: 0in
}
UL {
        MARGIN-BOTTOM: 0in
}
</STYLE>
</HEAD>
<BODY lang=EN-US link=blue vLink=blue>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans">You should be able to use the olap4j public API for this. 
Hand-parsing, as you correctly observe, is brittle, and we made the parser part 
of the public API to solve this problem. </FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans">Create an olap4j connection, downcast to OlapConnection, then 
call getParserFactory(), call createParser on that factory, then use the parser 
to parse a string. </FONT></SPAN><SPAN class=163555617-07042010><FONT 
color=#000080 size=2 face="Lucida Sans">Your code does not need to reference 
DefaultMdxPArserImpl at all.</FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans">Note that after&nbsp;you have manipulated the parse tree, you 
can re-creeate the MDX by calling String 
ParseTreeNode.unparse(ParseTreeWriter).</FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans">And also node that you can create parse trees 'by hand' 
without using a parser.</FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans">If you are using the mondrian olap4j driver the olap4j 
connection will contain a mondrian connection. You can unwrap it using the 
following code:</FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans">java.sql.Connection olap4jConnection;</FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans">mondrian.olap.Connection mondrianConnection 
=</FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans">&nbsp; 
olap4jConnection.unwrap(mondrian.olap.Connection.class);</FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans">The connection will be an instance of 
mondrian.olap4j.MondrianOlap4jConnection but, as with DefaultMdxParserImpl, your 
code never needs to (nor should) reference that class 
directly.</FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans">Julian</FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2 
face="Lucida Sans"></FONT></SPAN>&nbsp;</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 class=OutlookMessageHeader align=left>
  <HR tabIndex=-1>
  <FONT size=2 face=Tahoma><B>From:</B> Josh Chappelle 
  [mailto:jchappelle@4redi.com] <BR><B>Sent:</B> Wednesday, April 07, 2010 7:35 
  AM<BR><B>To:</B> jhyde@pentaho.com; 'Mondrian developer mailing list'; 'Luc 
  Boudreau'<BR><B>Cc:</B> olap4j-devel@lists.sourceforge.net<BR><B>Subject:</B> 
  RE: [Olap4j-devel] [Mondrian] Convert Connection to 
  OlapConnection<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV class=Section1>
  <P class=MsoNormal><FONT color=navy size=2 face=Arial><SPAN 
  style="FONT-FAMILY: Arial; COLOR: navy; FONT-SIZE: 10pt">The gui use case is 
  exactly what we are doing. We have a web based application and we use wicket 
  for our presentation layer. We have created a primitive mdx designer to create 
  mdx views and save the mdx string to a database. When the user wants to edit 
  the mdx then it poses an issue of parsing. We can do some ugly string 
  manipulation but it starts to get ugly and as we all know that kind of thing 
  is brittle. That&#8217;s why we need the parser. I&#8217;m assuming I can create a 
  ParseTreeVisitor implementation that can parse the string and build up our 
  objects.<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT color=navy size=2 face=Arial><SPAN 
  style="FONT-FAMILY: Arial; COLOR: navy; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT color=navy size=2 face=Arial><SPAN 
  style="FONT-FAMILY: Arial; COLOR: navy; FONT-SIZE: 10pt">If there is another 
  class that is better suited for that please feel free to let me 
  know.<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT color=navy size=2 face=Arial><SPAN 
  style="FONT-FAMILY: Arial; COLOR: navy; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT color=navy size=2 face=Arial><SPAN 
  style="FONT-FAMILY: Arial; COLOR: navy; FONT-SIZE: 10pt">Thanks,<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT color=navy size=2 face=Arial><SPAN 
  style="FONT-FAMILY: Arial; COLOR: navy; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT color=navy size=2 face=Arial><SPAN 
  style="FONT-FAMILY: Arial; COLOR: navy; FONT-SIZE: 10pt">Josh<o:p></o:p></SPAN></FONT></P>
  <DIV>
  <DIV style="TEXT-ALIGN: center" class=MsoNormal align=center><FONT size=3 
  face="Times New Roman"><SPAN style="FONT-SIZE: 12pt">
  <HR tabIndex=-1 align=center SIZE=2 width="100%">
  </SPAN></FONT></DIV>
  <P class=MsoNormal><B><FONT size=2 face=Tahoma><SPAN 
  style="FONT-FAMILY: Tahoma; FONT-SIZE: 10pt; FONT-WEIGHT: bold">From:</SPAN></FONT></B><FONT 
  size=2 face=Tahoma><SPAN style="FONT-FAMILY: Tahoma; FONT-SIZE: 10pt"> 
  mondrian-bounces@pentaho.org [mailto:mondrian-bounces@pentaho.org] <B><SPAN 
  style="FONT-WEIGHT: bold">On Behalf Of </SPAN></B>Julian Hyde<BR><B><SPAN 
  style="FONT-WEIGHT: bold">Sent:</SPAN></B> Tuesday, April 06, 2010 8:57 
  PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> 'Luc 
  Boudreau'<BR><B><SPAN style="FONT-WEIGHT: bold">Cc:</SPAN></B> 
  olap4j-devel@lists.sourceforge.net; 'Mondrian developer mailing 
  list'<BR><B><SPAN style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: 
  [Olap4j-devel] [Mondrian] Convert Connection to 
  OlapConnection</SPAN></FONT><o:p></o:p></P></DIV>
  <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
  style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <DIV>
  <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
  style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">I agree with 
  the 4 bundles of functionality you have proposed. But did you realize that the 
  parser bundle is already present? It's in the org.olap4j.mdx.parser 
  package:</SPAN></FONT><o:p></o:p></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
  style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
  style="FONT-SIZE: 12pt"><A 
  href="http://www.olap4j.org/api/org/olap4j/mdx/parser/package-summary.html">http://www.olap4j.org/api/org/olap4j/mdx/parser/package-summary.html</A><o:p></o:p></SPAN></FONT></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
  style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
  style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">The GUI use 
  case you cite is a good one. But it can be done today using MdxParser, 
  MdxParserFactory, and the parse tree object model classes in the 
  org.olap4j.mdx package.&nbsp;And by the way, to get a parser factory, you call 
  OlapConnection.getParserFactory.</SPAN></FONT><o:p></o:p></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
  style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
  style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">Behind the 
  scenes, the olap4j driver is probably using DefaultMdxParserImpl. (It is for 
  both olap4j drivers that exist today.) But the app does not need to know about 
  DefaultMdxParserImpl in order to do what it needs to do, only 
  MdxParser.</SPAN></FONT><o:p></o:p></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
  style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
  style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">Julian</SPAN></FONT><o:p></o:p></P></DIV>
  <BLOCKQUOTE 
  style="BORDER-BOTTOM: medium none; BORDER-LEFT: navy 1.5pt solid; PADDING-BOTTOM: 0in; MARGIN: 5pt 0in 5pt 3.75pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in">
    <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
    style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P>
    <DIV style="TEXT-ALIGN: center" class=MsoNormal align=center><FONT size=3 
    face="Times New Roman"><SPAN style="FONT-SIZE: 12pt">
    <HR tabIndex=-1 align=center SIZE=2 width="100%">
    </SPAN></FONT></DIV>
    <P style="MARGIN-BOTTOM: 12pt" class=MsoNormal><B><FONT size=2 
    face=Tahoma><SPAN 
    style="FONT-FAMILY: Tahoma; FONT-SIZE: 10pt; FONT-WEIGHT: bold">From:</SPAN></FONT></B><FONT 
    size=2 face=Tahoma><SPAN style="FONT-FAMILY: Tahoma; FONT-SIZE: 10pt"> Luc 
    Boudreau [mailto:lucboudreau@gmail.com] <BR><B><SPAN 
    style="FONT-WEIGHT: bold">Sent:</SPAN></B> Tuesday, April 06, 2010 6:28 
    PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> 
    jhyde@pentaho.com<BR><B><SPAN style="FONT-WEIGHT: bold">Cc:</SPAN></B> 
    Mondrian developer mailing list; 
    olap4j-devel@lists.sourceforge.net<BR><B><SPAN 
    style="FONT-WEIGHT: bold">Subject:</SPAN></B> Re: [Olap4j-devel] [Mondrian] 
    Convert Connection to OlapConnection</SPAN></FONT><o:p></o:p></P>
    <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
    style="FONT-SIZE: 12pt"><BR>Database drivers who implement their own parser 
    and grammar are free to not use the one provided by olap4j. An 
    OlapConnection still has to provide a parser factory to public code. Nothing 
    should change there. Yet this does not constitute an argument for not 
    exposing the internal parser. Olap4j contains the only MDX parser available 
    as far as I know and it would be a shame to bury it at the bottom of the 
    library.<BR><BR>I agree with keeping DefaultMdxParserImpl part of the SPI 
    only. There is no need to expose it and as I said in my previous email, I'd 
    much rather see a unified standard way of obtaining a MdxParser 
    implementation. I'm not talking about core API changes. Here's a very common 
    and realistic use case for it; a syntax-aware GUI editor for MDX queries 
    which is not a query tool.<BR><BR>If your objection is related to the 
    separation of intent of the different components of olap4j, then I can 
    assure you that I am fully aware of the mixup that is already in place. 
    Olap4j includes already an four distinctive components bundled together... 
    We talked about separating those in the past and never got to doing it. 
    Should we decide to do the actual work, I believe that the natural 
    separation of components should be as follows.<o:p></o:p></SPAN></FONT></P>
    <UL type=disc>
      <LI 
      style="MARGIN-BOTTOM: 12pt; mso-margin-top-alt: auto; mso-list: l0 level1 lfo1" 
      class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
      style="FONT-SIZE: 12pt">API (org.olap4j.* pagkages, minus the ones 
      below)<BR>This is the bulk of the olap4j code.<o:p></o:p></SPAN></FONT> 
      <LI 
      style="MARGIN-BOTTOM: 12pt; mso-margin-top-alt: auto; mso-list: l0 level1 lfo1" 
      class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
      style="FONT-SIZE: 12pt">XML/A Generic Driver 
      (org.olap4j.driver.xmla.*)<BR>The XML/A driver depends on the API 
      only.<o:p></o:p></SPAN></FONT> 
      <LI 
      style="MARGIN-BOTTOM: 12pt; mso-margin-top-alt: auto; mso-list: l0 level1 lfo1" 
      class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
      style="FONT-SIZE: 12pt">Query Model (org.olap4j.query.*)<BR>The query 
      model classes would depend on the API only.<o:p></o:p></SPAN></FONT> 
      <LI 
      style="mso-margin-top-alt: auto; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto" 
      class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
      style="FONT-SIZE: 12pt">MDX Parser (some package that is non existent 
      yet)<BR>The MDX parser would be a very simplistic wrapper over the default 
      parser SPI classes and exposed as a MdxParser factory. It would depend on 
      the API core only.<o:p></o:p></SPAN></FONT> </LI></UL>
    <P style="MARGIN-BOTTOM: 12pt" class=MsoNormal><FONT size=3 
    face="Times New Roman"><SPAN style="FONT-SIZE: 12pt">Each of those 
    components can be part of the olap4j source tree for now, but I'd like to 
    take the opportunity to initiate a discussion about their separation and get 
    feedback about the ramifications. I don't mind doing the actual work.<BR><BR 
    clear=all>_____________________________<BR>Luc 
    Boudreau<BR><BR><o:p></o:p></SPAN></FONT></P>
    <DIV>
    <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
    style="FONT-SIZE: 12pt">On Tue, Apr 6, 2010 at 7:49 PM, Julian Hyde &lt;<A 
    href="mailto:jhyde@pentaho.com">jhyde@pentaho.com</A>&gt; 
    wrote:<o:p></o:p></SPAN></FONT></P>
    <DIV>
    <DIV>
    <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
    style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">I stand by 
    the comments I made in that forum post. MdxParser is part of olap4j's public 
    API, but DefaultMdxParserImpl is not and will never 
    be.</SPAN></FONT><o:p></o:p></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
    style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
    style="FONT-SIZE: 12pt"><A 
    href="http://www.olap4j.org/api/org/olap4j/mdx/parser/package-summary.html" 
    target=_blank>http://www.olap4j.org/api/org/olap4j/mdx/parser/package-summary.html</A><o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
    style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
    style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">The public 
    API, remember, is for people building OLAP applications. To them, olap4j 
    needs to look like JDBC, but with one exception. JDBC drivers don't supply a 
    SQL parser, but parsing is more important to MDX applications so every 
    olap4j driver must supply an MDX parser that implements the MdxParser 
    interface.</SPAN></FONT><o:p></o:p></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
    style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
    style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">The other 
    important audience is developers of drivers. To a limited extent, the olap4j 
    code base gives them an SPI to help them build drivers. DefaultMdxParserImpl 
    is part of that SPI, as are the classes in org.olap4j.impl. We will try to 
    keep the SPI stable as olap4j eveolves but we won't bust a gut over 
    it.</SPAN></FONT><o:p></o:p></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
    style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
    style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">Remember 
    that different drivers might be talking to different OLAP engines, and 
    different engines have different dialects of MDX, so naturally the driver 
    writers might want to create their own parser. They can write a parser from 
    scratch, or they can start with the default MDX 
    parser.</SPAN></FONT><o:p></o:p></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
    style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <DIV>
    <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
    style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">If you want 
    to dismember the olap4j project to get the MDX parser, then go ahead. olap4j 
    is after all an open source project. But you're on your own. You are in a 
    small minority of olap4j users, and we don't intend to change the olap4j API 
    for your benefit.<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
    style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
    style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">It sounds 
    like <o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
    style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
    style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">Julian<o:p></o:p></SPAN></FONT></P></DIV>
    <DIV>
    <P class=MsoNormal><FONT color=navy size=2 face="Lucida Sans"><SPAN 
    style="FONT-FAMILY: 'Lucida Sans'; COLOR: navy; FONT-SIZE: 10pt">&nbsp;<o:p></o:p></SPAN></FONT></P></DIV></DIV>
    <BLOCKQUOTE 
    style="BORDER-BOTTOM: medium none; BORDER-LEFT: navy 1.5pt solid; PADDING-BOTTOM: 0in; MARGIN: 5pt 0in 5pt 3.75pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 0in; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0in">
      <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
      style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P>
      <DIV style="TEXT-ALIGN: center" class=MsoNormal align=center><FONT size=3 
      face="Times New Roman"><SPAN style="FONT-SIZE: 12pt">
      <HR align=center SIZE=2 width="100%">
      </SPAN></FONT></DIV>
      <P style="MARGIN-BOTTOM: 12pt" class=MsoNormal><B><FONT size=2 
      face=Tahoma><SPAN 
      style="FONT-FAMILY: Tahoma; FONT-SIZE: 10pt; FONT-WEIGHT: bold">From:</SPAN></FONT></B><FONT 
      size=2 face=Tahoma><SPAN style="FONT-FAMILY: Tahoma; FONT-SIZE: 10pt"> Luc 
      Boudreau [mailto:<A href="mailto:lucboudreau@gmail.com" 
      target=_blank>lucboudreau@gmail.com</A>] <BR><B><SPAN 
      style="FONT-WEIGHT: bold">Sent:</SPAN></B> Tuesday, April 06, 2010 3:58 
      PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Mondrian developer 
      mailing list<BR><B><SPAN style="FONT-WEIGHT: bold">Cc:</SPAN></B> <A 
      href="mailto:olap4j-devel@lists.sourceforge.net" 
      target=_blank>olap4j-devel@lists.sourceforge.net</A><BR><B><SPAN 
      style="FONT-WEIGHT: bold">Subject:</SPAN></B> Re: [Olap4j-devel] 
      [Mondrian] Convert Connection to 
      OlapConnection</SPAN></FONT><o:p></o:p></P>
      <DIV>
      <DIV>
      <P style="MARGIN-BOTTOM: 12pt" class=MsoNormal><FONT size=3 
      face="Times New Roman"><SPAN style="FONT-SIZE: 12pt"><BR>As of olap4j 
      revision 307 ( <A 
      href="http://olap4j.svn.sourceforge.net/viewvc/olap4j?view=rev&amp;revision=307" 
      target=_blank>http://olap4j.svn.sourceforge.net/viewvc/olap4j?view=rev&amp;revision=307</A> 
      ) the default MDX parser does not depend on OlapConnection. It should not 
      have been dependent on it in the first place. <BR><BR>Mondrian developers: 
      please modify the olap4j connection implementation and remove the now 
      deprecated call to DefaultMdxParserImpl(OlapConnection). Modifications to 
      the generic XML/A driver have already been performed.<BR><BR>This does not 
      mean that DefaultMdxParserImpl is part of the public API yet. There should 
      be a default parser factory exposed to developers. In the meanwhile, 
      developers can directly instantiate it, but be advised that we do not 
      provide any guarantees on this object's signature and we reserve the right 
      to modify it in the future. To create a parser, developers can call the 
      empty constructor.<BR><BR>A compiled binary which includes those changes 
      can be picked from the CI server as of now :<BR><BR><A 
      href="http://ci.pentaho.com/view/Analysis/job/olap4j/258/" 
      target=_blank>http://ci.pentaho.com/view/Analysis/job/olap4j/258/</A><BR><BR 
      clear=all>_____________________________<BR>Luc 
      Boudreau<BR><BR><o:p></o:p></SPAN></FONT></P>
      <DIV>
      <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
      style="FONT-SIZE: 12pt">On Tue, Apr 6, 2010 at 5:38 PM, Luc Boudreau 
      &lt;<A href="mailto:lucboudreau@gmail.com" 
      target=_blank>lucboudreau@gmail.com</A>&gt; 
      wrote:<o:p></o:p></SPAN></FONT></P>
      <P style="MARGIN-BOTTOM: 12pt" class=MsoNormal><FONT size=3 
      face="Times New Roman"><SPAN style="FONT-SIZE: 12pt"><BR>This topic was 
      discussed in olap4j forums.<BR><BR><A 
      href="http://sourceforge.net/projects/olap4j/forums/forum/577988/topic/3545015" 
      target=_blank>http://sourceforge.net/projects/olap4j/forums/forum/577988/topic/3545015</A><BR><BR>Although 
      Julian's last comment mentioned that the parser is not officially part of 
      the public API, I for one would like to make it part of the public API. 
      There are many use cases for it and your request confirms it.<BR><BR>I'll 
      see what I can do to detach the parser from the connection classes.<BR><BR 
      clear=all>_____________________________<BR>Luc 
      Boudreau<BR><BR><o:p></o:p></SPAN></FONT></P>
      <DIV>
      <DIV>
      <DIV>
      <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
      style="FONT-SIZE: 12pt">On Tue, Apr 6, 2010 at 5:32 PM, Josh Chappelle 
      &lt;<A href="mailto:jchappelle@4redi.com" 
      target=_blank>jchappelle@4redi.com</A>&gt; 
      wrote:<o:p></o:p></SPAN></FONT></P></DIV></DIV>
      <BLOCKQUOTE 
      style="BORDER-BOTTOM: medium none; BORDER-LEFT: #cccccc 1pt solid; PADDING-BOTTOM: 0in; PADDING-LEFT: 6pt; PADDING-RIGHT: 0in; MARGIN-LEFT: 4.8pt; BORDER-TOP: medium none; MARGIN-RIGHT: 0in; BORDER-RIGHT: medium none; PADDING-TOP: 0in">
        <DIV>
        <DIV>
        <DIV vlink="purple" link="blue">
        <DIV>
        <P style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" 
        class=MsoNormal><FONT size=2 face=Arial><SPAN 
        style="FONT-FAMILY: Arial; FONT-SIZE: 10pt">Hi,</SPAN></FONT><o:p></o:p></P>
        <P style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" 
        class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
        style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P>
        <P style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" 
        class=MsoNormal><FONT size=2 face=Arial><SPAN 
        style="FONT-FAMILY: Arial; FONT-SIZE: 10pt">We have a need to use the 
        MdxParser component from the Olap4j project. However up until this point 
        we have not been using olap4j at all. To instantiate a 
        DefaultMdxParserImpl you have to provide an org.olap4j.OlapConnection 
        object in the constructor. Our software is using a 
        mondrian.olap.Connection. Is there a way to convert between these two 
        connection objects? If not does it mean that we will have to use the 
        org.olap4j.OlapConnection in order to use the 
        MdxParser?</SPAN></FONT><o:p></o:p></P>
        <P style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" 
        class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
        style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P>
        <P style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" 
        class=MsoNormal><FONT size=2 face=Arial><SPAN 
        style="FONT-FAMILY: Arial; FONT-SIZE: 10pt">Thanks,</SPAN></FONT><o:p></o:p></P>
        <P style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" 
        class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
        style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P>
        <P style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" 
        class=MsoNormal><FONT color=#888888 size=2 face=Arial><SPAN 
        style="FONT-FAMILY: Arial; COLOR: #888888; FONT-SIZE: 10pt">Josh 
        </SPAN></FONT><FONT color=#888888><SPAN 
        style="COLOR: #888888"><o:p></o:p></SPAN></FONT></P></DIV></DIV>
        <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
        style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P></DIV></DIV>
        <P style="MARGIN-BOTTOM: 12pt" class=MsoNormal><FONT size=3 
        face="Times New Roman"><SPAN 
        style="FONT-SIZE: 12pt">_______________________________________________<BR>Mondrian 
        mailing list<BR><A href="mailto:Mondrian@pentaho.org" 
        target=_blank>Mondrian@pentaho.org</A><BR><A 
        href="http://lists.pentaho.org/mailman/listinfo/mondrian" 
        target=_blank>http://lists.pentaho.org/mailman/listinfo/mondrian</A><o:p></o:p></SPAN></FONT></P></BLOCKQUOTE></DIV>
      <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
      style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P></DIV>
      <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
      style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P></DIV></DIV></BLOCKQUOTE></DIV></DIV>
    <P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN 
    style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P></BLOCKQUOTE></DIV></BLOCKQUOTE></BODY></HTML>