Repository: incubator-ignite Updated Branches: refs/heads/ignite-cacheplug-rmtvalid d6ca8a5b4 -> 9dda6bfc2
implement remote validation mechanism for CachePlugin Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/5b3c3214 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/5b3c3214 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/5b3c3214 Branch: refs/heads/ignite-cacheplug-rmtvalid Commit: 5b3c3214c02f2dbd3f975e16ecd1a505fe5722c2 Parents: d6ca8a5 Author: Artem Shutak <ashu...@gridgain.com> Authored: Thu Apr 2 18:07:00 2015 +0300 Committer: Artem Shutak <ashu...@gridgain.com> Committed: Thu Apr 2 18:07:00 2015 +0300 ---------------------------------------------------------------------- .../configuration/CacheConfiguration.java | 2 +- .../processors/cache/GridCacheProcessor.java | 25 +++++++++++++++----- .../processors/plugin/CachePluginManager.java | 1 + 3 files changed, 21 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5b3c3214/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java index 2ad4396..6de47c9 100644 --- a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java +++ b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java @@ -417,7 +417,7 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> { } /** - * Cache name. If not provided or {@code null}, then this will be considered a default + * Cache name or {@code null} if not provided, then this will be considered a default * cache which can be accessed via {@link Ignite#cache(String)} method. Otherwise, if name * is provided, the cache will be accessed via {@link Ignite#cache(String)} method. * http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5b3c3214/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java index d06e6fb..380205f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java @@ -626,7 +626,16 @@ public class GridCacheProcessor extends GridProcessorAdapter { ClusterNode locNode = ctx.discovery().localNode(); - final Map<CacheConfiguration, CachePluginManager> ccfg2PluginMgr = new HashMap<>(); + // Init cache plugin managers. + final Map<String, CachePluginManager> cache2PluginMgr = new HashMap<>(); + + for (DynamicCacheDescriptor desc : registeredCaches.values()) { + CacheConfiguration locCcfg = desc.cacheConfiguration(); + + CachePluginManager pluginMgr = new CachePluginManager(ctx, locCcfg); + + cache2PluginMgr.put(locCcfg.getName(), pluginMgr); + } if (!getBoolean(IGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK)) { for (ClusterNode n : ctx.discovery().remoteNodes()) { @@ -647,11 +656,11 @@ public class GridCacheProcessor extends GridProcessorAdapter { checkCache(locCfg, rmtCfg, n); // Check plugin cache configurations. - CachePluginManager pluginMgr = new CachePluginManager(ctx, locCfg); - + CachePluginManager pluginMgr = cache2PluginMgr.get(locCfg.getName()); + + assert pluginMgr != null : " Map=" + cache2PluginMgr; + pluginMgr.validateRemotes(rmtCfg, n); - - ccfg2PluginMgr.put(locCfg, pluginMgr); } } } @@ -672,7 +681,11 @@ public class GridCacheProcessor extends GridProcessorAdapter { if (filter.apply(locNode)) { CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(null, ccfg.getName(), ccfg); - GridCacheContext ctx = createCache(ccfg, ccfg2PluginMgr.get(ccfg), cacheObjCtx); + CachePluginManager pluginMgr = cache2PluginMgr.get(ccfg.getName()); + + assert pluginMgr != null : " Map=" + cache2PluginMgr; + + GridCacheContext ctx = createCache(ccfg, pluginMgr, cacheObjCtx); ctx.dynamicDeploymentId(desc.deploymentId()); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5b3c3214/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/CachePluginManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/CachePluginManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/CachePluginManager.java index 3496acd..96e5054 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/CachePluginManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/CachePluginManager.java @@ -117,6 +117,7 @@ public class CachePluginManager extends GridCacheManagerAdapter { * @param rmtNode Remote rmtNode. * @throws IgniteCheckedException If failed. */ + @SuppressWarnings("unchecked") public void validateRemotes(CacheConfiguration rmtCfg, ClusterNode rmtNode) throws IgniteCheckedException { for (Map.Entry<CachePluginContext, CachePluginProvider> entry : providersMap.entrySet()) { CachePluginContext cctx = entry.getKey();