#ignite-556: Add other create from xml methods to Ignite.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/33e911c7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/33e911c7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/33e911c7 Branch: refs/heads/ignite-45-gridcache Commit: 33e911c7c9d7088064fc716fb51a7189a68f49c8 Parents: 8a22c32 Author: ivasilinets <ivasilin...@gridgain.com> Authored: Mon Mar 23 14:23:54 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Mon Mar 23 14:23:54 2015 +0300 ---------------------------------------------------------------------- .../src/main/java/org/apache/ignite/Ignite.java | 56 +++++++++- .../apache/ignite/internal/IgniteKernal.java | 101 ++++++++++++++----- .../spring/IgniteSpringProcessor.java | 7 +- ...CacheJdbcBlobStoreMultithreadedSelfTest.java | 2 +- .../GridProjectionForCachesSelfTest.java | 2 +- .../discovery/GridDiscoveryManagerSelfTest.java | 4 +- .../cache/GridCacheClearLocallySelfTest.java | 2 +- .../cache/IgniteDynamicCacheStartSelfTest.java | 6 +- .../GridCacheClientModesAbstractSelfTest.java | 2 +- ...idCacheNearOnlyMultiNodeFullApiSelfTest.java | 2 +- .../near/GridCacheNearOnlyTopologySelfTest.java | 8 +- ...heNearOnlyLruNearEvictionPolicySelfTest.java | 2 +- .../ignite/testframework/junits/IgniteMock.java | 31 +++++- .../igfs/IgfsNearOnlyMultiNodeSelfTest.java | 4 +- .../org/apache/ignite/IgniteSpringBean.java | 45 ++++++++- .../spring/IgniteSpringProcessorImpl.java | 27 ++--- 16 files changed, 225 insertions(+), 76 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/main/java/org/apache/ignite/Ignite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/Ignite.java b/modules/core/src/main/java/org/apache/ignite/Ignite.java index ff4eea6..84ae15f 100644 --- a/modules/core/src/main/java/org/apache/ignite/Ignite.java +++ b/modules/core/src/main/java/org/apache/ignite/Ignite.java @@ -205,7 +205,7 @@ public interface Ignite extends AutoCloseable { * @param springCfgPath Spring XML configuration file path or URL. * @return Instance of started cache. */ - public <K, V> IgniteCache<K, V> createCache(@Nullable String springCfgPath) throws IgniteCheckedException; + public <K, V> IgniteCache<K, V> createCache(String springCfgPath); /** * Gets existing cache with the given name or creates new one with the given configuration. @@ -216,6 +216,14 @@ public interface Ignite extends AutoCloseable { public <K, V> IgniteCache<K, V> getOrCreateCache(CacheConfiguration<K, V> cacheCfg); /** + * Gets existing cache with the given name or creates new one with the given configuration. + * + * @param springCfgPath Spring XML configuration file path or URL. + * @return Existing or newly created cache. + */ + public <K, V> IgniteCache<K, V> getOrCreateCache(String springCfgPath); + + /** * Dynamically starts new cache with the given cache configuration. * <p> * If local node is an affinity node, this method will return the instance of started cache. @@ -230,6 +238,18 @@ public interface Ignite extends AutoCloseable { NearCacheConfiguration<K, V> nearCfg); /** + * Dynamically starts new cache with the given cache configuration. + * <p> + * If local node is an affinity node, this method will return the instance of started cache. + * Otherwise, it will create a near cache with the given configuration on local node. + * + * @param springCfgPath Spring XML configuration file for cache path or URL. + * @param nearSpringCfgPath Spring XML configuration file for near cache path or URL. + * @return Instance of started cache. + */ + public <K, V> IgniteCache<K, V> createCache(String springCfgPath, String nearSpringCfgPath); + + /** * Gets existing cache with the given cache configuration or creates one if it does not exist. * * @param cacheCfg Cache configuration. @@ -239,14 +259,35 @@ public interface Ignite extends AutoCloseable { public <K, V> IgniteCache<K, V> getOrCreateCache(CacheConfiguration<K, V> cacheCfg, NearCacheConfiguration<K, V> nearCfg); /** + * Gets existing cache with the given cache configuration or creates one if it does not exist. + * + * @param springCfgPath Spring XML configuration file for cache path or URL. + * @param nearSpringCfgPath Spring XML configuration file for near cache path or URL. + * @return {@code IgniteCache} instance. + */ + public <K, V> IgniteCache<K, V> getOrCreateCache(String springCfgPath, String nearSpringCfgPath); + + /** * Starts a near cache on local node if cache was previously started with one of the * {@link #createCache(CacheConfiguration)} or {@link #createCache(CacheConfiguration, NearCacheConfiguration)} * methods. * + * @param cacheName Cache name. * @param nearCfg Near cache configuration. * @return Cache instance. */ - public <K, V> IgniteCache<K, V> createCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg); + public <K, V> IgniteCache<K, V> createNearCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg); + + /** + * Starts a near cache on local node if cache was previously started with one of the + * {@link #createCache(CacheConfiguration)} or {@link #createCache(CacheConfiguration, NearCacheConfiguration)} + * methods. + * + * @param cacheName Cache name. + * @param nearSpringCfgPath Spring XML configuration file for near cache path or URL. + * @return Cache instance. + */ + public <K, V> IgniteCache<K, V> createNearCache(@Nullable String cacheName, String nearSpringCfgPath); /** * Gets existing near cache with the given name or creates a new one. @@ -255,7 +296,16 @@ public interface Ignite extends AutoCloseable { * @param nearCfg Near configuration. * @return {@code IgniteCache} instance. */ - public <K, V> IgniteCache<K, V> getOrCreateCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg); + public <K, V> IgniteCache<K, V> getOrCreateNearCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg); + + /** + * Gets existing near cache with the given name or creates a new one. + * + * @param cacheName Cache name. + * @param nearSpringCfgPath Spring XML configuration file for near cache path or URL. + * @return {@code IgniteCache} instance. + */ + public <K, V> IgniteCache<K, V> getOrCreateNearCache(@Nullable String cacheName, String nearSpringCfgPath); /** * Stops dynamically started cache. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java index d1f3f99..6a8ae43 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java @@ -2276,26 +2276,8 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { } /** {@inheritDoc} */ - public <K, V> IgniteCache<K, V> createCache(@Nullable String springCfgPath) throws IgniteCheckedException { - if (springCfgPath == null) { - return createCache((CacheConfiguration) null); - } - else { - URL url = U.resolveSpringUrl(springCfgPath); - - IgniteSpringProcessor spring = SPRING.create(false); - - IgniteBiTuple<Collection<CacheConfiguration>, ? extends GridSpringResourceContext> cfgMap = - spring.loadCacheConfigurations(url); - - if (cfgMap.size() != 1) - throw new IgniteCheckedException("File " + url.toString() + " should have one cache configuration"); - - for (CacheConfiguration cfg : cfgMap.get1()) - return createCache(cfg); - } - - return null; + @Override public <K, V> IgniteCache<K, V> createCache(String springCfgPath) { + return createCache(getCacheConfiguration(springCfgPath)); } /** {@inheritDoc} */ @@ -2318,6 +2300,11 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { } /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> getOrCreateCache(String springCfgPath) { + return getOrCreateCache(getCacheConfiguration(springCfgPath)); + } + + /** {@inheritDoc} */ @Override public <K, V> IgniteCache<K, V> createCache( CacheConfiguration<K, V> cacheCfg, NearCacheConfiguration<K, V> nearCfg @@ -2341,7 +2328,13 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { } /** {@inheritDoc} */ - @Override public <K, V> IgniteCache<K, V> getOrCreateCache(CacheConfiguration<K, V> cacheCfg, NearCacheConfiguration<K, V> nearCfg) { + @Override public <K, V> IgniteCache<K, V> createCache(String springCfgPath, String nearSpringCfgPath) { + return createCache(getCacheConfiguration(springCfgPath), getNearCacheConfiguration(nearSpringCfgPath)); + } + + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> getOrCreateCache(CacheConfiguration<K, V> cacheCfg, + NearCacheConfiguration<K, V> nearCfg) { A.notNull(cacheCfg, "cacheCfg"); A.notNull(nearCfg, "nearCfg"); @@ -2361,7 +2354,12 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { } /** {@inheritDoc} */ - @Override public <K, V> IgniteCache<K, V> createCache(String cacheName, NearCacheConfiguration<K, V> nearCfg) { + @Override public <K, V> IgniteCache<K, V> getOrCreateCache(String springCfgPath, String nearSpringCfgPath) { + return getOrCreateCache(getCacheConfiguration(springCfgPath), getNearCacheConfiguration(nearSpringCfgPath)); + } + + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> createNearCache(String cacheName, NearCacheConfiguration<K, V> nearCfg) { A.notNull(nearCfg, "nearCfg"); guard(); @@ -2379,8 +2377,14 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { } } - @Override - public <K, V> IgniteCache<K, V> getOrCreateCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg) { + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> createNearCache(@Nullable String cacheName, String nearSpringCfgPath) { + return createNearCache(cacheName, getNearCacheConfiguration(nearSpringCfgPath)); + } + + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> getOrCreateNearCache(@Nullable String cacheName, + NearCacheConfiguration<K, V> nearCfg) { A.notNull(nearCfg, "nearCfg"); guard(); @@ -2399,6 +2403,12 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { } /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> getOrCreateNearCache(@Nullable String cacheName, + String nearSpringCfgPath) { + return getOrCreateNearCache(cacheName, getNearCacheConfiguration(nearSpringCfgPath)); + } + + /** {@inheritDoc} */ @Override public void destroyCache(String cacheName) { guard(); @@ -2838,4 +2848,47 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { @Override public String toString() { return S.toString(IgniteKernal.class, this); } + + /** + * @param springCfgPath Spring XML configuration file path or URL. + * @return Cache configuration. + */ + private CacheConfiguration getCacheConfiguration(String springCfgPath) { + return getConfiguration(springCfgPath, CacheConfiguration.class); + } + + /** + * @param nearSpringCfgPath Spring XML configuration file path or URL. + * @return Cache configuration. + */ + private NearCacheConfiguration getNearCacheConfiguration(String nearSpringCfgPath) { + return getConfiguration(nearSpringCfgPath, NearCacheConfiguration.class); + } + + /** + * @param springCfgPath Spring XML configuration file path or URL. + * @param cl Required type of configuration. + * @return Cache configuration. + */ + private <T> T getConfiguration(String springCfgPath, Class<T> cl) { + try { + if (springCfgPath == null) + return null; + + URL url = U.resolveSpringUrl(springCfgPath); + + IgniteSpringProcessor spring = SPRING.create(false); + + IgniteBiTuple<Collection<T>, ? extends GridSpringResourceContext> cfgMap = + spring.loadConfigurations(url, cl); + + if (cfgMap.size() != 1) + throw new IgniteException("File " + url.toString() + " should have one cache configuration"); + + return F.first(cfgMap.get1()); + } + catch (IgniteCheckedException e) { + throw U.convertException(e); + } + } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/main/java/org/apache/ignite/internal/processors/spring/IgniteSpringProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/spring/IgniteSpringProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/spring/IgniteSpringProcessor.java index cd2e3d4..82ec0ac 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/spring/IgniteSpringProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/spring/IgniteSpringProcessor.java @@ -48,19 +48,20 @@ public interface IgniteSpringProcessor { URL cfgUrl, String... excludedProps) throws IgniteCheckedException; /** - * Loads all cache configurations specified within given configuration file. + * Loads all configurations with given type specified within given configuration file. * <p> * Usually Spring XML configuration file will contain only one Cache definition. Note that * Cache configuration bean(s) is retrieved form configuration file by type, so the name of * the Cache configuration bean is ignored. * * @param cfgUrl Configuration file path or URL. This cannot be {@code null}. + * @param cl Required type of configuration. * @return Tuple containing all loaded configurations and Spring context used to load them. * @throws IgniteCheckedException If configuration could not be * read. */ - public IgniteBiTuple<Collection<CacheConfiguration>, ? extends GridSpringResourceContext> loadCacheConfigurations( - URL cfgUrl) throws IgniteCheckedException; + public <T> IgniteBiTuple<Collection<T>, ? extends GridSpringResourceContext> loadConfigurations( + URL cfgUrl, Class<T> cl) throws IgniteCheckedException; /** * Loads bean instances that match the given types from given configuration file. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java index b656db4..d3bfb8d 100644 --- a/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/cache/store/jdbc/GridCacheJdbcBlobStoreMultithreadedSelfTest.java @@ -64,7 +64,7 @@ public class GridCacheJdbcBlobStoreMultithreadedSelfTest extends GridCommonAbstr Ignite grid = startGrid(GRID_CNT - 2); - grid.createCache((String)null, new NearCacheConfiguration()); + grid.createNearCache((String) null, new NearCacheConfiguration()); grid = startGrid(GRID_CNT - 1); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/test/java/org/apache/ignite/internal/GridProjectionForCachesSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridProjectionForCachesSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridProjectionForCachesSelfTest.java index d0a01ec..af102c6 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/GridProjectionForCachesSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/GridProjectionForCachesSelfTest.java @@ -99,7 +99,7 @@ public class GridProjectionForCachesSelfTest extends GridCommonAbstractTest { for (int i = 0; i < 5; i++) startGrid(i); - grid(1).createCache(CACHE_NAME, new NearCacheConfiguration()); + grid(1).createNearCache(CACHE_NAME, new NearCacheConfiguration()); grid(2).jcache(null); grid(3).jcache(null); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java index 7307438..4a6a4eb 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManagerSelfTest.java @@ -99,9 +99,9 @@ public class GridDiscoveryManagerSelfTest extends GridCommonAbstractTest { IgniteKernal g1 = (IgniteKernal)startGrid(1); // NEAR_ONLY cache. - grid(1).createCache((String)null, new NearCacheConfiguration()); + grid(1).createNearCache((String) null, new NearCacheConfiguration()); - grid(1).createCache(CACHE_NAME, new NearCacheConfiguration()); + grid(1).createNearCache(CACHE_NAME, new NearCacheConfiguration()); assertFalse(g0.context().discovery().hasNearCache(CACHE_NAME, one)); assertTrue(g0.context().discovery().hasNearCache(CACHE_NAME, two)); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearLocallySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearLocallySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearLocallySelfTest.java index 11e31e9..1c6c7e9 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearLocallySelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearLocallySelfTest.java @@ -148,7 +148,7 @@ public class GridCacheClearLocallySelfTest extends GridCommonAbstractTest { if (i == 1) { NearCacheConfiguration nearCfg = new NearCacheConfiguration(); - ignite.createCache(CACHE_PARTITIONED, nearCfg); + ignite.createNearCache(CACHE_PARTITIONED, nearCfg); } if (i == 2) http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java index d9757ba..716dff4 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java @@ -706,7 +706,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest { GridTestUtils.assertThrows(log, new Callable<Object>() { @Override public Object call() throws Exception { - return grid(0).getOrCreateCache(DYNAMIC_CACHE_NAME, new NearCacheConfiguration()); + return grid(0).getOrCreateNearCache(DYNAMIC_CACHE_NAME, new NearCacheConfiguration()); } }, CacheException.class, null); @@ -719,7 +719,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest { IgniteEx nearGrid = grid(nodeCount()); nearGrid.getOrCreateCache(cfg, new NearCacheConfiguration()); - nearGrid.getOrCreateCache(DYNAMIC_CACHE_NAME, new NearCacheConfiguration()); + nearGrid.getOrCreateNearCache(DYNAMIC_CACHE_NAME, new NearCacheConfiguration()); GridCacheContext<Object, Object> nCtx = ((IgniteKernal)nearGrid) .internalCache(DYNAMIC_CACHE_NAME).context(); @@ -833,7 +833,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest { try { if (nearOnly) - ignite(idx).getOrCreateCache(DYNAMIC_CACHE_NAME, new NearCacheConfiguration<>()); + ignite(idx).getOrCreateNearCache(DYNAMIC_CACHE_NAME, new NearCacheConfiguration<>()); else ignite(idx).getOrCreateCache(cacheCfg, new NearCacheConfiguration<>()); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheClientModesAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheClientModesAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheClientModesAbstractSelfTest.java index f82b47c..8e16231 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheClientModesAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheClientModesAbstractSelfTest.java @@ -51,7 +51,7 @@ public abstract class GridCacheClientModesAbstractSelfTest extends GridCacheAbst super.beforeTestsStarted(); if (!clientOnly()) { - grid(nearOnlyGridName).createCache((String)null, new NearCacheConfiguration()); + grid(nearOnlyGridName).createNearCache((String) null, new NearCacheConfiguration()); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyMultiNodeFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyMultiNodeFullApiSelfTest.java index b744ed3..c22692f 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyMultiNodeFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyMultiNodeFullApiSelfTest.java @@ -59,7 +59,7 @@ public class GridCacheNearOnlyMultiNodeFullApiSelfTest extends GridCachePartitio for (int i = 0; i < gridCount(); i++) { if (ignite(i).configuration().isClientMode()) { if (clientHasNearCache()) - ignite(i).createCache((String)null, new NearCacheConfiguration<>()); + ignite(i).createNearCache((String) null, new NearCacheConfiguration<>()); else ignite(i).jcache(null); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java index 9c99910..95442f4 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearOnlyTopologySelfTest.java @@ -113,7 +113,7 @@ public class GridCacheNearOnlyTopologySelfTest extends GridCommonAbstractTest { Ignite ignite = startGrid(i); if (cilent) - ignite.createCache((String)null, new NearCacheConfiguration()); + ignite.createNearCache((String) null, new NearCacheConfiguration()); } for (int i = 0; i < 100; i++) @@ -135,7 +135,7 @@ public class GridCacheNearOnlyTopologySelfTest extends GridCommonAbstractTest { Ignite ignite = startGrid(i); if (cilent) - ignite.createCache((String)null, new NearCacheConfiguration()); + ignite.createNearCache((String) null, new NearCacheConfiguration()); } cache = false; @@ -166,7 +166,7 @@ public class GridCacheNearOnlyTopologySelfTest extends GridCommonAbstractTest { Ignite ignite = startGrid(i); if (cilent) - ignite.createCache((String)null, new NearCacheConfiguration()); + ignite.createNearCache((String) null, new NearCacheConfiguration()); } for (int i = 0; i < 10; i++) @@ -239,7 +239,7 @@ public class GridCacheNearOnlyTopologySelfTest extends GridCommonAbstractTest { Ignite ignite = startGrid(i); if (cilent) - ignite.createCache((String)null, new NearCacheConfiguration()); + ignite.createNearCache((String) null, new NearCacheConfiguration()); } } finally { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java index 85cd049..b7704f3 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/lru/GridCacheNearOnlyLruNearEvictionPolicySelfTest.java @@ -139,7 +139,7 @@ public class GridCacheNearOnlyLruNearEvictionPolicySelfTest extends GridCommonAb NearCacheConfiguration nearCfg = new NearCacheConfiguration(); nearCfg.setNearEvictionPolicy(new CacheLruEvictionPolicy(EVICTION_MAX_SIZE)); - grid(0).createCache((String)null, nearCfg); + grid(0).createNearCache((String) null, nearCfg); int cnt = 1000; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java index fa96112..d3405c4 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java @@ -171,7 +171,7 @@ public class IgniteMock implements Ignite { } /** {@inheritDoc} */ - @Override public <K, V> IgniteCache<K, V> createCache(@Nullable String springCfgPath) throws IgniteCheckedException { + @Override public <K, V> IgniteCache<K, V> createCache(@Nullable String springCfgPath) { return null; } @@ -181,13 +181,28 @@ public class IgniteMock implements Ignite { } /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> getOrCreateCache(String springCfgPath) { + return null; + } + + /** {@inheritDoc} */ @Override public <K, V> IgniteCache<K, V> createCache(CacheConfiguration<K, V> cacheCfg, @Nullable NearCacheConfiguration<K, V> nearCfg) { return null; } /** {@inheritDoc} */ - @Override public <K, V> IgniteCache<K, V> createCache(String cacheName, NearCacheConfiguration<K, V> nearCfg) { + @Override public <K, V> IgniteCache<K, V> createCache(String springCfgPath, String nearSpringCfgPath) { + return null; + } + + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> createNearCache(String cacheName, NearCacheConfiguration<K, V> nearCfg) { + return null; + } + + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> createNearCache(@Nullable String cacheName, String nearSpringCfgPath) { return null; } @@ -197,7 +212,17 @@ public class IgniteMock implements Ignite { } /** {@inheritDoc} */ - @Override public <K, V> IgniteCache<K, V> getOrCreateCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg) { + @Override public <K, V> IgniteCache<K, V> getOrCreateCache(String springCfgPath, String nearSpringCfgPath) { + return null; + } + + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> getOrCreateNearCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg) { + return null; + } + + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> getOrCreateNearCache(@Nullable String cacheName, String nearSpringCfgPath) { return null; } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/hadoop/src/test/java/org/apache/ignite/igfs/IgfsNearOnlyMultiNodeSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/hadoop/src/test/java/org/apache/ignite/igfs/IgfsNearOnlyMultiNodeSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/igfs/IgfsNearOnlyMultiNodeSelfTest.java index 510d3a7..d3440fc 100644 --- a/modules/hadoop/src/test/java/org/apache/ignite/igfs/IgfsNearOnlyMultiNodeSelfTest.java +++ b/modules/hadoop/src/test/java/org/apache/ignite/igfs/IgfsNearOnlyMultiNodeSelfTest.java @@ -59,9 +59,9 @@ public class IgfsNearOnlyMultiNodeSelfTest extends GridCommonAbstractTest { @Override protected void beforeTestsStarted() throws Exception { startGrids(nodeCount()); - grid(0).createCache("data", new NearCacheConfiguration()); + grid(0).createNearCache("data", new NearCacheConfiguration()); - grid(0).createCache("meta", new NearCacheConfiguration()); + grid(0).createNearCache("meta", new NearCacheConfiguration()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java ---------------------------------------------------------------------- diff --git a/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java b/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java index 4c4b194..883387c 100644 --- a/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java +++ b/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java @@ -240,7 +240,7 @@ public class IgniteSpringBean implements Ignite, DisposableBean, InitializingBea } /** {@inheritDoc} */ - @Override public <K, V> IgniteCache<K, V> createCache(@Nullable String springCfgPath) throws IgniteCheckedException { + @Override public <K, V> IgniteCache<K, V> createCache(@Nullable String springCfgPath) { assert g != null; return g.createCache(springCfgPath); @@ -254,6 +254,13 @@ public class IgniteSpringBean implements Ignite, DisposableBean, InitializingBea } /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> getOrCreateCache(String springCfgPath) { + assert g != null; + + return g.getOrCreateCache(springCfgPath); + } + + /** {@inheritDoc} */ @Override public <K, V> IgniteCache<K, V> createCache(CacheConfiguration<K, V> cacheCfg, NearCacheConfiguration<K, V> nearCfg) { assert g != null; @@ -262,6 +269,13 @@ public class IgniteSpringBean implements Ignite, DisposableBean, InitializingBea } /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> createCache(String springCfgPath, String nearSpringCfgPath) { + assert g != null; + + return g.createCache(springCfgPath, nearSpringCfgPath); + } + + /** {@inheritDoc} */ @Override public <K, V> IgniteCache<K, V> getOrCreateCache(CacheConfiguration<K, V> cacheCfg, NearCacheConfiguration<K, V> nearCfg) { assert g != null; @@ -269,17 +283,38 @@ public class IgniteSpringBean implements Ignite, DisposableBean, InitializingBea } /** {@inheritDoc} */ - @Override public <K, V> IgniteCache<K, V> createCache(String cacheName, NearCacheConfiguration<K, V> nearCfg) { + @Override public <K, V> IgniteCache<K, V> getOrCreateCache(String springCfgPath, String nearSpringCfgPath) { + assert g != null; + + return g.getOrCreateCache(springCfgPath, nearSpringCfgPath); + } + + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> createNearCache(String cacheName, NearCacheConfiguration<K, V> nearCfg) { + assert g != null; + + return g.createNearCache(cacheName, nearCfg); + } + + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> createNearCache(@Nullable String cacheName, String nearSpringCfgPath) { + assert g != null; + + return g.createNearCache(cacheName, nearSpringCfgPath); + } + + /** {@inheritDoc} */ + @Override public <K, V> IgniteCache<K, V> getOrCreateNearCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg) { assert g != null; - return g.createCache(cacheName, nearCfg); + return g.getOrCreateNearCache(cacheName, nearCfg); } /** {@inheritDoc} */ - @Override public <K, V> IgniteCache<K, V> getOrCreateCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg) { + @Override public <K, V> IgniteCache<K, V> getOrCreateNearCache(@Nullable String cacheName, String nearSpringCfgPath) { assert g != null; - return g.getOrCreateCache(cacheName, nearCfg); + return g.getOrCreateNearCache(cacheName, nearSpringCfgPath); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/33e911c7/modules/spring/src/main/java/org/apache/ignite/internal/processors/spring/IgniteSpringProcessorImpl.java ---------------------------------------------------------------------- diff --git a/modules/spring/src/main/java/org/apache/ignite/internal/processors/spring/IgniteSpringProcessorImpl.java b/modules/spring/src/main/java/org/apache/ignite/internal/processors/spring/IgniteSpringProcessorImpl.java index b068851..263ae17 100644 --- a/modules/spring/src/main/java/org/apache/ignite/internal/processors/spring/IgniteSpringProcessorImpl.java +++ b/modules/spring/src/main/java/org/apache/ignite/internal/processors/spring/IgniteSpringProcessorImpl.java @@ -78,35 +78,20 @@ public class IgniteSpringProcessorImpl implements IgniteSpringProcessor { /** {@inheritDoc} */ @Override public IgniteBiTuple<Collection<IgniteConfiguration>, ? extends GridSpringResourceContext> loadConfigurations( URL cfgUrl, String... excludedProps) throws IgniteCheckedException { - ApplicationContext springCtx = applicationContext(cfgUrl, excludedProps); - - Map<String, IgniteConfiguration> cfgMap; - - try { - cfgMap = springCtx.getBeansOfType(IgniteConfiguration.class); - } - catch (BeansException e) { - throw new IgniteCheckedException("Failed to instantiate bean [type=" + IgniteConfiguration.class + ", err=" + - e.getMessage() + ']', e); - } - - if (cfgMap == null || cfgMap.isEmpty()) - throw new IgniteCheckedException("Failed to find grid configuration in: " + cfgUrl); - - return F.t(cfgMap.values(), new GridSpringResourceContextImpl(springCtx)); + return loadConfigurations(cfgUrl, IgniteConfiguration.class); } /** {@inheritDoc} */ - @Override public IgniteBiTuple<Collection<CacheConfiguration>, ? extends GridSpringResourceContext> loadCacheConfigurations ( - URL cfgUrl) throws IgniteCheckedException { + @Override public <T> IgniteBiTuple<Collection<T>, ? extends GridSpringResourceContext> loadConfigurations( + URL cfgUrl, Class<T> cl) throws IgniteCheckedException { ApplicationContext springCtx = applicationContext(cfgUrl); - Map<String, CacheConfiguration> cfgMap; + Map<String, T> cfgMap; try { - cfgMap = springCtx.getBeansOfType(CacheConfiguration.class); + cfgMap = springCtx.getBeansOfType(cl); } catch (BeansException e) { - throw new IgniteCheckedException("Failed to instantiate bean [type=" + CacheConfiguration.class + + throw new IgniteCheckedException("Failed to instantiate bean [type=" + cl + ", err=" + e.getMessage() + ']', e); }