Author: alexparvulescu Date: Fri Jan 29 14:07:08 2016 New Revision: 1727588
URL: http://svn.apache.org/viewvc?rev=1727588&view=rev Log: OAK-3956 Oak run extract the dummy BlobStore impl to be used by the readonly FileStore - moved the class to the tooling package Added: jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/BasicReadOnlyBlobStore.java (with props) Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java?rev=1727588&r1=1727587&r2=1727588&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java (original) +++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/segment/FileStoreHelper.java Fri Jan 29 14:07:08 2016 @@ -42,6 +42,7 @@ import java.util.UUID; import org.apache.jackrabbit.oak.plugins.segment.file.FileStore; import org.apache.jackrabbit.oak.plugins.segment.file.FileStore.ReadOnlyStore; import org.apache.jackrabbit.oak.plugins.segment.file.JournalReader; +import org.apache.jackrabbit.oak.plugins.segment.file.tooling.BasicReadOnlyBlobStore; import org.apache.jackrabbit.oak.spi.blob.BlobStore; public final class FileStoreHelper { @@ -52,44 +53,6 @@ public final class FileStoreHelper { public static final int TAR_SEGMENT_CACHE_SIZE = Integer.getInteger("cache", 256); - private static class BasicReadOnlyBlobStore implements BlobStore { - @Override - public String writeBlob(InputStream in) throws IOException { - throw new UnsupportedOperationException(); - } - - @Override - public int readBlob(String blobId, long pos, byte[] buff, int off, - int length) throws IOException { - throw new UnsupportedOperationException(); - } - - @Override - public long getBlobLength(String blobId) throws IOException { - // best effort length extraction - int indexOfSep = blobId.lastIndexOf("#"); - if (indexOfSep != -1) { - return Long.valueOf(blobId.substring(indexOfSep + 1)); - } - return -1; - } - - @Override - public InputStream getInputStream(String blobId) throws IOException { - return new ByteArrayInputStream(new byte[0]); - } - - @Override - public String getBlobId(String reference) { - return reference; - } - - @Override - public String getReference(String blobId) { - return blobId; - } - } - private FileStoreHelper() { } Added: jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/BasicReadOnlyBlobStore.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/BasicReadOnlyBlobStore.java?rev=1727588&view=auto ============================================================================== --- jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/BasicReadOnlyBlobStore.java (added) +++ jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/BasicReadOnlyBlobStore.java Fri Jan 29 14:07:08 2016 @@ -0,0 +1,68 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 + * + * 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 org.apache.jackrabbit.oak.plugins.segment.file.tooling; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; + +import org.apache.jackrabbit.oak.spi.blob.BlobStore; + +/** + * Utility BlobStore implementation to be used in tooling that can work with a + * FileStore without the need of the DataStore being present locally + */ +public class BasicReadOnlyBlobStore implements BlobStore { + + @Override + public String writeBlob(InputStream in) throws IOException { + throw new UnsupportedOperationException(); + } + + @Override + public int readBlob(String blobId, long pos, byte[] buff, int off, + int length) throws IOException { + throw new UnsupportedOperationException(); + } + + @Override + public long getBlobLength(String blobId) throws IOException { + // best effort length extraction + int indexOfSep = blobId.lastIndexOf("#"); + if (indexOfSep != -1) { + return Long.valueOf(blobId.substring(indexOfSep + 1)); + } + return -1; + } + + @Override + public InputStream getInputStream(String blobId) throws IOException { + return new ByteArrayInputStream(new byte[0]); + } + + @Override + public String getBlobId(String reference) { + return reference; + } + + @Override + public String getReference(String blobId) { + return blobId; + } +} Propchange: jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/tooling/BasicReadOnlyBlobStore.java ------------------------------------------------------------------------------ svn:mime-type = text/plain
