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) --- .../com/c2kernel/persistency/LDAPClusterStorage.java | 12 +++++++++--- .../java/com/c2kernel/persistency/NextKeyManager.java | 19 +++++++++++++++++++ .../java/com/c2kernel/persistency/ProxyLoader.java | 8 ++++---- 3 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/c2kernel/persistency/NextKeyManager.java (limited to 'src/main/java/com/c2kernel/persistency') diff --git a/src/main/java/com/c2kernel/persistency/LDAPClusterStorage.java b/src/main/java/com/c2kernel/persistency/LDAPClusterStorage.java index 2c10bbf..cc65805 100644 --- a/src/main/java/com/c2kernel/persistency/LDAPClusterStorage.java +++ b/src/main/java/com/c2kernel/persistency/LDAPClusterStorage.java @@ -4,9 +4,11 @@ import java.util.StringTokenizer; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.entity.C2KLocalObject; -import com.c2kernel.lookup.ItemPath; import com.c2kernel.lookup.InvalidItemPathException; -import com.c2kernel.lookup.LDAPPropertyManager; +import com.c2kernel.lookup.ItemPath; +import com.c2kernel.lookup.Lookup; +import com.c2kernel.lookup.ldap.LDAPLookup; +import com.c2kernel.lookup.ldap.LDAPPropertyManager; import com.c2kernel.process.Gateway; import com.c2kernel.property.Property; import com.c2kernel.utils.Logger; @@ -16,7 +18,11 @@ public class LDAPClusterStorage extends ClusterStorage { @Override public void open() throws ClusterStorageException { - ldapStore = Gateway.getLDAPLookup().getPropManager(); + Lookup lookup = Gateway.getLookup(); + if (lookup instanceof LDAPLookup) + ldapStore = ((LDAPLookup)lookup).getPropManager(); + else + throw new ClusterStorageException("Cannot use LDAP cluster storage without LDAP Lookup"); } diff --git a/src/main/java/com/c2kernel/persistency/NextKeyManager.java b/src/main/java/com/c2kernel/persistency/NextKeyManager.java new file mode 100644 index 0000000..e0d0013 --- /dev/null +++ b/src/main/java/com/c2kernel/persistency/NextKeyManager.java @@ -0,0 +1,19 @@ +package com.c2kernel.persistency; + +import com.c2kernel.common.ObjectCannotBeUpdated; +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.lookup.AgentPath; +import com.c2kernel.lookup.ItemPath; + +public interface NextKeyManager { + + public ItemPath generateNextEntityKey() + throws ObjectCannotBeUpdated, ObjectNotFoundException; + + public AgentPath generateNextAgentKey() + throws ObjectCannotBeUpdated, ObjectNotFoundException; + + public void writeLastEntityKey(int sysKey) throws ObjectCannotBeUpdated, ObjectNotFoundException; + + public ItemPath getLastEntityPath() throws ObjectNotFoundException; +} diff --git a/src/main/java/com/c2kernel/persistency/ProxyLoader.java b/src/main/java/com/c2kernel/persistency/ProxyLoader.java index 9c14df5..fe48966 100644 --- a/src/main/java/com/c2kernel/persistency/ProxyLoader.java +++ b/src/main/java/com/c2kernel/persistency/ProxyLoader.java @@ -8,7 +8,7 @@ import com.c2kernel.entity.C2KLocalObject; import com.c2kernel.entity.Item; import com.c2kernel.entity.ItemHelper; import com.c2kernel.lookup.ItemPath; -import com.c2kernel.lookup.LDAPLookup; +import com.c2kernel.lookup.Lookup; import com.c2kernel.persistency.outcome.Outcome; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Logger; @@ -19,11 +19,11 @@ import com.c2kernel.utils.Logger; public class ProxyLoader extends ClusterStorage { HashMap entities = new HashMap(); - LDAPLookup lookup; + Lookup lookup; @Override public void open() throws ClusterStorageException { - lookup = Gateway.getLDAPLookup(); + lookup = Gateway.getLookup(); } @Override @@ -113,7 +113,7 @@ public class ProxyLoader extends ClusterStorage { try { Logger.msg(7, "ProxyLoader.getIOR() - Resolving "+sysKey+"."); - org.omg.CORBA.Object ior = lookup.getIOR(new ItemPath(sysKey.intValue())); + org.omg.CORBA.Object ior = lookup.resolve(new ItemPath(sysKey.intValue())); Item thisItem = null; try { -- cgit v1.2.3