+1. However, I must admit that mine might also have been overly terse in the past.
Michael On Mar 26, 2012 10:18 AM, "Thomas Mueller" <[email protected]> wrote: > 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(); > >+ } > >+ } > > } > > > > > >
