<br><font size=2 face="sans-serif">Julian,</font>
<br>
<br><font size=2 face="sans-serif">ReEntrantReadWriteLock is not supported
by retorweaver, which we were planning to use to optimize the synchronization
blocks. </font>
<br>
<br><font size=2 face="sans-serif">We can use <i>java.util.concurrent.locks,ReentrantReadWriteLock</i>
or <i>edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantReadWriteLock</i>
&nbsp;based on JDK version flag.</font>
<br>
<br><font size=2 face="sans-serif">Can you please roll back or tell us
how to rollback our change 9201?</font>
<br>
<br><font size=2 face="sans-serif">Thanks,</font>
<br><font size=2 face="sans-serif">Thiyagu</font>
<br>
<br>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>&quot;Julian Hyde&quot;
&lt;julianhyde@speakeasy.net&gt;</b> </font>
<br><font size=1 face="sans-serif">Sent by: mondrian-bounces@pentaho.org</font>
<p><font size=1 face="sans-serif">05/04/2007 06:05 AM</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
Mondrian developer mailing list &lt;mondrian@pentaho.org&gt;</font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">&quot;'Mondrian developer mailing list'&quot;
&lt;mondrian@pentaho.org&gt;</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">RE: [Mondrian] RE: Eigenbase perforce
change 9201 for review</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2 color=#000080 face="Verdana">Thiyagu,</font>
<br><font size=3>&nbsp;</font>
<br><font size=2 color=#000080 face="Verdana">I'd like to know what the
issues with java.util.concurrent &amp; retroweaver are. I ran into some
issues with retroweaver, but I was able to work around them.</font>
<br><font size=3>&nbsp;</font>
<br><font size=2 color=#000080 face="Verdana">I saw </font><a href="http://lists.pentaho.org/pipermail/mondrian/2007-April/000401.html"><font size=2 color=blue face="Verdana"><u>Tushar's
email</u></font></a><font size=2 color=#000080 face="Verdana"> last week,
but I was at the MySQL conference so I was too busy to respond.</font>
<br><font size=3>&nbsp;</font>
<br><font size=2 color=#000080 face="Verdana">Sometimes retroweaver requires
explicit upcasts in order for things to work. Or maybe you could roll your
own implementation of some of the concurrency primitives which work adequately
but not optimally under jdk1.4. Or, as I said earlier, there is a lot of
mileage in the </font>
<br><font size=3>&nbsp;</font>
<br><font size=2 color=#000080 face="Verdana">Switching to a different
back-porting package is a major change which will soak up my time in packaging
the release, writing release notes and testing. I will not do it unless
you can demonstrate significant advantages to doing so, and you convince
me that you have tried every other workaround.</font>
<br><font size=3>&nbsp;</font>
<br><font size=2 color=#000080 face="Verdana">Julian</font>
<br>
<br>
<hr><font size=2 face="Tahoma"><b>From:</b> mondrian-bounces@pentaho.org
[mailto:mondrian-bounces@pentaho.org] <b>On Behalf Of </b>Thiyagu Palanisamy<b><br>
Sent:</b> Thursday, May 03, 2007 3:07 AM<b><br>
To:</b> Mondrian developer mailing list<b><br>
Subject:</b> Re: [Mondrian] RE: Eigenbase perforce change 9201 for review</font><font size=3><br>
</font>
<br><font size=2 face="sans-serif"><br>
Julian,</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
 We are working on implementing Parallel Sql query execution, for that
we need to use java.util.concurrent package. RetroWeaver has some issues
in porting those classes. </font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
 There are two options to handle this,</font><font size=3> </font><font size=2 face="sans-serif"><br>
1. Don't use java.util.concurrent package and look for other alternatives
such as using the backport util, which means performance degradation and
not using the latest Java api's for new development.</font><font size=3>
</font><font size=2 face="sans-serif"><br>
2. Finding alternative to port those classes.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
So we have gone with the 2nd option. We have run all the tests using the
retrotranslator. We intend to make everyone to switch to retrotranslator,
but we didn't want to force immediately without running every ones test
suite.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
We have not measured any performance benefits between them because we don't
have any benchmark test scripts.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
UtilCompatible interfaces: This will introduce additional work of generifying
all the not supported functions and maintaining two implementation bridges(We
might end up with JDK1.5 using java.util.concurrent and 1.4 using backport
util). <br>
If &nbsp;retrotransalator causes any issue for the existing users then
we can consider this option?</font><font size=3> <br>
<br>
</font><font size=2 face="sans-serif"><br>
Thanks,</font><font size=3> </font><font size=2 face="sans-serif"><br>
Thiyagu</font><font size=3> <br>
<br>
<br>
</font>
<table width=100%>
<tr valign=top>
<td width=46%><font size=1 face="sans-serif"><b>&quot;Julian Hyde&quot;
&lt;julianhyde@speakeasy.net&gt;</b> <br>
Sent by: mondrian-bounces@pentaho.org</font><font size=3> </font>
<p><font size=1 face="sans-serif">05/03/2007 02:24 PM</font><font size=3>
</font>
<br>
<table border=4 width=100%>
<tr valign=top>
<td width=100% bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
Mondrian developer mailing list &lt;mondrian@pentaho.org&gt;</font></div></table>
<p>
<td width=53%>
<br>
<table width=100%>
<tr valign=top>
<td width=12%>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td width=87%><font size=1 face="sans-serif">&quot;'Thiyagu Palanisamy'&quot;
&lt;thiyagu@gmail.com&gt;</font><font size=3> </font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">mondrian@pentaho.org</font><font size=3>
</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">[Mondrian] RE: Eigenbase perforce change
9201 for review</font></table>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=50%>
<td width=50%></table>
<br></table>
<br><font size=3><br>
<br>
</font><tt><font size=2><br>
Thiyagu,<br>
<br>
Can you elaborate why you need this change? I am loathe to support a new<br>
means of generating jdk14-compatible jar files.<br>
<br>
If you intend to use features which retroweaver cannot handle, then<br>
everyone is going to need to switch to retrotranslator, yes?<br>
<br>
How great is the performance benefit of using these features versus the<br>
features which retroweaver can handle?<br>
<br>
An alternative approach would be to put the incompatible code behind the<br>
UtilCompatible interface. (I did this for EnumSet because retroweaver<br>
does not handle this correctly.) JDK1.4 users would not get the benefit<br>
of these features, but hey, we need to give them some incentive to<br>
upgrade!<br>
<br>
Julian<br>
<br>
&gt; -----Original Message-----<br>
&gt; From: Thiyagu Palanisamy [mailto:thiyagu@gmail.com] <br>
&gt; Sent: Wednesday, May 02, 2007 11:40 PM<br>
&gt; To: Andreas Voss; Bart Pappyn; Julian Hyde; John V. Sichi; <br>
&gt; Matt Campbell; Sam Birney; Zelaine Fong<br>
&gt; Subject: Eigenbase perforce change 9201 for review<br>
&gt; <br>
&gt; http://p4web.eigenbase.org/@md=d&amp;c=6PU@//9201?ac=10<br>
&gt; <br>
&gt; Change 9201 by thiyagu@thiyagu.laptop.dev on 2007/05/02 23:39:06<br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MONDRIAN:
Added new build target for &nbsp;retro translator. <br>
&gt; Retrotranslator supports more advavnced features of <br>
&gt; java.util.concurrent which is not supported by Retroweaver. <br>
&gt; Parellel Query Execution implementation needs this.<br>
&gt; <br>
&gt; Affected files ...<br>
&gt; <br>
&gt; ... //open/mondrian/build.xml#158 edit<br>
&gt; ... //open/mondrian/lib/backport-util-concurrent-3.0.jar#1 add<br>
&gt; ... //open/mondrian/lib/retrotranslator-runtime-1.2.1.jar#1 add<br>
&gt; ... //open/mondrian/lib/retrotranslator-transformer-1.2.1.jar#1 add<br>
&gt; <br>
&gt; Differences ...<br>
&gt; <br>
&gt; ==== //open/mondrian/build.xml#158 (ktext) ====<br>
&gt; <br>
&gt; 2c2<br>
&gt; &lt; &nbsp; == $Id: //open/mondrian/build.xml#157 $<br>
&gt; ---<br>
&gt; &gt; &nbsp; == $Id: //open/mondrian/build.xml#158 $<br>
&gt; 130a131,132<br>
&gt; &gt; &nbsp; &nbsp; &lt;pathelement <br>
&gt; location=&quot;${lib.dir}/retrotranslator-runtime-1.2.1.jar&quot;
/&gt;<br>
&gt; &gt; &nbsp; &nbsp; &lt;pathelement <br>
&gt; location=&quot;${lib.dir}/backport-util-concurrent-3.0.jar&quot; /&gt;<br>
&gt; 756a759,760<br>
&gt; &gt; ${lib.dir}/retrotranslator-runtime-1.2.1.jar,<br>
&gt; &gt; ${lib.dir}/backport-util-concurrent-3.0.jar,<br>
&gt; 793a798,799<br>
&gt; &gt; ${lib.dir}/retrotranslator-runtime-1.2.1.jar,<br>
&gt; &gt; ${lib.dir}/backport-util-concurrent-3.0.jar,<br>
&gt; 1200a1207,1251<br>
&gt; &gt; &nbsp; &nbsp; &lt;!-- &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Just
like Retroweaver, Retrotranslator also <br>
&gt; re-engineers JDK 1.5-compatible code so it can run under<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;JDK 1.4. Retrotranslator supports
backporting of <br>
&gt; more advavnced features of java.util.concurrent.<br>
&gt; &gt; <br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;This task compiles all core
and test classes under 1.5<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;then runs retrotranslator to
make them 1.4 compatible.<br>
&gt; &gt; <br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If you only intend to run on
JDK 1.5, there's no <br>
&gt; need to call this task.<br>
&gt; &gt; <br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;The inputs to this process
are the mondrian.jar <br>
&gt; file (containing core<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;files) and the testclasses
directory (containing <br>
&gt; test classes).<br>
&gt; &gt; <br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;The outputs from this process
are the <br>
&gt; mondrian-jdk14.jar file<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;and the testclasses-jdk14 directory.<br>
&gt; &gt; <br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Note that this task does not
modify classes in place.<br>
&gt; &gt; <br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;After you've run this task,
you can invoke 'build <br>
&gt; test' from a JDK 1.4<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;and all the tests will run.
You should also be <br>
&gt; able replace mondrian.jar<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;with mondrian-jdk14.jar and
<br>
&gt; retrotranslator-runtime-1.2.1.jar (retrotranslator's<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;runtime library) in your web
application and run <br>
&gt; jpivot, but I haven't<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tried that.<br>
&gt; &gt; <br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;When you run the regression
under JDK 1.4, you <br>
&gt; must use ant-1.6.0.<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Later versions of ant include
junit4, which <br>
&gt; requires JDK 1.5.<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; --&gt;<br>
&gt; &gt; &nbsp; &nbsp; &lt;target name=&quot;retrotranslator&quot; depends=&quot;jar,
compile.tests&quot;&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;taskdef name=&quot;retrotranslator&quot;
<br>
&gt; classname=&quot;net.sf.retrotranslator.transformer.RetrotranslatorTask&quot;&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;classpath&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;pathelement
<br>
&gt; location=&quot;${lib.dir}/retrotranslator-transformer-1.2.1.jar&quot;/&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;pathelement
<br>
&gt; location=&quot;${lib.dir}/retrotranslator-runtime-1.2.1.jar&quot;/&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;pathelement
<br>
&gt; location=&quot;${lib.dir}/backport-util-concurrent-3.0.jar&quot;/&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/classpath&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/taskdef&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;delete quiet=&quot;true&quot;&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;fileset dir=&quot;.&quot;
includes=&quot;${jar-jdk14.file}&quot;/&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;fileset dir=&quot;${testclasses-jdk14.dir}&quot;/&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/delete&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;mkdir dir=&quot;${testclasses-jdk14.dir}&quot;/&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;retrotranslator destdir=&quot;${testclasses-jdk14.dir}&quot;
<br>
&gt; verify=&quot;false&quot;&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;fileset dir=&quot;${testclasses.dir}&quot;
<br>
&gt; includes=&quot;**/*.class&quot;/&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/retrotranslator&gt;<br>
&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &lt;retrotranslator srcjar=&quot;${jar.file}&quot;
<br>
&gt; destjar=&quot;${jar-jdk14.file}&quot; verify=&quot;false&quot;/&gt;<br>
&gt; &gt; &nbsp; &nbsp; &lt;/target&gt;<br>
&gt; &gt; <br>
&gt; <br>
<br>
_______________________________________________<br>
Mondrian mailing list<br>
Mondrian@pentaho.org<br>
http://lists.pentaho.org/mailman/listinfo/mondrian</font></tt><font size=3><br>
</font><tt><font size=2>_______________________________________________<br>
Mondrian mailing list<br>
Mondrian@pentaho.org<br>
http://lists.pentaho.org/mailman/listinfo/mondrian<br>
</font></tt>
<br>