Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-180 [created] 93bdbe28e


#ignite-180: wip.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/67eb8da9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/67eb8da9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/67eb8da9

Branch: refs/heads/ignite-180
Commit: 67eb8da99e02b52e9f78015773d9614bff65828a
Parents: dd944bf
Author: ivasilinets <[email protected]>
Authored: Mon Apr 6 14:27:56 2015 +0300
Committer: ivasilinets <[email protected]>
Committed: Mon Apr 6 14:27:56 2015 +0300

----------------------------------------------------------------------
 .../configuration/CollectionConfiguration.java  | 38 +++++++++++++-------
 .../datastructures/DataStructuresProcessor.java | 32 ++++++++++++++---
 2 files changed, 54 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/67eb8da9/modules/core/src/main/java/org/apache/ignite/configuration/CollectionConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/configuration/CollectionConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/configuration/CollectionConfiguration.java
index f890169..7f638c1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/configuration/CollectionConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/configuration/CollectionConfiguration.java
@@ -24,8 +24,12 @@ import org.apache.ignite.internal.util.typedef.internal.*;
  * Configuration for Ignite collections.
  */
 public class CollectionConfiguration {
-    /** Cache name. */
-    private String cacheName;
+    /** Cache atomicity mode. */
+    private CacheAtomicityMode atomicityMode;
+
+    private CacheMode cacheMode;
+
+    private CacheMemoryMode memoryMode;
 
     /** Collocated flag. */
     private boolean collocated;
@@ -46,18 +50,28 @@ public class CollectionConfiguration {
         this.collocated = collocated;
     }
 
-    /**
-     * @return Cache name.
-     */
-    public String getCacheName() {
-        return cacheName;
+    public CacheAtomicityMode atomicityMode() {
+        return atomicityMode;
     }
 
-    /**
-     * @param cacheName Cache name.
-     */
-    public void setCacheName(String cacheName) {
-        this.cacheName = cacheName;
+    public void atomicityMode(CacheAtomicityMode atomicityMode) {
+        this.atomicityMode = atomicityMode;
+    }
+
+    public CacheMode cacheMode() {
+        return cacheMode;
+    }
+
+    public void cacheMode(CacheMode cacheMode) {
+        this.cacheMode = cacheMode;
+    }
+
+    public CacheMemoryMode memoryMode() {
+        return memoryMode;
+    }
+
+    public void memoryMode(CacheMemoryMode memoryMode) {
+        this.memoryMode = memoryMode;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/67eb8da9/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
index 1ef5c55..fb0e788 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
@@ -678,19 +678,43 @@ public final class DataStructuresProcessor extends 
GridProcessorAdapter {
         throws IgniteCheckedException {
         A.notNull(name, "name");
 
+        CacheConfiguration comCfg = null;
+
         if (cfg != null) {
             if (cap <= 0)
                 cap = Integer.MAX_VALUE;
 
-            if (ctx.cache().publicCache(cfg.getCacheName()) == null)
-                throw new IgniteCheckedException("Cache for collection is not 
configured: " + cfg.getCacheName());
+            ctx.gateway().readLock();
+            try{
+                for (CacheConfiguration ccfg : 
ctx.config().getCacheConfiguration()) {
+                    if (cfg.atomicityMode() == ccfg.getAtomicityMode() &&
+                        cfg.cacheMode() == ccfg.getCacheMode() &&
+                        cfg.memoryMode() == ccfg.getMemoryMode())
+                        comCfg = ccfg;
+                }
+
+                if (comCfg != null)
+                    
checkSupportsQueue(ctx.cache().internalCache(comCfg.getName()).context());
+                else {
+                    comCfg = new CacheConfiguration();
+                    comCfg.setCacheMode(cfg.cacheMode());
+                    comCfg.setAtomicityMode(cfg.atomicityMode());
+                    comCfg.setMemoryMode(cfg.memoryMode());
+                    comCfg.setName("");
 
-            
checkSupportsQueue(ctx.cache().internalCache(cfg.getCacheName()).context());
+                    ctx.grid().getOrCreateCache(comCfg);
+                }
+            }
+            finally {
+                ctx.gateway().readUnlock();
+            }
         }
 
+        assert comCfg != null;
+
         DataStructureInfo dsInfo = new DataStructureInfo(name,
             QUEUE,
-            cfg != null ? new QueueInfo(cfg.getCacheName(), 
cfg.isCollocated(), cap) : null);
+            cfg != null ? new QueueInfo(comCfg.getName(), cfg.isCollocated(), 
cap) : null);
 
         final int cap0 = cap;
 

Reply via email to