| /* | |
| * Copyright (C) 2015, Matthias Sohn <matthias.sohn@sap.com> and others | |
| * | |
| * This program and the accompanying materials are made available under the | |
| * terms of the Eclipse Distribution License v. 1.0 which is available at | |
| * https://www.eclipse.org/org/documents/edl-v10.php. | |
| * | |
| * SPDX-License-Identifier: BSD-3-Clause | |
| */ | |
| package org.eclipse.jgit.lfs.test; | |
| import static java.nio.charset.StandardCharsets.UTF_8; | |
| import java.io.BufferedInputStream; | |
| import java.io.FileNotFoundException; | |
| import java.io.IOException; | |
| import java.io.InputStream; | |
| import java.nio.file.Files; | |
| import java.nio.file.Path; | |
| import java.security.MessageDigest; | |
| import org.eclipse.jgit.lfs.lib.Constants; | |
| import org.eclipse.jgit.lfs.lib.LongObjectId; | |
| public class LongObjectIdTestUtils { | |
| /** | |
| * Create id as hash of the given string. | |
| * | |
| * @param s | |
| * the string to hash | |
| * @return id calculated by hashing string | |
| */ | |
| public static LongObjectId hash(String s) { | |
| MessageDigest md = Constants.newMessageDigest(); | |
| md.update(s.getBytes(UTF_8)); | |
| return LongObjectId.fromRaw(md.digest()); | |
| } | |
| /** | |
| * Create id as hash of a file content | |
| * | |
| * @param file | |
| * the file to hash | |
| * @return id calculated by hashing file content | |
| * @throws FileNotFoundException | |
| * if file doesn't exist | |
| * @throws IOException | |
| */ | |
| public static LongObjectId hash(Path file) | |
| throws FileNotFoundException, IOException { | |
| MessageDigest md = Constants.newMessageDigest(); | |
| try (InputStream is = new BufferedInputStream( | |
| Files.newInputStream(file))) { | |
| final byte[] buffer = new byte[4096]; | |
| for (int read = 0; (read = is.read(buffer)) != -1;) { | |
| md.update(buffer, 0, read); | |
| } | |
| } | |
| return LongObjectId.fromRaw(md.digest()); | |
| } | |
| } |