Record Class BundleMetadata
java.lang.Object
java.lang.Record
net.fabricmc.loom.configuration.providers.BundleMetadata
public record BundleMetadata(List<BundleMetadata.Entry> libraries, List<BundleMetadata.Entry> versions, String mainClass)
extends Record
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionBundleMetadata(List<BundleMetadata.Entry> libraries, List<BundleMetadata.Entry> versions, String mainClass) Creates an instance of aBundleMetadatarecord class. -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanIndicates whether some other object is "equal to" this one.static @Nullable BundleMetadatastatic @Nullable BundleMetadatafromJarCached(SpecStore store, Path jar, @Nullable String artifactSha1) 读取服务端制品的 bundle 元数据,结果按制品的sha1落盘复用.final inthashCode()Returns a hash code value for this object.Returns the value of thelibrariesrecord component.Returns the value of themainClassrecord component.final StringtoString()Returns a string representation of this record class.versions()Returns the value of theversionsrecord component.
-
Constructor Details
-
BundleMetadata
public BundleMetadata(List<BundleMetadata.Entry> libraries, List<BundleMetadata.Entry> versions, String mainClass) Creates an instance of aBundleMetadatarecord class.- Parameters:
libraries- the value for thelibrariesrecord componentversions- the value for theversionsrecord componentmainClass- the value for themainClassrecord component
-
-
Method Details
-
fromJar
- Throws:
IOException
-
fromJarCached
public static @Nullable BundleMetadata fromJarCached(SpecStore store, Path jar, @Nullable String artifactSha1) throws IOException 读取服务端制品的 bundle 元数据,结果按制品的sha1落盘复用.本方法存在的理由是一个配置期约束:服务端库的注入(
MinecraftLibraryProvider.provideServerLibraries)依赖这里读出的库列表, 而库注入只能在配置期做,因此配置期**必须**拿到 bundle 元数据。但元数据本身是「下载 url + sha1」的纯函数——这两个值来自 version json, 不需要碰磁盘。于是把结果按
sha1缓存后,后续构建可以完全跳过「打开服务端 jar 读内部清单」这一步,配置期也就不再观察该 jar。这是把服务端下载搬到执行期的**先决条件**。首次构建仍须真实读取(此时无缓存),并因此付出一次配置期文件观察; 之后稳定命中。
- Parameters:
store- L2 规格存储jar- 服务端 jarartifactSha1- 该制品在 version json 中声明的 sha1,作为缓存身份- Returns:
- bundle 元数据;非 bundler 的旧版服务端 jar 返回空
- Throws:
IOException
-
toString
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components. -
hashCode
public final int hashCode()Returns a hash code value for this object. The value is derived from the hash code of each of the record components. -
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared withObjects::equals(Object,Object). -
libraries
Returns the value of thelibrariesrecord component.- Returns:
- the value of the
librariesrecord component
-
versions
Returns the value of theversionsrecord component.- Returns:
- the value of the
versionsrecord component
-
mainClass
Returns the value of themainClassrecord component.- Returns:
- the value of the
mainClassrecord component
-