Hi, I think we should try to use meaningful commit message. In this case I would have preferred "remove the file system abstraction" or "replace the file system abstraction with java.io.*" over "cleanup".
Regards, Thomas On 3/23/12 6:00 PM, "[email protected]" <[email protected]> wrote: >Author: stefan >Date: Fri Mar 23 17:00:53 2012 >New Revision: 1304484 > >URL: http://svn.apache.org/viewvc?rev=1304484&view=rev >Log: >cleanup > >Removed: > jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/fs/ > jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/fs/ >Modified: > >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/blobs/A >bstractBlobStore.java > >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/blobs/F >ileBlobStore.java > >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/persist >ence/MongoPersistence.java > >jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/blobs/D >bBlobStoreTest.java > >jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/store/C >opyingGCTest.java > >Modified: >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/blobs/A >bstractBlobStore.java >URL: >http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org >/apache/jackrabbit/mk/blobs/AbstractBlobStore.java?rev=1304484&r1=1304483& >r2=1304484&view=diff >========================================================================== >==== >--- >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/blobs/A >bstractBlobStore.java (original) >+++ >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/blobs/A >bstractBlobStore.java Fri Mar 23 17:00:53 2012 >@@ -16,7 +16,6 @@ > */ > package org.apache.jackrabbit.mk.blobs; > >-import org.apache.jackrabbit.mk.fs.FilePath; > import org.apache.jackrabbit.mk.util.ExceptionFactory; > import org.apache.jackrabbit.mk.util.IOUtils; > import org.apache.jackrabbit.mk.util.Cache; >@@ -25,6 +24,8 @@ import org.apache.jackrabbit.mk.util.Str > import java.io.ByteArrayInputStream; > import java.io.ByteArrayOutputStream; > import java.io.Closeable; >+import java.io.File; >+import java.io.FileInputStream; > import java.io.IOException; > import java.io.InputStream; > import java.lang.ref.WeakReference; >@@ -106,11 +107,15 @@ public abstract class AbstractBlobStore > > public String addBlob(String tempFilePath) { > try { >- FilePath file = FilePath.get(tempFilePath); >+ File file = new File(tempFilePath); >+ InputStream in = null; > try { >- InputStream in = file.newInputStream(); >+ in = new FileInputStream(file); > return writeBlob(in); > } finally { >+ if (in != null) { >+ in.close(); >+ } > file.delete(); > } > } catch (Exception e) { > >Modified: >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/blobs/F >ileBlobStore.java >URL: >http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org >/apache/jackrabbit/mk/blobs/FileBlobStore.java?rev=1304484&r1=1304483&r2=1 >304484&view=diff >========================================================================== >==== >--- >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/blobs/F >ileBlobStore.java (original) >+++ >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/blobs/F >ileBlobStore.java Fri Mar 23 17:00:53 2012 >@@ -17,13 +17,14 @@ > package org.apache.jackrabbit.mk.blobs; > > import java.io.ByteArrayOutputStream; >+import java.io.File; >+import java.io.FileInputStream; >+import java.io.FileOutputStream; > import java.io.IOException; > import java.io.InputStream; > import java.io.OutputStream; > import java.security.DigestInputStream; > import java.security.MessageDigest; >-import org.apache.jackrabbit.mk.fs.FilePath; >-import org.apache.jackrabbit.mk.fs.FileUtils; > import org.apache.jackrabbit.mk.util.ExceptionFactory; > import org.apache.jackrabbit.mk.util.IOUtils; > import org.apache.jackrabbit.mk.util.StringUtils; >@@ -35,23 +36,23 @@ public class FileBlobStore extends Abstr > > private static final String OLD_SUFFIX = "_old"; > >- private final FilePath baseDir; >+ private final File baseDir; > private final byte[] buffer = new byte[16 * 1024]; > private boolean mark; > > public FileBlobStore(String dir) throws IOException { >- baseDir = FilePath.get(dir); >- FileUtils.createDirectories(dir); >+ baseDir = new File(dir); >+ baseDir.mkdirs(); > } > > @Override > public String addBlob(String tempFilePath) { > try { >- FilePath file = FilePath.get(tempFilePath); >- InputStream in = file.newInputStream(); >+ File file = new File(tempFilePath); >+ InputStream in = new FileInputStream(file); > MessageDigest messageDigest = >MessageDigest.getInstance(HASH_ALGORITHM); > DigestInputStream din = new DigestInputStream(in, >messageDigest); >- long length = file.size(); >+ long length = file.length(); > try { > while (true) { > int len = din.read(buffer, 0, buffer.length); >@@ -67,15 +68,15 @@ public class FileBlobStore extends Abstr > IOUtils.writeVarInt(idStream, 0); > IOUtils.writeVarLong(idStream, length); > byte[] digest = messageDigest.digest(); >- FilePath f = getFile(digest, false); >+ File f = getFile(digest, false); > if (f.exists()) { > file.delete(); > } else { >- FilePath parent = f.getParent(); >+ File parent = f.getParentFile(); > if (!parent.exists()) { >- FileUtils.createDirectories(parent.toString()); >+ parent.mkdirs(); > } >- file.moveTo(f); >+ file.renameTo(f); > } > IOUtils.writeVarInt(idStream, digest.length); > idStream.write(digest); >@@ -90,42 +91,42 @@ public class FileBlobStore extends Abstr > > @Override > protected synchronized void storeBlock(byte[] digest, int level, >byte[] data) throws IOException { >- FilePath f = getFile(digest, false); >+ File f = getFile(digest, false); > if (f.exists()) { > return; > } >- FilePath parent = f.getParent(); >+ File parent = f.getParentFile(); > if (!parent.exists()) { >- FileUtils.createDirectories(parent.toString()); >+ parent.mkdirs(); > } >- FilePath temp = parent.resolve(f.getName() + ".temp"); >- OutputStream out = temp.newOutputStream(false); >+ File temp = new File(parent, f.getName() + ".temp"); >+ OutputStream out = new FileOutputStream(temp, false); > out.write(data); > out.close(); >- temp.moveTo(f); >+ temp.renameTo(f); > } > >- private FilePath getFile(byte[] digest, boolean old) { >+ private File getFile(byte[] digest, boolean old) { > String id = StringUtils.convertBytesToHex(digest); > String sub = id.substring(id.length() - 2); > if (old) { > sub += OLD_SUFFIX; > } >- return baseDir.resolve(sub).resolve(id + ".dat"); >+ return new File(new File(baseDir, sub), id + ".dat"); > } > > @Override > protected byte[] readBlockFromBackend(BlockId id) throws IOException >{ >- FilePath f = getFile(id.digest, false); >+ File f = getFile(id.digest, false); > if (!f.exists()) { >- FilePath old = getFile(id.digest, true); >- f.getParent().createDirectory(); >- old.moveTo(f); >+ File old = getFile(id.digest, true); >+ f.getParentFile().mkdir(); >+ old.renameTo(f); > f = getFile(id.digest, false); > } >- int length = (int) Math.min(f.size(), getBlockSize()); >+ int length = (int) Math.min(f.length(), getBlockSize()); > byte[] data = new byte[length]; >- InputStream in = f.newInputStream(); >+ InputStream in = new FileInputStream(f); > try { > IOUtils.skipFully(in, id.pos); > IOUtils.readFully(in, data, 0, length); >@@ -140,17 +141,17 @@ public class FileBlobStore extends Abstr > mark = true; > for (int i = 0; i < 256; i++) { > String sub = StringUtils.convertBytesToHex(new byte[] { >(byte) i }); >- FilePath d = baseDir.resolve(sub); >- FilePath old = baseDir.resolve(sub + OLD_SUFFIX); >+ File d = new File(baseDir, sub); >+ File old = new File(baseDir, sub + OLD_SUFFIX); > if (d.exists()) { > if (old.exists()) { >- for (FilePath p : d.newDirectoryStream()) { >+ for (File p : d.listFiles()) { > String name = p.getName(); >- FilePath newName = old.resolve(name); >- p.moveTo(newName); >+ File newName = new File(old, name); >+ p.renameTo(newName); > } > } else { >- d.moveTo(old); >+ d.renameTo(old); > } > } > } >@@ -164,11 +165,11 @@ public class FileBlobStore extends Abstr > > @Override > protected void mark(BlockId id) throws IOException { >- FilePath f = getFile(id.digest, false); >+ File f = getFile(id.digest, false); > if (!f.exists()) { >- FilePath old = getFile(id.digest, true); >- f.getParent().createDirectory(); >- old.moveTo(f); >+ File old = getFile(id.digest, true); >+ f.getParentFile().mkdir(); >+ old.renameTo(f); > f = getFile(id.digest, false); > } > } >@@ -178,11 +179,11 @@ public class FileBlobStore extends Abstr > int count = 0; > for (int i = 0; i < 256; i++) { > String sub = StringUtils.convertBytesToHex(new byte[] { >(byte) i }); >- FilePath old = baseDir.resolve(sub + OLD_SUFFIX); >+ File old = new File(baseDir, sub + OLD_SUFFIX); > if (old.exists()) { >- for (FilePath p : old.newDirectoryStream()) { >+ for (File p : old.listFiles()) { > String name = p.getName(); >- FilePath file = old.resolve(name); >+ File file = new File(old, name); > file.delete(); > count++; > } > >Modified: >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/persist >ence/MongoPersistence.java >URL: >http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org >/apache/jackrabbit/mk/persistence/MongoPersistence.java?rev=1304484&r1=130 >4483&r2=1304484&view=diff >========================================================================== >==== >--- >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/persist >ence/MongoPersistence.java (original) >+++ >jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/persist >ence/MongoPersistence.java Fri Mar 23 17:00:53 2012 >@@ -19,11 +19,12 @@ package org.apache.jackrabbit.mk.persist > import java.io.ByteArrayInputStream; > import java.io.ByteArrayOutputStream; > import java.io.Closeable; >+import java.io.File; >+import java.io.FileInputStream; > import java.io.InputStream; > import java.util.Iterator; > > import org.apache.jackrabbit.mk.blobs.BlobStore; >-import org.apache.jackrabbit.mk.fs.FilePath; > import org.apache.jackrabbit.mk.model.ChildNodeEntriesMap; > import org.apache.jackrabbit.mk.model.Commit; > import org.apache.jackrabbit.mk.model.Id; >@@ -250,11 +251,15 @@ public class MongoPersistence implements > > public String addBlob(String tempFilePath) throws Exception { > try { >- FilePath file = FilePath.get(tempFilePath); >+ File file = new File(tempFilePath); >+ InputStream in = null; > try { >- InputStream in = file.newInputStream(); >+ in = new FileInputStream(file); > return writeBlob(in); > } finally { >+ if (in != null) { >+ in.close(); >+ } > file.delete(); > } > } catch (Exception e) { > >Modified: >jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/blobs/D >bBlobStoreTest.java >URL: >http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/test/java/org >/apache/jackrabbit/mk/blobs/DbBlobStoreTest.java?rev=1304484&r1=1304483&r2 >=1304484&view=diff >========================================================================== >==== >--- >jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/blobs/D >bBlobStoreTest.java (original) >+++ >jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/blobs/D >bBlobStoreTest.java Fri Mar 23 17:00:53 2012 >@@ -18,7 +18,6 @@ package org.apache.jackrabbit.mk.blobs; > > import junit.framework.TestCase; > import org.apache.jackrabbit.mk.api.MicroKernelException; >-import org.apache.jackrabbit.mk.fs.FileUtils; > import org.apache.jackrabbit.mk.json.JsopBuilder; > import org.apache.jackrabbit.mk.json.JsopTokenizer; > import org.apache.jackrabbit.mk.util.IOUtilsTest; >@@ -70,7 +69,9 @@ public class DbBlobStoreTest extends Tes > Random r = new Random(0); > r.nextBytes(data); > String tempFileName = "target/temp/test"; >- OutputStream out = FileUtils.newOutputStream(tempFileName, >false); >+ File tempFile = new File(tempFileName); >+ tempFile.getParentFile().mkdirs(); >+ OutputStream out = new FileOutputStream(tempFile, false); > out.write(data); > out.close(); > String s = store.addBlob(tempFileName); > >Modified: >jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/store/C >opyingGCTest.java >URL: >http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/test/java/org >/apache/jackrabbit/mk/store/CopyingGCTest.java?rev=1304484&r1=1304483&r2=1 >304484&view=diff >========================================================================== >==== >--- >jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/store/C >opyingGCTest.java (original) >+++ >jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/store/C >opyingGCTest.java Fri Mar 23 17:00:53 2012 >@@ -24,7 +24,6 @@ import org.apache.jackrabbit.mk.api.Micr > import org.apache.jackrabbit.mk.blobs.MemoryBlobStore; > import org.apache.jackrabbit.mk.core.MicroKernelImpl; > import org.apache.jackrabbit.mk.core.Repository; >-import org.apache.jackrabbit.mk.fs.FileUtils; > import org.apache.jackrabbit.mk.json.fast.Jsop; > import org.apache.jackrabbit.mk.json.fast.JsopArray; > import org.apache.jackrabbit.mk.persistence.InMemPersistence; >@@ -34,6 +33,9 @@ import org.junit.Before; > import org.junit.Ignore; > import org.junit.Test; > >+import java.io.File; >+import java.io.IOException; >+ > /** > * Use-case: start off a new revision store that contains just the head >revision > * and its nodes. >@@ -47,8 +49,8 @@ public class CopyingGCTest { > > @Before > public void setup() throws Exception { >- FileUtils.deleteRecursive("target/mk1", false); >- FileUtils.deleteRecursive("target/mk2", false); >+ delete(new File("target/mk1")); >+ delete(new File("target/mk2")); > } > > @After >@@ -134,4 +136,16 @@ public class CopyingGCTest { > // Assert MK contains 3 revisions only > assertEquals(3, ((JsopArray) Jsop.parse(mk.getRevisions(0, >Integer.MAX_VALUE))).size()); > } >+ >+ private static void delete(File f) throws IOException { >+ if (f.exists()) { >+ if (f.isDirectory()) { >+ // recursively delete children first >+ for (File child : f.listFiles()) { >+ delete(child); >+ } >+ } >+ f.delete(); >+ } >+ } > } > >
