You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by am...@apache.org on 2018/10/09 06:56:30 UTC

svn commit: r1843222 - in /jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob: AbstractDataStoreCacheTest.java CachingDataStoreTest.java

Author: amitj
Date: Tue Oct  9 06:56:30 2018
New Revision: 1843222

URL: http://svn.apache.org/viewvc?rev=1843222&view=rev
Log:
OAK-7798: Return stream for downloaded files rather than directly from backend

- Slightly shorter path for ds in test
- Using the FileIOUtils.copyInputStreamToFile in test
- Some rearrangement to use existing folders

Modified:
    jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/AbstractDataStoreCacheTest.java
    jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java

Modified: jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/AbstractDataStoreCacheTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/AbstractDataStoreCacheTest.java?rev=1843222&r1=1843221&r2=1843222&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/AbstractDataStoreCacheTest.java (original)
+++ jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/AbstractDataStoreCacheTest.java Tue Oct  9 06:56:30 2018
@@ -54,6 +54,7 @@ import org.apache.jackrabbit.core.data.D
 import org.apache.jackrabbit.core.data.DataRecord;
 import org.apache.jackrabbit.core.data.DataStoreException;
 import org.apache.jackrabbit.core.data.util.NamedThreadFactory;
+import org.apache.jackrabbit.oak.commons.FileIOUtils;
 import org.apache.jackrabbit.oak.spi.blob.AbstractDataRecord;
 import org.apache.jackrabbit.oak.spi.blob.AbstractSharedBackend;
 import org.jetbrains.annotations.NotNull;
@@ -111,7 +112,7 @@ public class AbstractDataStoreCacheTest
 
 
     static class TestCacheLoader<S, I> extends CacheLoader<String, FileInputStream> {
-        protected final File root;
+        protected File root;
 
         public TestCacheLoader(File dir) {
             this.root = new File(dir, "datastore");
@@ -169,6 +170,15 @@ public class AbstractDataStoreCacheTest
             this.max = max;
         }
 
+        public TestErrorCacheLoader(File dir, long max, boolean override) {
+            super(dir);
+            if (override) {
+                this.root = dir;
+            }
+
+            this.max = max;
+        }
+
         @Override public FileInputStream load(@NotNull String key) throws Exception {
             return new ErrorInputStream(getFile(key, root), max);
         }
@@ -420,7 +430,7 @@ public class AbstractDataStoreCacheTest
     }
 
     static File copyToFile(InputStream stream, File file) throws IOException {
-        FileUtils.copyInputStreamToFile(stream, file);
+        FileIOUtils.copyInputStreamToFile(stream, file);
         return file;
     }
 

Modified: jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java?rev=1843222&r1=1843221&r2=1843222&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/CachingDataStoreTest.java Tue Oct  9 06:56:30 2018
@@ -88,6 +88,8 @@ public class CachingDataStoreTest extend
     private TestMemoryBackend backend;
     private StatisticsProvider statsProvider;
     private TestExecutor listeningExecutor;
+    private String dsPath;
+    private File backendRoot;
 
     @Before
     public void setup() throws Exception {
@@ -112,8 +114,8 @@ public class CachingDataStoreTest extend
         scheduledExecutor = Executors.newSingleThreadScheduledExecutor();
         closer.register(new ExecutorCloser(scheduledExecutor, 500, TimeUnit.MILLISECONDS));
 
-        final File datastoreRoot = folder.newFolder();
-        final TestMemoryBackend testBackend = new TestMemoryBackend(datastoreRoot);
+        backendRoot = folder.newFolder();
+        final TestMemoryBackend testBackend = new TestMemoryBackend(backendRoot);
         this.backend = testBackend;
 
         dataStore = new AbstractSharedCachingDataStore() {
@@ -131,6 +133,8 @@ public class CachingDataStoreTest extend
         dataStore.listeningExecutor = listeningExecutor;
         dataStore.schedulerExecutor = scheduledExecutor;
         dataStore.executor = sameThreadExecutor();
+        dsPath = new File(root.getAbsolutePath(), "ds").getAbsolutePath();
+        dataStore.setPath(dsPath);
         dataStore.init(root.getAbsolutePath());
 
         LOG.info("Finished init");
@@ -155,12 +159,12 @@ public class CachingDataStoreTest extend
         dataStore.close();
         init(1, (int) cacheSize, 0);
         String path = FilenameUtils
-            .normalizeNoEndSeparator(new File(root.getAbsolutePath() + "/repository/datastore").getAbsolutePath());
+            .normalizeNoEndSeparator(new File(dsPath).getAbsolutePath());
         String home = FilenameUtils.normalizeNoEndSeparator(new File(root.getAbsolutePath()).getAbsolutePath());
 
         dataStore.cache = new CompositeDataStoreCache(path , new File(home), cacheSize, 0,
             0,
-            new TestErrorCacheLoader(new File(path), 40), new StagingUploader() {
+            new TestErrorCacheLoader(backendRoot, 40, true), new StagingUploader() {
             @Override public void write(String id, File file) throws DataStoreException {
                 backend.write(new DataIdentifier(id), file);
             }
@@ -184,7 +188,10 @@ public class CachingDataStoreTest extend
             rec = dataStore.addRecord(fin);
         }
         assertEquals(id, rec.getIdentifier().toString());
-        assertFile(rec.getStream(), f, folder);
+        InputStream is = rec.getStream();
+        closer.register(is);
+
+        assertFile(is, f, folder, false);
 
         File tmp = new File(new File(path), "tmp");
         Collection<File> temp0cacheFiles =
@@ -556,14 +563,20 @@ public class CachingDataStoreTest extend
         dataStore.close();
     }
 
-    private static void assertFile(InputStream is, File org, TemporaryFolder folder)
+    private static void assertFile(InputStream is, File org, TemporaryFolder folder) throws IOException {
+        assertFile(is, org, folder, true);
+    }
+
+    private static void assertFile(InputStream is, File org, TemporaryFolder folder, boolean close)
         throws IOException {
         try {
             File ret = folder.newFile();
-            FileUtils.copyInputStreamToFile(is, ret);
+            copyToFile(is, ret);
             assertTrue(Files.equal(org, ret));
         } finally {
-            IOUtils.closeQuietly(is);
+            if (close) {
+                IOUtils.closeQuietly(is);
+            }
         }
     }