Move AtomicObjectOutputStream to lfs/internal
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
This commit is contained in:
parent
bcb5a431a5
commit
e4e39a6d05
|
@ -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)",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -58,7 +58,6 @@ public static LfsServerText get() {
|
|||
}
|
||||
|
||||
// @formatter:off
|
||||
/***/ public String corruptLongObject;
|
||||
/***/ public String failedToCalcSignature;
|
||||
/***/ public String invalidPathInfo;
|
||||
/***/ public String objectNotFound;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue