mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-14 01:15:44 +01:00
Merged in bugfix/ignore_old_plugin_dir (pull request #296)
ignore old plugins folder
This commit is contained in:
@@ -59,6 +59,9 @@ import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import static java.util.stream.Collectors.toList;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
@@ -68,6 +71,7 @@ import java.util.Set;
|
||||
*
|
||||
* TODO don't mix nio and io
|
||||
*/
|
||||
@SuppressWarnings("squid:S3725") // performance is not critical, for this type of checks
|
||||
public final class PluginProcessor
|
||||
{
|
||||
|
||||
@@ -171,7 +175,11 @@ public final class PluginProcessor
|
||||
|
||||
extract(archives);
|
||||
|
||||
List<Path> dirs = collectPluginDirectories(pluginDirectory);
|
||||
List<Path> dirs =
|
||||
collectPluginDirectories(pluginDirectory)
|
||||
.stream()
|
||||
.filter(isPluginDirectory())
|
||||
.collect(toList());
|
||||
|
||||
logger.debug("process {} directories: {}", dirs.size(), dirs);
|
||||
|
||||
@@ -194,6 +202,10 @@ public final class PluginProcessor
|
||||
return ImmutableSet.copyOf(wrappers);
|
||||
}
|
||||
|
||||
private Predicate<Path> isPluginDirectory() {
|
||||
return dir -> Files.exists(dir.resolve(DIRECTORY_METAINF).resolve("scm").resolve("plugin.xml"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
|
||||
@@ -134,6 +134,16 @@ public class PluginProcessorTest
|
||||
assertThat(plugin.getId(), is(PLUGIN_A.id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldCollectPluginsAndDoNotFailOnNonPluginDirectories() throws IOException {
|
||||
new File(pluginDirectory, "some-directory").mkdirs();
|
||||
|
||||
copySmp(PLUGIN_A);
|
||||
PluginWrapper plugin = collectAndGetFirst();
|
||||
|
||||
assertThat(plugin.getId(), is(PLUGIN_A.id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user