From 0ed2c1124cf1b9e49a2ec1fa0126a8df09f9e758 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 7 Oct 2014 09:18:11 +0200 Subject: Repackage to org.cristalise --- .../persistency/MemoryOnlyClusterStorage.java | 164 --------------------- 1 file changed, 164 deletions(-) delete mode 100644 src/main/java/com/c2kernel/persistency/MemoryOnlyClusterStorage.java (limited to 'src/main/java/com/c2kernel/persistency/MemoryOnlyClusterStorage.java') diff --git a/src/main/java/com/c2kernel/persistency/MemoryOnlyClusterStorage.java b/src/main/java/com/c2kernel/persistency/MemoryOnlyClusterStorage.java deleted file mode 100644 index 7408da3..0000000 --- a/src/main/java/com/c2kernel/persistency/MemoryOnlyClusterStorage.java +++ /dev/null @@ -1,164 +0,0 @@ -/** - * This file is part of the CRISTAL-iSE kernel. - * Copyright (c) 2001-2014 The CRISTAL Consortium. All rights reserved. - * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation; either version 3 of the License, or (at - * your option) any later version. - * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - * - * http://www.fsf.org/licensing/licenses/lgpl.html - */ -package com.c2kernel.persistency; - -import java.util.ArrayList; -import java.util.ConcurrentModificationException; -import java.util.HashMap; -import java.util.Map; - -import com.c2kernel.common.PersistencyException; -import com.c2kernel.entity.C2KLocalObject; -import com.c2kernel.lookup.ItemPath; -import com.c2kernel.process.auth.Authenticator; -import com.c2kernel.utils.Logger; - -public class MemoryOnlyClusterStorage extends ClusterStorage { - - HashMap> memoryCache = new HashMap>(); - /** - * - */ - public MemoryOnlyClusterStorage() { - memoryCache = new HashMap>(); - } - - @Override - public void open(Authenticator auth) throws PersistencyException { - - } - - @Override - public void close() throws PersistencyException { - } - - @Override - public short queryClusterSupport(String clusterType) { - return ClusterStorage.READWRITE; - } - - @Override - public String getName() { - return "Memory Cache"; - } - - @Override - public String getId() { - return "Memory Cache"; - } - - @Override - public C2KLocalObject get(ItemPath thisItem, String path) - throws PersistencyException { - Map sysKeyMemCache = memoryCache.get(thisItem); - if (sysKeyMemCache != null) - return sysKeyMemCache.get(path); - return null; - } - - @Override - public void put(ItemPath thisItem, C2KLocalObject obj) - throws PersistencyException { - - // create item cache if not present - Map sysKeyMemCache; - synchronized (memoryCache) { - if (memoryCache.containsKey(thisItem)) - sysKeyMemCache = memoryCache.get(thisItem); - else { - sysKeyMemCache = new HashMap(); - memoryCache.put(thisItem, sysKeyMemCache); - } - } - - // store object in the cache - String path = ClusterStorage.getPath(obj); - synchronized(sysKeyMemCache) { - sysKeyMemCache.put(path, obj); - } - - } - - @Override - public void delete(ItemPath thisItem, String path) - throws PersistencyException { - Map sysKeyMemCache = memoryCache.get(thisItem); - if (sysKeyMemCache != null) { - synchronized (sysKeyMemCache) { - if (sysKeyMemCache.containsKey(path)) { - sysKeyMemCache.remove(path); - if (sysKeyMemCache.isEmpty()) { - synchronized (memoryCache) { - memoryCache.remove(thisItem); - } - } - } - } - } - } - - @Override - public String[] getClusterContents(ItemPath thisItem, String path) - throws PersistencyException { - Map sysKeyMemCache = memoryCache.get(thisItem); - ArrayList result = new ArrayList(); - if (sysKeyMemCache != null) { - while (path.endsWith("/")) - path = path.substring(0,path.length()-1); - path = path+"/"; - for (String thisPath : sysKeyMemCache.keySet()) { - if (thisPath.startsWith(path)) { - String end = thisPath.substring(path.length()); - int slash = end.indexOf('/'); - String suffix = slash>-1?end.substring(0, slash):end; - if (!result.contains(suffix)) result.add(suffix); - } - } - } - return result.toArray(new String[result.size()]); - } - - public void dumpContents(ItemPath thisItem) { - synchronized(memoryCache) { - Logger.msg(0, "Cached Objects of Entity "+thisItem); - Map sysKeyMemCache = memoryCache.get(thisItem); - if (sysKeyMemCache == null) { - Logger.msg(0, "No cache found"); - return; - } - try { - synchronized(sysKeyMemCache) { - for (Object name : sysKeyMemCache.keySet()) { - String path = (String) name; - try { - Logger.msg(0, " Path "+path+": "+sysKeyMemCache.get(path).getClass().getName()); - } catch (NullPointerException e) { - Logger.msg(0, " Path "+path+": reaped"); - } - } - } - } catch (ConcurrentModificationException ex) { - Logger.msg(0, "Cache modified - aborting"); - } - } - Logger.msg(0, "Total number of cached entities: "+memoryCache.size()); - } -} -- cgit v1.2.3