Tooling for PropertiesLauncher in JAR archives

To use PropertiesLauncher instead of JarLauncher in an
executable JAR we have provided tooling support. In Maven
(using the starter parent to default some of the settings):

    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <layout>ZIP</layout>
      </configuration>
    </plugin>

in Gradle:

    apply plugin: "spring-boot"
    springBoot {
        layout = 'ZIP'
      }
    }

[Fixes #58837492] [bs-330] Add tooling for PropertiesLauncher
This commit is contained in:
Dave Syer
2013-10-15 16:30:27 -04:00
parent 837070d6e9
commit 47cd5dd679
13 changed files with 220 additions and 35 deletions

View File

@@ -47,9 +47,21 @@ public abstract class Archive {
* @throws Exception
*/
public String getMainClass() throws Exception {
String mainClass = getManifest().getMainAttributes().getValue("Start-Class");
Manifest manifest = getManifest();
String mainClass = null;
if (manifest != null) {
mainClass = manifest.getMainAttributes().getValue("Start-Class");
}
if (mainClass == null) {
throw new IllegalStateException("No 'Start-Class' manifest entry specified");
String url = "UNKNOWN";
try {
url = getUrl().toString();
}
catch (Exception e) {
// ignore
}
throw new IllegalStateException(
"No 'Start-Class' manifest entry specified in " + url);
}
return mainClass;
}

View File

@@ -1,13 +1,13 @@
#Generated by Git-Commit-Id-Plugin
#Tue Oct 15 11:07:32 EDT 2013
git.commit.id.abbrev=d3fa609
#Wed Oct 16 08:17:37 EDT 2013
git.commit.id.abbrev=a7ba9ba
git.commit.user.email=dsyer@gopivotal.com
git.commit.message.full=Extend PropertiesLauncher to load nested archives\n\nPropertiesLauncher can now be used to run an executable jar, and by\ndefault it will pick up nested archives in lib/ (where the Boot\ntools puts them). User can provide loader.path (colon-separated)\nto change the nested path.\n\n[\#58837492] [bs-330] Add tooling for PropertiesLauncher\n
git.commit.id=d3fa60955b06fe78bbf0c914928d794661aca312
git.commit.message.short=Extend PropertiesLauncher to load nested archives
git.commit.message.full=Tooling for PropertiesLauncher\n
git.commit.id=a7ba9ba5cd47a924f9c7668a772957fc05ffa058
git.commit.message.short=Tooling for PropertiesLauncher
git.commit.user.name=Dave Syer
git.build.user.name=Dave Syer
git.build.user.email=dsyer@gopivotal.com
git.branch=master
git.commit.time=2013-10-15T10\:51\:03-0400
git.build.time=2013-10-15T11\:07\:32-0400
git.branch=feature/proptool
git.commit.time=2013-10-15T16\:54\:14-0400
git.build.time=2013-10-16T08\:17\:37-0400