Commit 6a32519a authored by Andy Wilkinson's avatar Andy Wilkinson

Merge branch '1.2.x'

parents 3ce45c0b f761916b
/* /*
* Copyright 2012-2014 the original author or authors. * Copyright 2012-2015 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.
...@@ -30,6 +30,7 @@ import java.util.jar.Manifest; ...@@ -30,6 +30,7 @@ import java.util.jar.Manifest;
* '{@literal java -jar}'. * '{@literal java -jar}'.
* *
* @author Phillip Webb * @author Phillip Webb
* @author Andy Wilkinson
*/ */
public class Repackager { public class Repackager {
...@@ -157,7 +158,6 @@ public class Repackager { ...@@ -157,7 +158,6 @@ public class Repackager {
try { try {
final Set<String> seen = new HashSet<String>(); final Set<String> seen = new HashSet<String>();
writer.writeManifest(buildManifest(sourceJar)); writer.writeManifest(buildManifest(sourceJar));
writer.writeEntries(sourceJar);
libraries.doWithLibraries(new LibraryCallback() { libraries.doWithLibraries(new LibraryCallback() {
@Override @Override
public void library(Library library) throws IOException { public void library(Library library) throws IOException {
...@@ -176,7 +176,7 @@ public class Repackager { ...@@ -176,7 +176,7 @@ public class Repackager {
} }
} }
}); });
writer.writeEntries(sourceJar);
if (this.layout.isExecutable()) { if (this.layout.isExecutable()) {
writer.writeLoaderClasses(); writer.writeLoaderClasses();
} }
......
/* /*
* Copyright 2012-2014 the original author or authors. * Copyright 2012-2015 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.
...@@ -280,6 +280,8 @@ public class RepackagerTests { ...@@ -280,6 +280,8 @@ public class RepackagerTests {
final File libNonJarFile = this.temporaryFolder.newFile(); final File libNonJarFile = this.temporaryFolder.newFile();
FileCopyUtils.copy(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, libNonJarFile); FileCopyUtils.copy(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, libNonJarFile);
this.testJarFile.addClass("a/b/C.class", ClassWithMainMethod.class); this.testJarFile.addClass("a/b/C.class", ClassWithMainMethod.class);
this.testJarFile.addFile("lib/" + libJarFileToUnpack.getName(),
libJarFileToUnpack);
File file = this.testJarFile.getFile(); File file = this.testJarFile.getFile();
Repackager repackager = new Repackager(file); Repackager repackager = new Repackager(file);
repackager.repackage(new Libraries() { repackager.repackage(new Libraries() {
......
...@@ -22,7 +22,7 @@ new Verify.JarArchiveVerification(f, Verify.SAMPLE_APP) { ...@@ -22,7 +22,7 @@ new Verify.JarArchiveVerification(f, Verify.SAMPLE_APP) {
@Override @Override
protected void verifyZipEntries(Verify.ArchiveVerifier verifier) throws Exception { protected void verifyZipEntries(Verify.ArchiveVerifier verifier) throws Exception {
super.verifyZipEntries(verifier) super.verifyZipEntries(verifier)
verifier.hasUnpackEntry("lib/spring-core-") verifier.assertHasUnpackEntry("lib/spring-core-")
verifier.hasNonUnpackEntry("lib/spring-context-") verifier.assertHasNonUnpackEntry("lib/spring-context-")
} }
}.verify(); }.verify();
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.boot.maven.it</groupId>
<artifactId>war</artifactId>
<version>0.0.1.BUILD-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>@project.groupId@</groupId>
<artifactId>@project.artifactId@</artifactId>
<version>@project.version@</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<requiresUnpack>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
</requiresUnpack>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<archive>
<manifestEntries>
<Not-Used>Foo</Not-Used>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>@spring.version@</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>@servlet-api.version@</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
/*
* Copyright 2012-2015 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.test;
public class SampleApplication {
public static void main(String[] args) {
}
}
/*
* Copyright 2012-2015 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.io.*;
import org.springframework.boot.maven.*;
File f = new File( basedir, "target/war-0.0.1.BUILD-SNAPSHOT.war")
new Verify.WarArchiveVerification(f) {
@Override
protected void verifyZipEntries(Verify.ArchiveVerifier verifier) throws Exception {
super.verifyZipEntries(verifier)
verifier.assertHasUnpackEntry("WEB-INF/lib/spring-core-")
verifier.assertHasNonUnpackEntry("WEB-INF/lib/spring-context-")
}
}.verify()
/* /*
* Copyright 2012-2013 the original author or authors. * Copyright 2012-2015 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.
...@@ -34,6 +34,7 @@ import static org.junit.Assert.assertTrue; ...@@ -34,6 +34,7 @@ import static org.junit.Assert.assertTrue;
* Verification utility for use with maven-invoker-plugin verification scripts. * Verification utility for use with maven-invoker-plugin verification scripts.
* *
* @author Phillip Webb * @author Phillip Webb
* @author Andy Wilkinson
*/ */
public class Verify { public class Verify {
...@@ -92,11 +93,21 @@ public class Verify { ...@@ -92,11 +93,21 @@ public class Verify {
} }
} }
public boolean hasNonUnpackEntry(String entryName) { public void assertHasNonUnpackEntry(String entryName) {
assertTrue("Entry starting with " + entryName + " was an UNPACK entry",
hasNonUnpackEntry(entryName));
}
public void assertHasUnpackEntry(String entryName) {
assertTrue("Entry starting with " + entryName + " was not an UNPACK entry",
hasUnpackEntry(entryName));
}
private boolean hasNonUnpackEntry(String entryName) {
return !hasUnpackEntry(entryName); return !hasUnpackEntry(entryName);
} }
public boolean hasUnpackEntry(String entryName) { private boolean hasUnpackEntry(String entryName) {
String comment = getEntryStartingWith(entryName).getComment(); String comment = getEntryStartingWith(entryName).getComment();
return comment != null && comment.startsWith("UNPACK:"); return comment != null && comment.startsWith("UNPACK:");
} }
......
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