1. Naming Conventions and Basic Assumptions命名约定与基本假设

Source Basic Assumptions基本假设

  • 除非另外说明,否则你应该从Jetspeed目录(如果你正在建立Jetspeed项目), 或者你自己定制的门户目录内,运行所有maven build指令。
  • 无论nix或windows,你都必须用"/"作为文件分隔符,比如 c:/windows, /home。

Naming Conventions命名约定

以下是本文档的通用约定。

变量表示为 ${ some_variable },意思是Jetspeed或环境变量的一种设定,属性文件也可以在其中指明。

例如,${org.apache.jetspeed.server.home}既可以指属性文件里定义的属性, 也可以指build过程中某处定义的变量,或Jetspeed里另一个build文件中定义的变量。

  • ${USER_HOME} : 用户主目录。对于Windows系统,通常是 c:\Documents and Settings\${userName}, 这里${userName}是用户登陆windows的名字。

    本文档中${USER.HOME}与 ${USER_HOME}同义。
  • ${CATALINA_HOME} :tomcat安装的位置,比如 c:/tomcat .

Source Subversion (SVN)子版本管理

Subversion (SVN) 是Jetspeed项目中用来管理源码文件的,与CVS非常相似。 对于不习惯使用命令行的Windows用户,我们推荐使用 TortoiseSVN ,它可以插入到你的Windows浏览器中。对于使用Eclipse IDE的用户,可以使用插件 Subclipse

Maven Setup

我们不准备详细介绍Maven,那将超出了本文档的范围,然而,我们觉得 下面一些标准的maven术语还是很有必要知道

本文档中,你将看到 maven repository 。安装Maven时,.maven/目录将你的${USER_HOME)目录中创建。

在 .maven/ 下你将看到 repository 目录。当你运行build时,Maven把所有下载的和生成的jar、war文件都放在这个目录下。 事实上,会建立如下的目录结构: ${groupId}/${projectId}/jars/${projectId}-{$version}.jar (用来放jar文件), ${groupId}/${projectId}/wars/${projectId}.war (用来放war文件)。${groupId},${projectId} 和 ${version}变量将在本文当的后面讨论。 Jar 和 war文件也会在 /target 目录中创建。

2. Jetspeed build and maven-plugin Properties

你需要设置一些属性。

用jetspeed-2提供的maven插件来创建你自己的portal是非常容易的, 这个插件最好是在你用源码创建jetspeed时使用。实际上,jetspeed-2的 创建过程就是一个用户portal配置与安装的实例。

Jetspeed 2 maven-plugin 定义了大多数属性的默认值,但不是全部。 当你下载或验证jetspeed-2源码树的时候,你将看到其根文件夹中含有一 个project.properties文件,其中设置或重设了一些属性。

正像前文所说:不是所有属性都提供有默认值,你 必须 自己指定一部分,并且你也有可能很想重设其他部分。

${USER_HOME}/build.properties 文件中设置或重设build或maven-plugin属性。

Required Portal Configuration Properties

Property属性 Description描述 Default value默认值
org.apache.jetspeed.portal.home 这是一个文件夹,在这里maven-plugin将(重新)创建或 更新你定制的门户maven项目的配置 (with goal j2:portal.conf.project ),这也是你对你将来的门户进行定制开发的地方

例子: /home/myportal/
无默认值
org.apache.jetspeed.portal.groupId 你的门户工程组的(maven)短名。

此值被用来做maven repository文件夹,工程的artifact文件(与门户的war文件相似) 就存储在这个文件夹内。

例子: myprojects
无默认值
org.apache.jetspeed.portal.artifactId 你的门户工程的(maven)短名。

此值被用来做门户war文件和web应用上下文的名字。

例子: myportal
无默认值
org.apache.jetspeed.portal.name 你的门户工程的(maven)全名。

此值被maven用来产生JavaDoc标题

例子: My Test Portal
无默认值
org.apache.jetspeed.portal.currentVersion 你的门户工程的当前版本。

此值被maven用来做产生的artifact的名字后缀。

例子: 1.0
无默认值

可选的门户配置属性

接下来的属性指定了一个 ${org.apache.jetspeed.portal.home} 的子文件夹

属性 描述 默认值
org.apache.jetspeed.portal.conf.dir 指定一个文件夹,在这个文件夹中,maven-plugin将产生和拷贝应用服务器 特定的配置文件作为tomcat应用上下文的描述符。

此文件夹和其内容由plugin目标 j2:portal.conf.tomcat 创建和更新。
target/portal-conf
org.apache.jetspeed.portal.sql.dir maven-plugin将在其中产生和拷贝门户与数据库服务器特定的DDL、DML 脚本的文件夹

此文件夹和其内容总是由plugin目标 j2:portal.conf.sql (重新)建立。
target/portal-sql
org.apache.jetspeed.portal.db.dir maven-plugin在其中创建自带HSQLDB数据库的文件夹

此文件夹和其内容由plugin目标 j2:start.production.serverj2:start.test.server 建立或更新。
target/portal-db
org.apache.jetspeed.portal.webapp.dir maven-plugin将在其中拷贝标准jetspeed web应用资源的文件夹

此文件夹和其内容由plugin目标 j2:portal.copy.webapp 建立或更新。
target/${org.apache.jetspeed.portal.artifactId}
org.apache.jetspeed.portal.target.dir maven-plugin将在其中产生和拷贝门户配置文件的文件夹。

这些配置文件为门户和OJB存有来自于build/plugin属性的值。

此文件夹和其内容由plugin目标 j2:portal.conf.jetspeed 和目标 j2:portal.conf.ojb 建立或更新。
target/${org.apache.jetspeed.portal.artifactId}

Required Application Server Properties

注意:当前maven-plugin仅支持 the Tomcat Server 5.0.x or 5.5.x

Property属性 Description描述 Default value默认值
org.apache.jetspeed.server.home Tomcat Server安装的根目录。

例子: ${CATALINA_HOME}/ .
无默认值
org.apache.jetspeed.server.shared Tomcat安装中共享的jar文件的位置。

例子: ${org.apache.jetspeed.server.home}/shared/lib/
无默认值
org.apache.jetspeed.deploy.war.dir Tomcat安装中web应用的位置。

例子: ${org.apache.jetspeed.server.home}/webapps/
无默认值
org.apache.jetspeed.services.autodeployment.user Tomcat管理员用户

用于从门户内部访问Tomcat Manager application,下面解释。
无默认值
org.apache.jetspeed.services.autodeployment.password 上面所说的Tomcat用户的密码。

用于从门户内部访问Tomcat Manager application,下面解释。
无默认值
org.apache.jetspeed.catalina.version.major 你能使用的Tomcat Server的主要版本: 5 or 5.5

Example: 5.5
无默认值

Optional Database Server Properties

Jetspeed-2 和 maven-plugin既使用也提供一个默认的HSQLDB数据库。

如果你要用另外的数据库,你需要重设下面的属性:

Property属性 Description描述 Default value默认值
org.apache.jetspeed.production.database.default.name 你要使用的数据库的类型,Used for sql script generation with Torque

当前支持的数据库(with corresponding Torque target database name):
  • hsql (hypersonic)
  • oracle (oracle)
  • mysql (mysql)
  • postgres (postresql)
  • mssql (mssql)
hsql
org.apache.jetspeed.production.database.url jdbc连接的 url jdbc:hsqldb:hsql://127.0.0.1:9001
org.apache.jetspeed.production.database.user 连接数据库使用的数据库用户名 sa
org.apache.jetspeed.production.database.password 连接数据库使用的用户密码 empty
org.apache.jetspeed.production.database.driver jdbc 驱动器的类名 org.hsqldb.jdbcDriver
org.apache.jetspeed.production.jdbc.drivers.path jdbc驱动器的类路径,或者连接数据库需要的jar文件的路径。

Example例子: /lib/ojdbc14.jar;/lib/nls_charset12.jar
empty

Example: A minimal custom portal configuration

确保你已经在 ${USER_HOME}/build.properties 定义了上文所述必填属性。 使用默认的HSQLDB数据库的用户portal的最小配置如下所示:

						
# required portal configuration properties          
org.apache.jetspeed.portal.home           = /home/myportal/
org.apache.jetspeed.portal.groupId        = myprojects
org.apache.jetspeed.portal.artifactId     = myportal
org.apache.jetspeed.portal.name           = My Test Portal
org.apache.jetspeed.portal.currentVersion = 1.0

# required application server properties
org.apache.jetspeed.server.home                      = ${CATALINA_HOME}/
org.apache.jetspeed.server.shared                    = ${org.apache.jetspeed.server.home}/shared/lib/
org.apache.jetspeed.deploy.war.dir                   = ${org.apache.jetspeed.server.home}/webapps/
org.apache.jetspeed.services.autodeployment.user     = j2deployer
org.apache.jetspeed.services.autodeployment.password = xxxxx
org.apache.jetspeed.catalina.version.major           = 5.5
					
注意:如果你要从源码直接建立默认的Jetspeed 2 门户,只有 org.apache.jetspeed.portal.home 属性需要设置。

4. Creating a new Portal Application

现在,我们将用Jetspeed 2 maven-plugin配置、安装和建立一个新的用户门户应用。

4.1 Set the maven remote repository lookup configuration

为了能够安装基于Jetspeed 2 的门户,maven远程repository查找需要在 ${USER_HOME}/build.properties 中适当配置:

						
maven.repo.remote = http://www.bluesunrise.com/maven/, http://www.ibiblio.org/maven/, \
                    http://dist.codehaus.org/, http://cvs.apache.org/repository
					
注意:这些repository被指定的顺序是有意义的。

4.2 Install the Jetspeed 2 maven-plugin

第一次当你想要升级到Jetspeed 2 新的版本时,你需要如下安装maven-plugin:

						
maven -DartifactId=maven-jetspeed2-plugin -DgroupId=org.apache.portals.jetspeed-2 -Dversion=2.0-M4-SNAPSHOT plugin:download
					
注意:你可以将版本标志设置为你要安装的特定版本, 这里2.0-M4-SNAPSHOT只是一个例子。

4.3 Generate a new portal project

一旦你已经安装好了maven-plugin,也已经如需设置好了属性, 那么你需要用plugin产生默认的门户配置,如下:

						
maven j2:portal.genapp
					
这个maven目标(goal)实际上执行好几个子目标, maven-plugin 文档 本身将进一步讨论子目标的问题。

4.4 Further customization of the portal

这一部分不做任何事。门户项目生产以后,你可以通过重设、合并你自己的配置 来调整、定制门户,以适应你的口味。

你可以直接使用上文描述的 j2:portal.genapp 目标(goal)或子目标来重新产生或更新你的(部分)门户工程。

4.5 Build the portal

一旦你的门户配置就绪了,你就可以用下面的标准maven goal 从你定制的门户工程目录中(${org.apache.jetspeed.portal.home}) 创建和安装你的门户应用到你本地的maven repository。

						
maven war:install
					

,!-- You are now ready to deploy the new portal application. For this, skip the following section on building the Jetspeed 2 portal from source and continue with the--> 现在你已经准备好部署新的门户应用了。如果这样,跳过接下来从源码 建立Jetspeed 2 门户的部分,继续 deployment部署 部分。

5. Build Jetspeed 2 from source

直接从源码建立Jetspeed 2 稍微有点容易,但是仅限于你不想创建新的,定制化的门户。

5.1 Setup the Jetspeed 2 source and build properties

Jetspeed 2 源码中有 project.properties 文件,此文件提供所有必须的门户配置。 如上所述

不该 在你的 ${USER_HOME}/build.properties 中定义任何属性。

相反,你 必须 设置一个 org.apache.jetspeed.project.home 属性,指明解压下载的源码或检验子版本的位置,如:

						
# required Jetspeed 2 portal configuration property for building from the source
org.apache.jetspeed.project.home = /home/apache/jetspeed-2/
					
注意:你仍然需要指出必须的应用服务器属性, 如上所述

Jetspeed 2 中project.properties 用这个属性定义必须的 org.apache.portal.home :

						
org.apache.jetspeed.portal.home = ${org.apache.jetspeed.project.home}
					
因此,当你从源码创建Jetspeed 2 时,他们是相同的。

当你准备部署门户时(后面进一步介绍), 你将看到org.apache.jetspeed.portal.home属性, 这个属性能转换Jetspeed 2 源码的根目录。

创建Jetspeed 2 时,如果你想运行测试的例子, 但是 不想使用默认的HSQLDB测试数据库,这时你需要重设测试数据库属性的默认值, 其设置 与上所述 相同:

  • org.apache.jetspeed.test.database.default.name
  • org.apache.jetspeed.test.database.url
  • org.apache.jetspeed.test.database.user
  • org.apache.jetspeed.test.database.password
  • org.apache.jetspeed.test.database.driver
  • org.apache.jetspeed.test.database.drivers.path
注意:对于突出的问题 JS2-320 当前 must 使用硬编码来设置数据库属性。

Initialize the maven-plugin

不用下载安装Jetspeed 2 maven-plugin,你可以从源码中直接创建它。 但是,每次你更新新版本或改变项目配置、plugin本身或plugin使用的源码时, 你需要重复这部分工作。

按以下步骤从Jetspeed 2 的根目录中创建和安装maven-plugin:

						
cd ${org.apache.jetspeed.project.home}
maven initMavenPlugin
					

Optional: start the HSQLDB test database first

如果你要使用默认的HSQLDB数据库运行测试例子,你应该在创建Jetspeed 2 之前 在一个 单独的 控制台中启动测试数据库:

						
cd ${org.apache.jetspeed.project.home}
maven j2:start.test.server
					

创建之后,你可以关闭数据库,并用 Ctrl-C 关闭控制台.

Build the Jetspeed 2 portal and demo portlet applications

门户与portlet应用的demo完全在本地的maven repository建立之后,运行:

						
cd ${org.apache.jetspeed.project.home}
maven allClean allBuild
					

如果你还想在创建期间运行测试例子,请运行:

						
cd ${org.apache.jetspeed.project.home}
maven -Dmaven.test.skip=false allClean allBuild
					

You are now ready to deploy the Jetspeed 2 Portal. 现在你已经准备好部署Jetspeed 2 了。

6. Deploy and Run

Optional: start the HSQLDB production database first

If you are using the default HSQLDB database you need to start it before deploying the portal. 如果你使用默认的HSQLDB数据库,部署前请启动它。

To start the HSQLDB production database run the following in a 启动HSQLDB数据库,请在 separate单独的 console控制台,运行:

						
cd ${org.apache.jetspeed.portal.home}
maven j2:start.production.server
					

部署以及运行应用服务器期间,数据库要开动着。之后,你可以 将其关闭,并用 Ctrl-C 关闭控制台.

Note: this is required when using the 注意:当使用 j2:quickStart 目标(如后所述)时,其是必须的。Jetspeed 2 maven-plugin 提供其他的(子)目标,你可以使用这些目标而不必创建产品数据库, 并且能插入门户的配置数据。请看 Plugin documentation文档

Deploy

We currently only cover deploying to Tomcat 5 or Tomcat 5.5. 当前,我们仅仅涵盖Tomcat 5 or Tomcat 5.5 上的部署.

可以在Jetspeed 2 Wiki 上找到关于部署到其他应用服务器上的信息.

若要部署Jetspeed 2 门户(包括portlet应用程序的demo),在 separate单独的 console控制台中运行:

						
cd ${org.apache.jetspeed.portal.home}
maven j2:quickStart
					
Note: the 注意: maven-plugin documentation described other goals you can use to customize the deployment to your taste. 描述了按照你的口味定制部署的其他goal

Run

最后一步:启动Tomcat服务器。门户会自动安装已经部署的portlet应用程序。

Then you can access the portal with your browser at: 接下来,你可以安装如下地址在浏览器中访问门户:

or replace "jetspeed" in the above url with the name of you own portal application ( ${org.apache.jetspeed.portal.artifactId} ).

Default installed user accounts

如果Jetspeed 2 是默认部署,那么门户数据库中就会被插入几个用户帐号的范例,你可以 用它们登陆门户:

username password roles
admin admin admin, manager, user
manager manager manager, user
jetspeed jetspeed manager
user user user
tomcat tomcat