Package org.apache.jackrabbit.oak.api

Examples of org.apache.jackrabbit.oak.api.Blob


        FileDataStore fds = createFileDataStore();
        DataStoreBlobStore dbs = new DataStoreBlobStore(fds);
        nodeStore = getNodeStore(dbs);

        //Test for Blob which get inlined
        Blob b1 = testCreateAndRead(createBlob(fds.getMinRecordLength()-2));
        assertTrue(b1 instanceof SegmentBlob);
        assertNull(((SegmentBlob) b1).getBlobId());

        //Test for Blob which need to be pushed to BlobStore
        byte[] data2 = new byte[Segment.MEDIUM_LIMIT + 1];
        new Random().nextBytes(data2);
        Blob b2 = testCreateAndRead(nodeStore.createBlob(new ByteArrayInputStream(data2)));
        assertTrue(b2 instanceof SegmentBlob);
        assertNotNull(b2.getReference());
        InputStream is = dbs.getInputStream(((SegmentBlob) b2).getBlobId());
        assertNotNull(IOUtils.contentEquals(new ByteArrayInputStream(data2), is));
        is.close();
    }
View Full Code Here


        store = new FileStore(directory, 1, memoryMapping);
        SegmentNodeState base = store.getHead();
        SegmentNodeBuilder builder = base.builder();
        byte[] data = new byte[10 * 1024 * 1024];
        new Random().nextBytes(data);
        Blob blob = builder.createBlob(new ByteArrayInputStream(data));
        builder.setProperty("foo", blob);
        store.setHead(base, builder.getNodeState());
        store.flush();
        store.setHead(store.getHead(), base);
        store.close();
View Full Code Here

        List<Blob> blobs = Lists.newArrayList();

        //1. Set some single value Binary property
        for(int i = 0; i < 10; i++){
            NodeBuilder b1 = store.getRoot().builder();
            Blob b = store.createBlob(randomStream(i, 4096));
            b1.child("x").child("y"+1).setProperty("b" + i, b);
            blobs.add(b);
            store.merge(b1, EmptyHook.INSTANCE, CommitInfo.EMPTY);
        }
View Full Code Here

    public void testBlobSerialization() throws Exception{
        TestBlobStore blobStore = new TestBlobStore();
        DocumentMK mk = new DocumentMK.Builder().setBlobStore(blobStore).open();
        BlobSerializer blobSerializer = mk.getNodeStore().getBlobSerializer();

        Blob blob = new BlobStoreBlob(blobStore, "foo");
        assertEquals("foo", blobSerializer.serialize(blob));
        assertEquals(0, blobStore.writeCount);

        blob = new ArrayBasedBlob("foo".getBytes());
        blobSerializer.serialize(blob);
View Full Code Here

            throws IOException {
        NodeBuilder file = addChild(node, name, JcrConstants.NT_FILE);
        NodeBuilder content = addChild(file, JcrConstants.JCR_CONTENT,
                JcrConstants.NT_RESOURCE);
        content.setProperty(JcrConstants.JCR_MIMETYPE, "text/plain");
        Blob blob = store.createBlob(new ByteArrayInputStream("Apache Oak".getBytes()));
        content.setProperty(JcrConstants.JCR_DATA, blob);
        return file;
    }
View Full Code Here

    private PropertyState compact(PropertyState property) {
        String name = property.getName();
        Type<?> type = property.getType();
        if (type == BINARY) {
            Blob blob = compact(property.getValue(Type.BINARY));
            return BinaryPropertyState.binaryProperty(name, blob);
        } else if (type == BINARIES) {
            List<Blob> blobs = new ArrayList<Blob>();
            for (Blob blob : property.getValue(BINARIES)) {
                blobs.add(compact(blob));
View Full Code Here

        store.merge(b1, EmptyHook.INSTANCE, CommitInfo.EMPTY);

        //1. Set some single value Binary property
        for(int i = 0; i < 2; i++){
            b1 = store.getRoot().builder();
            Blob b = store.createBlob(randomStream(i, 4096));
            b1.child("x").child("y").setProperty("b" + i, b);
            blobs.add(b);
            store.merge(b1, EmptyHook.INSTANCE, CommitInfo.EMPTY);
        }

        //2. Set some multi value property
        PropertyBuilder<Blob> p1 = PropertyBuilder.array(Type.BINARY)
                .setName("barr");
        for(int i = 0; i < 2; i++){
            Blob b = store.createBlob(randomStream(i, 4096));
            p1.addValue(b);
            blobs.add(b);
        }
        b1 = store.getRoot().builder();
        b1.child("x").child("y").setProperty(p1.getPropertyState());
        store.merge(b1, EmptyHook.INSTANCE, CommitInfo.EMPTY);

        //3. Create some new rev for the property b1 and b2
        for(int i = 0; i < 2; i++){
            b1 = store.getRoot().builder();
            //Change the see to create diff binary
            Blob b = store.createBlob(randomStream(i+1, 4096));
            b1.child("x").child("y").setProperty("b" + i, b);
            blobs.add(b);
            store.merge(b1, EmptyHook.INSTANCE, CommitInfo.EMPTY);
        }
View Full Code Here

        FileStore source = new FileStore(src, 256, false);

        NodeStore store = new SegmentNodeStore(source);

        // ~100k
        Blob blob = store.createBlob(new ByteArrayInputStream(new byte[100000]));

        NodeBuilder builder = store.getRoot().builder();
        NodeBuilder c1 = builder.child("test-backup");
        c1.setProperty("blob", blob);
        NodeBuilder c2 = builder.child("test-backup2");
View Full Code Here

            if (!processed.contains(n)) {
                processed.add(n);
            }
        }
        for (int i = 0; i < number; i++) {
            Blob b = s.createBlob(randomStream(i, 4160));
            if (processed.contains(i)) {
                Iterator<String> idIter =
                        ((GarbageCollectableBlobStore) s.getBlobStore())
                                .resolveChunks(b.toString());
                while (idIter.hasNext()) {
                    set.add(idIter.next());
                }
            }
            a.child("c" + i).setProperty("x", b);
View Full Code Here

        HashSet<String> set = new HashSet<String>();
        DocumentNodeStore s = mk.getNodeStore();
        NodeBuilder a = s.getRoot().builder();
        int number = 12;
        for (int i = 0; i < number; i++) {
            Blob b = s.createBlob(randomStream(i, 50));
            a.child("cinline" + i).setProperty("x", b);
        }
        s.merge(a, EmptyHook.INSTANCE, CommitInfo.EMPTY);
        return set;
    }
View Full Code Here

TOP

Related Classes of org.apache.jackrabbit.oak.api.Blob

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.