Search in sources :

Example 6 with BlobStoreBlob

use of org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob in project jackrabbit-oak by apache.

the class OakDirectoryTestBase method markAllBlobsFromBlobStoreAsDeleted.

// OAK-7066
@Test
public void markAllBlobsFromBlobStoreAsDeleted() throws Exception {
    IndexDefinition def = new IndexDefinition(root, builder.getNodeState(), "/foo");
    final Set<String> deletedFiles = newHashSet();
    MemoryBlobStore bs = new MemoryBlobStore();
    bs.setBlockSizeMin(48);
    BlobFactory factory = in -> new BlobStoreBlob(bs, bs.writeBlob(in));
    OakDirectory dir = getOakDirectoryBuilder(builder, def).setReadOnly(false).with(factory).with(new ActiveDeletedBlobCollectorFactory.BlobDeletionCallback() {

        @Override
        public void deleted(String blobId, Iterable<String> ids) {
            deletedFiles.add(Iterables.getLast(ids));
        }

        @Override
        public void commitProgress(IndexProgress indexProgress) {
        }

        @Override
        public boolean isMarkingForActiveDeletionUnsafe() {
            return false;
        }
    }).build();
    writeFile(dir, "file1", 25);
    writeFile(dir, "file2", 50);
    dir.deleteFile("file1");
    dir.deleteFile("file2");
    dir.close();
    assertTrue("file1 must be reported as deleted", deletedFiles.contains("file1"));
    assertTrue("file2 must be reported as deleted", deletedFiles.contains("file2"));
}
Also used : JCR_DATA(org.apache.jackrabbit.JcrConstants.JCR_DATA) Arrays(java.util.Arrays) GarbageCollectableBlobStore(org.apache.jackrabbit.oak.spi.blob.GarbageCollectableBlobStore) BlobStoreBlob(org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob) AlreadyClosedException(org.apache.lucene.store.AlreadyClosedException) Random(java.util.Random) Assert.assertThat(org.junit.Assert.assertThat) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Directory(org.apache.lucene.store.Directory) Sets.newHashSet(com.google.common.collect.Sets.newHashSet) UNIQUE_KEY_SIZE(org.apache.jackrabbit.oak.plugins.index.lucene.directory.OakDirectory.UNIQUE_KEY_SIZE) Assert.fail(org.junit.Assert.fail) FileDataStore(org.apache.jackrabbit.core.data.FileDataStore) IOContext(org.apache.lucene.store.IOContext) EmptyNodeState(org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState) PROP_BLOB_SIZE(org.apache.jackrabbit.oak.plugins.index.lucene.directory.OakDirectory.PROP_BLOB_SIZE) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Type(org.apache.jackrabbit.oak.api.Type) Set(java.util.Set) ONE_MB(org.apache.commons.io.FileUtils.ONE_MB) FileNotFoundException(java.io.FileNotFoundException) Sets(com.google.common.collect.Sets) SegmentNodeStore(org.apache.jackrabbit.oak.segment.SegmentNodeStore) IOUtils(org.apache.commons.io.IOUtils) List(java.util.List) Assert.assertFalse(org.junit.Assert.assertFalse) NullInputStream(org.apache.commons.io.input.NullInputStream) ArrayBasedBlob(org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob) Iterables(com.google.common.collect.Iterables) ByteArrayOutputStream(java.io.ByteArrayOutputStream) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ArrayList(java.util.ArrayList) LuceneIndexConstants(org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants) SegmentNodeStoreBuilders(org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders) FileStore(org.apache.jackrabbit.oak.segment.file.FileStore) ReadOnlyBuilder(org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder) NodeState(org.apache.jackrabbit.oak.spi.state.NodeState) DataStoreBlobStore(org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore) SegmentTestConstants(org.apache.jackrabbit.oak.segment.SegmentTestConstants) PropertyStates(org.apache.jackrabbit.oak.plugins.memory.PropertyStates) IndexOutput(org.apache.lucene.store.IndexOutput) PROP_UNSAFE_FOR_ACTIVE_DELETION(org.apache.jackrabbit.oak.plugins.index.lucene.directory.OakDirectory.PROP_UNSAFE_FOR_ACTIVE_DELETION) INDEX_DATA_CHILD_NAME(org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexConstants.INDEX_DATA_CHILD_NAME) ONE_GB(org.apache.commons.io.FileUtils.ONE_GB) NodeBuilder(org.apache.jackrabbit.oak.spi.state.NodeBuilder) IndexInput(org.apache.lucene.store.IndexInput) Assert.assertTrue(org.junit.Assert.assertTrue) FileStoreBuilder(org.apache.jackrabbit.oak.segment.file.FileStoreBuilder) IOException(java.io.IOException) Test(org.junit.Test) Assert.assertNotEquals(org.junit.Assert.assertNotEquals) File(java.io.File) InputStreamDataInput(org.apache.lucene.store.InputStreamDataInput) PROP_UNIQUE_KEY(org.apache.jackrabbit.oak.plugins.index.lucene.directory.OakDirectory.PROP_UNIQUE_KEY) IndexDefinition(org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition) Assert.assertNull(org.junit.Assert.assertNull) Rule(org.junit.Rule) MemoryBlobStore(org.apache.jackrabbit.oak.spi.blob.MemoryBlobStore) Blob(org.apache.jackrabbit.oak.api.Blob) PropertyState(org.apache.jackrabbit.oak.api.PropertyState) INITIAL_CONTENT(org.apache.jackrabbit.oak.InitialContent.INITIAL_CONTENT) Assert.assertEquals(org.junit.Assert.assertEquals) TemporaryFolder(org.junit.rules.TemporaryFolder) InputStream(java.io.InputStream) BlobStoreBlob(org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob) IndexDefinition(org.apache.jackrabbit.oak.plugins.index.lucene.IndexDefinition) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) MemoryBlobStore(org.apache.jackrabbit.oak.spi.blob.MemoryBlobStore) Test(org.junit.Test)

Example 7 with BlobStoreBlob

use of org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob in project jackrabbit-oak by apache.

the class DataStoreTextWriterTest method inMemoryRecord.

@Test
public void inMemoryRecord() throws Exception {
    File fdsDir = temporaryFolder.newFolder();
    FileDataStore fds = DataStoreUtils.createFDS(fdsDir, 10000);
    DataStoreBlobStore dbs = new DataStoreBlobStore(fds);
    ByteArrayInputStream is = new ByteArrayInputStream("".getBytes());
    String blobId = dbs.writeBlob(is);
    File writerDir = temporaryFolder.newFolder();
    PreExtractedTextProvider textProvider = new DataStoreTextWriter(writerDir, true);
    assertNull(textProvider.getText("/content", new BlobStoreBlob(dbs, blobId)));
}
Also used : PreExtractedTextProvider(org.apache.jackrabbit.oak.plugins.index.fulltext.PreExtractedTextProvider) BlobStoreBlob(org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob) ByteArrayInputStream(java.io.ByteArrayInputStream) File(java.io.File) FileDataStore(org.apache.jackrabbit.core.data.FileDataStore) DataStoreBlobStore(org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore) Test(org.junit.Test)

Example 8 with BlobStoreBlob

use of org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob in project jackrabbit-oak by apache.

the class BlobIdSerializerTest method blobStoreBlob.

@Test
public void blobStoreBlob() throws Exception {
    Blob b = new ArrayBasedBlob("hello world".getBytes());
    String value = blobStore.writeBlob(b.getNewStream());
    String serValue = serializer.serialize(new BlobStoreBlob(blobStore, value));
    Blob b2 = serializer.deserialize(serValue);
    assertTrue(AbstractBlob.equal(b, b2));
}
Also used : BlobStoreBlob(org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob) Blob(org.apache.jackrabbit.oak.api.Blob) AbstractBlob(org.apache.jackrabbit.oak.plugins.memory.AbstractBlob) ArrayBasedBlob(org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob) BlobStoreBlob(org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob) ArrayBasedBlob(org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob) Test(org.junit.Test)

Aggregations

BlobStoreBlob (org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob)8 Blob (org.apache.jackrabbit.oak.api.Blob)7 Test (org.junit.Test)5 ArrayBasedBlob (org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob)4 File (java.io.File)3 ArrayList (java.util.ArrayList)3 FileDataStore (org.apache.jackrabbit.core.data.FileDataStore)3 DataStoreBlobStore (org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore)3 Iterables (com.google.common.collect.Iterables)2 Sets (com.google.common.collect.Sets)2 Sets.newHashSet (com.google.common.collect.Sets.newHashSet)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 FileNotFoundException (java.io.FileNotFoundException)2 IOException (java.io.IOException)2 InputStream (java.io.InputStream)2 Arrays (java.util.Arrays)2 List (java.util.List)2 Random (java.util.Random)2 Set (java.util.Set)2 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)2