Fix various Windows related issues

Fixes gh-1168
This commit is contained in:
Phillip Webb
2014-06-25 14:31:41 -07:00
parent 43cf95b845
commit 1f36d4657f
9 changed files with 53 additions and 12 deletions

View File

@@ -33,6 +33,7 @@ import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.util.AntPathMatcher;
import org.springframework.util.StringUtils;
/**
* Used to match resources for inclusion in a CLI application's jar file
@@ -186,8 +187,8 @@ class ResourceMatcher {
}
private MatchedResource(File rootFolder, File file) {
this.name = file.getAbsolutePath().substring(
rootFolder.getAbsolutePath().length() + 1);
this.name = StringUtils.cleanPath(file.getAbsolutePath().substring(
rootFolder.getAbsolutePath().length() + 1));
this.file = file;
this.root = false;
}

View File

@@ -38,6 +38,7 @@ import org.codehaus.groovy.control.CompilerConfiguration;
import org.codehaus.groovy.control.SourceUnit;
import org.springframework.util.Assert;
import org.springframework.util.FileCopyUtils;
import org.springframework.util.StringUtils;
/**
* Extension of the {@link GroovyClassLoader} with support for obtaining '.class' files as
@@ -222,6 +223,7 @@ public class ExtendedGroovyClassLoader extends GroovyClassLoader {
}
private boolean isGroovyJar(String entry) {
entry = StringUtils.cleanPath(entry);
for (String jarPrefix : GROOVY_JARS_PREFIXES) {
if (entry.contains("/" + jarPrefix + "-")) {
return true;

View File

@@ -26,9 +26,17 @@ import org.eclipse.aether.transfer.TransferResource;
import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.endsWith;
import static org.hamcrest.Matchers.startsWith;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertThat;
/**
* Tests for {@link DetailedProgressReporter}.
*
* @author Andy Wilkinson
*/
public final class DetailedProgressReporterTests {
private static final String REPOSITORY = "http://my.repository.com/";
@@ -63,13 +71,13 @@ public final class DetailedProgressReporterTests {
public void downloaded() throws InterruptedException {
// Ensure some transfer time
Thread.sleep(100);
TransferEvent completedEvent = new TransferEvent.Builder(this.session,
this.resource).addTransferredBytes(4096).build();
this.session.getTransferListener().transferSucceeded(completedEvent);
assertTrue(new String(this.baos.toByteArray()).matches(String.format(
"Downloaded: %s%s \\(4KB at [0-9]+(\\.|,)[0-9]KB/sec\\)\\n", REPOSITORY,
ARTIFACT)));
String message = new String(this.baos.toByteArray()).replace("\\", "/");
assertThat(message, startsWith("Downloaded: " + REPOSITORY + ARTIFACT));
assertThat(message, containsString("4KB at"));
assertThat(message, containsString("KB/sec"));
assertThat(message, endsWith("\n"));
}
}