Allow file:// URLs for file monitoring in git profile (#1385)
* Allow file:// URLs for file monitoring in git profile Fixes #1374 * Add tests for fix #1374
This commit is contained in:
committed by
Ryan Baxter
parent
191aa69395
commit
8e4cc16e75
@@ -44,6 +44,7 @@ import org.springframework.context.ResourceLoaderAware;
|
||||
import org.springframework.context.SmartLifecycle;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.core.io.FileUrlResource;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.core.io.ResourceLoader;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
@@ -194,7 +195,8 @@ public class FileMonitorConfiguration implements SmartLifecycle, ResourceLoaderA
|
||||
for (AbstractScmEnvironmentRepository repository : scmRepositories) {
|
||||
repositoryUri = repository.getUri();
|
||||
Resource resource = this.resourceLoader.getResource(repositoryUri);
|
||||
if (resource instanceof FileSystemResource) {
|
||||
if (resource instanceof FileSystemResource
|
||||
|| resource instanceof FileUrlResource) {
|
||||
paths.add(Paths.get(resource.getURI()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,12 +40,15 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* @author Gilles Robert
|
||||
* @author Stefan Pfeiffer
|
||||
*
|
||||
*/
|
||||
public class FileMonitorConfigurationTest {
|
||||
|
||||
private static final String SAMPLE_PATH = "resources/pathsamples";
|
||||
|
||||
private static final String SAMPLE_FILE_URL = "file:///test";
|
||||
|
||||
private FileMonitorConfiguration fileMonitorConfiguration = new FileMonitorConfiguration();
|
||||
|
||||
private List<AbstractScmEnvironmentRepository> repositories = new ArrayList<>();
|
||||
@@ -117,6 +120,37 @@ public class FileMonitorConfigurationTest {
|
||||
assertOnDirectory(2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStart_withOneFileUrlScmRepository() {
|
||||
// given
|
||||
AbstractScmEnvironmentRepository repository = createScmEnvironmentRepository(
|
||||
SAMPLE_FILE_URL);
|
||||
addScmRepository(repository);
|
||||
|
||||
// when
|
||||
fileMonitorConfiguration.start();
|
||||
|
||||
// then
|
||||
assertOnDirectory(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStart_withTwoMixedPathAndFileUrlScmRepositories() {
|
||||
// given
|
||||
AbstractScmEnvironmentRepository repository = createScmEnvironmentRepository(
|
||||
SAMPLE_PATH);
|
||||
AbstractScmEnvironmentRepository secondRepository = createScmEnvironmentRepository(
|
||||
SAMPLE_FILE_URL);
|
||||
addScmRepository(repository);
|
||||
addScmRepository(secondRepository);
|
||||
|
||||
// when
|
||||
fileMonitorConfiguration.start();
|
||||
|
||||
// then
|
||||
assertOnDirectory(2);
|
||||
}
|
||||
|
||||
private void addScmRepository(AbstractScmEnvironmentRepository... repository) {
|
||||
repositories.addAll(Arrays.asList(repository));
|
||||
ReflectionTestUtils.setField(fileMonitorConfiguration, "scmRepositories",
|
||||
|
||||
Reference in New Issue
Block a user