This is an automated email from the ASF dual-hosted git repository.

struberg pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/openwebbeans.git


The following commit(s) were added to refs/heads/main by this push:
     new 393784ff7 OWB-1446 fix reservation example
393784ff7 is described below

commit 393784ff762c76d3dbdf8947eeb3f9691db1639d
Author: Mark Struberg <strub...@apache.org>
AuthorDate: Wed Dec 11 17:48:02 2024 +0100

    OWB-1446 fix reservation example
---
 samples/pom.xml                                    |  7 ++--
 samples/reservation/pom.xml                        | 26 ++++++++-------
 .../bindings/EntityManagerQualifier.java           | 38 ----------------------
 .../reservation/controller/LoginController.java    |  7 ++--
 .../reservation/controller/RegisterController.java |  5 ++-
 .../controller/admin/AdminController.java          |  7 ++--
 .../controller/user/UserController.java            |  5 ++-
 .../apache/webbeans/reservation/entity/Hotel.java  | 10 +++---
 .../webbeans/reservation/entity/Reservation.java   | 16 ++++-----
 .../apache/webbeans/reservation/entity/User.java   | 18 +++++-----
 .../intercept/TransactionalInterceptor.java        |  7 ++--
 .../reservation/util/EntityManagerUtil.java        | 22 ++++++++-----
 12 files changed, 65 insertions(+), 103 deletions(-)

diff --git a/samples/pom.xml b/samples/pom.xml
index ee0e991a2..333df3f51 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -35,8 +35,7 @@ under the License.
     Start the samples with
     $> mvn cargo:run
 
-    To debug an application please activate the 'cargoDebug' profile and 
attach to port 8000
-
+    To debug an application please activate the 'cargoDebug' profile and 
attach to port 8000:
     $> mvn cargo:run -PcargoDebug
     -->
 
@@ -141,8 +140,8 @@ under the License.
         <module>guess</module>
         <module>conversation-sample</module>
         <module>jsf2sample</module>
+        <module>reservation</module>
         <!--
-            <module>reservation</module>
             <module>tomcat7-sample</module>
         -->
     </modules>
@@ -152,7 +151,7 @@ under the License.
             <id>cargoDebug</id>
             <properties>
                 <cargo.debug.args>
-                    -Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -Xnoagent
+                    -Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent
                 </cargo.debug.args>
             </properties>
         </profile>
diff --git a/samples/reservation/pom.xml b/samples/reservation/pom.xml
index 100c4fb1e..e8c73b3d4 100644
--- a/samples/reservation/pom.xml
+++ b/samples/reservation/pom.xml
@@ -34,7 +34,8 @@ under the License.
 
     <properties>
         <deploy.skip>true</deploy.skip>
-        <openjpa.version>2.4.2</openjpa.version>
+        <openjpa.version>4.0.1</openjpa.version>
+        
<jakarta.persistence-api.version>3.0.0</jakarta.persistence-api.version>
     </properties>
 
     <!--
@@ -64,10 +65,10 @@ under the License.
         </dependency>
 
         <!-- CDI and atinject APIs -->
-            <dependency>
-                <groupId>jakarta.enterprise</groupId>
-                <artifactId>jakarta.enterprise.cdi-api</artifactId>
-            </dependency>
+        <dependency>
+            <groupId>jakarta.enterprise</groupId>
+            <artifactId>jakarta.enterprise.cdi-api</artifactId>
+        </dependency>
         <dependency>
             <groupId>jakarta.inject</groupId>
             <artifactId>jakarta.inject-api</artifactId>
@@ -107,27 +108,28 @@ under the License.
             <version>${project.version}</version>
             <scope>runtime</scope>
         </dependency>
-        <!-- pseudo PersistenceContext injection -->
+
+        <!-- JSF Plugin -->
         <dependency>
             <groupId>org.apache.openwebbeans</groupId>
-            <artifactId>openwebbeans-resource</artifactId>
+            <artifactId>openwebbeans-jsf</artifactId>
             <version>${project.version}</version>
             <scope>runtime</scope>
         </dependency>
 
-        <!-- JSF Plugin -->
         <dependency>
             <groupId>org.apache.openwebbeans</groupId>
-            <artifactId>openwebbeans-jsf</artifactId>
+            <artifactId>openwebbeans-el22</artifactId>
             <version>${project.version}</version>
-            <scope>runtime</scope>
         </dependency>
 
 
         <!-- OpenJPA -->
+
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-jpa_2.0_spec</artifactId>
+            <groupId>jakarta.persistence</groupId>
+            <artifactId>jakarta.persistence-api</artifactId>
+            <version>${jakarta.persistence-api.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.openjpa</groupId>
diff --git 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/EntityManagerQualifier.java
 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/EntityManagerQualifier.java
deleted file mode 100644
index 35217efa0..000000000
--- 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/bindings/EntityManagerQualifier.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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 jakarta.inject.Qualifier;
-
-
-@Qualifier
-@Retention(RetentionPolicy.RUNTIME)
-@Target( {FIELD, METHOD, TYPE,PARAMETER})
-public @interface EntityManagerQualifier
-{
-
-}
diff --git 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/LoginController.java
 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/LoginController.java
index d8a5df387..f20c722c7 100644
--- 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/LoginController.java
+++ 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/LoginController.java
@@ -25,12 +25,11 @@ import java.util.logging.Logger;
 import jakarta.enterprise.context.RequestScoped;
 import jakarta.inject.Inject;
 import jakarta.inject.Named;
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.Query;
 
 import org.apache.commons.validator.GenericValidator;
 import org.apache.webbeans.reservation.bindings.DatabaseLogin;
-import org.apache.webbeans.reservation.bindings.EntityManagerQualifier;
 import org.apache.webbeans.reservation.bindings.intercep.Transactional;
 import org.apache.webbeans.reservation.controller.api.ILoginController;
 import org.apache.webbeans.reservation.entity.User;
@@ -43,7 +42,7 @@ public class LoginController implements ILoginController
     private Logger logger = Logger.getLogger(LoginController.class.getName());
     
     /**Injection of the request scope entity manager*/
-    private @Inject @EntityManagerQualifier EntityManager entityManager;
+    private @Inject EntityManager entityManager;
 
     /**
      * Returns true if user exist else false
diff --git 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/RegisterController.java
 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/RegisterController.java
index 01bf38811..2d35bd631 100644
--- 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/RegisterController.java
+++ 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/RegisterController.java
@@ -20,12 +20,11 @@ package org.apache.webbeans.reservation.controller;
 
 import jakarta.enterprise.context.RequestScoped;
 import jakarta.inject.Inject;
-import javax.persistence.EntityManager;
+import jakarta.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.EntityManagerQualifier;
 import org.apache.webbeans.reservation.bindings.intercep.Transactional;
 import org.apache.webbeans.reservation.controller.api.IRegisterController;
 import org.apache.webbeans.reservation.entity.User;
@@ -39,7 +38,7 @@ public class RegisterController implements IRegisterController
 {
     private @Inject @ApplicationLog Log logger;
     
-    private @Inject @EntityManagerQualifier EntityManager entityManager;
+    private @Inject EntityManager entityManager;
 
     /**
      * Register the user.
diff --git 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/AdminController.java
 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/AdminController.java
index 0b4fe13e2..f2382c225 100644
--- 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/AdminController.java
+++ 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/admin/AdminController.java
@@ -25,13 +25,12 @@ import java.util.Set;
 import jakarta.enterprise.context.RequestScoped;
 import jakarta.inject.Inject;
 import jakarta.inject.Named;
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
+import jakarta.persistence.EntityManager;
+import jakarta.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.EntityManagerQualifier;
 import org.apache.webbeans.reservation.bindings.intercep.Transactional;
 import org.apache.webbeans.reservation.entity.Hotel;
 import org.apache.webbeans.reservation.entity.Reservation;
@@ -46,7 +45,7 @@ public class AdminController
 {
     private @Inject @ApplicationLog Log logger;
     
-    private @Inject @EntityManagerQualifier EntityManager entityManager;
+    private @Inject EntityManager entityManager;
     
     @Transactional
     public void createNewHotel(String name, int star, String city, String 
country)
diff --git 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/UserController.java
 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/UserController.java
index 752ccd699..4bac79261 100644
--- 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/UserController.java
+++ 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/controller/user/UserController.java
@@ -28,11 +28,10 @@ import jakarta.annotation.PreDestroy;
 import jakarta.enterprise.context.RequestScoped;
 import jakarta.faces.model.SelectItem;
 import jakarta.inject.Inject;
-import javax.persistence.EntityManager;
+import jakarta.persistence.EntityManager;
 
 import org.apache.commons.logging.Log;
 import org.apache.webbeans.reservation.bindings.ApplicationLog;
-import org.apache.webbeans.reservation.bindings.EntityManagerQualifier;
 import org.apache.webbeans.reservation.bindings.intercep.Transactional;
 import org.apache.webbeans.reservation.entity.Hotel;
 import org.apache.webbeans.reservation.entity.Reservation;
@@ -42,7 +41,7 @@ import org.apache.webbeans.reservation.model.ReservationModel;
 @RequestScoped
 public class UserController
 {
-    private @Inject @EntityManagerQualifier EntityManager entityManager;
+    private @Inject EntityManager entityManager;
     
     private @Inject @ApplicationLog Log logger;
 
diff --git 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/Hotel.java
 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/Hotel.java
index 0398bb1ea..c58074c62 100644
--- 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/Hotel.java
+++ 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/Hotel.java
@@ -18,11 +18,11 @@
  */
 package org.apache.webbeans.reservation.entity;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Version;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.Version;
 
 @Entity
 public class Hotel
diff --git 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/Reservation.java
 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/Reservation.java
index 79baa4675..a7d536ace 100644
--- 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/Reservation.java
+++ 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/Reservation.java
@@ -20,14 +20,14 @@ package org.apache.webbeans.reservation.entity;
 
 import java.util.Date;
 
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.ManyToOne;
-import javax.persistence.OneToOne;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Version;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.persistence.Version;
 
 @Entity
 public class Reservation
diff --git 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/User.java
 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/User.java
index f6897326c..6269d6a35 100644
--- 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/User.java
+++ 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/entity/User.java
@@ -22,15 +22,15 @@ import java.util.Date;
 import java.util.HashSet;
 import java.util.Set;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Version;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.Id;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
+import jakarta.persistence.Version;
 
 @Entity
 public class User
diff --git 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/intercept/TransactionalInterceptor.java
 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/intercept/TransactionalInterceptor.java
index b156f54b2..0c3ef79fd 100644
--- 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/intercept/TransactionalInterceptor.java
+++ 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/intercept/TransactionalInterceptor.java
@@ -22,19 +22,18 @@ import jakarta.inject.Inject;
 import jakarta.interceptor.AroundInvoke;
 import jakarta.interceptor.Interceptor;
 import jakarta.interceptor.InvocationContext;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityTransaction;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.EntityTransaction;
 
 import org.apache.commons.logging.Log;
 import org.apache.webbeans.reservation.bindings.ApplicationLog;
-import org.apache.webbeans.reservation.bindings.EntityManagerQualifier;
 import org.apache.webbeans.reservation.bindings.intercep.Transactional;
 
 @Interceptor
 @Transactional
 public class TransactionalInterceptor
 {
-    private @Inject @EntityManagerQualifier EntityManager entityManager;
+    private @Inject EntityManager entityManager;
     
     private @Inject @ApplicationLog Log logger; 
     
diff --git 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/util/EntityManagerUtil.java
 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/util/EntityManagerUtil.java
index 0977163ed..872390779 100644
--- 
a/samples/reservation/src/main/java/org/apache/webbeans/reservation/util/EntityManagerUtil.java
+++ 
b/samples/reservation/src/main/java/org/apache/webbeans/reservation/util/EntityManagerUtil.java
@@ -18,29 +18,33 @@
  */
 package org.apache.webbeans.reservation.util;
 
+import jakarta.annotation.PostConstruct;
 import jakarta.enterprise.context.RequestScoped;
 import jakarta.enterprise.inject.Disposes;
 import jakarta.enterprise.inject.Produces;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.EntityManagerFactory;
+import jakarta.persistence.Persistence;
 
 @RequestScoped
 public class EntityManagerUtil
 {
-    private @PersistenceContext(unitName="reservation") EntityManager 
entityManager;
-    
-    public EntityManagerUtil()
+    private EntityManagerFactory emf;
+
+    @PostConstruct
+    void init()
     {
-        
+        emf = Persistence.createEntityManagerFactory("reservation");
     }
     
-    @Produces @RequestScoped 
@org.apache.webbeans.reservation.bindings.EntityManagerQualifier
+    @Produces
+    @RequestScoped
     public EntityManager createEntityManager()
     {        
-        return entityManager;
+        return emf.createEntityManager();
     }
     
-    public void dispose(@Disposes 
@org.apache.webbeans.reservation.bindings.EntityManagerQualifier EntityManager 
entityManager)
+    public void dispose(@Disposes EntityManager entityManager)
     {
         entityManager.close();        
     }

Reply via email to