Polish contribution

Closes gh-6367
pull/7164/head
Stephane Nicoll 8 years ago
parent d07f689446
commit 2d75cc79c0

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2014 the original author or authors. * Copyright 2012-2016 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.
@ -36,6 +36,7 @@ import static org.junit.Assert.assertTrue;
* Integration test for {@link JarCommand}. * Integration test for {@link JarCommand}.
* *
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Stephane Nicoll
*/ */
public class JarCommandIT { public class JarCommandIT {
@ -98,12 +99,16 @@ public class JarCommandIT {
assertThat(invocation.getErrorOutput(), equalTo("")); assertThat(invocation.getErrorOutput(), equalTo(""));
assertThat(invocation.getStandardOutput(), containsString("Hello World!")); assertThat(invocation.getStandardOutput(), containsString("Hello World!"));
assertThat(invocation.getStandardOutput(), containsString("/public/public.txt"));
assertThat(invocation.getStandardOutput(), assertThat(invocation.getStandardOutput(),
containsString("/resources/resource.txt")); containsString("/BOOT-INF/classes!/public/public.txt"));
assertThat(invocation.getStandardOutput(), containsString("/static/static.txt"));
assertThat(invocation.getStandardOutput(), assertThat(invocation.getStandardOutput(),
containsString("/templates/template.txt")); containsString("/BOOT-INF/classes!/resources/resource.txt"));
assertThat(invocation.getStandardOutput(),
containsString("/BOOT-INF/classes!/static/static.txt"));
assertThat(invocation.getStandardOutput(),
containsString("/BOOT-INF/classes!/templates/template.txt"));
assertThat(invocation.getStandardOutput(),
containsString("/BOOT-INF/classes!/root.properties"));
assertThat(invocation.getStandardOutput(), containsString("Goodbye Mama")); assertThat(invocation.getStandardOutput(), containsString("Goodbye Mama"));
} }

@ -16,16 +16,16 @@
package org.springframework.boot.cli; package org.springframework.boot.cli;
import java.io.File;
import org.junit.Test; import org.junit.Test;
import org.springframework.boot.cli.command.archive.WarCommand; import org.springframework.boot.cli.command.archive.WarCommand;
import org.springframework.boot.cli.infrastructure.CommandLineInvoker; import org.springframework.boot.cli.infrastructure.CommandLineInvoker;
import org.springframework.boot.cli.infrastructure.CommandLineInvoker.Invocation; import org.springframework.boot.cli.infrastructure.CommandLineInvoker.Invocation;
import org.springframework.boot.loader.tools.JavaExecutable; import org.springframework.boot.loader.tools.JavaExecutable;
import org.springframework.util.SocketUtils; import org.springframework.util.SocketUtils;
import java.io.File;
import java.util.zip.ZipFile;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
/** /**
@ -57,27 +57,8 @@ public class WarCommandIT {
assertThat(invocation.getOutput()) assertThat(invocation.getOutput())
.contains("/WEB-INF/lib-provided/tomcat-embed-core"); .contains("/WEB-INF/lib-provided/tomcat-embed-core");
assertThat(invocation.getOutput()) assertThat(invocation.getOutput())
.contains("/WEB-INF/lib-provided/tomcat-embed-core"); .contains("WEB-INF/classes!/root.properties");
process.destroy(); process.destroy();
} }
@Test
public void resourcesAreCopiedToWebInfClasses() throws Exception {
File war = new File("target/test-app.war");
Invocation invocation = this.cli.invoke("war", war.getAbsolutePath(),
"war.groovy");
invocation.await();
assertThat(war.exists()).isTrue();
ZipFile warFile = new ZipFile(war.getAbsolutePath());
try {
assertThat(warFile.getEntry("application.properties")).isNull();
assertThat(warFile.getEntry("WEB-INF/classes/application.properties")).isNotNull();
}
finally {
warFile.close();
}
}
} }

@ -13,6 +13,7 @@ class Example implements CommandLineRunner {
println getClass().getResource('/resources/resource.txt') println getClass().getResource('/resources/resource.txt')
println getClass().getResource('/static/static.txt') println getClass().getResource('/static/static.txt')
println getClass().getResource('/templates/template.txt') println getClass().getResource('/templates/template.txt')
println getClass().getResource('/root.properties')
println template('template.txt', [world:'Mama']) println template('template.txt', [world:'Mama'])
} }
} }

@ -10,6 +10,7 @@ class WarExample implements CommandLineRunner {
void run(String... args) { void run(String... args) {
println getClass().getResource('/org/apache/tomcat/InstanceManager.class') println getClass().getResource('/org/apache/tomcat/InstanceManager.class')
println getClass().getResource('/root.properties')
throw new RuntimeException("onStart error") throw new RuntimeException("onStart error")
} }

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2015 the original author or authors. * Copyright 2012-2016 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.
@ -17,6 +17,7 @@
package org.springframework.boot.cli.command.archive; package org.springframework.boot.cli.command.archive;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@ -93,7 +94,7 @@ abstract class ArchiveCommand extends OptionParsingCommand {
private final String type; private final String type;
protected final Layout layout; private final Layout layout;
private OptionSpec<String> includeOption; private OptionSpec<String> includeOption;
@ -104,6 +105,10 @@ abstract class ArchiveCommand extends OptionParsingCommand {
this.layout = layout; this.layout = layout;
} }
protected Layout getLayout() {
return this.layout;
}
@Override @Override
protected void doOptions() { protected void doOptions() {
this.includeOption = option("include", this.includeOption = option("include",
@ -284,8 +289,11 @@ abstract class ArchiveCommand extends OptionParsingCommand {
return libraries; return libraries;
} }
protected abstract void writeClasspathEntry(JarWriter writer, protected void writeClasspathEntry(JarWriter writer,
MatchedResource entry) throws IOException; MatchedResource entry) throws IOException {
writer.writeEntry(entry.getName(),
new FileInputStream(entry.getFile()));
}
protected abstract LibraryScope getLibraryScope(File file); protected abstract LibraryScope getLibraryScope(File file);

@ -17,11 +17,8 @@
package org.springframework.boot.cli.command.archive; package org.springframework.boot.cli.command.archive;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.springframework.boot.cli.command.Command; import org.springframework.boot.cli.command.Command;
import org.springframework.boot.loader.tools.JarWriter;
import org.springframework.boot.loader.tools.Layouts; import org.springframework.boot.loader.tools.Layouts;
import org.springframework.boot.loader.tools.LibraryScope; import org.springframework.boot.loader.tools.LibraryScope;
@ -30,7 +27,6 @@ import org.springframework.boot.loader.tools.LibraryScope;
* *
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Phillip Webb * @author Phillip Webb
* @author Henri Kerola
*/ */
public class JarCommand extends ArchiveCommand { public class JarCommand extends ArchiveCommand {
@ -50,13 +46,6 @@ public class JarCommand extends ArchiveCommand {
return LibraryScope.COMPILE; return LibraryScope.COMPILE;
} }
@Override
protected void writeClasspathEntry(JarWriter writer,
ResourceMatcher.MatchedResource entry) throws IOException {
writer.writeEntry(entry.getName(),
new FileInputStream(entry.getFile()));
}
} }
} }

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2015 the original author or authors. * Copyright 2012-2016 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.
@ -66,9 +66,10 @@ public class WarCommand extends ArchiveCommand {
@Override @Override
protected void writeClasspathEntry(JarWriter writer, protected void writeClasspathEntry(JarWriter writer,
ResourceMatcher.MatchedResource entry) throws IOException { ResourceMatcher.MatchedResource entry) throws IOException {
writer.writeEntry(this.layout.getClassesLocation() + entry.getName(), writer.writeEntry(getLayout().getClassesLocation() + entry.getName(),
new FileInputStream(entry.getFile())); new FileInputStream(entry.getFile()));
} }
} }
} }

Loading…
Cancel
Save