From da731d2bb81666b9c697d9099da632e7dfcdc0f7 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 9 Sep 2014 12:13:21 +0200 Subject: Replaced int sysKey Item identifier with UUID, which is now portable. ItemPath objects are now used to identify Items throughout the kernel, replacing ints and Integers. --- .../com/c2kernel/entity/transfer/TransferSet.java | 47 +++++----------------- 1 file changed, 9 insertions(+), 38 deletions(-) (limited to 'src/main/java/com/c2kernel/entity/transfer/TransferSet.java') diff --git a/src/main/java/com/c2kernel/entity/transfer/TransferSet.java b/src/main/java/com/c2kernel/entity/transfer/TransferSet.java index 7a5833f..adc3d8c 100644 --- a/src/main/java/com/c2kernel/entity/transfer/TransferSet.java +++ b/src/main/java/com/c2kernel/entity/transfer/TransferSet.java @@ -4,7 +4,6 @@ import java.io.File; import java.util.ArrayList; import com.c2kernel.lookup.ItemPath; -import com.c2kernel.persistency.NextKeyManager; import com.c2kernel.process.Gateway; import com.c2kernel.utils.FileStringUtility; import com.c2kernel.utils.Logger; @@ -25,13 +24,13 @@ public class TransferSet { public TransferSet() { } - public TransferSet(int[] sysKeys) { + public TransferSet(ItemPath[] itemPaths) { items = new ArrayList(); - for (int sysKey : sysKeys) { + for (ItemPath item : itemPaths) { try { - items.add(new TransferItem(sysKey)); + items.add(new TransferItem(item)); } catch (Exception ex) { - Logger.error("Could not add item "+sysKey); + Logger.error("Could not add item "+item); Logger.error(ex); } } @@ -43,9 +42,9 @@ public class TransferSet { FileStringUtility.createNewDir(dir.getAbsolutePath()); for (TransferItem element : items) { try { - element.exportItem(new File(dir, String.valueOf(element.sysKey)), "/"); + element.exportItem(new File(dir, element.itemPath.getUUID().toString()), "/"); } catch (Exception ex) { - Logger.error("Error dumping item "+element.sysKey); + Logger.error("Error dumping item "+element.itemPath); Logger.error(ex); } } @@ -61,42 +60,14 @@ public class TransferSet { public void importPackage(File rootDir) { for (TransferItem element : items) { - Logger.msg(5, "Importing "+element.sysKey); + Logger.msg(5, "Importing "+element.itemPath); try { - element.importItem(new File(rootDir, String.valueOf(element.sysKey))); + element.importItem(new File(rootDir, element.itemPath.getUUID().toString())); } catch (Exception ex) { - Logger.error("Import of item "+element.sysKey+" failed. Rolling back"); + Logger.error("Import of item "+element.itemPath+" failed. Rolling back"); Logger.error(ex); Gateway.getStorage().abort(element); } } - checkLastKey(); - } - - private void checkLastKey() - { - // find highest key in out import set - int packageLastKey = 0; - for (TransferItem element : items) { - if (element.sysKey > packageLastKey) - packageLastKey = element.sysKey; - } - - try - { // find the current last key - NextKeyManager nextKeyMan = Gateway.getNextKeyManager(); - ItemPath lastKey = nextKeyMan.getLastEntityPath(); - Logger.msg(1, "Last key imported was "+packageLastKey+". LDAP lastkey was "+lastKey.getSysKey()); - - - if (packageLastKey > lastKey.getSysKey()) { // set new last - Logger.msg(1, "Updating lastKey to "+packageLastKey); - nextKeyMan.writeLastEntityKey(packageLastKey); - } - } - catch (Exception ex) - { - Logger.error("Exception::LoadKeys::processFile() " + ex); - } } } -- cgit v1.2.3