Merged in bugfix/ignore_old_plugin_dir (pull request #296)

ignore old plugins folder
This commit is contained in:
Sebastian Sdorra
2019-08-27 12:30:25 +00:00
2 changed files with 23 additions and 1 deletions

View File

@@ -59,6 +59,9 @@ import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.function.Predicate;
import static java.util.stream.Collectors.toList;
//~--- JDK imports ------------------------------------------------------------ //~--- JDK imports ------------------------------------------------------------
@@ -68,6 +71,7 @@ import java.util.Set;
* *
* TODO don't mix nio and io * TODO don't mix nio and io
*/ */
@SuppressWarnings("squid:S3725") // performance is not critical, for this type of checks
public final class PluginProcessor public final class PluginProcessor
{ {
@@ -171,7 +175,11 @@ public final class PluginProcessor
extract(archives); extract(archives);
List<Path> dirs = collectPluginDirectories(pluginDirectory); List<Path> dirs =
collectPluginDirectories(pluginDirectory)
.stream()
.filter(isPluginDirectory())
.collect(toList());
logger.debug("process {} directories: {}", dirs.size(), dirs); logger.debug("process {} directories: {}", dirs.size(), dirs);
@@ -194,6 +202,10 @@ public final class PluginProcessor
return ImmutableSet.copyOf(wrappers); return ImmutableSet.copyOf(wrappers);
} }
private Predicate<Path> isPluginDirectory() {
return dir -> Files.exists(dir.resolve(DIRECTORY_METAINF).resolve("scm").resolve("plugin.xml"));
}
/** /**
* Method description * Method description
* *

View File

@@ -134,6 +134,16 @@ public class PluginProcessorTest
assertThat(plugin.getId(), is(PLUGIN_A.id)); 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 * Method description
* *