# ignite-707
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/5d1815ef Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/5d1815ef Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/5d1815ef Branch: refs/heads/gg-10046 Commit: 5d1815ef5eb2b0dbb929136823fbc424bc9b094c Parents: 2412422 Author: sboikov <sboi...@gridgain.com> Authored: Thu Apr 9 13:15:41 2015 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Thu Apr 9 13:15:41 2015 +0300 ---------------------------------------------------------------------- .../processors/plugin/IgnitePluginProcessor.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5d1815ef/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java index 8d71ad7..0b9ca5e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java @@ -27,6 +27,7 @@ import org.apache.ignite.plugin.*; import org.jetbrains.annotations.*; import java.lang.reflect.*; +import java.security.*; import java.util.*; /** @@ -53,9 +54,20 @@ public class IgnitePluginProcessor extends GridProcessorAdapter { ExtensionRegistryImpl registry = new ExtensionRegistryImpl(); - ServiceLoader<PluginProvider> ldr = ServiceLoader.load(PluginProvider.class); + List<PluginProvider> providers = AccessController.doPrivileged(new PrivilegedAction<List<PluginProvider>>() { + @Override public List<PluginProvider> run() { + List<PluginProvider> providers = new ArrayList<>(); - for (PluginProvider provider : ldr) { + ServiceLoader<PluginProvider> ldr = ServiceLoader.load(PluginProvider.class); + + for (PluginProvider provider : ldr) + providers.add(provider); + + return providers; + } + }); + + for (PluginProvider provider : providers) { GridPluginContext pluginCtx = new GridPluginContext(ctx, cfg); if (F.isEmpty(provider.name()))