<!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> </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> </DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2
face="Lucida Sans">Note that after 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> </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> </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> </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">
olap4jConnection.unwrap(mondrian.olap.Connection.class);</FONT></SPAN></DIV>
<DIV><SPAN class=163555617-07042010><FONT color=#000080 size=2
face="Lucida Sans"></FONT></SPAN> </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> </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> </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’s why we need the parser. I’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> </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> </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> </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> </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"> <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"> <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. 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"> <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"> <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> </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 <<A
href="mailto:jhyde@pentaho.com">jhyde@pentaho.com</A>>
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"> <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"> <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"> <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"> <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"> <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"> <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"> <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"> <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> </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&revision=307"
target=_blank>http://olap4j.svn.sourceforge.net/viewvc/olap4j?view=rev&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
<<A href="mailto:lucboudreau@gmail.com"
target=_blank>lucboudreau@gmail.com</A>>
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
<<A href="mailto:jchappelle@4redi.com"
target=_blank>jchappelle@4redi.com</A>>
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"> <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"> <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"> <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> </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> </o:p></SPAN></FONT></P></DIV>
<P class=MsoNormal><FONT size=3 face="Times New Roman"><SPAN
style="FONT-SIZE: 12pt"><o:p> </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> </o:p></SPAN></FONT></P></BLOCKQUOTE></DIV></BLOCKQUOTE></BODY></HTML>