Author: frm
Date: Wed Dec 5 17:00:25 2018
New Revision: 1848226
URL: http://svn.apache.org/viewvc?rev=1848226&view=rev
Log:
OAK-7942 - Fix covariant return type changes in ByteBuffer
Added:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/Buffer.java
(with props)
Modified:
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentArchiveReader.java
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentArchiveWriter.java
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureUtilities.java
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/queue/SegmentWriteAction.java
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentCopy.java
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/ToolUtils.java
jackrabbit/oak/trunk/oak-segment-azure/src/test/java/oak/apache/jackrabbit/oak/segment/azure/tool/SegmentCopyTestBase.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CheckpointCompactor.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriter.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordId.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferMonitor.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStream.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentData.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataLoader.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataRaw.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataUtils.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataV12.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataV13.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractFileStore.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/FileAccess.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/GraphLoader.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarManager.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarReader.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarWriter.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarReader.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarWriter.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/binaries/BinaryReferencesIndexLoader.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/binaries/BinaryReferencesIndexLoaderV1.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/binaries/BinaryReferencesIndexLoaderV2.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/binaries/BinaryReferencesIndexWriter.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexEntryV1.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexEntryV2.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexV1.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexV2.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexWriter.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/SegmentArchiveReader.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/SegmentArchiveWriter.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/split/UnclosedSegmentArchiveReader.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/util/CharsetEncodingUtils.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/util/ReaderAtEnd.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CacheWeightEstimator.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactorTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/NodeRecordTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentBufferMonitorTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFileTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/binaries/BinaryReferencesIndexLoaderTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/binaries/BinaryReferencesIndexLoaderV1Test.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/binaries/BinaryReferencesIndexLoaderV2Test.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/binaries/BinaryReferencesIndexWriterTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV1Test.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexLoaderV2Test.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexV1Test.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/index/IndexV2Test.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/standby/StandbyTestUtils.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/PersistingDiff.java
Modified:
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentArchiveReader.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentArchiveReader.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentArchiveReader.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentArchiveReader.java
Wed Dec 5 17:00:25 2018
@@ -23,7 +23,6 @@ import static org.apache.jackrabbit.oak.
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
-import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
@@ -40,6 +39,7 @@ import com.microsoft.azure.storage.blob.
import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitor;
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveEntry;
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveReader;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
public class AzureSegmentArchiveReader implements SegmentArchiveReader {
static final boolean OFF_HEAP = getBoolean("access.off.heap");
@@ -70,17 +70,17 @@ public class AzureSegmentArchiveReader i
}
@Override
- public ByteBuffer readSegment(long msb, long lsb) throws IOException {
+ public Buffer readSegment(long msb, long lsb) throws IOException {
AzureSegmentArchiveEntry indexEntry = index.get(new UUID(msb, lsb));
if (indexEntry == null) {
return null;
}
- ByteBuffer buffer;
+ Buffer buffer;
if (OFF_HEAP) {
- buffer = ByteBuffer.allocateDirect(indexEntry.getLength());
+ buffer = Buffer.allocateDirect(indexEntry.getLength());
} else {
- buffer = ByteBuffer.allocate(indexEntry.getLength());
+ buffer = Buffer.allocate(indexEntry.getLength());
}
ioMonitor.beforeSegmentRead(pathAsFile(), msb, lsb,
indexEntry.getLength());
Stopwatch stopwatch = Stopwatch.createStarted();
@@ -101,8 +101,8 @@ public class AzureSegmentArchiveReader i
}
@Override
- public ByteBuffer getGraph() throws IOException {
- ByteBuffer graph = readBlob(getName() + ".gph");
+ public Buffer getGraph() throws IOException {
+ Buffer graph = readBlob(getName() + ".gph");
hasGraph = graph != null;
return graph;
}
@@ -118,7 +118,7 @@ public class AzureSegmentArchiveReader i
}
@Override
- public ByteBuffer getBinaryReferences() throws IOException {
+ public Buffer getBinaryReferences() throws IOException {
return readBlob(getName() + ".brf");
}
@@ -154,14 +154,14 @@ public class AzureSegmentArchiveReader i
}
}
- private ByteBuffer readBlob(String name) throws IOException {
+ private Buffer readBlob(String name) throws IOException {
try {
CloudBlockBlob blob = getBlob(name);
if (!blob.exists()) {
return null;
}
long length = blob.getProperties().getLength();
- ByteBuffer buffer = ByteBuffer.allocate((int) length);
+ Buffer buffer = Buffer.allocate((int) length);
AzureUtilities.readBufferFully(blob, buffer);
return buffer;
} catch (StorageException e) {
Modified:
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentArchiveWriter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentArchiveWriter.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentArchiveWriter.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureSegmentArchiveWriter.java
Wed Dec 5 17:00:25 2018
@@ -23,7 +23,6 @@ import static org.apache.jackrabbit.oak.
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
-import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -40,6 +39,7 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.spi.monitor.FileStoreMonitor;
import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitor;
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveWriter;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
public class AzureSegmentArchiveWriter implements SegmentArchiveWriter {
@@ -99,22 +99,22 @@ public class AzureSegmentArchiveWriter i
}
@Override
- public ByteBuffer readSegment(long msb, long lsb) throws IOException {
+ public Buffer readSegment(long msb, long lsb) throws IOException {
UUID uuid = new UUID(msb, lsb);
Optional<SegmentWriteAction> segment = queue.map(q -> q.read(uuid));
if (segment.isPresent()) {
- return segment.get().toByteBuffer();
+ return segment.get().toBuffer();
}
AzureSegmentArchiveEntry indexEntry = index.get(new UUID(msb, lsb));
if (indexEntry == null) {
return null;
}
- ByteBuffer buffer;
+ Buffer buffer;
if (OFF_HEAP) {
- buffer = ByteBuffer.allocateDirect(indexEntry.getLength());
+ buffer = Buffer.allocateDirect(indexEntry.getLength());
} else {
- buffer = ByteBuffer.allocate(indexEntry.getLength());
+ buffer = Buffer.allocate(indexEntry.getLength());
}
readBufferFully(getBlob(getSegmentFileName(indexEntry)), buffer);
return buffer;
Modified:
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureUtilities.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureUtilities.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureUtilities.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureUtilities.java
Wed Dec 5 17:00:25 2018
@@ -20,7 +20,6 @@ import java.io.IOException;
import java.io.OutputStream;
import java.net.URI;
import java.net.URISyntaxException;
-import java.nio.ByteBuffer;
import java.nio.file.Paths;
import java.security.InvalidKeyException;
import java.util.EnumSet;
@@ -36,6 +35,7 @@ import com.microsoft.azure.storage.blob.
import com.microsoft.azure.storage.blob.CloudBlob;
import com.microsoft.azure.storage.blob.CloudBlobContainer;
import com.microsoft.azure.storage.blob.CloudBlobDirectory;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -75,7 +75,7 @@ public final class AzureUtilities {
}
}
- public static void readBufferFully(CloudBlob blob, ByteBuffer buffer)
throws IOException {
+ public static void readBufferFully(CloudBlob blob, Buffer buffer) throws
IOException {
try {
blob.download(new ByteBufferOutputStream(buffer));
buffer.flip();
@@ -105,7 +105,7 @@ public final class AzureUtilities {
public static CloudBlobDirectory cloudBlobDirectoryFrom(String connection,
String containerName,
String dir) throws InvalidKeyException, URISyntaxException,
StorageException {
- CloudStorageAccount cloud =
CloudStorageAccount.parse(connection.toString());
+ CloudStorageAccount cloud = CloudStorageAccount.parse(connection);
CloudBlobContainer container =
cloud.createCloudBlobClient().getContainerReference(containerName);
container.createIfNotExists();
@@ -115,19 +115,19 @@ public final class AzureUtilities {
private static class ByteBufferOutputStream extends OutputStream {
@NotNull
- private final ByteBuffer buffer;
+ private final Buffer buffer;
- public ByteBufferOutputStream(@NotNull ByteBuffer buffer) {
+ public ByteBufferOutputStream(@NotNull Buffer buffer) {
this.buffer = buffer;
}
@Override
- public void write(int b) throws IOException {
+ public void write(int b) {
buffer.put((byte)b);
}
@Override
- public void write(@NotNull byte[] bytes, int offset, int length)
throws IOException {
+ public void write(@NotNull byte[] bytes, int offset, int length) {
buffer.put(bytes, offset, length);
}
}
Modified:
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/queue/SegmentWriteAction.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/queue/SegmentWriteAction.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/queue/SegmentWriteAction.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/queue/SegmentWriteAction.java
Wed Dec 5 17:00:25 2018
@@ -17,9 +17,9 @@
package org.apache.jackrabbit.oak.segment.azure.queue;
import org.apache.jackrabbit.oak.segment.azure.AzureSegmentArchiveEntry;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import java.io.IOException;
-import java.nio.ByteBuffer;
import java.util.UUID;
public class SegmentWriteAction {
@@ -47,8 +47,8 @@ public class SegmentWriteAction {
return new UUID(indexEntry.getMsb(), indexEntry.getLsb());
}
- public ByteBuffer toByteBuffer() {
- return ByteBuffer.wrap(buffer, offset, length);
+ public Buffer toBuffer() {
+ return Buffer.wrap(buffer, offset, length);
}
void passTo(SegmentWriteQueue.SegmentConsumer consumer) throws IOException
{
Modified:
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentCopy.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentCopy.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentCopy.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentCopy.java
Wed Dec 5 17:00:25 2018
@@ -45,10 +45,10 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveWriter;
import
org.apache.jackrabbit.oak.segment.spi.persistence.SegmentNodeStorePersistence;
import org.apache.jackrabbit.oak.segment.tool.Check;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import java.io.IOException;
import java.io.PrintWriter;
-import java.nio.ByteBuffer;
import java.text.MessageFormat;
import java.util.ArrayDeque;
import java.util.Collections;
@@ -317,12 +317,12 @@ public class SegmentCopy {
writeSegment(segmentEntry, archiveReader, archiveWriter);
}
- ByteBuffer binRefBuffer = archiveReader.getBinaryReferences();
+ Buffer binRefBuffer = archiveReader.getBinaryReferences();
byte[] binRefData = fetchByteArray(binRefBuffer);
archiveWriter.writeBinaryReferences(binRefData);
- ByteBuffer graphBuffer = archiveReader.getGraph();
+ Buffer graphBuffer = archiveReader.getGraph();
byte[] graphData = fetchByteArray(graphBuffer);
archiveWriter.writeGraph(graphData);
@@ -344,7 +344,7 @@ public class SegmentCopy {
int fullGeneration = segmentEntry.getFullGeneration();
boolean isCompacted = segmentEntry.isCompacted();
- ByteBuffer byteBuffer = archiveReader.readSegment(msb, lsb);
+ Buffer byteBuffer = archiveReader.readSegment(msb, lsb);
byte[] data = fetchByteArray(byteBuffer);
archiveWriter.writeSegment(msb, lsb, data, offset, size, generation,
fullGeneration, isCompacted);
Modified:
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/ToolUtils.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/ToolUtils.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/ToolUtils.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/ToolUtils.java
Wed Dec 5 17:00:25 2018
@@ -24,12 +24,19 @@ import static org.apache.jackrabbit.oak.
import static
org.apache.jackrabbit.oak.segment.azure.util.AzureConfigurationParserUtils.parseAzureConfigurationFromUri;
import static
org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.defaultGCOptions;
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.net.URISyntaxException;
+import java.text.MessageFormat;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
import com.google.common.base.Stopwatch;
import com.microsoft.azure.storage.StorageCredentials;
import com.microsoft.azure.storage.StorageCredentialsAccountAndKey;
import com.microsoft.azure.storage.StorageException;
import com.microsoft.azure.storage.blob.CloudBlobDirectory;
-
import org.apache.jackrabbit.oak.segment.azure.AzurePersistence;
import org.apache.jackrabbit.oak.segment.azure.AzureUtilities;
import org.apache.jackrabbit.oak.segment.file.FileStore;
@@ -40,15 +47,7 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitorAdapter;
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveManager;
import
org.apache.jackrabbit.oak.segment.spi.persistence.SegmentNodeStorePersistence;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.net.URISyntaxException;
-import java.nio.ByteBuffer;
-import java.text.MessageFormat;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
/**
* Utility class for common stuff pertaining to tooling.
@@ -164,7 +163,7 @@ public class ToolUtils {
pw.println(MessageFormat.format(format, arg));
}
- public static byte[] fetchByteArray(ByteBuffer buffer) throws IOException {
+ public static byte[] fetchByteArray(Buffer buffer) throws IOException {
byte[] data = new byte[buffer.remaining()];
buffer.get(data);
return data;
Modified:
jackrabbit/oak/trunk/oak-segment-azure/src/test/java/oak/apache/jackrabbit/oak/segment/azure/tool/SegmentCopyTestBase.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-azure/src/test/java/oak/apache/jackrabbit/oak/segment/azure/tool/SegmentCopyTestBase.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-azure/src/test/java/oak/apache/jackrabbit/oak/segment/azure/tool/SegmentCopyTestBase.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-azure/src/test/java/oak/apache/jackrabbit/oak/segment/azure/tool/SegmentCopyTestBase.java
Wed Dec 5 17:00:25 2018
@@ -23,6 +23,12 @@ import static org.apache.jackrabbit.oak.
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Collections;
+import java.util.List;
+
import org.apache.jackrabbit.oak.segment.SegmentCache;
import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
@@ -42,6 +48,7 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveManager;
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveReader;
import
org.apache.jackrabbit.oak.segment.spi.persistence.SegmentNodeStorePersistence;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
@@ -50,13 +57,6 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.nio.ByteBuffer;
-import java.util.Collections;
-import java.util.List;
-
public abstract class SegmentCopyTestBase {
private static final String AZURE_DIRECTORY = "repository";
private static final String AZURE_CONTAINER = "oak-test";
@@ -164,20 +164,20 @@ public abstract class SegmentCopyTestBas
assertEquals(srcSegment.getFullGeneration(),
destSegment.getFullGeneration());
assertEquals(srcSegment.getGeneration(),
destSegment.getFullGeneration());
- ByteBuffer srcDataBuffer =
srcArchiveReader.readSegment(srcSegment.getMsb(), srcSegment.getLsb());
- ByteBuffer destDataBuffer =
destArchiveReader.readSegment(destSegment.getMsb(), destSegment.getLsb());
+ Buffer srcDataBuffer =
srcArchiveReader.readSegment(srcSegment.getMsb(), srcSegment.getLsb());
+ Buffer destDataBuffer =
destArchiveReader.readSegment(destSegment.getMsb(), destSegment.getLsb());
assertEquals(srcDataBuffer, destDataBuffer);
}
- ByteBuffer srcBinRefBuffer =
srcArchiveReader.getBinaryReferences();
- ByteBuffer destBinRefBuffer =
destArchiveReader.getBinaryReferences();
+ Buffer srcBinRefBuffer = srcArchiveReader.getBinaryReferences();
+ Buffer destBinRefBuffer = destArchiveReader.getBinaryReferences();
assertEquals(srcBinRefBuffer, destBinRefBuffer);
assertEquals(srcArchiveReader.hasGraph(),
destArchiveReader.hasGraph());
- ByteBuffer srcGraphBuffer = srcArchiveReader.getGraph();
- ByteBuffer destGraphBuffer = destArchiveReader.getGraph();
+ Buffer srcGraphBuffer = srcArchiveReader.getGraph();
+ Buffer destGraphBuffer = destArchiveReader.getGraph();
assertEquals(srcGraphBuffer, destGraphBuffer);
}
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CheckpointCompactor.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CheckpointCompactor.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CheckpointCompactor.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CheckpointCompactor.java
Wed Dec 5 17:00:25 2018
@@ -27,7 +27,6 @@ import static org.apache.jackrabbit.oak.
import static
org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
import java.io.IOException;
-import java.nio.ByteBuffer;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
@@ -36,6 +35,7 @@ import java.util.Map.Entry;
import org.apache.jackrabbit.oak.segment.file.GCNodeWriteMonitor;
import org.apache.jackrabbit.oak.segment.file.cancel.Canceller;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.spi.blob.BlobStore;
import org.apache.jackrabbit.oak.spi.gc.GCMonitor;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
@@ -70,7 +70,7 @@ public class CheckpointCompactor {
private interface NodeWriter {
@NotNull
- SegmentNodeState writeNode(@NotNull NodeState node, @Nullable
ByteBuffer stableId) throws IOException;
+ SegmentNodeState writeNode(@NotNull NodeState node, @Nullable Buffer
stableId) throws IOException;
}
/**
@@ -141,7 +141,7 @@ public class CheckpointCompactor {
}
@Nullable
- private static ByteBuffer getStableIdBytes(@NotNull NodeState node) {
+ private static Buffer getStableIdBytes(@NotNull NodeState node) {
return node instanceof SegmentNodeState
? ((SegmentNodeState) node).getStableIdBytes()
: null;
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java
Wed Dec 5 17:00:25 2018
@@ -28,7 +28,6 @@ import static org.apache.jackrabbit.oak.
import static
org.apache.jackrabbit.oak.plugins.memory.PropertyStates.createProperty;
import java.io.IOException;
-import java.nio.ByteBuffer;
import java.util.List;
import org.apache.jackrabbit.oak.api.Blob;
@@ -37,6 +36,7 @@ import org.apache.jackrabbit.oak.api.Typ
import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
import org.apache.jackrabbit.oak.segment.file.GCNodeWriteMonitor;
import org.apache.jackrabbit.oak.segment.file.cancel.Canceller;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.spi.blob.BlobStore;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
@@ -124,7 +124,7 @@ public class Compactor {
}
@Nullable
- private static ByteBuffer getStableIdBytes(NodeState state) {
+ private static Buffer getStableIdBytes(NodeState state) {
if (state instanceof SegmentNodeState) {
return ((SegmentNodeState) state).getStableIdBytes();
} else {
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriter.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriter.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriter.java
Wed Dec 5 17:00:25 2018
@@ -52,7 +52,6 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
-import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
@@ -68,6 +67,7 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.segment.RecordWriters.RecordWriter;
import org.apache.jackrabbit.oak.segment.WriteOperationHandler.WriteOperation;
import org.apache.jackrabbit.oak.segment.file.tar.GCGeneration;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.spi.blob.BlobStore;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
import org.apache.jackrabbit.oak.spi.state.DefaultNodeStateDiff;
@@ -185,7 +185,7 @@ public class DefaultSegmentWriter implem
@Override
@NotNull
- public RecordId writeNode(@NotNull final NodeState state, @Nullable final
ByteBuffer stableIdBytes) throws IOException {
+ public RecordId writeNode(@NotNull final NodeState state, @Nullable final
Buffer stableIdBytes) throws IOException {
return new
SegmentWriteOperation(writeOperationHandler.getGCGeneration())
.writeNode(state, stableIdBytes);
}
@@ -740,7 +740,7 @@ public class DefaultSegmentWriter implem
return tid;
}
- private RecordId writeNode(@NotNull NodeState state, @Nullable
ByteBuffer stableIdBytes)
+ private RecordId writeNode(@NotNull NodeState state, @Nullable Buffer
stableIdBytes)
throws IOException {
RecordId compactedId = deduplicateNode(state);
@@ -767,7 +767,7 @@ public class DefaultSegmentWriter implem
return (byte) (Byte.MIN_VALUE + 64 -
numberOfLeadingZeros(childCount));
}
- private RecordId writeNodeUncached(@NotNull NodeState state, @Nullable
ByteBuffer stableIdBytes)
+ private RecordId writeNodeUncached(@NotNull NodeState state, @Nullable
Buffer stableIdBytes)
throws IOException {
ModifiedNodeState after = null;
@@ -873,7 +873,7 @@ public class DefaultSegmentWriter implem
RecordId stableId;
if (stableIdBytes != null) {
- ByteBuffer buffer = stableIdBytes.duplicate();
+ Buffer buffer = stableIdBytes.duplicate();
byte[] bytes = new byte[buffer.remaining()];
buffer.get(bytes);
stableId = writeBlock(bytes, 0, bytes.length);
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordId.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordId.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordId.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordId.java
Wed Dec 5 17:00:25 2018
@@ -22,11 +22,11 @@ import static com.google.common.base.Pre
import static java.lang.Integer.parseInt;
import static
org.apache.jackrabbit.oak.segment.CacheWeights.OBJECT_HEADER_SIZE;
-import java.nio.ByteBuffer;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.jetbrains.annotations.NotNull;
/**
@@ -103,12 +103,12 @@ public final class RecordId implements C
* @return this record id as byte array
*/
@NotNull
- ByteBuffer getBytes() {
+ Buffer getBytes() {
byte[] buffer = new byte[SERIALIZED_RECORD_ID_BYTES];
BinaryUtils.writeLong(buffer, 0, segmentId.getMostSignificantBits());
BinaryUtils.writeLong(buffer, 8, segmentId.getLeastSignificantBits());
BinaryUtils.writeInt(buffer, 16, offset);
- return ByteBuffer.wrap(buffer);
+ return Buffer.wrap(buffer);
}
//--------------------------------------------------------< Comparable >--
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java
Wed Dec 5 17:00:25 2018
@@ -36,7 +36,6 @@ import static org.apache.jackrabbit.oak.
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
-import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Iterator;
import java.util.UUID;
@@ -54,6 +53,7 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.data.SegmentData;
import org.apache.jackrabbit.oak.segment.data.StringData;
import org.apache.jackrabbit.oak.segment.file.tar.GCGeneration;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -179,9 +179,9 @@ public class Segment {
this.reader = checkNotNull(reader);
this.info = checkNotNull(info);
if (id.isDataSegmentId()) {
- this.data = newSegmentData(ByteBuffer.wrap(buffer));
+ this.data = newSegmentData(Buffer.wrap(buffer));
} else {
- this.data = newRawSegmentData(ByteBuffer.wrap(buffer));
+ this.data = newRawSegmentData(Buffer.wrap(buffer));
}
this.version = SegmentVersion.fromByte(buffer[3]);
this.recordNumbers = recordNumbers;
@@ -192,7 +192,7 @@ public class Segment {
public Segment(@NotNull SegmentIdProvider idProvider,
@NotNull SegmentReader reader,
@NotNull final SegmentId id,
- @NotNull final ByteBuffer data) {
+ @NotNull final Buffer data) {
this.reader = checkNotNull(reader);
this.id = checkNotNull(id);
if (id.isDataSegmentId()) {
@@ -417,7 +417,7 @@ public class Segment {
readBytes(recordNumber, position, length).get(buffer, offset, length);
}
- ByteBuffer readBytes(int recordNumber, int position, int length) {
+ Buffer readBytes(int recordNumber, int position, int length) {
return data.readBytes(recordNumbers.getOffset(recordNumber) +
position, length);
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBlob.java
Wed Dec 5 17:00:25 2018
@@ -21,9 +21,9 @@ package org.apache.jackrabbit.oak.segmen
import static com.google.common.base.Charsets.UTF_8;
import static com.google.common.collect.Sets.newHashSet;
import static java.util.Collections.emptySet;
-import static org.apache.jackrabbit.oak.segment.SegmentStream.BLOCK_SIZE;
import static org.apache.jackrabbit.oak.segment.Segment.MEDIUM_LIMIT;
import static org.apache.jackrabbit.oak.segment.Segment.SMALL_LIMIT;
+import static org.apache.jackrabbit.oak.segment.SegmentStream.BLOCK_SIZE;
import java.io.InputStream;
import java.util.List;
@@ -198,7 +198,7 @@ public class SegmentBlob extends Record
private static String readShortBlobId(Segment segment, int recordNumber,
byte head) {
int length = (head & 0x0f) << 8 | (segment.readByte(recordNumber, 1) &
0xff);
- return UTF_8.decode(segment.readBytes(recordNumber, 2,
length)).toString();
+ return segment.readBytes(recordNumber, 2,
length).decode(UTF_8).toString();
}
private static String readLongBlobId(Segment segment, int recordNumber) {
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferMonitor.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferMonitor.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferMonitor.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferMonitor.java
Wed Dec 5 17:00:25 2018
@@ -23,16 +23,16 @@ import static org.apache.jackrabbit.oak.
import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;
-import java.nio.ByteBuffer;
import java.util.Set;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.stats.CounterStats;
import org.apache.jackrabbit.oak.stats.StatisticsProvider;
import org.jetbrains.annotations.NotNull;
/**
* This class exposes {@link CounterStats} for allocations and de-allocations
- * of {@link ByteBuffer} instances:
+ * of {@link Buffer} instances:
* <ul>
* <li>{@link #DIRECT_BUFFER_COUNT}: number of allocated direct byte
* buffers.</li>
@@ -44,7 +44,7 @@ import org.jetbrains.annotations.NotNull
* heap byte buffers.</li>
* </ul>
* <p>
- * Users of this class call {@link #trackAllocation(ByteBuffer)} to update
above statistics.
+ * Users of this class call {@link #trackAllocation(Buffer)} to update above
statistics.
*/
public class SegmentBufferMonitor {
@@ -72,7 +72,7 @@ public class SegmentBufferMonitor {
private final Set<BufferReference> buffers = newConcurrentHashSet();
@NotNull
- private final ReferenceQueue<ByteBuffer> referenceQueue = new
ReferenceQueue<>();
+ private final ReferenceQueue<Buffer> referenceQueue = new
ReferenceQueue<>();
@NotNull
private final CounterStats directBufferCount;
@@ -98,12 +98,12 @@ public class SegmentBufferMonitor {
heapBufferCapacity =
statisticsProvider.getCounterStats(HEAP_BUFFER_CAPACITY, METRICS_ONLY);
}
- private static class BufferReference extends WeakReference<ByteBuffer> {
+ private static class BufferReference extends WeakReference<Buffer> {
private final int capacity;
private final boolean isDirect;
- public BufferReference(@NotNull ByteBuffer buffer,
- @NotNull ReferenceQueue<ByteBuffer> queue) {
+ public BufferReference(@NotNull Buffer buffer,
+ @NotNull ReferenceQueue<Buffer> queue) {
super(buffer, queue);
this.capacity = buffer.capacity();
this.isDirect = buffer.isDirect();
@@ -114,7 +114,7 @@ public class SegmentBufferMonitor {
* Track the allocation of a {@code buffer} and update the exposed
statistics.
* @param buffer
*/
- public void trackAllocation(@NotNull ByteBuffer buffer) {
+ public void trackAllocation(@NotNull Buffer buffer) {
BufferReference reference = new BufferReference(buffer,
referenceQueue);
buffers.add(reference);
allocated(reference);
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java
Wed Dec 5 17:00:25 2018
@@ -36,7 +36,6 @@ import static org.apache.jackrabbit.oak.
import static
org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.MISSING_NODE;
import static
org.apache.jackrabbit.oak.spi.state.AbstractNodeState.checkValidName;
-import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
@@ -47,6 +46,7 @@ import org.apache.jackrabbit.oak.api.Pro
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
import org.apache.jackrabbit.oak.plugins.memory.MemoryChildNodeEntry;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.spi.blob.BlobStore;
import org.apache.jackrabbit.oak.spi.state.AbstractNodeState;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
@@ -134,8 +134,8 @@ public class SegmentNodeState extends Re
}
@NotNull
- static String getStableId(@NotNull ByteBuffer stableId) {
- ByteBuffer buffer = stableId.duplicate();
+ static String getStableId(@NotNull Buffer stableId) {
+ Buffer buffer = stableId.duplicate();
long msb = buffer.getLong();
long lsb = buffer.getLong();
int offset = buffer.getInt();
@@ -161,7 +161,7 @@ public class SegmentNodeState extends Re
*
* @return the stable ID of this node.
*/
- public ByteBuffer getStableIdBytes() {
+ public Buffer getStableIdBytes() {
// The first record id of this node points to the stable id.
RecordId id = getSegment().readRecordId(getRecordNumber());
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStream.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStream.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStream.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStream.java
Wed Dec 5 17:00:25 2018
@@ -25,12 +25,11 @@ import static com.google.common.base.Pre
import java.io.IOException;
import java.io.InputStream;
-import java.nio.ByteBuffer;
import java.util.List;
import com.google.common.base.Charsets;
import com.google.common.io.ByteStreams;
-
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -56,7 +55,7 @@ public class SegmentStream extends Input
private final RecordId recordId;
- private final ByteBuffer inline;
+ private final Buffer inline;
private final ListRecord blocks;
@@ -74,7 +73,7 @@ public class SegmentStream extends Input
this.length = length;
}
- SegmentStream(RecordId recordId, ByteBuffer inline, int length) {
+ SegmentStream(RecordId recordId, Buffer inline, int length) {
this.recordId = checkNotNull(recordId);
this.inline = inline.duplicate();
this.blocks = null;
@@ -95,7 +94,7 @@ public class SegmentStream extends Input
public String getString() {
if (inline != null) {
- return Charsets.UTF_8.decode(inline).toString();
+ return inline.decode(Charsets.UTF_8).toString();
} else if (length > Integer.MAX_VALUE) {
throw new IllegalStateException("Too long value: " + length);
} else {
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
Wed Dec 5 17:00:25 2018
@@ -19,9 +19,9 @@ package org.apache.jackrabbit.oak.segmen
import java.io.IOException;
import java.io.InputStream;
-import java.nio.ByteBuffer;
import org.apache.jackrabbit.oak.api.Blob;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -65,14 +65,14 @@ public interface SegmentWriter {
* @throws IOException
*/
@NotNull
- RecordId writeNode(@NotNull NodeState state, @Nullable ByteBuffer
stableIdBytes) throws IOException;
+ RecordId writeNode(@NotNull NodeState state, @Nullable Buffer
stableIdBytes) throws IOException;
/**
* Write a node state.
* <p>
* Equivalent to {@code writeNode(state, null)}
*
- * @see #writeNode(NodeState, ByteBuffer)
+ * @see #writeNode(NodeState, Buffer)
*/
@NotNull
default RecordId writeNode(@NotNull NodeState state) throws IOException {
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentData.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentData.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentData.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentData.java
Wed Dec 5 17:00:25 2018
@@ -19,7 +19,8 @@ package org.apache.jackrabbit.oak.segmen
import java.io.IOException;
import java.io.OutputStream;
-import java.nio.ByteBuffer;
+
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
/**
* Access the data of a segment.
@@ -62,11 +63,11 @@ import java.nio.ByteBuffer;
*/
public interface SegmentData {
- static SegmentData newSegmentData(ByteBuffer buffer) {
+ static SegmentData newSegmentData(Buffer buffer) {
return SegmentDataLoader.newSegmentData(buffer);
}
- static SegmentData newRawSegmentData(ByteBuffer buffer) {
+ static SegmentData newRawSegmentData(Buffer buffer) {
return SegmentDataLoader.newRawSegmentData(buffer);
}
@@ -108,7 +109,7 @@ public interface SegmentData {
long readLong(int recordReferenceOffset);
- ByteBuffer readBytes(int recordReferenceOffset, int size);
+ Buffer readBytes(int recordReferenceOffset, int size);
int size();
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataLoader.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataLoader.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataLoader.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataLoader.java
Wed Dec 5 17:00:25 2018
@@ -17,7 +17,7 @@
package org.apache.jackrabbit.oak.segment.data;
-import java.nio.ByteBuffer;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
class SegmentDataLoader {
@@ -27,7 +27,7 @@ class SegmentDataLoader {
private static final byte SEGMENT_DATA_V13 = 13;
- static SegmentData newSegmentData(ByteBuffer buffer) {
+ static SegmentData newSegmentData(Buffer buffer) {
switch (buffer.get(VERSION_OFFSET)) {
case SEGMENT_DATA_V12:
return new SegmentDataV12(buffer);
@@ -38,7 +38,7 @@ class SegmentDataLoader {
}
}
- static SegmentData newRawSegmentData(ByteBuffer buffer) {
+ static SegmentData newRawSegmentData(Buffer buffer) {
return new SegmentDataRaw(buffer);
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataRaw.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataRaw.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataRaw.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataRaw.java
Wed Dec 5 17:00:25 2018
@@ -19,13 +19,14 @@ package org.apache.jackrabbit.oak.segmen
import java.io.IOException;
import java.io.OutputStream;
-import java.nio.ByteBuffer;
+
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
class SegmentDataRaw implements SegmentData {
- private final ByteBuffer buffer;
+ private final Buffer buffer;
- SegmentDataRaw(ByteBuffer buffer) {
+ SegmentDataRaw(Buffer buffer) {
this.buffer = buffer;
}
@@ -34,7 +35,7 @@ class SegmentDataRaw implements SegmentD
}
@Override
- public ByteBuffer readBytes(int recordReferenceOffset, int size) {
+ public Buffer readBytes(int recordReferenceOffset, int size) {
return SegmentDataUtils.readBytes(buffer,
index(recordReferenceOffset), size);
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataUtils.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataUtils.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataUtils.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataUtils.java
Wed Dec 5 17:00:25 2018
@@ -19,11 +19,11 @@ package org.apache.jackrabbit.oak.segmen
import java.io.IOException;
import java.io.OutputStream;
-import java.nio.ByteBuffer;
import java.nio.channels.Channels;
import java.nio.channels.WritableByteChannel;
import org.apache.commons.io.HexDump;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
class SegmentDataUtils {
@@ -33,33 +33,33 @@ class SegmentDataUtils {
private static final int MAX_SEGMENT_SIZE = 1 << 18;
- static void hexDump(ByteBuffer buffer, OutputStream stream) throws
IOException {
+ static void hexDump(Buffer buffer, OutputStream stream) throws IOException
{
byte[] data = new byte[buffer.remaining()];
buffer.duplicate().get(data);
HexDump.dump(data, 0, stream, 0);
}
- static void binDump(ByteBuffer buffer, OutputStream stream) throws
IOException {
- ByteBuffer data = buffer.duplicate();
+ static void binDump(Buffer buffer, OutputStream stream) throws IOException
{
+ Buffer data = buffer.duplicate();
try (WritableByteChannel channel = Channels.newChannel(stream)) {
while (data.hasRemaining()) {
- channel.write(data);
+ data.write(channel);
}
}
}
- static int estimateMemoryUsage(ByteBuffer buffer) {
+ static int estimateMemoryUsage(Buffer buffer) {
return buffer.isDirect() ? 0 : buffer.remaining();
}
- static ByteBuffer readBytes(ByteBuffer buffer, int index, int size) {
- ByteBuffer duplicate = buffer.duplicate();
+ static Buffer readBytes(Buffer buffer, int index, int size) {
+ Buffer duplicate = buffer.duplicate();
duplicate.position(index);
duplicate.limit(index + size);
return duplicate.slice();
}
- static int index(ByteBuffer buffer, int recordReferenceOffset) {
+ static int index(Buffer buffer, int recordReferenceOffset) {
return buffer.limit() - (MAX_SEGMENT_SIZE - recordReferenceOffset);
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataV12.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataV12.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataV12.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataV12.java
Wed Dec 5 17:00:25 2018
@@ -19,9 +19,9 @@ package org.apache.jackrabbit.oak.segmen
import java.io.IOException;
import java.io.OutputStream;
-import java.nio.ByteBuffer;
import com.google.common.base.Charsets;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
class SegmentDataV12 implements SegmentData {
@@ -65,9 +65,9 @@ class SegmentDataV12 implements SegmentD
private static final int MAX_MEDIUM_LENGTH_VALUE = (1 << 14) +
MAX_SMALL_LENGTH_VALUE;
- final ByteBuffer buffer;
+ final Buffer buffer;
- SegmentDataV12(ByteBuffer buffer) {
+ SegmentDataV12(Buffer buffer) {
this.buffer = buffer;
}
@@ -192,10 +192,10 @@ class SegmentDataV12 implements SegmentD
}
private StringData internalReadString(int index, int length) {
- ByteBuffer duplicate = buffer.duplicate();
+ Buffer duplicate = buffer.duplicate();
duplicate.position(index);
duplicate.limit(index + length);
- String string = Charsets.UTF_8.decode(duplicate).toString();
+ String string = duplicate.decode(Charsets.UTF_8).toString();
return new StringData(string, length);
}
@@ -231,7 +231,7 @@ class SegmentDataV12 implements SegmentD
}
@Override
- public ByteBuffer readBytes(int recordReferenceOffset, int size) {
+ public Buffer readBytes(int recordReferenceOffset, int size) {
return SegmentDataUtils.readBytes(buffer,
index(recordReferenceOffset), size);
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataV13.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataV13.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataV13.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/data/SegmentDataV13.java
Wed Dec 5 17:00:25 2018
@@ -17,13 +17,13 @@
package org.apache.jackrabbit.oak.segment.data;
-import java.nio.ByteBuffer;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
class SegmentDataV13 extends SegmentDataV12 {
private static final int FULL_GENERATION_OFFSET = 4;
- SegmentDataV13(ByteBuffer buffer) {
+ SegmentDataV13(Buffer buffer) {
super(buffer);
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractFileStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractFileStore.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractFileStore.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractFileStore.java
Wed Dec 5 17:00:25 2018
@@ -24,7 +24,6 @@ import static org.apache.jackrabbit.oak.
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
-import java.nio.ByteBuffer;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
@@ -54,6 +53,7 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.file.tar.TarRecovery;
import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitor;
import
org.apache.jackrabbit.oak.segment.spi.persistence.SegmentNodeStorePersistence;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.spi.blob.BlobStore;
import org.apache.jackrabbit.oak.stats.StatsOptions;
import org.jetbrains.annotations.NotNull;
@@ -215,7 +215,7 @@ public abstract class AbstractFileStore
private void writeSegment(UUID id, byte[] data, EntryRecovery w) throws
IOException {
long msb = id.getMostSignificantBits();
long lsb = id.getLeastSignificantBits();
- ByteBuffer buffer = ByteBuffer.wrap(data);
+ Buffer buffer = Buffer.wrap(data);
GCGeneration generation = SegmentId.isDataSegmentId(lsb)
? Segment.getGcGeneration(newSegmentData(buffer), id)
: GCGeneration.NULL;
@@ -279,7 +279,7 @@ public abstract class AbstractFileStore
}
Segment readSegmentUncached(TarFiles tarFiles, SegmentId id) {
- ByteBuffer buffer = tarFiles.readSegment(id.getMostSignificantBits(),
id.getLeastSignificantBits());
+ Buffer buffer = tarFiles.readSegment(id.getMostSignificantBits(),
id.getLeastSignificantBits());
if (buffer == null) {
throw new SegmentNotFoundException(id);
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
Wed Dec 5 17:00:25 2018
@@ -29,7 +29,6 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.stats.StatsOptions.METRICS_ONLY;
import java.io.IOException;
-import java.nio.ByteBuffer;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
@@ -53,6 +52,7 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.file.tar.TarFiles;
import org.apache.jackrabbit.oak.segment.spi.persistence.RepositoryLock;
import
org.apache.jackrabbit.oak.segment.spi.persistence.SegmentNodeStorePersistence;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.stats.CounterStats;
import org.apache.jackrabbit.oak.stats.StatisticsProvider;
@@ -517,14 +517,14 @@ public class FileStore extends AbstractF
Set<String> binaryReferences = null;
if (id.isDataSegmentId()) {
- ByteBuffer data;
+ Buffer data;
if (offset > 4096) {
- data = ByteBuffer.allocate(length);
+ data = Buffer.allocate(length);
data.put(buffer, offset, length);
data.rewind();
} else {
- data = ByteBuffer.wrap(buffer, offset, length);
+ data = Buffer.wrap(buffer, offset, length);
}
segment = new Segment(tracker, segmentReader, id, data);
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/FileAccess.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/FileAccess.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/FileAccess.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/FileAccess.java
Wed Dec 5 17:00:25 2018
@@ -20,15 +20,14 @@ package org.apache.jackrabbit.oak.segmen
import static com.google.common.base.Preconditions.checkState;
import static java.nio.channels.FileChannel.MapMode.READ_ONLY;
-import static org.apache.jackrabbit.oak.commons.IOUtils.readFully;
import java.io.EOFException;
import java.io.IOException;
import java.io.RandomAccessFile;
-import java.nio.ByteBuffer;
-import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
+
/**
* A wrapper around either memory mapped files or random access files, to allow
* reading from a file.
@@ -39,7 +38,7 @@ abstract class FileAccess {
abstract int length() throws IOException;
- abstract ByteBuffer read(int position, int length) throws IOException;
+ abstract Buffer read(int position, int length) throws IOException;
abstract void close() throws IOException;
@@ -52,11 +51,11 @@ abstract class FileAccess {
private final RandomAccessFile file;
- private MappedByteBuffer buffer;
+ private Buffer buffer;
Mapped(RandomAccessFile file) throws IOException {
this.file = file;
- this.buffer = file.getChannel().map(READ_ONLY, 0, file.length());
+ this.buffer = Buffer.map(file.getChannel(), READ_ONLY, 0,
file.length());
}
@Override
@@ -70,8 +69,8 @@ abstract class FileAccess {
}
@Override
- public ByteBuffer read(int position, int length) {
- ByteBuffer entry = buffer.asReadOnlyBuffer();
+ public Buffer read(int position, int length) {
+ Buffer entry = buffer.asReadOnlyBuffer();
entry.position(entry.position() + position);
entry.limit(entry.position() + length);
return entry.slice();
@@ -111,12 +110,9 @@ abstract class FileAccess {
}
@Override
- public synchronized ByteBuffer read(int position, int length)
- throws IOException {
- ByteBuffer entry;
- entry = ByteBuffer.allocate(length);
-
- if (readFully(channel, position, entry) < length) {
+ public synchronized Buffer read(int position, int length) throws
IOException {
+ Buffer entry = Buffer.allocate(length);
+ if (entry.readFully(channel, position) < length) {
throw new EOFException();
}
entry.flip();
@@ -141,12 +137,9 @@ abstract class FileAccess {
}
@Override
- public synchronized ByteBuffer read(int position, int length)
- throws IOException {
- ByteBuffer entry;
- entry = ByteBuffer.allocateDirect(length);
-
- if (readFully(channel, position, entry) < length) {
+ public synchronized Buffer read(int position, int length) throws
IOException {
+ Buffer entry = Buffer.allocateDirect(length);
+ if (entry.readFully(channel, position) < length) {
throw new EOFException();
}
entry.flip();
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/GraphLoader.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/GraphLoader.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/GraphLoader.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/GraphLoader.java
Wed Dec 5 17:00:25 2018
@@ -18,20 +18,20 @@
*/
package org.apache.jackrabbit.oak.segment.file.tar;
-import org.apache.jackrabbit.oak.segment.util.ReaderAtEnd;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import static com.google.common.collect.Lists.newArrayListWithCapacity;
+import static com.google.common.collect.Maps.newHashMapWithExpectedSize;
+import static
org.apache.jackrabbit.oak.segment.file.tar.TarConstants.GRAPH_MAGIC;
import java.io.IOException;
-import java.nio.ByteBuffer;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.zip.CRC32;
-import static com.google.common.collect.Lists.newArrayListWithCapacity;
-import static com.google.common.collect.Maps.newHashMapWithExpectedSize;
-import static
org.apache.jackrabbit.oak.segment.file.tar.TarConstants.GRAPH_MAGIC;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
+import org.apache.jackrabbit.oak.segment.util.ReaderAtEnd;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public final class GraphLoader {
@@ -48,8 +48,8 @@ public final class GraphLoader {
* @return the graph or {@code null} if one was not found
* @throws IOException if the tar file could not be read
*/
- public static ByteBuffer loadGraph(ReaderAtEnd readerAtEnd) throws
IOException {
- ByteBuffer meta = readerAtEnd.readAtEnd(FOOTER_SIZE, FOOTER_SIZE);
+ public static Buffer loadGraph(ReaderAtEnd readerAtEnd) throws IOException
{
+ Buffer meta = readerAtEnd.readAtEnd(FOOTER_SIZE, FOOTER_SIZE);
int crc32 = meta.getInt();
int count = meta.getInt();
@@ -71,7 +71,7 @@ public final class GraphLoader {
return null;
}
- ByteBuffer graph = readerAtEnd.readAtEnd(bytes, bytes);
+ Buffer graph = readerAtEnd.readAtEnd(bytes, bytes);
byte[] b = new byte[bytes - FOOTER_SIZE];
@@ -90,7 +90,7 @@ public final class GraphLoader {
return graph;
}
- public static Map<UUID, List<UUID>> parseGraph(ByteBuffer buffer) {
+ public static Map<UUID, List<UUID>> parseGraph(Buffer buffer) {
int nEntries = buffer.getInt(buffer.limit() - 12);
Map<UUID, List<UUID>> graph = newHashMapWithExpectedSize(nEntries);
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarManager.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarManager.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarManager.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarManager.java
Wed Dec 5 17:00:25 2018
@@ -19,23 +19,12 @@
package org.apache.jackrabbit.oak.segment.file.tar;
import static com.google.common.base.Charsets.UTF_8;
-import static java.nio.ByteBuffer.wrap;
import static
org.apache.jackrabbit.oak.segment.file.tar.TarConstants.BLOCK_SIZE;
-
-import org.apache.commons.io.filefilter.SuffixFileFilter;
-import org.apache.jackrabbit.oak.segment.file.tar.index.Index;
-import org.apache.jackrabbit.oak.segment.spi.monitor.FileStoreMonitor;
-import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitor;
-import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveManager;
-import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveReader;
-import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveWriter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import static org.apache.jackrabbit.oak.segment.spi.persistence.Buffer.wrap;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
-import java.nio.ByteBuffer;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.LinkedHashMap;
@@ -45,6 +34,17 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.zip.CRC32;
+import org.apache.commons.io.filefilter.SuffixFileFilter;
+import org.apache.jackrabbit.oak.segment.file.tar.index.Index;
+import org.apache.jackrabbit.oak.segment.spi.monitor.FileStoreMonitor;
+import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitor;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
+import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveManager;
+import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveReader;
+import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveWriter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class SegmentTarManager implements SegmentArchiveManager {
/**
@@ -219,7 +219,7 @@ public class SegmentTarManager implement
}
// The header checksum passes, so read the entry name and size
- ByteBuffer buffer = wrap(header);
+ Buffer buffer = wrap(header);
String name = readString(buffer, 100);
buffer.position(124);
int size = readNumber(buffer, 12);
@@ -247,7 +247,7 @@ public class SegmentTarManager implement
if (checksum != null) {
CRC32 crc = new CRC32();
- crc.update(data);
+ crc.update(data, 0, data.length);
if (crc.getValue() != Long.parseLong(checksum, 16)) {
log.warn("Checksum mismatch in entry {} of tar
file {}, skipping...",
name, file);
@@ -270,7 +270,7 @@ public class SegmentTarManager implement
}
}
- private static String readString(ByteBuffer buffer, int fieldSize) {
+ private static String readString(Buffer buffer, int fieldSize) {
byte[] b = new byte[fieldSize];
buffer.get(b);
int n = 0;
@@ -280,7 +280,7 @@ public class SegmentTarManager implement
return new String(b, 0, n, UTF_8);
}
- private static int readNumber(ByteBuffer buffer, int fieldSize) {
+ private static int readNumber(Buffer buffer, int fieldSize) {
byte[] b = new byte[fieldSize];
buffer.get(b);
int number = 0;
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarReader.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarReader.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarReader.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarReader.java
Wed Dec 5 17:00:25 2018
@@ -18,32 +18,32 @@
*/
package org.apache.jackrabbit.oak.segment.file.tar;
+import static
org.apache.jackrabbit.oak.segment.file.tar.SegmentTarWriter.getPaddingSize;
+import static
org.apache.jackrabbit.oak.segment.file.tar.TarConstants.BLOCK_SIZE;
+import static
org.apache.jackrabbit.oak.segment.file.tar.index.IndexLoader.newIndexLoader;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
import com.google.common.base.Stopwatch;
-import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitor;
import
org.apache.jackrabbit.oak.segment.file.tar.binaries.BinaryReferencesIndexLoader;
import
org.apache.jackrabbit.oak.segment.file.tar.binaries.InvalidBinaryReferencesIndexException;
import org.apache.jackrabbit.oak.segment.file.tar.index.Index;
import org.apache.jackrabbit.oak.segment.file.tar.index.IndexEntry;
import org.apache.jackrabbit.oak.segment.file.tar.index.IndexLoader;
import org.apache.jackrabbit.oak.segment.file.tar.index.InvalidIndexException;
+import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitor;
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveEntry;
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveReader;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.segment.util.ReaderAtEnd;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-import static
org.apache.jackrabbit.oak.segment.file.tar.SegmentTarWriter.getPaddingSize;
-import static
org.apache.jackrabbit.oak.segment.file.tar.TarConstants.BLOCK_SIZE;
-import static
org.apache.jackrabbit.oak.segment.file.tar.index.IndexLoader.newIndexLoader;
-
public class SegmentTarReader implements SegmentArchiveReader {
private static final Logger log =
LoggerFactory.getLogger(SegmentTarReader.class);
@@ -71,7 +71,7 @@ public class SegmentTarReader implements
}
@Override
- public ByteBuffer readSegment(long msb, long lsb) throws IOException {
+ public Buffer readSegment(long msb, long lsb) throws IOException {
int i = index.findEntry(msb, lsb);
if (i == -1) {
return null;
@@ -79,7 +79,7 @@ public class SegmentTarReader implements
IndexEntry indexEntry = index.entry(i);
ioMonitor.beforeSegmentRead(file, msb, lsb, indexEntry.getLength());
Stopwatch stopwatch = Stopwatch.createStarted();
- ByteBuffer buffer = access.read(indexEntry.getPosition(),
indexEntry.getLength());
+ Buffer buffer = access.read(indexEntry.getPosition(),
indexEntry.getLength());
long elapsed = stopwatch.elapsed(TimeUnit.NANOSECONDS);
ioMonitor.afterSegmentRead(file, msb, lsb, indexEntry.getLength(),
elapsed);
return buffer;
@@ -115,7 +115,7 @@ public class SegmentTarReader implements
return null;
}
ReaderAtEnd r = (whence, size) -> {
- ByteBuffer buffer = ByteBuffer.allocate(size);
+ Buffer buffer = Buffer.allocate(size);
file.seek(length - 2 * BLOCK_SIZE - whence);
file.readFully(buffer.array());
return buffer;
@@ -129,9 +129,9 @@ public class SegmentTarReader implements
}
@Override
- public ByteBuffer getGraph() throws IOException {
+ public Buffer getGraph() throws IOException {
int end = access.length() - 2 * BLOCK_SIZE - getIndexEntrySize();
- ByteBuffer graph = GraphLoader.loadGraph((whence, amount) ->
access.read(end - whence, amount));
+ Buffer graph = GraphLoader.loadGraph((whence, amount) ->
access.read(end - whence, amount));
hasGraph = graph != null;
return graph;
}
@@ -147,7 +147,7 @@ public class SegmentTarReader implements
}
@Override
- public ByteBuffer getBinaryReferences() throws IOException {
+ public Buffer getBinaryReferences() throws IOException {
try {
int end = access.length() - 2 * BLOCK_SIZE - getIndexEntrySize() -
getGraphEntrySize();
return
BinaryReferencesIndexLoader.loadBinaryReferencesIndex((whence, amount) ->
access.read(end - whence, amount));
@@ -181,7 +181,7 @@ public class SegmentTarReader implements
}
private int getGraphEntrySize() {
- ByteBuffer buffer;
+ Buffer buffer;
try {
buffer = getGraph();
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarWriter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarWriter.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarWriter.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/SegmentTarWriter.java
Wed Dec 5 17:00:25 2018
@@ -20,14 +20,12 @@ package org.apache.jackrabbit.oak.segmen
import static com.google.common.base.Charsets.UTF_8;
import static com.google.common.base.Preconditions.checkState;
-import static org.apache.jackrabbit.oak.commons.IOUtils.readFully;
import static
org.apache.jackrabbit.oak.segment.file.tar.TarConstants.BLOCK_SIZE;
import java.io.EOFException;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
-import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.Collections;
import java.util.LinkedHashMap;
@@ -43,6 +41,7 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.spi.monitor.FileStoreMonitor;
import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitor;
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveWriter;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -133,14 +132,14 @@ public class SegmentTarWriter implements
}
@Override
- public ByteBuffer readSegment(long msb, long lsb) throws IOException {
+ public Buffer readSegment(long msb, long lsb) throws IOException {
IndexEntry indexEntry = index.get(new UUID(msb, lsb));
if (indexEntry == null) {
return null;
}
checkState(channel != null); // implied by entry != null
- ByteBuffer data = ByteBuffer.allocate(indexEntry.getLength());
- if (readFully(channel, indexEntry.getPosition(), data) <
indexEntry.getLength()) {
+ Buffer data = Buffer.allocate(indexEntry.getLength());
+ if (data.readFully(channel, indexEntry.getPosition()) <
indexEntry.getLength()) {
throw new EOFException();
}
data.rewind();
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
Wed Dec 5 17:00:25 2018
@@ -28,7 +28,6 @@ import static java.util.Collections.empt
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
-import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -55,6 +54,7 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitor;
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveManager;
import
org.apache.jackrabbit.oak.segment.spi.persistence.SegmentNodeStorePersistence;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.apache.jackrabbit.oak.stats.CounterStats;
import org.apache.jackrabbit.oak.stats.NoopStats;
import org.jetbrains.annotations.NotNull;
@@ -547,14 +547,14 @@ public class TarFiles implements Closeab
return false;
}
- public ByteBuffer readSegment(long msb, long lsb) {
+ public Buffer readSegment(long msb, long lsb) {
try {
Node head;
lock.readLock().lock();
try {
if (writer != null) {
- ByteBuffer b = writer.readEntry(msb, lsb);
+ Buffer b = writer.readEntry(msb, lsb);
if (b != null) {
return b;
}
@@ -565,7 +565,7 @@ public class TarFiles implements Closeab
}
for (TarReader reader : iterable(head)) {
- ByteBuffer b = reader.readEntry(msb, lsb);
+ Buffer b = reader.readEntry(msb, lsb);
if (b != null) {
return b;
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarReader.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarReader.java?rev=1848226&r1=1848225&r2=1848226&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarReader.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarReader.java
Wed Dec 5 17:00:25 2018
@@ -29,7 +29,6 @@ import static org.apache.jackrabbit.oak.
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
-import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
@@ -42,13 +41,14 @@ import java.util.function.Consumer;
import java.util.stream.Collectors;
import com.google.common.base.Predicate;
-import
org.apache.jackrabbit.oak.segment.file.tar.binaries.BinaryReferencesIndexLoader;
-import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveEntry;
-import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveManager;
import
org.apache.jackrabbit.oak.segment.file.tar.binaries.BinaryReferencesIndex;
+import
org.apache.jackrabbit.oak.segment.file.tar.binaries.BinaryReferencesIndexLoader;
import
org.apache.jackrabbit.oak.segment.file.tar.binaries.InvalidBinaryReferencesIndexException;
import org.apache.jackrabbit.oak.segment.file.tar.index.IndexEntry;
+import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveEntry;
+import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveManager;
import org.apache.jackrabbit.oak.segment.spi.persistence.SegmentArchiveReader;
+import org.apache.jackrabbit.oak.segment.spi.persistence.Buffer;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -305,7 +305,7 @@ public class TarReader implements Closea
* @param lsb the least significant bits of the segment id
* @return the byte buffer, or null if not in this file.
*/
- ByteBuffer readEntry(long msb, long lsb) throws IOException {
+ Buffer readEntry(long msb, long lsb) throws IOException {
return archive.readSegment(msb, lsb);
}
@@ -586,7 +586,7 @@ public class TarReader implements Closea
* @return The parsed graph, or {@code null} if one was not found.
*/
Map<UUID, List<UUID>> getGraph() throws IOException {
- ByteBuffer buffer = archive.getGraph();
+ Buffer buffer = archive.getGraph();
if (buffer == null) {
return null;
} else {