Deprecate support for module layout

Closes gh-8008
This commit is contained in:
Andy Wilkinson 2017-01-25 16:37:18 +00:00
parent a081c96523
commit cd5124005b
5 changed files with 25 additions and 9 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2016 the original author or authors.
* Copyright 2012-2017 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.
@ -304,7 +304,7 @@ public class SpringBootPluginExtension {
DIR(new Layouts.Expanded()),
MODULE(new Layouts.Module()),
@SuppressWarnings("deprecation") MODULE(new Layouts.Module()),
NONE(new Layouts.None());

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2016 the original author or authors.
* Copyright 2012-2017 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.
@ -33,6 +33,8 @@ import org.gradle.api.tasks.bundling.Jar;
import org.springframework.boot.gradle.SpringBootPluginExtension;
import org.springframework.boot.loader.tools.DefaultLaunchScript;
import org.springframework.boot.loader.tools.LaunchScript;
import org.springframework.boot.loader.tools.Layout;
import org.springframework.boot.loader.tools.Layouts;
import org.springframework.boot.loader.tools.Repackager;
import org.springframework.boot.loader.tools.Repackager.MainClassTimeoutWarningListener;
import org.springframework.util.FileCopyUtils;
@ -207,6 +209,7 @@ public class RepackageTask extends DefaultTask {
return task.equals(withJarTask) || task.getName().equals(withJarTask);
}
@SuppressWarnings("deprecation")
private void repackage(File file) {
File outputFile = RepackageTask.this.outputFile;
if (outputFile != null && !file.equals(outputFile)) {
@ -218,8 +221,13 @@ public class RepackageTask extends DefaultTask {
repackager.addMainClassTimeoutWarningListener(
new LoggingMainClassTimeoutWarningListener());
setMainClass(repackager);
if (this.extension.convertLayout() != null) {
repackager.setLayout(this.extension.convertLayout());
Layout layout = this.extension.convertLayout();
if (layout != null) {
if (layout instanceof Layouts.Module) {
getLogger().warn("Module layout is deprecated. Please use a custom"
+ " LayoutFactory instead.");
}
repackager.setLayout(layout);
}
repackager.setBackupSource(this.extension.isBackupSource());
try {

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2016 the original author or authors.
* Copyright 2012-2017 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.
@ -158,7 +158,9 @@ public final class Layouts {
/**
* Module layout (designed to be used as a "plug-in").
* @deprecated since 1.5 in favour of a custom {@link LayoutFactory}
*/
@Deprecated
public static class Module implements Layout {
private static final Set<LibraryScope> LIB_DESTINATION_SCOPES = new HashSet<LibraryScope>(

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2016 the original author or authors.
* Copyright 2012-2017 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.
@ -87,6 +87,7 @@ public class LayoutsTests {
}
@Test
@SuppressWarnings("deprecation")
public void moduleLayout() throws Exception {
Layout layout = new Layouts.Module();
assertThat(layout.getLibraryDestination("lib.jar", LibraryScope.COMPILE))

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2016 the original author or authors.
* Copyright 2012-2017 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.
@ -236,6 +236,10 @@ public class RepackageMojo extends AbstractDependencyFilterMojo {
repackager.setMainClass(this.mainClass);
if (this.layout != null) {
getLog().info("Layout: " + this.layout);
if (this.layout == LayoutType.MODULE) {
getLog().warn("Module layout is deprecated. Please use a custom"
+ " LayoutFactory instead.");
}
repackager.setLayout(this.layout.layout());
}
return repackager;
@ -344,8 +348,9 @@ public class RepackageMojo extends AbstractDependencyFilterMojo {
/**
* Module Layout.
* @deprecated since 1.5 in favour of a custom {@link LayoutFactory}
*/
MODULE(new Layouts.Module()),
@Deprecated MODULE(new Layouts.Module()),
/**
* No Layout.