http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java index 9bdebb3,583e346..d513b61 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheChangeRequest.java @@@ -66,9 -66,9 +66,12 @@@ public class DynamicCacheChangeRequest /** Template configuration flag. */ private boolean template; + /** */ + private transient boolean exchangeNeeded; + + /** Start context. */ + private transient CacheStartContext startCtx; + /** * Constructor creates cache stop request. *
http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java index 63d9167,3d0f1ae..3807196 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java @@@ -17,58 -17,98 +17,91 @@@ package org.apache.ignite.internal.processors.cache; - import org.apache.ignite.*; - import org.apache.ignite.cache.*; - import org.apache.ignite.cache.affinity.*; - import org.apache.ignite.cache.store.*; - import org.apache.ignite.cluster.*; - import org.apache.ignite.configuration.*; - import org.apache.ignite.internal.*; - import org.apache.ignite.internal.managers.communication.*; - import org.apache.ignite.internal.managers.deployment.*; - import org.apache.ignite.internal.managers.discovery.*; - import org.apache.ignite.internal.managers.eventstorage.*; - import org.apache.ignite.internal.managers.swapspace.*; - import org.apache.ignite.internal.processors.affinity.*; - import org.apache.ignite.internal.processors.cache.datastructures.*; - import org.apache.ignite.internal.processors.cache.distributed.dht.*; - import org.apache.ignite.internal.processors.cache.distributed.dht.colocated.*; - import org.apache.ignite.internal.processors.cache.distributed.near.*; - import org.apache.ignite.internal.processors.cache.dr.*; - import org.apache.ignite.internal.processors.cache.jta.*; - import org.apache.ignite.internal.processors.cache.local.*; - import org.apache.ignite.internal.processors.cache.query.*; - import org.apache.ignite.internal.processors.cache.query.continuous.*; - import org.apache.ignite.internal.processors.cache.store.*; - import org.apache.ignite.internal.processors.cache.transactions.*; - import org.apache.ignite.internal.processors.cache.version.*; - import org.apache.ignite.internal.processors.cacheobject.*; - import org.apache.ignite.internal.processors.closure.*; - import org.apache.ignite.internal.processors.offheap.*; - import org.apache.ignite.internal.processors.plugin.*; - import org.apache.ignite.internal.processors.timeout.*; - import org.apache.ignite.internal.util.*; - import org.apache.ignite.internal.util.lang.*; - import org.apache.ignite.internal.util.offheap.unsafe.*; - import org.apache.ignite.internal.util.tostring.*; - import org.apache.ignite.internal.util.typedef.*; - import org.apache.ignite.internal.util.typedef.internal.*; - import org.apache.ignite.lang.*; - import org.apache.ignite.marshaller.*; + import java.io.Externalizable; + import java.io.IOException; + import java.io.InvalidObjectException; + import java.io.ObjectInput; + import java.io.ObjectOutput; + import java.io.ObjectStreamException; + import java.util.ArrayList; + import java.util.Arrays; + import java.util.Collection; + import java.util.LinkedList; + import java.util.List; + import java.util.Map; + import java.util.UUID; + import java.util.concurrent.Callable; + import java.util.concurrent.CountDownLatch; + import javax.cache.Cache; -import javax.cache.configuration.Factory; + import javax.cache.expiry.EternalExpiryPolicy; + import javax.cache.expiry.ExpiryPolicy; + import org.apache.ignite.IgniteCheckedException; + import org.apache.ignite.IgniteLogger; + import org.apache.ignite.cache.CacheInterceptor; + import org.apache.ignite.cache.CacheMode; + import org.apache.ignite.cache.affinity.AffinityKeyMapper; + import org.apache.ignite.cluster.ClusterNode; + import org.apache.ignite.configuration.CacheConfiguration; + import org.apache.ignite.configuration.IgniteConfiguration; + import org.apache.ignite.internal.GridKernalContext; + import org.apache.ignite.internal.IgniteEx; + import org.apache.ignite.internal.IgniteKernal; + import org.apache.ignite.internal.IgnitionEx; + import org.apache.ignite.internal.managers.communication.GridIoManager; + import org.apache.ignite.internal.managers.deployment.GridDeploymentManager; + import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager; + import org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager; + import org.apache.ignite.internal.managers.swapspace.GridSwapSpaceManager; + import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; + import org.apache.ignite.internal.processors.cache.datastructures.CacheDataStructuresManager; + import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter; + import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry; + import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition; + import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopology; + import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTopologyFuture; + import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTransactionalCacheAdapter; + import org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache; + import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheAdapter; + import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTransactionalCache; + import org.apache.ignite.internal.processors.cache.dr.GridCacheDrManager; + import org.apache.ignite.internal.processors.cache.jta.CacheJtaManagerAdapter; + import org.apache.ignite.internal.processors.cache.local.GridLocalCache; + import org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager; + import org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryManager; + import org.apache.ignite.internal.processors.cache.store.CacheStoreManager; + import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry; + import org.apache.ignite.internal.processors.cache.transactions.IgniteTxKey; + import org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager; + import org.apache.ignite.internal.processors.cache.version.CacheVersionConflictResolver; + import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; + import org.apache.ignite.internal.processors.cache.version.GridCacheVersionConflictContext; + import org.apache.ignite.internal.processors.cache.version.GridCacheVersionManager; + import org.apache.ignite.internal.processors.cache.version.GridCacheVersionedEntryEx; + import org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessor; + import org.apache.ignite.internal.processors.closure.GridClosureProcessor; + import org.apache.ignite.internal.processors.offheap.GridOffHeapProcessor; + import org.apache.ignite.internal.processors.plugin.CachePluginManager; + import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor; + import org.apache.ignite.internal.util.F0; + import org.apache.ignite.internal.util.lang.GridFunc; + import org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory; + import org.apache.ignite.internal.util.tostring.GridToStringExclude; + import org.apache.ignite.internal.util.typedef.C1; + import org.apache.ignite.internal.util.typedef.F; + import org.apache.ignite.internal.util.typedef.X; + import org.apache.ignite.internal.util.typedef.internal.CU; + import org.apache.ignite.internal.util.typedef.internal.GPC; + import org.apache.ignite.internal.util.typedef.internal.GPR; + import org.apache.ignite.internal.util.typedef.internal.U; + import org.apache.ignite.lang.IgniteBiTuple; + import org.apache.ignite.lang.IgnitePredicate; + import org.apache.ignite.lang.IgniteUuid; + import org.apache.ignite.marshaller.Marshaller; import org.apache.ignite.plugin.security.SecurityException; - import org.apache.ignite.plugin.security.*; -import org.apache.ignite.plugin.security.SecurityPermission; -import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.*; - import javax.cache.*; - import javax.cache.expiry.*; - import java.io.*; - import java.util.*; - import java.util.concurrent.*; - - import static org.apache.ignite.cache.CacheAtomicityMode.*; - import static org.apache.ignite.cache.CacheMemoryMode.*; - import static org.apache.ignite.cache.CacheRebalanceMode.*; - import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*; -import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC; -import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL; + import static org.apache.ignite.cache.CacheMemoryMode.OFFHEAP_TIERED; + import static org.apache.ignite.cache.CacheMemoryMode.OFFHEAP_VALUES; -import static org.apache.ignite.cache.CacheRebalanceMode.NONE; -import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC; -import static org.apache.ignite.cache.CacheWriteSynchronizationMode.PRIMARY_SYNC; /** * Cache context. http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheLoaderWriterStoreFactory.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java index 270eef4,75d4c43..dd19865 --- 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 @@@ -277,7 -340,7 +343,7 @@@ public class GridCacheProcessor extend // Suppress warning if at least one ATOMIC cache found. perf.add("Enable ATOMIC mode if not using transactions (set 'atomicityMode' to ATOMIC)", -- cfg.getAtomicityMode() == ATOMIC); ++ cfg.getAtomicityMode() == ATOMIC); // Suppress warning if at least one non-FULL_SYNC mode found. perf.add("Disable fully synchronous writes (set 'writeSynchronizationMode' to PRIMARY_SYNC or FULL_ASYNC)", @@@ -437,7 -500,7 +503,7 @@@ if (cc.getAtomicityMode() == ATOMIC) assertParameter(cc.getTransactionManagerLookupClassName() == null, -- "transaction manager can not be used with ATOMIC cache"); ++ "transaction manager can not be used with ATOMIC cache"); } /** @@@ -1186,15 -1252,17 +1262,23 @@@ { assert cfg != null; - // TODO: IGNITE-884 - Prepare all factories. - prepare(cfg, cfg.getCacheStoreFactory(), false); ++ // TODO: IGNITE-884 - Where to do prepare? + if (cfg.getCacheStoreFactory() instanceof GridCacheLoaderWriterStoreFactory) { + GridCacheLoaderWriterStoreFactory factory = (GridCacheLoaderWriterStoreFactory)cfg.getCacheStoreFactory(); + + prepare(cfg, factory.loaderFactory(), false); + prepare(cfg, factory.writerFactory(), false); + } + else + prepare(cfg, cfg.getCacheStoreFactory(), false); + - CacheStore cfgStore = cfg.getCacheStoreFactory() != null ? cfg.getCacheStoreFactory().create() : null; + CacheStartContext startCtx = startCtxs.remove(maskNull(cfg.getName())); + + if (startCtx == null) + startCtx = new CacheStartContext(ctx, cfg); + + CacheStore cfgStore = startCtx.store(); validate(ctx.config(), cfg, cacheType, cfgStore); http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridSpringResourceContext.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridSpringResourceContext.java index dfce905,37b558f..60e5a9e --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridSpringResourceContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridSpringResourceContext.java @@@ -17,9 -17,8 +17,9 @@@ package org.apache.ignite.internal.processors.resource; - import org.apache.ignite.*; - import org.apache.ignite.internal.*; - import org.jetbrains.annotations.*; + import org.apache.ignite.IgniteCheckedException; + import org.apache.ignite.internal.IgnitionEx; ++import org.jetbrains.annotations.Nullable; /** * Interface was introduced to avoid compile-time dependency on spring framework. Spring resource context @@@ -45,10 -44,4 +45,9 @@@ public interface GridSpringResourceCont * @throws IgniteCheckedException If unwrap failed. */ public Object unwrapTarget(Object target) throws IgniteCheckedException; + + /** + * @param bean Spring bean. + */ + public void autowireBean(@Nullable Object bean); } - http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/spring/src/main/java/org/apache/ignite/internal/processors/resource/GridSpringResourceContextImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/74b68f49/modules/spring/src/test/java/org/apache/ignite/testsuites/IgniteSpringTestSuite.java ----------------------------------------------------------------------