Mondrian URLs and Jakarta Commons VFS
If you’ve used Mondrian, you’re probably familiar with how Mondrian loads its schema from a URL embedded in the connect string.
A Mondrian connection is a URL which contains a reference to an XML file containing a Mondrian schema definition, information to connect to the JDBC database which holds the data, and various other parameters. For example,
Provider=Mondrian; Jdbc='jdbc:mysql://localhost/foodmart'; JdbcUser=foodmart; JdbcPassword=foodmart; JdbcDrivers=com.mysql.jdbc.Driver; Catalog=file:demo/FoodMart.xml
Embedded within the connect string URL is another URL, here
file:demo/FoodMart.xml
, from where Mondrian should load its schema.
Until now, the URL following the Catalog
keyword could only one of
the small number of protocols supported by
java.net.URL,
such as ‘http’ or ‘file’. I’ve just changed Mondrian to use
Jakarta Commons VFS
to resolve URLs, which is a more powerful and extensible scheme.
With VFS, you can use the same builtin protocols, some new builtin protocols, and even define your own protocol. For example, when used within Pentaho BI Platform, Mondrian could use the URL
solution:/sales/schemas/my_mondrian_model.xml
to reference a Mondrian schema file stored within Pentaho’s solution repository. This is possible because the Pentaho folks have exposed their solution repository as a custom filesystem.
You can even create a URL which references a file within a JAR within a zip that exists on an FTP site.
This change will be released as part of mondrian-2.3.