Salome HOME
- Set ApplicationEJB to be a startup singleton
authorBojnourdi <kavoos.bojnourdi@edf.fr>
Mon, 10 Aug 2015 08:25:50 +0000 (10:25 +0200)
committerBojnourdi <kavoos.bojnourdi@edf.fr>
Mon, 10 Aug 2015 08:25:50 +0000 (10:25 +0200)
- Added PermissionManagerEJB
- Removed EntityManager from ApplicationEJB

projects/GDE_App/GDE-ejb/src/java/com/edf/gde/common/PermissionManager.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/ApplicationEJB.java
projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/PermissionsManagerEJB.java [new file with mode: 0644]

index 80b895bdd7a570b7b4aa2a05eec08f782f74662b..9118cd52ce4370130c171eafaec0319f14978334 100644 (file)
@@ -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;
index b17ffa60d14582d1d39d108c9f53cb5343e4faaa..6358e96125a868877567dcba7495c9c31185375c 100644 (file)
@@ -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<Long, Long> 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 (file)
index 0000000..8a5edd0
--- /dev/null
@@ -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);
+    }
+}