Skip to content

Commit

Permalink
Move AtomicObjectOutputStream to lfs/internal
Browse files Browse the repository at this point in the history
The class AtomicObjectOutputStream should be available to all lfs
related classes, not only to the server side. Move the class from
org.eclipse.jgit.lfs.server.fs to org.eclipse.jgit.lfs.internal to
achieve that.

Change-Id: I028e1c9ec7c21f316340b21d558b9a6b77e2060d
  • Loading branch information
chalstrick authored and msohn committed Sep 20, 2016
1 parent bcb5a43 commit e4e39a6
Show file tree
Hide file tree
Showing 10 changed files with 20 additions and 10 deletions.
1 change: 1 addition & 0 deletions org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Import-Package: com.google.gson;version="[2.2.4,3.0.0)",
org.eclipse.jgit.internal;version="[4.6.0,4.7.0)",
org.eclipse.jgit.internal.storage.file;version="[4.6.0,4.7.0)",
org.eclipse.jgit.lfs.errors;version="[4.6.0,4.7.0)",
org.eclipse.jgit.lfs.internal;version="[4.6.0,4.7.0)",
org.eclipse.jgit.lfs.lib;version="[4.6.0,4.7.0)",
org.eclipse.jgit.nls;version="[4.6.0,4.7.0)",
org.eclipse.jgit.transport.http;version="[4.6.0,4.7.0)",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
corruptLongObject=The content hash ''{0}'' of the long object ''{1}'' doesn''t match its id, the corrupt object will be deleted.
failedToCalcSignature=Failed to calculate a request signature: {0}
invalidPathInfo=Invalid pathInfo ''{0}'' does not match ''/'{'SHA-256'}'''
objectNotFound=Object ''{0}'' not found
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
import java.util.Collections;

import org.eclipse.jgit.annotations.Nullable;
import org.eclipse.jgit.lfs.internal.AtomicObjectOutputStream;
import org.eclipse.jgit.lfs.lib.AnyLongObjectId;
import org.eclipse.jgit.lfs.lib.Constants;
import org.eclipse.jgit.lfs.server.LargeFileRepository;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@

import org.apache.http.HttpStatus;
import org.eclipse.jgit.lfs.errors.CorruptLongObjectException;
import org.eclipse.jgit.lfs.internal.AtomicObjectOutputStream;
import org.eclipse.jgit.lfs.lib.AnyLongObjectId;
import org.eclipse.jgit.lfs.lib.Constants;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ public static LfsServerText get() {
}

// @formatter:off
/***/ public String corruptLongObject;
/***/ public String failedToCalcSignature;
/***/ public String invalidPathInfo;
/***/ public String objectNotFound;
Expand Down
2 changes: 1 addition & 1 deletion org.eclipse.jgit.lfs/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Bundle-Localization: plugin
Bundle-Vendor: %provider_name
Export-Package: org.eclipse.jgit.lfs;version="4.6.0",
org.eclipse.jgit.lfs.errors;version="4.6.0",
org.eclipse.jgit.lfs.internal;version="4.6.0";x-friends:="org.eclipse.jgit.lfs.test",
org.eclipse.jgit.lfs.internal;version="4.6.0";x-friends:="org.eclipse.jgit.lfs.test,org.eclipse.jgit.lfs.server.fs,org.eclipse.jgit.lfs.server",
org.eclipse.jgit.lfs.lib;version="4.6.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: org.eclipse.jgit.annotations;version="[4.6.0,4.7.0)";resolution:=optional,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
corruptLongObject=The content hash ''{0}'' of the long object ''{1}'' doesn''t match its id, the corrupt object will be deleted.
incorrectLONG_OBJECT_ID_LENGTH=Incorrect LONG_OBJECT_ID_LENGTH.
inconsistentMediafileLength=mediafile {0} has unexpected length; expected {1} but found {2}.
invalidLongId=Invalid id: {0}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.eclipse.jgit.lfs.server.fs;
package org.eclipse.jgit.lfs.internal;

import java.io.IOException;
import java.io.OutputStream;
Expand All @@ -53,14 +53,13 @@
import org.eclipse.jgit.lfs.lib.AnyLongObjectId;
import org.eclipse.jgit.lfs.lib.Constants;
import org.eclipse.jgit.lfs.lib.LongObjectId;
import org.eclipse.jgit.lfs.server.internal.LfsServerText;

/**
* Output stream writing content to a {@link LockFile} which is committed on
* close(). The stream checks if the hash of the stream content matches the
* id.
*/
class AtomicObjectOutputStream extends OutputStream {
public class AtomicObjectOutputStream extends OutputStream {

private LockFile locked;

Expand All @@ -70,7 +69,12 @@ class AtomicObjectOutputStream extends OutputStream {

private AnyLongObjectId id;

AtomicObjectOutputStream(Path path, AnyLongObjectId id)
/**
* @param path
* @param id
* @throws IOException
*/
public AtomicObjectOutputStream(Path path, AnyLongObjectId id)
throws IOException {
locked = new LockFile(path.toFile());
locked.lock();
Expand Down Expand Up @@ -109,12 +113,15 @@ private void verifyHash() {
if (!contentHash.equals(id)) {
abort();
throw new CorruptLongObjectException(id, contentHash,
MessageFormat.format(LfsServerText.get().corruptLongObject,
MessageFormat.format(LfsText.get().corruptLongObject,
contentHash, id));
}
}

void abort() {
/**
* Aborts the stream. Temporary file will be deleted
*/
public void abort() {
locked.unlock();
aborted = true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public static LfsText get() {
}

// @formatter:off
/***/ public String corruptLongObject;
/***/ public String inconsistentMediafileLength;
/***/ public String incorrectLONG_OBJECT_ID_LENGTH;
/***/ public String invalidLongId;
Expand Down
2 changes: 1 addition & 1 deletion org.eclipse.jgit/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Export-Package: org.eclipse.jgit.annotations;version="4.6.0",
org.eclipse.jgit.junit,
org.eclipse.jgit.junit.http,
org.eclipse.jgit.http.server,
org.eclipse.jgit.lfs.server,
org.eclipse.jgit.lfs,
org.eclipse.jgit.pgm,
org.eclipse.jgit.pgm.test",
org.eclipse.jgit.internal.storage.pack;version="4.6.0";x-friends:="org.eclipse.jgit.junit,org.eclipse.jgit.test,org.eclipse.jgit.pgm",
Expand Down

0 comments on commit e4e39a6

Please sign in to comment.