1 package com.atlassian.plugin.metadata;
2
3 import com.atlassian.plugin.PluginAccessor;
4 import org.slf4j.Logger;
5 import org.slf4j.LoggerFactory;
6
7 import java.util.Collection;
8 import java.util.HashSet;
9
10 public class DefaultRequiredPluginValidator implements RequiredPluginValidator {
11 private static final Logger log = LoggerFactory.getLogger(DefaultRequiredPluginValidator.class);
12 private final PluginAccessor pluginAccessor;
13 private final RequiredPluginProvider requiredPluginProvider;
14 private final Collection<String> errors;
15
16 public DefaultRequiredPluginValidator(final PluginAccessor pluginAccessor, final RequiredPluginProvider requiredPluginProvider) {
17 this.pluginAccessor = pluginAccessor;
18 this.requiredPluginProvider = requiredPluginProvider;
19 errors = new HashSet<>();
20 }
21
22 @Override
23 public Collection<String> validate() {
24 for (String key : requiredPluginProvider.getRequiredPluginKeys()) {
25 if (!pluginAccessor.isPluginEnabled(key)) {
26 log.error("Plugin Not Enabled: " + key);
27 errors.add(key);
28 }
29 }
30
31 for (String key : requiredPluginProvider.getRequiredModuleKeys()) {
32 if (!pluginAccessor.isPluginModuleEnabled(key)) {
33 log.error("Plugin Module Not Enabled: " + key);
34 errors.add(key);
35 }
36 }
37
38 return errors;
39 }
40 }