From: Bojnourdi Date: Mon, 10 Aug 2015 08:25:50 +0000 (+0200) Subject: - Set ApplicationEJB to be a startup singleton X-Git-Tag: gde-v0.1~8^2~78 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=9044c8a9574f8d66c7b8ae6ee380e15c81d7f8d4;p=modules%2Fgde.git - Set ApplicationEJB to be a startup singleton - Added PermissionManagerEJB - Removed EntityManager from ApplicationEJB --- diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/common/PermissionManager.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/common/PermissionManager.java index 80b895b..9118cd5 100644 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/common/PermissionManager.java +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/common/PermissionManager.java @@ -1,11 +1,6 @@ package com.edf.gde.common; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; import javax.persistence.EntityManager; -import javax.persistence.Query; /** * @@ -17,6 +12,7 @@ public class PermissionManager { * K = Service name * V = Set of group Id */ + private EntityManager em; public PermissionManager(EntityManager em) { this.em = em; diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/ApplicationEJB.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/ApplicationEJB.java index b17ffa6..6358e96 100644 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/ApplicationEJB.java +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/ApplicationEJB.java @@ -3,15 +3,20 @@ package com.edf.gde.ejb; import com.edf.gde.common.PermissionManager; import java.util.HashMap; import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.annotation.PostConstruct; import javax.ejb.Singleton; import javax.ejb.LocalBean; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; +import javax.ejb.Startup; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; /** * @author Kavoos */ +@Startup @Singleton @LocalBean public class ApplicationEJB { @@ -20,19 +25,26 @@ public class ApplicationEJB { key = file id value = user id */ - @PersistenceContext(unitName = "GDE-ejbPU") - private EntityManager em; private Map userFiles; private PermissionManager permissionManager; + /** * */ @PostConstruct private void init() { + userFiles = new HashMap<>(); - permissionManager = new PermissionManager(em); + Context ctx; + try { + ctx = new InitialContext(); + PermissionsManagerEJB managerEJB = (PermissionsManagerEJB) ctx.lookup("java:global/GDE_App/GDE-ejb/PermissionsManagerEJB"); + permissionManager = managerEJB.getManager(); + } catch (NamingException ex) { + Logger.getLogger(ApplicationEJB.class.getName()).log(Level.SEVERE, null, ex); + } } /** @@ -56,6 +68,7 @@ public class ApplicationEJB { /** * Try to unlock a file + * * @param userId * @param fileId * @return @@ -72,9 +85,9 @@ public class ApplicationEJB { public PermissionManager getPermissionManager() { return permissionManager; - } - + } + private void loadPermissions() { - + } } diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/PermissionsManagerEJB.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/PermissionsManagerEJB.java new file mode 100644 index 0000000..8a5edd0 --- /dev/null +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/PermissionsManagerEJB.java @@ -0,0 +1,26 @@ +/* + * (C) 2015 EDF + */ +package com.edf.gde.ejb; + +import com.edf.gde.common.PermissionManager; +import javax.ejb.Stateless; +import javax.ejb.LocalBean; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +/** + * + * @author Kavoos + */ +@Stateless(name = "PermissionsManagerEJB") +@LocalBean +public class PermissionsManagerEJB { + + @PersistenceContext(unitName = "GDE-ejbPU") + private EntityManager em; + + public PermissionManager getManager() { + return new PermissionManager(em); + } +}