Author: alexsmirnov
Date: 2007-11-02 18:37:25 -0400 (Fri, 02 Nov 2007)
New Revision: 3742
Added:
trunk/samples/seamPortletEar/ear/
trunk/samples/seamPortletEar/ear/pom.xml
trunk/samples/seamPortletEar/ear/src/
trunk/samples/seamPortletEar/seamBooking/
trunk/samples/seamPortletEar/seamBooking/pom.xml
trunk/samples/seamPortletEar/seamBooking/src/
trunk/samples/seamPortletEar/seamBooking/src/main/
trunk/samples/seamPortletEar/seamBooking/src/main/java/
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Authenticator.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/AuthenticatorAction.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Booking.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/BookingList.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/BookingListAction.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/ChangePassword.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/ChangePasswordAction.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Hotel.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelBooking.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelBookingAction.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelSearching.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelSearchingAction.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Register.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/RegisterAction.java
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/User.java
trunk/samples/seamPortletEar/seamBooking/src/main/resources/
trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/
trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/ejb-jar.xml
trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/persistence.xml
trunk/samples/seamPortletEar/seamBooking/src/main/resources/booking1-ds.xml
trunk/samples/seamPortletEar/seamBooking/src/main/resources/components.properties
trunk/samples/seamPortletEar/seamBooking/src/main/resources/import.sql
trunk/samples/seamPortletEar/seamBooking/src/main/resources/messages.properties
trunk/samples/seamPortletEar/seamBooking/src/main/resources/seam.properties
Modified:
trunk/samples/seamPortletEar/pom.xml
trunk/samples/seamPortletEar/seamBookingPortlet/pom.xml
trunk/samples/seamPortletEar/seamBookingPortlet/src/main/webapp/WEB-INF/components.xml
Log:
convert seam portlet sample to EAR
Added: trunk/samples/seamPortletEar/ear/pom.xml
===================================================================
--- trunk/samples/seamPortletEar/ear/pom.xml (rev 0)
+++ trunk/samples/seamPortletEar/ear/pom.xml 2007-11-02 22:37:25 UTC (rev 3742)
@@ -0,0 +1,80 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>seamPortletEar</artifactId>
+ <groupId>org.richfaces.samples</groupId>
+ <version>3.2.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.richfaces.samples.seamPortletEar</groupId>
+ <artifactId>portletEar</artifactId>
+ <packaging>ear</packaging>
+ <name>Seam Portlet Ear</name>
+ <version>3.2.0-SNAPSHOT</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.samples.seamPortletEar</groupId>
+ <artifactId>seamBooking</artifactId>
+ <type>ejb</type>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.samples.seamPortletEar</groupId>
+ <artifactId>seamBookingPortlet</artifactId>
+ <type>war</type>
+ </dependency>
+ </dependencies>
+ <build>
+ <finalName>seamEAR</finalName>
+ <plugins>
+ <plugin>
+ <artifactId>maven-ear-plugin</artifactId>
+ <configuration>
+
<defaultLibBundleDir>lib</defaultLibBundleDir>
+ <modules>
+ <jarModule>
+
<groupId>org.jboss.seam</groupId>
+
<artifactId>jboss-seam</artifactId>
+ <includeInApplicationXml>
+ true
+ </includeInApplicationXml>
+ <bundleDir>/</bundleDir>
+ </jarModule>
+ <ejbModule>
+ <groupId>
+
org.richfaces.samples.seamPortletEar
+ </groupId>
+
<artifactId>seamBooking</artifactId>
+
<bundleDir>/</bundleDir>
+ </ejbModule>
+ <jarModule>
+
<groupId>org.richfaces.framework</groupId>
+
<artifactId>richfaces-api</artifactId>
+ <includeInApplicationXml>
+ true
+ </includeInApplicationXml>
+
<bundleDir>/</bundleDir>
+ </jarModule>
+ </modules>
+ <archive>
+ <manifest>
+
<addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ -->
+ <!--
+ <jboss>
+ <version>4.2</version>
+ <loader-repository>
+ seam.jboss.org:loader=seamEAR
+ </loader-repository>
+ </jboss>
+ -->
+ <version>5</version>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Property changes on: trunk/samples/seamPortletEar/ear/pom.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Modified: trunk/samples/seamPortletEar/pom.xml
===================================================================
--- trunk/samples/seamPortletEar/pom.xml 2007-11-02 21:06:30 UTC (rev 3741)
+++ trunk/samples/seamPortletEar/pom.xml 2007-11-02 22:37:25 UTC (rev 3742)
@@ -1,7 +1,5 @@
-<?xml version="1.0"?>
-<project
xmlns="http://maven.apache.org/POM/4.0.0"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<!--
<parent>
<artifactId>samples</artifactId>
@@ -15,13 +13,16 @@
<artifactId>seamPortletEar</artifactId>
<packaging>pom</packaging>
<name>seam EAR portlet project</name>
+ <properties>
+ <seam>2.0.1.SNAPSHOT</seam>
+ </properties>
<modules>
- <module>projects</module>
- <module>primary-source</module>
- <module>wars</module>
- <module>ejbs</module>
- <module>ear</module>
- </modules>
+ <module>seamBookingPortlet</module>
+<!-- <module>seamBooking</module>
+ <module>ear</module> -->
+ <module>ear</module>
+ <module>seamBooking</module>
+ </modules>
<build>
<pluginManagement>
<plugins>
@@ -54,29 +55,55 @@
<dependencyManagement>
<dependencies>
<dependency>
- <groupId>
- org.richfaces.samples.seamEAR.projects
- </groupId>
- <artifactId>logging</artifactId>
+ <groupId>org.richfaces.samples.seamPortletEar</groupId>
+ <artifactId>seamBookingPortlet</artifactId>
<version>3.2.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.richfaces.samples.seamEAR</groupId>
- <artifactId>primary-source</artifactId>
- <version>3.2.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.richfaces.samples.seamEAR.wars</groupId>
- <artifactId>seamWebapp</artifactId>
- <version>3.2.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
- <groupId>org.richfaces.samples.seamEAR</groupId>
- <artifactId>ejbs</artifactId>
+ <groupId>org.richfaces.samples.seamPortletEar</groupId>
+ <artifactId>seamBooking</artifactId>
<version>3.2.0-SNAPSHOT</version>
<type>ejb</type>
</dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>3.0.0.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <version>3.3.0.ga</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>3.3.1.ga</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <version>${seam}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-ui</artifactId>
+ <version>${seam}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-ioc</artifactId>
+ <version>${seam}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam-debug</artifactId>
+ <version>${seam}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
-</project>
+</project>
\ No newline at end of file
Added: trunk/samples/seamPortletEar/seamBooking/pom.xml
===================================================================
--- trunk/samples/seamPortletEar/seamBooking/pom.xml (rev 0)
+++ trunk/samples/seamPortletEar/seamBooking/pom.xml 2007-11-02 22:37:25 UTC (rev 3742)
@@ -0,0 +1,88 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>seamPortletEar</artifactId>
+ <groupId>org.richfaces.samples</groupId>
+ <version>3.2.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.richfaces.samples.seamPortletEar</groupId>
+ <artifactId>seamBooking</artifactId>
+ <name>seamBooking</name>
+ <packaging>ejb</packaging>
+ <version>3.2.0-SNAPSHOT</version>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>jboss-seam</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>1.2_05</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.framework</groupId>
+ <artifactId>richfaces-api</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb-api</artifactId>
+ <version>3.0</version>
+ <scope>provided</scope>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>javax.annotation</groupId>
+ <artifactId>jsr250-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+
<artifactId>hibernate-commons-annotations</artifactId>
+ <version>3.3.0.ga</version>
+ <optional>true</optional>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <version>3.2.0.ga</version>
+ <optional>true</optional>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <finalName>seamBooking</finalName>
+ <plugins>
+ <plugin>
+ <artifactId>maven-ejb-plugin</artifactId>
+ <configuration>
+ <ejbVersion>3.0</ejbVersion>
+ <archive>
+ <manifest>
+
<addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Property changes on: trunk/samples/seamPortletEar/seamBooking/pom.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Authenticator.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Authenticator.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Authenticator.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,9 @@
+package org.jboss.seam.example.booking;
+
+import javax.ejb.Local;
+
+@Local
+public interface Authenticator
+{
+ boolean authenticate();
+}
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Authenticator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/AuthenticatorAction.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/AuthenticatorAction.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/AuthenticatorAction.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,40 @@
+package org.jboss.seam.example.booking;
+
+import static org.jboss.seam.ScopeType.SESSION;
+
+import java.util.List;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+
+@Stateless
+@Name("authenticator")
+public class AuthenticatorAction implements Authenticator
+{
+ @PersistenceContext
+ private EntityManager em;
+
+ @Out(required=false, scope = SESSION)
+ private User user;
+
+ public boolean authenticate()
+ {
+ List results = em.createQuery("select u from User u where
u.username=#{identity.username} and u.password=#{identity.password}")
+ .getResultList();
+
+ if ( results.size()==0 )
+ {
+ return false;
+ }
+ else
+ {
+ user = (User) results.get(0);
+ return true;
+ }
+ }
+
+}
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/AuthenticatorAction.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Booking.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Booking.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Booking.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,190 @@
+//$Id: Booking.java,v 1.15 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.text.DateFormat;
+import java.util.Date;
+
+import javax.persistence.Basic;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import javax.persistence.Transient;
+
+import org.hibernate.validator.Length;
+import org.hibernate.validator.NotNull;
+import org.hibernate.validator.Pattern;
+import org.jboss.seam.annotations.Name;
+
+@Entity
+@Name("booking")
+public class Booking implements Serializable
+{
+ private Long id;
+ private User user;
+ private Hotel hotel;
+ private Date checkinDate;
+ private Date checkoutDate;
+ private String creditCard;
+ private String creditCardName;
+ private int creditCardExpiryMonth;
+ private int creditCardExpiryYear;
+ private boolean smoking;
+ private int beds;
+
+ public Booking() {}
+
+ public Booking(Hotel hotel, User user)
+ {
+ this.hotel = hotel;
+ this.user = user;
+ }
+
+ @Transient
+ public BigDecimal getTotal()
+ {
+ return hotel.getPrice().multiply( new BigDecimal( getNights() ) );
+ }
+
+ @Transient
+ public int getNights()
+ {
+ return (int) ( checkoutDate.getTime() - checkinDate.getTime() ) / 1000 / 60 / 60 /
24;
+ }
+
+ @Id @GeneratedValue
+ public Long getId()
+ {
+ return id;
+ }
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ @NotNull
+ @Basic @Temporal(TemporalType.DATE)
+ public Date getCheckinDate()
+ {
+ return checkinDate;
+ }
+ public void setCheckinDate(Date datetime)
+ {
+ this.checkinDate = datetime;
+ }
+
+ @ManyToOne @NotNull
+ public Hotel getHotel()
+ {
+ return hotel;
+ }
+ public void setHotel(Hotel hotel)
+ {
+ this.hotel = hotel;
+ }
+
+ @ManyToOne @NotNull
+ public User getUser()
+ {
+ return user;
+ }
+ public void setUser(User user)
+ {
+ this.user = user;
+ }
+
+ @Basic @Temporal(TemporalType.DATE)
+ @NotNull
+ public Date getCheckoutDate()
+ {
+ return checkoutDate;
+ }
+ public void setCheckoutDate(Date checkoutDate)
+ {
+ this.checkoutDate = checkoutDate;
+ }
+
+ @NotNull(message="Credit card number is required")
+ @Length(min=16, max=16, message="Credit card number must 16 digits long")
+ @Pattern(regex="^\\d*$", message="Credit card number must be
numeric")
+ public String getCreditCard()
+ {
+ return creditCard;
+ }
+
+ public void setCreditCard(String creditCard)
+ {
+ this.creditCard = creditCard;
+ }
+
+ @Transient
+ public String getDescription()
+ {
+ DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
+ return hotel==null ? null : hotel.getName() +
+ ", " + df.format( getCheckinDate() ) +
+ " to " + df.format( getCheckoutDate() );
+ }
+
+ public boolean isSmoking()
+ {
+ return smoking;
+ }
+
+ public void setSmoking(boolean smoking)
+ {
+ this.smoking = smoking;
+ }
+
+ public int getBeds()
+ {
+ return beds;
+ }
+
+ public void setBeds(int beds)
+ {
+ this.beds = beds;
+ }
+ @NotNull(message="Credit card name is required")
+ @Length(min=3, max=70, message="Credit card name is required")
+ public String getCreditCardName()
+ {
+ return creditCardName;
+ }
+
+ public void setCreditCardName(String creditCardName)
+ {
+ this.creditCardName = creditCardName;
+ }
+
+ public int getCreditCardExpiryMonth()
+ {
+ return creditCardExpiryMonth;
+ }
+
+ public void setCreditCardExpiryMonth(int creditCardExpiryMonth)
+ {
+ this.creditCardExpiryMonth = creditCardExpiryMonth;
+ }
+
+ public int getCreditCardExpiryYear()
+ {
+ return creditCardExpiryYear;
+ }
+
+ public void setCreditCardExpiryYear(int creditCardExpiryYear)
+ {
+ this.creditCardExpiryYear = creditCardExpiryYear;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "Booking(" + user + ","+ hotel + ")";
+ }
+
+}
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Booking.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/BookingList.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/BookingList.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/BookingList.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,13 @@
+//$Id: BookingList.java,v 1.7 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import javax.ejb.Local;
+
+@Local
+public interface BookingList
+{
+ public void getBookings();
+ public Booking getBooking();
+ public void cancel();
+ public void destroy();
+}
\ No newline at end of file
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/BookingList.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/BookingListAction.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/BookingListAction.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/BookingListAction.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,76 @@
+//$Id: BookingListAction.java,v 1.23 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import static javax.ejb.TransactionAttributeType.REQUIRES_NEW;
+import static org.jboss.seam.ScopeType.SESSION;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.ejb.TransactionAttribute;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Logger;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Observer;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.datamodel.DataModel;
+import org.jboss.seam.annotations.datamodel.DataModelSelection;
+import org.jboss.seam.annotations.security.Restrict;
+import org.jboss.seam.faces.FacesMessages;
+import org.jboss.seam.log.Log;
+
+@Stateful
+@Scope(SESSION)
+@Name("bookingList")
+(a)Restrict("#{identity.loggedIn}")
+@TransactionAttribute(REQUIRES_NEW)
+public class BookingListAction implements BookingList, Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ @PersistenceContext
+ private EntityManager em;
+
+ @In
+ private User user;
+
+ @DataModel
+ private List<Booking> bookings;
+ @DataModelSelection
+ private Booking booking;
+
+ @Logger
+ private Log log;
+
+ @Factory
+ @Observer("bookingConfirmed")
+ public void getBookings()
+ {
+ bookings = em.createQuery("select b from Booking b where b.user.username =
:username order by b.checkinDate")
+ .setParameter("username", user.getUsername())
+ .getResultList();
+ }
+
+ public void cancel()
+ {
+ log.info("Cancel booking: #{bookingList.booking.id} for
#{user.username}");
+ Booking cancelled = em.find(Booking.class, booking.getId());
+ if (cancelled!=null) em.remove( cancelled );
+ getBookings();
+ FacesMessages.instance().add("Booking cancelled for confirmation number
#{bookingList.booking.id}");
+ }
+
+ public Booking getBooking()
+ {
+ return booking;
+ }
+
+ @Remove
+ public void destroy() {}
+}
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/BookingListAction.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/ChangePassword.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/ChangePassword.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/ChangePassword.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,16 @@
+//$Id: ChangePassword.java,v 1.5 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import javax.ejb.Local;
+
+@Local
+public interface ChangePassword
+{
+ public void changePassword();
+ public boolean isChanged();
+
+ public String getVerify();
+ public void setVerify(String verify);
+
+ public void destroy();
+}
\ No newline at end of file
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/ChangePassword.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/ChangePasswordAction.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/ChangePasswordAction.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/ChangePasswordAction.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,73 @@
+//$Id: ChangePasswordAction.java,v 1.22 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import static org.jboss.seam.ScopeType.EVENT;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.security.Restrict;
+import org.jboss.seam.faces.FacesMessages;
+
+@Stateful
+@Scope(EVENT)
+@Name("changePassword")
+(a)Restrict("#{identity.loggedIn}")
+public class ChangePasswordAction implements ChangePassword
+{
+ @In @Out
+ private User user;
+
+ @PersistenceContext
+ private EntityManager em;
+
+ private String verify;
+
+ private boolean changed;
+
+ @In
+ private FacesMessages facesMessages;
+
+ public void changePassword()
+ {
+ if ( user.getPassword().equals(verify) )
+ {
+ user = em.merge(user);
+ facesMessages.add("Password updated");
+ changed = true;
+ }
+ else
+ {
+ facesMessages.addToControl("verify", "Re-enter new
password");
+ revertUser();
+ verify=null;
+ }
+ }
+
+ public boolean isChanged()
+ {
+ return changed;
+ }
+
+ private void revertUser()
+ {
+ user = em.find(User.class, user.getUsername());
+ }
+ public String getVerify()
+ {
+ return verify;
+ }
+ public void setVerify(String verify)
+ {
+ this.verify = verify;
+ }
+
+ @Remove
+ public void destroy() {}
+}
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/ChangePasswordAction.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Hotel.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Hotel.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Hotel.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,114 @@
+//$Id: Hotel.java,v 1.13 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+import org.hibernate.validator.Length;
+import org.hibernate.validator.NotNull;
+import org.jboss.seam.annotations.Name;
+
+@Entity
+@Name("hotel")
+public class Hotel implements Serializable
+{
+ private Long id;
+ private String name;
+ private String address;
+ private String city;
+ private String state;
+ private String zip;
+ private String country;
+ private BigDecimal price;
+
+ @Id @GeneratedValue
+ public Long getId()
+ {
+ return id;
+ }
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ @Length(max=50) @NotNull
+ public String getName()
+ {
+ return name;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ @Length(max=100) @NotNull
+ public String getAddress()
+ {
+ return address;
+ }
+ public void setAddress(String address)
+ {
+ this.address = address;
+ }
+
+ @Length(max=40) @NotNull
+ public String getCity()
+ {
+ return city;
+ }
+ public void setCity(String city)
+ {
+ this.city = city;
+ }
+
+ @Length(min=4, max=6) @NotNull
+ public String getZip()
+ {
+ return zip;
+ }
+ public void setZip(String zip)
+ {
+ this.zip = zip;
+ }
+
+ @Length(min=2, max=10) @NotNull
+ public String getState()
+ {
+ return state;
+ }
+ public void setState(String state)
+ {
+ this.state = state;
+ }
+
+ @Length(min=2, max=40) @NotNull
+ public String getCountry()
+ {
+ return country;
+ }
+ public void setCountry(String country)
+ {
+ this.country = country;
+ }
+
+ @Column(precision=6, scale=2)
+ public BigDecimal getPrice()
+ {
+ return price;
+ }
+ public void setPrice(BigDecimal price)
+ {
+ this.price = price;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "Hotel(" + name + "," + address + "," + city +
"," + zip + ")";
+ }
+}
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Hotel.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelBooking.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelBooking.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelBooking.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,22 @@
+//$Id: HotelBooking.java,v 1.14 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import javax.ejb.Local;
+
+@Local
+public interface HotelBooking
+{
+ public void selectHotel(Hotel selectedHotel);
+
+ public void bookHotel();
+
+ public void setBookingDetails();
+ public boolean isBookingValid();
+
+ public void confirm();
+
+ public void cancel();
+
+ public void destroy();
+
+}
\ No newline at end of file
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelBooking.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelBookingAction.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelBookingAction.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelBookingAction.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,108 @@
+//$Id: HotelBookingAction.java,v 1.53 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import static javax.persistence.PersistenceContextType.EXTENDED;
+
+import java.util.Calendar;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.jboss.seam.annotations.Begin;
+import org.jboss.seam.annotations.End;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Logger;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.security.Restrict;
+import org.jboss.seam.core.Events;
+import org.jboss.seam.faces.FacesMessages;
+import org.jboss.seam.log.Log;
+
+@Stateful
+@Name("hotelBooking")
+(a)Restrict("#{identity.loggedIn}")
+public class HotelBookingAction implements HotelBooking
+{
+
+ @PersistenceContext(type=EXTENDED)
+ private EntityManager em;
+
+ @In
+ private User user;
+
+ @In(required=false) @Out
+ private Hotel hotel;
+
+ @In(required=false)
+ @Out(required=false)
+ private Booking booking;
+
+ @In
+ private FacesMessages facesMessages;
+
+ @In
+ private Events events;
+
+ @Logger
+ private Log log;
+
+ private boolean bookingValid;
+
+ @Begin
+ public void selectHotel(Hotel selectedHotel)
+ {
+ hotel = em.merge(selectedHotel);
+ }
+
+ public void bookHotel()
+ {
+ booking = new Booking(hotel, user);
+ Calendar calendar = Calendar.getInstance();
+ booking.setCheckinDate( calendar.getTime() );
+ calendar.add(Calendar.DAY_OF_MONTH, 1);
+ booking.setCheckoutDate( calendar.getTime() );
+ }
+
+ public void setBookingDetails()
+ {
+ Calendar calendar = Calendar.getInstance();
+ calendar.add(Calendar.DAY_OF_MONTH, -1);
+ if ( booking.getCheckinDate().before( calendar.getTime() ) )
+ {
+ facesMessages.addToControl("checkinDate", "Check in date must be
a future date");
+ bookingValid=false;
+ }
+ else if ( !booking.getCheckinDate().before( booking.getCheckoutDate() ) )
+ {
+ facesMessages.addToControl("checkoutDate", "Check out date must
be later than check in date");
+ bookingValid=false;
+ }
+ else
+ {
+ bookingValid=true;
+ }
+ }
+
+ public boolean isBookingValid()
+ {
+ return bookingValid;
+ }
+
+ @End
+ public void confirm()
+ {
+ em.persist(booking);
+ facesMessages.add("Thank you, #{user.name}, your confimation number for
#{hotel.name} is #{booking.id}");
+ log.info("New booking: #{booking.id} for #{user.username}");
+ events.raiseTransactionSuccessEvent("bookingConfirmed");
+ }
+
+ @End
+ public void cancel() {}
+
+ @Remove
+ public void destroy() {}
+}
\ No newline at end of file
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelBookingAction.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelSearching.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelSearching.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelSearching.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,23 @@
+//$Id: HotelSearching.java,v 1.12 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import javax.ejb.Local;
+
+@Local
+public interface HotelSearching
+{
+ public int getPageSize();
+ public void setPageSize(int pageSize);
+
+ public String getSearchString();
+ public void setSearchString(String searchString);
+
+ public String getSearchPattern();
+
+ public void find();
+ public void nextPage();
+ public boolean isNextPageAvailable();
+
+ public void destroy();
+
+}
\ No newline at end of file
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelSearching.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelSearchingAction.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelSearchingAction.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelSearchingAction.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,86 @@
+//$Id: HotelSearchingAction.java,v 1.20 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import java.util.List;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Factory;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.datamodel.DataModel;
+import org.jboss.seam.annotations.security.Restrict;
+
+@Stateful
+@Name("hotelSearch")
+(a)Scope(ScopeType.SESSION)
+(a)Restrict("#{identity.loggedIn}")
+public class HotelSearchingAction implements HotelSearching
+{
+
+ @PersistenceContext
+ private EntityManager em;
+
+ private String searchString;
+ private int pageSize = 10;
+ private int page;
+
+ @DataModel
+ private List<Hotel> hotels;
+
+ public void find()
+ {
+ page = 0;
+ queryHotels();
+ }
+ public void nextPage()
+ {
+ page++;
+ queryHotels();
+ }
+
+ private void queryHotels()
+ {
+ hotels = em.createQuery("select h from Hotel h where lower(h.name) like
#{pattern} or lower(h.city) like #{pattern} or lower(h.zip) like #{pattern} or
lower(h.address) like #{pattern}")
+ .setMaxResults(pageSize)
+ .setFirstResult( page * pageSize )
+ .getResultList();
+ }
+
+ public boolean isNextPageAvailable()
+ {
+ return hotels!=null && hotels.size()==pageSize;
+ }
+
+ public int getPageSize() {
+ return pageSize;
+ }
+
+ public void setPageSize(int pageSize) {
+ this.pageSize = pageSize;
+ }
+
+ @Factory(value="pattern", scope=ScopeType.EVENT)
+ public String getSearchPattern()
+ {
+ return searchString==null ?
+ "%" : '%' + searchString.toLowerCase().replace('*',
'%') + '%';
+ }
+
+ public String getSearchString()
+ {
+ return searchString;
+ }
+
+ public void setSearchString(String searchString)
+ {
+ this.searchString = searchString;
+ }
+
+ @Remove
+ public void destroy() {}
+}
\ No newline at end of file
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/HotelSearchingAction.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Register.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Register.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Register.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,16 @@
+//$Id: Register.java,v 1.5 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import javax.ejb.Local;
+
+@Local
+public interface Register
+{
+ public void register();
+ public void invalid();
+ public String getVerify();
+ public void setVerify(String verify);
+ public boolean isRegistered();
+
+ public void destroy();
+}
\ No newline at end of file
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/Register.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/RegisterAction.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/RegisterAction.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/RegisterAction.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,80 @@
+//$Id: RegisterAction.java,v 1.23 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import static org.jboss.seam.ScopeType.EVENT;
+
+import java.util.List;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.faces.FacesMessages;
+
+@Stateful
+@Scope(EVENT)
+@Name("register")
+public class RegisterAction implements Register
+{
+ @In
+ private User user;
+
+ @PersistenceContext
+ private EntityManager em;
+
+ @In
+ private FacesMessages facesMessages;
+
+ private String verify;
+
+ private boolean registered;
+
+ public void register()
+ {
+ if ( user.getPassword().equals(verify) )
+ {
+ List existing = em.createQuery("select u.username from User u where
u.username=#{user.username}")
+ .getResultList();
+ if (existing.size()==0)
+ {
+ em.persist(user);
+ facesMessages.add("Successfully registered as #{user.username}");
+ registered = true;
+ }
+ else
+ {
+ facesMessages.addToControl("username", "Username
#{user.username} already exists");
+ }
+ }
+ else
+ {
+ facesMessages.addToControl("verify", "Re-enter your
password");
+ verify=null;
+ }
+ }
+
+ public void invalid()
+ {
+ facesMessages.add("Please try again");
+ }
+
+ public boolean isRegistered()
+ {
+ return registered;
+ }
+ public String getVerify()
+ {
+ return verify;
+ }
+ public void setVerify(String verify)
+ {
+ this.verify = verify;
+ }
+
+ @Remove
+ public void destroy() {}
+}
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/RegisterAction.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/User.java
===================================================================
---
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/User.java
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/User.java 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,76 @@
+//$Id: User.java,v 1.8 2007/06/27 00:06:49 gavin Exp $
+package org.jboss.seam.example.booking;
+
+import static org.jboss.seam.ScopeType.SESSION;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.hibernate.validator.Length;
+import org.hibernate.validator.NotNull;
+import org.hibernate.validator.Pattern;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+
+@Entity
+@Name("user")
+@Scope(SESSION)
+@Table(name="Customer")
+public class User implements Serializable
+{
+ private String username;
+ private String password;
+ private String name;
+
+ public User(String name, String password, String username)
+ {
+ this.name = name;
+ this.password = password;
+ this.username = username;
+ }
+
+ public User() {}
+
+ @NotNull
+ @Length(max=100)
+ public String getName()
+ {
+ return name;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ @NotNull
+ @Length(min=5, max=15)
+ public String getPassword()
+ {
+ return password;
+ }
+ public void setPassword(String password)
+ {
+ this.password = password;
+ }
+
+ @Id
+ @Length(min=4, max=15)
+ @Pattern(regex="^\\w*$", message="not a valid username")
+ public String getUsername()
+ {
+ return username;
+ }
+ public void setUsername(String username)
+ {
+ this.username = username;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "User(" + username + ")";
+ }
+}
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/java/org/jboss/seam/example/booking/User.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added: trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/ejb-jar.xml
===================================================================
--- trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/ejb-jar.xml
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/ejb-jar.xml 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar
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/ejb-jar_3_0.xsd"
+ version="3.0">
+
+ <interceptors>
+ <interceptor>
+
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+ </interceptor>
+ </interceptors>
+
+ <assembly-descriptor>
+ <interceptor-binding>
+ <ejb-name>*</ejb-name>
+
<interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class>
+ </interceptor-binding>
+ </assembly-descriptor>
+
+</ejb-jar>
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/ejb-jar.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added:
trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/persistence.xml
===================================================================
--- trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/persistence.xml
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/persistence.xml 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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_1_0.xsd"
+ version="1.0">
+ <persistence-unit name="bookingDatabase">
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <jta-data-source>java:/bookingPortletDatasource</jta-data-source>
+ <properties>
+ <property name="hibernate.hbm2ddl.auto"
value="create-drop"/>
+ <property name="hibernate.show_sql" value="true"/>
+ <!-- These are the default for JBoss EJB3, but not for HEM: -->
+ <property name="hibernate.cache.provider_class"
value="org.hibernate.cache.HashtableCacheProvider"/>
+ <property name="hibernate.transaction.manager_lookup_class"
value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
+ </properties>
+ </persistence-unit>
+</persistence>
\ No newline at end of file
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/resources/META-INF/persistence.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added: trunk/samples/seamPortletEar/seamBooking/src/main/resources/booking1-ds.xml
===================================================================
--- trunk/samples/seamPortletEar/seamBooking/src/main/resources/booking1-ds.xml
(rev 0)
+++ trunk/samples/seamPortletEar/seamBooking/src/main/resources/booking1-ds.xml 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE datasources
+ PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
+
+<datasources>
+ <local-tx-datasource>
+ <jndi-name>bookingPortletDatasource</jndi-name>
+ <connection-url>jdbc:hsqldb:.</connection-url>
+ <driver-class>org.hsqldb.jdbcDriver</driver-class>
+ <user-name>sa</user-name>
+ <password></password>
+ </local-tx-datasource>
+</datasources>
+
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/resources/booking1-ds.xml
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Revision Author
Added: trunk/samples/seamPortletEar/seamBooking/src/main/resources/components.properties
===================================================================
--- trunk/samples/seamPortletEar/seamBooking/src/main/resources/components.properties
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/resources/components.properties 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1 @@
+jndiPattern #{ejbName}/local
\ No newline at end of file
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/resources/components.properties
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Added: trunk/samples/seamPortletEar/seamBooking/src/main/resources/import.sql
===================================================================
--- trunk/samples/seamPortletEar/seamBooking/src/main/resources/import.sql
(rev 0)
+++ trunk/samples/seamPortletEar/seamBooking/src/main/resources/import.sql 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,22 @@
+insert into Customer (username, password, name) values ('gavin',
'foobar', 'Gavin King')
+insert into Customer (username, password, name) values ('demo', 'demo',
'Demo User')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (1, 120,
'Marriott Courtyard', 'Tower Place, Buckhead', 'Atlanta',
'GA', '30305', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (2, 180,
'Doubletree', 'Tower Place, Buckhead', 'Atlanta', 'GA',
'30305', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (3, 450,
'W Hotel', 'Union Square, Manhattan', 'NY', 'NY',
'10011', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (4, 450,
'W Hotel', 'Lexington Ave, Manhattan', 'NY', 'NY',
'10011', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (5, 250,
'Hotel Rouge', '1315 16th Street NW', 'Washington', 'DC',
'20036', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (6, 300,
'70 Park Avenue Hotel', '70 Park Avenue', 'NY', 'NY',
'10011', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (8, 300,
'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL',
'33131', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (9, 80,
'Sea Horse Inn', '2106 N Clairemont Ave', 'Eau Claire',
'WI', '54703', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (10, 90,
'Super 8 Eau Claire Campus Area', '1151 W Macarthur Ave', 'Eau
Claire', 'WI', '54701', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (11, 160,
'Marriot Downtown', '55 Fourth Street', 'San Francisco',
'CA', '94103', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (12, 200,
'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona',
'Catalunya', '08019', 'Spain')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (13, 210,
'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '',
'63405', 'Israel')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (14, 240,
'InterContinental Tokyo Bay', 'Takeshiba Pier', 'Tokyo',
'', '105', 'Japan')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (15, 130,
'Hotel Beaulac', ' Esplanade L�opold-Robert 2', 'Neuchatel',
'', '2000', 'Switzerland')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (16, 140,
'Conrad Treasury Place', 'William & George Streets',
'Brisbane', 'QLD', '4001', 'Australia')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (17, 230,
'Ritz Carlton', '1228 Sherbrooke St', 'West Montreal',
'Quebec', 'H3G1H6', 'Canada')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (18, 460,
'Ritz Carlton', 'Peachtree Rd, Buckhead', 'Atlanta', 'GA',
'30326', 'USA')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (19, 220,
'Swissotel', '68 Market Street', 'Sydney', 'NSW',
'2000', 'Australia')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (20, 250,
'Meli� White House', 'Albany Street', 'Regents Park London',
'', 'NW13UP', 'Great Britain')
+insert into Hotel (id, price, name, address, city, state, zip, country) values (21, 210,
'Hotel Allegro', '171 West Randolph Street', 'Chicago',
'IL', '60601', 'USA')
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/resources/import.sql
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/samples/seamPortletEar/seamBooking/src/main/resources/messages.properties
===================================================================
--- trunk/samples/seamPortletEar/seamBooking/src/main/resources/messages.properties
(rev 0)
+++
trunk/samples/seamPortletEar/seamBooking/src/main/resources/messages.properties 2007-11-02
22:37:25 UTC (rev 3742)
@@ -0,0 +1,50 @@
+javax.faces.component.UIInput.CONVERSION=value could not be converted to the expected
type
+javax.faces.component.UIInput.REQUIRED=value is required
+javax.faces.component.UIInput.REQUIRED_detail=value is required
+javax.faces.component.UIInput.UPDATE=an error occurred when processing your submitted
information
+javax.faces.component.UISelectOne.INVALID=value is not valid
+javax.faces.component.UISelectMany.INVALID=value is not valid
+
+javax.faces.converter.BigDecimalConverter.DECIMAL=value must be a number
+javax.faces.converter.BigDecimalConverter.DECIMAL_detail=value must be a signed decimal
number consisting of zero or more digits, optionally followed by a decimal point and
fraction, eg. {1}
+javax.faces.converter.BigIntegerConverter.BIGINTEGER=value must be a number
+javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail=value must be a signed
integer number consisting of zero or more digits
+javax.faces.converter.BooleanConverter.BOOLEAN=value must be true or false
+javax.faces.converter.BooleanConverter.BOOLEAN_detail=value must be true or false (any
value other than true will evaluate to false)
+javax.faces.converter.ByteConverter.BYTE=value must be a number between 0 and 255
+javax.faces.converter.ByteConverter.BYTE_detail=value must be a number between 0 and 255
+javax.faces.converter.CharacterConverter.CHARACTER=value must be a character
+javax.faces.converter.CharacterConverter.CHARACTER_detail=value must be a valid ASCII
character
+javax.faces.convert.DateTimeConverter.CONVERSION value must be a datetime
+javax.faces.convert.DateTimeConverter.CONVERSION_detail value must be a datetime
+javax.faces.converter.DateTimeConverter.DATE=value must be a date
+javax.faces.converter.DateTimeConverter.DATE_detail=value must be a date, eg. {1}
+javax.faces.converter.DateTimeConverter.TIME=value must be a time
+javax.faces.converter.DateTimeConverter.TIME_detail=value must be a time, eg. {1}
+javax.faces.converter.DateTimeConverter.DATETIME=value must be a date and time
+javax.faces.converter.DateTimeConverter.DATETIME_detail=value must be a date and time,
eg. {1}
+javax.faces.converter.DateTimeConverter.PATTERN_TYPE=a pattern or type attribute must be
specified to convert the value
+javax.faces.converter.DoubleConverter.DOUBLE=value must be a number
+javax.faces.converter.DoubleConverter.DOUBLE_detail=value must be a number between
4.9E-324 and 1.7976931348623157E308
+javax.faces.converter.EnumConverter.ENUM=value must be convertible to an enum
+javax.faces.converter.EnumConverter.ENUM_detail=value must be convertible to an enum or
from the enum that contains the constant {1}
+javax.faces.converter.EnumConverter.ENUM_NO_CLASS=value must be convertible to an enum or
from the enum, but no enum class provided
+javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail=value must be convertible to an
enum or from the enum, but no enum class provided
+javax.faces.converter.FloatConverter.FLOAT=value must be a number
+javax.faces.converter.FloatConverter.FLOAT_detail=value must be a number between 1.4E-45
and 3.4028235E38
+javax.faces.converter.IntegerConverter.INTEGER=value must be a number
+javax.faces.converter.IntegerConverter.INTEGER_detail=value must be a number between
-2147483648 and 2147483647
+javax.faces.converter.LongConverter.LONG=value must be a number
+javax.faces.converter.LongConverter.LONG_detail=must be a number between
-9223372036854775808 and 9223372036854775807
+javax.faces.converter.NumberConverter.CURRENCY=value must be a currency amount
+javax.faces.converter.NumberConverter.CURRENCY_detail=value must be a currency amount,
eg. {1}
+javax.faces.converter.NumberConverter.PERCENT=value must be a percentage amount
+javax.faces.converter.NumberConverter.PERCENT_detail=value must be a percentage amount,
eg. {1}
+javax.faces.converter.NumberConverter.NUMBER=value must be a number
+javax.faces.converter.NumberConverter.NUMBER_detail=value must be a number
+javax.faces.converter.NumberConverter.PATTERN=value must be a number
+javax.faces.converter.NumberConverter.PATTERN_detail=value must be a number
+javax.faces.converter.ShortConverter.SHORT=value must be a number
+javax.faces.converter.ShortConverter.SHORT_detail=value must be a number between -32768
and 32767
+
+
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/resources/messages.properties
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/samples/seamPortletEar/seamBooking/src/main/resources/seam.properties
===================================================================
Property changes on:
trunk/samples/seamPortletEar/seamBooking/src/main/resources/seam.properties
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ text/plain
Modified: trunk/samples/seamPortletEar/seamBookingPortlet/pom.xml
===================================================================
--- trunk/samples/seamPortletEar/seamBookingPortlet/pom.xml 2007-11-02 21:06:30 UTC (rev
3741)
+++ trunk/samples/seamPortletEar/seamBookingPortlet/pom.xml 2007-11-02 22:37:25 UTC (rev
3742)
@@ -3,15 +3,12 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
- <artifactId>samples</artifactId>
- <groupId>org.richfaces</groupId>
+ <artifactId>seamPortletEar</artifactId>
+ <groupId>org.richfaces.samples</groupId>
<version>3.2.0-SNAPSHOT</version>
</parent>
- <properties>
- <seam>2.0.0.GA</seam>
- </properties>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.richfaces.samples</groupId>
+ <groupId>org.richfaces.samples.seamPortletEar</groupId>
<artifactId>seamBookingPortlet</artifactId>
<packaging>war</packaging>
<name>seamBookingPortlet Maven Webapp</name>
@@ -82,22 +79,19 @@
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam</artifactId>
- <version>${seam}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam-ui</artifactId>
- <version>${seam}</version>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam-ioc</artifactId>
- <version>${seam}</version>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jboss-seam-debug</artifactId>
- <version>${seam}</version>
</dependency>
<dependency>
<groupId>javax.portlet</groupId>
@@ -126,6 +120,12 @@
<version>3.2.0-SNAPSHOT</version>
</dependency>
<dependency>
+ <groupId>org.richfaces.framework</groupId>
+ <artifactId>richfaces-api</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>1.2_05</version>
@@ -144,11 +144,5 @@
<scope>provided</scope>
</dependency>
</dependencies>
- <repositories>
- <repository>
- <id>repository.jboss.com</id>
- <
url>http://repository.jboss.com/maven2</url>
- </repository>
- </repositories>
</project>
Modified:
trunk/samples/seamPortletEar/seamBookingPortlet/src/main/webapp/WEB-INF/components.xml
===================================================================
---
trunk/samples/seamPortletEar/seamBookingPortlet/src/main/webapp/WEB-INF/components.xml 2007-11-02
21:06:30 UTC (rev 3741)
+++
trunk/samples/seamPortletEar/seamBookingPortlet/src/main/webapp/WEB-INF/components.xml 2007-11-02
22:37:25 UTC (rev 3742)
@@ -1,39 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<components
xmlns="http://jboss.com/products/seam/components"
-
xmlns:core="http://jboss.com/products/seam/core"
-
xmlns:security="http://jboss.com/products/seam/security"
-
xmlns:persistence="http://jboss.com/products/seam/persistence"
-
xmlns:transaction="http://jboss.com/products/seam/transaction"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://jboss.com/products/seam/core
http://jboss.com/products/seam/core-2.0.xsd
-
http://jboss.com/products/seam/persistence
http://jboss.com/products/seam/persistence-2.0.xsd
+
xmlns:core="http://jboss.com/products/seam/core"
+
xmlns:security="http://jboss.com/products/seam/security"
+
xmlns:transaction="http://jboss.com/products/seam/transaction"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation=
+ "http://jboss.com/products/seam/core
http://jboss.com/products/seam/core-2.0.xsd
http://jboss.com/products/seam/transaction
http://jboss.com/products/seam/transaction-2.0.xsd
http://jboss.com/products/seam/security
http://jboss.com/products/seam/security-2.0.xsd
http://jboss.com/products/seam/components
http://jboss.com/products/seam/components-2.0.xsd">
- <core:init jndi-pattern="seamBookingPortlet/#{ejbName}/local"
- debug="true" />
+ <core:init jndi-pattern="seamEAR/#{ejbName}/local"
debug="true"/>
- <core:manager conversation-timeout="120000"
- concurrent-request-timeout="500" conversation-id-parameter="cid"
/>
- <!-- Use the Seam-started PU or look it up from JNDI if running in Embeddable
JBoss -->
- <persistence:entity-manager-factory installed="true"
- name="bookingEntityManagerFactory"
-
persistence-unit-name="bookingDatabase"/>
-
- <persistence:managed-persistence-context name="entityManager"
- auto-create="true"
-
entity-manager-factory="#{bookingEntityManagerFactory}"
-
persistence-unit-jndi-name="java:/entityManagerFactories/bookingDatabase">
- </persistence:managed-persistence-context>
-
- <!-- Enabled in embeddable JBoss container -->
- <!--<transaction:ejb-transaction installed="false" />
- -->
- <transaction:ejb-transaction />
-
-
- <security:identity
- authenticate-method="#{authenticator.authenticate}" />
+ <core:manager conversation-timeout="120000"
+ concurrent-request-timeout="500"
+ conversation-id-parameter="cid"/>
+ <transaction:ejb-transaction/>
+
+ <security:identity
authenticate-method="#{authenticator.authenticate}"/>
+
</components>