Seam SVN: r10761 - in examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking: reference and 1 other directory.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-04 00:33:25 -0400 (Mon, 04 May 2009)
New Revision: 10761
Added:
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CalendarReferenceProducer.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardExpiryYears.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/Month.java
Log:
use producer methods for reference data to back <f:selectItems>
Added: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CalendarReferenceProducer.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CalendarReferenceProducer.java (rev 0)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CalendarReferenceProducer.java 2009-05-04 04:33:25 UTC (rev 10761)
@@ -0,0 +1,59 @@
+package org.jboss.seam.examples.booking.reference;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Locale;
+import javax.annotation.Named;
+import javax.context.ConversationScoped;
+import javax.inject.Current;
+import javax.inject.Produces;
+
+/**
+ * Produces calendar-oriented reference data to be used in user-interface forms.
+ * The user's locale is honored when producing name-based data.
+ *
+ * @author Dan Allen
+ */
+public class CalendarReferenceProducer {
+
+ @Current Locale locale;
+
+ public
+ @Produces
+ @Named
+ @ConversationScoped
+ List<Month> getMonths()
+ {
+ List<Month> months = new ArrayList<Month>(12);
+ DateFormat longNameFormat = new SimpleDateFormat("MMMM", locale);
+ DateFormat shortNameFormat = new SimpleDateFormat("MMM", locale);
+ Calendar cal = Calendar.getInstance();
+ for (int m = 0; m < 12; m++)
+ {
+ cal.set(Calendar.MONTH, m);
+ months.add(new Month(m, longNameFormat.format(cal.getTime()), shortNameFormat.format(cal.getTime())));
+ }
+
+ return months;
+ }
+
+ public
+ @Produces
+ @Named
+ @ConversationScoped
+ @CreditCardExpiryYears
+ List<Integer> getCreditCardExpiryYears()
+ {
+ List<Integer> years = new ArrayList<Integer>(8);
+ int currentYear = Calendar.getInstance().get(Calendar.YEAR);
+ for (int y = currentYear; y <= (currentYear + 8); y++)
+ {
+ years.add(y);
+ }
+
+ return years;
+ }
+}
Added: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardExpiryYears.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardExpiryYears.java (rev 0)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardExpiryYears.java 2009-05-04 04:33:25 UTC (rev 10761)
@@ -0,0 +1,33 @@
+package org.jboss.seam.examples.booking.reference;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+import javax.inject.BindingType;
+
+/**
+ * A binding type attached to a collection of years
+ * indicating the set is limited to the possible
+ * values for a credit card expiry date.
+ *
+ * @author Dan Allen
+ */
+public
+@Target(
+{
+ METHOD, PARAMETER, FIELD
+})
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@Inherited
+@interface CreditCardExpiryYears
+{
+}
Added: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/Month.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/Month.java (rev 0)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/Month.java 2009-05-04 04:33:25 UTC (rev 10761)
@@ -0,0 +1,49 @@
+package org.jboss.seam.examples.booking.reference;
+
+/**
+ * A simple Java bean representing a month. This
+ * bean assumes that the names it is provided
+ * have already been localized.
+ *
+ * @author Dan Allen
+ */
+public class Month {
+
+ private int index;
+ private String name;
+ private String shortName;
+
+ public Month() {}
+
+ public Month(int index, String name, String shortName)
+ {
+ this.index = index;
+ this.name = name;
+ this.shortName = shortName;
+ }
+
+ public int getIndex()
+ {
+ return index;
+ }
+
+ public int getNumber()
+ {
+ return index + 1;
+ }
+
+ public String getLongName()
+ {
+ return name;
+ }
+
+ public String getShortName()
+ {
+ return shortName;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+}
15 years, 9 months
Seam SVN: r10760 - examples/trunk/booking/ejb-jar/src/main/resources.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-04 00:33:05 -0400 (Mon, 04 May 2009)
New Revision: 10760
Modified:
examples/trunk/booking/ejb-jar/src/main/resources/import.sql
Log:
correct hotel name
Modified: examples/trunk/booking/ejb-jar/src/main/resources/import.sql
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/resources/import.sql 2009-05-03 19:08:31 UTC (rev 10759)
+++ examples/trunk/booking/ejb-jar/src/main/resources/import.sql 2009-05-04 04:33:05 UTC (rev 10760)
@@ -23,6 +23,6 @@
insert into hotel (id, price, stars, name, address, city, state, zip, country) values (19, 145, 4, 'Swissotel Sydney', '68 Market Street', 'Sydney', 'NSW', '2000', 'AU')
insert into hotel (id, price, stars, name, address, city, state, zip, country) values (20, 178, 4, 'Meliá White House', 'Albany Street Regents Park', 'London', '', 'NW13UP', 'GB')
insert into hotel (id, price, stars, name, address, city, state, zip, country) values (21, 159, 3, 'Hotel Allegro', '171 W Randolph Street', 'Chicago', 'IL', '60601', 'USA')
-insert into hotel (id, price, stars, name, address, city, state, zip, country) values (22, 296, 5, 'Caesar''s Palace', '3570 Las Vegas Blvd S', 'Las Vegas', 'NV', '89109', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (22, 296, 5, 'Caesars Palace', '3570 Las Vegas Blvd S', 'Las Vegas', 'NV', '89109', 'USA')
insert into hotel (id, price, stars, name, address, city, state, zip, country) values (23, 300, 4, 'Mandalay Bay Resort & Casino', '3950 Las Vegas Blvd S', 'Las Vegas', 'NV', '89119', 'USA')
insert into hotel (id, price, stars, name, address, city, state, zip, country) values (24, 100, 2, 'Hotel Cammerpoorte', 'Nationalestraat 38-40', 'Antwerp', '', '2000', 'BE')
15 years, 9 months
Seam SVN: r10759 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-03 15:08:31 -0400 (Sun, 03 May 2009)
New Revision: 10759
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Concepts.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Concepts.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Concepts.po 2009-05-03 06:31:11 UTC (rev 10758)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Concepts.po 2009-05-03 19:08:31 UTC (rev 10759)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-18 15:00+0000\n"
-"PO-Revision-Date: 2009-04-25 20:06+0100\n"
+"PO-Revision-Date: 2009-05-03 21:08+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -526,13 +526,13 @@
#: Concepts.xml:412
#, no-c-format
msgid "Javabeans may be used just like a stateless or stateful session bean. However, they do not provide the functionality of a session bean (declarative transaction demarcation, declarative security, efficient clustered state replication, EJB 3.0 persistence, timeout methods, etc)."
-msgstr ""
+msgstr "I Javabean possono essere usati solo come bean di sessione stateless o stateful. Comunque essi non forniscono la funzionalità di un session bean (demarcazione dichiarativa delle transazioni, sicurezza dichiarativa, replicazione clustered efficiente dello stato, persistenza EJB 3.0, metodi timeout, ecc.)"
#. Tag: para
#: Concepts.xml:417
#, no-c-format
msgid "In a later chapter, we show you how to use Seam and Hibernate without an EJB container. In this use case, components are JavaBeans instead of session beans. Note, however, that in many application servers it is somewhat less efficient to cluster conversation or session scoped Seam JavaBean components than it is to cluster stateful session bean components."
-msgstr ""
+msgstr "In un capitolo successivo si mostrerà come impiegare Seam ed Hibernate senza un container EJB. In questo caso i componenti sono JavaBean invece di session bean. Si noti comunque che in molti application server è talvolta meno efficiente clusterizzare la conversazione od i componenti Seam Javabean con scope sessione piuttosto che clusterizzare i componenti session bean stateful. "
#. Tag: para
#: Concepts.xml:423
@@ -544,7 +544,7 @@
#: Concepts.xml:426
#, no-c-format
msgid "Concurrent requests to session-scoped JavaBeans are always serialized by Seam."
-msgstr ""
+msgstr "Le richieste concorrenti a Javabean con scope sessione vengono sempre serializzate da Seam."
#. Tag: para
#: Concepts.xml:429
@@ -562,19 +562,19 @@
#: Concepts.xml:438
#, no-c-format
msgid "Message-driven beans may function as a seam component. However, message-driven beans are called quite differently to other Seam components - instead of invoking them via the context variable, they listen for messages sent to a JMS queue or topic."
-msgstr ""
+msgstr "I bean message-driven possono funzionare come componenti Seam. Comunque i bean message-driven sono chiamati in modo diverso rispetto agli altri componenti Seam - invece di invocarli tramite variabile di contesto, essi ascoltano i messaggi inviati ad una coda o topic JMS."
#. Tag: para
#: Concepts.xml:443
#, no-c-format
msgid "Message-driven beans may not be bound to a Seam context. Nor do they have access to the session or conversation state of their \"caller\". However, they do support bijection and some other Seam functionality."
-msgstr ""
+msgstr "I bean message-driven possono non essere associati ad un contesto Seam. E possono non avere accesso allo stato di sessione o conversazione del loro \"chiamante\". Comunque essi non supportano la bijection e altre funzionalità di Seam."
#. Tag: para
#: Concepts.xml:448
#, no-c-format
msgid "Message-driven beans are never instantiated by the application. They are instantiated by the EJB container when a message is received."
-msgstr ""
+msgstr "I bean message-driven non vengono mai istanziati dall'applicazione. Essi vengono istanziati dal container EJB quando viene ricevuto un messaggio."
#. Tag: title
#: Concepts.xml:455
@@ -586,7 +586,7 @@
#: Concepts.xml:456
#, no-c-format
msgid "In order to perform its magic (bijection, context demarcation, validation, etc), Seam must intercept component invocations. For JavaBeans, Seam is in full control of instantiation of the component, and no special configuration is needed. For entity beans, interception is not required since bijection and context demarcation are not defined. For session beans, we must register an EJB interceptor for the session bean component. We could use an annotation, as follows:"
-msgstr ""
+msgstr "Per eseguire le sue magie (bijection, demarcazione di contesto, validazione, ecc.) Seam deve intercettare le invocazioni dei componenti. Per i JavaBean, Seam è nel pieno controllo dell'istanziazione del componente e non ha bisogno di alcuna speciale configurazione. Per gli entity bean, l'intercettazione non è richiesta poiché bijection e demarcazione di contesto non sono definite. Per i session bean occorre registrare un interceptor EJB per il componente bean di sessione. Si può impiegare un'annotazione come segue:"
#. Tag: programlisting
#: Concepts.xml:464
@@ -608,7 +608,7 @@
#: Concepts.xml:466
#, no-c-format
msgid "But a much better way is to define the interceptor in <literal>ejb-jar.xml</literal>."
-msgstr ""
+msgstr "Ma il miglio modo è definire l'interceptor in <literal>ejb-jar.xml</literal>."
#. Tag: programlisting
#: Concepts.xml:470
@@ -650,7 +650,7 @@
#: Concepts.xml:476
#, no-c-format
msgid "All seam components need a name. We can assign a name to a component using the <literal>@Name</literal> annotation:"
-msgstr ""
+msgstr "Tutti i componenti Seam devono avere un nome. Si può assegnare un nome al componente usando l'annotazione <literal>@Name</literal>:"
#. Tag: programlisting
#: Concepts.xml:481
@@ -672,13 +672,13 @@
#: Concepts.xml:483
#, no-c-format
msgid "This name is the <emphasis>seam component name</emphasis> and is not related to any other name defined by the EJB specification. However, seam component names work just like JSF managed bean names and you can think of the two concepts as identical."
-msgstr ""
+msgstr "Questo nome è il <emphasis>nome del componente Seam</emphasis> e non è relazionato a nessun altro nome definito dalla specifica EJB. Comunque i nomi dei componenti Seam funzionano solo come nomi per i bean gestiti da JSF e si possono ritenere questi due concetti come identici."
#. Tag: para
#: Concepts.xml:489
#, no-c-format
msgid "<literal>@Name</literal> is not the only way to define a component name, but we always need to specify the name <emphasis>somewhere</emphasis>. If we don't, then none of the other Seam annotations will function."
-msgstr ""
+msgstr "<literal>@Name</literal> non è il solo modo per definire un nome di componente, ma occorre sempre specificare il nome <emphasis>da qualche parte</emphasis>. Altrimenti nessun'altra annotazione di Seam funzionerà."
#. Tag: para
#: Concepts.xml:495
@@ -690,7 +690,7 @@
#: Concepts.xml:506
#, no-c-format
msgid "For very large applications, and for built-in seam components, qualified component names are often used to avoid naming conflicts."
-msgstr ""
+msgstr "Per applicazioni estese e per i componenti predefiniti di seam, vengono spesso impiegati i nomi qualificati dei componenti per evitare conflitti di nome."
#. Tag: programlisting
#: Concepts.xml:511
15 years, 9 months
Seam SVN: r10758 - in examples/trunk/booking: ejb-jar/src/main/resources and 2 other directories.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-03 02:31:11 -0400 (Sun, 03 May 2009)
New Revision: 10758
Added:
examples/trunk/booking/war/src/main/webapp/img/1-star.gif
examples/trunk/booking/war/src/main/webapp/img/2-star.gif
examples/trunk/booking/war/src/main/webapp/img/3-star.gif
examples/trunk/booking/war/src/main/webapp/img/4-star.gif
examples/trunk/booking/war/src/main/webapp/img/5-star.gif
Modified:
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/Hotel.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/User.java
examples/trunk/booking/ejb-jar/src/main/resources/import.sql
examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/hotel.xhtml
Log:
add star class to hotel
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/Hotel.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/Hotel.java 2009-05-03 06:30:46 UTC (rev 10757)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/Hotel.java 2009-05-03 06:31:11 UTC (rev 10758)
@@ -31,7 +31,10 @@
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
+import javax.persistence.Table;
import javax.persistence.Transient;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@@ -43,6 +46,7 @@
*/
public
@Entity
+@Table(name = "hotel")
class Hotel implements Serializable
{
private Long id;
@@ -52,6 +56,7 @@
private String state;
private String zip;
private String country;
+ private Integer stars;
private BigDecimal price;
@Id
@@ -138,6 +143,18 @@
this.country = country;
}
+ @Min(1)
+ @Max(5)
+ public Integer getStars()
+ {
+ return stars;
+ }
+
+ public void setStars(Integer stars)
+ {
+ this.stars = stars;
+ }
+
@Column(precision = 6, scale = 2)
public BigDecimal getPrice()
{
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/User.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/User.java 2009-05-03 06:30:46 UTC (rev 10757)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/User.java 2009-05-03 06:31:11 UTC (rev 10758)
@@ -42,7 +42,7 @@
*/
public
@Entity
-@Table(name = "Customer")
+@Table(name = "customer")
class User implements Serializable
{
private String username;
Modified: examples/trunk/booking/ejb-jar/src/main/resources/import.sql
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/resources/import.sql 2009-05-03 06:30:46 UTC (rev 10757)
+++ examples/trunk/booking/ejb-jar/src/main/resources/import.sql 2009-05-03 06:31:11 UTC (rev 10758)
@@ -1,24 +1,28 @@
-insert into Customer (username, password, name) values ('gavin', 'mexico', 'Gavin King')
-insert into Customer (username, password, name) values ('pete', 'edinburgh', 'Pete Muir')
-insert into Customer (username, password, name) values ('shane', 'brisbane', 'Shane Bryzak')
-insert into Customer (username, password, name) values ('dan', 'laurel', 'Dan Allen')
-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')
+insert into customer (username, password, name) values ('gavin', 'mexico', 'Gavin King')
+insert into customer (username, password, name) values ('pete', 'edinburgh', 'Pete Muir')
+insert into customer (username, password, name) values ('shane', 'brisbane', 'Shane Bryzak')
+insert into customer (username, password, name) values ('dan', 'laurel', 'Dan Allen')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (1, 129, 3, 'Marriott Courtyard', 'Tower Place, Buckhead', 'Atlanta', 'GA', '30305', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (2, 84, 4, 'Doubletree Atlanta-Buckhead', '3342 Peachtree Road NE', 'Atlanta', 'GA', '30326', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (3, 289, 4, 'W New York - Union Square', '201 Park Avenue South', 'New York', 'NY', '10003', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (4, 219, 3, 'W New York', '541 Lexington Avenue', 'New York', 'NY', '10022', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (5, 250, 3, 'Hotel Rouge', '1315 16th Street NW', 'Washington', 'DC', '20036', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (6, 159, 4, '70 Park Avenue Hotel', '70 Park Avenue, 38th St', 'New York', 'NY', '10016', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (7, 198, 4, 'Parc 55', '55 Cyril Magnin Street', 'San Francisco', 'CA', '94102', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (8, 189, 4, 'Conrad Miami', '1395 Brickell Ave', 'Miami', 'FL', '33131', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (9, 111, 4, 'Grand Hyatt', '345 Stockton Street', 'San Francisco', 'CA', '94108', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (10, 54, 1, 'Super 8 Eau Claire Campus Area', '1151 W MacArthur Ave', 'Eau Claire', 'WI', '54701', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (11, 199, 4, 'San Francisco Marriott', '55 Fourth Street', 'San Francisco', 'CA', '94103', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (12, 543, 4, 'Hilton Diagonal Mar', 'Passeig del Taulat 262-264', 'Barcelona', 'Catalunya', '08019', 'ES')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (13, 335, 5, 'Hilton Tel Aviv', 'Independence Park', 'Tel Aviv', '', '63405', 'IL')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (14, 242, 5, 'InterContinental Hotel Tokyo Bay', '1-15-2 Kaigan', 'Tokyo', 'Minato', '105', 'JP')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (15, 130, 4, 'Hotel Beaulac', ' Esplanade Léopold-Robert 2', 'Neuchatel', '', '2000', 'CH')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (16, 266, 5, 'Conrad Treasury Place', '130 William Street', 'Brisbane', 'QL', '4001', 'AU')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (17, 170, 4, 'Ritz-Carlton Montreal', '1228 Sherbrooke St West', 'Montreal', 'Quebec', 'H3G1H6', 'CA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (18, 179, 4, 'Ritz-Carlton Atlanta', '181 Peachtree St NE', 'Atlanta', 'GA', '30303', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (19, 145, 4, 'Swissotel Sydney', '68 Market Street', 'Sydney', 'NSW', '2000', 'AU')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (20, 178, 4, 'Meliá White House', 'Albany Street Regents Park', 'London', '', 'NW13UP', 'GB')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (21, 159, 3, 'Hotel Allegro', '171 W Randolph Street', 'Chicago', 'IL', '60601', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (22, 296, 5, 'Caesar''s Palace', '3570 Las Vegas Blvd S', 'Las Vegas', 'NV', '89109', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (23, 300, 4, 'Mandalay Bay Resort & Casino', '3950 Las Vegas Blvd S', 'Las Vegas', 'NV', '89119', 'USA')
+insert into hotel (id, price, stars, name, address, city, state, zip, country) values (24, 100, 2, 'Hotel Cammerpoorte', 'Nationalestraat 38-40', 'Antwerp', '', '2000', 'BE')
Modified: examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/hotel.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/hotel.xhtml 2009-05-03 06:30:46 UTC (rev 10757)
+++ examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/hotel.xhtml 2009-05-03 06:31:11 UTC (rev 10758)
@@ -12,6 +12,9 @@
<p:display label="State" value="#{hotel.state}"/>
<p:display label="Zip" value="#{hotel.zip}"/>
<p:display label="Country" value="#{hotel.country}"/>
+ <p:display label="Class" override="true">
+ <h:graphicImage value="/img/#{hotel.stars}-star.gif" style="padding-top: 4px;"/>
+ </p:display>
<p:display label="Nightly rate" override="true">
<h:outputText value="#{hotel.price}">
<f:convertNumber type="currency" currencySymbol="$"/>
Added: examples/trunk/booking/war/src/main/webapp/img/1-star.gif
===================================================================
(Binary files differ)
Property changes on: examples/trunk/booking/war/src/main/webapp/img/1-star.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: examples/trunk/booking/war/src/main/webapp/img/2-star.gif
===================================================================
(Binary files differ)
Property changes on: examples/trunk/booking/war/src/main/webapp/img/2-star.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: examples/trunk/booking/war/src/main/webapp/img/3-star.gif
===================================================================
(Binary files differ)
Property changes on: examples/trunk/booking/war/src/main/webapp/img/3-star.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: examples/trunk/booking/war/src/main/webapp/img/4-star.gif
===================================================================
(Binary files differ)
Property changes on: examples/trunk/booking/war/src/main/webapp/img/4-star.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: examples/trunk/booking/war/src/main/webapp/img/5-star.gif
===================================================================
(Binary files differ)
Property changes on: examples/trunk/booking/war/src/main/webapp/img/5-star.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
15 years, 9 months
Seam SVN: r10757 - examples/trunk/booking.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-03 02:30:46 -0400 (Sun, 03 May 2009)
New Revision: 10757
Modified:
examples/trunk/booking/readme.txt
Log:
notes
Modified: examples/trunk/booking/readme.txt
===================================================================
--- examples/trunk/booking/readme.txt 2009-05-02 17:54:57 UTC (rev 10756)
+++ examples/trunk/booking/readme.txt 2009-05-03 06:30:46 UTC (rev 10757)
@@ -147,7 +147,8 @@
at org.jboss.webbeans.bean.proxy.ClientProxyMethodHandler.invoke(ClientProxyMethodHandler.java:96)
at org.jboss.webbeans.conversation.ConversationImpl_$$_javassist_213.isLongRunning(ConversationImpl_$$_javassist_213.java)
-(2) Ajax is not working on blur in p:edit form fields (had to disable)
+(2) Ajax is not working on blur in p:edit form fields (had to disable)
+ error malformedXML
(3) No list of workspaces
@@ -176,6 +177,10 @@
- secure pages (likely will use <f:event type="beforeRenderView"/>
+- get status messages from default or resource bundle (not just hardcoded defaults)
+
+- auto-detect which files have @NotNull or @NotEmpty to determine whether to put the * in <p:edit>
+
- use Cargo plugin to support deployment to other Java EE servers (GlassFish)
- refactor the password/confirm password into a reusable component (needed on
15 years, 9 months
Seam SVN: r10756 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-02 13:54:57 -0400 (Sat, 02 May 2009)
New Revision: 10756
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Tutorial.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Xml.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Tutorial.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Tutorial.po 2009-05-02 06:39:33 UTC (rev 10755)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Tutorial.po 2009-05-02 17:54:57 UTC (rev 10756)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-04-15 13:52+0000\n"
-"PO-Revision-Date: 2009-04-15 16:05+0100\n"
+"PO-Revision-Date: 2009-05-02 19:53+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -1174,7 +1174,7 @@
#: Tutorial.xml:492
#, no-c-format
msgid "The form input values are now validated against the Hibernate Validator constraints specified on the <literal>User</literal> entity. If the constraints are violated, JSF redisplays the page. Otherwise, JSF binds the form input values to properties of the <literal>User</literal> entity bean."
-msgstr "I valori di input della form vengono ora validati dai vincoli di Hibernate Validator specificati nell'entity <literal>User</literal>. Se i vincoli vengono violati, JSF rivisualizza la pagina, Altrimenti, JSF associa i valori di input alle proprietò dell'entity bean <literal>User</literal>."
+msgstr "I valori di input della form vengono ora validati dai vincoli di Hibernate Validator specificati nell'entity <literal>User</literal>. Se i vincoli vengono violati, JSF rivisualizza la pagina, Altrimenti, JSF associa i valori di input alle proprietà dell'entity bean <literal>User</literal>."
#. Tag: para
#: Tutorial.xml:495
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Xml.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Xml.po 2009-05-02 06:39:33 UTC (rev 10755)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Xml.po 2009-05-02 17:54:57 UTC (rev 10756)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-18 15:01+0000\n"
-"PO-Revision-Date: 2009-01-18 16:26+0100\n"
+"PO-Revision-Date: 2009-05-02 19:54+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -603,7 +603,7 @@
#: Xml.xml:242
#, no-c-format
msgid "When configuring multi-valued properties, by default, Seam will preserve the order in which you place the attributes in <literal>components.xml</literal> (unless you use a <literal>SortedSet</literal>/<literal>SortedMap</literal> then Seam will use <literal>TreeMap</literal>/<literal>TreeSet</literal>). If the property has a concrete type (for example <literal>LinkedList</literal>) Seam will use that type."
-msgstr "Quando si configurano le proprietò multi valore, di default Seam preserverà l'ordine in cui vengono messi gli attributi in <literal>components.xml</literal> (amenoché venga usato <literal>SortedSet</literal>/<literal>SortedMap</literal> allora Seam userà <literal>TreeMap</literal>/<literal>TreeSet</literal>). Se la proprietò ha un tipo concreto (per esempio <literal>LinkedList</literal>) Seam userà quel tipo."
+msgstr "Quando si configurano le proprietà multivalore, Seam preserverà di default l'ordine in cui vengono messi gli attributi in <literal>components.xml</literal> (amenoché venga usato <literal>SortedSet</literal>/<literal>SortedMap</literal> allora Seam userà <literal>TreeMap</literal>/<literal>TreeSet</literal>). Se la proprietà ha un tipo concreto (per esempio <literal>LinkedList</literal>) Seam userà quel tipo."
#. Tag: para
#: Xml.xml:248
15 years, 9 months
Seam SVN: r10755 - examples/trunk/booking.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-02 02:39:33 -0400 (Sat, 02 May 2009)
New Revision: 10755
Modified:
examples/trunk/booking/readme.txt
Log:
add another issue
Modified: examples/trunk/booking/readme.txt
===================================================================
--- examples/trunk/booking/readme.txt 2009-05-02 06:35:40 UTC (rev 10754)
+++ examples/trunk/booking/readme.txt 2009-05-02 06:39:33 UTC (rev 10755)
@@ -155,6 +155,15 @@
(5) @AfterTransactionSuccess observer does not work
+(6) Can't read properties from Hotel object in history list. Get this exception:
+ javax.inject.IllegalProductException: Cannot return null from a non-dependent producer method
+ at org.jboss.webbeans.bean.AbstractProducerBean.checkReturnValue(AbstractProducerBean.java:209)
+ at org.jboss.webbeans.bean.AbstractProducerBean.create(AbstractProducerBean.java:349)
+ at org.jboss.webbeans.context.AbstractMapContext.get(AbstractMapContext.java:98)
+ at org.jboss.webbeans.bean.proxy.ClientProxyMethodHandler.getProxiedInstance(ClientProxyMethodHandler.java:117)
+ at org.jboss.webbeans.bean.proxy.ClientProxyMethodHandler.invoke(ClientProxyMethodHandler.java:96)
+ at org.jboss.seam.examples.booking.model.Hotel_$$_javassist_227.getAddress(Hotel_$$_javassist_227.java)
+
= Open questions
- How do I clear a contextual bean from a scope, in particular the session scope? I've had to do workarounds.
15 years, 9 months
Seam SVN: r10754 - examples/trunk/booking.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-02 02:35:40 -0400 (Sat, 02 May 2009)
New Revision: 10754
Modified:
examples/trunk/booking/readme.txt
Log:
notes
Modified: examples/trunk/booking/readme.txt
===================================================================
--- examples/trunk/booking/readme.txt 2009-05-02 06:35:28 UTC (rev 10753)
+++ examples/trunk/booking/readme.txt 2009-05-02 06:35:40 UTC (rev 10754)
@@ -141,31 +141,41 @@
= Known issues
(1) Clicking on logout throws an exception
- java.lang.IllegalStateException: getAttribute: Session already invalidated
- at org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1032)
+ javax.context.ContextNotActiveException: No active contexts for scope type javax.context.RequestScoped
+ at org.jboss.webbeans.ManagerImpl.getContext(ManagerImpl.java:739)
+ at org.jboss.webbeans.bean.proxy.ClientProxyMethodHandler.getProxiedInstance(ClientProxyMethodHandler.java:116)
+ at org.jboss.webbeans.bean.proxy.ClientProxyMethodHandler.invoke(ClientProxyMethodHandler.java:96)
+ at org.jboss.webbeans.conversation.ConversationImpl_$$_javassist_213.isLongRunning(ConversationImpl_$$_javassist_213.java)
-(2) An attempt to login after logging out throws an exception
- javax.faces.el.EvaluationException: java.lang.reflect.InvocationTargetException
- at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
+(2) Ajax is not working on blur in p:edit form fields (had to disable)
-(3) List of bookings not refreshed after a booking is created
+(3) No list of workspaces
-(4) Ajax is not working on blur in p:edit form fields (had to disable)
+(4) Cannot use <f:view> in template or else it will remove the conversation id token from the view root
-(5) No list of workspaces
+(5) @AfterTransactionSuccess observer does not work
-(6) Cannot use <f:view> in template or else it will remove the conversation id token from the view root
-
= Open questions
-- How do I clear a contextual bean from a scope, in particular the session scope? This causes issue #1 and #3 above.
+- How do I clear a contextual bean from a scope, in particular the session scope? I've had to do workarounds.
- How do I inject an Event object into a stateful component? I get an error that there is a reference to a
- non-serializable object from a bean declaring a non-passivating scope. This is the reason for issue #3.
+ non-serializable object from a bean declaring a non-passivating scope. I have to use the Manager to fire an event
+ instead.
= TODO
+- secure pages (likely will use <f:event type="beforeRenderView"/>
+
- use Cargo plugin to support deployment to other Java EE servers (GlassFish)
- refactor the password/confirm password into a reusable component (needed on
registration and change password)
+
+- use a resource to define persistence context
+<EntityManager>
+ <PersistenceContext>
+ <unitName>booking</unitName>
+ </PersistenceContext>
+ <booking:BookingDatabase/>
+</EntityManager>
15 years, 9 months
Seam SVN: r10753 - examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-02 02:35:28 -0400 (Sat, 02 May 2009)
New Revision: 10753
Modified:
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java
Log:
got event to work to add new booking to history list
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java 2009-05-02 06:17:44 UTC (rev 10752)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java 2009-05-02 06:35:28 UTC (rev 10753)
@@ -31,8 +31,10 @@
import javax.context.RequestScoped;
import javax.ejb.Remove;
import javax.ejb.Stateful;
+import javax.inject.AnnotationLiteral;
import javax.inject.Current;
import javax.inject.Produces;
+import javax.inject.manager.Manager;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.examples.booking.account.Registered;
@@ -63,6 +65,7 @@
@Registered User user;
//@Fires @Confirmed Event<BookingEvent> bookingConfirmedEvent;
+ @Current Manager manager;
private Hotel hotelSelection;
@@ -113,7 +116,9 @@
public void confirm()
{
em.persist(booking);
+ // FIXME can't inject event object into bean with passivating scope
//bookingConfirmedEvent.fire(new BookingEvent(booking));
+ manager.fireEvent(new BookingEvent(booking), new AnnotationLiteral<Confirmed>() {});
log.info("New booking at the {0} confirmed for {1}", booking.getHotel().getName(), booking.getUser().getName());
statusMessages.add("You're booked!");
conversation.end();
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java 2009-05-02 06:17:44 UTC (rev 10752)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java 2009-05-02 06:35:28 UTC (rev 10753)
@@ -51,7 +51,7 @@
return bookingsForUser;
}
- // TODO should probably observe after transaction success
+ // TODO should probably observe @AfterTransactionSuccess (but it is broken)
public void afterBookingConfirmed(@Observes @Confirmed BookingEvent bookingEvent)
{
getBookingsForCurrentUser();
15 years, 9 months
Seam SVN: r10752 - in examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking: booking and 3 other directories.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-02 02:17:44 -0400 (Sat, 02 May 2009)
New Revision: 10752
Modified:
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/AccountProducerBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/PasswordManagerBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistory.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/HotelSearchBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/User.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticatorBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/Identity.java
Log:
cleanups
using message formatting in log strings
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/AccountProducerBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/AccountProducerBean.java 2009-05-02 05:36:05 UTC (rev 10751)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/AccountProducerBean.java 2009-05-02 06:17:44 UTC (rev 10752)
@@ -7,9 +7,10 @@
import javax.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
-import org.jboss.seam.examples.booking.account.Registered;
import org.jboss.seam.examples.booking.model.User;
import org.jboss.seam.examples.booking.security.Identity;
+import org.jboss.webbeans.log.Log;
+import org.jboss.webbeans.log.Logger;
/**
* @author Dan Allen
@@ -18,6 +19,8 @@
@Stateless
class AccountProducerBean implements AccountProducer
{
+ private @Logger Log log;
+
@PersistenceContext EntityManager em;
@Current Identity identity;
@@ -31,14 +34,15 @@
{
if (identity.isLoggedIn())
{
- User user = em.find(User.class, identity.getUsername());
- if (user != null)
+ log.info("Producing user from username {0}", identity.getUsername());
+ User candidate = em.find(User.class, identity.getUsername());
+ if (candidate != null)
{
- user.setPassword(null);
- return user;
+ return new User(candidate.getName(), candidate.getUsername());
}
}
+ log.info("Producing dummy User");
// TODO can't return null, but then we are not honoring the semantics of our binding type
return new User();
}
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/PasswordManagerBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/PasswordManagerBean.java 2009-05-02 05:36:05 UTC (rev 10751)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/PasswordManagerBean.java 2009-05-02 06:17:44 UTC (rev 10752)
@@ -7,7 +7,6 @@
import javax.inject.Current;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
-import org.jboss.seam.examples.booking.account.Registered;
import org.jboss.seam.examples.booking.model.User;
import org.jboss.seam.international.StatusMessages;
import org.jboss.seam.examples.booking.controls.RegistrationFormControls;
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java 2009-05-02 05:36:05 UTC (rev 10751)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java 2009-05-02 06:17:44 UTC (rev 10752)
@@ -31,14 +31,10 @@
import javax.context.RequestScoped;
import javax.ejb.Remove;
import javax.ejb.Stateful;
-import javax.event.Event;
-import javax.event.Fires;
import javax.inject.Current;
import javax.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
-import org.jboss.seam.examples.booking.booking.BookingEvent;
-import org.jboss.seam.examples.booking.booking.Confirmed;
import org.jboss.seam.examples.booking.account.Registered;
import org.jboss.seam.examples.booking.model.Booking;
import org.jboss.seam.examples.booking.model.Hotel;
@@ -78,7 +74,7 @@
{
// NOTE get a fresh reference that's managed by the conversational persistence context
hotelSelection = em.find(Hotel.class, hotel.getId());
- log.info("Selected the " + hotelSelection.getName() + " in " + hotelSelection.getCity());
+ log.info("Selected the {0} in {1}", hotelSelection.getName(), hotelSelection.getCity());
conversation.begin();
}
@@ -118,7 +114,7 @@
{
em.persist(booking);
//bookingConfirmedEvent.fire(new BookingEvent(booking));
- log.info("New booking at the " + booking.getHotel().getName() + " confirmed for " + booking.getUser().getName());
+ log.info("New booking at the {0} confirmed for {1}", booking.getHotel().getName(), booking.getUser().getName());
statusMessages.add("You're booked!");
conversation.end();
}
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistory.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistory.java 2009-05-02 05:36:05 UTC (rev 10751)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistory.java 2009-05-02 06:17:44 UTC (rev 10752)
@@ -2,7 +2,6 @@
import java.util.List;
import javax.ejb.Local;
-import org.jboss.seam.examples.booking.booking.BookingEvent;
import org.jboss.seam.examples.booking.model.Booking;
/**
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java 2009-05-02 05:36:05 UTC (rev 10751)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java 2009-05-02 06:17:44 UTC (rev 10752)
@@ -4,7 +4,6 @@
import java.util.List;
import javax.annotation.Named;
import javax.annotation.PreDestroy;
-import javax.context.RequestScoped;
import javax.context.SessionScoped;
import javax.ejb.Stateful;
import javax.event.Observes;
@@ -12,8 +11,6 @@
import javax.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
-import org.jboss.seam.examples.booking.booking.BookingEvent;
-import org.jboss.seam.examples.booking.booking.Confirmed;
import org.jboss.seam.examples.booking.account.Registered;
import org.jboss.seam.examples.booking.model.Booking;
import org.jboss.seam.examples.booking.model.User;
@@ -62,7 +59,7 @@
public void cancelBooking(Booking selectedBooking)
{
- log.info("Canceling booking " + selectedBooking.getId() + " for " + user.getName());
+ log.info("Canceling booking {0} for {1}", selectedBooking.getId(), user.getName());
Booking booking = em.find(Booking.class, selectedBooking.getId());
if (booking != null)
{
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/HotelSearchBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/HotelSearchBean.java 2009-05-02 05:36:05 UTC (rev 10751)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/HotelSearchBean.java 2009-05-02 06:17:44 UTC (rev 10752)
@@ -111,6 +111,6 @@
{
hotels = results;
}
- log.info("Found " + hotels.size() + " hotels matching search term '" + criteria.getSearchString() + "' (limit " + criteria.getPageSize() + ")");
+ log.info("Found {0} hotel(s) matching search term ''{1}'' (limit {2})", hotels.size(), criteria.getSearchString(), criteria.getPageSize());
}
}
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/User.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/User.java 2009-05-02 05:36:05 UTC (rev 10751)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/model/User.java 2009-05-02 06:17:44 UTC (rev 10752)
@@ -49,15 +49,20 @@
private String password;
private String name;
- public User(String name, String username, String password)
+ public User()
{
+ }
+
+ public User(String name, String username)
+ {
this.name = name;
this.username = username;
- this.password = password;
}
- public User()
+ public User(String name, String username, String password)
{
+ this(name, username);
+ this.password = password;
}
@NotNull
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticatorBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticatorBean.java 2009-05-02 05:36:05 UTC (rev 10751)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticatorBean.java 2009-05-02 06:17:44 UTC (rev 10752)
@@ -5,6 +5,8 @@
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.jboss.seam.examples.booking.model.User;
+import org.jboss.webbeans.log.Log;
+import org.jboss.webbeans.log.Logger;
/**
* This implementation of <strong>Authenticator</strong>
@@ -17,6 +19,8 @@
@Stateless
class AuthenticatorBean implements Authenticator
{
+ private @Logger Log log;
+
@PersistenceContext EntityManager em;
@Current Credentials credentials;
@@ -25,6 +29,7 @@
{
if (credentials.getUsername() != null && credentials.getUsername().length() > 0)
{
+ log.info("Authenticating {0}...", credentials.getUsername());
User user = em.find(User.class, credentials.getUsername());
if (user != null && user.getPassword().equals(credentials.getPassword()))
{
@@ -35,4 +40,5 @@
return false;
}
+
}
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/Identity.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/Identity.java 2009-05-02 05:36:05 UTC (rev 10751)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/Identity.java 2009-05-02 06:17:44 UTC (rev 10752)
@@ -6,6 +6,7 @@
import javax.faces.context.FacesContext;
import javax.inject.Current;
import javax.inject.Initializer;
+import javax.inject.manager.Manager;
/**
* @author Dan Allen
@@ -17,6 +18,8 @@
{
@Current Authenticator authenticator;
+ @Current Manager manager;
+
private Credentials credentials;
private boolean loggedIn;
@@ -62,5 +65,10 @@
loggedIn = false;
// FIXME this is a dirty hack to reset a producer
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
+
+// Set<Bean<User>> candidates = manager.resolveByType(User.class, new AnnotationLiteral<Registered>() {});
+// assert candidates.size() == 1;
+// User user = manager.getInstanceByType(User.class, new AnnotationLiteral<Registered>() {});
+// candidates.iterator().next().destroy(user);
}
}
15 years, 9 months