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"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with 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.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.util.jar.Attributes; import java.util.jar.Attributes;
import java.util.jar.Attributes.Name;
import java.util.jar.JarFile; import java.util.jar.JarFile;
/** /**
* Class that exposes the Spring Boot version. Fetches the "Implementation-Version" * Class that exposes the Spring Boot version. Fetches the
* manifest attribute from the jar file. * {@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> * <p>
* Note that some ClassLoaders do not expose the package metadata, hence this class might * This class might not be able to determine the Spring Boot version in all environments.
* not be able to determine the Spring Boot version in all environments. Consider using a * Consider using a reflection-based check instead: For example, checking for the presence
* reflection-based check instead: For example, checking for the presence of a specific * of a specific Spring Boot method that you intend to call.
* Spring Boot method that you intend to call.
* *
* @author Drummond Dawson * @author Drummond Dawson
* @author Hendrig Sellik
* @author Andy Wilkinson
* @since 1.3.0 * @since 1.3.0
*/ */
public final class SpringBootVersion { public final class SpringBootVersion {