<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>Mondrian installation guide</title> <link rel="stylesheet" type="text/css" href="stylesheet.css" /> </head> <body bgcolor="#ffffff"> <table border="1" class="clsStd" width="100%"> <tr> <td colspan="2"><a href="index.html" style="color: #000066">Top</a> | <a href="http://public.perforce.com/guest/julian_hyde/mondrian/doc/index.html" style="color: #000066">Web home</a> | <a href="http://sourceforge.net/projects/mondrian/" style="color: #000066">SourceForge home</a></td> <td width="0" align="right" rowspan="2"> <a href="http://sourceforge.net" style="color: #000066"><img src="http://sourceforge.net/sflogo.php?group_id=35302&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo"></a></td> </tr> <tr> <td colspan="2"><em>$Id: //guest/julian_hyde/mondrian/doc/install.html#4 $</em></td> </tr> <tr> <td colspan="3"><em>(C) Copyright 2002, Kana Software, Inc.</em></td> </tr> <tr> <th align="right" width="30%">Author</th> <td colspan="2">Julian Hyde</td> </tr> </table> <h1><font size="6">How to build and install Mondrian</font></h1> <h2><a name="1_Contents">1. Contents</a></h2> <ol> <li><a href="#1_Contents">Contents</a> <li><a href="#2_Modification_history">Modification history</a> <li><a href="#3_Setup_build_environment">Setup build environment</a> <li><a href="#4_Build">Build</a> <li><a href="#5_Run_the_demo">Run the demo</a> <li><a href="#6_Run_the_web_app">Run the web app</a> <li><a href="#7_Miscellaneous">Miscellaneous</a> <ol> <li><a href="#7_1_Coding_guidelines">Coding guidelines</a></li> </ol> </ol> <h2><a name="2_Modification_history">2. Modification history</a></h2> <table border="1" class="clsStd" width="100%"> <tr> <th>Date</th> <th>Revision</th> <th>Author</th> <th>Comment</th> </tr> <tr> <td><I>February 7<SUP>th</SUP>, 2002</I></td> <td><em>1</em></td> <td><i>Julian Hyde</i></td> <td><em>Created</em></td> </tr> <tr> <td><I>March 5<SUP>th</SUP>, 2002</I></td> <td><em>2</em></td> <td><i>Julian Hyde</i></td> <td><em>Tomcat install</em></td> </tr> </table> <h2><a name="3_Setup_build_environment">3. Setup build environment</a></h2> <p>These are the products I used to build mondrian. Install all of the products marked 'required'. (I use <code>/</code>-es in paths because I am run MKS on Windows 2000, and it makes things simpler.)</p> <p>In the following, the symbol <code><i>${project.location}</i></code> means the root of your source tree.</p> <p>Where the instructions suggest setting an environment variable, it is often sufficient to edit the corresponding line in <code><i>${project.location}</i>/build.bat</code>.</p> <table border="1" class="clsStd" width="100%"> <tr> <th>Product</th> <th>Required?</th> <th>Version</th> <th>Comment</th> </tr> <tr> <td>JDK</td> <td>Yes</td> <td>1.1 or later (I use version 1.3.1.)</td> <td>Available from <a href="http://developer.java.sun.com/">http://developer.java.sun.com/</a>. I downloaded <code>j2sdk-1_3_1_02-win.exe</code>, and extracted to <code>E:/jdk1.3.1_02</code>. Set <code> JAVA_HOME</code> to same, and <code> CLASS_PATH</code> to <code>%JAVA_HOME%/lib/dt.jar</code>.</td> </tr> <tr> <td>Ant</td> <td>Yes</td> <td>1.4.1 or later </td> <td>I downloaded <a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.4.1/bin/jakarta-ant-1.4.1-bin.zip"> jakarta-ant-1.4.1-bin.zip</a>, extracted to <code>E:/jakarta-ant-1.4.1</code>, and set <code>ANT_HOME</code> to the same.</td> </tr> <tr> <td>Tomcat</td> <td>Yes</td> <td>4.0 or later (I use version 4.0.3)</td> <td>Available from <a href="http://jakarta.apache.org/tomcat"> http://jakarta.apache.org/tomcat</a>. I downloaded <code> jakarta-tomcat-4.0.3.zip</code>, extracted to <code>E:/jakarta-tomcat-4.0.3</code>, and set <font face="Verdana"><code>TOMCAT_HOME</code></font> to the same.</td> </tr> <tr> <td>Jikes</td> <td>No</td> <td> </td> <td>Available from <a href="http://oss.software.ibm.com/developerworks/opensource/jikes/">http://oss.software.ibm.com/developerworks/opensource/jikes/</a>. I <code>downloaded jikes-1.15-windows.zip</code>, and extracted <code>jikes.exe</code> to <code>C:/winnt/system32</code>. Then uncomment the relevant lines of <code><i>${project.location}</i></code><code>/build.properties</code>.</td> </tr> <tr> <td>Xerces</td> <td>Yes</td> <td>1.4.1 or later</td> <td>Download <code>Xerces-J-bin.1.4.1.zip</code> (or similar) from <a href="http://xml.apache.org/xerces-j/">http://xml.apache.org/xerces-j/</a>, and extract <code>xerces.jar</code> to <code><i>${project.location}</i></code><code>/lib</code>.</td> </tr> <tr> <td>Intellij IDEA (a Java IDE)</td> <td>No</td> <td>2.5.1</td> <td>You can download a 30-day evaluation copy from <a href="http://www.intellij.com/idea/">http://www.intellij.com/idea/</a>. Follow the instructions in <code>Install.txt</code> in <code>idea-2_5_1.zip</code> to there. <p>Create a project <code><i>${project.location}</i></code><code>/mondrian.ipr</code>. Set the compiler output path to <code><i>${project.location}</i></code><code>/classes/</code>. Add <code>javacup.jar</code> and <code>xerces.jar</code> in <code><i>${project.location}</i></code><code>/lib/</code> to the class path.</p> <p>To use Ant build, click the '6: Ant Build' tab, click '+', choose <code><i>${project.location}</i></code><code>/build.xml</code>, then right-click, choose 'Properties', and choose 'Include project classpath'. (<code>javacup.jar</code> is needed in order to build the <code>parser</code> target.)</td> </tr> <tr> <td>hsql Database Engine</td> <td>No</td> <td>1.61</td> <td> <p>Available from <a href="http://hsqldb.sourceforge.net/">http://hsqldb.sourceforge.net/</a>. I extracted <code>hsqldb_v.1.61.zip</code> to <code>E:/hsqldb_v.1.61</code>, then edited <code>bin/run.bat</code>. You will need to add <code>hsqldb.jar</code> to your classpath. Data files for the FoodMart dataset are <code><i>${project.location}</i>/demo/{FoodMartTables.sql,</code> <code>FoodMartIndexes.sql,</code> <code>FoodMartData.sql}</code>.</p> </td> </tr> <tr> <td>mySQL</td> <td>No</td> <td>?</td> <td> ?</td> </tr> <tr> <td>JavaCUP (parser generator)</td> <td>Included with source distribution, as <code>lib/javacup.jar</code>. </td> <td>v0.10g (with modifications)</td> <td>I modified version v.0.10g to add an Ant task, and to output error messages in a format which Emacs can parse.</td> </tr> </table> <h2><a name="4_Build">4. Build</a></h2> <p>As follows:</p> <blockquote> <pre>cd <i>${project.location}</i> build</pre> </blockquote> <h2><a name="5_Run_the_demo">5. Run the demo</a></h2> <p>You first need a database. I wanted to distribute a hsqldb database, but the 20Mb data set turns into when loaded and indexed but with indexes, the 300,000 rows/20Mb data set turned into a 400Mb datafile. So, two choices:</p> <ol> <li>If you have Microsoft Access, create a System ODBC DSN called MondrianFoodMart pointing to <code><i>${project.location}</i>/demo/FoodMart.mdb</code>. The JDBC connect string will be <code>jdbc:odbc:MondrianFoodMart</code>.</li> <li>Create the schema in a database of your choice by running the scripts <code>FoodMartTables.sql</code>, <code>FoodMartData.sql</code> and <code>FoodMartIndexes.sql</code> in <code>${project.location}/demo/</code>. You may need to modify the scripts for your database's particular DDL syntax. (For mySQL, for example, you will need to change all <code>varchar</code> columns in <code>FoodMartTables.sql</code> to <code>varchar(30)</code>, and change all <code>false</code>/<code>true</code> values in <code> FoodMartData.sql</code> to <code>0</code>/<code>1</code>.</li> </ol> <p>Edit the "FoodMartTest" target in <code>build.xml</code>.</p> <p>Run</p> <blockquote> <pre>cd <i>${project.location}</i> build FoodMartTest</pre> </blockquote> <h2><a name="6_Run_the_web_app">6. Run the web app</a></h2> <ol> <li>First install Tomcat, as above.</li> <li>Make sure the <code>web.xml</code> file in <code>${project.location}/</code><code>webapp/WEB-INF</code> is correct for your environment. In particular, check the paths in the init parameters to <code>MDXQueryServlet</code>.</li> <li><code>build deploy-webapp</code>.</li> <li>Start up tomcat.</li> <li>Hit <a href="http://localhost:8080/mondrian"> http://localhost:8080/mondrian</a>.</li> </ol> <h2><a name="7_Miscellaneous">7. Miscellaneous</a></h2> <h3><a name="7_1_Coding_guidelines">7.1. Coding guidelines</a></h3> <p>Indentation 4. Tab stop 4. Use tabs, not space. 'Berkeley' bracing convention. Use braces even for single-line blocks. Declare variables as near to their first use as possible. Don't initialize variables with 'dummy' values just to shut up the compiler. No line longer than 79 characters. Javadoc comments on methods are written in the active ('Collects garbage.') not imperative ('Collect garbage.') When editing HTML documents, don't use an editor which reformats the HTML source (such as Word).</p> <b> <table border="1" width="100%" class="clsStd"> <tr> <td>End <i>$Id: //guest/julian_hyde/mondrian/doc/install.html#4 $</i></td> </tr> </table> <p> </p> </b> </body> </html>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#8 | 1609 | Julian Hyde |
mondrian: Forgot a couple of files last change. Unit tests for builtin functions. Don't return null members (e.g. [Gender].[F].PrevMember). |
||
#7 | 1603 | Julian Hyde |
mondrian: Add Andreas' taglib; Rename 'mondrian.rolap.Util.assert' to 'assertTrue', because 'assert' is a keyword in jdk 1.4; Fix 'NON EMPTY'; JUnit framework for tests; Add Oracle dataset. |
||
#6 | 1583 | Julian Hyde |
mondrian: add transformer scripts for postgres, hsql; fix bugs in SqlQuery; add roadmap. |
||
#5 | 1576 | Julian Hyde |
mondrian: fix dataset (add column customer.ordinal); create dataset for oracle; get queries working on oracle; get format strings working; refactor out new packages mondrian.rolap.agg and mondrian.rolap.sql. |
||
#4 | 1507 | Julian Hyde |
Mondrian: Forgot to add MDXQueryServlet.java; Installation instructions for Tomcat. |
||
#3 | 1496 | Julian Hyde |
Mondrian: Qualify table names with schemas. Add 'Hierarchy.schema', 'Cube.factSchema','Hierarchy.table' attributes. MondrianDef is now generated (so we need boot.jar). |
||
#2 | 1475 | Julian Hyde |
Saffron. Re-integrate Median, etc. |
||
#1 | 1453 | Julian Hyde | mondrian: first source check-in |