[Joafip-svn] SF.net SVN: joafip:[3045] trunk
Brought to you by:
luc_peuvrier
|
From: <luc...@us...> - 2012-04-29 16:58:22
|
Revision: 3045
http://joafip.svn.sourceforge.net/joafip/?rev=3045&view=rev
Author: luc_peuvrier
Date: 2012-04-29 16:58:13 +0000 (Sun, 29 Apr 2012)
Log Message:
-----------
WIP btree plus: implementation independant move to common joafip-kvstore
Modified Paths:
--------------
trunk/joafip/src/test/java/net/sf/joafip/service/TestDataManagerMultiFile.java
trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumPersistenceMemory.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel300/AbstractTestSubstitutionWithMethodInterception.java
trunk/joafip/src/test/java/net/sf/joafip/service/rel300/TestExclusiveDataAccessSession.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/TestGarbageForegroundMemory.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/TestGarbageInBackground.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/TestLinkManagementInMemory.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/TestNoGarbageInMemory.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/TestObjectReferenceLinkInMemory.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreForPersistenteClassMemoryDirect.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreForPersistenteClassMemoryLazy.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreVisitedModified.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreWithBobMemoryDirect.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreWithBobMemoryLazy.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/TestPersistableCodeGeneratorInStore.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/garbage/TestLinkManager.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/garbage/TestStoreGarbager.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractTestIoManager.java
trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/TestProxyFieldReflect.java
trunk/joafip-4test/src/main/java/net/sf/joafip/bugtree/MainTreeDual.java
trunk/joafip-4test/src/main/java/net/sf/joafip/bugtree/MainTreeMultiFile.java
trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapFileCheckerDataManager.java
Added Paths:
-----------
trunk/joafip-kvstore/src/test/java/net/sf/joafip/kvstore/service/DualWrapDataManager.java
trunk/joafip-kvstore/src/test/java/net/sf/joafip/kvstore/service/FileForStorableBridge.java
trunk/joafip-kvstore/src/test/java/net/sf/joafip/kvstore/service/HeapMemoryDataManagerMock.java
trunk/joafip-kvstore/src/test/java/net/sf/joafip/kvstore/service/HeapMultiFileDataManager.java
Removed Paths:
-------------
trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/DualWrapDataManager.java
trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/FileForStorableBridge.java
trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapMemoryDataManagerMock.java
trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapMultiFileDataManager.java
Modified: trunk/joafip/src/test/java/net/sf/joafip/service/TestDataManagerMultiFile.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/service/TestDataManagerMultiFile.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/service/TestDataManagerMultiFile.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -22,7 +22,7 @@
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestConstant;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMultiFileDataManager;
+import net.sf.joafip.kvstore.service.HeapMultiFileDataManager;
/**
*
Modified: trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumPersistenceMemory.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumPersistenceMemory.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/service/bug/savenum/TestEnumPersistenceMemory.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -31,7 +31,7 @@
import net.sf.joafip.TestException;
import net.sf.joafip.entity.EnumFilePersistenceCloseAction;
import net.sf.joafip.entity.MutableInteger;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.service.FilePersistenceBuilder;
import net.sf.joafip.service.FilePersistenceClassNotFoundException;
Modified: trunk/joafip/src/test/java/net/sf/joafip/service/rel300/AbstractTestSubstitutionWithMethodInterception.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/service/rel300/AbstractTestSubstitutionWithMethodInterception.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/service/rel300/AbstractTestSubstitutionWithMethodInterception.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -26,7 +26,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.service.FilePersistence;
import net.sf.joafip.service.FilePersistenceBuilder;
Modified: trunk/joafip/src/test/java/net/sf/joafip/service/rel300/TestExclusiveDataAccessSession.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/service/rel300/TestExclusiveDataAccessSession.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/service/rel300/TestExclusiveDataAccessSession.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -26,7 +26,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.service.FilePersistence;
import net.sf.joafip.service.FilePersistenceBuilder;
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/TestGarbageForegroundMemory.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/TestGarbageForegroundMemory.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/TestGarbageForegroundMemory.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -19,7 +19,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
/**
* garbage in foreground implementation
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/TestGarbageInBackground.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/TestGarbageInBackground.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/TestGarbageInBackground.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -19,7 +19,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
/**
* garbage in background implementation
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/TestLinkManagementInMemory.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/TestLinkManagementInMemory.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/TestLinkManagementInMemory.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -19,7 +19,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
/**
* test reference link management for garbage in memory<br>
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/TestNoGarbageInMemory.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/TestNoGarbageInMemory.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/TestNoGarbageInMemory.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -19,7 +19,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
/**
*
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/TestObjectReferenceLinkInMemory.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/TestObjectReferenceLinkInMemory.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/TestObjectReferenceLinkInMemory.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -19,7 +19,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
/**
*
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreForPersistenteClassMemoryDirect.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreForPersistenteClassMemoryDirect.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreForPersistenteClassMemoryDirect.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -19,7 +19,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
@NotStorableClass
@StorableAccess
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreForPersistenteClassMemoryLazy.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreForPersistenteClassMemoryLazy.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreForPersistenteClassMemoryLazy.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -19,7 +19,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
@NotStorableClass
@StorableAccess
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreVisitedModified.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreVisitedModified.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreVisitedModified.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -29,7 +29,7 @@
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
import net.sf.joafip.entity.MutableInteger;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.store.entity.ForTestVisitedModified;
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreWithBobMemoryDirect.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreWithBobMemoryDirect.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreWithBobMemoryDirect.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -19,7 +19,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
@NotStorableClass
@StorableAccess
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreWithBobMemoryLazy.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreWithBobMemoryLazy.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/TestStoreWithBobMemoryLazy.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -19,7 +19,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
@NotStorableClass
@StorableAccess
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/TestPersistableCodeGeneratorInStore.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/TestPersistableCodeGeneratorInStore.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/bytecode/TestPersistableCodeGeneratorInStore.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -21,7 +21,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.store.service.StoreClassNotFoundException;
import net.sf.joafip.store.service.StoreDataCorruptedException;
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/garbage/TestLinkManager.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/garbage/TestLinkManager.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/garbage/TestLinkManager.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -29,8 +29,8 @@
import net.sf.joafip.DoNotTransform;
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.record.entity.DataRecordIdentifier;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.store.entity.StoreHeader;
import net.sf.joafip.store.entity.garbage.ReferenceLinkGarbageException;
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/garbage/TestStoreGarbager.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/garbage/TestStoreGarbager.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/garbage/TestStoreGarbager.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -36,9 +36,9 @@
import net.sf.joafip.DoNotTransform;
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.record.entity.DataRecordIdentifier;
import net.sf.joafip.kvstore.service.HeapException;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.redblacktree.service.RBTException;
import net.sf.joafip.service.JoafipMutex;
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractTestIoManager.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractTestIoManager.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/objectio/manager/AbstractTestIoManager.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -28,9 +28,9 @@
import net.sf.joafip.DoNotTransform;
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.record.entity.DataRecordIdentifier;
import net.sf.joafip.kvstore.service.HeapException;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.service.ClassLoaderProvider;
import net.sf.joafip.store.entity.StoreSynchro;
Modified: trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/TestProxyFieldReflect.java
===================================================================
--- trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/TestProxyFieldReflect.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip/src/test/java/net/sf/joafip/store/service/proxy/TestProxyFieldReflect.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -21,8 +21,8 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.record.entity.DataRecordIdentifier;
+import net.sf.joafip.kvstore.service.HeapMemoryDataManagerMock;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.service.ClassLoaderProvider;
import net.sf.joafip.store.entity.StoreHeader;
Modified: trunk/joafip-4test/src/main/java/net/sf/joafip/bugtree/MainTreeDual.java
===================================================================
--- trunk/joafip-4test/src/main/java/net/sf/joafip/bugtree/MainTreeDual.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip-4test/src/main/java/net/sf/joafip/bugtree/MainTreeDual.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -5,10 +5,10 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
import net.sf.joafip.TestException;
-import net.sf.joafip.heapfile.service.DualWrapDataManager;
import net.sf.joafip.heapfile.service.HeapFileDataManager;
import net.sf.joafip.kvstore.entity.HeapFileSetup;
import net.sf.joafip.kvstore.service.BlockDataManager;
+import net.sf.joafip.kvstore.service.DualWrapDataManager;
import net.sf.joafip.kvstore.service.HeapException;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.redblacktree.service.RBTException;
Modified: trunk/joafip-4test/src/main/java/net/sf/joafip/bugtree/MainTreeMultiFile.java
===================================================================
--- trunk/joafip-4test/src/main/java/net/sf/joafip/bugtree/MainTreeMultiFile.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip-4test/src/main/java/net/sf/joafip/bugtree/MainTreeMultiFile.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -4,7 +4,7 @@
import net.sf.joafip.NotStorableClass;
import net.sf.joafip.StorableAccess;
-import net.sf.joafip.heapfile.service.HeapMultiFileDataManager;
+import net.sf.joafip.kvstore.service.HeapMultiFileDataManager;
import net.sf.joafip.kvstore.service.IHeapDataManager;
import net.sf.joafip.redblacktree.service.RBTException;
import net.sf.joafip.service.FilePersistenceBuilder;
Deleted: trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/DualWrapDataManager.java
===================================================================
--- trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/DualWrapDataManager.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/DualWrapDataManager.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -1,370 +0,0 @@
-/*
- * Copyright 2011 Luc Peuvrier
- *
- * This file is a part of JOAFIP.
- *
- * JOAFIP is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License.
- *
- * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE
- * Licensed under the LGPL License, Version 3, 29 June 2007 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.gnu.org/licenses/lgpl.html
- *
- * JOAFIP is distributed in the hope that it will be useful, but
- * unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.joafip.heapfile.service;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.Set;
-
-import net.sf.joafip.kvstore.record.entity.DataRecordIdentifier;
-import net.sf.joafip.kvstore.record.service.IDataRecordKeyManager;
-import net.sf.joafip.kvstore.service.HeapException;
-import net.sf.joafip.kvstore.service.HeapRuntimeException;
-import net.sf.joafip.kvstore.service.IHeapDataManager;
-
-/**
- *
- * @author luc peuvrier
- *
- */
-public class DualWrapDataManager implements IHeapDataManager {
-
- private static final String DATA_RECORD_MISMATCH = "data record mismatch ";
-
- private final IHeapDataManager firstDataManager;
-
- private final IHeapDataManager secondDataManager;
-
- public DualWrapDataManager(final IHeapDataManager firstDataManager,
- final IHeapDataManager secondDataManager) {
- super();
- this.firstDataManager = firstDataManager;
- this.secondDataManager = secondDataManager;
- }
-
- @Override
- public boolean isDataLost() {
- // no implementation
- return false;
- }
-
- @Override
- public void startService(final boolean removeFiles) throws HeapException {
- firstDataManager.startService(removeFiles);
- secondDataManager.startService(removeFiles);
- }
-
- @Override
- public void stopService() throws HeapException {
- firstDataManager.stopService();
- secondDataManager.stopService();
- }
-
- @Override
- public boolean isServiceStarted() {
- final boolean started1 = firstDataManager.isServiceStarted();
- final boolean started2 = secondDataManager.isServiceStarted();
- if (started1 != started2) {
- throw new HeapRuntimeException("started stated missmatch "
- + started1 + " " + started2);
- }
- return started1;
- }
-
- @Override
- public void clear() throws HeapException {
- firstDataManager.clear();
- secondDataManager.clear();
- }
-
- @Override
- public DataRecordIdentifier getNextFreeDataRecordIdentifier()
- throws HeapException {
- final DataRecordIdentifier next1 = firstDataManager
- .getNextFreeDataRecordIdentifier();
- final DataRecordIdentifier next2 = secondDataManager
- .getNextFreeDataRecordIdentifier();
- if (next1.value != next2.value) {
- throw new HeapException("new data record identifier missmatch "
- + next1.value + " " + next2.value);
- }
- return next1;
- }
-
- @Override
- public void setNextFreeDataRecordIdentifier(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- firstDataManager.setNextFreeDataRecordIdentifier(dataRecordIdentifier);
- secondDataManager.setNextFreeDataRecordIdentifier(dataRecordIdentifier);
- }
-
- @Override
- public DataRecordIdentifier getNewDataRecordIdentifier()
- throws HeapException {
- final DataRecordIdentifier new1 = firstDataManager
- .getNewDataRecordIdentifier();
- final DataRecordIdentifier new2 = secondDataManager
- .getNewDataRecordIdentifier();
- if (new1.value != new2.value) {
- throw new HeapException("new data record identifier missmatch "
- + new1.value + " " + new2.value);
- }
- return new1;
- }
-
- @Override
- public boolean hasDataRecord(final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- final boolean has1 = firstDataManager
- .hasDataRecord(dataRecordIdentifier);
- final boolean has2 = secondDataManager
- .hasDataRecord(dataRecordIdentifier);
- if (has1 != has2) {
- throw new HeapException("has data record missmatch " + has1 + " "
- + has2);
- }
- return has1;
- }
-
- @Override
- public byte[] readDataRecord(final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- final byte[] data1 = firstDataManager
- .readDataRecord(dataRecordIdentifier);
- final byte[] data2 = secondDataManager
- .readDataRecord(dataRecordIdentifier);
- if (!Arrays.equals(data1, data2)) {
- throw new HeapException("data differs");
- }
- return data1;
- }
-
- @Override
- public boolean writeDataRecord(
- final DataRecordIdentifier dataRecordIdentifier, final byte[] data)
- throws HeapException {
- final boolean created1 = firstDataManager.writeDataRecord(
- dataRecordIdentifier, data);
- final boolean created2 = secondDataManager.writeDataRecord(
- dataRecordIdentifier, data);
- if (created1 != created2) {
- throw new HeapException("created state missmatch " + created1 + " "
- + created2 + " for " + dataRecordIdentifier);
- }
- return created1;
- }
-
- @Override
- public boolean deleteDataRecord(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- final boolean deleted1 = firstDataManager
- .deleteDataRecord(dataRecordIdentifier);
- final boolean deleted2 = secondDataManager
- .deleteDataRecord(dataRecordIdentifier);
- if (deleted1 != deleted2) {
- throw new HeapException("deleted state missmatch " + deleted1 + " "
- + deleted2);
- }
- return deleted1;
- }
-
- @Override
- public DataRecordIdentifier removeFirstDataRecord() throws HeapException {
- final DataRecordIdentifier dr1 = firstDataManager
- .removeFirstDataRecord();
- final DataRecordIdentifier dr2 = secondDataManager
- .removeFirstDataRecord();
- if (dr1.value != dr2.value) {
- throw new HeapException(DATA_RECORD_MISMATCH + dr1.value + " "
- + dr2.value);
- }
- return dr1;
- }
-
- @Override
- public void flush() throws HeapException {
- firstDataManager.flush();
- secondDataManager.flush();
- }
-
- @Override
- public void clearStandbyModification() throws HeapException {
- firstDataManager.clearStandbyModification();
- secondDataManager.clearStandbyModification();
- }
-
- @Override
- public DataRecordIdentifier firstDataRecordIdentifier()
- throws HeapException {
- final DataRecordIdentifier dr1 = firstDataManager
- .firstDataRecordIdentifier();
- final DataRecordIdentifier dr2 = secondDataManager
- .firstDataRecordIdentifier();
- if (dr1.value != dr2.value) {
- throw new HeapException(DATA_RECORD_MISMATCH + dr1.value + " "
- + dr2.value);
- }
- return dr1;
- }
-
- @Override
- public DataRecordIdentifier lastDataRecordIdentifier() throws HeapException {
- final DataRecordIdentifier dr1 = firstDataManager
- .lastDataRecordIdentifier();
- final DataRecordIdentifier dr2 = secondDataManager
- .lastDataRecordIdentifier();
- if (dr1.value != dr2.value) {
- throw new HeapException(DATA_RECORD_MISMATCH + dr1.value + " "
- + dr2.value);
- }
- return dr1;
- }
-
- @Override
- public DataRecordIdentifier lowerDataRecordIdentifier(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- final DataRecordIdentifier dr1 = firstDataManager
- .lowerDataRecordIdentifier(dataRecordIdentifier);
- final DataRecordIdentifier dr2 = secondDataManager
- .lowerDataRecordIdentifier(dataRecordIdentifier);
- if (dr1.value != dr2.value) {
- throw new HeapException(DATA_RECORD_MISMATCH + dr1.value + " "
- + dr2.value);
- }
- return dr1;
- }
-
- @Override
- public DataRecordIdentifier floorDataRecordIdentifier(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- final DataRecordIdentifier dr1 = firstDataManager
- .floorDataRecordIdentifier(dataRecordIdentifier);
- final DataRecordIdentifier dr2 = secondDataManager
- .floorDataRecordIdentifier(dataRecordIdentifier);
- if (dr1.value != dr2.value) {
- throw new HeapException(DATA_RECORD_MISMATCH + dr1.value + " "
- + dr2.value);
- }
- return dr1;
- }
-
- @Override
- public DataRecordIdentifier ceilingDataRecordIdentifier(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- final DataRecordIdentifier dr1 = firstDataManager
- .ceilingDataRecordIdentifier(dataRecordIdentifier);
- final DataRecordIdentifier dr2 = secondDataManager
- .ceilingDataRecordIdentifier(dataRecordIdentifier);
- if (dr1.value != dr2.value) {
- throw new HeapException(DATA_RECORD_MISMATCH + dr1.value + " "
- + dr2.value);
- }
- return dr1;
- }
-
- @Override
- public DataRecordIdentifier higherDataRecordIdentifier(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- final DataRecordIdentifier dr1 = firstDataManager
- .higherDataRecordIdentifier(dataRecordIdentifier);
- final DataRecordIdentifier dr2 = secondDataManager
- .higherDataRecordIdentifier(dataRecordIdentifier);
- if (dr1.value != dr2.value) {
- throw new HeapException(DATA_RECORD_MISMATCH + dr1.value + " "
- + dr2.value);
- }
- return dr1;
- }
-
- @Override
- public int getNumberOfDataRecord() throws HeapException {
- // no implementation
- return 0;
- }
-
- @Override
- public int getNumberOfFreeRecord() throws HeapException {
- // no implementation
- return 0;
- }
-
- @Override
- public long heapSize() throws HeapException {
- // no implementation
- return 0;
- }
-
- @Override
- public long freeSize() throws HeapException {
- // no implementation
- return 0;
- }
-
- @Override
- public long usedSize() throws HeapException {
- // no implementation
- return 0;
- }
-
- @Override
- public String backup(final long identifier, final int maxBackup)
- throws HeapException {
- // no implementation
- return null;
- }
-
- @Override
- public String getStorageFileName() throws HeapException {
- // no implementation
- return null;
- }
-
- @Override
- public Set<DataRecordIdentifier> getDataRecordIdentifierSet()
- throws HeapException {
- // no implementation
- return null;
- }
-
- @Override
- public Iterator<DataRecordIdentifier> dataRecordIterator()
- throws HeapException {
- // no implementation
- return null;
- }
-
- @Override
- public long getRecordPositionInfile(final DataRecordIdentifier identifier)
- throws HeapException {
- throw new HeapException("unsupported");
- }
-
- @Override
- public long getLastRecordPositionInFile() throws HeapException {
- throw new HeapException("unsupported");
- }
-
- @Override
- public void setDataRecordKeyComparator(
- final IDataRecordKeyManager dataRecordKeyComparator)
- throws HeapException {
- firstDataManager.setDataRecordKeyComparator(dataRecordKeyComparator);
- secondDataManager.setDataRecordKeyComparator(dataRecordKeyComparator);
- }
-}
Deleted: trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/FileForStorableBridge.java
===================================================================
--- trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/FileForStorableBridge.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/FileForStorableBridge.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -1,106 +0,0 @@
-package net.sf.joafip.heapfile.service;
-
-import java.io.File;
-
-import net.sf.joafip.file.service.FileIOException;
-import net.sf.joafip.kvstore.entity.ToBackupRecord;
-import net.sf.joafip.kvstore.service.FileForStorable;
-import net.sf.joafip.kvstore.service.HeapException;
-import net.sf.joafip.kvstore.service.IFileForStorable;
-
-public class FileForStorableBridge implements IFileForStorable {
-
- private final IFileForStorable delegate;
-
- public FileForStorableBridge(final IFileForStorable delegate) {
- super();
- this.delegate = delegate;
- }
-
- @Override
- public void resetFileSize() throws HeapException {
- delegate.resetFileSize();
- }
-
- @Override
- public void close() throws HeapException {
- // delegate.close();
- }
-
- @Override
- public void deleteFileIfExists() throws HeapException {
- delegate.deleteFileIfExists();
- }
-
- @Override
- public void deleteFileIfExistsRenaming() throws HeapException {
- delegate.deleteFileIfExistsRenaming();
- }
-
- @Override
- public void flush() throws HeapException {
- delegate.flush();
- }
-
- @Override
- public File getFile() {
- return delegate.getFile();
- }
-
- @Override
- public long getFileSize() throws HeapException {
- return delegate.getFileSize();
- }
-
- @Override
- public void open() throws HeapException {
- // delegate.open();
- }
-
- @Override
- public int read(final byte[] ioBuffer) throws HeapException { // NOPMD
- return delegate.read(ioBuffer);
- }
-
- @Override
- public int read(final byte[] data, final int offset, final int length)
- throws HeapException {
- return delegate.read(data, offset, length);
- }
-
- @Override
- public void seek(final long positionInFile) throws HeapException {
- delegate.seek(positionInFile);
- }
-
- @Override
- public void write(final byte[] ioBuffer) throws HeapException {
- delegate.write(ioBuffer);
- }
-
- @Override
- public void write(final ToBackupRecord toBackupRecord) throws HeapException {
- delegate.write(toBackupRecord);
- }
-
- @Override
- public void copy(final FileForStorable fileForStorable)
- throws HeapException {
- delegate.copy(fileForStorable);
- }
-
- @Override
- public void copy(String fileName) throws FileIOException {
- delegate.copy(fileName);
- }
-
- @Override
- public boolean isUseCache() {
- return delegate.isUseCache();
- }
-
- @Override
- public int getCachePageSize() {
- return delegate.getCachePageSize();
- }
-}
Modified: trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapFileCheckerDataManager.java
===================================================================
--- trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapFileCheckerDataManager.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapFileCheckerDataManager.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -25,6 +25,7 @@
import net.sf.joafip.kvstore.record.entity.DataRecordIdentifier;
import net.sf.joafip.kvstore.record.service.IDataRecordKeyManager;
import net.sf.joafip.kvstore.service.HeapException;
+import net.sf.joafip.kvstore.service.HeapMultiFileDataManager;
import net.sf.joafip.kvstore.service.IHeapDataManager;
/**
Deleted: trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapMemoryDataManagerMock.java
===================================================================
--- trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapMemoryDataManagerMock.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapMemoryDataManagerMock.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -1,305 +0,0 @@
-/*
- * Copyright 2007 Luc Peuvrier
- *
- * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE
- * Licensed under the LGPL License, Version 3, 29 June 2007 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.joafip.heapfile.service;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-import net.sf.joafip.NotStorableClass;
-import net.sf.joafip.kvstore.record.entity.DataRecordIdentifier;
-import net.sf.joafip.kvstore.record.service.IDataRecordKeyManager;
-import net.sf.joafip.kvstore.service.AbstractHeapDataManager;
-import net.sf.joafip.kvstore.service.HeapException;
-
-/**
- * mock of heap data manager in memory for tests
- *
- * @author luc peuvrier
- *
- */
-@NotStorableClass
-public class HeapMemoryDataManagerMock extends AbstractHeapDataManager
- implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -955909842940111778L;
-
- private static final String UNSUPPORTED = "unsupported";
-
- /** simulate the data in file */
- private final Map<DataRecordIdentifier, byte[]> fileRecordMap =
- /**/new TreeMap<DataRecordIdentifier, byte[]>();
-
- private final Map<DataRecordIdentifier, byte[]> toWritePendigRecordMap =
- /**/new TreeMap<DataRecordIdentifier, byte[]>();
-
- private final Set<DataRecordIdentifier> toDeletePending =
- /**/new TreeSet<DataRecordIdentifier>();
-
- private DataRecordIdentifier nextFreeIdentifier = DataRecordIdentifier.ZERO;
-
- private final List<DataRecordIdentifier> dataRecordIdentifierCreatedList =
- /**/new LinkedList<DataRecordIdentifier>();
-
- @Override
- protected void startServiceImpl(final boolean removeFiles)
- throws HeapException {
- if (removeFiles) {
- fileRecordMap.clear();
- nextFreeIdentifier = DataRecordIdentifier.ZERO;
- }
- toWritePendigRecordMap.clear();
- toDeletePending.clear();
- }
-
- @Override
- protected void stopServiceImpl() throws HeapException {
- toWritePendigRecordMap.clear();
- toDeletePending.clear();
- }
-
- @Override
- protected void clearImpl() throws HeapException {
- fileRecordMap.clear();
- nextFreeIdentifier = DataRecordIdentifier.ZERO;
- toWritePendigRecordMap.clear();
- toDeletePending.clear();
- }
-
- @Override
- public boolean deleteDataRecordImpl(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- toWritePendigRecordMap.remove(dataRecordIdentifier);
- return toDeletePending.add(dataRecordIdentifier);
- }
-
- @Override
- protected DataRecordIdentifier removeFirstDataRecordImpl()
- throws HeapException {
- final Iterator<DataRecordIdentifier> iterator = fileRecordMap.keySet()
- .iterator();
- final DataRecordIdentifier dataRecordIdentifier;
- if (iterator.hasNext()) {
- dataRecordIdentifier = iterator.next();
- deleteDataRecordImpl(dataRecordIdentifier);
- } else {
- dataRecordIdentifier = null;
- }
- return dataRecordIdentifier;
- }
-
- @Override
- public DataRecordIdentifier getNewDataRecordIdentifierImpl()
- throws HeapException {
- final DataRecordIdentifier identifier = nextFreeIdentifier;
- nextFreeIdentifier = new DataRecordIdentifier(identifier);
- if (logger.debugEnabled) {
- dataRecordIdentifierCreatedList.add(identifier);
- }
- return identifier;
- }
-
- @Override
- public byte[] readDataRecordImpl(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- byte[] data = toWritePendigRecordMap.get(dataRecordIdentifier);
- if (data == null) {
- data = fileRecordMap.get(dataRecordIdentifier);
- }
- final byte[] result;
- if (data == null) {
- result = null;
- } else {
- result = data.clone();
- }
- return result;
- }
-
- @Override
- public boolean writeDataRecordImpl(
- final DataRecordIdentifier dataRecordIdentifier, final byte[] data)
- throws HeapException {
- // fileRecordMap.put(dataRecordIdentifier, data);
- final boolean created = toWritePendigRecordMap.put(
- dataRecordIdentifier, data.clone()) == null;
- toDeletePending.remove(dataRecordIdentifier);
- if (logger.debugEnabled) {
- dataRecordIdentifierCreatedList.remove(dataRecordIdentifier);
- }
- return created;
- }
-
- @Override
- protected void flushImp() throws HeapException {
- for (Map.Entry<DataRecordIdentifier, byte[]> entry : toWritePendigRecordMap
- .entrySet()) {
- fileRecordMap.put(entry.getKey(), entry.getValue());
- }
- for (DataRecordIdentifier dataRecordIdentifier : toDeletePending) {
- fileRecordMap.remove(dataRecordIdentifier);
- }
- toWritePendigRecordMap.clear();
- toDeletePending.clear();
- if (logger.debugEnabled) {
- if (dataRecordIdentifierCreatedList.isEmpty()) {
- logger.debug("flush");
- } else {
- final StringBuilder stringBuilder = new StringBuilder();
- stringBuilder
- .append("flush but created data record not wrote: ");
- for (DataRecordIdentifier dataRecordIdentifier : dataRecordIdentifierCreatedList) {
- stringBuilder.append(dataRecordIdentifier);
- stringBuilder.append(' ');
- }
- logger.debug(stringBuilder.toString());
- }
- }
- }
-
- @Override
- protected void clearStandbyModificationImpl() throws HeapException {
- toWritePendigRecordMap.clear();
- toDeletePending.clear();
- if (logger.debugEnabled) {
- dataRecordIdentifierCreatedList.clear();
- }
- }
-
- @Override
- protected void closeHeapManagerAfterException() {
- toWritePendigRecordMap.clear();
- toDeletePending.clear();
- if (logger.debugEnabled) {
- dataRecordIdentifierCreatedList.clear();
- }
- }
-
- @Override
- protected void removeFiles() throws HeapException {
- fileRecordMap.clear();
- toWritePendigRecordMap.clear();
- toDeletePending.clear();
- if (logger.debugEnabled) {
- dataRecordIdentifierCreatedList.clear();
- }
- }
-
- @Override
- protected DataRecordIdentifier getNextFreeDataRecordIdentifierImpl()
- throws HeapException {
- return nextFreeIdentifier;
- }
-
- @Override
- protected void setNextFreeDataRecordIdentifierImpl(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- nextFreeIdentifier = dataRecordIdentifier;
- }
-
- @Override
- public int getNumberOfDataRecordImpl() throws HeapException {
- return getDataRecordIdentifierSet().size();
- }
-
- @Override
- public int getNumberOfFreeRecordImpl() {
- return 0;
- }
-
- @Override
- public long heapSizeImpl() {
- return 0;
- }
-
- @Override
- public long freeSizeImpl() {
- return 0;
- }
-
- @Override
- public long usedSizeImpl() {
- return 0;
- }
-
- @Override
- public boolean isDataLost() {
- // can not lost data
- return false;
- }
-
- @Override
- public Set<DataRecordIdentifier> getDataRecordIdentifierSetImpl() {
- final Set<DataRecordIdentifier> set = new TreeSet<DataRecordIdentifier>();
- set.addAll(fileRecordMap.keySet());
- set.addAll(toWritePendigRecordMap.keySet());
- set.removeAll(toDeletePending);
- return set;
- }
-
- @Override
- public boolean hasDataRecordImpl(
- final DataRecordIdentifier dataRecordIdentifier) {
- return (fileRecordMap.containsKey(dataRecordIdentifier) || toWritePendigRecordMap
- .containsKey(dataRecordIdentifier))
- && !toDeletePending.contains(dataRecordIdentifier);
- }
-
- @Override
- public String backup(final long identifier, final int maxBackup)
- throws HeapException {
- throw new HeapException(UNSUPPORTED);
- }
-
- @Override
- public String getStorageFileName() throws HeapException {
- throw new HeapException(UNSUPPORTED);
- }
-
- @Override
- public Iterator<DataRecordIdentifier> dataRecordIteratorImpl() {
- return getDataRecordIdentifierSetImpl().iterator();
- }
-
- @Override
- public long getRecordPositionInfile(final DataRecordIdentifier identifier)
- throws HeapException {
- throw new HeapException(UNSUPPORTED);
- }
-
- @Override
- public long getLastRecordPositionInFile() throws HeapException {
- throw new HeapException(UNSUPPORTED);
- }
-
- @Override
- public void setDataRecordKeyComparator(
- final IDataRecordKeyManager dataRecordKeyComparator) {
- throw new UnsupportedOperationException(
- "works only with long data record identifier");
- }
-}
\ No newline at end of file
Deleted: trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapMultiFileDataManager.java
===================================================================
--- trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapMultiFileDataManager.java 2012-04-29 16:51:38 UTC (rev 3044)
+++ trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/HeapMultiFileDataManager.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -1,476 +0,0 @@
-/*
- * Copyright 2007 Luc Peuvrier
- *
- * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE
- * Licensed under the LGPL License, Version 3, 29 June 2007 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.gnu.org/licenses/lgpl.html
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.joafip.heapfile.service;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.NavigableSet;
-import java.util.Set;
-import java.util.TreeSet;
-
-import net.sf.joafip.NotStorableClass;
-import net.sf.joafip.kvstore.record.entity.DataRecordIdentifier;
-import net.sf.joafip.kvstore.record.service.IDataRecordKeyManager;
-import net.sf.joafip.kvstore.service.AbstractHeapDataManager;
-import net.sf.joafip.kvstore.service.HeapException;
-
-/**
- * Data management on heap multiple file implementation<br>
- *
- * @author luc peuvrier
- *
- */
-@NotStorableClass
-public class HeapMultiFileDataManager extends AbstractHeapDataManager {
-
- /**
- *
- */
- private static final long serialVersionUID = 6544930761771904832L;
-
- private static final String IDENTIFIER = "identifier";
-
- private static final String UNSUPPORTED = "unsupported";
-
- private final File rootDirectory;
-
- public HeapMultiFileDataManager(final File rootDirectory) {
- super();
- this.rootDirectory = rootDirectory;
- }
-
- @Override
- protected void startServiceImpl(final boolean removeFiles)
- throws HeapException {
- if (removeFiles) {
- deleteDir(rootDirectory);
- }
- rootDirectory.mkdirs();
- }
-
- @Override
- protected void stopServiceImpl() throws HeapException {
- // no implementation
- }
-
- @Override
- protected void clearImpl() throws HeapException {
- deleteDir(rootDirectory);
- rootDirectory.mkdirs();
- }
-
- @Override
- public boolean deleteDataRecordImpl(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- final File file = fileForRecord(dataRecordIdentifier, false);
- final boolean deleted = file.exists();
- if (deleted) {
- file.delete();
-
- File parent = file.getParentFile();
- while (parent != null && !rootDirectory.equals(parent)) {
- if (parent.list().length == 0) {
- parent.delete();
- parent = parent.getParentFile();
- } else {
- parent = null;// NOPMD
- }
- }
-
- }
- return deleted;
- }
-
- @Override
- public byte[] readDataRecordImpl(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- final byte[] result;
- final File file = fileForRecord(dataRecordIdentifier, false);
- if (file.exists()) {
- ObjectInputStream objectInputStream = null;
- try {
- final FileInputStream fileInputStream = new FileInputStream(
- file);
- objectInputStream = new ObjectInputStream(fileInputStream);
- result = (byte[]) objectInputStream.readObject();
- } catch (Exception exception) {
- throw new HeapException(exception);
- } finally {
- if (objectInputStream != null) {
- try {
- objectInputStream.close();
- } catch (IOException exception) {// NOPMD
- // ignore error
- logger.error("close error", exception);
- }
- }
- }
- } else {
- result = null;
- }
- return result;
- }
-
- @Override
- public boolean writeDataRecordImpl(
- final DataRecordIdentifier dataRecordIdentifier, final byte[] data)
- throws HeapException {
- ObjectOutputStream objectOutputStream = null;
- try {
- final File fileForRecord = fileForRecord(dataRecordIdentifier, true);
- final boolean created = true ^ fileForRecord.exists();
- final FileOutputStream fileOutputStream = new FileOutputStream(
- fileForRecord);
- objectOutputStream = new ObjectOutputStream(fileOutputStream);
- objectOutputStream.writeObject(data);
- return created;
- } catch (Exception exception) {
- throw new HeapException(exception);
- } finally {
- if (objectOutputStream != null) {
- try {
- objectOutputStream.close();
- } catch (IOException exception) {// NOPMD
- // ignore error
- logger.error("closing error", exception);
- }
- }
- }
- }
-
- @Override
- protected DataRecordIdentifier removeFirstDataRecordImpl()
- throws HeapException {
- final File firstFile = firstFile();
- final DataRecordIdentifier dataRecordIdentifier;
- if (firstFile == null) {
- dataRecordIdentifier = null;
- } else {
- dataRecordIdentifier = new DataRecordIdentifier(
- Long.parseLong(firstFile.getName()));
- deleteDataRecord(dataRecordIdentifier);
- }
- return dataRecordIdentifier;
- }
-
- @Override
- protected void clearStandbyModificationImpl() throws HeapException {
- // no implementation
- }
-
- @Override
- protected void closeHeapManagerAfterException() {
- // no implementation
- }
-
- @Override
- protected void flushImp() throws HeapException {
- // no implementation
- }
-
- @Override
- protected long freeSizeImpl() throws HeapException {
- return 0;
- }
-
- @Override
- protected int getNumberOfFreeRecordImpl() throws HeapException {
- return 0;
- }
-
- @Override
- protected long heapSizeImpl() throws HeapException {
- return 0;
- }
-
- @Override
- protected long usedSizeImpl() throws HeapException {
- return 0;
- }
-
- @Override
- public boolean isDataLost() {
- return false;
- }
-
- @Override
- protected void removeFiles() throws HeapException {
- deleteDir(rootDirectory);
- final File identifierFile = new File(rootDirectory, IDENTIFIER);
- identifierFile.delete();
- }
-
- @Override
- protected Set<DataRecordIdentifier> getDataRecordIdentifierSetImpl()
- throws HeapException {
- final Set<DataRecordIdentifier> set = new TreeSet<DataRecordIdentifier>();
- final File[] childFiles = rootDirectory.listFiles();
- for (File childFile : childFiles) {
- if (childFile.isDirectory()) {
- set.addAll(getSub(newFile(rootDirectory, childFile)));
- }
- }
- return set;
- }
-
- private List<DataRecordIdentifier> getSub(final File rootDir) {
- final List<DataRecordIdentifier> list = new LinkedList<DataRecordIdentifier>();
- final File[] childFiles = rootDir.listFiles();
- for (File childFile : childFiles) {
- if (childFile.isDirectory()) {
- list.addAll(getSub(newFile(rootDir, childFile)));
- } else if (childFile.isFile()) {
- list.add(newDataRecordIdentifier(childFile));
- }
- }
- return list;
- }
-
- @Override
- protected int getNumberOfDataRecordImpl() throws HeapException {
- int total = 0;
- final File[] childFiles = rootDirectory.listFiles();
- for (File childFile : childFiles) {
- if (childFile.isDirectory()) {
- total += countSub(newFile(rootDirectory, childFile));
- }
- }
- return total;
- }
-
- private int countSub(final File rootDir) {
- int total = 0;
- final File[] childFiles = rootDir.listFiles();
- for (File childFile : childFiles) {
- if (childFile.isDirectory()) {
- total += countSub(newFile(rootDir, childFile));
- } else if (childFile.isFile()) {
- total++;
- }
- }
- return total;
- }
-
- @Override
- protected DataRecordIdentifier getNextFreeDataRecordIdentifierImpl()
- throws HeapException {
- try {
- DataRecordIdentifier dataRecordIdentifier;
- final File identifierFile = new File(rootDirectory, IDENTIFIER);
- if (identifierFile.exists()) {
- final FileInputStream fileInputStream = new FileInputStream(
- identifierFile);
- final ObjectInputStream objectInputStream = new ObjectInputStream(
- fileInputStream);
- dataRecordIdentifier = (DataRecordIdentifier) objectInputStream
- .readObject();
- objectInputStream.close();
- } else {
- dataRecordIdentifier = DataRecordIdentifier.ZERO;
- }
- return dataRecordIdentifier;
- } catch (Exception exception) {
- throw new HeapException(exception);
- }
- }
-
- @Override
- protected void setNextFreeDataRecordIdentifierImpl(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
-
- try {
-
- final File identifierFile = new File(rootDirectory, IDENTIFIER);
- final FileOutputStream fileOutputStream = new FileOutputStream(
- identifierFile);
- final ObjectOutputStream objectOutputStream = new ObjectOutputStream(
- fileOutputStream);
- objectOutputStream.writeObject(dataRecordIdentifier);
- objectOutputStream.close();
-
- } catch (Exception exception) {
- throw new HeapException(exception);
- }
- }
-
- @Override
- protected DataRecordIdentifier getNewDataRecordIdentifierImpl()
- throws HeapException {
- try {
-
- DataRecordIdentifier dataRecordIdentifier;
- final File identifierFile = new File(rootDirectory, IDENTIFIER);
- if (identifierFile.exists()) {
- final FileInputStream fileInputStream = new FileInputStream(
- identifierFile);
- final ObjectInputStream objectInputStream = new ObjectInputStream(
- fileInputStream);
- dataRecordIdentifier = (DataRecordIdentifier) objectInputStream
- .readObject();
- objectInputStream.close();
- } else {
- dataRecordIdentifier = DataRecordIdentifier.ZERO;
- }
- final DataRecordIdentifier nextDataRecordIdentifier = new DataRecordIdentifier(
- dataRecordIdentifier);
-
- final FileOutputStream fileOutputStream = new FileOutputStream(
- identifierFile);
- final ObjectOutputStream objectOutputStream = new ObjectOutputStream(
- fileOutputStream);
- objectOutputStream.writeObject(nextDataRecordIdentifier);
- objectOutputStream.close();
-
- return dataRecordIdentifier;
-
- } catch (Exception exception) {
- throw new HeapException(exception);
- }
- }
-
- @Override
- protected boolean hasDataRecordImpl(
- final DataRecordIdentifier dataRecordIdentifier)
- throws HeapException {
- final File file = fileForRecord(dataRecordIdentifier, false);
- return file.exists();
- }
-
- /**
- * create file for a record
- *
- * @param identifier
- * @return
- * @throws HeapException
- */
- private File fileForRecord(final DataRecordIdentifier identifier,
- final boolean createDir) throws HeapException {
- final String fileName = String.format("%010d",
- new Object[] { identifier.value });
- File fileForRecord = rootDirectory;
- for (int index = 0; index < 4; index++) {
- fileForRecord = newFile(fileForRecord,
- newFile(fileName.substring(index * 2, index * 2 + 2)));
- if (createDir && !fileForRecord.exists() && !fileForRecord.mkdir()) {
- throw new HeapException("failed create " + fileForRecord);
-
- }
- }
- return new File(fileForRecord, fileName);
- }
-
- private File firstFile() {
- File current = rootDirectory;
- for (int index = 0; index < 5; index++) {
- final NavigableSet<String> set = new TreeSet<String>(); // NOPMD
- for (String name : current.list()) {
- set.add(name);
- }
- final String first = set.pollFirst();
- if (first == null) {
- return null;// NOPMD
- }
- current = newFile(current, first);
- }
- return current;
- }
-
- /**
- * delete recursively file
- *
- * @param strFile
- * @return
- * @throws HeapException
- */
- private void deleteDir(final File file) throws HeapException {
-
- // Validate directory
- if (file.isDirectory()) {
- // -- Get children
- final File[] childFile = file.listFiles();
- if (childFile == null) {
- throw new HeapException("faile list file of " + file);
- }
- // -- Go through each
- for (int i = 0; i < childFile.length; i++) {
- deleteDir(newFile(file, childFile[i]));
- }
- }
- // The directory is now empty so delete it
- file.delete();
- }
-
- private DataRecordIdentifier newDataRecordIdentifier(final File childFile) {
- return new DataRecordIdentifier(Long.parseLong(childFile.getName()));
- }
-
- private File newFile(final File fatherDir, final File childFile) {
- return new File(fatherDir, childFile.getName());
- }
-
- private File newFile(final File fatherDir, final String childFileName) {
- return new File(fatherDir, childFileName);
- }
-
- private File newFile(final String name) {
- return new File(name);
- }
-
- @Override
- public String backup(final long identifier, final int maxBackup)
- throws HeapException {
- throw new HeapException(UNSUPPORTED);
- }
-
- @Override
- public String getStorageFileName() throws HeapException {
- throw new HeapException(UNSUPPORTED);
- }
-
- @Override
- public Iterator<DataRecordIdentifier> dataRecordIteratorImpl() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public long getRecordPositionInfile(final DataRecordIdentifier identifier)
- throws HeapException {
- throw new HeapException("unsupported");
- }
-
- @Override
- public long getLastRecordPositionInFile() throws HeapException {
- throw new HeapException("unsupported");
- }
-
- @Override
- public void setDataRecordKeyComparator(
- final IDataRecordKeyManager dataRecordKeyComparator) {
- throw new UnsupportedOperationException(
- "works only with long data record identifier");
- }
-}
Copied: trunk/joafip-kvstore/src/test/java/net/sf/joafip/kvstore/service/DualWrapDataManager.java (from rev 3044, trunk/joafip-heapfile/src/test/java/net/sf/joafip/heapfile/service/DualWrapDataManager.java)
===================================================================
--- trunk/joafip-kvstore/src/test/java/net/sf/joafip/kvstore/service/DualWrapDataManager.java (rev 0)
+++ trunk/joafip-kvstore/src/test/java/net/sf/joafip/kvstore/service/DualWrapDataManager.java 2012-04-29 16:58:13 UTC (rev 3045)
@@ -0,0 +1,370 @@
+/*
+ * Copyright 2011 Luc Peuvrier
+ *
+ * This file is a part of JOAFIP.
+ *
+ * JOAFIP is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License.
+ *
+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE
+ * Licensed under the LGPL License, Version 3, 29 June 2007 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * JOAFIP is distributed in the hope that it will be useful, but
+ * unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.sf.joafip.kvstore.service;
+
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.Set;
+
+import net.sf.joafip.kvstore.record.entity.DataRecordIdentifier;
+import net.sf.joafip.kvstore.record.service.IDataRecordKeyManager;
+import net.sf.joafip.kvstore.service.HeapException;
+import net.sf.joafip.kvstore.service.HeapRuntimeException;
+import net.sf.joafip.kvstore.service.IHeapDataManager;
+
+/**
+ *
+ * @author luc peuvrier
+ *
+ */
+public class DualWrapDataManager implements IHeapDataManager {
+
+ private static final String DATA_RECORD_MISMATCH = "data record mismatch ";
+
+ private final IHeapDataManager firstDataManager;
+
+ private final IHeapDataManager s...
[truncated message content] |