Changed Store -> StorageType to make more sense.

This commit is contained in:
nathan 2017-02-12 23:22:58 +01:00
parent 92adb94e51
commit d041655c6d
2 changed files with 123 additions and 119 deletions

View File

@ -28,7 +28,7 @@ import dorkbox.util.FileUtil;
import dorkbox.util.SerializationManager; import dorkbox.util.SerializationManager;
public public
class Store { class StorageType {
private static final Logger logger = LoggerFactory.getLogger(DiskStorage.class); private static final Logger logger = LoggerFactory.getLogger(DiskStorage.class);
@SuppressWarnings("SpellCheckingInspection") @SuppressWarnings("SpellCheckingInspection")
@ -39,7 +39,7 @@ class Store {
@Override @Override
public public
void run() { void run() {
Store.shutdown(); StorageType.shutdown();
} }
}); });
@ -164,6 +164,10 @@ class Store {
throw new IllegalArgumentException("file cannot be null!"); throw new IllegalArgumentException("file cannot be null!");
} }
if (this.serializationManager == null) {
throw new IllegalArgumentException("serializer cannot be null!");
}
// if we load from a NEW storage at the same location as an ALREADY EXISTING storage, // if we load from a NEW storage at the same location as an ALREADY EXISTING storage,
// without saving the existing storage first --- whoops! // without saving the existing storage first --- whoops!
synchronized (storages) { synchronized (storages) {

View File

@ -33,7 +33,7 @@ import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output; import com.esotericsoftware.kryo.io.Output;
import dorkbox.util.storage.Storage; import dorkbox.util.storage.Storage;
import dorkbox.util.storage.Store; import dorkbox.util.storage.StorageType;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
@FixMethodOrder(MethodSorters.NAME_ASCENDING) @FixMethodOrder(MethodSorters.NAME_ASCENDING)
@ -121,23 +121,23 @@ class StorageTest {
@Before @Before
public public
void deleteDB() { void deleteDB() {
Store.delete(TEST_DB); StorageType.delete(TEST_DB);
} }
@After @After
public public
void delete2DB() { void delete2DB() {
Store.delete(TEST_DB); StorageType.delete(TEST_DB);
} }
@Test @Test
public public
void testCreateDB() throws IOException { void testCreateDB() throws IOException {
Storage storage = Store.Disk() Storage storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
int numberOfRecords1 = storage.size(); int numberOfRecords1 = storage.size();
long size1 = storage.getFileSize(); long size1 = storage.getFileSize();
@ -145,12 +145,12 @@ class StorageTest {
Assert.assertEquals("count is not correct", numberOfRecords1, 0); Assert.assertEquals("count is not correct", numberOfRecords1, 0);
Assert.assertEquals("size is not correct", size1, initialSize); Assert.assertEquals("size is not correct", size1, initialSize);
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
int numberOfRecords2 = storage.size(); int numberOfRecords2 = storage.size();
long size2 = storage.getFileSize(); long size2 = storage.getFileSize();
@ -158,7 +158,7 @@ class StorageTest {
Assert.assertEquals("Record count is not the same", numberOfRecords1, numberOfRecords2); Assert.assertEquals("Record count is not the same", numberOfRecords1, numberOfRecords2);
Assert.assertEquals("size is not the same", size1, size2); Assert.assertEquals("size is not the same", size1, size2);
Store.close(storage); StorageType.close(storage);
} }
@ -166,20 +166,20 @@ class StorageTest {
public public
void testAddAsOne() throws IOException, ClassNotFoundException { void testAddAsOne() throws IOException, ClassNotFoundException {
try { try {
Storage storage = Store.Disk() Storage storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
add(storage, i); add(storage, i);
} }
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
String record1Data = createData(i); String record1Data = createData(i);
@ -188,7 +188,7 @@ class StorageTest {
Assert.assertEquals("Object is not the same", record1Data, readRecord); Assert.assertEquals("Object is not the same", record1Data, readRecord);
} }
Store.close(storage); StorageType.close(storage);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
Assert.fail("Error!"); Assert.fail("Error!");
@ -204,10 +204,10 @@ class StorageTest {
public public
void testAddNoKeyRecords() throws IOException, ClassNotFoundException { void testAddNoKeyRecords() throws IOException, ClassNotFoundException {
try { try {
Storage storage = Store.Disk() Storage storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
log("adding record " + i + "..."); log("adding record " + i + "...");
@ -219,12 +219,12 @@ class StorageTest {
Assert.assertEquals("Object is not the same", addRecord, readData); Assert.assertEquals("Object is not the same", addRecord, readData);
} }
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
String dataCheck = createData(total - 1); String dataCheck = createData(total - 1);
log("reading record " + (total - 1) + "..."); log("reading record " + (total - 1) + "...");
@ -240,7 +240,7 @@ class StorageTest {
Assert.assertEquals("size is not correct", size1, initialSize + sizePerRecord); Assert.assertEquals("size is not correct", size1, initialSize + sizePerRecord);
Store.close(storage); StorageType.close(storage);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
Assert.fail("Error!"); Assert.fail("Error!");
@ -251,10 +251,10 @@ class StorageTest {
public public
void testAddRecords_DelaySaveA() throws IOException, ClassNotFoundException { void testAddRecords_DelaySaveA() throws IOException, ClassNotFoundException {
try { try {
Storage storage = Store.Disk() Storage storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
add(storage, i); add(storage, i);
@ -272,12 +272,12 @@ class StorageTest {
Assert.assertEquals("Object is not the same", record1Data, readRecord); Assert.assertEquals("Object is not the same", record1Data, readRecord);
} }
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
String dataCheck = createData(i); String dataCheck = createData(i);
String readRecord = readRecord(storage, i); String readRecord = readRecord(storage, i);
@ -285,7 +285,7 @@ class StorageTest {
Assert.assertEquals("Object is not the same", dataCheck, readRecord); Assert.assertEquals("Object is not the same", dataCheck, readRecord);
} }
Store.close(storage); StorageType.close(storage);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
Assert.fail("Error!"); Assert.fail("Error!");
@ -296,10 +296,10 @@ class StorageTest {
public public
void testAddRecords_DelaySaveB() throws IOException, ClassNotFoundException { void testAddRecords_DelaySaveB() throws IOException, ClassNotFoundException {
try { try {
Storage storage = Store.Disk() Storage storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
add(storage, i); add(storage, i);
@ -312,12 +312,12 @@ class StorageTest {
Assert.assertEquals("Object is not the same", record1Data, readRecord); Assert.assertEquals("Object is not the same", record1Data, readRecord);
} }
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
String dataCheck = createData(i); String dataCheck = createData(i);
@ -326,7 +326,7 @@ class StorageTest {
Assert.assertEquals("Object is not the same", dataCheck, readRecord); Assert.assertEquals("Object is not the same", dataCheck, readRecord);
} }
Store.close(storage); StorageType.close(storage);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
Assert.fail("Error!"); Assert.fail("Error!");
@ -337,10 +337,10 @@ class StorageTest {
public public
void testLoadRecords() throws IOException, ClassNotFoundException { void testLoadRecords() throws IOException, ClassNotFoundException {
try { try {
Storage storage = Store.Disk() Storage storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
String addRecord = add(storage, i); String addRecord = add(storage, i);
@ -348,12 +348,12 @@ class StorageTest {
Assert.assertEquals("Object is not the same", addRecord, readRecord); Assert.assertEquals("Object is not the same", addRecord, readRecord);
} }
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
String dataCheck = createData(i); String dataCheck = createData(i);
@ -373,16 +373,16 @@ class StorageTest {
data2 = storage.getAndPut(createKey, new Data()); data2 = storage.getAndPut(createKey, new Data());
Assert.assertEquals("Object is not the same", data, data2); Assert.assertEquals("Object is not the same", data, data2);
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
data2 = storage.getAndPut(createKey, new Data()); data2 = storage.getAndPut(createKey, new Data());
Assert.assertEquals("Object is not the same", data, data2); Assert.assertEquals("Object is not the same", data, data2);
Store.close(storage); StorageType.close(storage);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
Assert.fail("Error!"); Assert.fail("Error!");
@ -398,10 +398,10 @@ class StorageTest {
} }
try { try {
Storage storage = Store.Disk() Storage storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
String addRecord = add(storage, i); String addRecord = add(storage, i);
@ -409,12 +409,12 @@ class StorageTest {
Assert.assertEquals("Object is not the same", addRecord, readRecord); Assert.assertEquals("Object is not the same", addRecord, readRecord);
} }
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
String dataCheck = createData(i); String dataCheck = createData(i);
@ -442,12 +442,12 @@ class StorageTest {
Assert.assertEquals("Object is not the same", dataCheck, addRecord); Assert.assertEquals("Object is not the same", dataCheck, addRecord);
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
// check 9 again // check 9 again
readRecord = readRecord(storage, 9); readRecord = readRecord(storage, 9);
@ -469,10 +469,10 @@ class StorageTest {
public public
void testUpdateRecords() throws IOException, ClassNotFoundException { void testUpdateRecords() throws IOException, ClassNotFoundException {
try { try {
Storage storage = Store.Disk() Storage storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
String addRecord = add(storage, i); String addRecord = add(storage, i);
@ -480,48 +480,48 @@ class StorageTest {
Assert.assertEquals("Object is not the same", addRecord, readRecord); Assert.assertEquals("Object is not the same", addRecord, readRecord);
} }
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
String updateRecord = updateRecord(storage, 3, createData(3) + "new"); String updateRecord = updateRecord(storage, 3, createData(3) + "new");
String readRecord = readRecord(storage, 3); String readRecord = readRecord(storage, 3);
Assert.assertEquals("Object is not the same", updateRecord, readRecord); Assert.assertEquals("Object is not the same", updateRecord, readRecord);
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
readRecord = readRecord(storage, 3); readRecord = readRecord(storage, 3);
Assert.assertEquals("Object is not the same", updateRecord, readRecord); Assert.assertEquals("Object is not the same", updateRecord, readRecord);
updateRecord = updateRecord(storage, 3, createData(3)); updateRecord = updateRecord(storage, 3, createData(3));
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
readRecord = readRecord(storage, 3); readRecord = readRecord(storage, 3);
Assert.assertEquals("Object is not the same", updateRecord, readRecord); Assert.assertEquals("Object is not the same", updateRecord, readRecord);
Store.close(storage); StorageType.close(storage);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
updateRecord = updateRecord(storage, 0, createData(0) + "new"); updateRecord = updateRecord(storage, 0, createData(0) + "new");
readRecord = readRecord(storage, 0); readRecord = readRecord(storage, 0);
Assert.assertEquals("Object is not the same", updateRecord, readRecord); Assert.assertEquals("Object is not the same", updateRecord, readRecord);
Store.close(storage); StorageType.close(storage);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
Assert.fail("Error!"); Assert.fail("Error!");
@ -533,10 +533,10 @@ class StorageTest {
public public
void testSaveAllRecords() throws IOException, ClassNotFoundException { void testSaveAllRecords() throws IOException, ClassNotFoundException {
try { try {
Storage storage = Store.Disk() Storage storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
Data data = new Data(); Data data = new Data();
@ -545,15 +545,15 @@ class StorageTest {
storage.put(createKey, data); storage.put(createKey, data);
} }
Store.close(storage); StorageType.close(storage);
Data data = new Data(); Data data = new Data();
makeData(data); makeData(data);
storage = Store.Disk() storage = StorageType.Disk()
.file(TEST_DB) .file(TEST_DB)
.serializer(manager) .serializer(manager)
.make(); .make();
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
String createKey = createKey(i); String createKey = createKey(i);
@ -561,7 +561,7 @@ class StorageTest {
data2 = storage.getAndPut(createKey, new Data()); data2 = storage.getAndPut(createKey, new Data());
Assert.assertEquals("Object is not the same", data, data2); Assert.assertEquals("Object is not the same", data, data2);
} }
Store.close(storage); StorageType.close(storage);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
Assert.fail("Error!"); Assert.fail("Error!");