[Mondrian] Olap4j Ivyfication
jhyde at pentaho.com
Sat Apr 25 13:35:25 EDT 2009
Thanks for kicking this off, Luc. It is a very welcome upgrade.
I notice that you are using jar files with version numbers included. I think
I stripped out the version numbers when I ivyfied mondrian. That reduced the
number of places that need to be changed (E.g. my intellij project file, and
Eclipse .classpath) when you move to a later version of a library.
It's OK that you blew away the old build.xml. build.xml should be as short
and boring as possible.
Make sure that the new process generates an olap4j-<version>.zip with the
same contents as before.
Long term, I am thinking of creating an olap4j-tck.jar (test compatibility
kit), that would contain olap4j's test classes. This would allow us to run
olap4j tests within mondrian; mondrian would just download olap4j-tck.jar
from ivy. Ivyfication will make that easier.
From: mondrian-bounces at pentaho.org [mailto:mondrian-bounces at pentaho.org] On
Behalf Of Luc Boudreau
Sent: Wednesday, April 22, 2009 9:56 AM
To: mondrian at pentaho.org
Subject: [Mondrian] Olap4j Ivyfication
There are no Olap4j mailing list to reach out to loads of people, and since
Olap4j is supposedly the new API for Mondrian, I believe it is required to
post this message here.
Together with Aaron Phillips, we started the process of converting Olap4j to
a Ant+Ivy build mechanism. We've also included in the requirements the
possibility to build SNAPSHOT releases and publishing them to a Maven repo.
This is something we strongly need for PAT and I really hope to get this
going in a near future.
I had to branch the whole project to test everything and facilitate
collaboration on this. The 'ivyfied' project can be found there :
Essentially, the changes are as follows.
- Usage of Subfloor script -
This Ant script was developed by the Pentaho crew and now serves as a basic
template to build Olap4j. Thanks to Aaron for releasing it at Google Code.
You can find it here :
- External libraries -
Of course, all JAR files don't have to be included in the SVN anymore. Ant
is able to find them all and download them properly. This process can be
triggered and tested with the "resolve" target.
- SNAPSHOT releases -
The Subfloor template allows us to publish the Olap4j jars in a Maven repo.
This is a super sweet fun-time feature. Everyone developing with Olap4j will
agree, that was an essential requirement.
-- Current Status --
The conversion is not over yet. There are still things to do and we *need*
some help to make it all work. Especially from Julian, who is the main build
guy and who automated lots of stuff. I don't know how you set it up on your
test machines, so we need your input on this.
I have a feeling that it's worth disrupting the testing process for now. The
advantages we'll gain are enormous and we can just halt the Olap4j's
codebase development for now in order to stabilize things. The plan in the
long run is to make Olap4j available on the pentaho's CI server.
I barely touched the old build.xml file, and decided after a few tweaks that
it was better to start over than to modify it. So everything i'm about to
say (and said previously, obviously) applies to targets in the
As of today, here's what works so far.
We can generate both a regular JAR and a JRE-1.4 compliant one with this
Tests work but due to a serialization incompatibility between Olap4j and
Mondrian, it fails. Should be fixed once we set everything in place for
- 'clean' / 'clean-all'
Of course, that had to be done to start with. :-)
My suggestion is this. I need help and advice on what disruptions are
acceptable and what is not. We will be building Olap4j differently and I
expect this will have an impact on Mondrian as well. I want to make the
disruption as little as possible, yet I do believe that some disruptions or
changes in the release structure will pay off in the long run, so I'm open
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mondrian