The Pentaho BI Platform code is housed at svn://source.pentaho.org/svnroot in a Subversion repository. If you have no experience with Subversion, have no fear - there's an online book at http://svnbook.red-bean.com.
The Pentaho projects in Subversion are:
- pentaho - the main Pentaho source code tree
- pentaho-actionsequence-plugin - source for the pentaho action sequence plugin
- pentaho-commons - source for the common components among the different pentaho projects
- pentaho-cubedesigner - source for the wizard-driven, graphical user interface used for connecting to relational data sources, defining analytical dimensions, and identifying measures or "facts" for analysis.
- pentaho-data - the default sample databases
- pentaho-designstudio-core - source for the graphical eclipse environment for building and testing Action Sequence documents in a windows environment
- pentaho-designstudioIDE - essentially eclipse with a build file that will install the pentaho action-sequence-plugin and splash screen in a linux environment
- pentaho-designstudioIDE-linux - essentially eclipse with a build file that will install the pentaho action-sequence-plugin and splash screen in a mac environment
- pentaho-designstudioIDE-mac - essentially eclipse with a build file that will install the pentaho action-sequence-plugin and splash screen
- pentaho-metadata - source for the pentaho metadata editor
- pentaho-preconfiguredinstall - source for the preconfigured Jboss application server
- pentaho-reportdesigner - source for the standalone designer for creating JFreeReports
- pentaho-reportwizard - source for the standalone wizard for creating JFreeReports
- pentaho-solutions - the sample solutions
- pentaho-standalone - the code for a Java application that runs the platform on its own, without a J2EE application server
- pentaho-data-integration - The source code for Pentaho Data Integration (Kettle).
- pentaho-reporting - Source code for the pentaho reporting engine project.
We've tried diligently to keep our project structures simple for ourselves and the sanity of our community. Below you will find descriptions of the projects that we will be discussing throughout this document:
We will not be discussing the Pentaho client tools in this document:
The pentaho project holds the source code, resources and project setting for the Pentaho BI platform. This is the project that you will browse and step through to learn about the platform code and architecture.
|/pentaho||Root directory of source tree.|
|/cobertura||Contains libraries used to determine what percentage of code is covered by unit tests.|
|/scripts||Contains startup scripts used when building the Preconfigured Install|
|/server||Source tree for server code.|
|/third-party||Contains the lib directory; holds all third party libraries necessary for compilation and building.|
|.classpath||Eclipse file for setting the project classpath.|
|.project||Eclipse file describing the project.|
|build.xml||Ant build file for Pentaho project.|
|default.properties||Properties for building the Pentaho project; override properties in this file by creating an override.properties file in the same directory, and adding those properties you want to override.|
|deployment_build.properties||Properties file used by the deployment_build.xml|
|deployment_build.xml||Build file that contains targets used to build appserver specific deliverables. It is used by build.xml and is delivered as part of the j2ee deployments.|
|dev_build.properties|| Properties file used by dev_build.xml
|dev_build.xml|| Build file that contains targets use to build development application server. It is used developers for local development
|excludejars.generic||Text file listing those jars that should not be included in the .war file for the tomcat-war target in the build file.|
|excludejars.jboss||Text file listing those jars that should not be included in the .war file for the jboss-war target in the build file.|
The Pentaho BI Platform ships with a set of default databases (using Hypersonic SQL) to hold the necessary repositories for several feature components and subsystems. In order to get these parts of the platform up and running you will need these repositories. This data exists under the module 'pentaho-data'. Pentaho-data also includes startup and shutdown scripts for the databases.
|/pentaho-data||Root directory of database tree.|
|/hibernate||Holds the platform repository scripts for Hypersonic SQL.|
|/quartz||Holds the Quartz scheduler scripts for Hypersonic SQL.|
|/sampledata||Holds the sample data scripts for Hypersonic SQL.|
|/shark||Holds the Shark workflow scripts for Hypersonic SQL.|
|start_hypersonic.bat||Startup batch file for Windows platform; used to start the databases on Windows.|
|start-hypersonic.sh||Startup batch file for *nix platform; used to start the databases on *nix.|
|stop_hypersonic.bat||Shutdown batch file for Windows platform; used to shutdown the databases on Windows.|
|stop-hypersonic.sh||Shutdown batch file for *nix platform; used to shutdown the databases on *nix.|
The 'pentaho-data' module is structured to be a standalone component that acts as a database server. The scripts provided in the project start and shutdown the Hypersonic databases. The scripts rely on the Hypersonic jdbc classes being available in a /lib directory under the 'pentaho-data' directory. So in order to get these scripts running properly, you will need to place the Hypersonic driver jar where the scripts expect it as follows
The preconfigured-install project holds a complete JBoss application server, tuned and configured for running the Pentaho BI platform code. For details on the JBoss application server directory structure, see the JBoss Wiki
If your goal is to set up the platform as a web application, or simply have a starting point for your own solutions, you will want to get the latest samples from Subversion. Setting up the samples is a relatively trivial exercise, and provides a great way to test the various components in your deployment.
The samples are located under the project named "pentaho-solutions". The pentaho-solutions project consists of a set of samples that demonstrate several component features of the platform and a set of clean configuration files.
To run the samples, you will also want to download the default Hypersonic databases. See the previous section for instructions on getting the databases.
|/pentaho-solutions||Root directory of solution tree.|
|/admin||Root directory for the administrative samples.|
|/samples||Root directory for sample solution.|
|/system||The system directory contains all platform and component configuration information.|
|/test||Root directory for test solution.|
Download the samples to a directory that is a sibling of your application server's root directory. The "pentaho-solutions" directory will be found by the web application without configuration changes as long as it is deployed as the sibling to the app server as described above.
The pentaho-standalone folder has a simple solution, the platform library and dependencies, and the code for a Java application that runs the platform on its own, without a J2EE application server.
|/resource||The resource directory holds the solution files for our example. These files are very similar to those that are included with our demo. There are two action sequences in our solution, 'Hello World' and 'Simple Report'. If you browse the resource/solution directory, you will see the files for the action sequences.|
|/src||The src directory holds the source code for executing the platform as a standalone Java application.|
|/.classpath||Eclipse file for setting the project classpath.|
|/.project||Eclipse file describing the project.|
|/build.xml||Ant build file for Pentaho project.|
Quick Links For This Document