From d4fa3bd9dd48f4d5e26850a23f5ba48a9c10ad64 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 5 Jun 2014 15:02:07 +0200 Subject: LDAP refactored behind interfaces. All functions of LDAP now hidden behind interfaces: Authenticator, Lookup and NextKeyManager (LDAP property storage was already a ClusterStorage). Gateway holds additional objects, and Fixes #26 #191. Refs #27 (needs additional work for read perms and auth tokens) --- src/main/java/com/c2kernel/lifecycle/instance/Activity.java | 4 +--- src/main/java/com/c2kernel/lifecycle/instance/JobPusher.java | 7 ++++--- src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java | 2 +- .../lifecycle/instance/predefined/AddDomainPath.java | 6 +++--- .../instance/predefined/CreateItemFromDescription.java | 8 +++----- .../com/c2kernel/lifecycle/instance/predefined/Erase.java | 12 ++++++------ .../lifecycle/instance/predefined/RemoveDomainPath.java | 4 ++-- .../instance/predefined/entitycreation/NewAgent.java | 6 +++--- .../instance/predefined/entitycreation/NewItem.java | 6 +++--- .../instance/predefined/entitycreation/NewRole.java | 2 +- .../instance/predefined/server/AddDomainContext.java | 2 +- .../lifecycle/instance/predefined/server/RemoveAgent.java | 4 ++-- .../instance/predefined/server/RemoveDomainContext.java | 4 ++-- .../instance/predefined/server/SetAgentPassword.java | 4 ++-- .../lifecycle/instance/predefined/server/SetAgentRoles.java | 6 ++---- .../c2kernel/lifecycle/instance/stateMachine/Transition.java | 4 ++-- 16 files changed, 38 insertions(+), 43 deletions(-) (limited to 'src/main/java/com/c2kernel/lifecycle/instance') diff --git a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java index b86e200..88cbeb6 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java @@ -19,7 +19,6 @@ import com.c2kernel.lifecycle.instance.stateMachine.State; import com.c2kernel.lifecycle.instance.stateMachine.StateMachine; import com.c2kernel.lifecycle.instance.stateMachine.Transition; import com.c2kernel.lookup.AgentPath; -import com.c2kernel.lookup.LDAPRoleManager; import com.c2kernel.lookup.RolePath; import com.c2kernel.persistency.ClusterStorageException; import com.c2kernel.persistency.outcome.Outcome; @@ -455,10 +454,9 @@ public class Activity extends WfVertex String agentRole = getCurrentAgentRole(); if (agentRole == null || agentRole.length()==0) return; - LDAPRoleManager roleMan = Gateway.getLDAPLookup().getRoleManager(); RolePath myRole; try { - myRole = roleMan.getRolePath(agentRole); + myRole = Gateway.getLookup().getRolePath(agentRole); } catch (ObjectNotFoundException ex) { // non-existent role Logger.msg(7, "Activity.pushJobsToAgents() - Activity role '"+agentRole+" not found."); return; diff --git a/src/main/java/com/c2kernel/lifecycle/instance/JobPusher.java b/src/main/java/com/c2kernel/lifecycle/instance/JobPusher.java index a0a51d0..89e7708 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/JobPusher.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/JobPusher.java @@ -1,11 +1,12 @@ package com.c2kernel.lifecycle.instance; -import java.util.Enumeration; +import java.util.Iterator; import com.c2kernel.entity.Agent; import com.c2kernel.entity.AgentHelper; import com.c2kernel.entity.agent.JobArrayList; import com.c2kernel.lookup.AgentPath; +import com.c2kernel.lookup.Path; import com.c2kernel.lookup.RolePath; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Logger; @@ -25,9 +26,9 @@ final class JobPusher extends Thread { public void run() { Thread.currentThread().setName("Agent job pusher for "+itemSysKey+":"+activity.getName()+" to role "+myRole); - for (Enumeration e = myRole.getChildren(); e.hasMoreElements();) + for (Iterator e = myRole.getChildren(); e.hasNext();) { - AgentPath nextAgent = e.nextElement(); + AgentPath nextAgent = (AgentPath)e.next(); Logger.msg(7, "Activity.pushJobsToAgents() - Calculating jobs for " + nextAgent.getAgentName()); try { diff --git a/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java b/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java index 0fc9bf9..2f0ef0d 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/WfVertex.java @@ -157,7 +157,7 @@ public abstract class WfVertex extends GraphableVertex script.setInputParamValue("item", Gateway.getProxyManager().getProxy(new ItemPath(itemSysKey))); } if (requiredInput.containsKey("agent")) { - AgentPath systemAgent = Gateway.getLDAPLookup().getRoleManager().getAgentPath("system"); + AgentPath systemAgent = Gateway.getLookup().getAgentPath("system"); script.setInputParamValue("agent", Gateway.getProxyManager().getProxy(systemAgent)); } Object retVal = script.execute(); diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddDomainPath.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddDomainPath.java index 9eb15f2..3da17e9 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddDomainPath.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/AddDomainPath.java @@ -13,9 +13,9 @@ package com.c2kernel.lifecycle.instance.predefined; import com.c2kernel.common.InvalidDataException; import com.c2kernel.lookup.AgentPath; import com.c2kernel.lookup.DomainPath; -import com.c2kernel.lookup.ItemPath; import com.c2kernel.lookup.InvalidItemPathException; -import com.c2kernel.lookup.LDAPLookup; +import com.c2kernel.lookup.ItemPath; +import com.c2kernel.lookup.Lookup; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Logger; @@ -32,7 +32,7 @@ public class AddDomainPath extends PredefinedStep int transitionID, String requestData) throws InvalidDataException { Logger.msg(8,"AddAlias::request()"); - LDAPLookup lookupManager = Gateway.getLDAPLookup(); + Lookup lookupManager = Gateway.getLookup(); Logger.msg(1,"AddAlias::request() - Starting."); diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java index e6da64a..e16a92c 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/CreateItemFromDescription.java @@ -27,7 +27,6 @@ import com.c2kernel.lifecycle.CompositeActivityDef; import com.c2kernel.lookup.AgentPath; import com.c2kernel.lookup.DomainPath; import com.c2kernel.lookup.ItemPath; -import com.c2kernel.lookup.LDAPLookup; import com.c2kernel.persistency.ClusterStorage; import com.c2kernel.persistency.TransactionManager; import com.c2kernel.process.Gateway; @@ -67,7 +66,6 @@ public class CreateItemFromDescription extends PredefinedStep PropertyArrayList props = new PropertyArrayList(); Logger.msg(1, "AddNewItem::request() - Starting."); TransactionManager storage = Gateway.getStorage(); - LDAPLookup lookup = Gateway.getLDAPLookup(); try { // check if the path is already taken @@ -134,7 +132,7 @@ public class CreateItemFromDescription extends PredefinedStep // generate new entity key Logger.msg(6, "CreateItemFromDescription - Requesting new sysKey"); - ItemPath entityPath = lookup.getNextKeyManager().generateNextEntityKey(); + ItemPath entityPath = Gateway.getNextKeyManager().generateNextEntityKey(); // resolve the item factory Logger.msg(6, "CreateItemFromDescription - Resolving item factory"); @@ -144,7 +142,7 @@ public class CreateItemFromDescription extends PredefinedStep CorbaServer factory = Gateway.getCorbaServer(); if (factory == null) throw new AccessRightsException("This process cannot create new Items", ""); TraceableEntity newItem = (TraceableEntity)factory.createEntity(entityPath); - Gateway.getLDAPLookup().add(entityPath); + Gateway.getLookup().add(entityPath); // initialise it with its properties and workflow @@ -161,7 +159,7 @@ public class CreateItemFromDescription extends PredefinedStep // add its domain path Logger.msg(3, "CreateItemFromDescription - Creating "+context); context.setEntity(entityPath); - Gateway.getLDAPLookup().add(context); + Gateway.getLookup().add(context); return requestData; } catch (Exception e) { Logger.error(e); diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/Erase.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/Erase.java index 412fe52..3c4a6a7 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/Erase.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/Erase.java @@ -13,7 +13,7 @@ package com.c2kernel.lifecycle.instance.predefined; -import java.util.Enumeration; +import java.util.Iterator; import com.c2kernel.common.InvalidDataException; import com.c2kernel.lookup.AgentPath; @@ -47,19 +47,19 @@ public class Erase extends PredefinedStep try { // get all domain paths - Enumeration domPaths = Gateway.getLDAPLookup().searchAliases(new ItemPath(itemSysKey)); - while (domPaths.hasMoreElements()) { - DomainPath path = (DomainPath)domPaths.nextElement(); + Iterator domPaths = Gateway.getLookup().searchAliases(new ItemPath(itemSysKey)); + while (domPaths.hasNext()) { + DomainPath path = (DomainPath)domPaths.next(); // delete them if (path.getSysKey() == itemSysKey) - Gateway.getLDAPLookup().delete(path); + Gateway.getLookup().delete(path); } //clear out all storages Gateway.getStorage().removeCluster(itemSysKey, "", null); //remove entity path - Gateway.getLDAPLookup().delete(new ItemPath(itemSysKey)); + Gateway.getLookup().delete(new ItemPath(itemSysKey)); } catch( Exception ex ) { diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/RemoveDomainPath.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/RemoveDomainPath.java index e33f722..1ee5e8c 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/RemoveDomainPath.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/RemoveDomainPath.java @@ -15,7 +15,7 @@ import com.c2kernel.common.ObjectCannotBeUpdated; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.lookup.AgentPath; import com.c2kernel.lookup.DomainPath; -import com.c2kernel.lookup.LDAPLookup; +import com.c2kernel.lookup.Lookup; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Logger; @@ -32,7 +32,7 @@ public class RemoveDomainPath extends PredefinedStep int transitionID, String requestData) throws InvalidDataException { Logger.msg(8,"RemoveDomainPath::request()"); - LDAPLookup lookupManager = Gateway.getLDAPLookup(); + Lookup lookupManager = Gateway.getLookup(); Logger.msg(1,"RemoveDomainPath::request() - Starting."); diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewAgent.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewAgent.java index baea8dd..10e5e6f 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewAgent.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewAgent.java @@ -32,11 +32,11 @@ public class NewAgent extends ModuleImport implements java.io.Serializable { } public void create(int agentId) throws ObjectNotFoundException, ObjectCannotBeUpdated, NoSuchAlgorithmException, CannotManageException, ObjectAlreadyExistsException { - AgentPath newAgent = Gateway.getLDAPLookup().getNextKeyManager().generateNextAgentKey(); + AgentPath newAgent = Gateway.getNextKeyManager().generateNextAgentKey(); newAgent.setAgentName(name); newAgent.setPassword(password); ActiveEntity newAgentEnt = (ActiveEntity)Gateway.getCorbaServer().createEntity(newAgent); - Gateway.getLDAPLookup().add(newAgent); + Gateway.getLookup().add(newAgent); // assemble properties properties.add(new com.c2kernel.property.Property("Name", name, true)); properties.add(new com.c2kernel.property.Property("Type", "Agent", false)); @@ -49,7 +49,7 @@ public class NewAgent extends ModuleImport implements java.io.Serializable { for (String role : roles) { RolePath thisRole; try { - thisRole = Gateway.getLDAPLookup().getRoleManager().getRolePath(role); + thisRole = Gateway.getLookup().getRolePath(role); } catch (ObjectNotFoundException ex) { throw new ObjectNotFoundException("Role "+role+" does not exist."); } diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java index c0197db..b1ef0e4 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java @@ -77,9 +77,9 @@ public class NewItem extends ModuleImport { } else { // create item - entPath = Gateway.getLDAPLookup().getNextKeyManager().generateNextEntityKey(); + entPath = Gateway.getNextKeyManager().generateNextEntityKey(); newItem = (TraceableEntity)Gateway.getCorbaServer().createEntity(entPath); - Gateway.getLDAPLookup().add(entPath); + Gateway.getLookup().add(entPath); } // set the name property @@ -181,7 +181,7 @@ public class NewItem extends ModuleImport { // register domain path (before collections in case of recursive collections) if (!domPath.exists()) { domPath.setEntity(entPath); - Gateway.getLDAPLookup().add(domPath); + Gateway.getLookup().add(domPath); } } } diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewRole.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewRole.java index 003b7f7..74415a5 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewRole.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewRole.java @@ -13,7 +13,7 @@ public class NewRole extends ModuleImport { } public void create(int agentId) throws ObjectAlreadyExistsException, ObjectCannotBeUpdated { - Gateway.getLDAPLookup().getRoleManager().createRole(name, jobList); + Gateway.getLookup().createRole(name, jobList); } } diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/AddDomainContext.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/AddDomainContext.java index 7595711..a931143 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/AddDomainContext.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/AddDomainContext.java @@ -35,7 +35,7 @@ public class AddDomainContext extends PredefinedStep { while(!pathsToAdd.empty()) { pathToAdd = pathsToAdd.pop(); try { - Gateway.getLDAPLookup().add(pathToAdd); + Gateway.getLookup().add(pathToAdd); } catch (ObjectAlreadyExistsException e) { Logger.error("Context "+pathToAdd+" inconsistently exists."); } catch (ObjectCannotBeUpdated e) { diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveAgent.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveAgent.java index 75fe80b..19641fe 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveAgent.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveAgent.java @@ -25,7 +25,7 @@ public class RemoveAgent extends PredefinedStep { String[] params = getDataList(requestData); AgentPath targetAgent; try { - targetAgent = Gateway.getLDAPLookup().getRoleManager().getAgentPath(params[0]); + targetAgent = Gateway.getLookup().getAgentPath(params[0]); } catch (ObjectNotFoundException e) { throw new InvalidDataException("Agent "+params[0]+" not found", ""); } @@ -50,7 +50,7 @@ public class RemoveAgent extends PredefinedStep { } //remove entity path try { - Gateway.getLDAPLookup().delete(targetAgent); + Gateway.getLookup().delete(targetAgent); } catch (ObjectCannotBeUpdated e) { throw new InvalidDataException("Error deleting AgentPath for "+params[0], ""); } diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java index 77a7545..a55f7dd 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/RemoveDomainContext.java @@ -27,11 +27,11 @@ public class RemoveDomainContext extends PredefinedStep { pathToDelete.getEntity(); throw new InvalidDataException("Path "+pathToDelete+" is an Entity. Use its own Erase step instead, or RemoveAgent.", ""); } catch (ObjectNotFoundException ex) { } - if (pathToDelete.getChildren().hasMoreElements()) + if (Gateway.getLookup().getChildren(pathToDelete).hasNext()) throw new InvalidDataException("Context "+pathToDelete+" is not empty. Cannot delete.", ""); try { - Gateway.getLDAPLookup().delete(pathToDelete); + Gateway.getLookup().delete(pathToDelete); } catch (ObjectCannotBeUpdated e) { Logger.error(e); throw new InvalidDataException("Exception deleting path"+pathToDelete+": "+e.getMessage(), ""); diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentPassword.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentPassword.java index bb19030..8a2863a 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentPassword.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentPassword.java @@ -27,13 +27,13 @@ public class SetAgentPassword extends PredefinedStep { throw new InvalidDataException("Requires 2 params: agent name and new password", ""); AgentPath targetAgent; try { - targetAgent = Gateway.getLDAPLookup().getRoleManager().getAgentPath(params[0]); + targetAgent = Gateway.getLookup().getAgentPath(params[0]); } catch (ObjectNotFoundException e) { throw new InvalidDataException("Agent "+params[0]+" not found", ""); } try { - Gateway.getLDAPLookup().getRoleManager().setAgentPassword(targetAgent, params[1]); + Gateway.getLookup().setAgentPassword(targetAgent, params[1]); } catch (ObjectNotFoundException e) { Logger.error(e); throw new InvalidDataException("Agent "+params[0]+" not found.", ""); diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentRoles.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentRoles.java index 51be40a..19c6bd8 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentRoles.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/SetAgentRoles.java @@ -6,7 +6,6 @@ import com.c2kernel.common.InvalidDataException; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.lifecycle.instance.predefined.PredefinedStep; import com.c2kernel.lookup.AgentPath; -import com.c2kernel.lookup.LDAPRoleManager; import com.c2kernel.lookup.RolePath; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Logger; @@ -26,18 +25,17 @@ public class SetAgentRoles extends PredefinedStep { String[] params = getDataList(requestData); AgentPath targetAgent; try { - targetAgent = Gateway.getLDAPLookup().getRoleManager().getAgentPath(params[0]); + targetAgent = Gateway.getLookup().getAgentPath(params[0]); } catch (ObjectNotFoundException e) { throw new InvalidDataException("Agent "+params[0]+" not found", ""); } - LDAPRoleManager roleMan = Gateway.getLDAPLookup().getRoleManager(); RolePath[] currentRoles = targetAgent.getRoles(); ArrayList requestedRoles = new ArrayList(); if (params.length>1) for (int i=1; i 0) - role = Gateway.getLDAPLookup().getRoleManager().getRolePath(actRole); + role = Gateway.getLookup().getRolePath(actRole); } // Decide the access -- cgit v1.2.3