这篇文档的目的是教会开发人员如何开始进行 Pentaho 的开发。这篇文档解释了如何在 Eclipse 中设置一个开发环境,包括如何连接到 Pentaho Subversion repository,检出 Pentaho 项目,使用一个 '1stand-alone'1 Java 应用和 Eclipse JBoss IDE 来构建调试它们。这篇文档也解释了 Pentaho repository 结构和对于开发Pentaho 来说,许多很重要的 build targets。
目标读者是软件开发人员。我们假设读者已经很熟悉 Eclipse 平台和 Java 开发。如果目的是将平台配置为一个 J2EE 应用,我们假设读者了解 J2EE 和应用服务器。我们此处就是使用 JBoss 应用服务器进行演示。虽然不是很重要,但如果读者有使用 Apache Ant 的经验也会很有用处。
如果你仔细阅读了这个指南中的说明,但仍没有解决你的问题,请到论坛寻找答案: http://forums.pentaho.org/.
01. 设置你的环境
以下是开始研究 Pentaho,你需要使用的工具列表。推荐你现在就下载所有必需的包,这样你就可不间断的进行试用。
1. 一个 Java SDK:Pentaho BI Platform 在 Java SDK 1.4 上构建和测试。注意你需要完整的 SDK,而不仅仅是 runtime (JRE)。
2. Ant:基于 Java 的构建工具。
3. Eclipse:平台 IDE。
4. Subclipse:一个 Eclipse 插件,其在 Eclipse IDE 上添加了 Subversion 集成。
5. JBoss IDE for Eclipse。
为开始设置:
1. 下载和安装你的 Java SDK。
2. 下载和安装 Ant。
3. 下载和安装 Eclipse。
4. 下载和安装 Subclipse。
5. 下载和安装 JBoss IDE for Eclipse。
以后章节是关于 Pentaho 团队使用的这些工具的版本说明,以及使环境适合于 Pentaho 平台 codeline 开发的技巧。每个工具在其各自的下载中有详细的安装指令,这里我们不详细介绍。
Java SDK
Pentaho BI Platform 在 Java SDK 1.4 上构建和测试。注意你需要完整的 SDK,而不仅仅是runtime (JRE)。在后面几步中,你会看到为了使 Ant 构建脚本正确运行,你必须指定 Java 编译器可执行程序(javac)。这个可执行程序位于你安装的 Java SDK 的 /bin 目录下,因此记住你将 SDK 安装到了哪里。
Ant
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,在插件的路径中检查其版本。
Eclipse IDE
只是最近在设置你的 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
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 IDE
如果你想在 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" 这个练习中,我们会介绍如何配置插件用于调试。
02. 探索 Pentaho Repository
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 项目有源代码,资源和 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-data 项目
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。
pentaho-solutions 项目
如果你的目标是将平台设置为一个 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 文件。 |
03. 创建 Repository 连接
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。
04. 检出项目
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
获取不同的 Codelines
此处,你可能想获取平台的最新代码,那就是构建好,用于我们下一次发布的 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 开发人员会提供帮助。
Get Version 1.2.x Codeline
在 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 开发人员会提供帮助。
05. 探索 build.xml
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。
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 中。
Target: dev-setup
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。
Target: clean-target-server
这样构建 dev_build targets 的原因是可确保你的代码修改可立即在调试环境中生效。你也能确保你调试的环境中,没有之前的运行或构建中的残留文件。clean-target-server target 删除整个的target server 目录,这样下次运行 dev-setup 时,你再次有了一个干净的配置。
其他重要的 Property Overrides
为了在你的环境中成功运行构建,你应该在你的 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
06. 用 JUnit 调试
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 对话框中的提示进行操作即可,那些提示很直截了当。
07. 调试 Standalone Platform 项目
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 Project 设置
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 目录
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;
}
}
分步运行 Sample 代码
在 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 视图。
08. 用 JBoss IDE 调试
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,从那个断点走查代码。
配置 JBoss IDE Server
既然你已经将 pentaho web 应用复制进 pentaho-preconfiguredinstall 项目,是时候启动 JBoss 应用服务器,并确保一切正常。JBoss IDE 是一个很好的工具。易配置,一旦配置好,你所需要作的就是通过 IDE 启动服务器,这样你就可调试 Java 代码。
在 JBoss IDE 2.x.x 中配置一个服务器
如果你想运行实例 "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。
在 JBoss IDE 1.x.x 中配置一个服务器
这些命令对任何使用比推荐环境(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 可正常运行。启动数据库的指令请参考下一节。
逐步调试 'Hello World'
现在需要做的就是启动平台,设置断点,观察其运行情况!在你企图从 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 视图。