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 --- .../c2kernel/persistency/XMLClusterStorage.java | 176 --------------------- 1 file changed, 176 deletions(-) delete mode 100644 src/main/java/com/c2kernel/persistency/XMLClusterStorage.java (limited to 'src/main/java/com/c2kernel/persistency/XMLClusterStorage.java') diff --git a/src/main/java/com/c2kernel/persistency/XMLClusterStorage.java b/src/main/java/com/c2kernel/persistency/XMLClusterStorage.java deleted file mode 100644 index 4a250e5..0000000 --- a/src/main/java/com/c2kernel/persistency/XMLClusterStorage.java +++ /dev/null @@ -1,176 +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.io.File; -import java.util.ArrayList; - -import com.c2kernel.common.PersistencyException; -import com.c2kernel.entity.C2KLocalObject; -import com.c2kernel.lookup.InvalidItemPathException; -import com.c2kernel.lookup.ItemPath; -import com.c2kernel.persistency.outcome.Outcome; -import com.c2kernel.process.Gateway; -import com.c2kernel.process.auth.Authenticator; -import com.c2kernel.utils.FileStringUtility; -import com.c2kernel.utils.Logger; - -public class XMLClusterStorage extends ClusterStorage { - String rootDir=null; - - public XMLClusterStorage() { - } - - @Override - public void open(Authenticator auth) throws PersistencyException { - String rootProp = Gateway.getProperties().getString("XMLStorage.root"); - if (rootProp == null) - throw new PersistencyException("XMLClusterStorage.open() - Root path not given in config file."); - - rootDir = new File(rootProp).getAbsolutePath(); - - if( !FileStringUtility.checkDir( rootDir ) ) { - Logger.error("XMLClusterStorage.open() - Path " + rootDir + "' does not exist. Attempting to create."); - boolean success = FileStringUtility.createNewDir(rootDir); - if (!success) throw new PersistencyException("XMLClusterStorage.open() - Could not create dir "+ rootDir +". Cannot continue."); - } - } - - @Override - public void close() { - rootDir = null; - } - - // introspection - @Override - public short queryClusterSupport(String clusterType) { - return ClusterStorage.READWRITE; - } - - @Override - public String getName() { - return "XML File Cluster Storage"; - } - - @Override - public String getId() { - return "XML"; - } - - /* object manipulation */ - - // retrieve object by path - @Override - public C2KLocalObject get(ItemPath itemPath, String path) throws PersistencyException { - try { - String type = ClusterStorage.getClusterType(path); - String filePath = getFilePath(itemPath, path)+".xml"; - String objString = FileStringUtility.file2String(filePath); - if (objString.length() == 0) return null; - Logger.debug(9, objString); - if (type.equals("Outcome")) - return new Outcome(path, objString); - else { - C2KLocalObject obj = (C2KLocalObject)Gateway.getMarshaller().unmarshall(objString); - return obj; - } - - } catch (Exception e) { - Logger.msg(3,"XMLClusterStorage.get() - The path "+path+" from "+itemPath+" does not exist.: "+e.getMessage()); - } - return null; - } - - // store object by path - @Override - public void put(ItemPath itemPath, C2KLocalObject obj) throws PersistencyException { - try { - String filePath = getFilePath(itemPath, getPath(obj)+".xml"); - Logger.msg(7, "Writing "+filePath); - String data = Gateway.getMarshaller().marshall(obj); - - String dir = filePath.substring(0, filePath.lastIndexOf('/')); - if( !FileStringUtility.checkDir( dir ) ) { - boolean success = FileStringUtility.createNewDir(dir); - if (!success) throw new PersistencyException("XMLClusterStorage.put() - Could not create dir "+ dir +". Cannot continue."); - } - FileStringUtility.string2File(filePath, data); - } catch (Exception e) { - Logger.error(e); - throw new PersistencyException("XMLClusterStorage.put() - Could not write "+getPath(obj)+" to "+itemPath); - } - } - - // delete cluster - @Override - public void delete(ItemPath itemPath, String path) throws PersistencyException { - try { - String filePath = getFilePath(itemPath, path+".xml"); - boolean success = FileStringUtility.deleteDir(filePath, true, true); - if (success) return; - filePath = getFilePath(itemPath, path); - success = FileStringUtility.deleteDir(filePath, true, true); - if (success) return; - } catch(Exception e) { } - throw new PersistencyException("XMLClusterStorage.delete() - Failure deleting path "+path+" in "+itemPath); - } - - /* navigation */ - - // directory listing - @Override - public String[] getClusterContents(ItemPath itemPath, String path) throws PersistencyException { - String[] result = new String[0]; - try { - String filePath = getFilePath(itemPath, path); - ArrayList paths = FileStringUtility.listDir( filePath, true, false ); - if (paths == null) return result; // dir doesn't exist yet - ArrayList contents = new ArrayList(); - String previous = null; - for (int i=0; i -1) next = next.substring(next.lastIndexOf('/')+1); - contents.add(next); - } - - result = contents.toArray(result); - return result; - } catch (Exception e) { - Logger.error(e); - throw new PersistencyException("XMLClusterStorage.getClusterContents() - Could not get contents of "+path+" from "+itemPath+": "+e.getMessage()); - } - } - - protected String getFilePath(ItemPath itemPath, String path) throws InvalidItemPathException { - if (path.length() == 0 || path.charAt(0) != '/') path = "/"+path; - String filePath = rootDir+itemPath.toString()+path; - Logger.msg(8, "XMLClusterStorage.getFilePath() - "+filePath); - return filePath; - } -} -- cgit v1.2.3