从Seam2.2升级到2.3

 

1、  升级 XML Schema

1.1 升级 Seam Schema

涉及的文件有 components.xml page.xml

除将版本号由“ 2.2 ”改为“ 2.3 ”外,注意 seam2.3 namespace 不同于 2.2 ,由“ jboss.com/products/seam/ 改成了“ jboss.org/schema/seam ”。

1.2   修改 Java EE 6 Schema

涉及的文件有:

 1)  persistence.xml

升级为 JPA2

< persistence xmlns = "http://java.sun.com/xml/ns/persistence"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version = "2.0" >

 2)  Web.xml

使用 servlet3.0

< web-app xmlns = "http://java.sun.com/xml/ns/javaee"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version = "3.0" >

 3)  application.xml

使用 Java EE 6

< application xmlns = "http://java.sun.com/xml/ns/javaee"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version = "6" >

 4)  faces-config.xml

< faces-config version = "2.1"

xmlns = "http://java.sun.com/xml/ns/javaee"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd" >

2、  升级 Jave EE 6

Seam2.3 支持 Java EE 6 ,可以 JPA2 EJB3.1 Bean Validation

2.1 使用 Bean Validation 取代 Hibernate Validator

Bean Validation Java EE 6 中的一个新技术标准( JSR-303 ), Hibernate Validator 4.x 是它的一个参考实现。要对原来的 hibernate 注解进行替换,如:

 

org.hibernate.validator.Length 改为 javax.validation.constraint.Size

org.hibernate.validator.NotNull 改为 javax.validation.constraint.NotNull

org.hibernate.validator.Pattern 改为 javax.validation.constraint.Pattern

2.2 Facelets 模板从 JSF 1 升级到 JSF 2

模板中的 <head>/<body> 标签转换为 <h:head>/<h:body>

Richfaces 升级为 4

2.3 升级到 JPA 2.0

JPA2.0 是向后兼容的,因此不必升级任何注解或类。

2.4 使用兼容的 JNDI

Java EE 6 定义了 JNDI 语法新的标准规则。因此应将所有 JNDI 字符串从“ your_application/#{ejbName}/local ”,改为“ java:app/application-module-name/#{ejbName} ”。如 components.xml 中的 jndi-pattern 需修改为“ java:app/ application-module-name /#{ejbName} ”。

3 、部署到 Jboss AS 7.1

3.1   部署的变化

修改 persistence.xml 中的 JNDI 数据源,如 Jboss 默认数据源由“ java:/DefaultDS ”,改为“ java:jboss/datasources/ExampleDS ”。

EAR META-INF 目录或 WAR WEB-INF 目录中新增 jboss-deployment-structure.xml 文件。 Seam2.3 的最小基本配置如下:

< jboss-deployment-structure xmlns = "urn:jboss:deployment-structure:1.0" >

< deployment >

< dependencies >

< module name = "org.dom4j" export = "true" />

< module name = "org.apache.commons.collections" export = "true" />

< module name = "javax.faces.api" export = "true" /> <!-- keep there only if you use JSF

as view technology -->

</ dependencies >

</ deployment >

</ jboss-deployment-structure >

3.2   升级 Datasource

以前的数据源文件 ( *-ds.xml) 是简单的 xml 文件,现在是 Iron-Jacamar Iron-Jacamar Jboss JCA 项目)文件。

Iron-Jacamar 文件样例:

<?xml version="1.0" encoding="UTF-8"?>

< datasources xmlns = "http://www.jboss.org/ironjacamar/schema" >

< datasource jndi-name = "java:/jboss/seamdiscsDatasource"

enabled = "true" use-java-context = "true" pool-name = "seamdiscs" >

< connection-url > jdbc:hsqldb:. </ connection-url >

< driver > org.hsqldb.jdbcDriver </ driver >

< security >

< user-name > sa </ user-name >

< password ></ password >

</ security >

</ datasource >

</ datasources >

4、  测试框架的变化

使用 Arquillian 取代了嵌入式 Jboss ,使用 JunitSeamTest 替代 SeamTest ,使用 DBJUnitSeamTest 替代 DBUnitSeamTest 进行 DBUnit 测试。由于使用 TestNG Arquillian 有断言问题,因此首选 Junit 测试框架。

升级步骤参见 seam 文档。

5、  Maven 依赖变化

Seam BOM pom 文件中包含了 seam2.3 的推荐依赖和版本,可以在 maven pom 文件中引用。用法如下:

< dependencyManagement >

< dependencies >

< dependency >

< groupId > org.jboss.seam </ groupId >

< artifactId > bom </ artifactId >

< version > 2.3.0.Final </ version >

< type > pom </ type >

< scope > import </ scope >

</ dependency >

...

</ dependencies >

</ dependencyManagement >

 

< dependencies >

< dependency >

< groupId > org.jboss.seam </ groupId >

< artifactId > jboss-seam </ artifactId >

< type > ejb </ type >

< dependency >

...

</ dependencies >

 

你可能感兴趣的:(seam2.2,seam2.3)