mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Fix reachability-metadata.properties location
Update tools to use the correct `reachability-metadata.properties` location which should include the version number. See gh-32738
This commit is contained in:
parent
9aa2854e00
commit
8358a0e3f3
@ -76,10 +76,10 @@ class BootZipCopyAction implements CopyAction {
|
|||||||
static final long CONSTANT_TIME_FOR_ZIP_ENTRIES = new GregorianCalendar(1980, Calendar.FEBRUARY, 1, 0, 0, 0)
|
static final long CONSTANT_TIME_FOR_ZIP_ENTRIES = new GregorianCalendar(1980, Calendar.FEBRUARY, 1, 0, 0, 0)
|
||||||
.getTimeInMillis();
|
.getTimeInMillis();
|
||||||
|
|
||||||
private static final String REACHABILITY_METADATA_PROPERTIES_LOCATION = "META-INF/native-image/%s/%s/reachability-metadata.properties";
|
private static final String REACHABILITY_METADATA_PROPERTIES_LOCATION = "META-INF/native-image/%s/%s/%s/reachability-metadata.properties";
|
||||||
|
|
||||||
private static final Pattern REACHABILITY_METADATA_PROPERTIES_LOCATION_PATTERN = Pattern
|
private static final Pattern REACHABILITY_METADATA_PROPERTIES_LOCATION_PATTERN = Pattern
|
||||||
.compile(REACHABILITY_METADATA_PROPERTIES_LOCATION.formatted(".*", ".*"));
|
.compile(REACHABILITY_METADATA_PROPERTIES_LOCATION.formatted(".*", ".*", ".*"));
|
||||||
|
|
||||||
private final File output;
|
private final File output;
|
||||||
|
|
||||||
@ -356,8 +356,8 @@ class BootZipCopyAction implements CopyAction {
|
|||||||
.find(entry.getValue().getFile());
|
.find(entry.getValue().getFile());
|
||||||
LibraryCoordinates coordinates = (descriptor != null) ? descriptor.getCoordinates() : null;
|
LibraryCoordinates coordinates = (descriptor != null) ? descriptor.getCoordinates() : null;
|
||||||
FileCopyDetails propertiesFile = (coordinates != null)
|
FileCopyDetails propertiesFile = (coordinates != null)
|
||||||
? this.reachabilityMetadataProperties.get(REACHABILITY_METADATA_PROPERTIES_LOCATION
|
? this.reachabilityMetadataProperties.get(REACHABILITY_METADATA_PROPERTIES_LOCATION.formatted(
|
||||||
.formatted(coordinates.getGroupId(), coordinates.getArtifactId()))
|
coordinates.getGroupId(), coordinates.getArtifactId(), coordinates.getVersion()))
|
||||||
: null;
|
: null;
|
||||||
if (propertiesFile != null) {
|
if (propertiesFile != null) {
|
||||||
try (InputStream inputStream = propertiesFile.open()) {
|
try (InputStream inputStream = propertiesFile.open()) {
|
||||||
|
@ -670,9 +670,9 @@ abstract class AbstractBootArchiveTests<T extends Jar & BootArchive> {
|
|||||||
File css = new File(staticResources, "test.css");
|
File css = new File(staticResources, "test.css");
|
||||||
css.createNewFile();
|
css.createNewFile();
|
||||||
if (addReachabilityProperties) {
|
if (addReachabilityProperties) {
|
||||||
createReachabilityProperties(resourcesMain, "com.example", "first-library", "true");
|
createReachabilityProperties(resourcesMain, "com.example", "first-library", "1.0.0", "true");
|
||||||
createReachabilityProperties(resourcesMain, "com.example", "second-library", "true");
|
createReachabilityProperties(resourcesMain, "com.example", "second-library", "1.0.0", "true");
|
||||||
createReachabilityProperties(resourcesMain, "com.example", "fourth-library", "false");
|
createReachabilityProperties(resourcesMain, "com.example", "fourth-library", "1.0.0", "false");
|
||||||
}
|
}
|
||||||
this.task.classpath(classesJavaMain, resourcesMain, jarFile("first-library.jar"), jarFile("second-library.jar"),
|
this.task.classpath(classesJavaMain, resourcesMain, jarFile("first-library.jar"), jarFile("second-library.jar"),
|
||||||
jarFile("third-library-SNAPSHOT.jar"), jarFile("fourth-library.jar"),
|
jarFile("third-library-SNAPSHOT.jar"), jarFile("fourth-library.jar"),
|
||||||
@ -707,9 +707,10 @@ abstract class AbstractBootArchiveTests<T extends Jar & BootArchive> {
|
|||||||
populateResolvedDependencies(configuration);
|
populateResolvedDependencies(configuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void createReachabilityProperties(File directory, String groupId, String artifactId, String override)
|
protected void createReachabilityProperties(File directory, String groupId, String artifactId, String version,
|
||||||
throws IOException {
|
String override) throws IOException {
|
||||||
File targetDirectory = new File(directory, "META-INF/native-image/%s/%s".formatted(groupId, artifactId));
|
File targetDirectory = new File(directory,
|
||||||
|
"META-INF/native-image/%s/%s/%s".formatted(groupId, artifactId, version));
|
||||||
File target = new File(targetDirectory, "reachability-metadata.properties");
|
File target = new File(targetDirectory, "reachability-metadata.properties");
|
||||||
targetDirectory.mkdirs();
|
targetDirectory.mkdirs();
|
||||||
FileCopyUtils.copy("override=%s\n".formatted(override).getBytes(StandardCharsets.ISO_8859_1), target);
|
FileCopyUtils.copy("override=%s\n".formatted(override).getBytes(StandardCharsets.ISO_8859_1), target);
|
||||||
|
@ -61,7 +61,7 @@ import org.springframework.util.StringUtils;
|
|||||||
*/
|
*/
|
||||||
public abstract class Packager {
|
public abstract class Packager {
|
||||||
|
|
||||||
private static final String REACHABILITY_METADATA_PROPERTIES_LOCATION = "META-INF/native-image/%s/%s/reachability-metadata.properties";
|
private static final String REACHABILITY_METADATA_PROPERTIES_LOCATION = "META-INF/native-image/%s/%s/%s/reachability-metadata.properties";
|
||||||
|
|
||||||
private static final String MAIN_CLASS_ATTRIBUTE = "Main-Class";
|
private static final String MAIN_CLASS_ATTRIBUTE = "Main-Class";
|
||||||
|
|
||||||
@ -230,7 +230,7 @@ public abstract class Packager {
|
|||||||
for (Map.Entry<String, Library> entry : writtenLibraries.entrySet()) {
|
for (Map.Entry<String, Library> entry : writtenLibraries.entrySet()) {
|
||||||
LibraryCoordinates coordinates = entry.getValue().getCoordinates();
|
LibraryCoordinates coordinates = entry.getValue().getCoordinates();
|
||||||
ZipEntry zipEntry = (coordinates != null) ? sourceJar.getEntry(REACHABILITY_METADATA_PROPERTIES_LOCATION
|
ZipEntry zipEntry = (coordinates != null) ? sourceJar.getEntry(REACHABILITY_METADATA_PROPERTIES_LOCATION
|
||||||
.formatted(coordinates.getGroupId(), coordinates.getArtifactId())) : null;
|
.formatted(coordinates.getGroupId(), coordinates.getArtifactId(), coordinates.getVersion())) : null;
|
||||||
if (zipEntry != null) {
|
if (zipEntry != null) {
|
||||||
try (InputStream inputStream = sourceJar.getInputStream(zipEntry)) {
|
try (InputStream inputStream = sourceJar.getInputStream(zipEntry)) {
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
|
@ -622,11 +622,12 @@ abstract class AbstractPackagerTests<P extends Packager> {
|
|||||||
File libraryTwo = createLibraryJar();
|
File libraryTwo = createLibraryJar();
|
||||||
File libraryThree = createLibraryJar();
|
File libraryThree = createLibraryJar();
|
||||||
File libraryFour = createLibraryJar();
|
File libraryFour = createLibraryJar();
|
||||||
this.testJarFile.addFile("META-INF/native-image/com.example.one/lib-one/reachability-metadata.properties",
|
this.testJarFile.addFile("META-INF/native-image/com.example.one/lib-one/123/reachability-metadata.properties",
|
||||||
new ByteArrayInputStream("override=true\n".getBytes(StandardCharsets.ISO_8859_1)));
|
new ByteArrayInputStream("override=true\n".getBytes(StandardCharsets.ISO_8859_1)));
|
||||||
this.testJarFile.addFile("META-INF/native-image/com.example.two/lib-two/reachability-metadata.properties",
|
this.testJarFile.addFile("META-INF/native-image/com.example.two/lib-two/123/reachability-metadata.properties",
|
||||||
new ByteArrayInputStream("override=true\n".getBytes(StandardCharsets.ISO_8859_1)));
|
new ByteArrayInputStream("override=true\n".getBytes(StandardCharsets.ISO_8859_1)));
|
||||||
this.testJarFile.addFile("META-INF/native-image/com.example.three/lib-three/reachability-metadata.properties",
|
this.testJarFile.addFile(
|
||||||
|
"META-INF/native-image/com.example.three/lib-three/123/reachability-metadata.properties",
|
||||||
new ByteArrayInputStream("other=test\n".getBytes(StandardCharsets.ISO_8859_1)));
|
new ByteArrayInputStream("other=test\n".getBytes(StandardCharsets.ISO_8859_1)));
|
||||||
P packager = createPackager(this.testJarFile.getFile());
|
P packager = createPackager(this.testJarFile.getFile());
|
||||||
execute(packager, (callback) -> {
|
execute(packager, (callback) -> {
|
||||||
|
Loading…
Reference in New Issue
Block a user