Commit d137bcd8 authored by Phillip Webb's avatar Phillip Webb

Polish gradle repackage task formatting

parent f8ab5a1f
...@@ -59,9 +59,9 @@ public class Repackage extends DefaultTask { ...@@ -59,9 +59,9 @@ public class Repackage extends DefaultTask {
@TaskAction @TaskAction
public void repackage() { public void repackage() {
Project project = getProject(); Project project = getProject();
final SpringBootPluginExtension extension = project.getExtensions().getByType( SpringBootPluginExtension extension = project.getExtensions().getByType(
SpringBootPluginExtension.class); SpringBootPluginExtension.class);
final ProjectLibraries libraries = new ProjectLibraries(project); ProjectLibraries libraries = new ProjectLibraries(project);
if (extension.getProvidedConfiguration() != null) { if (extension.getProvidedConfiguration() != null) {
libraries.setProvidedConfigurationName(extension.getProvidedConfiguration()); libraries.setProvidedConfigurationName(extension.getProvidedConfiguration());
} }
...@@ -71,59 +71,73 @@ public class Repackage extends DefaultTask { ...@@ -71,59 +71,73 @@ public class Repackage extends DefaultTask {
else if (extension.getCustomConfiguration() != null) { else if (extension.getCustomConfiguration() != null) {
libraries.setCustomConfigurationName(extension.getCustomConfiguration()); libraries.setCustomConfigurationName(extension.getCustomConfiguration());
} }
project.getTasks().withType(Jar.class, new RepackageAction(extension, libraries));
}
project.getTasks().withType(Jar.class, new Action<Jar>() { private class RepackageAction implements Action<Jar> {
@Override private final SpringBootPluginExtension extension;
public void execute(Jar archive) {
// if withJarTask is set, compare tasks private final ProjectLibraries libraries;
// and bail out if we didn't match
if (Repackage.this.withJarTask != null public RepackageAction(SpringBootPluginExtension extension,
&& !archive.equals(Repackage.this.withJarTask)) { ProjectLibraries libraries) {
return; this.extension = extension;
} this.libraries = libraries;
}
if ("".equals(archive.getClassifier())) { @Override
File file = archive.getArchivePath(); public void execute(Jar archive) {
if (file.exists()) { // if withJarTask is set, compare tasks and bail out if we didn't match
Repackager repackager = new Repackager(file) { if (Repackage.this.withJarTask != null
&& !archive.equals(Repackage.this.withJarTask)) {
@Override return;
protected String findMainMethod(java.util.jar.JarFile source) }
throws IOException {
long startTime = System.currentTimeMillis(); if ("".equals(archive.getClassifier())) {
try { File file = archive.getArchivePath();
return super.findMainMethod(source); if (file.exists()) {
} Repackager repackager = new LoggingRepackager(file);
finally { repackager.setMainClass(this.extension.getMainClass());
long duration = System.currentTimeMillis() if (Repackage.this.mainClass != null) {
- startTime; repackager.setMainClass(Repackage.this.mainClass);
if (duration > FIND_WARNING_TIMEOUT) { }
getLogger() if (this.extension.convertLayout() != null) {
.warn("Searching for the " repackager.setLayout(this.extension.convertLayout());
+ "main-class is taking some time, " }
+ "consider using setting 'springBoot.mainClass'"); repackager.setBackupSource(this.extension.isBackupSource());
} try {
} repackager.repackage(this.libraries);
}; }
}; catch (IOException ex) {
repackager throw new IllegalStateException(ex.getMessage(), ex);
.setMainClass(Repackage.this.mainClass != null ? Repackage.this.mainClass
: extension.getMainClass());
if (extension.convertLayout() != null) {
repackager.setLayout(extension.convertLayout());
}
repackager.setBackupSource(extension.isBackupSource());
try {
repackager.repackage(libraries);
}
catch (IOException ex) {
throw new IllegalStateException(ex.getMessage(), ex);
}
} }
} }
} }
}); }
} }
private class LoggingRepackager extends Repackager {
public LoggingRepackager(File source) {
super(source);
}
@Override
protected String findMainMethod(java.util.jar.JarFile source) throws IOException {
long startTime = System.currentTimeMillis();
try {
return super.findMainMethod(source);
}
finally {
long duration = System.currentTimeMillis() - startTime;
if (duration > FIND_WARNING_TIMEOUT) {
getLogger().warn(
"Searching for the main-class is taking "
+ "some time, consider using setting "
+ "'springBoot.mainClass'");
}
}
};
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment