]> source.dussan.org Git - jgit.git/commitdiff
Implement AutoClosable interface on classes that used release() 63/40463/6
authorMatthias Sohn <matthias.sohn@sap.com>
Tue, 27 Jan 2015 15:06:38 +0000 (16:06 +0100)
committerChristian Halstrick <christian.halstrick@sap.com>
Mon, 9 Feb 2015 13:11:50 +0000 (14:11 +0100)
Implement AutoClosable and deprecate the old release() method to give
JGit consumers some time to adapt.

Bug: 428039
Change-Id: Id664a91dc5a8cf2ac401e7d87ce2e3b89e221458
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java
org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java
org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java
org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java

index e69cfa9d1cbaec77a3e479d883b3dd9648358318..eb64425c6c0b37da1ec00d2078d5dff2bbb378b2 100644 (file)
@@ -113,7 +113,7 @@ import org.eclipse.jgit.treewalk.filter.TreeFilter;
  * the ancestor, until there are no more lines to acquire information on, or the
  * file's creation point is discovered in history.
  */
-public class BlameGenerator {
+public class BlameGenerator implements AutoCloseable {
        private final Repository repository;
 
        private final PathFilter resultPath;
@@ -937,9 +937,22 @@ public class BlameGenerator {
                return queue != null ? queue.sourceText : null;
        }
 
-       /** Release the current blame session. */
+       /**
+        * Release the current blame session. Use {@link #close()} instead.
+        */
+       @Deprecated
        public void release() {
-               revPool.release();
+               close();
+       }
+
+       /**
+        * Release the current blame session.
+        *
+        * @since 4.0
+        */
+       @Override
+       public void close() {
+               revPool.close();
                queue = null;
                outCandidate = null;
                outRegion = null;
index d339d6a65a1833511ddc244cbef1543c4d9cb710..1aab51e9ccf318fe15e74116d27dd0beebbf1c16 100644 (file)
@@ -104,7 +104,7 @@ import org.eclipse.jgit.util.io.DisabledOutputStream;
 /**
  * Format a Git style patch script.
  */
-public class DiffFormatter {
+public class DiffFormatter implements AutoCloseable {
        private static final int DEFAULT_BINARY_FILE_THRESHOLD = PackConfig.DEFAULT_BIG_FILE_THRESHOLD;
 
        private static final byte[] noNewLine = encodeASCII("\\ No newline at end of file\n"); //$NON-NLS-1$
@@ -380,10 +380,23 @@ public class DiffFormatter {
                out.flush();
        }
 
-       /** Release the internal ObjectReader state. */
+       /**
+        * Release the internal ObjectReader state. Use {@link #close()} instead.
+        */
+       @Deprecated
        public void release() {
+               close();
+       }
+
+       /**
+        * Release the internal ObjectReader state.
+        *
+        * @since 4.0
+        */
+       @Override
+       public void close() {
                if (reader != null)
-                       reader.release();
+                       reader.close();
        }
 
        /**
index 164934704c4361a5a55a9cc510320e2e67647a9c..510538d8632931a54bdd8ec875af877582d9c2c7 100644 (file)
@@ -152,7 +152,7 @@ import org.eclipse.jgit.util.TemporaryBuffer;
  * undefined behavior.
  * </p>
  */
-public class PackWriter {
+public class PackWriter implements AutoCloseable {
        private static final int PACK_VERSION_GENERATED = 2;
 
        /** A collection of object ids. */
@@ -1085,9 +1085,22 @@ public class PackWriter {
                return state.snapshot();
        }
 
-       /** Release all resources used by this writer. */
+       /**
+        * Release all resources used by this writer. Use {@link #close()} instead.
+        */
+       @Deprecated
        public void release() {
-               reader.release();
+               close();
+       }
+
+       /**
+        * Release all resources used by this writer.
+        *
+        * @since 4.0
+        */
+       @Override
+       public void close() {
+               reader.close();
                if (myDeflater != null) {
                        myDeflater.end();
                        myDeflater = null;
index 5c13ef3548b0ea1b5e080b3a8fca26ad851f6db3..f05326900c1d08c4d0ef664238b730fec33389f3 100644 (file)
@@ -66,7 +66,7 @@ import org.eclipse.jgit.transport.PackParser;
  * {@link #release()} or {@link #flush()} prior to updating references or
  * otherwise making the returned ObjectIds visible to other code.
  */
-public abstract class ObjectInserter {
+public abstract class ObjectInserter implements AutoCloseable {
        /** An inserter that can be used for formatting and id generation only. */
        public static class Formatter extends ObjectInserter {
                @Override
@@ -420,7 +420,21 @@ public abstract class ObjectInserter {
         * Release any resources used by this inserter.
         * <p>
         * An inserter that has been released can be used again, but may need to be
-        * released after the subsequent usage.
+        * released after the subsequent usage. Use {@link #close()} instead
         */
+       @Deprecated
        public abstract void release();
+
+       /**
+        * Release any resources used by this inserter.
+        * <p>
+        * An inserter that has been released can be used again, but may need to be
+        * released after the subsequent usage.
+        *
+        * @since 4.0
+        */
+       @Override
+       public void close() {
+               release();
+       }
 }
index 58c141870b5b6bc4433d162852692a15692799c5..524dafb8828b1fd71b6e7836a88cc5a716380b1d 100644 (file)
@@ -63,7 +63,7 @@ import org.eclipse.jgit.revwalk.RevWalk;
  * Readers that can support efficient reuse of pack encoded objects should also
  * implement the companion interface {@link ObjectReuseAsIs}.
  */
-public abstract class ObjectReader {
+public abstract class ObjectReader implements AutoCloseable {
        /** Type hint indicating the caller doesn't know the type. */
        public static final int OBJ_ANY = -1;
 
@@ -466,9 +466,23 @@ public abstract class ObjectReader {
         * Release any resources used by this reader.
         * <p>
         * A reader that has been released can be used again, but may need to be
-        * released after the subsequent usage.
+        * released after the subsequent usage. Use {@link #close()} instead.
         */
+       @Deprecated
        public void release() {
+               close();
+       }
+
+       /**
+        * Release any resources used by this reader.
+        * <p>
+        * A reader that has been released can be used again, but may need to be
+        * released after the subsequent usage.
+        *
+        * @since 4.0
+        */
+       @Override
+       public void close() {
                // Do nothing.
        }
 }
index d19e467c1dd2e785225019332f924bd376314aff..55ffac7c5abf84b2d6703d7c1016fec3b6199749 100644 (file)
@@ -95,7 +95,7 @@ import org.eclipse.jgit.treewalk.filter.TreeFilter;
  * the same RevWalk at the same time. The Iterator may buffer RevCommits, while
  * {@link #next()} does not.
  */
-public class RevWalk implements Iterable<RevCommit> {
+public class RevWalk implements Iterable<RevCommit>, AutoCloseable {
        private static final int MB = 1 << 20;
 
        /**
@@ -237,10 +237,24 @@ public class RevWalk implements Iterable<RevCommit> {
         * Release any resources used by this walker's reader.
         * <p>
         * A walker that has been released can be used again, but may need to be
-        * released after the subsequent usage.
+        * released after the subsequent usage. Use {@link #close()} instead.
         */
+       @Deprecated
        public void release() {
-               reader.release();
+               close();
+       }
+
+       /**
+        * Release any resources used by this walker's reader.
+        * <p>
+        * A walker that has been released can be used again, but may need to be
+        * released after the subsequent usage.
+        *
+        * @since 4.0
+        */
+       @Override
+       public void close() {
+               reader.close();
        }
 
        /**
index 5db3378b78e87bb5a13b796f14f2db1307bfe9f4..a01f006c4c93dc0ed7082223c7d848a1a753223d 100644 (file)
@@ -76,7 +76,7 @@ import org.eclipse.jgit.util.FS;
 /**
  * Walker that visits all submodule entries found in a tree
  */
-public class SubmoduleWalk {
+public class SubmoduleWalk implements AutoCloseable {
 
        /**
         * The values for the config param submodule.<name>.ignore
@@ -729,8 +729,22 @@ public class SubmoduleWalk {
                return url != null ? getSubmoduleRemoteUrl(repository, url) : null;
        }
 
-       /** Release any resources used by this walker's reader. */
+       /**
+        * Release any resources used by this walker's reader. Use {@link #close()}
+        * instead.
+        */
+       @Deprecated
        public void release() {
-               walk.release();
+               close();
+       }
+
+       /**
+        * Release any resources used by this walker's reader.
+        *
+        * @since 4.0
+        */
+       @Override
+       public void close() {
+               walk.close();
        }
 }
index 94281fba18f2e7212ffe9ef4f8d38a00eb74d6b8..577c9e303d1d94ba6a76a9a07307ba8b0ab62677 100644 (file)
@@ -82,7 +82,7 @@ import org.eclipse.jgit.util.RawParseUtils;
  * Multiple simultaneous TreeWalk instances per {@link Repository} are
  * permitted, even from concurrent threads.
  */
-public class TreeWalk {
+public class TreeWalk implements AutoCloseable {
        private static final AbstractTreeIterator[] NO_TREES = {};
 
        /**
@@ -247,10 +247,24 @@ public class TreeWalk {
         * Release any resources used by this walker's reader.
         * <p>
         * A walker that has been released can be used again, but may need to be
-        * released after the subsequent usage.
+        * released after the subsequent usage. Use {@link #close()} instead.
         */
+       @Deprecated
        public void release() {
-               reader.release();
+               close();
+       }
+
+       /**
+        * Release any resources used by this walker's reader.
+        * <p>
+        * A walker that has been released can be used again, but may need to be
+        * released after the subsequent usage.
+        *
+        * @since 4.0
+        */
+       @Override
+       public void close() {
+               reader.close();
        }
 
        /**