You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2009/05/13 23:09:49 UTC

svn commit: r774537 [1/3] - in /incubator/openwebbeans/trunk/samples/reservation: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/webbeans/ src/main/java/org/apache/webbeans/reservation/ src/main/j...

Author: gerdogdu
Date: Wed May 13 21:09:47 2009
New Revision: 774537

URL: http://svn.apache.org/viewvc?rev=774537&view=rev
Log:
Importing reservation sample

Added:
    incubator/openwebbeans/trunk/samples/reservation/pom.xml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/
    incubator/openwebbeans/trunk/samples/reservation/src/main/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LoginBean.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LogoutBean.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/RegisterBean.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminBean.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListBean.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListUser.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserListBean.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserReservationBean.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserUpdateBean.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/ApplicationLog.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/DatabaseLogin.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/intercep/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/intercep/Transactional.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/LoginController.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/RegisterController.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/AdminController.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/ILoginController.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/IRegisterController.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/UserController.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/Hotel.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/Reservation.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/User.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/events/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/events/LoggedInEvent.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/intercept/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/intercept/LoginDecorator.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/intercept/TransactionalInterceptor.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/model/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/model/ReservationModel.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/security/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/security/JSFSecurityPhaseListener.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/session/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/session/SessionTracker.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/util/
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/util/CalendarUtil.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/util/EntityManagerUtil.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/util/JSFUtility.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/util/LogUtil.java   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/resources/
    incubator/openwebbeans/trunk/samples/reservation/src/main/resources/META-INF/
    incubator/openwebbeans/trunk/samples/reservation/src/main/resources/META-INF/beans.xml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/resources/META-INF/persistence.xml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/resources/log4j.properties   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/META-INF/
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/META-INF/MANIFEST.MF   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/WEB-INF/
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/WEB-INF/beans.xml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/WEB-INF/faces-config.xml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/WEB-INF/lib/
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/WEB-INF/web.xml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/admin/
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/admin/defineHotel.xhtml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/admin/listHotels.xhtml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/admin/listUsers.xhtml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/admin/menu.xhtml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/index.html   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/login.xhtml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/main.css   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/register.xhtml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/user/
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/user/addReservation.xhtml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/user/listReservations.xhtml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/user/menu.xhtml   (with props)
    incubator/openwebbeans/trunk/samples/reservation/src/main/webapp/user/updateInfo.xhtml   (with props)

Added: incubator/openwebbeans/trunk/samples/reservation/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/pom.xml?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/pom.xml (added)
+++ incubator/openwebbeans/trunk/samples/reservation/pom.xml Wed May 13 21:09:47 2009
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	
+	Licensed to the Apache Software Foundation (ASF) under one or more
+	contributor license agreements. See the NOTICE file distributed with
+	this work for additional information regarding copyright ownership.
+	The ASF licenses this file to You under the Apache License, Version
+	2.0 (the "License"); you may not use this file except in compliance
+	with the License. You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+	applicable law or agreed to in writing, software distributed under the
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+	CONDITIONS OF ANY KIND, either express or implied. See the License for
+	the specific language governing permissions and limitations under the
+	License.
+-->
+<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>
+	     <groupId>org.apache.openwebbeans</groupId>
+	     <version>1.0.0-incubating-SNAPSHOT</version>
+	</parent>
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>org.apache.openwebbeans.samples</groupId>
+	<artifactId>reservation</artifactId>
+	<packaging>war</packaging>
+	<name>OpenWebBeans :: Sample Hotel Reservation Application</name>
+	<description>Simple hotel reservation application</description>
+
+	<build>
+		<finalName>reservation</finalName>
+	</build>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sun.facelets</groupId>
+            <artifactId>jsf-facelets</artifactId>
+            <version>1.1.11</version>
+        </dependency>
+
+        <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-el_1.0_spec</artifactId>
+                <version>1.0-M1</version>
+                <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.openwebbeans</groupId>
+            <artifactId>openwebbeans-api</artifactId>
+            <version>1.0.0-incubating-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.openwebbeans</groupId>
+            <artifactId>openwebbeans-jsf</artifactId>
+            <version>1.0.0-incubating-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.openwebbeans</groupId>
+            <artifactId>openwebbeans-jpa</artifactId>
+            <version>1.0.0-incubating-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.myfaces.core</groupId>
+            <artifactId>myfaces-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-servlet_2.5_spec</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+        	<groupId>commons-validator</groupId>
+        	<artifactId>commons-validator</artifactId>
+        	<version>1.3.1</version>
+        </dependency>
+	
+      </dependencies>
+
+    <properties>
+        <envlibscope>provided</envlibscope>
+    </properties>
+    
+	<profiles>
+		<profile>
+			<id>jetty</id>
+                        <dependencies>
+            
+                <dependency>
+                    <groupId>org.apache.openwebbeans</groupId>
+                    <artifactId>openwebbeans-api</artifactId>
+                    <version>1.0.0-incubating-SNAPSHOT</version>
+                    <scope>compile</scope> <!-- we need this if we run in jetty! -->
+                </dependency>
+            
+                <dependency>
+                    <groupId>org.apache.openwebbeans</groupId>
+                    <artifactId>openwebbeans-impl</artifactId>
+                    <version>1.0.0-incubating-SNAPSHOT</version>
+                </dependency>
+            
+                <dependency>
+                    <groupId>org.apache.openwebbeans</groupId>
+                    <artifactId>openwebbeans-jsf</artifactId>
+                    <version>1.0.0-incubating-SNAPSHOT</version>
+                </dependency>
+            
+                <dependency>
+                    <groupId>org.apache.openwebbeans</groupId>
+                    <artifactId>openwebbeans-jpa</artifactId>
+                    <version>1.0.0-incubating-SNAPSHOT</version>
+                </dependency>
+
+                <dependency>
+                    <groupId>org.apache.openjpa</groupId>
+                    <artifactId>openjpa</artifactId>
+                    <version>1.2.0</version>
+                </dependency>
+            
+                <dependency>
+                    <groupId>hsqldb</groupId>
+                    <artifactId>hsqldb</artifactId>
+                    <version>1.8.0.7</version>
+                </dependency>
+            
+                <dependency>
+                    <groupId>org.apache.myfaces.core</groupId>
+                    <artifactId>myfaces-api</artifactId>
+                    <scope>compile</scope> <!-- we need this if we run in jetty! -->
+                </dependency>
+
+                <dependency>
+                    <groupId>org.apache.myfaces.core</groupId>
+                    <artifactId>myfaces-impl</artifactId>
+                </dependency>
+            </dependencies>
+
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.mortbay.jetty</groupId>
+                        <artifactId>maven-jetty-plugin</artifactId>
+                        <version>6.1.15.rc4</version>
+                        <configuration>
+                            <scanIntervalSeconds>10</scanIntervalSeconds>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+
+            <pluginRepositories>
+                <!-- Repository to get the jetty plugin -->
+                <pluginRepository>
+                     <id>mortbay-repo</id>
+                     <name>mortbay-repo</name>
+                     <url>http://www.mortbay.org/maven2/snapshot</url>
+                </pluginRepository>
+            </pluginRepositories>
+
+            <properties>
+                <envlibscope>compile</envlibscope>
+            </properties>
+	
+	</profile>
+     </profiles>
+
+</project>

Propchange: incubator/openwebbeans/trunk/samples/reservation/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LoginBean.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LoginBean.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LoginBean.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LoginBean.java Wed May 13 21:09:47 2009
@@ -0,0 +1,133 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.beans;
+
+import java.lang.annotation.Annotation;
+
+import javax.annotation.Named;
+import javax.context.RequestScoped;
+import javax.event.Event;
+import javax.event.Fires;
+
+import org.apache.commons.validator.GenericValidator;
+import org.apache.webbeans.reservation.bindings.DatabaseLogin;
+import org.apache.webbeans.reservation.controller.LoginController;
+import org.apache.webbeans.reservation.entity.User;
+import org.apache.webbeans.reservation.events.LoggedInEvent;
+import org.apache.webbeans.reservation.util.JSFUtility;
+
+/**
+ * Contains login related managed bean functionality.
+ */
+@RequestScoped
+@Named
+public class LoginBean
+{
+    /**User name*/
+    private String userName;
+    
+    /**Password*/
+    private String password;
+
+    /**Inject of the event instance*/
+    private @Fires Event<LoggedInEvent> loggedInEvent;
+    
+    /**Database related login controller*/
+    private @DatabaseLogin LoginController loginController;
+
+    /**
+     * Check user login.
+     * 
+     * @return navigation result
+     */
+    public String login()
+    {
+        if(GenericValidator.isBlankOrNull(userName) || GenericValidator.isBlankOrNull(password))
+        {
+            JSFUtility.addErrorMessage("User name and password fields can not be empty", "");
+            
+            return null;
+        }
+        
+        User result = loginController.checkLogin(userName, password);
+        
+        if(result == null)
+        {
+            JSFUtility.addErrorMessage("Login failed!,User name or password is not correct. Try again!", "");
+            
+            return null;
+        }
+        
+        User user = result;
+        
+        //Fire Event
+        LoggedInEvent event = new LoggedInEvent(user);
+        loggedInEvent.fire(event, new Annotation[0]);
+        
+        
+        if(user.isAdmin())
+        {
+            return "adminHome";
+        }
+        
+        return "userHome";
+    }
+    
+    /**
+     * Check user logout.
+     * 
+     * @return navigation result
+     */
+    public String logout()
+    {
+        return null;
+    }
+
+    /**
+     * @return the userName
+     */
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    /**
+     * @param userName the userName to set
+     */
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    /**
+     * @return the password
+     */
+    public String getPassword()
+    {
+        return password;
+    }
+
+    /**
+     * @param password the password to set
+     */
+    public void setPassword(String password)
+    {
+        this.password = password;
+    }
+    
+    
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LoginBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LogoutBean.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LogoutBean.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LogoutBean.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LogoutBean.java Wed May 13 21:09:47 2009
@@ -0,0 +1,49 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.beans;
+
+import javax.annotation.Named;
+import javax.context.RequestScoped;
+import javax.servlet.http.HttpSession;
+
+import org.apache.webbeans.reservation.util.JSFUtility;
+
+@RequestScoped
+@Named
+public class LogoutBean
+{ 
+    
+    /**
+     * Logs out from the system.
+     * 
+     * @return navigate output
+     */
+    public String logout()
+    {
+        HttpSession session =  JSFUtility.getCurrentSession();
+        
+        if(session != null)
+        {
+            session.invalidate();
+        }
+        
+        JSFUtility.addInfoMessage("You have successfully logged out!", "");
+        
+        return "login";
+    }
+
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/LogoutBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/RegisterBean.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/RegisterBean.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/RegisterBean.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/RegisterBean.java Wed May 13 21:09:47 2009
@@ -0,0 +1,174 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.beans;
+
+import javax.annotation.Named;
+import javax.annotation.PostConstruct;
+import javax.context.RequestScoped;
+import javax.inject.Current;
+import javax.inject.manager.Manager;
+
+import org.apache.commons.logging.Log;
+import org.apache.webbeans.reservation.bindings.ApplicationLog;
+import org.apache.webbeans.reservation.controller.RegisterController;
+import org.apache.webbeans.reservation.util.JSFUtility;
+
+@Named(value="register")
+@RequestScoped
+public class RegisterBean
+{
+    private @ApplicationLog Log logger;
+    
+    private String name;
+    
+    private String surname;
+    
+    private Integer age;
+    
+    private String userName;
+    
+    private String password;
+    
+    private boolean admin;
+    
+    private @Current RegisterController personController;
+    
+    private @Current Manager manager; 
+    
+    public RegisterBean()
+    {
+        
+    }
+    
+    public String register()
+    {   
+        
+        logger.info("Registering the new user with user name : " + userName);
+        
+        personController.registerUser(userName, password, name, surname, age, admin);
+        
+        JSFUtility.addInfoMessage("User with name : " + userName + " is registered successfully.", "");
+        
+        return "login";
+
+    }
+
+    @PostConstruct
+    public void init()
+    {
+        logger = (Log)manager.getInstanceByName("logger");
+    }
+    
+    
+    /**
+     * @return the name
+     */
+    public String getName()
+    {
+        return name;
+    }
+
+    /**
+     * @param name the name to set
+     */
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    /**
+     * @return the surname
+     */
+    public String getSurname()
+    {
+        return surname;
+    }
+
+    /**
+     * @param surname the surname to set
+     */
+    public void setSurname(String surname)
+    {
+        this.surname = surname;
+    }
+
+    /**
+     * @return the age
+     */
+    public Integer getAge()
+    {
+        return age;
+    }
+
+    /**
+     * @param age the age to set
+     */
+    public void setAge(Integer age)
+    {
+        this.age = age;
+    }
+
+    /**
+     * @return the userName
+     */
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    /**
+     * @param userName the userName to set
+     */
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    /**
+     * @return the password
+     */
+    public String getPassword()
+    {
+        return password;
+    }
+
+    /**
+     * @param password the password to set
+     */
+    public void setPassword(String password)
+    {
+        this.password = password;
+    }
+
+    /**
+     * @return the admin
+     */
+    public boolean isAdmin()
+    {
+        return admin;
+    }
+
+    /**
+     * @param admin the admin to set
+     */
+    public void setAdmin(boolean admin)
+    {
+        this.admin = admin;
+    }
+    
+    
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/RegisterBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminBean.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminBean.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminBean.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminBean.java Wed May 13 21:09:47 2009
@@ -0,0 +1,129 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.beans.admin;
+
+import javax.annotation.Named;
+import javax.context.RequestScoped;
+import javax.inject.Current;
+
+import org.apache.webbeans.reservation.controller.admin.AdminController;
+import org.apache.webbeans.reservation.util.JSFUtility;
+
+/**
+ * Admin JSF Bean.
+ */
+@RequestScoped
+@Named
+public class AdminBean
+{
+    private String name;
+    
+    private String city;
+    
+    private String country;
+    
+    private Number star;
+    
+    private @Current AdminController adminController;
+
+    /**
+     * Add new hotel
+     * 
+     * @return navigation case
+     */
+    public String addNewHotel()
+    {
+        adminController.createNewHotel(name, star.intValue(), city, country);
+        
+        JSFUtility.addInfoMessage("Hotel  '" + name +  "' is successfully created", "");
+        
+        setCity(null);
+        setCountry(null);
+        setName(null);
+        setStar(null);
+        
+        
+        return null;
+        
+    }
+
+    /**
+     * @return the name
+     */
+    public String getName()
+    {
+        return name;
+    }
+
+    /**
+     * @param name the name to set
+     */
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    /**
+     * @return the city
+     */
+    public String getCity()
+    {
+        return city;
+    }
+
+    /**
+     * @param city the city to set
+     */
+    public void setCity(String city)
+    {
+        this.city = city;
+    }
+
+    /**
+     * @return the country
+     */
+    public String getCountry()
+    {
+        return country;
+    }
+
+    /**
+     * @param country the country to set
+     */
+    public void setCountry(String country)
+    {
+        this.country = country;
+    }
+
+    /**
+     * @return the star
+     */
+    public Number getStar()
+    {
+        return star;
+    }
+
+    /**
+     * @param star the star to set
+     */
+    public void setStar(Number star)
+    {
+        this.star = star;
+    }
+    
+    
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListBean.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListBean.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListBean.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListBean.java Wed May 13 21:09:47 2009
@@ -0,0 +1,172 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.beans.admin;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Named;
+import javax.context.SessionScoped;
+import javax.faces.component.html.HtmlDataTable;
+import javax.inject.Current;
+
+import org.apache.webbeans.reservation.controller.admin.AdminController;
+import org.apache.webbeans.reservation.entity.Hotel;
+import org.apache.webbeans.reservation.util.JSFUtility;
+
+@Named
+@SessionScoped
+public class AdminListBean implements Serializable
+{
+
+    private static final long serialVersionUID = 2552807646330035889L;
+
+    private List<Hotel> hotels = new ArrayList<Hotel>();
+    
+    private HtmlDataTable model;
+    
+    private @Current AdminController controller;
+    
+    private Hotel selected;
+    
+    private boolean renderedDetailPanel = false;
+    
+    
+    public String update()
+    {
+        if(selected == null)
+        {
+            JSFUtility.addErrorMessage("Pleasee select the hotel to update", "");
+            
+            return null;
+        }
+        
+        controller.updateHotel(selected.getId(), selected.getName(), selected.getStar(), selected.getCity(), selected.getCountry());
+        
+        JSFUtility.addInfoMessage("Hotel with name " + selected.getName()+ " is succesfully updated." , "");
+        
+        
+        return null;
+    }
+    
+    public String delete()
+    {
+        selected = (Hotel)model.getRowData();
+        
+        if(selected == null)
+        {
+            JSFUtility.addErrorMessage("Pleasee select the hotel to delete", "");
+            
+            return null;
+        }
+     
+        controller.deleteHotel(selected.getId());
+        
+        JSFUtility.addInfoMessage("Hotel with name " + selected.getName()+ " is succesfully deleted." , "");
+        
+        this.selected.setCity(null);
+        this.selected.setCountry(null);
+        this.selected.setName(null);
+        this.selected.setStar(0);
+        
+        
+        
+        return null;
+    }
+    
+    public String getForUpdate()
+    {
+        Hotel hotel = (Hotel) model.getRowData();
+        
+        this.selected = hotel;
+        
+        setRenderedDetailPanel(true);
+        
+                
+        return null;
+    }
+    
+    /**
+     * @return the hotels
+     */
+    public List<Hotel> getHotels()
+    {
+        hotels = controller.getHotels();
+        
+        return hotels;
+    }
+
+    /**
+     * @param hotels the hotels to set
+     */
+    public void setHotels(List<Hotel> hotels)
+    {
+        this.hotels = hotels;
+    }
+
+    /**
+     * @return the model
+     */
+    public HtmlDataTable getModel()
+    {
+        return model;
+    }
+
+    /**
+     * @param model the model to set
+     */
+    public void setModel(HtmlDataTable model)
+    {
+        this.model = model;
+    }
+
+    /**
+     * @return the selected
+     */
+    public Hotel getSelected()
+    {
+        return selected;
+    }
+
+    /**
+     * @param selected the selected to set
+     */
+    public void setSelected(Hotel selected)
+    {
+        this.selected = selected;
+    }
+
+    /**
+     * @return the renderedDetailPanel
+     */
+    public boolean isRenderedDetailPanel()
+    {
+        return renderedDetailPanel;
+    }
+
+    /**
+     * @param renderedDetailPanel the renderedDetailPanel to set
+     */
+    public void setRenderedDetailPanel(boolean renderedDetailPanel)
+    {
+        this.renderedDetailPanel = renderedDetailPanel;
+    }
+    
+    
+    
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListUser.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListUser.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListUser.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListUser.java Wed May 13 21:09:47 2009
@@ -0,0 +1,117 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.beans.admin;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import javax.annotation.Named;
+
+import javax.context.RequestScoped;
+import javax.faces.component.html.HtmlDataTable;
+import javax.inject.Current;
+
+import org.apache.webbeans.reservation.controller.admin.AdminController;
+import org.apache.webbeans.reservation.entity.Hotel;
+import org.apache.webbeans.reservation.entity.User;
+
+@Named
+@RequestScoped
+public class AdminListUser
+{
+    private List<User> users = new ArrayList<User>();
+    
+    private @Current AdminController controller;
+    
+    private HtmlDataTable model;
+    
+    private List<Hotel> hotels = new ArrayList<Hotel>();
+    
+    public AdminListUser()
+    {
+        
+    }
+
+    public String getReservations()
+    {
+        User user = (User) model.getRowData();
+        
+        Set<Hotel> set  = this.controller.getReservationsWithUser(user.getId());
+        for(Hotel hotel : set)
+        {
+            hotels.add(hotel);
+        }
+        
+        return null;
+    }
+    
+    /**
+     * @return the users
+     */
+    public List<User> getUsers()
+    {   
+        this.users = this.controller.getUsers(); 
+        
+        return this.users; 
+    }
+
+    /**
+     * @param users the users to set
+     */
+    public void setUsers(List<User> users)
+    {
+        this.users = users;
+    }
+
+    /**
+     * @return the model
+     */
+    public HtmlDataTable getModel()
+    {
+        return model;
+    }
+
+    /**
+     * @param model the model to set
+     */
+    public void setModel(HtmlDataTable model)
+    {
+        this.model = model;
+    }
+
+    /**
+     * @return the hotels
+     */
+    public List<Hotel> getHotels()
+    {
+        
+       return hotels;
+
+    }
+
+    /**
+     * @param hotels the hotels to set
+     */
+    public void setHotels(List<Hotel> hotels)
+    {
+        this.hotels = hotels;
+    }
+
+    
+    
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/admin/AdminListUser.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserListBean.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserListBean.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserListBean.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserListBean.java Wed May 13 21:09:47 2009
@@ -0,0 +1,102 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.beans.user;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Named;
+import javax.context.RequestScoped;
+import javax.faces.component.html.HtmlDataTable;
+import javax.inject.Current;
+
+import org.apache.webbeans.reservation.controller.user.UserController;
+import org.apache.webbeans.reservation.entity.Reservation;
+import org.apache.webbeans.reservation.session.SessionTracker;
+import org.apache.webbeans.reservation.util.JSFUtility;
+
+@Named("listReservationBean")
+@RequestScoped
+public class UserListBean
+{
+
+    private List<Reservation> reservations = new ArrayList<Reservation>();
+    
+    private HtmlDataTable model = null;
+    
+    private @Current UserController controller;
+    
+    private @Current SessionTracker tracker;
+    
+    public UserListBean()
+    {
+        
+    }
+
+    public String delete()
+    {
+        Reservation res = (Reservation)model.getRowData();
+        
+        controller.deleteReservation(res.getId());
+        
+        JSFUtility.addInfoMessage("Reservation is succesfully delete", "");
+        
+        
+        return null;
+    }
+    
+    public String showReservations()
+    {
+        return "toReservePage";
+    }
+    
+    /**
+     * @return the reservations
+     */
+    public List<Reservation> getReservations()
+    {
+        this.reservations = this.controller.getReservations(tracker.getUser().getId());
+        
+        return reservations;
+    }
+
+    /**
+     * @param reservations the reservations to set
+     */
+    public void setReservations(List<Reservation> reservations)
+    {
+        this.reservations = reservations;
+    }
+
+    /**
+     * @return the model
+     */
+    public HtmlDataTable getModel()
+    {
+        return model;
+    }
+
+    /**
+     * @param model the model to set
+     */
+    public void setModel(HtmlDataTable model)
+    {
+        this.model = model;
+    }
+    
+    
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserListBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserReservationBean.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserReservationBean.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserReservationBean.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserReservationBean.java Wed May 13 21:09:47 2009
@@ -0,0 +1,291 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.beans.user;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Named;
+import javax.context.Conversation;
+import javax.context.ConversationScoped;
+import javax.faces.component.html.HtmlDataTable;
+import javax.faces.model.SelectItem;
+import javax.inject.Current;
+
+import org.apache.webbeans.reservation.controller.admin.AdminController;
+import org.apache.webbeans.reservation.controller.user.UserController;
+import org.apache.webbeans.reservation.entity.Hotel;
+import org.apache.webbeans.reservation.model.ReservationModel;
+import org.apache.webbeans.reservation.session.SessionTracker;
+import org.apache.webbeans.reservation.util.JSFUtility;
+
+@Named
+@ConversationScoped
+public class UserReservationBean implements Serializable
+{
+    private static final long serialVersionUID = -5860989760497059459L;
+
+    private List<SelectItem> reservations = new ArrayList<SelectItem>();
+    
+    private @Current UserController controller;
+    
+    private List<Hotel> hotels = new ArrayList<Hotel>();
+    
+    private @Current AdminController adminController;
+    
+    private String reservationDate;
+    
+    private HtmlDataTable model;
+    
+    private @Current Conversation conversation;
+    
+    private @Current SessionTracker tracker;
+        
+    private Integer[] itemSelected = new Integer[0];
+    
+    private Map<String, ReservationModel> models = new HashMap<String, ReservationModel>();
+    
+    public UserReservationBean()
+    {
+    }
+
+    
+    public String addReservation()
+    {
+        if(getReservationDate() == null)
+        {
+            JSFUtility.addErrorMessage("Reservation date can not be empty!", "");
+            return null;
+        }
+             
+        Date date = null;
+        try
+        {
+            date = new SimpleDateFormat("dd/MM/yyyy").parse(getReservationDate());
+            
+        }catch(Exception e){
+            
+            JSFUtility.addErrorMessage("Please give a date with dd/MM/yyyy", "");
+            return null;
+        }
+        
+        if(!conversation.isLongRunning())
+        {
+            conversation.begin();
+            
+            JSFUtility.addInfoMessage("Reservation conversation with started with id : " + conversation.getId(), "");            
+        }
+        
+        Hotel hotel = (Hotel)model.getRowData();
+        
+        SelectItem item = new SelectItem();
+        item.setValue(hotel.getId());
+        item.setLabel(hotel.getName());
+        
+        if(contains(item.getValue()) != null)
+        {
+            JSFUtility.addErrorMessage("Given hotel is already added", "");
+            
+            return null;
+        }
+                
+        reservations.add(item);
+        
+        
+        ReservationModel model = new ReservationModel(item,date);
+        models.put(item.getValue().toString(), model);
+        
+        return null;
+    }
+    
+    private SelectItem contains(Object id)
+    {
+        for(SelectItem i : reservations)
+        {
+            if(i.getValue().toString().equals(id.toString()))
+            {
+                return i;
+            }
+        }
+        
+        return null;
+        
+    }
+    
+    public String delete()
+    {
+        if(this.itemSelected.length == 0)
+        {
+            JSFUtility.addErrorMessage("Please select reservation to remove", "");
+            
+            return null;
+        }
+        
+        for(Integer i : this.itemSelected)
+        {
+            SelectItem item = null;
+            if((item = contains(i)) != null)
+            {
+                this.reservations.remove(item);   
+                
+                this.models.remove(item);
+            }    
+        }
+        
+        
+        return null;
+    }
+    
+    public String checkout()
+    {
+        if(!conversation.isLongRunning())
+        {
+            JSFUtility.addErrorMessage("Conversation is not running! Please add hotel for reservation", "");
+            this.reservations.clear();
+            this.reservationDate = null;
+        }
+        else
+        {
+            this.controller.addReservation(models,tracker.getUser().getId());
+            
+            conversation.end();
+            
+            JSFUtility.addInfoMessage("Reservation are completed succesfully. Conversation with id "+conversation.getId() + " is ended ", "");
+            
+            this.reservations.clear();
+            
+            this.reservationDate = null;            
+        }        
+        
+        return null;
+    }
+
+
+    /**
+     * @return the reservations
+     */
+    public List<SelectItem> getReservations()
+    {
+        return reservations;
+    }
+
+    
+    public String clear()
+    {
+        this.reservations.clear();
+                
+        this.reservationDate = null;
+        
+        if(conversation.isLongRunning())
+        {
+            this.conversation.end();
+            JSFUtility.addInfoMessage("Reservation are deleted succesfully. Conversation with id "+conversation.getId() + "is ended ", "");
+        }
+        
+        return null;
+    }
+
+    /**
+     * @param reservations the reservations to set
+     */
+    public void setReservations(List<SelectItem> reservations)
+    {
+        this.reservations = reservations;
+    }
+
+
+    /**
+     * @return the hotels
+     */
+    public List<Hotel> getHotels()
+    {
+        this.hotels = this.adminController.getHotels();
+        
+        return hotels;
+    }
+
+
+    /**
+     * @param hotels the hotels to set
+     */
+    public void setHotels(List<Hotel> hotels)
+    {
+        this.hotels = hotels;
+    }
+
+
+    /**
+     * @return the reservationDate
+     */
+    public String getReservationDate()
+    {
+        return reservationDate;
+    }
+
+
+    /**
+     * @param reservationDate the reservationDate to set
+     */
+    public void setReservationDate(String reservationDate)
+    {
+        this.reservationDate = reservationDate;
+    }
+
+
+    /**
+     * @return the model
+     */
+    public HtmlDataTable getModel()
+    {
+        return model;
+    }
+
+
+    /**
+     * @param model the model to set
+     */
+    public void setModel(HtmlDataTable model)
+    {
+        this.model = model;
+    }
+
+
+    /**
+     * @return the itemSelected
+     */
+    public Integer[] getItemSelected()
+    {
+        
+        return itemSelected;
+    }
+
+
+    /**
+     * @param itemSelected the itemSelected to set
+     */
+    public void setItemSelected(Integer[] itemSelected)
+    {
+        this.itemSelected = itemSelected;
+    }
+    
+    
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserReservationBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserUpdateBean.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserUpdateBean.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserUpdateBean.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserUpdateBean.java Wed May 13 21:09:47 2009
@@ -0,0 +1,166 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.beans.user;
+
+import javax.annotation.Named;
+import javax.context.RequestScoped;
+import javax.inject.Current;
+
+import org.apache.webbeans.reservation.controller.user.UserController;
+import org.apache.webbeans.reservation.entity.User;
+import org.apache.webbeans.reservation.session.SessionTracker;
+import org.apache.webbeans.reservation.util.JSFUtility;
+
+@Named
+@RequestScoped
+public class UserUpdateBean
+{
+    private String name;
+    
+    private String surname;
+    
+    private int age;
+    
+    private String userName;
+    
+    private String password;
+    
+    private @Current UserController controller;
+    
+    private @Current SessionTracker tracker;
+    
+    public UserUpdateBean()
+    {
+        
+    }
+
+    public String showInfo()
+    {
+        //Just show how can access session webbeans
+        User user = this.controller.getUser(tracker.getUser().getId());
+        
+        setName(user.getName());
+        setSurname(user.getSurname());
+        setAge(user.getAge());
+        setUserName(user.getUserName());
+        setPassword(user.getPassword());
+                
+        return "toUpdatePage";
+    }
+
+    public String clear()
+    {
+        setName("");
+        setSurname("");
+        setAge(0);
+        setUserName("");
+        setPassword("");
+        
+        return null;
+    }
+    
+    public String update()
+    {
+        this.controller.updateUserInfo(tracker.getUser().getId(), name, surname, age, userName, password);
+        
+        JSFUtility.addInfoMessage("Personal information is succesfully updated.", "");
+        
+        return null;
+    }
+    
+    /**
+     * @return the name
+     */
+    public String getName()
+    {
+        return name;
+    }
+
+    /**
+     * @param name the name to set
+     */
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    /**
+     * @return the surname
+     */
+    public String getSurname()
+    {
+        return surname;
+    }
+
+    /**
+     * @param surname the surname to set
+     */
+    public void setSurname(String surname)
+    {
+        this.surname = surname;
+    }
+
+    /**
+     * @return the age
+     */
+    public int getAge()
+    {
+        return age;
+    }
+
+    /**
+     * @param age the age to set
+     */
+    public void setAge(int age)
+    {
+        this.age = age;
+    }
+
+    /**
+     * @return the userName
+     */
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    /**
+     * @param userName the userName to set
+     */
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    /**
+     * @return the password
+     */
+    public String getPassword()
+    {
+        return password;
+    }
+
+    /**
+     * @param password the password to set
+     */
+    public void setPassword(String password)
+    {
+        this.password = password;
+    }
+    
+    
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/beans/user/UserUpdateBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/ApplicationLog.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/ApplicationLog.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/ApplicationLog.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/ApplicationLog.java Wed May 13 21:09:47 2009
@@ -0,0 +1,35 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.bindings;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.ElementType.PARAMETER;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+@BindingType
+@Retention(RetentionPolicy.RUNTIME)
+@Target( {FIELD, METHOD, TYPE,PARAMETER})
+public @interface ApplicationLog
+{
+
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/ApplicationLog.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/DatabaseLogin.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/DatabaseLogin.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/DatabaseLogin.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/DatabaseLogin.java Wed May 13 21:09:47 2009
@@ -0,0 +1,35 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.bindings;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.ElementType.PARAMETER;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+@BindingType
+@Retention(RetentionPolicy.RUNTIME)
+@Target( {FIELD, METHOD, TYPE,PARAMETER})
+public @interface DatabaseLogin
+{
+
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/DatabaseLogin.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/intercep/Transactional.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/intercep/Transactional.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/intercep/Transactional.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/intercep/Transactional.java Wed May 13 21:09:47 2009
@@ -0,0 +1,32 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.bindings.intercep;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.interceptor.InterceptorBindingType;
+
+@InterceptorBindingType
+@Retention(RetentionPolicy.RUNTIME)
+@Target( { ElementType.TYPE, ElementType.METHOD })
+public @interface Transactional
+{
+
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/intercep/Transactional.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/LoginController.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/LoginController.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/LoginController.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/LoginController.java Wed May 13 21:09:47 2009
@@ -0,0 +1,85 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.controller;
+
+import java.util.GregorianCalendar;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.annotation.Named;
+import javax.context.RequestScoped;
+import javax.inject.Current;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import org.apache.commons.validator.GenericValidator;
+import org.apache.webbeans.reservation.bindings.DatabaseLogin;
+import org.apache.webbeans.reservation.bindings.intercep.Transactional;
+import org.apache.webbeans.reservation.controller.api.ILoginController;
+import org.apache.webbeans.reservation.entity.User;
+
+@DatabaseLogin
+@RequestScoped
+@Named
+public class LoginController implements ILoginController
+{
+    private Logger logger = Logger.getLogger(LoginController.class.getName());
+    
+    /**Injection of the request scope entity manager*/
+    private @Current EntityManager entityManager;
+
+    /**
+     * Returns true if user exist else false
+     * 
+     * @param userName user name
+     * @param password user password
+     * @return true if user exist else false
+     */
+    @Transactional
+    public User checkLogin(String userName, String password)
+    {
+        if(GenericValidator.isBlankOrNull(userName) || GenericValidator.isBlankOrNull(password))
+        {
+            logger.log(Level.WARNING, "UserName and Password is null");
+            
+            return null;
+        }
+        
+        Query query = entityManager.createQuery("select p from User p where  " +
+        		                                "p.userName=:userName and " +
+        		                                "p.password=:password");
+        
+        query.setParameter("userName", userName);
+        query.setParameter("password", password);
+        
+        User value = null;
+        try
+        {
+            value =(User)query.getSingleResult();
+            value.setLastLoginDate(GregorianCalendar.getInstance().getTime());
+        }
+        catch(Exception e)
+        {
+            return null;
+        }
+                
+        
+        return value;
+    }
+    
+
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/LoginController.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/RegisterController.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/RegisterController.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/RegisterController.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/RegisterController.java Wed May 13 21:09:47 2009
@@ -0,0 +1,71 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.controller;
+
+import javax.context.RequestScoped;
+import javax.inject.Current;
+import javax.persistence.EntityManager;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.validator.GenericValidator;
+import org.apache.webbeans.reservation.bindings.ApplicationLog;
+import org.apache.webbeans.reservation.bindings.intercep.Transactional;
+import org.apache.webbeans.reservation.controller.api.IRegisterController;
+import org.apache.webbeans.reservation.entity.User;
+import org.apache.webbeans.reservation.util.CalendarUtil;
+
+/**
+ * Controller responsible for registering operations.
+ */
+@RequestScoped
+public class RegisterController implements IRegisterController
+{
+    private @ApplicationLog Log logger;
+    
+    private @Current EntityManager entityManager;
+
+    /**
+     * Register the user.
+     */
+    @Transactional
+    public User registerUser(String userName, String password, String name, String surname , int age, boolean admin)
+    {
+        logger.debug("Register a new user with user name : " + userName);
+        
+        if(GenericValidator.isBlankOrNull(userName) || GenericValidator.isBlankOrNull(password))
+        {
+            logger.debug("Registering is failed. User name and password can not be null");
+            return null;
+        }
+        
+        User user = new User();
+        
+        user.setUserName(userName);
+        user.setPassword(password);
+        user.setName(name);
+        user.setSurname(surname);
+        user.setAge(age);
+        user.setRegisterDate(CalendarUtil.getCurrentDate());
+        user.setAdmin(admin);
+        
+        entityManager.persist(user);
+        
+        
+        return user;
+    }
+
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/RegisterController.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/AdminController.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/AdminController.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/AdminController.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/AdminController.java Wed May 13 21:09:47 2009
@@ -0,0 +1,162 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.controller.admin;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.annotation.Named;
+import javax.context.RequestScoped;
+import javax.inject.Current;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.validator.GenericValidator;
+import org.apache.webbeans.reservation.bindings.ApplicationLog;
+import org.apache.webbeans.reservation.bindings.intercep.Transactional;
+import org.apache.webbeans.reservation.entity.Hotel;
+import org.apache.webbeans.reservation.entity.Reservation;
+import org.apache.webbeans.reservation.entity.User;
+
+/**
+ * Contains admin related activities.
+ */
+@Named
+@RequestScoped
+public class AdminController
+{
+    private @ApplicationLog Log logger;
+    
+    private @Current EntityManager entityManager;
+    
+    @Transactional
+    public void createNewHotel(String name, int star, String city, String country)
+    {        
+        
+        if(GenericValidator.isBlankOrNull(name) ||
+                GenericValidator.isBlankOrNull(city) ||
+                GenericValidator.isBlankOrNull(country))
+        {
+            logger.debug("Some of the parameters are missing to define hotel.");
+            
+            return;
+        }
+        
+        Hotel hotel = new Hotel();
+        hotel.setCity(city);
+        hotel.setCountry(country);
+        hotel.setName(name);
+        hotel.setStar(star);
+        
+        entityManager.persist(hotel);
+        
+    }
+    
+    @SuppressWarnings("unchecked")
+    public List<Hotel> getHotels()
+    {
+        Query query = this.entityManager.createQuery("select h from Hotel h");
+        
+        return  (List<Hotel>)query.getResultList();
+    }
+    
+    @SuppressWarnings("unchecked")
+    public List<User> getUsers()
+    {
+        Query query = this.entityManager.createQuery("select u from User u");
+        
+        return  (List<User>)query.getResultList();
+        
+    }
+
+    /**
+     * Returns hotel with given id.
+     * 
+     * @param id hotel id
+     * @return hotel
+     */
+    public Hotel getHotelWithId(int id)
+    {
+        Hotel hotel = this.entityManager.find(Hotel.class, id);
+        
+        return hotel;
+    }
+    
+    @SuppressWarnings("unchecked")
+    public List<User> getReservationsWithHotel(int hotelId)
+    {
+        Query query = this.entityManager.createQuery("select u from User u join fetch u.reservations r where r.id=:id");
+        query.setParameter("id", hotelId);
+        
+        List<User> users = query.getResultList();
+        
+        return users;
+    }
+    
+    public Set<Hotel> getReservationsWithUser(int userId)
+    {
+        Query query = this.entityManager.createQuery("select u from User u where u.id=:id");
+        query.setParameter("id", userId);
+        
+        User user = (User)query.getSingleResult();
+        
+        Set<Hotel> hotels = new HashSet<Hotel>();
+        
+        Set<Reservation> reservations = user.getReservations();
+        
+        for(Reservation reserve : reservations)
+        {
+            hotels.add(reserve.getHotel());
+        }
+        
+        return hotels;
+    }
+    
+    
+    @Transactional
+    public void updateHotel(int id, String name, int star, String city, String country)
+    {
+        Hotel hotel = this.entityManager.find(Hotel.class, id);
+        
+        hotel.setName(name);
+        hotel.setStar(star);
+        hotel.setCountry(country);
+        hotel.setCity(city);
+    }
+    
+    @Transactional
+    @SuppressWarnings("unchecked")
+    public void deleteHotel(int id)
+    {
+        Hotel hotel = this.entityManager.find(Hotel.class, id);
+        
+        this.entityManager.remove(hotel);
+        
+        Query query = this.entityManager.createQuery("select r from Reservation r where r.hotel.id=:id");
+        query.setParameter("id",hotel.getId());
+        
+        List<Reservation> res = query.getResultList();
+        
+        for(Reservation r : res)
+        {
+            this.entityManager.remove(r);
+        }
+        
+    }
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/AdminController.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/ILoginController.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/ILoginController.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/ILoginController.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/ILoginController.java Wed May 13 21:09:47 2009
@@ -0,0 +1,26 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.controller.api;
+
+
+import org.apache.webbeans.reservation.entity.User;
+
+public interface ILoginController
+{
+    public User checkLogin(String userName, String password);
+
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/ILoginController.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/IRegisterController.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/IRegisterController.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/IRegisterController.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/IRegisterController.java Wed May 13 21:09:47 2009
@@ -0,0 +1,25 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.controller.api;
+
+import org.apache.webbeans.reservation.entity.User;
+
+public interface IRegisterController
+{
+    public User registerUser(String userName, String password, String name, String surname , int age, boolean admin);
+
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/api/IRegisterController.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/UserController.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/UserController.java?rev=774537&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/UserController.java (added)
+++ incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/UserController.java Wed May 13 21:09:47 2009
@@ -0,0 +1,135 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.webbeans.reservation.controller.user;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.context.RequestScoped;
+import javax.faces.model.SelectItem;
+import javax.inject.Current;
+import javax.persistence.EntityManager;
+
+import org.apache.commons.logging.Log;
+import org.apache.webbeans.reservation.bindings.ApplicationLog;
+import org.apache.webbeans.reservation.bindings.intercep.Transactional;
+import org.apache.webbeans.reservation.entity.Hotel;
+import org.apache.webbeans.reservation.entity.Reservation;
+import org.apache.webbeans.reservation.entity.User;
+import org.apache.webbeans.reservation.model.ReservationModel;
+
+@RequestScoped
+public class UserController
+{
+    private @Current EntityManager entityManager;
+    
+    private @ApplicationLog Log logger;
+
+    public UserController()
+    {
+        
+    }
+    
+    @PostConstruct
+    public void postConstruct()
+    {
+        System.out.println("Post Construct Sample .... " + UserController.class.getName() + " is instantiated");
+        
+    }
+    
+    @PreDestroy
+    public void preDestroy()
+    {
+        System.out.println("Pre Destroy Construct Sample .... " + UserController.class.getName() + " is destroyed by the container");
+    }
+    
+    public User getUser(int id)
+    {
+        User user = this.entityManager.find(User.class, id);
+        
+        return user;
+    }
+    
+    @Transactional
+    public void updateUserInfo(int userId, String name, String surname, int age, String userName, String password)
+    {
+        logger.debug("Updating user with id : " + userId);
+        
+        User user = this.entityManager.find(User.class, userId);
+        
+        user.setName(name);
+        user.setSurname(surname);
+        user.setAge(age);
+        user.setUserName(userName);
+        user.setPassword(password);
+    }
+    
+    @Transactional
+    public void addReservation(Map<String, ReservationModel> reservations, int userId)
+    {
+        User user = this.entityManager.find(User.class, userId);
+        
+        Set<String> keys = reservations.keySet();
+        
+        for(String item : keys)
+        {
+            ReservationModel rm = reservations.get(item);
+            SelectItem si = rm.getItem();
+            Hotel hotel = this.entityManager.find(Hotel.class, si.getValue());
+            
+            Reservation reservation = new Reservation();
+            
+            user.addHotel(reservation);
+            
+            reservation.setHotel(hotel);
+            reservation.setReservationDate(rm.getDate());
+            
+            this.entityManager.persist(reservation);            
+        }
+                
+    }
+    
+    @Transactional
+    public void deleteReservation(int reservsitonId)
+    {
+        Reservation res = this.entityManager.find(Reservation.class, reservsitonId);
+        User user = res.getUser();
+        
+        user.getReservations().remove(res);
+        
+        this.entityManager.remove(res);
+    }
+    
+    public List<Reservation> getReservations(int id)
+    {
+        User user = this.entityManager.find(User.class, id);
+        
+        Set<Reservation> res = user.getReservations();
+        
+        List<Reservation> l = new ArrayList<Reservation>();
+        for(Reservation r : res)
+        {
+            l.add(r);
+        }
+        
+        return l;
+    }
+}

Propchange: incubator/openwebbeans/trunk/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/UserController.java
------------------------------------------------------------------------------
    svn:eol-style = native