这篇文档的目的是教会开发人员如何开始进行 Pentaho 的开发。这篇文档解释了如何在 Eclipse 中设置一个开发环境,包括如何链接到 Pentaho Subversion repository,检出 Pentaho 项目,使用一个 '1stand-alone'1 Java 应用和 Eclipse JBoss IDE 来构建调试它们。这篇文档也解释了 Pentaho repository 结构和对于开发Pentaho 来讲,许多很重要的 build targets。 java
目标读者是软件开发人员。咱们假设读者已经很熟悉 Eclipse 平台和 Java 开发。若是目的是将平台配置为一个 J2EE 应用,咱们假设读者了解 J2EE 和应用服务器。咱们此处就是使用 JBoss 应用服务器进行演示。虽然不是很重要,但若是读者有使用 Apache Ant 的经验也会颇有用处。 web
若是你仔细阅读了这个指南中的说明,但仍没有解决你的问题,请到论坛寻找答案: http://forums.pentaho.org/. sql
如下是开始研究 Pentaho,你须要使用的工具列表。推荐你如今就下载全部必需的包,这样你就可不间断的进行试用。 数据库
1. 一个 Java SDK:Pentaho BI Platform 在 Java SDK 1.4 上构建和测试。注意你须要完整的 SDK,而不只仅是 runtime (JRE)。 浏览器
2. Ant:基于 Java 的构建工具。 tomcat
3. Eclipse:平台 IDE。 服务器
4. Subclipse:一个 Eclipse 插件,其在 Eclipse IDE 上添加了 Subversion 集成。 app
5. JBoss IDE for Eclipse。 eclipse
为开始设置:
1. 下载和安装你的 Java SDK。
2. 下载和安装 Ant。
3. 下载和安装 Eclipse。
4. 下载和安装 Subclipse。
5. 下载和安装 JBoss IDE for Eclipse。
之后章节是关于 Pentaho 团队使用的这些工具的版本说明,以及使环境适合于 Pentaho 平台 codeline 开发的技巧。每一个工具在其各自的下载中有详细的安装指令,这里咱们不详细介绍。
Pentaho BI Platform 在 Java SDK 1.4 上构建和测试。注意你须要完整的 SDK,而不只仅是runtime (JRE)。在后面几步中,你会看到为了使 Ant 构建脚本正确运行,你必须指定 Java 编译器可执行程序(javac)。这个可执行程序位于你安装的 Java SDK 的 /bin 目录下,所以记住你将 SDK 安装到了哪里。
Ant 是一个基于 Java 的构建工具,咱们将之用于构建平台,以及支持用 Eclipse 进行 Pentaho 进行开发中的活动。目前用于构建 Pentaho 的可下载的二进制的版本是 Ant 1.6.5。建议使用 Ant 工具从命令行构建一些 Pentaho Ant targets(在某些环境下是必要的)。
Eclipse IDE 中自带了 Ant 的一个版本。这个版本被 IDE 用于构建功能,为了做为 Eclipse 的插件可能也进行了一些修改。为肯定 Eclipse IDE 中的 ant 版本,从 Eclipse 顶部的 Window 菜单浏览至Preferences... | Ant | Runtime,在插件的路径中检查其版本。
只是最近在设置你的 Pentaho 开发环境时,才须要有一个 Eclipse,但与 Pentaho 的代码没啥关系。若是你想在 JBoss 应用服务器中运行和调试代码,你须要 JBoss IDE (参考下面),那里有一些兼容性问题(IDE 的最新版本在 Eclipse 的最新版本上好像有些问题)。Pentaho 团队使用的是如下版本,这些配置是没问题的:
1. 从 JBoss 网站下载带有最新 JBoss IDE 插件的 Eclipse – 带有 JBoss IDE version 2.0.0beta2 的Eclipse IDE 版本 3.2.1. 或
2. 从 Eclipse 网站下载 Eclipse 3.2.1 M20060921-0945;而后从 JBoss 下载和安装 JBoss IDE 插件版本 2.0.0 beta2。
Subclipse 是 Eclipse 的一个插件,在 Eclipse 环境上激活 Subversion 功能。Subversion 是大多数 Pentaho 项目使用的源代码控制库。Subclipse 利用了 Eclipse Update Manager,其容许你用一个 URL 进行注册,在 Eclipse IDE 上自动获取和安装插件。和咱们的配置兼容的 Subclipse 版本是 Subclipse 1.2.x。你可在 Tigris.org 网站找到详细的安装指令,或按照如下简短的指令:
在 Eclipse 中,选择菜单条 Help | Software Updates | Find and Install...
1. 在向导的第一步中,选中 "Search for new features to install",点击 "next" 按钮。
2. 在下一步中,点击按钮 "New Remote Site..."。
3. 在弹出式窗口中,输入你选择的站点名,输入如下url:http://subclipse.tigris.org/update 1 .2.x,点击 "OK" 按钮。
4. 在下一步中,你应该看到一个可从中选择的功能列表,选择适合于你的 Eclipse 版本的 "Subclipse plugin"。
5. 容许插件安装完成。使用 Subclipse的详细命令,请到 Eclipse Help 菜单,选择 Help Contents,而后在内容表中浏览 Subclipse 树。
若是你想在 JBoss 应用服务器中调试,那么你须要安装 Eclipse 的 JBoss IDE 插件。若是你下载了打包的 Eclipse\JBoss IDE 包,这样你就不须要安装 JBoss IDE 插件 – 你已经有了。Eclipse 的JBoss IDE 插件是一个工具,容许你一步步的调试在一个 JBoss 应用服务器中做为一个 web 应用的一部分运行的 Java 类。
JBoss IDE 插件一般经过 Eclipse Update Manager 获取。然而,在这篇文档写做时,JBoss IDE 版本2.0.0beta2 并无安装命令,文档或到 Update Manager 的连接。That's what we get for using a development build。这并非一个问题,它很简单,咱们会尽力描述。
今后处获取 JBoss 插件:
1. 下载插件,JBossIDE-2.0.0.Beta2-ALL.zip (不是 plugin\Eclipse 包!)。
2. 将包解压进你的 eclipse 安装目录 – 不是 zip 文件中 /eclipse 开头的那个目录结构。
3. 启动\重启 Eclipse。
一旦你成功安装了 JBoss IDE 插件,继续到下一节。在 "Debugging in JBoss Application Server" 这个练习中,咱们会介绍如何配置插件用于调试。
This page last changed on Nov 30, 2006 by bhagan.
Pentaho BI Platform 代码位于 Subversion repository 中的 svn://source.pentaho.org/。若是你没有使用Subversion 的经验,不要怕 – 这里有本在线电子书:http ://svnbook. red-bean.com.
Subversion 中的 Pentaho 项目是:
l pentaho – 主要的 Pentaho 源代码树
l pentaho-cubedesigner – 用于链接到关系数据源的,向导驱动的图形用户界面的源代码,定义了 analytical dimensions,肯定了用于分析的 measures 或 "facts"。
l pentaho-data – 默认 sample 数据库
l pentaho-designstudio - 用于构建和测试 Action Sequence documents 的图形 eclipse 环境的源代码。
l pentaho-designstudioIDE – 本质上是带有 build 文件的 eclipse,其将安装 pentaho action-sequence-plugin 和 splash screen。
l pentaho-preconfiguredinstall - 预配置的 Jboss 应用服务器的源代码。
l pentaho-reportdesigner - 建立 JFreeReports 的 standalone designer 的源代码。
l pentaho-reportwizard - 建立 JFreeReports 的 standalone 向导的源代码。
l pentaho-solutions - sample solutions。
l pentaho-standalone - 单独运行平台的 Java 应用的代码,没有一个 J2EE 应用服务器。
咱们一直致力于保持简单健全的项目结构和开发团队。下面会描述这篇文档中将要探讨的项目的描述:
l pentaho
l penta ho-data
l pentaho-solutions
l pentaho-preconfiguredinstall
l pentaho-standalone
在这篇文档里,咱们不会讨论 Pentaho 客户端工具:
l pentaho-cubedesigner
l pentaho-designstudio
l pentaho-designstudioIDE
l pentaho-reportdesigner
l pentaho-reportwizard
pentaho 项目有源代码,资源和 Pentaho BI 平台的项目设置。在这个项目里,你可浏览平台代码和体系结构。
目录/文件 |
描述 |
/pentaho |
源代码树的根目录。 |
/cobertura |
包含库,用于肯定单元测试应该覆盖代码中的多少百分比。 |
/scripts |
包含用于构建 Preconfigured Install 时使用的 startup 脚本。 |
/server |
服务器代码的 Source tree。 |
/third-party |
包含 lib 目录,包含编译和构建所需的全部第三方库。 |
.classpath |
设置项目 classpath 的 Eclipse 文件。 |
.project |
描述项目的 Eclipse 文件。 |
build.xml |
用于 Pentaho 项目的 Ant build 文件。 |
default.properties |
用于构建 Pentaho 项目的属性,经过在相同的目录中,建立一个override.properties 文件,并在其中增长你想覆盖的那些属性的方法来覆盖这个文件中的属性。 |
deployment_build. properties |
deployment_build .xml 所用的属性文件。 |
deployment_build.xml |
Build 文件,其包含用于构建 appserver specific deliverables 的 targets。它被build.xml 使用,做为 j2ee deployments 的一部分。 |
excludejars.generic |
文本文件,列出了那些不该该被包含在 .war 文件中的 jars,其在 build 文件中用于tomcat-war target。 |
excludejars.jboss |
文本文件,列出了那些不该该被包含在 .war 文件中的 jars,其在 build 文件中jboss-war target。 |
Pentaho BI Platform 带有一套默认数据库(使用 Hypersonic SQL) 来容纳几个功能组件和子系统所必需的 repositories。为了使得平台的这些 parts 能运行,你须要这些 repositories。这个数据存在于模块'pentaho-data'。Pentaho-data 也包含数据库的启动和关闭脚本。
目录/文件 |
描述 |
/pentaho-data |
数据库树的根目录。 |
/hibernate |
包含用于 Hypersonic SQL 的平台 repository 脚本。 |
/quartz |
包含用于 Hypersonic SQL 的 Quartz scheduler 脚本。 |
/sampledata |
包含用于 Hypersonic SQL 的 sample 数据脚本。 |
/shark |
包含用于 Hypersonic SQL 的 Shark 工做流脚本。 |
sta rt_hypersonic. bat |
Windows 平台的启动批处理文件,用于启动 Windows 上的数据库。 |
*nix 平台上的启动批处理文件,用于启动 *nix 上的数据库。 |
|
stop_hypersonic.bat |
Windows 平台上的关闭批处理文件,用于关闭 Windows 上的数据库。 |
*nix 平台上的关闭批处理文件,用于关闭 *nix 上的数据库。 |
重要: 'pentaho-data' 模块是一个 standalone 组件,其充当一个数据库服务器。项目中提供的脚本用于启动和关闭Hypersonic 数据库。脚本依赖于 Hypersonic jdbc 类,其位于 'pentaho-data 目录中的一个 /lib 目录中。所以为了使得这些脚本正确运行,你须要将 Hypersonic driver jar 放在脚本须要的位置,以下所示: 1. 在 'pentaho-data' 目录中建立一个名为 lib 的目录。 2. 将 Hypersonic jdbc driver .jar 文件 (hsqldb.jar) 复制到 lib 目录。建议你从 'pentaho'项目的 third-party/lib 目录中获取这个文件,由于那个版本比较可靠。 |
pentaho-preconfiguredinstall 项目
preconfigured-install 项目包含一个完整的 JBoss 应用服务器,配置并调优来运行 Pentaho BI 平台代码。JBoss 应用服务器目录结构的详细信息请参考 JBoss Wiki。
若是你的目标是将平台设置为一个 web 应用,或仅仅做为你本身的 solutions 的起点,你须要从 Subversion 获取最新的 samples。设置 samples 是一个相对小的练习,提供了一个很好的方式来测试你的配置中的各类组件。
samples 位于名为 '1pentaho-solutions'1 的项目中。pentaho-solutions 项目包含一套samples,其演示了平台的几种组件功能,还包括一套 clean 配置文件。
为运行 samples,你也须要下载默认的 Hypersonic 数据库。获取数据库的详细命令请参考上一节。
目录/文件 |
描述 |
/pentaho-solutions |
solution tree 的根目录。 |
/admin |
administrative samples 的根目录。 |
/samples |
sample solution 的根目录。 |
/system |
系统目录,其包含全部平台和组件配置信息。 |
/test |
test solution 的根目录。 |
重要:将 samples 下载到一个目录,其是你的应用服务器的根目录的兄弟目录。不用进行任何配置上的修改,web应用会找到"pentaho-solutions" 目录,只要其如上所述做为 app server 的兄弟。 |
pentaho-standalone 项目
pentaho-standalone 文件夹有一个简单的 solution,平台库和 dependencies,以及不使用 J2EE 应用服务器,单独运行平台的 Java 应用的代码。
目录/文件 |
描述 |
/resource |
resource 目录,包含咱们实例的 solution 文件。这些文件很相似于包含在咱们的 demo 中的那些。在咱们的 solution 中,有两个 action sequences:'Hello World' 和 'Simple Report'。若是你浏览resource/solution 目录,你会看到用于 action sequences 的文件。 |
/src |
src 目录包含源代码,用于以一个 standalone Java 应用来执行平台。 |
/.classpath |
设置项目 classpath 的 Eclipse 文件。 |
/.project |
描述项目的 Eclipse 文件。 |
/build.xml |
Pentaho 项目的 Ant build 文件。 |
This page last changed on Mar 01, 2007 by gmoran.
Eclipse 是 Pentaho 团队选中的 IDE,一直使用 Subclipse 做为 Subversion 插件。插件提供了 "SVN Repository Exploring Perspective",你可从中建立一个链接。
为使用 Subclipse 插件建立一个链接:
1. 在 SVN Repository Exploring 透视图中,右击,选择 New,选择 Repository Location,就会出现 Add New Repository Location 对话框。
2. 在 Url 复选框中,输入 svn://source.pentaho.org/svnroot.
3. 点击 Finish。如今你就有了一个到 Subversion repository 的链接。
展开,会看到项目。一般对于 Subversion repositories,每一个项目有 3 个子目录:branches,tags 和 trunk。project/trunk 目录有最新的代码,极可能是你想要检出的。"pentaho" 项目结构的完整解释请参考02. Exploring Pentaho Repository Structure。
This page last changed on Feb 26, 2007 by gmoran.
Eclipse 有几种不一样类型的项目,Pentaho 使用简单的项目和 Java 项目。简单项目有最基础的 Eclipse 项目配置和能力,和文件浏览没啥差异。Java 项目包含须要编译和配置文件的源代码,例如.classpath 文件, 其将设置源码树中的 \lib 子目录下的库文件。pentaho-data,pentaho-solutions 和 pentaho-preconfiguredinstall 项目都是 Eclipse 简单项目。pentaho 项目和 pentaho-standalone 项目都是Eclipse Java 项目。
你从 Subversion 获取模块的推荐结构是以兄弟目录下载它们 – 这个结构使得平台能自动找到你的solutions 目录,也使得跟踪不一样的模块更容易。
在检出 pentaho 项目以后,你当即会注意到(若是你激活了 "Build Automatically" 设置) 那个项目正在被编译。编译过程当中可能会出现警告信息,可是没有编译错误。耐心点,这个任务会持续一分钟,依赖于你的计算机的速度。pentaho-standalone 项目不会自动编译,由于在项目能运行前,必须先完成一些设置步骤。
为完成这篇文档中的例子,你须要检出如下项目:
l pentaho
l penta ho-data
l pentaho-solutions
l pentaho-preconfiguredinstall
l pentaho-standalone
此处,你可能想获取平台的最新代码,那就是构建好,用于咱们下一次发布的 codeline,版本 1.6。或,若是你正研究最新版本中的一个问题,你可能须要版本 1.2.x。下两节解释了如何获取代码的 1.2 分支中的一个版本,而不是最新版本,Subversion 术语中,这称之为 " trunk"。
为获取源码,你可简单的从命令行中向 Subversion 发布一个命令,或经过你喜欢的 Subversion 客户端应用。咱们一直使用 Subclipse。
在 SVN Repository 视图中,展开你的 repository 链接,以前,咱们已经建立了svn ://source. pentaho.org/svnroot.
1. 展开一个项目。在这个实例中,咱们使用 pentaho。
2. 右击 trunk。
3. 从右键菜单中,选择 Checkout... Checkout from SVN wizard loads。
4. 按照向导中的命令,将项目检出到你的 workspace。将新的 Eclipse 项目命名成和 Subversion 中的项目相同的名字。
5. 为以前列出的每一个项目重复这些步骤。
在你检出 pentaho 项目以后,若是它没有自动编译,从 Project 菜单中手动编译。从左边的视图中选择pentaho 项目,而后从 Project 菜单中,选择 'Build Project' 选项。仅有 pentaho 项目须要被编译。剩下的项目是简单项目,不须要编译。
若是你遇到了出错信息,在继续以前,采起必要的措施解决它们。当首次设置项目时遇到编译错误的典型缘由就是模块结构没有采用推荐的层次结构,或 /lib 目录或.classpath 文件中少了一个第三方库。若是仍然不能解决,咱们能够提供帮助。将 Eclipse 报出的编译错误提交到咱们的论坛:http://forums.pentaho.org。不少项目成员和 Pentaho 开发人员会提供帮助。
在 SVN Repository 视图中,展开你的 repository 链接。以前,咱们建立了svn ://source. pentaho.org/svnroot.
1. 展开一个项目。在这个实例中,咱们将使用 pentaho。
2. 展开 branches。
3. 右击 1.2。
4. 从右击菜单中,选择 Checkout... Checkout from SVN wizard loads.
5. 按照向导中的指令将项目检出到你的 workspace。将新的 Eclipse 项目命名成 Subversion 中的项目使用的相同名字。
6. 为以前列出的每一个项目重复执行这些步骤。
在你检出 pentaho 项目以后,若是它没有自动编译,从 Project 菜单中手动编译。从左边的视图中选择pentaho 项目,而后从 Project 菜单中,选择 'Build Project' 选项。仅有 pentaho 项目须要被编译。剩下的项目是简单项目,不须要编译。
若是你遇到了出错信息,在继续以前,采起必要的措施解决它们。当首次设置项目时遇到编译错误的典型缘由就是模块结构没有采用推荐的层次结构,或 /lib 目录或.classpath 文件中少了一个第三方库。若是仍然不能解决,咱们能够提供帮助。将 Eclipse 报出的编译错误提交到咱们的论坛:http://forums.pentaho.org。不少项目成员和 Pentaho 开发人员会提供帮助。
This page last changed on Apr 26, 2007 by bhagan.
最近,咱们改进了咱们的 build 过程,为知足不一样需求,在 development build 中包含了 separating production build。在 1.2.x 和 trunk codelines 中,production build 使用 build.xml,当你在Eclipse 中开发时,你可以使用 dev_build.xml。
你在最新的 codeline 下开发所应该使用的 build 文件是 dev_build.xml。这个 build 文件是特别编写的,用于在 preconfigured install JBoss demo server 上运行和调试的开发人员(pentaho-preconfiguredinstall 项目包含 shell JBoss server application)。
dev_build.xml 依赖于 dev_build.properties 文件获取参数信息。为适应你的环境,你可能想覆盖几种参数。为设置这些覆盖,不须要修改 dev_build.properties 文件!你须要建立一个override.properties 文件,并在里面指定你想覆盖的参数。这样当修改这些文件时,你没必要将你的修改合并进 properties 中。
dev-setup target 是你应该主要关注的 target。一旦你有了 4 个主要 Pentaho 项目的源码,dev-setup Ant target 建立一个 fully populated,configured 和 deployed 的 JBoss app 服务器,和Pentaho demo 应用。如下是 dev-setup 执行的步骤:
l 编译全部源代码
l 建立 pentaho-preconfiguredinstall 项目的一个副本,其是 JBoss app server shell。为指定这个副本的位置,设置你的 override.properties 文件中的 target.server.dir 属性。
l 建立 pentaho-solutions 项目的一个副本,其包含 PCI demo 的 sample solutions。为指定这个副本的位置,在你的 override.properties 文件中设置 target.solutions.dir 属性。
l 复制全部已编译的类,.war 文件,datasource 配置文件和 miscellaneous jars 到目标服务器目录中,这些文件都是 JBoss 运行 Pentaho 应用服务器所必需的。
l 将 HSQLDB driver jar 复制到 pentaho-data 项目。pentaho-data 项目被设置做为一个 stand alone 数据库服务器,这就是为何 driver jar 须要在指定的位置可用,这样启动和关闭脚本就能够正常工做。
l 修改 pentaho web 应用中的 web.xml 文件,其致使 JBoss 服务器自动从新加载 web 应用并当即应用修改。
第一次运行 target 时,执行以上全部的 actions,设置一个可调试的环境。在以后的运行中,仅替换被修改的文件。当你修改了源码,并想在 JBoss 应用服务器中测试这些修改时,就应该运行这个target。
这样构建 dev_build targets 的缘由是可确保你的代码修改可当即在调试环境中生效。你也能确保你调试的环境中,没有以前的运行或构建中的残留文件。clean-target-server target 删除整个的target server 目录,这样下次运行 dev-setup 时,你再次有了一个干净的配置。
为了在你的环境中成功运行构建,你应该在你的 override.properties 文件中添加几个其余的属性:
l javac.path - 指定你的 Java 编译器 (javac.*) 的路径,实例:javac.path =d :/tools/j2sdk1 .4.2_07/bin/javac
l java1.4.home - 若是安装了 java 1.5 SDK 和 1.4 SDK,java 1.5 是你的默认,指定 java1.4 home,由于平台 SDK 推荐配置是 1.4。实例:java1.4.home=D:/tools/j2sdk1.4.2_07
This page last changed on Apr 05, 2007 by dkincade.
在 Pentaho 项目中走查代码的最简单的方法就是使用一个 JUnit 测试用例(若是你不熟悉 JUnit,你可今后处获取更多信息,http://www.junit.org/index.htm)。已经有不少 JUnit 测试用例用以测试平台的单独的组件功能和子系统了。其位于 pentaho 项目的源码树:./server/pentaho/test/org/pentaho。Eclipse 有运行JUnit 测试的内置功能。仅仅选择你想运行的测试用例(开源文件),从 Eclipse的菜单中选择 Run. .New JUnit Test,按照 Eclipse 对话框中的提示进行操做便可,那些提示很直截了当。
This page last changed on Mar 02, 2007 by gmoran.
Standalone 项目,pentaho-standalone 是一个实例应用,它利用了平台的能力,而没有使用一个 J2EE 应用服务器。项目包含一个 Java 应用,其运行 2 个 action sequences,将每一个的结果写进一个文件。
在这一节中,咱们将运行如下步骤:
1. 设置 standalone 项目;
2. 解释使的 standalone 配置生效的代码和资源;
3. 最后,在 sample 代码上放一个断点,演示 standalone 应用的调试。
Standalone 项目依赖于 pentaho 项目。为使用 Standalone 项目,你必须首先运行一个 Ant target, sample-setup,其将为咱们的实例用适当的库组装项目。为设置 Standalone 项目:
1. 从 Eclipse 的Java 透视图下,选择 build.xml 文件,其位于pentaho-standalone 项目的根目录下。对此我选择使用 Navigator 视图(默认不可见),有几个使得文件选择变得简易的视图 – 使用你最喜欢的那个。
2. 右击 build.xml 文件,选择 'Run As...' 选项,而后选择 'Ant Build...' 选项。
3. 出现一个 Ant Build 提示对话框。De-select any pre-selected targets,仅选择 sample-setup target。
4. 选择对话框底部的 'Run' 按钮。你应该能在 Eclipse 的 Console 视图的脚本中看到 activity log。一旦 target 执行完成,你会看到信息 "Build SUCCESSFUL"。
5. 在 Eclipse Navigator 视图中,选择项目的根文件夹:pentaho-standalone。右击文件夹,选择 'Refresh' 选项,这将刷新子文件夹,这样你会看到文件被添加为 building 项目的结果。
如今能够逐步调试项目了,但首先解释一下项目的组成吧。
resource/solution 目录包含咱们实例的 solution 文件。这些文件很相似于包含在咱们的 demo 中的那些。在咱们的 solution 中有 2 个 action sequences,'Hello World' 和 'Simple Report'。若是你浏览resource/solution 目录,你会看到 action sequences 的文件。
src 目录中有以 standalone Java 应用方式执行平台的源码。org.pentaho.app.SimpleCase.java 类是运行平台和咱们 solution 的主类。这个类初始化平台,运行一个很简单的 'Hello World' action sequence,而后运行一个很简单的 JFreeReport action sequence。为了简化,2 个 action sequences 的运行结果都写进文件。
public static void main(String[] args) { try {
Init.initialize ();
SimpleCase sCase = new SimpleCase(); sCase.simpleCase( args );
} catch (Exception e) {
e.printStackTrace ();
}
}
...
public void simpleHelloWorldCase( String outputPath ) {
try {
File f = new File( outputPath + File.separator + "hello _world.txt" );
FileOutputStream outputStream = new FileOutputStream(f);
HashMap parameters = new HashMap();
ISolutionEngine solutionEngine = SolutionHelper.execute( "Simple Case Example", "Hello
World",
"getting-started/HelloWorld. xaction", parameters,
outputStream );
} catch (Exception e) { e.printStackTrace ();
}
org.pentaho.app.Init.java 类仅有一个有趣的方法 – 初始化平台的方法:
public static boolean initialize() {
try {
// We need to be able to locate the solution files. in this example, we are using the relative path in our project/package.
File solutionRoot = new File( "resource/solution" );
// Create a standalone application context - our application toolbox if you will - passing the path to the solution files.
IApplicationContext context = new
StandaloneApplicationContext (solutionRoot.getAbsolutePath(), new File (".") . getAbsolutePath ());
// Initialize the Pentaho system PentahoSystem.init( context );
return true;
} catch (Throwable t) { t.printStackTrace (); return false;
}
}
在 Eclipse 中逐步调试代码对你来讲应该已经很熟悉了,但此处咱们提供一个实例。在你在 Eclipse 中运行 SimpleCase 类以前,首先你应该启动 demo 数据库。为启动数据库:
1. 浏览至 pentaho-data 文件夹,经过命令行,或使用你最喜欢的文件浏览工具 – Eclipse 以外。
2. 在 pentaho-data 文件夹下,有 Windows OS 和 *nix 平台下的启动和关闭脚本。执行适合于你的计算机的启动脚本(.bat 文件用于 Windows,.sh 文件用于 *nix)。
如今让咱们设置一个断点,运行 SimpleCase main() 方法,这样你能够看到运行中的开发过程。
1. 切换到 Eclipse Debug 透视图,若是你没在那里。
2. 从 Eclipse 的不少文件浏览视图之一(我使用 Navigator),在 pentaho-standalone 项目中浏览至 src/org/pentaho/app/SimpleCase.java,打开那个文件。
3. 在 SimpleCase.java 文件的 73 行设置一个断点(从右键菜单)(注意:若是代码修改过,这个行号极可能已经改变了。设置断点的那行就是包含 Init.initialize() 代码的那行)。
4. 在你的文件浏览视图中右击 SimpleCase.java 文件,选择 'Debug As...' 选项,而后 'Java Application' 选项,这将以一个 Java 应用启动类。
5. 在你的断点下,程序会中止运行。此处,你可在 Eclipse 中 step into,step over 或继续运行。额外的调试信息,请注意 Console 视图。
This page last changed on Jun 05, 2007 by bseyler.
若是你已经执行了以前的设置步骤,如今就准备好调试平台了。假设你有咱们此处列出的necessary projects ,并可运行 a configured JBoss server。如下是咱们将执行的步骤:
1. 在 JBoss IDE 中配置一个服务器。咱们将使用它来运行 JBoss 应用服务器,其中平台被配置为一个web 应用。
2. 最后,咱们将在平台 Java 代码中设置一个断点,运行 'Hello World' sample solution,从那个断点走查代码。
既然你已经将 pentaho web 应用复制进 pentaho-preconfiguredinstall 项目,是时候启动 JBoss 应用服务器,并确保一切正常。JBoss IDE 是一个很好的工具。易配置,一旦配置好,你所须要做的就是经过 IDE 启动服务器,这样你就可调试 Java 代码。
若是你想运行实例 "Debugging in JBoss Application Server",你须要确保你的计算机上没有另外一个应用使用端口8080。这是 JBoss 应用服务器的默认端口。你也可改变服务器使用的端口,you do not want to unnecessarily complicate your life at this point。若是端口 8080 被占用了,推荐在运行应用服务器时,临时关闭使用端口 8080的应用。 |
这些命令对任何使用推荐环境(Setting Up Your Environment doc 中所述)的人均有效。
为在 JBoss IDE 中配置一个新服务器:
首先,咱们须要在 Eclipse 首选项里设置一个 server runtime。
1. 从 Window 菜单打开首选项对话框。
2. 在左边的树中找到 'Server | Installed Runtimes'。
3. 在右边的 pane 中,点击 'Add' 按钮。
4. 对于 runtime type,选择 'JBoss Server Adapter Runtime' under 'JBoss Inc'. (若是有多个选择,例如 JBoss 4.0 Server Adapeter Runtime,选择 4.0 版本)
5. 选择 next。在下一个 pane 中,设置如下参数:
a. 将你的 runtime 命名为 'PCI Demo'。
b. 这部分很重要!对于 Home 目录,浏览你的 dev_build (or override) properties file 中指定的 target 服务器目录! 那就是你想调试的服务器,由于那就是 webapp 被配置到的地方(注意:你可确保你获取了正确的属性值,经过查看 pentaho/dev_build.properties 文件,并找到了名为target.server.dir 的属性值)
c. 将你的 JRE 切换至 1.4 JRE。若是你的 Eclipse 没有配置 1.4 JRE,请当即配置。
6. 点击 OK 关闭对话框。
如今咱们可配置一个新的服务器:
1. 切换到 Eclipse Debug 透视图。
2. 从 Window 菜单,选择 'Show View' 选项,而后 'Other...' 选项。
3. 会出现一个具备指定视图的提示对话框。选择 'Server' 选项,而后是 'JBoss Server View' 视图。
4. 选择 OK 按钮完成。你会看到 JBoss Server View 出如今 Eclipse Debug Perspective 的底部。
5. 右击 JBoss Server View window pane。选择 'New... | Server' 选项。
6. 如今你处于 Server 设置向导中。以下为向导设置参数:
a. 服务器的主机名:localhost
b. 服务器类型:在 'JBoss Inc' 下,选择 JBoss AS 4.0
c. 服务器运行时:选择以前设置的 'PCI Demo' runtime。
d. 选择 next,将你的服务器命名为一个你想用的惟一的名字。
e. 选择 finish。
最后,咱们将定制服务器配置:
1. 在 JBoss Server 视图中,你应该看见你的新服务器,垂直排列的 2 个 panes。右击底部的 pane 的服务器的名字,选择菜单项 'Edit Launch Configuration'。
2. 在新对话框中,切换到 'Start Args' 标签页。在 VM 参数区域添加如下参数:-Xms512m -Xmx1028m
3. 在 Source 标签页上,点击 add 按钮,选择 pentaho 项目。这将自动将 pentaho 项目中的全部源文件识别为这个服务器配置的源。
4. 在 JRE 标签页中,指定 1.4 JRE,若是尚未选中的话。
如今你应该在 JBoss Server 视图的列表中看见新服务器的名字。经过右击 JBoss Server 视图中的条目启动和中止 pentaho 服务器。注意!!! 在你启动服务器以前,为正确运行,首先你必须为 demo启动数据库。启动数据库的指令请参考 hello world。
这些命令对任何使用比推荐环境(Setting Up Your Environment doc 中所述)更老版本的 JBoss IDE 的人均有效。
为在 JBoss IDE 中配置一个新服务器:
1. 切换到 Eclipse Debug 透视图。
2. 从 Window 菜单中,选择 'Show View' 选项,而后选择 'Other...' 选项。
3. 会出现一个具备指定视图的提示对话框。选择 'JBoss IDE' 选项,而后选择 'Server Navigator' 视图。
4. 选择 OK 按钮来结束。你应该看见 Server Navigator 视图出如今 Eclipse Debug 透视图的底部。右击 Server Navigator window pane。选择 'Configuration...' 选项。
5. 会出现一个提示配置对话框。在左边的 pane 中,选择 'JBoss 4.0.x' 选项,而后选择左边的 pane 中的 New 按钮。你应该看到一个相似于此处的对话框。输入 'pentaho-server' 做为你的新配置的名字。
6. 选择 'Browse...' 按钮,浏览至 pentaho-reconfiguredinstall 文件夹。将这个文件夹设置为 JBoss 4.0.x Home Directory。
7. 选择 'default' 做为服务器配置。
8. 选择 'Apply' 按钮保存这个配置。
9. 切换到对话框中的 'Source' 标签页。
10. 选择 'Add' 按钮,而后从下一个对话框中选择 'Java Project',而后从最后一个对话框中选择'pentaho'。选择 OK。
11. 选择 'Apply' 按钮保存这个配置。
12. 选择 'Close' 按钮关闭对话框。如今你应该看见你的 Server Navigator 视图中列出的 'pentaho-server'。经过右击 Server Navigator 视图中的 pentaho-server 条目,你可启动和中止 pentaho-server。注意!在你启动 pentaho-server 以前,首先你必须启动数据库,使得 demo 可正常运行。启动数据库的指令请参考下一节。
如今须要作的就是启动平台,设置断点,观察其运行状况!在你企图从 Eclipse 中启动 pentaho-server 以前,首先你必须启动 demo 数据库。
为启动数据库:
1. 经过命令行或使用你最喜欢的文件浏览工具 – Eclipse 以外 – 浏览到 pentaho-data 文件夹。
2. 在 pentaho-data/demo-data 文件夹下,有 Windows OS 和 *nix 平台上的启动和关闭脚本。执行适合于你的计算机的启动脚本(.bat 文件用于 Windows,.sh 文件用于 *nix)。
如今启动 pentaho-server:
1. 从 Eclipse Debug 透视图,Server Navigator 视图中(或 JBoss Server View),右击 pentaho-server 条目。
2. 选择 'Debug' 选项。在 Console 视图中滚动查看,你会看到不少启动消息和警告。只要启动时的最后一条消息是 "Pentaho BI Platform server is ready.",你就知道平台已经成功启动和运行了。
如今让咱们设置一个断点,并执行 'Hello World' demo solution,这样你可看到运行中的开发过程。
1. 切换到 Eclipse Debug 透视图,若是你尚未打开的话。
2. 从 Eclipse 的不少文件浏览视图之一(我使用 Navigator),在 pentaho 项目浏览至 server/pentaho/src/org/pentaho/core/runtime/RuntimeContextBase.java,打开那个文件。
3. 在 RuntimeContextBase.java 文件的 1092 行设置一个断点(从右键菜单)(注意:由于代码的修改,这个行号极可能会发生变化,应该设置断点的那行代码就是包含 executeComponent()的代码)。
4. 下一步,打开一个 web 浏览器窗口,浏览至 http ://localhost: 8080/pentaho/ViewAction?&solution =samples&path=getting-started&action= HelloWorld.xaction.
5. 在组件执行结果从服务端发回浏览器以前,你在 Eclipse 中的断点应该被 hit。今后处,你可在 Eclipse 中 step into,step over 或继续执行。额外的调试信息请观察Console 视图。