Convert org.pkl.core.project POJOs to record classes (#749)

This commit is contained in:
Kushal Pisavadia
2024-11-13 01:08:01 +00:00
committed by GitHub
parent 3246a0e449
commit dddbb27143
7 changed files with 186 additions and 250 deletions

View File

@@ -70,7 +70,7 @@ public final class ProjectDependenciesManager {
SecurityManager securityManager) {
this.declaredDependencies = declaredDependencies;
// new URI("scheme://host/a/b/c.txt").resolve(".") == new URI("scheme://host/a/b/")
this.projectBaseUri = IoUtils.resolve(declaredDependencies.getProjectFileUri(), ".");
this.projectBaseUri = IoUtils.resolve(declaredDependencies.projectFileUri(), ".");
this.moduleResolver = moduleResolver;
this.securityManager = securityManager;
}
@@ -88,7 +88,7 @@ public final class ProjectDependenciesManager {
}
var projectDeps = getProjectDeps();
myDependencies = doBuildResolvedDependenciesForProject(declaredDependencies, projectDeps);
for (var localPkg : declaredDependencies.getLocalDependencies().values()) {
for (var localPkg : declaredDependencies.localDependencies().values()) {
ensureLocalProjectDependencyInitialized(localPkg, projectDeps);
}
}
@@ -97,14 +97,14 @@ public final class ProjectDependenciesManager {
private void ensureLocalProjectDependencyInitialized(
DeclaredDependencies localProjectDependencies, ProjectDeps projectDeps) {
// turn `package:` scheme into `projectpackage`: scheme
var uri = PackageUri.create("project" + localProjectDependencies.getMyPackageUri());
var uri = PackageUri.create("project" + localProjectDependencies.myPackageUri());
if (localPackageDependencies.containsKey(uri)) {
return;
}
var resolvedDeps = doBuildResolvedDependenciesForProject(localProjectDependencies, projectDeps);
localPackageDependencies.put(uri, resolvedDeps);
// TODO: check circular imports (should not be possible)
for (var declaredDeps : localProjectDependencies.getLocalDependencies().values()) {
for (var declaredDeps : localProjectDependencies.localDependencies().values()) {
ensureLocalProjectDependencyInitialized(declaredDeps, projectDeps);
}
}
@@ -124,22 +124,21 @@ public final class ProjectDependenciesManager {
DeclaredDependencies declaredDeps, ProjectDeps resolvedProjectDeps) {
var ret =
new HashMap<String, Dependency>(
declaredDeps.getRemoteDependencies().size()
+ declaredDeps.getLocalDependencies().size());
for (var entry : declaredDeps.getLocalDependencies().entrySet()) {
declaredDeps.remoteDependencies().size() + declaredDeps.localDependencies().size());
for (var entry : declaredDeps.localDependencies().entrySet()) {
var localDeclaredDependencies = entry.getValue();
var packageUri = localDeclaredDependencies.getMyPackageUri();
var packageUri = localDeclaredDependencies.myPackageUri();
assert packageUri != null;
var canonicalPackageUri =
CanonicalPackageUri.fromPackageUri(localDeclaredDependencies.getMyPackageUri());
CanonicalPackageUri.fromPackageUri(localDeclaredDependencies.myPackageUri());
var resolvedDep = resolvedProjectDeps.get(canonicalPackageUri);
if (resolvedDep == null) {
throw new PackageLoadError("unresolvedProjectDependency", packageUri);
}
checkProjectDependencyOutOfDate(declaredDeps.getProjectFileUri(), packageUri, resolvedDep);
checkProjectDependencyOutOfDate(declaredDeps.projectFileUri(), packageUri, resolvedDep);
ret.put(entry.getKey(), resolvedDep);
}
for (var entry : declaredDeps.getRemoteDependencies().entrySet()) {
for (var entry : declaredDeps.remoteDependencies().entrySet()) {
var remoteDep = entry.getValue();
var packageUri = CanonicalPackageUri.fromPackageUri(remoteDep.getPackageUri());
var resolvedDep = resolvedProjectDeps.get(packageUri);
@@ -147,7 +146,7 @@ public final class ProjectDependenciesManager {
throw new PackageLoadError("unresolvedProjectDependency", entry.getValue().getPackageUri());
}
checkProjectDependencyOutOfDate(
declaredDeps.getProjectFileUri(), remoteDep.getPackageUri(), resolvedDep);
declaredDeps.projectFileUri(), remoteDep.getPackageUri(), resolvedDep);
ret.put(entry.getKey(), resolvedDep);
}
return ret;
@@ -220,7 +219,7 @@ public final class ProjectDependenciesManager {
}
public URI getProjectFileUri() {
return declaredDependencies.getProjectFileUri();
return declaredDependencies.projectFileUri();
}
private ProjectDeps getProjectDeps() {

View File

@@ -17,7 +17,6 @@ package org.pkl.core.project;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Objects;
import org.pkl.core.PklBugException;
import org.pkl.core.packages.PackageUri;
import org.pkl.core.util.ErrorMessages;
@@ -29,10 +28,7 @@ import org.pkl.core.util.ErrorMessages;
* package://example.com/foo/bar@0}. Does not include a URI's userinfo, query params or fragment
* segments.
*/
public final class CanonicalPackageUri {
private final URI baseUri;
private final int majorVersion;
public record CanonicalPackageUri(URI baseUri, int majorVersion) {
public static CanonicalPackageUri fromPackageUri(PackageUri packageUri) {
var uri = packageUri.getUri();
URI baseUri;
@@ -71,17 +67,18 @@ public final class CanonicalPackageUri {
return new CanonicalPackageUri(baseUri, majorVersion);
}
public CanonicalPackageUri(URI baseUri, int majorVersion) {
this.baseUri = baseUri;
this.majorVersion = majorVersion;
}
@SuppressWarnings("unused")
/**
* @deprecated As of 0.28.0, replaced by {@link #majorVersion()}.
*/
@Deprecated(forRemoval = true)
public int getMajorVersion() {
return majorVersion;
}
@SuppressWarnings("unused")
/**
* @deprecated As of 0.28.0, replaced by {@link #baseUri()}.
*/
@Deprecated(forRemoval = true)
public URI getBaseUri() {
return baseUri;
}
@@ -98,11 +95,6 @@ public final class CanonicalPackageUri {
return majorVersion == that.majorVersion && baseUri.equals(that.baseUri);
}
@Override
public int hashCode() {
return Objects.hash(baseUri, majorVersion);
}
@Override
public String toString() {
return baseUri + "@" + majorVersion;

View File

@@ -21,35 +21,39 @@ import org.pkl.core.packages.Dependency.RemoteDependency;
import org.pkl.core.packages.PackageUri;
import org.pkl.core.util.Nullable;
public final class DeclaredDependencies {
private final Map<String, RemoteDependency> remoteDependencies;
private final Map<String, DeclaredDependencies> localDependencies;
private final URI projectFileUri;
private final @Nullable PackageUri myPackageUri;
public DeclaredDependencies(
Map<String, RemoteDependency> remoteDependencies,
Map<String, DeclaredDependencies> localDependencies,
URI projectFileUri,
@Nullable PackageUri myPackageUri) {
this.remoteDependencies = remoteDependencies;
this.localDependencies = localDependencies;
this.projectFileUri = projectFileUri;
this.myPackageUri = myPackageUri;
}
public record DeclaredDependencies(
Map<String, RemoteDependency> remoteDependencies,
Map<String, DeclaredDependencies> localDependencies,
URI projectFileUri,
@Nullable PackageUri myPackageUri) {
/**
* @deprecated As of 0.28.0, replaced by {@link #localDependencies()}.
*/
@Deprecated(forRemoval = true)
public Map<String, DeclaredDependencies> getLocalDependencies() {
return localDependencies;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #remoteDependencies()}.
*/
@Deprecated(forRemoval = true)
public Map<String, RemoteDependency> getRemoteDependencies() {
return remoteDependencies;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #projectFileUri()}.
*/
@Deprecated(forRemoval = true)
public URI getProjectFileUri() {
return projectFileUri;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #myPackageUri()}.
*/
@Deprecated(forRemoval = true)
public @Nullable PackageUri getMyPackageUri() {
return myPackageUri;
}

View File

@@ -18,209 +18,145 @@ package org.pkl.core.project;
import java.net.URI;
import java.nio.file.Path;
import java.util.List;
import java.util.Objects;
import org.pkl.core.Version;
import org.pkl.core.packages.PackageUri;
import org.pkl.core.util.Nullable;
/** Java representation of class {@code pkl.Project#Package} */
@SuppressWarnings("unused")
public final class Package {
private final String name;
private final PackageUri uri;
private final Version version;
private final URI packageZipUrl;
private final @Nullable String description;
private final List<String> authors;
private final @Nullable URI website;
private final @Nullable URI documentation;
private final @Nullable URI sourceCode;
private final @Nullable String sourceCodeUrlScheme;
private final @Nullable String license;
private final @Nullable String licenseText;
private final @Nullable URI issueTracker;
private final List<Path> apiTests;
private final List<String> exclude;
public Package(
String name,
PackageUri uri,
Version version,
URI packageZipUrl,
@Nullable String description,
List<String> authors,
@Nullable URI website,
@Nullable URI documentation,
@Nullable URI sourceCode,
@Nullable String sourceCodeUrlScheme,
@Nullable String license,
@Nullable String licenseText,
@Nullable URI issueTracker,
List<Path> apiTests,
List<String> exclude) {
this.name = name;
this.uri = uri;
this.version = version;
this.packageZipUrl = packageZipUrl;
this.description = description;
this.authors = authors;
this.website = website;
this.documentation = documentation;
this.sourceCode = sourceCode;
this.sourceCodeUrlScheme = sourceCodeUrlScheme;
this.license = license;
this.licenseText = licenseText;
this.issueTracker = issueTracker;
this.apiTests = apiTests;
this.exclude = exclude;
}
public record Package(
String name,
PackageUri uri,
Version version,
URI packageZipUrl,
@Nullable String description,
List<String> authors,
@Nullable URI website,
@Nullable URI documentation,
@Nullable URI sourceCode,
@Nullable String sourceCodeUrlScheme,
@Nullable String license,
@Nullable String licenseText,
@Nullable URI issueTracker,
List<Path> apiTests,
List<String> exclude) {
/**
* @deprecated As of 0.28.0, replaced by {@link #name()}.
*/
@Deprecated(forRemoval = true)
public String getName() {
return name;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #uri()}.
*/
@Deprecated(forRemoval = true)
public PackageUri getUri() {
return uri;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #version()}.
*/
@Deprecated(forRemoval = true)
public Version getVersion() {
return version;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #packageZipUrl()}.
*/
@Deprecated(forRemoval = true)
public URI getPackageZipUrl() {
return packageZipUrl;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #description()}.
*/
@Deprecated(forRemoval = true)
public @Nullable String getDescription() {
return description;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #authors()}.
*/
@Deprecated(forRemoval = true)
public List<String> getAuthors() {
return authors;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #website()}.
*/
@Deprecated(forRemoval = true)
public @Nullable URI getWebsite() {
return website;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #documentation()}.
*/
@Deprecated(forRemoval = true)
public @Nullable URI getDocumentation() {
return documentation;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #sourceCode()}.
*/
@Deprecated(forRemoval = true)
public @Nullable URI getSourceCode() {
return sourceCode;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #sourceCodeUrlScheme()}.
*/
@Deprecated(forRemoval = true)
public @Nullable String getSourceCodeUrlScheme() {
return sourceCodeUrlScheme;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #licenseText()}.
*/
@Deprecated(forRemoval = true)
public @Nullable String getLicenseText() {
return licenseText;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #license()}.
*/
@Deprecated(forRemoval = true)
public @Nullable String getLicense() {
return license;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #issueTracker()}.
*/
@Deprecated(forRemoval = true)
public @Nullable URI getIssueTracker() {
return issueTracker;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #apiTests()}.
*/
@Deprecated(forRemoval = true)
public List<Path> getApiTests() {
return apiTests;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #exclude()}.
*/
@Deprecated(forRemoval = true)
public List<String> getExclude() {
return exclude;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Package aPackage = (Package) o;
return name.equals(aPackage.name)
&& uri.equals(aPackage.uri)
&& version.equals(aPackage.version)
&& Objects.equals(description, aPackage.description)
&& authors.equals(aPackage.authors)
&& Objects.equals(website, aPackage.website)
&& Objects.equals(documentation, aPackage.documentation)
&& Objects.equals(sourceCode, aPackage.sourceCode)
&& Objects.equals(sourceCodeUrlScheme, aPackage.sourceCodeUrlScheme)
&& Objects.equals(license, aPackage.license)
&& Objects.equals(licenseText, aPackage.licenseText)
&& Objects.equals(issueTracker, aPackage.issueTracker)
&& Objects.equals(apiTests, aPackage.apiTests)
&& exclude.equals(aPackage.exclude);
}
@Override
public int hashCode() {
return Objects.hash(
name,
uri,
version,
description,
authors,
website,
documentation,
sourceCode,
sourceCodeUrlScheme,
license,
licenseText,
issueTracker,
apiTests,
exclude);
}
@Override
public String toString() {
return "Package{"
+ "name="
+ name
+ ", uri="
+ uri
+ ", version='"
+ version
+ '\''
+ ", description='"
+ description
+ '\''
+ ", authors="
+ authors
+ ", website='"
+ website
+ ", documentation='"
+ documentation
+ '\''
+ ", sourceCode='"
+ sourceCode
+ '\''
+ ", sourceCodeUrlScheme='"
+ sourceCodeUrlScheme
+ '\''
+ ", license='"
+ license
+ '\''
+ ", licenseText='"
+ licenseText
+ '\''
+ ", issueTracker='"
+ issueTracker
+ '\''
+ ", apiTests='"
+ apiTests
+ '\''
+ ", exclude='"
+ exclude
+ '\''
+ '}';
}
}

View File

@@ -62,8 +62,8 @@ public final class ProjectDependenciesResolver {
public ProjectDeps resolve() {
buildResolvedDependencies(project.getDependencies());
for (var localProject : project.getDependencies().getLocalDependencies().values()) {
var packageUri = localProject.getMyPackageUri();
for (var localProject : project.getDependencies().localDependencies().values()) {
var packageUri = localProject.myPackageUri();
assert packageUri != null;
var canonicalUri = CanonicalPackageUri.fromPackageUri(packageUri);
var resolvedDependency = resolvedDependencies.get(canonicalUri);
@@ -86,11 +86,11 @@ public final class ProjectDependenciesResolver {
}
private void buildResolvedDependencies(DeclaredDependencies declaredDependencies) {
for (var dependency : declaredDependencies.getRemoteDependencies().values()) {
for (var dependency : declaredDependencies.remoteDependencies().values()) {
resolveDependenciesOfPackageUri(
dependency.getPackageUri().toProjectPackageUri(), dependency.getChecksums());
}
for (var localDeclaredDependencies : declaredDependencies.getLocalDependencies().values()) {
for (var localDeclaredDependencies : declaredDependencies.localDependencies().values()) {
resolveDependencies(localDeclaredDependencies);
}
}
@@ -128,9 +128,9 @@ public final class ProjectDependenciesResolver {
}
private void resolveDependencies(DeclaredDependencies declaredDependencies) {
var packageUri = declaredDependencies.getMyPackageUri();
var packageUri = declaredDependencies.myPackageUri();
assert packageUri != null;
var projectDir = Path.of(declaredDependencies.getProjectFileUri()).getParent();
var projectDir = Path.of(declaredDependencies.projectFileUri()).getParent();
var relativePath = IoUtils.relativize(projectDir, this.project.getProjectDir());
var localDependency = new LocalDependency(packageUri.toProjectPackageUri(), relativePath);
updateDependency(localDependency);

View File

@@ -134,10 +134,10 @@ public final class ProjectPackager {
public void createPackages() throws IOException {
for (var project : projects) {
var packageResult = doPackage(project);
writeLine(IoUtils.relativize(packageResult.getMetadataFile(), workingDir).toString());
writeLine(IoUtils.relativize(packageResult.getMetadataChecksumFile(), workingDir).toString());
writeLine(IoUtils.relativize(packageResult.getZipFile(), workingDir).toString());
writeLine(IoUtils.relativize(packageResult.getZipChecksumFile(), workingDir).toString());
writeLine(IoUtils.relativize(packageResult.metadataFile(), workingDir).toString());
writeLine(IoUtils.relativize(packageResult.metadataChecksumFile(), workingDir).toString());
writeLine(IoUtils.relativize(packageResult.zipFile(), workingDir).toString());
writeLine(IoUtils.relativize(packageResult.zipChecksumFile(), workingDir).toString());
outputWriter.flush();
}
}
@@ -145,8 +145,8 @@ public final class ProjectPackager {
private Path resolveOutputDirectory(Package pkg) {
var substituted =
outputPathPattern
.replace("%{name}", pkg.getName())
.replace("%{version}", pkg.getVersion().toString());
.replace("%{name}", pkg.name())
.replace("%{version}", pkg.version().toString());
return workingDir.resolve(substituted);
}
@@ -156,13 +156,13 @@ public final class ProjectPackager {
throw new PklException(
ErrorMessages.create("noPackageDefinedByProject", project.getProjectFileUri()));
}
if (packageResults.containsKey(pkg.getUri())) {
return packageResults.get(pkg.getUri());
if (packageResults.containsKey(pkg.uri())) {
return packageResults.get(pkg.uri());
}
var files = collectPackageElements(project, pkg);
validatePklImportsAndReads(project, files);
var outputDir = resolveOutputDirectory(pkg);
var metadataFileName = IoUtils.takeLastSegment(pkg.getUri().getUri().getPath(), '/');
var metadataFileName = IoUtils.takeLastSegment(pkg.uri().getUri().getPath(), '/');
var metadataFile = outputDir.resolve(metadataFileName);
var metadataChecksumFile = outputDir.resolve(metadataFileName + ".sha256");
var zipFile = outputDir.resolve(metadataFileName + ".zip");
@@ -178,21 +178,20 @@ public final class ProjectPackager {
var result =
new PackageResult(
metadataFile, metadataChecksumFile, zipFile, zipChecksumFile, metadataFileChecksum);
packageResults.put(pkg.getUri(), result);
packageResults.put(pkg.uri(), result);
return result;
}
private void checkAlreadyPublishedPackage(Package pkg, String computedChecksum)
throws IOException {
try {
var metadataAndChecksum =
packageResolver.getDependencyMetadataAndComputeChecksum(pkg.getUri());
var metadataAndChecksum = packageResolver.getDependencyMetadataAndComputeChecksum(pkg.uri());
var receivedChecksum = metadataAndChecksum.second.getSha256();
if (!receivedChecksum.equals(computedChecksum)) {
throw new PklException(
ErrorMessages.create(
"packageAlreadyPublishedWithDifferentContents",
pkg.getUri(),
pkg.uri(),
computedChecksum,
receivedChecksum));
}
@@ -204,8 +203,8 @@ public final class ProjectPackager {
throw new PklException(
ErrorMessages.create(
"unableToAccessPublishedPackage",
pkg.getName(),
pkg.getPackageZipUrl(),
pkg.name(),
pkg.packageZipUrl(),
e.getArguments()[0]));
}
}
@@ -229,15 +228,15 @@ public final class ProjectPackager {
try {
var ret =
new HashMap<String, RemoteDependency>(
project.getDependencies().getLocalDependencies().size()
+ project.getDependencies().getRemoteDependencies().size());
project.getDependencies().localDependencies().size()
+ project.getDependencies().remoteDependencies().size());
// module resolver is only used for reading PklProject.deps.json, so provide one that reads
// files.
var moduleResolver = new ModuleResolver(List.of(ModuleKeyFactories.file));
var projectDependenciesManager =
new ProjectDependenciesManager(
project.getDependencies(), moduleResolver, this.securityManager);
for (var entry : project.getDependencies().getRemoteDependencies().entrySet()) {
for (var entry : project.getDependencies().remoteDependencies().entrySet()) {
var resolved =
(RemoteDependency)
projectDependenciesManager.getResolvedDependency(entry.getValue().getPackageUri());
@@ -249,7 +248,7 @@ public final class ProjectPackager {
for (var entry : project.getLocalProjectDependencies().entrySet()) {
var localProject = entry.getValue();
assert localProject.getPackage() != null;
var packageUri = localProject.getPackage().getUri();
var packageUri = localProject.getPackage().uri();
var resolved = projectDependenciesManager.getResolvedDependency(packageUri);
if (resolved instanceof LocalDependency) {
var packageResult = doPackage(localProject);
@@ -257,7 +256,7 @@ public final class ProjectPackager {
entry.getKey(),
new RemoteDependency(
packageUri.toExternalPackageUri(),
new Checksums(packageResult.getMetadataChecksum())));
new Checksums(packageResult.metadataChecksum())));
} else {
var remoteDep = (RemoteDependency) resolved;
ret.put(
@@ -278,20 +277,20 @@ public final class ProjectPackager {
private DependencyMetadata createDependencyMetadata(
Project project, Package pkg, String packageZipChecksum) throws IOException {
return new DependencyMetadata(
pkg.getName(),
pkg.getUri(),
pkg.getVersion(),
pkg.getPackageZipUrl(),
pkg.name(),
pkg.uri(),
pkg.version(),
pkg.packageZipUrl(),
new Checksums(packageZipChecksum),
buildDependencies(project),
pkg.getSourceCodeUrlScheme(),
pkg.getSourceCode(),
pkg.getDocumentation(),
pkg.getLicense(),
pkg.getLicenseText(),
pkg.getAuthors(),
pkg.getIssueTracker(),
pkg.getDescription(),
pkg.sourceCodeUrlScheme(),
pkg.sourceCode(),
pkg.documentation(),
pkg.license(),
pkg.licenseText(),
pkg.authors(),
pkg.issueTracker(),
pkg.description(),
project.getAnnotations());
}
@@ -343,7 +342,7 @@ public final class ProjectPackager {
private List<Pattern> getExcludePatterns(Package pkg) {
var excludePatterns = new ArrayList<Pattern>();
for (String s : pkg.getExclude()) {
for (String s : pkg.exclude()) {
try {
excludePatterns.add(GlobResolver.toRegexPattern(s));
} catch (InvalidGlobPatternException e) {
@@ -452,42 +451,48 @@ public final class ProjectPackager {
}
}
public static class PackageResult {
private final Path zipFile;
private final Path zipChecksumFile;
private final Path metadataFile;
private final Path metadataChecksumFile;
private final String metadataChecksum;
public PackageResult(
Path zipFile,
Path zipChecksumFile,
Path metadataFile,
Path metadataChecksumFile,
String metadataChecksum) {
this.zipFile = zipFile;
this.zipChecksumFile = zipChecksumFile;
this.metadataFile = metadataFile;
this.metadataChecksumFile = metadataChecksumFile;
this.metadataChecksum = metadataChecksum;
}
public record PackageResult(
Path zipFile,
Path zipChecksumFile,
Path metadataFile,
Path metadataChecksumFile,
String metadataChecksum) {
/**
* @deprecated As of 0.28.0, replaced by {@link #zipFile()}.
*/
@Deprecated(forRemoval = true)
public Path getZipFile() {
return zipFile;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #zipChecksumFile()}.
*/
@Deprecated(forRemoval = true)
public Path getZipChecksumFile() {
return zipChecksumFile;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #metadataFile()}.
*/
@Deprecated(forRemoval = true)
public Path getMetadataFile() {
return metadataFile;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #metadataChecksumFile()}.
*/
@Deprecated(forRemoval = true)
public Path getMetadataChecksumFile() {
return metadataChecksumFile;
}
/**
* @deprecated As of 0.28.0, replaced by {@link #metadataChecksum()}.
*/
@Deprecated(forRemoval = true)
public String getMetadataChecksum() {
return metadataChecksum;
}