use of com.enonic.xp.blob.Segment in project xp by enonic.
the class FileBlobStoreTest method listSegments.
@Test
public void listSegments() {
final Segment secondSegment = Segment.from("test", "blob2");
assertEquals(0, blobStore.listSegments().count());
createRecord("hello").getKey();
assertEquals(1, blobStore.listSegments().count());
assertEquals(segment, blobStore.listSegments().findFirst().get());
createRecord(secondSegment, "hello").getKey();
assertEquals(2, blobStore.listSegments().count());
}
use of com.enonic.xp.blob.Segment in project xp by enonic.
the class BlobStoreFactoryTest method doTestProviderStore.
private void doTestProviderStore(final boolean cache) {
final MemoryBlobStore memory1 = new MemoryBlobStore();
final MemoryBlobStoreProvider provider1 = new MemoryBlobStoreProvider("memory1", memory1, createProviderConfig("memory2", true));
final MemoryBlobStore memory2 = new MemoryBlobStore();
final MemoryBlobStoreProvider provider2 = new MemoryBlobStoreProvider("memory2", memory2, createProviderConfig(null, false));
final BlobStoreProviders blobStoreProviders = new BlobStoreProviders();
blobStoreProviders.add(provider2);
final BlobStore finalBlobStore = BlobStoreFactory.create().provider(provider1).config(createBlobstoreConfig(cache)).providers(blobStoreProviders).build().execute();
assertNotNull(finalBlobStore);
final Segment segment = Segment.from("test", "blob");
final BlobRecord record = finalBlobStore.addRecord(segment, ByteSource.wrap("hei".getBytes()));
assertEquals(finalBlobStore.getRecord(segment, record.getKey()), memory1.getRecord(segment, record.getKey()));
assertEquals(finalBlobStore.getRecord(segment, record.getKey()), memory2.getRecord(segment, record.getKey()));
}
use of com.enonic.xp.blob.Segment in project xp by enonic.
the class ReadThroughBlobStoreTest method invalidate.
@Test
public void invalidate() throws Exception {
final ByteSource binary = ByteSource.wrap("this is a record".getBytes());
final Segment segment = Segment.from("test", "blob");
final BlobRecord record = this.finalStore.addRecord(segment, binary);
final ReadThroughBlobStore actualBlobStore = ReadThroughBlobStore.create().readThroughStore(this.readThroughStore).store(this.finalStore).build();
assertNull(this.readThroughStore.getRecord(segment, record.getKey()));
actualBlobStore.getRecord(segment, record.getKey());
assertNotNull(this.readThroughStore.getRecord(segment, record.getKey()));
actualBlobStore.invalidate(segment, record.getKey());
assertNull(this.readThroughStore.getRecord(segment, record.getKey()));
assertNotNull(this.finalStore.getRecord(segment, record.getKey()));
}
use of com.enonic.xp.blob.Segment in project xp by enonic.
the class ReadThroughBlobStoreTest method stored_in_readthrough.
@Test
public void stored_in_readthrough() throws Exception {
final ReadThroughBlobStore actualBlobStore = ReadThroughBlobStore.create().readThroughStore(this.readThroughStore).store(this.finalStore).sizeThreshold(ByteSizeParser.parse("80kb")).build();
final ByteSource binary = ByteSource.wrap("this is a record".getBytes());
final Segment segment = Segment.from("test", "blob");
final BlobRecord record = actualBlobStore.addRecord(segment, binary);
assertNotNull(this.readThroughStore.getRecord(segment, record.getKey()));
assertNotNull(this.finalStore.getRecord(segment, record.getKey()));
}
use of com.enonic.xp.blob.Segment in project xp by enonic.
the class BinaryServiceImpl method get.
@Override
public ByteSource get(final RepositoryId repositoryId, final AttachedBinary attachedBinary) {
final Segment segment = RepositorySegmentUtils.toSegment(repositoryId, NodeConstants.BINARY_SEGMENT_LEVEL);
final BlobRecord record = blobStore.getRecord(segment, BlobKey.from(attachedBinary.getBlobKey()));
if (record == null) {
throw new RepositoryExeption("Cannot load binary with key [" + attachedBinary.getBlobKey() + "], not found");
}
return record.getBytes();
}
Aggregations