You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by Thomas Mueller <mu...@adobe.com> on 2012/03/26 11:18:06 UTC
Commit messages
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, "stefan@apache.org" <st...@apache.org> 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();
>+ }
>+ }
> }
>
>
Re: Commit messages
Posted by Michael Dürig <mi...@gmail.com>.
+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" <mu...@adobe.com> 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, "stefan@apache.org" <st...@apache.org> 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();
> >+ }
> >+ }
> > }
> >
> >
>
>