docs/architecture/ExtensionManifestFormat.md
This document defines the MANIFEST.MF attribute format for BTrace extensions, replacing the previous btrace-extension.properties file.
Using MANIFEST.MF for extension metadata provides:
extension.id=btrace-metrics
extension.version=2.3.0
extension.name=BTrace Metrics
extension.description=High-performance metrics...
btrace.api.version=2.3+
java.version=8+
services=org.openjdk.btrace.metrics.MetricsService
requires.extensions=btrace-core
shaded.packages=org.HdrHistogram->org.openjdk.btrace.metrics.shaded.hdrhistogram
BTrace-Extension-Id: btrace-metrics
BTrace-Extension-Version: 2.3.0
BTrace-Extension-Name: BTrace Metrics
BTrace-Extension-Description: High-performance metrics with HdrHistogram
for percentiles and lock-free statistics
BTrace-API-Version: 2.3+
BTrace-Java-Version: 8+
BTrace-Extension-Services: org.openjdk.btrace.metrics.MetricsService
BTrace-Extension-Requires: btrace-core
BTrace-Shaded-Packages: org.HdrHistogram->org.openjdk.btrace.metrics.sh
aded.hdrhistogram,com.clearspring.analytics->org.openjdk.btrace.metrics
.shaded.clearspring
BTrace-Extension-Permissions: NETWORK,THREADS
BTrace-Extension-Id
btrace-metricsBTrace-Extension-Version
2.3.0, 2.3.0-SNAPSHOTBTrace-Extension-Name
BTrace MetricsBTrace-Extension-Description
High-performance metrics with HdrHistogramBTrace-API-Version
2.3+ (requires BTrace API 2.3 or higher)BTrace-Java-Version
8+BTrace-Extension-Services
org.openjdk.btrace.metrics.MetricsService,org.openjdk.btrace.metrics.StatsServiceBTrace-Extension-Requires
btrace-core,btrace-utilBTrace-Shaded-Packages
org.HdrHistogram->org.openjdk.btrace.metrics.shaded.hdrhistogramPer JAR specification, manifest attributes longer than 72 bytes must be continued on the next line with a leading space:
BTrace-Extension-Description: This is a very long description that excee
ds the 72-byte limit and must be continued on the next line with a lead
ing space character.
The extension loader supports both formats:
btrace-extension.properties if MANIFEST attributes not foundExtensions should configure MANIFEST.MF generation in build.gradle:
jar {
manifest {
attributes(
'BTrace-Extension-Id': 'btrace-metrics',
'BTrace-Extension-Version': project.version,
'BTrace-Extension-Name': 'BTrace Metrics',
'BTrace-Extension-Description': 'High-performance metrics...',
'BTrace-API-Version': '2.3+',
'BTrace-Java-Version': '8+',
'BTrace-Extension-Services': 'org.openjdk.btrace.metrics.MetricsService',
'BTrace-Shaded-Packages': 'org.HdrHistogram->org.openjdk.btrace.metrics.shaded.hdrhistogram'
)
}
}
NETWORK,THREADS,FILE_WRITE