Polish "Determine Spring Boot version correctly when using module path"

See gh-16182
This commit is contained in:
Andy Wilkinson 2019-04-18 15:08:10 +01:00
parent ec8fb614f7
commit 15f28dcc68
1 changed files with 12 additions and 7 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2018 the original author or authors.
* Copyright 2012-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -22,18 +22,23 @@ import java.net.JarURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.jar.Attributes;
import java.util.jar.Attributes.Name;
import java.util.jar.JarFile;
/**
* Class that exposes the Spring Boot version. Fetches the "Implementation-Version"
* manifest attribute from the jar file.
* Class that exposes the Spring Boot version. Fetches the
* {@link Name#IMPLEMENTATION_VERSION Implementation-Version} manifest attribute from the
* jar file via {@link Package#getImplementationVersion()}, falling back to locating the
* jar file that contains this class and reading the {@code Implementation-Version}
* attribute from its manifest.
* <p>
* Note that some ClassLoaders do not expose the package metadata, hence this class might
* not be able to determine the Spring Boot version in all environments. Consider using a
* reflection-based check instead: For example, checking for the presence of a specific
* Spring Boot method that you intend to call.
* This class might not be able to determine the Spring Boot version in all environments.
* Consider using a reflection-based check instead: For example, checking for the presence
* of a specific Spring Boot method that you intend to call.
*
* @author Drummond Dawson
* @author Hendrig Sellik
* @author Andy Wilkinson
* @since 1.3.0
*/
public final class SpringBootVersion {