You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2016/01/19 07:42:35 UTC

[1/2] ignite git commit: IGNITE-843 WIP reworking import domain model and rename rename metadata to domain model.

Repository: ignite
Updated Branches:
  refs/heads/ignite-843-rc2 11781de44 -> dd05e1b33


http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
index 840dcc2..cb41ea8 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
@@ -765,17 +765,17 @@ $generatorXml.cacheQuery = function(cache, res) {
     $generatorXml.property(res, cache, 'sqlOnheapRowCacheSize');
     $generatorXml.property(res, cache, 'longQueryWarningTimeout');
 
-    var indexedTypes = _.filter(cache.metadatas, function (meta) {
-        return meta.queryMetadata === 'Annotations'
+    var indexedTypes = _.filter(cache.domains, function (domain) {
+        return domain.queryMetadata === 'Annotations'
     });
 
     if (indexedTypes.length > 0) {
         res.startBlock('<property name="indexedTypes">');
         res.startBlock('<list>');
 
-        _.forEach(indexedTypes, function(meta) {
-            res.line('<value>' + $dataStructures.fullClassName(meta.keyType) + '</value>');
-            res.line('<value>' + $dataStructures.fullClassName(meta.valueType) + '</value>');
+        _.forEach(indexedTypes, function(domain) {
+            res.line('<value>' + $dataStructures.fullClassName(domain.keyType) + '</value>');
+            res.line('<value>' + $dataStructures.fullClassName(domain.valueType) + '</value>');
         });
 
         res.endBlock('</list>');
@@ -794,7 +794,7 @@ $generatorXml.cacheQuery = function(cache, res) {
 };
 
 // Generate cache store group.
-$generatorXml.cacheStore = function(cache, metadatas, res) {
+$generatorXml.cacheStore = function(cache, domains, res) {
     if (!res)
         res = $generatorCommon.builder();
 
@@ -814,23 +814,23 @@ $generatorXml.cacheStore = function(cache, metadatas, res) {
                 res.line('<bean class="' + $generatorCommon.jdbcDialectClassName(storeFactory.dialect) + '"/>');
                 res.endBlock('</property>');
 
-                var metaConfigs = _.filter(metadatas, function (meta) {
-                    return $commonUtils.isDefinedAndNotEmpty(meta.databaseTable);
+                var domainConfigs = _.filter(domains, function (domain) {
+                    return $commonUtils.isDefinedAndNotEmpty(domain.databaseTable);
                 });
 
-                if ($commonUtils.isDefinedAndNotEmpty(metaConfigs)) {
+                if ($commonUtils.isDefinedAndNotEmpty(domainConfigs)) {
                     res.startBlock('<property name="types">');
                     res.startBlock('<list>');
 
-                    _.forEach(metaConfigs, function (meta) {
+                    _.forEach(domainConfigs, function (domain) {
                         res.startBlock('<bean class="org.apache.ignite.cache.store.jdbc.JdbcType">');
 
                         $generatorXml.property(res, cache, 'name', 'cacheName');
 
-                        $generatorXml.classNameProperty(res, meta, 'keyType');
-                        $generatorXml.property(res, meta, 'valueType');
+                        $generatorXml.classNameProperty(res, domain, 'keyType');
+                        $generatorXml.property(res, domain, 'valueType');
 
-                        $generatorXml.metadataStore(meta, res);
+                        $generatorXml.domainStore(domain, res);
 
                         res.endBlock('</bean>');
                     });
@@ -988,8 +988,8 @@ $generatorXml.cacheStatistics = function(cache, res) {
 };
 
 // Generate domain model query fields.
-$generatorXml.metadataQueryFields = function (res, meta) {
-    var fields = meta.fields;
+$generatorXml.domainModelQueryFields = function (res, domain) {
+    var fields = domain.fields;
 
     if (fields && fields.length > 0) {
         res.emptyLineIfNeeded();
@@ -1009,8 +1009,8 @@ $generatorXml.metadataQueryFields = function (res, meta) {
 };
 
 // Generate domain model query fields.
-$generatorXml.metadataQueryAliases = function (res, meta) {
-    var aliases = meta.aliases;
+$generatorXml.domainModelQueryAliases = function (res, domain) {
+    var aliases = domain.aliases;
 
     if (aliases && aliases.length > 0) {
         res.emptyLineIfNeeded();
@@ -1030,8 +1030,8 @@ $generatorXml.metadataQueryAliases = function (res, meta) {
 };
 
 // Generate domain model indexes.
-$generatorXml.metadataQueryIndexes = function (res, meta) {
-    var indexes = meta.indexes;
+$generatorXml.domainModelQueryIndexes = function (res, domain) {
+    var indexes = domain.indexes;
 
     if (indexes && indexes.length > 0) {
         res.emptyLineIfNeeded();
@@ -1070,8 +1070,8 @@ $generatorXml.metadataQueryIndexes = function (res, meta) {
 };
 
 // Generate domain model db fields.
-$generatorXml.metadataDatabaseFields = function (res, meta, fieldProp) {
-    var fields = meta[fieldProp];
+$generatorXml.domainModelDatabaseFields = function (res, domain, fieldProp) {
+    var fields = domain[fieldProp];
 
     if (fields && fields.length > 0) {
         res.emptyLineIfNeeded();
@@ -1104,12 +1104,12 @@ $generatorXml.metadataDatabaseFields = function (res, meta, fieldProp) {
 };
 
 // Generate domain model general group.
-$generatorXml.metadataGeneral = function(meta, res) {
+$generatorXml.domainModelGeneral = function(domain, res) {
     if (!res)
         res = $generatorCommon.builder();
 
-    $generatorXml.classNameProperty(res, meta, 'keyType');
-    $generatorXml.property(res, meta, 'valueType');
+    $generatorXml.classNameProperty(res, domain, 'keyType');
+    $generatorXml.property(res, domain, 'valueType');
 
     res.needEmptyLine = true;
 
@@ -1117,16 +1117,14 @@ $generatorXml.metadataGeneral = function(meta, res) {
 };
 
 // Generate domain model for query group.
-$generatorXml.metadataQuery = function(meta, res) {
+$generatorXml.domainModelQuery = function(domain, res) {
     if (!res)
         res = $generatorCommon.builder();
 
-    if ($generatorCommon.domainQueryMetadata(meta) === 'Configuration') {
-        $generatorXml.metadataQueryFields(res, meta);
-
-        $generatorXml.metadataQueryAliases(res, meta);
-
-        $generatorXml.metadataQueryIndexes(res, meta);
+    if ($generatorCommon.domainQueryMetadata(domain) === 'Configuration') {
+        $generatorXml.domainModelQueryFields(res, domain);
+        $generatorXml.domainModelQueryAliases(res, domain);
+        $generatorXml.domainModelQueryIndexes(res, domain);
 
         res.needEmptyLine = true;
     }
@@ -1135,35 +1133,35 @@ $generatorXml.metadataQuery = function(meta, res) {
 };
 
 // Generate domain model for store group.
-$generatorXml.metadataStore = function(meta, res) {
+$generatorXml.domainStore = function(domain, res) {
     if (!res)
         res = $generatorCommon.builder();
 
-    $generatorXml.property(res, meta, 'databaseSchema');
-    $generatorXml.property(res, meta, 'databaseTable');
+    $generatorXml.property(res, domain, 'databaseSchema');
+    $generatorXml.property(res, domain, 'databaseTable');
 
     res.needEmptyLine = true;
 
-    if (!$dataStructures.isJavaBuiltInClass(meta.keyType))
-        $generatorXml.metadataDatabaseFields(res, meta, 'keyFields');
+    if (!$dataStructures.isJavaBuiltInClass(domain.keyType))
+        $generatorXml.domainModelDatabaseFields(res, domain, 'keyFields');
 
-    $generatorXml.metadataDatabaseFields(res, meta, 'valueFields');
+    $generatorXml.domainModelDatabaseFields(res, domain, 'valueFields');
 
     res.needEmptyLine = true;
 
     return res;
 };
 
-$generatorXml.cacheQueryMetadata = function(meta, res) {
+$generatorXml.cacheQueryMetadata = function(domain, res) {
     if (!res)
         res = $generatorCommon.builder();
 
     res.startBlock('<bean class="org.apache.ignite.cache.QueryEntity">');
 
-    $generatorXml.classNameProperty(res, meta, 'keyType');
-    $generatorXml.property(res, meta, 'valueType');
+    $generatorXml.classNameProperty(res, domain, 'keyType');
+    $generatorXml.property(res, domain, 'valueType');
 
-    $generatorXml.metadataQuery(meta, res);
+    $generatorXml.domainModelQuery(domain, res);
 
     res.endBlock('</bean>');
 
@@ -1173,23 +1171,23 @@ $generatorXml.cacheQueryMetadata = function(meta, res) {
 };
 
 // Generate domain models configs.
-$generatorXml.cacheMetadatas = function(metadatas, res) {
+$generatorXml.cacheDomains = function(domains, res) {
     if (!res)
         res = $generatorCommon.builder();
 
-    var metaConfigs = _.filter(metadatas, function (meta) {
-        return $generatorCommon.domainQueryMetadata(meta) === 'Configuration' &&
-            $commonUtils.isDefinedAndNotEmpty(meta.fields);
+    var domainConfigs = _.filter(domains, function (domain) {
+        return $generatorCommon.domainQueryMetadata(domain) === 'Configuration' &&
+            $commonUtils.isDefinedAndNotEmpty(domain.fields);
     });
 
-    if ($commonUtils.isDefinedAndNotEmpty(metaConfigs)) {
+    if ($commonUtils.isDefinedAndNotEmpty(domainConfigs)) {
         res.emptyLineIfNeeded();
 
         res.startBlock('<property name="queryEntities">');
         res.startBlock('<list>');
 
-        _.forEach(metaConfigs, function (meta) {
-            $generatorXml.cacheQueryMetadata(meta, res);
+        _.forEach(domainConfigs, function (domain) {
+            $generatorXml.cacheQueryMetadata(domain, res);
         });
 
         res.endBlock('</list>');
@@ -1219,22 +1217,14 @@ $generatorXml.cacheConfiguration = function(cache, res) {
         res = $generatorCommon.builder();
 
     $generatorXml.cacheGeneral(cache, res);
-
     $generatorXml.cacheMemory(cache, res);
-
     $generatorXml.cacheQuery(cache, res);
-
-    $generatorXml.cacheStore(cache, cache.metadatas, res);
-
+    $generatorXml.cacheStore(cache, cache.domains, res);
     $generatorXml.cacheConcurrency(cache, res);
-
     $generatorXml.cacheRebalance(cache, res);
-
     $generatorXml.cacheServerNearCache(cache, res);
-
     $generatorXml.cacheStatistics(cache, res);
-
-    $generatorXml.cacheMetadatas(cache.metadatas, res);
+    $generatorXml.cacheDomains(cache.domains, res);
 
     return res;
 };

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/routes/admin.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/admin.js b/modules/control-center-web/src/main/js/routes/admin.js
index 6d948f6..8c02507 100644
--- a/modules/control-center-web/src/main/js/routes/admin.js
+++ b/modules/control-center-web/src/main/js/routes/admin.js
@@ -46,7 +46,7 @@ router.post('/remove', function (req, res) {
             _.forEach(spaces, function (space) {
                 db.Cluster.remove({space: space._id}).exec();
                 db.Cache.remove({space: space._id}).exec();
-                db.CacheTypeMetadata.remove({space: space._id}).exec();
+                db.DomainModel.remove({space: space._id}).exec();
                 db.Notebook.remove({space: space._id}).exec();
                 db.Space.remove({owner: space._id}).exec();
             });

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/routes/caches.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/caches.js b/modules/control-center-web/src/main/js/routes/caches.js
index 5455c6a..fa52bd5 100644
--- a/modules/control-center-web/src/main/js/routes/caches.js
+++ b/modules/control-center-web/src/main/js/routes/caches.js
@@ -39,7 +39,7 @@ router.post('/list', function (req, res) {
             db.Cluster.find({space: {$in: space_ids}}, '_id name caches').sort('name').exec(function (err, clusters) {
                 if (db.processed(err, res)) {
                     // Get all domain models for spaces.
-                    db.CacheTypeMetadata.find({space: {$in: space_ids}}).sort('name').exec(function (err, metadatas) {
+                    db.DomainModel.find({space: {$in: space_ids}}).sort('name').exec(function (err, domains) {
                         if (db.processed(err, res)) {
                             // Get all caches for spaces.
                             db.Cache.find({space: {$in: space_ids}}).sort('name').exec(function (err, caches) {
@@ -53,9 +53,9 @@ router.post('/list', function (req, res) {
                                         });
 
                                         // Remove deleted domain models.
-                                        cache.metadatas = _.filter(cache.metadatas, function (metaId) {
-                                            return _.findIndex(metadatas, function (meta) {
-                                                    return meta._id.equals(metaId);
+                                        cache.domains = _.filter(cache.domains, function (metaId) {
+                                            return _.findIndex(domains, function (domain) {
+                                                    return domain._id.equals(metaId);
                                                 }) >= 0;
                                         });
                                     });
@@ -65,7 +65,7 @@ router.post('/list', function (req, res) {
                                         clusters: clusters.map(function (cluster) {
                                             return {value: cluster._id, label: cluster.name, caches: cluster.caches};
                                         }),
-                                        metadatas: metadatas,
+                                        domains: domains,
                                         caches: caches
                                     });
                                 }
@@ -85,7 +85,7 @@ router.post('/save', function (req, res) {
     var params = req.body;
     var cacheId = params._id;
     var clusters = params.clusters;
-    var metadatas = params.metadatas;
+    var domains = params.domains;
 
     if (params._id) {
         db.Cache.update({_id: cacheId}, params, {upsert: true}, function (err) {
@@ -94,9 +94,9 @@ router.post('/save', function (req, res) {
                     if (db.processed(err, res))
                         db.Cluster.update({_id: {$nin: clusters}}, {$pull: {caches: cacheId}}, {multi: true}, function (err) {
                             if (db.processed(err, res))
-                                db.CacheTypeMetadata.update({_id: {$in: metadatas}}, {$addToSet: {caches: cacheId}}, {multi: true}, function (err) {
+                                db.DomainModel.update({_id: {$in: domains}}, {$addToSet: {caches: cacheId}}, {multi: true}, function (err) {
                                     if (db.processed(err, res))
-                                        db.CacheTypeMetadata.update({_id: {$nin: metadatas}}, {$pull: {caches: cacheId}}, {multi: true}, function (err) {
+                                        db.DomainModel.update({_id: {$nin: domains}}, {$pull: {caches: cacheId}}, {multi: true}, function (err) {
                                             if (db.processed(err, res))
                                                 res.send(params._id);
                                         });
@@ -117,7 +117,7 @@ router.post('/save', function (req, res) {
 
                         db.Cluster.update({_id: {$in: clusters}}, {$addToSet: {caches: cacheId}}, {multi: true}, function (err) {
                             if (db.processed(err, res))
-                                db.CacheTypeMetadata.update({_id: {$in: metadatas}}, {$addToSet: {caches: cacheId}}, {multi: true}, function (err) {
+                                db.DomainModel.update({_id: {$in: domains}}, {$addToSet: {caches: cacheId}}, {multi: true}, function (err) {
                                     if (db.processed(err, res))
                                         res.send(cacheId);
                                 });

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/routes/clusters.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/clusters.js b/modules/control-center-web/src/main/js/routes/clusters.js
index 311dcef..cf56c49 100644
--- a/modules/control-center-web/src/main/js/routes/clusters.js
+++ b/modules/control-center-web/src/main/js/routes/clusters.js
@@ -36,7 +36,7 @@ router.post('/list', function (req, res) {
             });
 
             // Get all caches for spaces.
-            db.Cache.find({space: {$in: space_ids}}).sort('name').deepPopulate('metadatas').exec(function (err, caches) {
+            db.Cache.find({space: {$in: space_ids}}).sort('name').deepPopulate('domains').exec(function (err, caches) {
                 if (db.processed(err, res)) {
                     // Get all IGFSs for spaces.
                     db.Igfs.find({space: {$in: space_ids}}).sort('name').exec(function (err, igfss) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/routes/domains.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/domains.js b/modules/control-center-web/src/main/js/routes/domains.js
index 5c78ac0..429ee19 100644
--- a/modules/control-center-web/src/main/js/routes/domains.js
+++ b/modules/control-center-web/src/main/js/routes/domains.js
@@ -43,11 +43,11 @@ router.post('/list', function (req, res) {
                     db.Cache.find({space: {$in: space_ids}}).sort('name').exec(function (err, caches) {
                         if (db.processed(err, res)) {
                             // Get all domain models for spaces.
-                            db.CacheTypeMetadata.find({space: {$in: space_ids}}).sort('valueType').exec(function (err, metadatas) {
+                            db.DomainModel.find({space: {$in: space_ids}}).sort('valueType').exec(function (err, domains) {
                                 if (db.processed(err, res)) {
                                     // Remove deleted caches.
-                                    _.forEach(metadatas, function (meta) {
-                                        meta.caches = _.filter(meta.caches, function (cacheId) {
+                                    _.forEach(domains, function (domain) {
+                                        domain.caches = _.filter(domain.caches, function (cacheId) {
                                             return _.findIndex(caches, function (cache) {
                                                     return cache._id.equals(cacheId);
                                                 }) >= 0;
@@ -59,10 +59,8 @@ router.post('/list', function (req, res) {
                                         clusters: clusters.map(function (cluster) {
                                             return {value: cluster._id, label: cluster.name};
                                         }),
-                                        caches: caches.map(function (cache) {
-                                            return {value: cache._id, label: cache.name};
-                                        }),
-                                        metadatas: metadatas
+                                        caches: caches,
+                                        domains: domains
                                     });
                                 }
                             });
@@ -74,24 +72,24 @@ router.post('/list', function (req, res) {
     });
 });
 
-function _saveMeta(meta, savedMetas, callback) {
-    var metaId = meta._id;
-    var caches = meta.caches;
+function _saveDomainModel(domain, savedDomains, callback) {
+    var domainId = domain._id;
+    var caches = domain.caches;
 
-    if (metaId)
-        db.CacheTypeMetadata.update({_id: meta._id}, meta, {upsert: true}, function (err) {
+    if (domainId)
+        db.DomainModel.update({_id: domain._id}, domain, {upsert: true}, function (err) {
             if (err)
                 callback(err);
             else
-                db.Cache.update({_id: {$in: caches}}, {$addToSet: {metadatas: metaId}}, {multi: true}, function (err) {
+                db.Cache.update({_id: {$in: caches}}, {$addToSet: {domains: domainId}}, {multi: true}, function (err) {
                     if (err)
                         callback(err);
                     else
-                        db.Cache.update({_id: {$nin: caches}}, {$pull: {metadatas: metaId}}, {multi: true}, function (err) {
+                        db.Cache.update({_id: {$nin: caches}}, {$pull: {domains: domainId}}, {multi: true}, function (err) {
                             if (err)
                                 callback(err);
                             else {
-                                savedMetas.push(meta);
+                                savedDomains.push(domain);
 
                                 callback();
                             }
@@ -99,24 +97,23 @@ function _saveMeta(meta, savedMetas, callback) {
                 });
         });
     else
-        db.CacheTypeMetadata.findOne({space: meta.space, valueType: meta.valueType}, function (err, metadata) {
+        db.DomainModel.findOne({space: domain.space, valueType: domain.valueType}, function (err, found) {
             if (err)
                 callback(err);
-            else
-            if (metadata)
-                return callback('Domain model with value type: "' + metadata.valueType + '" already exist.');
+            else if (found)
+                return callback('Domain model with value type: "' + found.valueType + '" already exist.');
 
-            (new db.CacheTypeMetadata(meta)).save(function (err, metadata) {
+            (new db.DomainModel(domain)).save(function (err, domain) {
                 if (err)
                     callback(err);
                 else {
-                    metaId = metadata._id;
+                    domainId = domain._id;
 
-                    db.Cache.update({_id: {$in: caches}}, {$addToSet: {metadatas: metaId}}, {multi: true}, function (err) {
+                    db.Cache.update({_id: {$in: caches}}, {$addToSet: {domains: domainId}}, {multi: true}, function (err) {
                         if (err)
                             callback(err);
                         else {
-                            savedMetas.push(metadata);
+                            savedDomains.push(domain);
 
                             callback();
                         }
@@ -126,96 +123,50 @@ function _saveMeta(meta, savedMetas, callback) {
         });
 }
 
-function _saveCacheAndMeta(res, generatedCaches, savedMetas, newCache, callback) {
-    // If cache not found, then create it and associate with domain model.
-    (new db.Cache(newCache)).save(function (err, cache) {
-        var cacheId = cache._id;
-
-        if (db.processed(err, res)) {
-            db.Cluster.update({_id: {$in: cache.clusters}}, {$addToSet: {caches: cacheId}}, {multi: true}, function (err) {
-                if (db.processed(err, res)) {
-                    meta.caches = [cacheId];
-                    generatedCaches.push({ value: cacheId, label: cache.name });
-
-                    _saveMeta(meta, savedMetas, callback);
-                }
-            });
-        }
-    });
-}
-
-function _save(metas, res) {
-    var savedMetas = [];
+function _save(domains, res) {
+    var savedDomains = [];
     var generatedCaches = [];
 
-    if (metas && metas.length > 0)
-        async.forEachOf(metas, function(meta, idx, callback) {
-            if (meta.newCache) {
-                db.Cache.findOne({space: meta.space, name: meta.newCache.name}, function (err, cache) {
+    if (domains && domains.length > 0)
+        async.forEachOf(domains, function(domain, idx, callback) {
+            if (domain.newCache) {
+                db.Cache.findOne({space: domain.space, name: domain.newCache.name}, function (err, cache) {
                     if (db.processed(err, res))
                         if (cache) {
                             // Cache already exists, just save domain model.
-                            meta.caches = [cache._id];
+                            domain.caches = [cache._id];
 
-                            _saveMeta(meta, savedMetas, callback);
+                            _saveDomainModel(domain, savedDomains, callback);
                         }
                         else {
-                            var newCache = {
-                                space: meta.space,
-                                name: meta.newCache.name,
-                                clusters: meta.newCache.clusters,
-                                cacheMode: 'PARTITIONED',
-                                atomicityMode: 'ATOMIC',
-                                cacheStoreFactory: {
-                                    kind: 'CacheJdbcPojoStoreFactory',
-                                    CacheJdbcPojoStoreFactory: {
-                                        dataSourceBean: 'dataSource',
-                                        dialect: meta.newCache.dialect
-                                    }
-                                },
-                                readThrough: true,
-                                writeThrough: true,
-                                demo: meta.demo
-                            };
+                            // If cache not found, then create it and associate with domain model.
+                            var newCache = domain.newCache;
+                            newCache.space = domain.space;
 
-                            if (meta.cache === 'IMPORT_DM_NEW_CACHE') {
-                                if (meta.template === 'IMPORT_DM_DFLT_REPLICATED_CACHE')
-                                    newCache.cacheMode = 'REPLICATED';
-                                else {
-                                    db.Cache.findOne({_id: meta.template}, function (err, cacheTemplate) {
-                                        if (db.processed(err, res)) {
-                                            if (cacheTemplate) {
-                                                newCache.cacheMode = cacheTemplate.cacheMode;
-                                                newCache.atomicityMode = cacheTemplate.atomicityMode;
+                            (new db.Cache(newCache)).save(function (err, cache) {
+                                var cacheId = cache._id;
 
-                                                if (cacheTemplate.cacheStoreFactory && cacheTemplate.cacheStoreFactory.kind === 'CacheJdbcPojoStoreFactory') {
-                                                    newCache.cacheStoreFactory.dataSourceBean = cacheTemplate.cacheStoreFactory.dataSourceBean;
-                                                    newCache.cacheStoreFactory.dialect = cacheTemplate.cacheStoreFactory.dialect;
-                                                    newCache.readThrough = cacheTemplate.readThrough;
-                                                    newCache.writeThrough = cacheTemplate.writeThrough
-                                                }
-                                            }
+                                if (db.processed(err, res)) {
+                                    db.Cluster.update({_id: {$in: cache.clusters}}, {$addToSet: {caches: cacheId}}, {multi: true}, function (err) {
+                                        if (db.processed(err, res)) {
+                                            domain.caches = [cacheId];
+                                            generatedCaches.push({ value: cacheId, label: cache.name });
 
-                                            _saveCacheAndMeta(res, generatedCaches, savedMetas, newCache, callback);
+                                            _saveDomainModel(domain, savedDomains, callback);
                                         }
                                     });
                                 }
-                            }
-                            else {
-                                if (meta.template !== 'IMPORT_DM_DO_NOT_GENERATE')
-
-                                _saveMeta(res, generatedCaches, savedMetas, newCache, callback);
-                            }
+                            });
                         }
                 });
             }
             else
-                _saveMeta(meta, savedMetas, callback);
+                _saveDomainModel(domain, savedDomains, callback);
         }, function (err) {
             if (err)
                 res.status(500).send(err);
             else
-                res.send({ savedMetas: savedMetas, generatedCaches: generatedCaches });
+                res.send({ savedDomains: savedDomains, generatedCaches: generatedCaches });
         });
     else
         res.status(500).send('Nothing to save!');
@@ -239,7 +190,7 @@ router.post('/save/batch', function (req, res) {
  * Remove domain model by ._id.
  */
 router.post('/remove', function (req, res) {
-    db.CacheTypeMetadata.remove(req.body, function (err) {
+    db.DomainModel.remove(req.body, function (err) {
         if (db.processed(err, res))
             res.sendStatus(200);
     })
@@ -258,7 +209,7 @@ router.post('/remove/all', function (req, res) {
                 return value._id;
             });
 
-            db.CacheTypeMetadata.remove({space: {$in: space_ids}}, function (err) {
+            db.DomainModel.remove({space: {$in: space_ids}}, function (err) {
                 if (err)
                     return res.status(500).send(err.message);
 
@@ -282,7 +233,7 @@ router.post('/remove/demo', function (req, res) {
             });
 
             // Remove all demo domain models.
-            db.CacheTypeMetadata.remove({$and: [{space: {$in: space_ids}}, {demo: true}]}, function (err) {
+            db.DomainModel.remove({$and: [{space: {$in: space_ids}}, {demo: true}]}, function (err) {
                 if (err)
                     return res.status(500).send(err.message);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/views/configuration/domains.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/domains.jade b/modules/control-center-web/src/main/js/views/configuration/domains.jade
index 72d7eb5..37cd9ac 100644
--- a/modules/control-center-web/src/main/js/views/configuration/domains.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/domains.jade
@@ -35,20 +35,20 @@ include ../includes/controls
             li Back to #[a(ui-sref='base.configuration.caches') Caches]
             li Back to #[a(ui-sref='base.configuration.clusters') Clusters]
                         
-    div(dw-loading='loadingMetadataScreen' dw-loading-options='{text: "Loading domain models screen...", className: "page-loading-overlay"}')
+    div(dw-loading='loadingDomainModelsScreen' dw-loading-options='{text: "Loading domain models screen...", className: "page-loading-overlay"}')
         div(ng-show='ui.ready')
             hr
-            .padding-bottom-dflt(ng-show='metadatas && metadatas.length > 0')
-                table.links(st-table='displayedRows' st-safe-src='metadatas')
+            .padding-bottom-dflt(ng-show='domains && domains.length > 0')
+                table.links(st-table='displayedRows' st-safe-src='domains')
                     thead
                         tr
                             th
                                 .col-sm-8
                                     .col-sm-5
-                                        lable.labelHeader.labelFormField {{metadataTitle()}}
+                                        lable.labelHeader.labelFormField {{domainModelTitle()}}
                                     .col-sm-7
-                                        .pull-right.labelLogin.additional-filter(ng-if='(metadatas | domainsValidation:false:true).length > 0')
-                                            a.labelFormField(ng-if='ui.showValid' ng-click='toggleValid()') Key fields should be configured: {{(displayedRows | domainsValidation:false:true).length}}&nbsp
+                                        .pull-right.labelLogin.additional-filter(ng-if='(domains | domainsValidation:false:true).length > 0')
+                                            a.labelFormField(ng-if='ui.showValid' ng-click='toggleValid()' bs-tooltip='' data-title='{{::ui.invalidKeyFieldsTooltip}}') Key fields should be configured: {{(displayedRows | domainsValidation:false:true).length}}&nbsp
                                             a.labelFormField(ng-if='!ui.showValid' ng-click='toggleValid()') Show all domain models: {{displayedRows.length}}&nbsp
                                 .col-sm-4
                                     input.form-control.pull-right(type='text' st-search='valueType' placeholder='Filter domain models...')

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/summary.jade b/modules/control-center-web/src/main/js/views/configuration/summary.jade
index c7dc00a..f59b83a 100644
--- a/modules/control-center-web/src/main/js/views/configuration/summary.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/summary.jade
@@ -163,4 +163,4 @@ mixin ignite-form-field-tooltip(message)
                                 div(bs-pane title='POM')
                                     ignite-ui-ace-pom(data-cluster='cluster')
                                 div(bs-pane title='POJO' ng-show='cluster | hasPojo')
-                                    ignite-ui-ace-pojos(data-cluster='cluster' ng-model='ctrl.data.metadatas')
+                                    ignite-ui-ace-pojos(data-cluster='cluster' ng-model='ctrl.data.pojos')


[2/2] ignite git commit: IGNITE-843 WIP reworking import domain model and rename rename metadata to domain model.

Posted by ak...@apache.org.
IGNITE-843 WIP reworking import domain model and rename rename metadata to domain model.


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

Branch: refs/heads/ignite-843-rc2
Commit: dd05e1b33960a81c35f4ebb3ac35f3e920a1d265
Parents: 11781de
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Tue Jan 19 13:42:39 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Tue Jan 19 13:42:39 2016 +0700

----------------------------------------------------------------------
 .../ui-ace-pojos/ui-ace-pojos.controller.js     |  48 +--
 .../ui-ace-pojos/ui-ace-pojos.directive.js      |   4 +-
 .../js/app/filters/hasPojo/hasPojo.filter.js    |   2 +-
 .../configuration/summary/summary.controller.js |  18 +-
 .../main/js/controllers/caches-controller.js    |  46 +-
 .../main/js/controllers/clusters-controller.js  |   3 -
 .../src/main/js/controllers/common-module.js    |  36 +-
 .../main/js/controllers/domains-controller.js   | 422 +++++++++++--------
 .../src/main/js/controllers/igfs-controller.js  |   3 -
 .../src/main/js/controllers/models/caches.json  |   6 +-
 .../src/main/js/controllers/models/domains.json |   2 +-
 modules/control-center-web/src/main/js/db.js    |  14 +-
 .../main/js/helpers/generator/generator-java.js | 161 ++++---
 .../main/js/helpers/generator/generator-xml.js  | 106 +++--
 .../src/main/js/routes/admin.js                 |   2 +-
 .../src/main/js/routes/caches.js                |  18 +-
 .../src/main/js/routes/clusters.js              |   2 +-
 .../src/main/js/routes/domains.js               | 139 ++----
 .../main/js/views/configuration/domains.jade    |  12 +-
 .../main/js/views/configuration/summary.jade    |   2 +-
 20 files changed, 524 insertions(+), 522 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
index 76ca6a8..177a673 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
@@ -23,21 +23,21 @@ export default ['$scope', 'IgniteUiAceOnLoad', 'JavaTypes', function($scope, onL
 
     // Watchers definition.
     // Watcher clean instance data if instance to cluster caches was change
-    const cleanMetadatas = () => {
+    const cleanPojos = () => {
         delete ctrl.class;
-        delete ctrl.metadatas;
+        delete ctrl.pojos;
         delete ctrl.classes;
     };
 
-    // Watcher updata metadata when changes caches and checkers useConstructor and includeKeyFields
-    const updateMetadatas = () => {
-        delete ctrl.metadatas;
+    // Watcher update pojos when changes caches and checkers useConstructor and includeKeyFields
+    const updatePojos = () => {
+        delete ctrl.pojos;
 
         if (!ctrl.cluster || !ctrl.cluster.caches)
             return;
 
         // TODO IGNITE-2054: need move $generatorJava to services.
-        ctrl.metadatas = $generatorJava.pojos(ctrl.cluster.caches, ctrl.useConstructor, ctrl.includeKeyFields);
+        ctrl.pojos = $generatorJava.pojos(ctrl.cluster.caches, ctrl.useConstructor, ctrl.includeKeyFields);
     };
 
     // Watcher update classes after
@@ -49,22 +49,22 @@ export default ['$scope', 'IgniteUiAceOnLoad', 'JavaTypes', function($scope, onL
 
         const classes = ctrl.classes = [];
 
-        _.forEach(ctrl.metadatas, (meta) => {
-            if (meta.keyType && !JavaTypes.isBuiltInClass(meta.keyType))
-                classes.push(meta.keyType);
+        _.forEach(ctrl.pojos, (pojo) => {
+            if (pojo.keyType && !JavaTypes.isBuiltInClass(pojo.keyType))
+                classes.push(pojo.keyType);
 
-            classes.push(meta.valueType);
+            classes.push(pojo.valueType);
         });
     };
 
     // Update pojos class.
     const updateClass = (value) => {
-        if (!value || !ctrl.metadatas.length)
+        if (!value || !ctrl.pojos.length)
             return;
 
-        const keyType = ctrl.metadatas[0].keyType;
+        const keyType = ctrl.pojos[0].keyType;
 
-        ctrl.class = ctrl.class || (JavaTypes.isBuiltInClass(keyType) ? null : keyType) || ctrl.metadatas[0].valueType;
+        ctrl.class = ctrl.class || (JavaTypes.isBuiltInClass(keyType) ? null : keyType) || ctrl.pojos[0].valueType;
     };
 
     // Update pojos data.
@@ -72,22 +72,22 @@ export default ['$scope', 'IgniteUiAceOnLoad', 'JavaTypes', function($scope, onL
         if (!value)
             return;
 
-        _.forEach(ctrl.metadatas, (meta) => {
-            if (meta.keyType === ctrl.class)
-                return ctrl.data = meta.keyClass;
+        _.forEach(ctrl.pojos, (pojo) => {
+            if (pojo.keyType === ctrl.class)
+                return ctrl.data = pojo.keyClass;
 
-            if (meta.valueType === ctrl.class)
-                return ctrl.data = meta.valueClass;
+            if (pojo.valueType === ctrl.class)
+                return ctrl.data = pojo.valueClass;
         });
     };
 
     // Setup watchers. Watchers order is important.
-    $scope.$watch('ctrl.cluster.caches', cleanMetadatas);
-    $scope.$watch('ctrl.cluster.caches', updateMetadatas);
+    $scope.$watch('ctrl.cluster.caches', cleanPojos);
+    $scope.$watch('ctrl.cluster.caches', updatePojos);
     $scope.$watch('ctrl.cluster.caches', updateClasses);
-    $scope.$watch('ctrl.useConstructor', updateMetadatas);
-    $scope.$watch('ctrl.includeKeyFields', updateMetadatas);
-    $scope.$watch('ctrl.metadatas', updateClass);
-    $scope.$watch('ctrl.metadatas', updatePojosData);
+    $scope.$watch('ctrl.useConstructor', updatePojos);
+    $scope.$watch('ctrl.includeKeyFields', updatePojos);
+    $scope.$watch('ctrl.pojos', updateClass);
+    $scope.$watch('ctrl.pojos', updatePojosData);
     $scope.$watch('ctrl.class', updatePojosData);
 }];

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
index 1c2ba5e..8176752 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
@@ -24,11 +24,11 @@ export default ['igniteUiAcePojos', [() => {
         restrict: 'E',
         scope: {
             cluster: '=',
-            metadatas: '=ngModel'
+            pojos: '=ngModel'
         },
         bindToController: {
             cluster: '=',
-            metadatas: '=ngModel'
+            pojos: '=ngModel'
         },
         template,
         controller,

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js b/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js
index 559c433..db47585 100644
--- a/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js
+++ b/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js
@@ -17,7 +17,7 @@
 
 export default ['hasPojo', [() => {
     const filter = (cache) => {
-        return cache.metadatas && cache.metadatas.length;
+        return cache.domains && cache.domains.length;
     };
 
     return ({caches} = {}) => {

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
index 0d590ba..a2148d9 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
@@ -187,12 +187,12 @@ export default [
             javaFolder.children = [javaConfigFolder, javaStartupFolder];
 
             _.forEach(cluster.caches, (cache) => {
-                _.forEach(cache.metadatas, (metadata) => {
-                    if (!$common.isEmptyArray(metadata.keyFields)) {
-                        if (!JavaTypes.isBuiltInClass(metadata.keyType))
-                            addChildren(metadata.keyType);
+                _.forEach(cache.domains, (domain) => {
+                    if (!$common.isEmptyArray(domain.keyFields)) {
+                        if (!JavaTypes.isBuiltInClass(domain.keyType))
+                            addChildren(domain.keyType);
 
-                        addChildren(metadata.valueType);
+                        addChildren(domain.valueType);
                     }
                 });
             });
@@ -250,11 +250,11 @@ export default [
             zip.file('README.txt', $generatorReadme.readme().asString());
             zip.file('jdbc-drivers/README.txt', $generatorReadme.readmeJdbc().asString());
 
-            for (const meta of ctrl.data.metadatas) {
-                if (meta.keyClass && !JavaTypes.isBuiltInClass(meta.keyType))
-                    zip.file(srcPath + meta.keyType.replace(/\./g, '/') + '.java', meta.keyClass);
+            for (const pojo of ctrl.data.pojos) {
+                if (pojo.keyClass && !JavaTypes.isBuiltInClass(pojo.keyType))
+                    zip.file(srcPath + pojo.keyType.replace(/\./g, '/') + '.java', pojo.keyClass);
 
-                zip.file(srcPath + meta.valueType.replace(/\./g, '/') + '.java', meta.valueClass);
+                zip.file(srcPath + pojo.valueType.replace(/\./g, '/') + '.java', pojo.valueClass);
             }
 
             $generatorOptional.optionalContent(zip, cluster);

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/controllers/caches-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/caches-controller.js b/modules/control-center-web/src/main/js/controllers/caches-controller.js
index 60fc822..e9e0fb2 100644
--- a/modules/control-center-web/src/main/js/controllers/caches-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/caches-controller.js
@@ -158,7 +158,7 @@ consoleModule.controller('cachesController', [
         $scope.general = [];
         $scope.advanced = [];
         $scope.caches = [];
-        $scope.metadatas = [];
+        $scope.domains = [];
 
         $scope.preview = {
             general: {xml: '', java: '', allDefaults: true},
@@ -271,10 +271,10 @@ consoleModule.controller('cachesController', [
                 $scope.selectItem($scope.caches[0]);
         }
 
-        function cacheMetadatas(item) {
-            return _.reduce($scope.metadatas, function (memo, meta) {
-                if (item && _.contains(item.metadatas, meta.value)) {
-                    memo.push(meta.meta);
+        function cacheDomains(item) {
+            return _.reduce($scope.domains, function (memo, domain) {
+                if (item && _.contains(item.domains, domain.value)) {
+                    memo.push(domain.meta);
                 }
 
                 return memo;
@@ -296,8 +296,13 @@ consoleModule.controller('cachesController', [
 
                 $scope.caches = data.caches;
                 $scope.clusters = data.clusters;
-                $scope.metadatas = _.sortBy(_.map(validFilter(data.metadatas, true, false), function (meta) {
-                    return {value: meta._id, label: meta.valueType, kind: meta.kind, meta: meta};
+                $scope.domains = _.sortBy(_.map(validFilter(data.domains, true, false), function (domain) {
+                    return {
+                        value: domain._id,
+                        label: domain.valueType,
+                        kind: domain.kind,
+                        meta: domain
+                    };
                 }), 'label');
 
                 // Load page descriptor.
@@ -336,11 +341,11 @@ consoleModule.controller('cachesController', [
 
                                 $scope.ui.checkDirty(val, srcItem);
 
-                                var metas = cacheMetadatas(val);
+                                var domains = cacheDomains(val);
                                 var varName = $commonUtils.toJavaName('cache', val.name);
 
-                                $scope.preview.general.xml = $generatorXml.cacheMetadatas(metas, $generatorXml.cacheGeneral(val)).asString();
-                                $scope.preview.general.java = $generatorJava.cacheMetadatas(metas, varName, $generatorJava.cacheGeneral(val, varName)).asString();
+                                $scope.preview.general.xml = $generatorXml.cacheDomains(domains, $generatorXml.cacheGeneral(val)).asString();
+                                $scope.preview.general.java = $generatorJava.cacheDomains(domains, varName, $generatorJava.cacheGeneral(val, varName)).asString();
                                 $scope.preview.general.allDefaults = $common.isEmptyString($scope.preview.general.xml);
 
                                 $scope.preview.memory.xml = $generatorXml.cacheMemory(val).asString();
@@ -351,10 +356,10 @@ consoleModule.controller('cachesController', [
                                 $scope.preview.query.java = $generatorJava.cacheQuery(val, varName).asString();
                                 $scope.preview.query.allDefaults = $common.isEmptyString($scope.preview.query.xml);
 
-                                var storeFactory = $generatorXml.cacheStore(val, metas);
+                                var storeFactory = $generatorXml.cacheStore(val, domains);
 
                                 $scope.preview.store.xml = $generatorXml.generateDataSources(storeFactory.datasources).asString() + storeFactory.asString();
-                                $scope.preview.store.java = $generatorJava.cacheStore(val, metas, varName).asString();
+                                $scope.preview.store.java = $generatorJava.cacheStore(val, domains, varName).asString();
                                 $scope.preview.store.allDefaults = $common.isEmptyString($scope.preview.store.xml);
 
                                 $scope.preview.concurrency.xml = $generatorXml.cacheConcurrency(val).asString();
@@ -375,7 +380,7 @@ consoleModule.controller('cachesController', [
                             }
                         }, true);
 
-                        $scope.$watchCollection('backupItem.metadatas', function (val) {
+                        $scope.$watchCollection('backupItem.domains', function (val) {
                             if ($scope.selectedItemWatchGuard)
                                 $scope.selectedItemWatchGuard = false;
                             else {
@@ -386,7 +391,7 @@ consoleModule.controller('cachesController', [
                                     $common.isDefined(item.cacheStoreFactory.kind);
 
                                 if (val && !cacheStoreFactory) {
-                                    if (_.findIndex(cacheMetadatas(item), $common.metadataForStoreConfigured) >= 0) {
+                                    if (_.findIndex(cacheDomains(item), $common.domainForStoreConfigured) >= 0) {
                                         item.cacheStoreFactory.kind = 'CacheJdbcPojoStoreFactory';
 
                                         if (!item.readThrough && !item.writeThrough) {
@@ -445,9 +450,6 @@ consoleModule.controller('cachesController', [
             }
 
             $common.confirmUnsavedChanges($scope.ui.isDirty(), selectItem);
-
-            $scope.ui.formTitle = $common.isDefined($scope.backupItem) && $scope.backupItem._id ?
-                'Selected cache: ' + $scope.backupItem.name : 'New cache';
         };
 
         function prepareNewItem(id) {
@@ -460,7 +462,7 @@ consoleModule.controller('cachesController', [
                 clusters: id && _.find($scope.clusters, {value: id})
                     ? [id]
                     : _.map($scope.clusters, function (cluster) { return cluster.value; }),
-                metadatas: id && _.find($scope.metadatas, {value: id}) ? [id] : [],
+                domains: id && _.find($scope.domains, { value: id }) ? [id] : [],
                 cacheStoreFactory: {CacheJdbcBlobStoreFactory: {connectVia: 'DataSource'}}
             };
         }
@@ -583,11 +585,11 @@ consoleModule.controller('cachesController', [
                         'Store is configured but read/write through are not enabled!');
 
                 if (item.cacheStoreFactory.kind === 'CacheJdbcPojoStoreFactory') {
-                    if ($common.isDefined(item.metadatas)) {
-                        var metadatas = cacheMetadatas($scope.backupItem);
+                    if ($common.isDefined(item.domains)) {
+                        var domains = cacheDomains($scope.backupItem);
 
-                        if (_.findIndex(metadatas, $common.metadataForStoreConfigured) < 0)
-                            return showPopoverMessage($scope.panels, 'general', 'metadata',
+                        if (_.findIndex(domains, $common.domainForStoreConfigured) < 0)
+                            return showPopoverMessage($scope.panels, 'general', 'domains',
                                 'Cache with configured JDBC POJO store factory should be associated with at least one domain model for cache store');
                     }
                 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/controllers/clusters-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/clusters-controller.js b/modules/control-center-web/src/main/js/controllers/clusters-controller.js
index 5a8629d..295ff9a 100644
--- a/modules/control-center-web/src/main/js/controllers/clusters-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/clusters-controller.js
@@ -415,9 +415,6 @@ consoleModule.controller('clustersController', function ($http, $timeout, $scope
             }
 
             $common.confirmUnsavedChanges($scope.ui.isDirty(), selectItem);
-
-            $scope.ui.formTitle = $common.isDefined($scope.backupItem) && $scope.backupItem._id ?
-                'Selected cluster: ' + $scope.backupItem.name : 'New cluster';
         };
 
         function prepareNewItem(id) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/controllers/common-module.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/common-module.js b/modules/control-center-web/src/main/js/controllers/common-module.js
index b38ed23..57ced0b 100644
--- a/modules/control-center-web/src/main/js/controllers/common-module.js
+++ b/modules/control-center-web/src/main/js/controllers/common-module.js
@@ -161,7 +161,7 @@ consoleModule.service('$common', [
         }
 
         var javaBuiltInClasses = [
-            'BigDecimal', 'Boolean', 'Byte', 'Date', 'Double', 'Float', 'Integer', 'Long', 'Short', 'String', 'Time', 'Timestamp', 'UUID'
+            'BigDecimal', 'Boolean', 'Byte', 'Date', 'Double', 'Float', 'Integer', 'Long', 'Object', 'Short', 'String', 'Time', 'Timestamp', 'UUID'
         ];
 
         var javaBuiltInTypes = [
@@ -171,8 +171,8 @@ consoleModule.service('$common', [
 
         var javaBuiltInFullNameClasses = [
             'java.math.BigDecimal', 'java.lang.Boolean', 'java.lang.Byte', 'java.sql.Date', 'java.lang.Double',
-            'java.lang.Float', 'java.lang.Integer', 'java.lang.Long', 'java.lang.Short', 'java.lang.String',
-            'java.sql.Time', 'java.sql.Timestamp', 'java.util.UUID'
+            'java.lang.Float', 'java.lang.Integer', 'java.lang.Long', 'java.lang.Object', 'java.lang.Short',
+            'java.lang.String', 'java.sql.Time', 'java.sql.Timestamp', 'java.util.UUID'
         ];
 
         function isJavaBuiltInClass(cls) {
@@ -781,18 +781,18 @@ consoleModule.service('$common', [
 
                 return true;
             },
-            metadataForQueryConfigured: function (meta) {
-                var isEmpty = !isDefined(meta) || (isEmptyArray(meta.fields) &&
-                    isEmptyArray(meta.aliases) &&
-                    isEmptyArray(meta.indexes));
+            domainForQueryConfigured: function (domain) {
+                var isEmpty = !isDefined(domain) || (isEmptyArray(domain.fields) &&
+                    isEmptyArray(domain.aliases) &&
+                    isEmptyArray(domain.indexes));
 
                 return !isEmpty;
             },
-            metadataForStoreConfigured: function (meta) {
-                var isEmpty = !isDefined(meta) || (isEmptyString(meta.databaseSchema) &&
-                    isEmptyString(meta.databaseTable) &&
-                    isEmptyArray(meta.keyFields) &&
-                    isEmptyArray(meta.valueFields));
+            domainForStoreConfigured: function (domain) {
+                var isEmpty = !isDefined(domain) || (isEmptyString(domain.databaseSchema) &&
+                    isEmptyString(domain.databaseTable) &&
+                    isEmptyArray(domain.keyFields) &&
+                    isEmptyArray(domain.valueFields));
 
                 return !isEmpty;
             },
@@ -965,7 +965,7 @@ consoleModule.service('$common', [
                     }
                 }
 
-                // Find group metadata to reset group values.
+                // Find group to reset group values.
                 for (var grpIx = 0; grpIx < groups.length; grpIx ++) {
                     if (groups[grpIx].group === group) {
                         var fields = groups[grpIx].fields;
@@ -1752,17 +1752,17 @@ consoleModule.filter('tablesSearch', function() {
 
 // Filter domain models with key fields configuration.
 consoleModule.filter('domainsValidation', ['$common', function ($common) {
-    return function(metadatas, valid, invalid) {
+    return function(domains, valid, invalid) {
         if (valid && invalid)
-            return metadatas;
+            return domains;
 
         var out = [];
 
-        _.forEach(metadatas, function (meta) {
-            var _valid = !$common.metadataForStoreConfigured(meta) || $common.isJavaBuiltInClass(meta.keyType) || !$common.isEmptyArray(meta.keyFields);
+        _.forEach(domains, function (domain) {
+            var _valid = !$common.domainForStoreConfigured(domain) || $common.isJavaBuiltInClass(domain.keyType) || !$common.isEmptyArray(domain.keyFields);
 
             if (valid && _valid || invalid && !_valid)
-                out.push(meta);
+                out.push(domain);
         });
 
         return out;

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/controllers/domains-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/domains-controller.js b/modules/control-center-web/src/main/js/controllers/domains-controller.js
index ceeb860..ecf6f45 100644
--- a/modules/control-center-web/src/main/js/controllers/domains-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/domains-controller.js
@@ -17,7 +17,7 @@
 
 // Controller for Domain model screen.
 consoleModule.controller('domainsController', function ($filter, $http, $timeout, $state, $scope, $controller, $modal,
-     $common,  $focus, $confirm, $confirmBatch, $clone, $table, $preview, $loading, $unsavedChangesGuard, $agentDownload) {
+    $common, $focus, $confirm, $confirmBatch, $clone, $table, $preview, $loading, $unsavedChangesGuard, $agentDownload) {
         $unsavedChangesGuard.install($scope);
 
         // Initialize the super class and extend it.
@@ -32,18 +32,21 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
         $scope.ui.generateCaches = true;
         $scope.ui.generatedCachesClusters = [];
 
-        $scope.removeDemoDropdown = [{ 'text': 'Remove generated demo data', 'click': 'removeDemoItems()'}];
+        $scope.removeDemoDropdown = [{
+            'text': 'Remove generated demo data',
+            'click': 'removeDemoItems()'
+        }];
 
         function restoreSelection() {
             var lastSelectedDomain = angular.fromJson(sessionStorage.lastSelectedDomain);
 
             if (lastSelectedDomain) {
-                var idx = _.findIndex($scope.metadatas, function (metadata) {
-                    return metadata._id === lastSelectedDomain;
+                var idx = _.findIndex($scope.domains, function (domain) {
+                    return domain._id === lastSelectedDomain;
                 });
 
                 if (idx >= 0)
-                    $scope.selectItem($scope.metadatas[idx]);
+                    $scope.selectItem($scope.domains[idx]);
                 else {
                     sessionStorage.removeItem('lastSelectedDomain');
 
@@ -54,6 +57,16 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                 selectFirstItem();
         }
 
+        function _mapCaches(caches) {
+            return _.map(caches, function (cache) {
+                return {
+                    label: cache.name,
+                    value: cache._id,
+                    cache: cache
+                }
+            });
+        }
+
         $scope.removeDemoItems = function () {
             $table.tableReset();
 
@@ -67,8 +80,8 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                                 .success(function (data) {
                                     $scope.spaces = data.spaces;
                                     $scope.clusters = data.clusters;
-                                    $scope.caches = data.caches;
-                                    $scope.metadatas = data.metadatas;
+                                    $scope.caches = _mapCaches(data.caches);
+                                    $scope.domains = data.domains;
 
                                     $scope.ui.generatedCachesClusters = [];
 
@@ -85,9 +98,9 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                 });
         };
 
-        $scope.hasDemoItems =  function () {
-            return _.findIndex($scope.metadatas, function (meta) {
-                    return meta.demo;
+        $scope.hasDemoItems = function () {
+            return _.findIndex($scope.domains, function (domain) {
+                    return domain.demo;
                 }) >= 0;
         };
 
@@ -182,7 +195,7 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
         $scope.tablePairSave = $table.tablePairSave;
         $scope.tablePairSaveVisible = $table.tablePairSaveVisible;
 
-        $scope.metadataVariants = $common.mkOptions(['Annotations', 'Configuration']);
+        $scope.queryMetadataVariants = $common.mkOptions(['Annotations', 'Configuration']);
 
         var INFO_CONNECT_TO_DB = 'Configure connection to database';
         var INFO_SELECT_SCHEMAS = 'Select schemas to load tables from';
@@ -191,7 +204,11 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
         var LOADING_JDBC_DRIVERS = {text: 'Loading JDBC drivers...'};
         var LOADING_SCHEMAS = {text: 'Loading schemas...'};
         var LOADING_TABLES = {text: 'Loading tables...'};
-        var SAVING_METADATA = {text: 'Saving domain models...'};
+        var SAVING_DOMAINS = {text: 'Saving domain model...'};
+
+        $scope.ui.invalidKeyFieldsTooltip = 'Found key types without configured key fields<br/>' +
+            'It may be a result of import tables from database without primary keys<br/>' +
+            'Key field for suck key types should be configured manually';
 
         var previews = [];
 
@@ -272,12 +289,12 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
             tablesOnly: true
         };
 
-    function _loadPresets () {
+        function _loadPresets() {
             try {
-               var restoredPresets =  JSON.parse(localStorage.dbPresets);
+                var restoredPresets = JSON.parse(localStorage.dbPresets);
 
                 _.forEach(restoredPresets, function (restoredPreset) {
-                    var preset = _.find(_dbPresets, { jdbcDriverClass: restoredPreset.jdbcDriverClass });
+                    var preset = _.find(_dbPresets, {jdbcDriverClass: restoredPreset.jdbcDriverClass});
 
                     if (preset) {
                         preset.jdbcUrl = restoredPreset.jdbcUrl;
@@ -292,9 +309,9 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
 
         _loadPresets();
 
-        function _savePreset (preset) {
+        function _savePreset(preset) {
             try {
-                var oldPreset = _.find(_dbPresets, { jdbcDriverClass: preset.jdbcDriverClass });
+                var oldPreset = _.find(_dbPresets, {jdbcDriverClass: preset.jdbcDriverClass});
 
                 if (oldPreset)
                     angular.extend(oldPreset, preset);
@@ -351,9 +368,9 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
             {value: false, label: 'DESC'}
         ];
 
-        $scope.panels = { activePanels: [0, 1] };
+        $scope.panels = {activePanels: [0, 1]};
 
-        $scope.metadatas = [];
+        $scope.domains = [];
 
         $scope.isJavaBuiltInClass = function () {
             var item = $scope.backupItem;
@@ -399,12 +416,12 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
         // Pre-fetch modal dialogs.
         var importDomainModal = $modal({scope: $scope, templateUrl: '/configuration/domains-import.html', show: false});
 
-        var hideimportDomain = importDomainModal.hide;
+        var hideImportDomain = importDomainModal.hide;
 
         importDomainModal.hide = function () {
             $agentDownload.stopAwaitAgent();
 
-            hideimportDomain();
+            hideImportDomain();
         };
 
         /**
@@ -552,20 +569,54 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                 });
         }
 
-        function _dropDownItem(lbl, val) {
-            return {
-                label: lbl,
-                value: val
+        var DFLT_PARTITIONED_CACHE = {
+            label: 'PARTITIONED',
+            value: -1,
+            cache: {
+                name: 'PARTITIONED',
+                cacheMode: 'PARTITIONED',
+                atomicityMode: 'ATOMIC',
+                cacheStoreFactory: {
+                    kind: 'CacheJdbcPojoStoreFactory',
+                    CacheJdbcPojoStoreFactory: {
+                        dataSourceBean: 'dataSource'
+                    }
+                },
+                readThrough: true,
+                writeThrough: true
             }
-        }
+        };
+
+        var DFLT_REPLICATED_CACHE = {
+            label: 'REPLICATED',
+            value: -2,
+            cache: {
+                name: 'REPLICATED',
+                cacheMode: 'REPLICATED',
+                atomicityMode: 'ATOMIC',
+                cacheStoreFactory: {
+                    kind: 'CacheJdbcPojoStoreFactory',
+                    CacheJdbcPojoStoreFactory: {
+                        dataSourceBean: 'dataSource'
+                    }
+                },
+                readThrough: true,
+                writeThrough: true
+            }
+        };
 
-        var IMPORT_DM_NEW_CACHE = 'IMPORT_DM_NEW_CACHE';
-        var IMPORT_DM_DO_NOT_GENERATE = 'IMPORT_DM_DO_NOT_GENERATE';
-        var IMPORT_DM_DFLT_PARTITIONED_CACHE = 'IMPORT_DM_DFLT_PARTITIONED_CACHE';
-        var IMPORT_DM_DFLT_REPLICATED_CACHE = 'IMPORT_DM_DFLT_REPLICATED_CACHE';
+        var IMPORT_DM_NEW_CACHE = {
+            label: 'New cache',
+            value: -1
+        };
+
+        var IMPORT_DM_DO_NOT_GENERATE = {
+            label: 'Do not generate',
+            value: -2
+        };
 
-        $scope.ui.dfltTableCache = IMPORT_DM_NEW_CACHE;
-        $scope.ui.dfltTableTemplate = IMPORT_DM_DFLT_PARTITIONED_CACHE;
+        $scope.ui.dfltTableCache = IMPORT_DM_NEW_CACHE.value;
+        $scope.ui.dfltTableTemplate = DFLT_PARTITIONED_CACHE.value;
 
         /**
          * Load list of database tables.
@@ -586,15 +637,9 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
 
             $http.post('/api/v1/agent/tables', preset)
                 .success(function (tables) {
-                    $scope.importCaches = [
-                        _dropDownItem('New cache', IMPORT_DM_NEW_CACHE),
-                        _dropDownItem('Do not generate', IMPORT_DM_DO_NOT_GENERATE)
-                    ];
+                    $scope.importCaches = [IMPORT_DM_NEW_CACHE, IMPORT_DM_DO_NOT_GENERATE];
 
-                    $scope.importCacheTemplates = [
-                        _dropDownItem('PARTITIONED', 'IMPORT_DM_DFLT_PARTITIONED_CACHE'),
-                        _dropDownItem('REPLICATED', 'IMPORT_DM_DFLT_REPLICATED_CACHE')
-                    ];
+                    $scope.importCacheTemplates = [DFLT_PARTITIONED_CACHE, DFLT_REPLICATED_CACHE];
 
                     if (!$common.isEmptyArray($scope.caches)) {
                         $scope.importCaches.push(null);
@@ -608,8 +653,8 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
 
                     _.forEach(tables, function (tbl, idx) {
                         tbl.id = idx;
-                        tbl.cache = IMPORT_DM_NEW_CACHE;
-                        tbl.template = 'IMPORT_DM_DFLT_PARTITIONED_CACHE';
+                        tbl.cache = IMPORT_DM_NEW_CACHE.value;
+                        tbl.template = DFLT_PARTITIONED_CACHE.value;
                         tbl.label = tbl.schema + '.' + tbl.tbl;
                         tbl.editCache = false;
                         tbl.editTemplate = false;
@@ -625,16 +670,16 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                 .error(function (errMsg) {
                     $common.showError(errMsg);
                 })
-                .finally(function() {
+                .finally(function () {
                     $loading.finish('importDomainFromDb');
                 });
         }
 
         $scope.dfltTableTemplateVisible = function () {
-            return $scope.ui.dfltTableCache === IMPORT_DM_NEW_CACHE;
+            return $scope.ui.dfltTableCache === IMPORT_DM_NEW_CACHE.value;
         };
 
-        $scope.applyDefaults = function() {
+        $scope.applyDefaults = function () {
             _.forEach($scope.importDomain.displayedTables, function (table) {
                 table.editCache = false;
                 table.editTemplate = false;
@@ -672,7 +717,7 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
         };
 
         $scope.dbTableTemplate = function (tbl) {
-            if (tbl.cache === IMPORT_DM_NEW_CACHE)
+            if (tbl.cache === IMPORT_DM_NEW_CACHE.value)
                 return _.find($scope.importCacheTemplates, {value: tbl.template}).label;
 
             return '';
@@ -685,7 +730,7 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
             $scope.importDomain.action = 'options';
             $scope.importDomain.button = 'Save';
             $scope.importDomain.info = INFO_SELECT_OPTIONS;
-            $scope.importDomain.loadingOptions = SAVING_METADATA;
+            $scope.importDomain.loadingOptions = SAVING_DOMAINS;
         }
 
         function toJavaClassName(name) {
@@ -698,7 +743,7 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
             for (var i = 0; i < len; i++) {
                 var ch = name.charAt(i);
 
-                if (ch === ' ' ||  ch === '_')
+                if (ch === ' ' || ch === '_')
                     capitalizeNext = true;
                 else if (capitalizeNext) {
                     buf += ch.toLocaleUpperCase();
@@ -731,13 +776,13 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                             $scope.caches.push(generatedCache);
                         });
 
-                        _.forEach(savedBatch.savedMetas, function (savedItem) {
-                            var idx = _.findIndex($scope.metadatas, function (meta) {
-                                return meta._id === savedItem._id;
+                        _.forEach(savedBatch.savedDomains, function (savedItem) {
+                            var idx = _.findIndex($scope.domains, function (domain) {
+                                return domain._id === savedItem._id;
                             });
 
                             if (idx >= 0)
-                                $scope.metadatas[idx] = savedItem;
+                                $scope.domains[idx] = savedItem;
                             else
                                 newItems.push(savedItem);
 
@@ -745,11 +790,11 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                         });
 
                         _.forEach(newItems, function (item) {
-                            $scope.metadatas.push(item);
+                            $scope.domains.push(item);
                         });
 
-                        if (!lastItem && $scope.metadatas.length > 0)
-                            lastItem = $scope.metadatas[0];
+                        if (!lastItem && $scope.domains.length > 0)
+                            lastItem = $scope.domains[0];
 
                         $scope.selectItem(lastItem);
 
@@ -762,7 +807,7 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                     .error(function (errMsg) {
                         $common.showError(errMsg);
                     })
-                    .finally(function() {
+                    .finally(function () {
                         $loading.finish('importDomainFromDb');
 
                         importDomainModal.hide();
@@ -842,18 +887,19 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                         _.forEach(table.idxs, function (idx) {
                             var fields = Object.keys(idx.fields);
 
-                            indexes.push(
-                                {name: idx.name, indexType: 'SORTED', fields: _.map(fields, function (fieldName) {
+                            indexes.push({
+                                name: idx.name, indexType: 'SORTED', fields: _.map(fields, function (fieldName) {
                                     return {
                                         name: toJavaName(fieldName),
                                         direction: !idx.fields[fieldName]
                                     };
-                                })});
+                                })
+                            });
                         });
                     }
 
-                    var domainFound = _.find($scope.metadatas, function (meta) {
-                        return meta.valueType === valType;
+                    var domainFound = _.find($scope.domains, function (domain) {
+                        return domain.valueType === valType;
                     });
 
                     var newDomain = {
@@ -888,17 +934,30 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                         newDomain.keyType = newDomain.keyFields[0].jdbcType.javaType;
 
                     // Prepare caches for generation.
-                    if ($scope.ui.generateCaches && table.cache !== IMPORT_DM_DO_NOT_GENERATE) {
-                        newDomain.newCache = {
-                            name: typeName + 'Cache',
-                            cache: table.cache,
-                            dialect: $scope.importDomain.demo ? 'H2' : $scope.selectedPreset.db,
-                            clusters: $scope.ui.generatedCachesClusters,
-                            demo: $scope.importDomain.demo
-                        };
-
-                        if (table.cache === IMPORT_DM_NEW_CACHE)
-                            newDomain.newCache.template = table.template;
+                    if ($scope.ui.generateCaches && table.cache !== IMPORT_DM_DO_NOT_GENERATE.value) {
+                        if (table.cache === IMPORT_DM_NEW_CACHE.value) {
+                            var template = _.find($scope.importCacheTemplates, {value: table.template});
+
+                            newDomain.newCache = angular.copy(template ? template.cache : DFLT_PARTITIONED_CACHE.cache);
+
+                            delete newDomain.newCache._id;
+                            newDomain.newCache.name = typeName + 'Cache';
+                            newDomain.newCache.clusters = $scope.ui.generatedCachesClusters;
+                            newDomain.newCache.demo = $scope.importDomain.demo;
+
+                            // POJO store factory is not defined in template.
+                            if (!newDomain.newCache.cacheStoreFactory ||
+                                newDomain.newCache.cacheStoreFactory.kind !== 'CacheJdbcPojoStoreFactory')
+                                newDomain.newCache.cacheStoreFactory = {
+                                    kind: 'CacheJdbcPojoStoreFactory',
+                                    CacheJdbcPojoStoreFactory: { dataSourceBean: 'dataSource' }
+                                };
+
+                            newDomain.newCache.cacheStoreFactory.CacheJdbcPojoStoreFactory.dialect =
+                                $scope.importDomain.demo ? 'H2' : $scope.selectedPreset.db
+                        }
+                        else if (table.cache !== IMPORT_DM_DO_NOT_GENERATE._id)
+                            newDomain.caches = [table.cache];
                     }
 
                     batch.push(newDomain);
@@ -919,7 +978,9 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                     '</span>';
             }
 
-            var itemsToConfirm = _.filter(batch, function (item) { return item.confirm; });
+            var itemsToConfirm = _.filter(batch, function (item) {
+                return item.confirm;
+            });
 
             function checkOverwrite() {
                 if (itemsToConfirm.length > 0)
@@ -939,8 +1000,10 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                 checkOverwrite();
             else
                 $confirm.confirm('Some tables have no primary key.<br/>' +
-                    'You will need to configure key type and key fields for such tables after import complete.')
-                    .then(function () { checkOverwrite(); });
+                        'You will need to configure key type and key fields for such tables after import complete.')
+                    .then(function () {
+                        checkOverwrite();
+                    });
         }
 
         $scope.importDomainNext = function () {
@@ -948,10 +1011,10 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                 return;
 
             if ($scope.importDomain.action === 'connect') {
-               if ($scope.importDomain.demo && $scope.demoConnection.db !== 'H2')
-                   importDomainModal.hide();
-               else
-                   _loadSchemas();
+                if ($scope.importDomain.demo && $scope.demoConnection.db !== 'H2')
+                    importDomainModal.hide();
+                else
+                    _loadSchemas();
             }
             else if ($scope.importDomain.action === 'schemas')
                 _loadTables();
@@ -1016,11 +1079,11 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
         $scope.importDomainPrev = function () {
             $scope.importDomain.button = 'Next';
 
-            if  ($scope.importDomain.action === 'options') {
+            if ($scope.importDomain.action === 'options') {
                 $scope.importDomain.action = 'tables';
                 $scope.importDomain.info = INFO_SELECT_TABLES;
             }
-            else if  ($scope.importDomain.action === 'tables' && $scope.importDomain.schemas.length > 0) {
+            else if ($scope.importDomain.action === 'tables' && $scope.importDomain.schemas.length > 0) {
                 $scope.importDomain.action = 'schemas';
                 $scope.importDomain.info = INFO_SELECT_SCHEMAS;
                 $scope.importDomain.loadingOptions = LOADING_TABLES;
@@ -1032,24 +1095,24 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
             }
         };
 
-        $scope.metadataTitle = function () {
-            return $scope.ui.showValid ? 'Types domain models:' : 'Type domain models without key fields:';
+        $scope.domainModelTitle = function () {
+            return $scope.ui.showValid ? 'Domain model types:' : 'Domain model types without key fields:';
         };
 
         function selectFirstItem() {
-            if ($scope.metadatas.length > 0)
-                $scope.selectItem($scope.metadatas[0]);
+            if ($scope.domains.length > 0)
+                $scope.selectItem($scope.domains[0]);
         }
 
         // When landing on the page, get domain models and show them.
-        $loading.start('loadingMetadataScreen');
+        $loading.start('loadingDomainModelsScreen');
 
         $http.post('/api/v1/configuration/domains/list')
             .success(function (data) {
                 $scope.spaces = data.spaces;
                 $scope.clusters = data.clusters;
-                $scope.caches = data.caches;
-                $scope.metadatas = data.metadatas;
+                $scope.caches = _mapCaches(data.caches);
+                $scope.domains = data.domains;
 
                 _.forEach($scope.clusters, function (cluster) {
                     $scope.ui.generatedCachesClusters.push(cluster.value);
@@ -1059,7 +1122,6 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                 $http.get('/models/domains.json')
                     .success(function (data) {
                         $scope.domainModel = data.domainModel;
-                        $scope.metadataDb = data.metadataDb;
 
                         $scope.ui.groups = data.domainModel;
 
@@ -1078,16 +1140,16 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
 
                                 $scope.ui.checkDirty(val, srcItem);
 
-                                $scope.preview.general.xml = $generatorXml.metadataGeneral(val).asString();
-                                $scope.preview.general.java = $generatorJava.metadataGeneral(val).asString();
+                                $scope.preview.general.xml = $generatorXml.domainModelGeneral(val).asString();
+                                $scope.preview.general.java = $generatorJava.domainModelGeneral(val).asString();
                                 $scope.preview.general.allDefaults = $common.isEmptyString($scope.preview.general.xml);
 
-                                $scope.preview.query.xml = $generatorXml.metadataQuery(val).asString();
-                                $scope.preview.query.java = $generatorJava.metadataQuery(val).asString();
+                                $scope.preview.query.xml = $generatorXml.domainModelQuery(val).asString();
+                                $scope.preview.query.java = $generatorJava.domainModelQuery(val).asString();
                                 $scope.preview.query.allDefaults = $common.isEmptyString($scope.preview.query.xml);
 
-                                $scope.preview.store.xml = $generatorXml.metadataStore(val).asString();
-                                $scope.preview.store.java = $generatorJava.metadataStore(val, false).asString();
+                                $scope.preview.store.xml = $generatorXml.domainStore(val).asString();
+                                $scope.preview.store.java = $generatorJava.domainStore(val, false).asString();
                                 $scope.preview.store.allDefaults = $common.isEmptyString($scope.preview.store.xml);
                             }
                         }, true);
@@ -1099,9 +1161,9 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
             .error(function (errMsg) {
                 $common.showError(errMsg);
             })
-            .finally(function() {
+            .finally(function () {
                 $scope.ui.ready = true;
-                $loading.finish('loadingMetadataScreen');
+                $loading.finish('loadingDomainModelsScreen');
             });
 
         $scope.selectItem = function (item, backup) {
@@ -1116,9 +1178,11 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                     else
                         sessionStorage.removeItem('lastSelectedDomain');
                 }
-                catch (error) { }
+                catch (ignored) {
+                    // Ignore possible errors when read from storage.
+                }
 
-                _.forEach(previews, function(preview) {
+                _.forEach(previews, function (preview) {
                     preview.attractAttention = false;
                 });
 
@@ -1140,10 +1204,6 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
             }
 
             $common.confirmUnsavedChanges($scope.ui.isDirty(), selectItem);
-
-            $scope.ui.formTitle = $common.isDefined($scope.backupItem) && $scope.backupItem._id ?
-                'Selected domain model: ' + $scope.backupItem.valueType
-                : 'New domain model';
         };
 
         function prepareNewItem(cacheId) {
@@ -1179,8 +1239,8 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
             else if (!$common.isValidJavaClass('Value type', item.valueType, false, 'valueType'))
                 return false;
 
-            var str = $common.metadataForStoreConfigured(item);
-            var qry = $common.metadataForQueryConfigured(item);
+            var str = $common.domainForStoreConfigured(item);
+            var qry = $common.domainForQueryConfigured(item);
 
             if (item.queryMetadata === 'Configuration' && qry) {
                 if ($common.isEmptyArray(item.fields))
@@ -1222,8 +1282,8 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
 
         // Save domain models into database.
         function save(item) {
-            var qry = $common.metadataForQueryConfigured(item);
-            var str = $common.metadataForStoreConfigured(item);
+            var qry = $common.domainForQueryConfigured(item);
+            var str = $common.domainForStoreConfigured(item);
 
             item.kind = 'query';
 
@@ -1236,16 +1296,16 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                 .success(function (res) {
                     $scope.ui.markPristine();
 
-                    var savedMeta = res.savedMetas[0];
+                    var savedMeta = res.savedDomains[0];
 
-                    var idx = _.findIndex($scope.metadatas, function (metadata) {
-                        return metadata._id === savedMeta._id;
+                    var idx = _.findIndex($scope.domains, function (domain) {
+                        return domain._id === savedMeta._id;
                     });
 
                     if (idx >= 0)
-                        angular.extend($scope.metadatas[idx], savedMeta);
+                        angular.extend($scope.domains[idx], savedMeta);
                     else
-                        $scope.metadatas.push(savedMeta);
+                        $scope.domains.push(savedMeta);
 
                     $scope.selectItem(savedMeta);
 
@@ -1266,9 +1326,9 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
             }
         };
 
-        function _metadataNames() {
-            return _.map($scope.metadatas, function (meta) {
-                return meta.valueType;
+        function _domainNames() {
+            return _.map($scope.domains, function (domain) {
+                return domain.valueType;
             });
         }
 
@@ -1276,7 +1336,7 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
         $scope.cloneItem = function () {
             if ($scope.tableReset(true)) {
                 if (validate($scope.backupItem))
-                    $clone.confirm($scope.backupItem.valueType, _metadataNames()).then(function (newName) {
+                    $clone.confirm($scope.backupItem.valueType, _domainNames()).then(function (newName) {
                         var item = angular.copy($scope.backupItem);
 
                         delete item._id;
@@ -1296,36 +1356,36 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
 
             $confirm.confirm('Are you sure you want to remove domain model: "' + selectedItem.valueType + '"?')
                 .then(function () {
-                        var _id = selectedItem._id;
+                    var _id = selectedItem._id;
 
-                        $http.post('/api/v1/configuration/domains/remove', {_id: _id})
-                            .success(function () {
-                                $common.showInfo('Domain model has been removed: ' + selectedItem.valueType);
+                    $http.post('/api/v1/configuration/domains/remove', {_id: _id})
+                        .success(function () {
+                            $common.showInfo('Domain model has been removed: ' + selectedItem.valueType);
 
-                                var metadatas = $scope.metadatas;
+                            var domains = $scope.domains;
 
-                                var idx = _.findIndex(metadatas, function (metadata) {
-                                    return metadata._id === _id;
-                                });
+                            var idx = _.findIndex(domains, function (domain) {
+                                return domain._id === _id;
+                            });
 
-                                if (idx >= 0) {
-                                    metadatas.splice(idx, 1);
+                            if (idx >= 0) {
+                                domains.splice(idx, 1);
 
-                                    if (metadatas.length > 0)
-                                        $scope.selectItem(metadatas[0]);
-                                    else
-                                        $scope.selectItem(undefined, undefined);
-                                }
+                                if (domains.length > 0)
+                                    $scope.selectItem(domains[0]);
+                                else
+                                    $scope.selectItem(undefined, undefined);
+                            }
 
-                                if (!$scope.ui.showValid) {
-                                    var validFilter = $filter('domainsValidation');
+                            if (!$scope.ui.showValid) {
+                                var validFilter = $filter('domainsValidation');
 
-                                    $scope.ui.showValid = validFilter($scope.metadatas, false, true).length === 0;
-                                }
-                            })
-                            .error(function (errMsg) {
-                                $common.showError(errMsg);
-                            });
+                                $scope.ui.showValid = validFilter($scope.domains, false, true).length === 0;
+                            }
+                        })
+                        .error(function (errMsg) {
+                            $common.showError(errMsg);
+                        });
                 });
         };
 
@@ -1335,19 +1395,19 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
 
             $confirm.confirm('Are you sure you want to remove all domain models?')
                 .then(function () {
-                        $http.post('/api/v1/configuration/domains/remove/all')
-                            .success(function () {
-                                $common.showInfo('All domain models have been removed');
+                    $http.post('/api/v1/configuration/domains/remove/all')
+                        .success(function () {
+                            $common.showInfo('All domain models have been removed');
 
-                                $scope.metadatas = [];
+                            $scope.domains = [];
 
-                                $scope.selectItem(undefined, undefined);
+                            $scope.selectItem(undefined, undefined);
 
-                                $scope.ui.showValid = true;
-                            })
-                            .error(function (errMsg) {
-                                $common.showError(errMsg);
-                            });
+                            $scope.ui.showValid = true;
+                        })
+                        .error(function (errMsg) {
+                            $common.showError(errMsg);
+                        });
                 });
         };
 
@@ -1356,16 +1416,28 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
 
             var validFilter = $filter('domainsValidation');
 
-            var idx = _.findIndex(validFilter($scope.metadatas, $scope.ui.showValid, true), function (metadata) {
-                return metadata._id === $scope.selectedItem._id;
-            });
+            var idx = -1;
+
+            if ($common.isDefined($scope.selectedItem)) {
+                idx = _.findIndex(validFilter($scope.domains, $scope.ui.showValid, true), function (domain) {
+                    return domain._id === $scope.selectedItem._id;
+                });
+            }
 
             if (idx === -1)
                 $scope.selectItem(undefined, undefined);
         };
 
         var pairFields = {
-            fields: {msg: 'Query field class', id: 'QryField', idPrefix: 'Key', searchCol: 'name', valueCol: 'key', classValidation: true, dupObjName: 'name'},
+            fields: {
+                msg: 'Query field class',
+                id: 'QryField',
+                idPrefix: 'Key',
+                searchCol: 'name',
+                valueCol: 'key',
+                classValidation: true,
+                dupObjName: 'name'
+            },
             aliases: {id: 'Alias', idPrefix: 'Value', searchCol: 'alias', valueCol: 'value', dupObjName: 'alias'}
         };
 
@@ -1395,26 +1467,26 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
         };
 
         function tableDbFieldValue(field, index) {
-            return (index < 0) ?
-                {
-                    databaseFieldName: field.newDatabaseFieldName,
-                    databaseFieldType: field.newDatabaseFieldType,
-                    javaFieldName: field.newJavaFieldName,
-                    javaFieldType: field.newJavaFieldType
-                }
-                : {
-                    databaseFieldName: field.curDatabaseFieldName,
-                    databaseFieldType: field.curDatabaseFieldType,
-                    javaFieldName: field.curJavaFieldName,
-                    javaFieldType: field.curJavaFieldType
-                };
+            return (index < 0) ? {
+                databaseFieldName: field.newDatabaseFieldName,
+                databaseFieldType: field.newDatabaseFieldType,
+                javaFieldName: field.newJavaFieldName,
+                javaFieldType: field.newJavaFieldType
+            } : {
+                databaseFieldName: field.curDatabaseFieldName,
+                databaseFieldType: field.curDatabaseFieldType,
+                javaFieldName: field.curJavaFieldName,
+                javaFieldType: field.curJavaFieldType
+            };
         }
 
         $scope.tableDbFieldSaveVisible = function (field, index) {
             var dbFieldValue = tableDbFieldValue(field, index);
 
-            return !$common.isEmptyString(dbFieldValue.databaseFieldName) && $common.isDefined(dbFieldValue.databaseFieldType) &&
-                !$common.isEmptyString(dbFieldValue.javaFieldName) && $common.isDefined(dbFieldValue.javaFieldType);
+            return $common.isDefined(dbFieldValue.databaseFieldType) &&
+                $common.isDefined(dbFieldValue.javaFieldType) &&
+                !$common.isEmptyString(dbFieldValue.databaseFieldName) &&
+                !$common.isEmptyString(dbFieldValue.javaFieldName);
         };
 
         var dbFieldTables = {
@@ -1586,9 +1658,13 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
         };
 
         function tableIndexItemValue(field, index) {
-            return index < 0 ?
-                {name: field.newFieldName, direction: field.newDirection}
-                : {name: field.curFieldName, direction: field.curDirection};
+            return index < 0 ? {
+                name: field.newFieldName,
+                direction: field.newDirection
+            } : {
+                name: field.curFieldName,
+                direction: field.curDirection
+            };
         }
 
         $scope.tableIndexItemStartEdit = function (field, indexIdx, curIdx) {
@@ -1670,11 +1746,11 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
             $common.resetItem($scope.backupItem, resetTo, $scope.domain, group);
         };
 
-        $scope.resetAll = function() {
+        $scope.resetAll = function () {
             $table.tableReset();
 
             $confirm.confirm('Are you sure you want to undo all changes for current domain model?')
-                .then(function() {
+                .then(function () {
                     $scope.backupItem = $scope.selectedItem ? angular.copy($scope.selectedItem) : prepareNewItem();
                 });
         };

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/controllers/igfs-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/igfs-controller.js b/modules/control-center-web/src/main/js/controllers/igfs-controller.js
index a927e39..fdb40d5 100644
--- a/modules/control-center-web/src/main/js/controllers/igfs-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/igfs-controller.js
@@ -276,9 +276,6 @@ consoleModule.controller('igfsController', [
                 }
 
                 $common.confirmUnsavedChanges($scope.ui.isDirty(), selectItem);
-
-                $scope.ui.formTitle = $common.isDefined($scope.backupItem) && $scope.backupItem._id ?
-                    'Selected IGFS: ' + $scope.backupItem.name : 'New IGFS';
             };
 
             function prepareNewItem(id) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/controllers/models/caches.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/models/caches.json b/modules/control-center-web/src/main/js/controllers/models/caches.json
index e749d60..e89130a 100644
--- a/modules/control-center-web/src/main/js/controllers/models/caches.json
+++ b/modules/control-center-web/src/main/js/controllers/models/caches.json
@@ -29,12 +29,12 @@
         },
         {
           "label": "Domain models",
-          "id": "metadata",
+          "id": "domains",
           "type": "dropdown-multiple",
-          "model": "metadatas",
+          "model": "domains",
           "placeholder": "Choose domain models",
           "placeholderEmpty": "No domain models configured",
-          "items": "metadatas",
+          "items": "domains",
           "tip": [
             "Select domain models to describe types in cache"
           ],

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/controllers/models/domains.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/models/domains.json b/modules/control-center-web/src/main/js/controllers/models/domains.json
index 384ba0e..c6fd26a 100644
--- a/modules/control-center-web/src/main/js/controllers/models/domains.json
+++ b/modules/control-center-web/src/main/js/controllers/models/domains.json
@@ -27,7 +27,7 @@
           "id": "queryMetadata",
           "type": "dropdown",
           "model": "queryMetadata",
-          "items": "metadataVariants",
+          "items": "queryMetadataVariants",
           "required": true,
           "tip": [
             "Query metadata configured with: ",

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/db.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/db.js b/modules/control-center-web/src/main/js/db.js
index cd2c6c9..8ecb71e 100644
--- a/modules/control-center-web/src/main/js/db.js
+++ b/modules/control-center-web/src/main/js/db.js
@@ -70,8 +70,8 @@ exports.Space = mongoose.model('Space', new Schema({
     }]
 }));
 
-// Define Cache type metadata schema.
-var CacheTypeMetadataSchema = new Schema({
+// Define Domain model schema.
+var DomainModelSchema = new Schema({
     space: {type: ObjectId, ref: 'Space'},
     caches: [{type: ObjectId, ref: 'Cache'}],
     queryMetadata: {type: String, enum: ['Annotations', 'Config']},
@@ -88,15 +88,15 @@ var CacheTypeMetadataSchema = new Schema({
     demo: Boolean
 });
 
-// Define Cache type metadata model.
-exports.CacheTypeMetadata = mongoose.model('CacheTypeMetadata', CacheTypeMetadataSchema);
+// Define model of Domain models.
+exports.DomainModel = mongoose.model('DomainModel', DomainModelSchema);
 
 // Define Cache schema.
 var CacheSchema = new Schema({
     space: {type: ObjectId, ref: 'Space'},
     name: String,
     clusters: [{type: ObjectId, ref: 'Cluster'}],
-    metadatas: [{type: ObjectId, ref: 'CacheTypeMetadata'}],
+    domains: [{type: ObjectId, ref: 'DomainModel'}],
     cacheMode: {type: String, enum: ['PARTITIONED', 'REPLICATED', 'LOCAL']},
     atomicityMode: {type: String, enum: ['ATOMIC', 'TRANSACTIONAL']},
 
@@ -217,7 +217,7 @@ var CacheSchema = new Schema({
 
 // Install deep populate plugin.
 CacheSchema.plugin(deepPopulate, {
-    whitelist: ['metadatas']
+    whitelist: ['domains']
 });
 
 // Define Cache model.
@@ -457,7 +457,7 @@ var ClusterSchema = new Schema({
 ClusterSchema.plugin(deepPopulate, {
     whitelist: [
         'caches',
-        'caches.metadatas',
+        'caches.domains',
         'igfss'
     ]
 });

http://git-wip-us.apache.org/repos/asf/ignite/blob/dd05e1b3/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 45571e3..aae4a41 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -986,8 +986,8 @@ $generatorJava.cacheQuery = function (cache, varName, res) {
     $generatorJava.property(res, varName, cache, 'sqlOnheapRowCacheSize');
     $generatorJava.property(res, varName, cache, 'longQueryWarningTimeout');
 
-    var indexedTypes = _.filter(cache.metadatas, function (meta) {
-        return meta.queryMetadata === 'Annotations'
+    var indexedTypes = _.filter(cache.domains, function (domain) {
+        return domain.queryMetadata === 'Annotations'
     });
 
     if ($commonUtils.isDefinedAndNotEmpty(indexedTypes)) {
@@ -997,9 +997,9 @@ $generatorJava.cacheQuery = function (cache, varName, res) {
 
         var len = indexedTypes.length - 1;
 
-        _.forEach(indexedTypes, function(meta, ix) {
-            res.line($generatorJava.toJavaCode(res.importClass(meta.keyType), 'class') + ', ' +
-                $generatorJava.toJavaCode(res.importClass(meta.valueType), 'class') + (ix < len ? ',' : ''));
+        _.forEach(indexedTypes, function(domain, ix) {
+            res.line($generatorJava.toJavaCode(res.importClass(domain.keyType), 'class') + ', ' +
+                $generatorJava.toJavaCode(res.importClass(domain.valueType), 'class') + (ix < len ? ',' : ''));
         });
 
         res.endBlock(');');
@@ -1176,19 +1176,19 @@ $generatorJava.cacheStore = function (cache, domains, cacheVarName, res) {
 
                 res.needEmptyLine = true;
 
-                var metaConfigs = _.filter(domains, function (meta) {
-                    return $generatorCommon.domainQueryMetadata(meta) === 'Configuration' &&
-                        $commonUtils.isDefinedAndNotEmpty(meta.databaseTable);
+                var domainConfigs = _.filter(domains, function (domain) {
+                    return $generatorCommon.domainQueryMetadata(domain) === 'Configuration' &&
+                        $commonUtils.isDefinedAndNotEmpty(domain.databaseTable);
                 });
 
-                if ($commonUtils.isDefinedAndNotEmpty(metaConfigs)) {
+                if ($commonUtils.isDefinedAndNotEmpty(domainConfigs)) {
                     $generatorJava.declareVariable(res, 'jdbcTypes', 'java.util.Collection', 'java.util.ArrayList', 'org.apache.ignite.cache.store.jdbc.JdbcType');
 
                     res.needEmptyLine = true;
 
-                    _.forEach(metaConfigs, function (meta) {
-                        if ($commonUtils.isDefinedAndNotEmpty(meta.databaseTable))
-                            res.line('jdbcTypes.add(jdbcType' + $generatorJava.extractType(meta.valueType) + '(' + cacheVarName + '.getName()));');
+                    _.forEach(domainConfigs, function (domain) {
+                        if ($commonUtils.isDefinedAndNotEmpty(domain.databaseTable))
+                            res.line('jdbcTypes.add(jdbcType' + $generatorJava.extractType(domain.valueType) + '(' + cacheVarName + '.getName()));');
                     });
 
                     res.needEmptyLine = true;
@@ -1359,8 +1359,8 @@ $generatorJava.cacheStatistics = function (cache, varName, res) {
 };
 
 // Generate domain model query fields.
-$generatorJava.metadataQueryFields = function (res, meta) {
-    var fields = meta.fields;
+$generatorJava.domainModelQueryFields = function (res, domain) {
+    var fields = domain.fields;
 
     if (fields && fields.length > 0) {
         $generatorJava.declareVariable(res, 'fields', 'java.util.LinkedHashMap', 'java.util.LinkedHashMap', 'java.lang.String', 'java.lang.String');
@@ -1378,8 +1378,8 @@ $generatorJava.metadataQueryFields = function (res, meta) {
 };
 
 // Generate domain model query aliases.
-$generatorJava.metadataQueryAliases = function (res, meta) {
-    var aliases = meta.aliases;
+$generatorJava.domainModelQueryAliases = function (res, domain) {
+    var aliases = domain.aliases;
 
     if (aliases && aliases.length > 0) {
         $generatorJava.declareVariable(res, 'aliases', 'java.util.Map', 'java.util.HashMap', 'java.lang.String', 'java.lang.String');
@@ -1397,8 +1397,8 @@ $generatorJava.metadataQueryAliases = function (res, meta) {
 };
 
 // Generate domain model indexes.
-$generatorJava.metadataQueryIndexes = function (res, meta) {
-    var indexes = meta.indexes;
+$generatorJava.domainModelQueryIndexes = function (res, domain) {
+    var indexes = domain.indexes;
 
     if (indexes && indexes.length > 0) {
         res.needEmptyLine = true;
@@ -1452,8 +1452,8 @@ $generatorJava.metadataQueryIndexes = function (res, meta) {
 };
 
 // Generate domain model db fields.
-$generatorJava.metadataDatabaseFields = function (res, meta, fieldProperty) {
-    var dbFields = meta[fieldProperty];
+$generatorJava.domainModelDatabaseFields = function (res, domain, fieldProperty) {
+    var dbFields = domain[fieldProperty];
 
     if (dbFields && dbFields.length > 0) {
         res.needEmptyLine = true;
@@ -1479,12 +1479,12 @@ $generatorJava.metadataDatabaseFields = function (res, meta, fieldProperty) {
 };
 
 // Generate domain model general group.
-$generatorJava.metadataGeneral = function (meta, res) {
+$generatorJava.domainModelGeneral = function (domain, res) {
     if (!res)
         res = $generatorCommon.builder();
 
-    $generatorJava.classNameProperty(res, 'typeMeta', meta, 'keyType');
-    $generatorJava.property(res, 'typeMeta', meta, 'valueType');
+    $generatorJava.classNameProperty(res, 'typeMeta', domain, 'keyType');
+    $generatorJava.property(res, 'typeMeta', domain, 'valueType');
 
     res.needEmptyLine = true;
 
@@ -1492,16 +1492,14 @@ $generatorJava.metadataGeneral = function (meta, res) {
 };
 
 // Generate domain model for query group.
-$generatorJava.metadataQuery = function (meta, res) {
+$generatorJava.domainModelQuery = function (domain, res) {
     if (!res)
         res = $generatorCommon.builder();
 
-    if ($generatorCommon.domainQueryMetadata(meta) === 'Configuration') {
-        $generatorJava.metadataQueryFields(res, meta);
-
-        $generatorJava.metadataQueryAliases(res, meta);
-
-        $generatorJava.metadataQueryIndexes(res, meta);
+    if ($generatorCommon.domainQueryMetadata(domain) === 'Configuration') {
+        $generatorJava.domainModelQueryFields(res, domain);
+        $generatorJava.domainModelQueryAliases(res, domain);
+        $generatorJava.domainModelQueryIndexes(res, domain);
 
         res.needEmptyLine = true;
     }
@@ -1510,44 +1508,43 @@ $generatorJava.metadataQuery = function (meta, res) {
 };
 
 // Generate domain model for store group.
-$generatorJava.metadataStore = function (meta, withTypes, res) {
+$generatorJava.domainStore = function (domain, withTypes, res) {
     if (!res)
         res = $generatorCommon.builder();
 
-    $generatorJava.property(res, 'jdbcType', meta, 'databaseSchema');
-    $generatorJava.property(res, 'jdbcType', meta, 'databaseTable');
+    $generatorJava.property(res, 'jdbcType', domain, 'databaseSchema');
+    $generatorJava.property(res, 'jdbcType', domain, 'databaseTable');
 
     if (withTypes) {
-        $generatorJava.classNameProperty(res, 'jdbcType', meta, 'keyType');
-        $generatorJava.property(res, 'jdbcType', meta, 'valueType');
+        $generatorJava.classNameProperty(res, 'jdbcType', domain, 'keyType');
+        $generatorJava.property(res, 'jdbcType', domain, 'valueType');
     }
 
-    $generatorJava.metadataDatabaseFields(res, meta, 'keyFields');
-
-    $generatorJava.metadataDatabaseFields(res, meta, 'valueFields');
+    $generatorJava.domainModelDatabaseFields(res, domain, 'keyFields');
+    $generatorJava.domainModelDatabaseFields(res, domain, 'valueFields');
 
     res.needEmptyLine = true;
 
     return res;
 };
 
-// Generate doman model configs.
-$generatorJava.cacheMetadatas = function (metadatas, varName, res) {
+// Generate domain model configs.
+$generatorJava.cacheDomains = function (domains, varName, res) {
     if (!res)
         res = $generatorCommon.builder();
 
-    var metaConfigs = _.filter(metadatas, function (meta) {
-        return $generatorCommon.domainQueryMetadata(meta) === 'Configuration' &&
-            $commonUtils.isDefinedAndNotEmpty(meta.fields);
+    var domainConfigs = _.filter(domains, function (domain) {
+        return $generatorCommon.domainQueryMetadata(domain) === 'Configuration' &&
+            $commonUtils.isDefinedAndNotEmpty(domain.fields);
     });
 
     // Generate domain model configs.
-    if ($commonUtils.isDefinedAndNotEmpty(metaConfigs)) {
+    if ($commonUtils.isDefinedAndNotEmpty(domainConfigs)) {
         $generatorJava.declareVariable(res, 'queryEntities', 'java.util.Collection', 'java.util.ArrayList', 'org.apache.ignite.cache.QueryEntity');
 
-        _.forEach(metaConfigs, function (meta) {
-            if ($commonUtils.isDefinedAndNotEmpty(meta.fields))
-                res.line('queryEntities.add(queryEntity' + $generatorJava.extractType(meta.valueType) + '());');
+        _.forEach(domainConfigs, function (domain) {
+            if ($commonUtils.isDefinedAndNotEmpty(domain.fields))
+                res.line('queryEntities.add(queryEntity' + $generatorJava.extractType(domain.valueType) + '());');
         });
 
         res.needEmptyLine = true;
@@ -1566,41 +1563,33 @@ $generatorJava.cache = function(cache, varName, res) {
         res = $generatorCommon.builder();
 
     $generatorJava.cacheGeneral(cache, varName, res);
-
     $generatorJava.cacheMemory(cache, varName, res);
-
     $generatorJava.cacheQuery(cache, varName, res);
-
-    $generatorJava.cacheStore(cache, cache.metadatas, varName, res);
-
+    $generatorJava.cacheStore(cache, cache.domains, varName, res);
     $generatorJava.cacheConcurrency(cache, varName, res);
-
     $generatorJava.cacheRebalance(cache, varName, res);
-
     $generatorJava.cacheServerNearCache(cache, varName, res);
-
     $generatorJava.cacheStatistics(cache, varName, res);
-
-    $generatorJava.cacheMetadatas(cache.metadatas, varName, res);
+    $generatorJava.cacheDomains(cache.domains, varName, res);
 };
 
 // Generation of cache domain model in separate methods.
-$generatorJava.clusterMetadatas = function (caches, res) {
-    var metadatas = [];
+$generatorJava.clusterDomains = function (caches, res) {
+    var domains = [];
 
     var typeVarName = 'jdbcType';
     var metaVarName = 'qryMeta';
 
     _.forEach(caches, function (cache) {
-        _.forEach(cache.metadatas, function (meta) {
-            if (!$commonUtils.isDefined(_.find(metadatas, function (m) {
-                    return m === meta.valueType;
+        _.forEach(cache.domains, function (domain) {
+            if (!$commonUtils.isDefined(_.find(domains, function (m) {
+                    return m === domain.valueType;
                 }))) {
                 $generatorJava.resetVariables(res);
 
-                var type = $generatorJava.extractType(meta.valueType);
+                var type = $generatorJava.extractType(domain.valueType);
 
-                if ($commonUtils.isDefinedAndNotEmpty(meta.databaseTable)) {
+                if ($commonUtils.isDefinedAndNotEmpty(domain.databaseTable)) {
                     res.line('/**');
                     res.line(' * Create JDBC type for ' + type + '.');
                     res.line(' *');
@@ -1615,7 +1604,7 @@ $generatorJava.clusterMetadatas = function (caches, res) {
 
                     res.line(typeVarName + '.setCacheName(cacheName);');
 
-                    $generatorJava.metadataStore(meta, true, res);
+                    $generatorJava.domainStore(domain, true, res);
 
                     res.needEmptyLine = true;
 
@@ -1625,8 +1614,8 @@ $generatorJava.clusterMetadatas = function (caches, res) {
                     res.needEmptyLine = true;
                 }
 
-                if ($generatorCommon.domainQueryMetadata(meta) === 'Configuration' &&
-                    $commonUtils.isDefinedAndNotEmpty(meta.fields)) {
+                if ($generatorCommon.domainQueryMetadata(domain) === 'Configuration' &&
+                    $commonUtils.isDefinedAndNotEmpty(domain.fields)) {
                     res.line('/**');
                     res.line(' * Create SQL Query descriptor for ' + type + '.');
                     res.line(' *');
@@ -1636,12 +1625,12 @@ $generatorJava.clusterMetadatas = function (caches, res) {
 
                     $generatorJava.declareVariable(res, metaVarName, 'org.apache.ignite.cache.QueryEntity');
 
-                    $generatorJava.classNameProperty(res, metaVarName, meta, 'keyType');
-                    $generatorJava.property(res, metaVarName, meta, 'valueType');
+                    $generatorJava.classNameProperty(res, metaVarName, domain, 'keyType');
+                    $generatorJava.property(res, metaVarName, domain, 'valueType');
 
                     res.needEmptyLine = true;
 
-                    $generatorJava.metadataQuery(meta, res);
+                    $generatorJava.domainModelQuery(domain, res);
 
                     res.emptyLineIfNeeded();
                     res.line('return ' + metaVarName + ';');
@@ -1651,7 +1640,7 @@ $generatorJava.clusterMetadatas = function (caches, res) {
                     res.endBlock('}');
                 }
 
-                metadatas.push(meta.valueType);
+                domains.push(domain.valueType);
             }
         });
     });
@@ -2029,33 +2018,33 @@ $generatorJava.javaClassCode = function (domain, key, pkg, useConstructor, inclu
  * @param includeKeyFields If 'true' then include key fields into value POJO.
  */
 $generatorJava.pojos = function (caches, useConstructor, includeKeyFields) {
-    var metadatas = [];
+    var pojos = [];
 
     _.forEach(caches, function(cache) {
-        _.forEach(cache.metadatas, function(meta) {
+        _.forEach(cache.domains, function(domain) {
             // Skip already generated classes.
-            if (!_.find(metadatas, {valueType: meta.valueType}) &&
+            if (!_.find(pojos, {valueType: domain.valueType}) &&
                 // Skip domain models without value fields.
-                $commonUtils.isDefinedAndNotEmpty(meta.valueFields)) {
-                var metadata = {};
+                $commonUtils.isDefinedAndNotEmpty(domain.valueFields)) {
+                var pojo = {};
 
                 // Key class generation only if key is not build in java class.
-                if ($commonUtils.isDefined(meta.keyFields) && meta.keyFields.length > 0) {
-                    metadata.keyType = meta.keyType;
-                    metadata.keyClass = $generatorJava.javaClassCode(meta, true,
-                        meta.keyType.substring(0, meta.keyType.lastIndexOf('.')), useConstructor, includeKeyFields);
+                if ($commonUtils.isDefined(domain.keyFields) && domain.keyFields.length > 0) {
+                    pojo.keyType = domain.keyType;
+                    pojo.keyClass = $generatorJava.javaClassCode(domain, true,
+                        domain.keyType.substring(0, domain.keyType.lastIndexOf('.')), useConstructor, includeKeyFields);
                 }
 
-                metadata.valueType = meta.valueType;
-                metadata.valueClass = $generatorJava.javaClassCode(meta, false,
-                    meta.valueType.substring(0, meta.valueType.lastIndexOf('.')), useConstructor, includeKeyFields);
+                pojo.valueType = domain.valueType;
+                pojo.valueClass = $generatorJava.javaClassCode(domain, false,
+                    domain.valueType.substring(0, domain.valueType.lastIndexOf('.')), useConstructor, includeKeyFields);
 
-                metadatas.push(metadata);
+                pojos.push(pojo);
             }
         });
     });
 
-    return metadatas;
+    return pojos;
 };
 
 /**
@@ -2428,7 +2417,7 @@ $generatorJava.cluster = function (cluster, pkg, javaClass, clientNearCfg) {
 
         res.needEmptyLine = true;
 
-        $generatorJava.clusterMetadatas(cluster.caches, res);
+        $generatorJava.clusterDomains(cluster.caches, res);
 
         $generatorJava.clusterCaches(cluster.caches, cluster.igfss, isSrvCfg, res);