You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2015/07/31 04:45:47 UTC

[01/25] incubator-ignite git commit: IGNITE-843 WIP generate java code.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-1121 e24f3b74b -> f20f5c5b6


IGNITE-843 WIP generate java code.


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

Branch: refs/heads/ignite-1121
Commit: a82fce90130c9b53519eaddbfa1fab3b3386785e
Parents: 9652287
Author: AKuznetsov <ak...@gridgain.com>
Authored: Wed Jul 29 18:55:47 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Wed Jul 29 18:55:47 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/routes/generator/common.js      |   7 +-
 .../src/main/js/routes/generator/java.js        | 543 +++++++++++--------
 .../src/main/js/routes/generator/xml.js         |  12 +-
 3 files changed, 317 insertions(+), 245 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a82fce90/modules/control-center-web/src/main/js/routes/generator/common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/common.js b/modules/control-center-web/src/main/js/routes/generator/common.js
index 44ddf31..859f28c 100644
--- a/modules/control-center-web/src/main/js/routes/generator/common.js
+++ b/modules/control-center-web/src/main/js/routes/generator/common.js
@@ -137,14 +137,19 @@ exports.builder = function () {
         return shortName;
     };
 
+    /**
+     * @returns String with "java imports" section.
+     */
     res.generateImports = function () {
         var res = [];
 
         for (var clsName in this.imports) {
-            if (this.imports.hasOwnProperty(clsName))
+            if (this.imports.hasOwnProperty(clsName) && this.imports[clsName].lastIndexOf('java.lang.', 0) != 0)
                 res.push('import ' + this.imports[clsName] + ';');
         }
 
+        res.sort();
+
         return res.join('\n')
     };
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a82fce90/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index 41b9bb8..3293af2 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -22,16 +22,24 @@ var generatorUtils = require("./common");
 /**
  * Convert some name to valid java name.
  *
+ * @param prefix To append to java name.
  * @param name to convert.
  * @returns {string} Valid java name.
  */
-function toJavaName(name) {
+function toJavaName(prefix, name) {
     var javaName = name.replace(/[^A-Za-z_0-9]+/, '_');
 
-    return javaName.charAt(0).toLocaleUpperCase() + javaName.slice(1);
+    return prefix + javaName.charAt(0).toLocaleUpperCase() + javaName.slice(1);
 }
 
-exports.generateClusterConfiguration = function(cluster, javaClass, clientNearConfiguration) {
+/**
+ * Function to generate java code for cluster configuration.
+ *
+ * @param cluster Cluster to process.
+ * @param javaClass If 'true' then generate factory class otherwise generate code snippet.
+ * @param clientMode If 'true' then generate configuration for client node.
+ */
+exports.generateClusterConfiguration = function (cluster, javaClass, clientMode) {
     var res = generatorUtils.builder();
 
     res.datasourceBeans = [];
@@ -46,29 +54,25 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
         res.line(' */');
         res.startBlock('public IgniteConfiguration createConfiguration() {');
     }
-    
-    res.importClass('org.apache.ignite.configuration.IgniteConfiguration');
-    
-    res.line('IgniteConfiguration cfg = new IgniteConfiguration();');
+
+    declareVariable(res, true, 'org.apache.ignite.configuration.IgniteConfiguration', 'cfg');
     res.line();
 
-    if (clientNearConfiguration) {
+    if (clientMode) {
         res.line('cfg.setClientMode(true);');
-
         res.line();
     }
 
     if (cluster.discovery) {
         var d = cluster.discovery;
 
-        res.importClass('org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi');
-        res.line('TcpDiscoverySpi discovery = new TcpDiscoverySpi();');
+        declareVariable(res, true, 'org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi', 'discovery');
 
         switch (d.kind) {
             case 'Multicast':
                 res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder');
 
-                addBeanWithProperties(res, d.Multicast, 'discovery', 'ipFinder', 'ipFinder',
+                addBeanWithProperties(res, 'discovery', d.Multicast, 'ipFinder', 'ipFinder',
                     'TcpDiscoveryMulticastIpFinder', {
                         multicastGroup: null,
                         multicastPort: null,
@@ -82,9 +86,9 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
             case 'Vm':
                 res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder');
 
-                addBeanWithProperties(res, d.Vm, 'discovery', 'ipFinder', 'ipFinder', 'TcpDiscoveryVmIpFinder', {
-                        addresses: {type: 'list'}
-                    }, true);
+                addBeanWithProperties(res, 'discovery', d.Vm, 'ipFinder', 'ipFinder', 'TcpDiscoveryVmIpFinder', {
+                    addresses: {type: 'list'}
+                }, true);
 
                 break;
 
@@ -92,7 +96,7 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
                 res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.s3.TcpDiscoveryS3IpFinder');
 
                 if (d.S3)
-                    addBeanWithProperties(res, d.S3, 'discovery', 'ipFinder', 'ipFinder', 'TcpDiscoveryS3IpFinder',
+                    addBeanWithProperties(res, 'discovery', d.S3, 'ipFinder', 'ipFinder', 'TcpDiscoveryS3IpFinder',
                         {bucketName: null}, true);
                 else
                     res.line('discovery.setIpFinder(new TcpDiscoveryS3IpFinder());');
@@ -102,21 +106,21 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
             case 'Cloud':
                 res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.cloud.TcpDiscoveryCloudIpFinder');
 
-                addBeanWithProperties(res, d.Cloud, 'discovery', 'ipFinder', 'ipFinder', 'TcpDiscoveryCloudIpFinder', {
-                        credential: null,
-                        credentialPath: null,
-                        identity: null,
-                        provider: null,
-                        regions: {type: 'list'},
-                        zones: {type: 'list'}
-                    }, true);
+                addBeanWithProperties(res, 'discovery', d.Cloud, 'ipFinder', 'ipFinder', 'TcpDiscoveryCloudIpFinder', {
+                    credential: null,
+                    credentialPath: null,
+                    identity: null,
+                    provider: null,
+                    regions: {type: 'list'},
+                    zones: {type: 'list'}
+                }, true);
 
                 break;
 
             case 'GoogleStorage':
                 res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.gce.TcpDiscoveryGoogleStorageIpFinder');
 
-                addBeanWithProperties(res, d.GoogleStorage, 'discovery', 'ipFinder', 'ipFinder',
+                addBeanWithProperties(res, 'discovery', d.GoogleStorage, 'ipFinder', 'ipFinder',
                     'TcpDiscoveryGoogleStorageIpFinder', {
                         projectName: null,
                         bucketName: null,
@@ -129,10 +133,10 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
                 break;
 
             case 'Jdbc':
-                res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc.TcpDiscoveryJdbcIpFinder');
-                
                 res.line();
-                res.line('TcpDiscoveryJdbcIpFinder ipFinder = new TcpDiscoveryJdbcIpFinder();');
+
+                declareVariable(res, true, 'org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc.TcpDiscoveryJdbcIpFinder', 'ipFinder');
+
                 res.line('ipFinder.setInitSchema(' + (d.Jdbc.initSchema != null || d.Jdbc.initSchema) + ');');
                 res.line('discovery.setIpFinder(ipFinder);');
                 res.needEmptyLine = true;
@@ -142,7 +146,7 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
             case 'SharedFs':
                 res.importClass('org.apache.ignite.spi.discovery.tcp.ipfinder.sharedfs.TcpDiscoverySharedFsIpFinder');
 
-                addBeanWithProperties(res, d.SharedFs, 'discovery', 'ipFinder', 'ipFinder',
+                addBeanWithProperties(res, 'discovery', d.SharedFs, 'ipFinder', 'ipFinder',
                     'TcpDiscoverySharedFsIpFinder', {path: null}, true);
 
                 break;
@@ -168,7 +172,7 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
 
             var cache = cluster.caches[i];
 
-            var cacheName = 'cache' + toJavaName(cache.name);
+            var cacheName = toJavaName('cache', cache.name);
 
             names.push(cacheName);
 
@@ -193,41 +197,41 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
         res.needEmptyLine = true;
     }
 
-    addBeanWithProperties(res, cluster.atomicConfiguration, 'cfg', 'atomicConfiguration', 'atomicCfg',
+    addBeanWithProperties(res, 'cfg', cluster.atomicConfiguration, 'atomicConfiguration', 'atomicCfg',
         generatorUtils.atomicConfiguration.className, generatorUtils.atomicConfiguration.fields);
 
     res.needEmptyLine = true;
 
-    addProperty(res, cluster, 'cfg', 'networkTimeout');
-    addProperty(res, cluster, 'cfg', 'networkSendRetryDelay');
-    addProperty(res, cluster, 'cfg', 'networkSendRetryCount');
-    addProperty(res, cluster, 'cfg', 'segmentCheckFrequency');
-    addProperty(res, cluster, 'cfg', 'waitForSegmentOnStart');
-    addProperty(res, cluster, 'cfg', 'discoveryStartupDelay');
+    addProperty(res, 'cfg', cluster, 'networkTimeout');
+    addProperty(res, 'cfg', cluster, 'networkSendRetryDelay');
+    addProperty(res, 'cfg', cluster, 'networkSendRetryCount');
+    addProperty(res, 'cfg', cluster, 'segmentCheckFrequency');
+    addProperty(res, 'cfg', cluster, 'waitForSegmentOnStart');
+    addProperty(res, 'cfg', cluster, 'discoveryStartupDelay');
 
     res.needEmptyLine = true;
 
-    addProperty(res, cluster, 'cfg', 'deploymentMode', 'DeploymentMode');
+    addProperty(res, 'cfg', cluster, 'deploymentMode', 'DeploymentMode');
 
     res.needEmptyLine = true;
 
     if (cluster.includeEventTypes && cluster.includeEventTypes.length > 0) {
         res.emptyLineIfNeeded();
-        
+
         if (cluster.includeEventTypes.length == 1) {
             res.importClass('org.apache.ignite.events.EventType');
-            
+
             res.line('cfg.setIncludeEventTypes(EventType.' + cluster.includeEventTypes[0] + ');');
         }
         else {
             res.append('int[] events = new int[EventType.' + cluster.includeEventTypes[0] + '.length');
-            
+
             for (i = 1; i < cluster.includeEventTypes.length; i++) {
                 res.line();
-                
+
                 res.append('    + EventType.' + cluster.includeEventTypes[i] + '.length');
             }
-            
+
             res.line('];');
             res.line();
             res.line('int k = 0;');
@@ -236,11 +240,11 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
                 res.line();
 
                 var e = cluster.includeEventTypes[i];
-                
+
                 res.line('System.arraycopy(EventType.' + e + ', 0, events, k, EventType.' + e + '.length);');
                 res.line('k += EventType.' + e + '.length;');
             }
-            
+
             res.line();
             res.line('cfg.setIncludeEventTypes(events);');
         }
@@ -255,58 +259,58 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
     if (marshaller && marshaller.kind) {
         var marshallerDesc = generatorUtils.marshallers[marshaller.kind];
 
-        addBeanWithProperties(res, marshaller[marshaller.kind], 'cfg', 'marshaller', 'marshaller',
+        addBeanWithProperties(res, 'cfg', marshaller[marshaller.kind], 'marshaller', 'marshaller',
             marshallerDesc.className, marshallerDesc.fields, true);
 
-        addBeanWithProperties(res, marshaller[marshaller.kind], 'marshaller', marshallerDesc.className, marshallerDesc.fields, true);
+        addBeanWithProperties(res, 'marshaller', marshaller[marshaller.kind], marshallerDesc.className, marshallerDesc.fields, true);
     }
 
-    addProperty(res, cluster, 'cfg', 'marshalLocalJobs');
-    addProperty(res, cluster, 'cfg', 'marshallerCacheKeepAliveTime');
-    addProperty(res, cluster, 'cfg', 'marshallerCacheThreadPoolSize');
+    addProperty(res, 'cfg', cluster, 'marshalLocalJobs');
+    addProperty(res, 'cfg', cluster, 'marshallerCacheKeepAliveTime');
+    addProperty(res, 'cfg', cluster, 'marshallerCacheThreadPoolSize');
 
     res.needEmptyLine = true;
 
-    addProperty(res, cluster, 'cfg', 'metricsExpireTime');
-    addProperty(res, cluster, 'cfg', 'metricsHistorySize');
-    addProperty(res, cluster, 'cfg', 'metricsLogFrequency');
-    addProperty(res, cluster, 'cfg', 'metricsUpdateFrequency');
+    addProperty(res, 'cfg', cluster, 'metricsExpireTime');
+    addProperty(res, 'cfg', cluster, 'metricsHistorySize');
+    addProperty(res, 'cfg', cluster, 'metricsLogFrequency');
+    addProperty(res, 'cfg', cluster, 'metricsUpdateFrequency');
     res.needEmptyLine = true;
 
-    addProperty(res, cluster, 'cfg', 'peerClassLoadingEnabled');
-    addMultiparamProperty(res, cluster, 'cfg', 'peerClassLoadingLocalClassPathExclude');
-    addProperty(res, cluster, 'cfg', 'peerClassLoadingMissedResourcesCacheSize');
-    addProperty(res, cluster, 'cfg', 'peerClassLoadingThreadPoolSize');
+    addProperty(res, 'cfg', cluster, 'peerClassLoadingEnabled');
+    addMultiparamProperty(res, 'cfg', cluster, 'peerClassLoadingLocalClassPathExclude');
+    addProperty(res, 'cfg', cluster, 'peerClassLoadingMissedResourcesCacheSize');
+    addProperty(res, 'cfg', cluster, 'peerClassLoadingThreadPoolSize');
     res.needEmptyLine = true;
 
     if (cluster.swapSpaceSpi && cluster.swapSpaceSpi.kind == 'FileSwapSpaceSpi') {
-        addBeanWithProperties(res, cluster.swapSpaceSpi.FileSwapSpaceSpi, 'cfg', 'swapSpaceSpi', 'swapSpi',
+        addBeanWithProperties(res, 'cfg', cluster.swapSpaceSpi.FileSwapSpaceSpi, 'swapSpaceSpi', 'swapSpi',
             generatorUtils.swapSpaceSpi.className, generatorUtils.swapSpaceSpi.fields, true);
 
         res.needEmptyLine = true;
     }
 
-    addProperty(res, cluster, 'cfg', 'clockSyncSamples');
-    addProperty(res, cluster, 'cfg', 'clockSyncFrequency');
-    addProperty(res, cluster, 'cfg', 'timeServerPortBase');
-    addProperty(res, cluster, 'cfg', 'timeServerPortRange');
+    addProperty(res, 'cfg', cluster, 'clockSyncSamples');
+    addProperty(res, 'cfg', cluster, 'clockSyncFrequency');
+    addProperty(res, 'cfg', cluster, 'timeServerPortBase');
+    addProperty(res, 'cfg', cluster, 'timeServerPortRange');
 
     res.needEmptyLine = true;
 
-    addProperty(res, cluster, 'cfg', 'publicThreadPoolSize');
-    addProperty(res, cluster, 'cfg', 'systemThreadPoolSize');
-    addProperty(res, cluster, 'cfg', 'managementThreadPoolSize');
-    addProperty(res, cluster, 'cfg', 'igfsThreadPoolSize');
+    addProperty(res, 'cfg', cluster, 'publicThreadPoolSize');
+    addProperty(res, 'cfg', cluster, 'systemThreadPoolSize');
+    addProperty(res, 'cfg', cluster, 'managementThreadPoolSize');
+    addProperty(res, 'cfg', cluster, 'igfsThreadPoolSize');
 
     res.needEmptyLine = true;
 
-    addBeanWithProperties(res, cluster.transactionConfiguration, 'cfg', 'transactionConfiguration',
+    addBeanWithProperties(res, 'cfg', cluster.transactionConfiguration, 'transactionConfiguration',
         'transactionConfiguration', generatorUtils.transactionConfiguration.className,
         generatorUtils.transactionConfiguration.fields);
 
     res.needEmptyLine = true;
 
-    addProperty(res, cluster, 'cfg', 'cacheSanityCheckEnabled');
+    addProperty(res, 'cfg', cluster, 'cacheSanityCheckEnabled');
 
     res.needEmptyLine = true;
 
@@ -315,69 +319,75 @@ exports.generateClusterConfiguration = function(cluster, javaClass, clientNearCo
         res.line('return cfg;');
         res.endBlock('}');
         res.endBlock('}');
-        
+
         return res.generateImports() + '\n\n' + res.join('')
     }
-    
+
     return res.join('');
 };
 
-function createEvictionPolicy(res, evictionPolicy, varName, propertyName) {
+function createEvictionPolicy(res, varName, evictionPolicy, propertyName) {
     if (evictionPolicy && evictionPolicy.kind) {
         var e = generatorUtils.evictionPolicies[evictionPolicy.kind];
 
         var obj = evictionPolicy[evictionPolicy.kind.toUpperCase()];
 
-        addBeanWithProperties(res, obj, varName, propertyName, propertyName, e.className, e.fields, true);
+        addBeanWithProperties(res, varName, obj, propertyName, propertyName, e.className, e.fields, true);
     }
 }
 
-function addCacheTypeMetadataDatabaseFields(res, meta, varName, fieldsProperty) {
-    var fields = meta[fieldsProperty];
+function addCacheTypeMetadataDatabaseFields(res, varName, meta, fieldProperty) {
+    var fields = meta[fieldProperty];
 
     if (fields && fields.length > 0) {
-        res.line('addCacheTypeMetadataDatabaseFields for ' + varName);
-        //res.startBlock('<property name="' + fieldsProperty + '">');
-        //
-        //res.startBlock('<list>');
-        //
-        //_.forEach(fields, function (field) {
-        //    res.startBlock('<bean class="org.apache.ignite.cache.CacheTypeFieldMetadata">');
-        //
-        //    addProperty(res, field, 'databaseName');
-        //
-        //    res.startBlock('<property name="databaseType">');
-        //    res.line('<util:constant static-field="java.sql.Types.' + field.databaseType + '"/>');
-        //    res.endBlock('</property>');
-        //
-        //    addProperty(res, field, 'javaName');
-        //
-        //    addElement(res, 'property', 'name', 'javaType', 'value', generatorUtils.javaBuildInClass(field.javaType));
-        //
-        //    res.endBlock('</bean>');
-        //});
-        //
-        //res.endBlock('</list>');
-        //res.endBlock('</property>');
+        res.emptyLineIfNeeded();
+
+        var varDbFields = fieldProperty;
+
+        var varNew = !res[fieldProperty];
+
+        if (varNew)
+            res[fieldProperty] = true;
+
+        declareVariable(res, varNew, 'java.util.Collection', varDbFields, 'java.util.ArrayList', 'org.apache.ignite.cache.CacheTypeFieldMetadata');
+
+        res.importClass('org.apache.ignite.cache.CacheTypeFieldMetadata');
+
+        _.forEach(fields, function (field) {
+            res.line(varDbFields + '.add(new CacheTypeFieldMetadata(' +
+                '"' + field.databaseName + '", ' +
+                'java.sql.Types.' + field.databaseType + ', ' +
+                '"' + field.javaName + '", ' +
+                field.javaType + '.class'
+                + '));');
+        });
+
+        res.line(varName + '.' + toJavaName('set', fieldProperty) + '(' + varDbFields + ');');
     }
 }
 
-function addCacheTypeMetadataQueryFields(res, meta, varName, fieldsProperty) {
-    var fields = meta[fieldsProperty];
+function addCacheTypeMetadataQueryFields(res, varType, meta, fieldProperty) {
+    var fields = meta[fieldProperty];
 
     if (fields && fields.length > 0) {
-        res.line('addCacheTypeMetadataQueryFields for ' + varName);
-        //res.startBlock('<property name="' + fieldsProperty + '">');
-        //
-        //res.startBlock('<map>');
-        //
-        //_.forEach(fields, function (field) {
-        //    addElement(res, 'entry', 'key', field.name, 'value', generatorUtils.javaBuildInClass(field.className));
-        //});
-        //
-        //res.endBlock('</map>');
-        //
-        //res.endBlock('</property>');
+        res.emptyLineIfNeeded();
+
+        var varQryFields = fieldProperty;
+
+        var varNew = !res[fieldProperty];
+
+        if (varNew)
+            res[fieldProperty] = true;
+
+        declareVariable(res, varNew, 'java.util.Map', varQryFields, 'java.util.LinkedHashMap', 'java.lang.String', 'java.lang.Class<?>');
+
+        _.forEach(fields, function (field) {
+            var cls = res.importClass(generatorUtils.javaBuildInClass(field.className));
+
+            res.line(varQryFields + '.put("' + field.name + '", ' + cls + '.class);');
+        });
+
+        res.line(varType + '.' + toJavaName('set', fieldProperty) + '(' + varQryFields + ');');
     }
 }
 
@@ -417,34 +427,45 @@ function addCacheTypeMetadataGroups(res, meta, varName) {
     }
 }
 
-function generateCacheTypeMetadataConfiguration(res, meta, varCacheTypeMetadata) {
-    if (!res)
-        res = generatorUtils.builder();
+function generateCacheTypeMetadataConfiguration(res, cache, meta) {
+    var varType = 'meta';
+
+    var varNew = !res[varType];
 
-    res.importClass('org.apache.ignite.cache.CacheTypeMetadata');
+    if (varNew)
+        res[varType] = true;
 
-    var varType = varCacheTypeMetadata + 'Item';
+    declareVariable(res, varNew, 'org.apache.ignite.cache.CacheTypeMetadata', varType);
 
-    addProperty(res, meta, varType, 'databaseSchema');
-    addProperty(res, meta, varType, 'databaseTable');
+    addProperty(res, varType, meta, 'databaseSchema');
+    addProperty(res, varType, meta, 'databaseTable');
 
-    addProperty(res, meta, varType, 'keyType');
-    addProperty(res, meta, varType, 'valueType');
+    addProperty(res, varType, meta, 'keyType');
+    addProperty(res, varType, meta, 'valueType');
 
-    addCacheTypeMetadataDatabaseFields(res, meta, varType, 'keyFields');
-    addCacheTypeMetadataDatabaseFields(res, meta, varType, 'valueFields');
+    addCacheTypeMetadataDatabaseFields(res, varType, meta, 'keyFields');
+    res.needEmptyLine = true;
 
-    addCacheTypeMetadataQueryFields(res, meta, varType, 'queryFields');
-    addCacheTypeMetadataQueryFields(res, meta, varType, 'ascendingFields');
-    addCacheTypeMetadataQueryFields(res, meta, varType, 'descendingFields');
+    addCacheTypeMetadataDatabaseFields(res, varType, meta, 'valueFields');
+    res.needEmptyLine = true;
 
-    addListProperty(res, meta, varType, 'textFields');
+    addCacheTypeMetadataQueryFields(res, varType, meta, 'queryFields');
+    res.needEmptyLine = true;
+
+    addCacheTypeMetadataQueryFields(res, varType, meta, 'ascendingFields');
+    res.needEmptyLine = true;
+
+    addCacheTypeMetadataQueryFields(res, varType, meta, 'descendingFields');
+    res.needEmptyLine = true;
+
+    addListProperty(res, varType, meta, 'textFields');
+    res.needEmptyLine = true;
 
     addCacheTypeMetadataGroups(res, varType, meta);
 
-    res.line(varCacheTypeMetadata + '.add(' + varType + ')');
+    res.line();
 
-    return res;
+    return varType;
 }
 
 /**
@@ -456,94 +477,90 @@ function generateCacheTypeMetadataConfiguration(res, meta, varCacheTypeMetadata)
  * @returns {*} Append generated java code to builder and return it.
  */
 function generateCacheConfiguration(res, cache, varName) {
-    if (!res)
-        res = generatorUtils.builder();
-
     res.emptyLineIfNeeded();
 
     res.importClass('org.apache.ignite.cache.CacheAtomicityMode');
     res.importClass('org.apache.ignite.cache.CacheMode');
-    res.importClass('org.apache.ignite.configuration.CacheConfiguration');
 
-    res.line('CacheConfiguration ' + varName + ' = new CacheConfiguration();');
+    declareVariable(res, true, 'org.apache.ignite.configuration.CacheConfiguration', varName);
 
     res.needEmptyLine = true;
 
-    addProperty(res, cache, varName, 'name');
-    
-    addProperty(res, cache, varName, 'mode', 'CacheMode', 'cacheMode');
+    addProperty(res, varName, cache, 'name');
 
-    addProperty(res, cache, varName, 'atomicityMode', 'CacheAtomicityMode');
-    addProperty(res, cache, varName, 'backups');
-    addProperty(res, cache, varName, 'startSize');
-    addProperty(res, cache, varName, 'readFromBackup');
+    addProperty(res, varName, cache, 'mode', 'CacheMode', 'cacheMode');
+
+    addProperty(res, varName, cache, 'atomicityMode', 'CacheAtomicityMode');
+    addProperty(res, varName, cache, 'backups');
+    addProperty(res, varName, cache, 'startSize');
+    addProperty(res, varName, cache, 'readFromBackup');
 
     res.needEmptyLine = true;
-    
-    addProperty(res, cache, varName, 'memoryMode', 'CacheMemoryMode');
-    addProperty(res, cache, varName, 'offHeapMaxMemory');
-    addProperty(res, cache, varName, 'swapEnabled');
-    addProperty(res, cache, varName, 'copyOnRead');
+
+    addProperty(res, varName, cache, 'memoryMode', 'CacheMemoryMode');
+    addProperty(res, varName, cache, 'offHeapMaxMemory');
+    addProperty(res, varName, cache, 'swapEnabled');
+    addProperty(res, varName, cache, 'copyOnRead');
 
     res.needEmptyLine = true;
 
-    createEvictionPolicy(res, cache.evictionPolicy, varName, 'evictionPolicy');
+    createEvictionPolicy(res, varName, cache.evictionPolicy, 'evictionPolicy');
 
     if (cache.nearCacheEnabled) {
         res.needEmptyLine = true;
 
         res.importClass('org.apache.ignite.configuration.NearCacheConfiguration');
 
-        addBeanWithProperties(res, cache.nearConfiguration, varName, 'nearConfiguration', 'nearConfiguration',
+        addBeanWithProperties(res, varName, cache.nearConfiguration, 'nearConfiguration', 'nearConfiguration',
             'NearCacheConfiguration', {nearStartSize: null}, true);
 
         if (cache.nearConfiguration && cache.nearConfiguration.nearEvictionPolicy && cache.nearConfiguration.nearEvictionPolicy.kind) {
-            createEvictionPolicy(res, cache.nearConfiguration.nearEvictionPolicy, 'nearConfiguration', 'nearEvictionPolicy');
+            createEvictionPolicy(res, 'nearConfiguration', cache.nearConfiguration.nearEvictionPolicy, 'nearEvictionPolicy');
         }
     }
 
     res.needEmptyLine = true;
-    
-    addProperty(res, cache, varName, 'sqlEscapeAll');
-    addProperty(res, cache, varName, 'sqlOnheapRowCacheSize');
-    addProperty(res, cache, varName, 'longQueryWarningTimeout');
-    
+
+    addProperty(res, varName, cache, 'sqlEscapeAll');
+    addProperty(res, varName, cache, 'sqlOnheapRowCacheSize');
+    addProperty(res, varName, cache, 'longQueryWarningTimeout');
+
     if (cache.indexedTypes && cache.indexedTypes.length > 0) {
         res.emptyLineIfNeeded();
-        
+
         res.append(varName + '.setIndexedTypes(');
-        
+
         for (var i = 0; i < cache.indexedTypes.length; i++) {
             if (i > 0)
                 res.append(', ');
 
             var pair = cache.indexedTypes[i];
-            
+
             res.append(toJavaCode(pair.keyClass, 'class')).append(', ').append(toJavaCode(pair.valueClass, 'class'))
         }
-        
+
         res.line(');');
     }
 
-    addMultiparamProperty(res, cache, varName, 'sqlFunctionClasses', 'class');
-    
+    addMultiparamProperty(res, varName, cache, 'sqlFunctionClasses', 'class');
+
     res.needEmptyLine = true;
 
-    addProperty(res, cache, varName, 'rebalanceMode', 'CacheRebalanceMode');
-    addProperty(res, cache, varName, 'rebalanceThreadPoolSize');
-    addProperty(res, cache, varName, 'rebalanceBatchSize');
-    addProperty(res, cache, varName, 'rebalanceOrder');
-    addProperty(res, cache, varName, 'rebalanceDelay');
-    addProperty(res, cache, varName, 'rebalanceTimeout');
-    addProperty(res, cache, varName, 'rebalanceThrottle');
+    addProperty(res, varName, cache, 'rebalanceMode', 'CacheRebalanceMode');
+    addProperty(res, varName, cache, 'rebalanceThreadPoolSize');
+    addProperty(res, varName, cache, 'rebalanceBatchSize');
+    addProperty(res, varName, cache, 'rebalanceOrder');
+    addProperty(res, varName, cache, 'rebalanceDelay');
+    addProperty(res, varName, cache, 'rebalanceTimeout');
+    addProperty(res, varName, cache, 'rebalanceThrottle');
 
     res.needEmptyLine = true;
-    
+
     if (cache.cacheStoreFactory && cache.cacheStoreFactory.kind) {
         var storeFactory = cache.cacheStoreFactory[cache.cacheStoreFactory.kind];
         var data = generatorUtils.storeFactories[cache.cacheStoreFactory.kind];
 
-        var sfVarName = 'storeFactory' + toJavaName(cache.name);
+        var sfVarName = toJavaName('storeFactory', cache.name);
         var dsVarName = 'none';
 
         if (storeFactory.dialect) {
@@ -557,14 +574,16 @@ function generateCacheConfiguration(res, cache, varName) {
                 var dataSource = generatorUtils.dataSources[storeFactory.dialect];
 
                 res.line();
-                res.line(dataSource.className + ' ' + dsVarName + ' = new ' + dataSource.className + '();');
+
+                declareVariable(res, true, dataSource.className, dsVarName);
+
                 res.line(dsVarName + '.setURL(_URL_);');
                 res.line(dsVarName + '.setUsername(_User_Name_);');
                 res.line(dsVarName + '.setPassword(_Password_);');
             }
         }
 
-        addBeanWithProperties(res, storeFactory, varName, 'cacheStoreFactory', sfVarName, data.className,
+        addBeanWithProperties(res, varName, storeFactory, 'cacheStoreFactory', sfVarName, data.className,
             data.fields, true);
 
         if (dsVarName != 'none')
@@ -573,32 +592,32 @@ function generateCacheConfiguration(res, cache, varName) {
 
     res.needEmptyLine = true;
 
-    addProperty(res, cache, varName, 'loadPreviousValue');
-    addProperty(res, cache, varName, 'readThrough');
-    addProperty(res, cache, varName, 'writeThrough');
+    addProperty(res, varName, cache, 'loadPreviousValue');
+    addProperty(res, varName, cache, 'readThrough');
+    addProperty(res, varName, cache, 'writeThrough');
 
     res.needEmptyLine = true;
-    
-    addProperty(res, cache, varName, 'invalidate');
-    addProperty(res, cache, varName, 'defaultLockTimeout');
-    addProperty(res, cache, varName, 'transactionManagerLookupClassName');
-    
+
+    addProperty(res, varName, cache, 'invalidate');
+    addProperty(res, varName, cache, 'defaultLockTimeout');
+    addProperty(res, varName, cache, 'transactionManagerLookupClassName');
+
     res.needEmptyLine = true;
-    
-    addProperty(res, cache, varName, 'writeBehindEnabled');
-    addProperty(res, cache, varName, 'writeBehindBatchSize');
-    addProperty(res, cache, varName, 'writeBehindFlushSize');
-    addProperty(res, cache, varName, 'writeBehindFlushFrequency');
-    addProperty(res, cache, varName, 'writeBehindFlushThreadCount');
-    
+
+    addProperty(res, varName, cache, 'writeBehindEnabled');
+    addProperty(res, varName, cache, 'writeBehindBatchSize');
+    addProperty(res, varName, cache, 'writeBehindFlushSize');
+    addProperty(res, varName, cache, 'writeBehindFlushFrequency');
+    addProperty(res, varName, cache, 'writeBehindFlushThreadCount');
+
     res.needEmptyLine = true;
 
-    addProperty(res, cache, varName, 'statisticsEnabled');
-    addProperty(res, cache, varName, 'managementEnabled');
+    addProperty(res, varName, cache, 'statisticsEnabled');
+    addProperty(res, varName, cache, 'managementEnabled');
 
     res.needEmptyLine = true;
 
-    addProperty(res, cache, varName, 'maxConcurrentAsyncOperations');
+    addProperty(res, varName, cache, 'maxConcurrentAsyncOperations');
 
     res.needEmptyLine = true;
 
@@ -607,9 +626,14 @@ function generateCacheConfiguration(res, cache, varName) {
         (cache.storeMetadata && cache.storeMetadata.length > 0)) {
         res.emptyLineIfNeeded();
 
-        var varCacheTypeMetadata = varName + 'TypeMetadata';
+        var varTypes = 'types';
+
+        var varNew = !res[varTypes];
+
+        if (varNew)
+            res[varTypes] = true;
 
-        res.line('Collection ' + varCacheTypeMetadata + ' = new ArrayList();');
+        declareVariable(res, varNew, 'java.util.Collection', varTypes, 'java.util.ArrayList', 'org.apache.ignite.cache.CacheTypeMetadata');
         res.line();
 
         var metaNames = [];
@@ -619,7 +643,8 @@ function generateCacheConfiguration(res, cache, varName) {
                 if (!_.contains(metaNames, meta.name)) {
                     metaNames.push(meta.name);
 
-                    generateCacheTypeMetadataConfiguration(res, meta, varCacheTypeMetadata);
+                    res.line(varTypes + '.add(' + generateCacheTypeMetadataConfiguration(res, cache, meta) + ');');
+                    res.line();
                 }
             });
         }
@@ -629,30 +654,29 @@ function generateCacheConfiguration(res, cache, varName) {
                 if (!_.contains(metaNames, meta.name)) {
                     metaNames.push(meta.name);
 
-                    generateCacheTypeMetadataConfiguration(meta, res);
+                    res.line(varTypes + '.add(' + generateCacheTypeMetadataConfiguration(res, cache, meta) + ');');
+                    res.line();
                 }
             });
         }
 
-        res.line(varName + '.setCacheTypeMetadata(' + varCacheTypeMetadata + ');');
+        res.line(varName + '.setCacheTypeMetadata(' + varTypes + ');');
     }
-    
-    return res;
 }
 
 function toJavaCode(val, type) {
     if (val == null)
-       return 'null';
+        return 'null';
 
     if (type == 'float')
         return val + 'f';
-    
+
     if (type == 'class')
         return val + '.class';
-    
+
     if (type)
         return type + '.' + val;
-    
+
     if (typeof(val) == 'string')
         return '"' + val.replace('"', '\\"') + '"';
 
@@ -662,61 +686,104 @@ function toJavaCode(val, type) {
     throw "Unknown type: " + typeof(val) + ' (' + val + ')';
 }
 
-function addProperty(res, obj, objVariableName, propName, enumType, setterName) {
+/**
+ * Add variable declaration.
+ *
+ * @param res Resulting output with generated code.
+ * @param varNew If 'true' then declare new variable otherwise reuse previously declared variable.
+ * @param varFullType Variable full class name to be added to imports.
+ * @param varName Variable name.
+ * @param varFullActualType Variable actual full class name to be added to imports.
+ * @param varFullGenericType1 Optional full class name of first generic.
+ * @param varFullGenericType2 Optional full class name of second generic.
+ */
+function declareVariable(res, varNew, varFullType, varName, varFullActualType, varFullGenericType1, varFullGenericType2) {
+    var varType = res.importClass(varFullType);
+
+    if (varFullActualType && varFullGenericType1) {
+        var varActualType = res.importClass(varFullActualType);
+        var varGenericType1 = res.importClass(varFullGenericType1);
+
+        if (varFullGenericType2)
+            var varGenericType2 = res.importClass(varFullGenericType2);
+
+        res.line((varNew ? (varType + '<' + varGenericType1 + (varGenericType2 ? ', ' + varGenericType2 : '') + '> ') : '') + varName + ' = new ' + varActualType + '<>();');
+    }
+    else
+        res.line((varNew ? (varType + ' ') : '') + varName + ' = new ' + varType + '();');
+}
+
+/**
+ * Add property via setter / property name.
+ *
+ * @param res Resulting output with generated code.
+ * @param varName Variable name.
+ * @param obj Source object with data.
+ * @param propName Property name to take from source object.
+ * @param enumType Optional info about property datatype.
+ * @param setterName Optional special setter name.
+ */
+function addProperty(res, varName, obj, propName, enumType, setterName) {
     var val = obj[propName];
-    
+
     if (generatorUtils.isDefined(val)) {
         res.emptyLineIfNeeded();
 
-        res.line(objVariableName + '.' + getSetterName(setterName ? setterName : propName)
-            + '(' + toJavaCode(val, enumType)  + ');');
+        res.line(varName + '.' + getSetterName(setterName ? setterName : propName)
+            + '(' + toJavaCode(val, enumType) + ');');
     }
 }
 
+/**
+ * @param propName Property name
+ * @returns Property setter with name by java conventions.
+ */
 function getSetterName(propName) {
-    return 'set' + propName.charAt(0).toLocaleUpperCase() + propName.slice(1);
+    return toJavaName('set', propName);
 }
 
-function addListProperty(res, obj, objVariableName, propName, enumType, setterName) {
+function addListProperty(res, varName, obj, propName, enumType, setterName) {
     var val = obj[propName];
-    
+
     if (val && val.length > 0) {
-        res.append(objVariableName + '.' + getSetterName(setterName ? setterName : propName) + '(Arrays.asList(');
+        res.emptyLineIfNeeded();
+
+        res.append(varName + '.' + getSetterName(setterName ? setterName : propName) + '(Arrays.asList(');
 
         for (var i = 0; i < val.length; i++) {
             if (i > 0)
                 res.append(', ');
-            
+
             res.append(toJavaCode(val[i], enumType));
         }
-        
+
         res.line('));');
     }
 }
 
-function addMultiparamProperty(res, obj, objVariableName, propName, type, setterName) {
+function addMultiparamProperty(res, varName, obj, propName, type, setterName) {
     var val = obj[propName];
-    
+
     if (val && val.length > 0) {
-        res.append(objVariableName + '.' + getSetterName(setterName ? setterName : propName) + '(');
+        res.append(varName + '.' + getSetterName(setterName ? setterName : propName) + '(');
 
         for (var i = 0; i < val.length; i++) {
             if (i > 0)
                 res.append(', ');
-            
+
             res.append(toJavaCode(val[i], type));
         }
-        
+
         res.line(');');
     }
 }
 
-function addBeanWithProperties(res, bean, objVarName, beanPropName, beanVarName, beanClass, props, createBeanAlthoughNoProps) {
+function addBeanWithProperties(res, varName, bean, beanPropName, beanVarName, beanClass, props, createBeanAlthoughNoProps) {
     if (bean && generatorUtils.hasProperty(bean, props)) {
         if (!res.emptyLineIfNeeded()) {
             res.line();
         }
-        
+
         res.line(beanClass + ' ' + beanVarName + ' = new ' + beanClass + '();');
 
         for (var propName in props) {
@@ -726,63 +793,63 @@ function addBeanWithProperties(res, bean, objVarName, beanPropName, beanVarName,
                 if (descr) {
                     switch (descr.type) {
                         case 'list':
-                            addListProperty(res, bean, beanVarName, propName, descr.elementsType, descr.setterName);
+                            addListProperty(res, beanVarName, bean, propName, descr.elementsType, descr.setterName);
                             break;
-                        
+
                         case 'enum':
-                            addProperty(res, bean, beanVarName, propName, descr.enumClass, descr.setterName);
+                            addProperty(res, beanVarName, bean, propName, descr.enumClass, descr.setterName);
                             break;
-                        
+
                         case 'float':
-                            addProperty(res, bean, beanVarName, propName, 'float', descr.setterName);
+                            addProperty(res, beanVarName, bean, propName, 'float', descr.setterName);
                             break;
-                        
+
                         case 'propertiesAsList':
                             var val = bean[propName];
-                            
+
                             if (val && val.length > 0) {
                                 res.line('Properties ' + descr.propVarName + ' = new Properties();');
-                                
+
                                 for (var i = 0; i < val.length; i++) {
                                     var nameAndValue = val[i];
-                                    
+
                                     var eqIndex = nameAndValue.indexOf('=');
                                     if (eqIndex >= 0) {
-                                        res.line(descr.propVarName + '.setProperty(' 
-                                            + nameAndValue.substring(0, eqIndex) + ', ' 
+                                        res.line(descr.propVarName + '.setProperty('
+                                            + nameAndValue.substring(0, eqIndex) + ', '
                                             + nameAndValue.substr(eqIndex + 1) + ');');
                                     }
 
                                 }
-                                
+
                                 res.line(beanVarName + '.' + getSetterName(propName) + '(' + descr.propVarName + ');');
                             }
                             break;
-                        
+
                         case 'className':
                             if (bean[propName]) {
                                 res.line(beanVarName + '.' + getSetterName(propName) + '(new ' + generatorUtils.knownClasses[bean[propName]].className + '());');
                             }
 
                             break;
-                        
+
                         default:
-                            addProperty(res, bean, beanVarName, propName, null, descr.setterName);
+                            addProperty(res, beanVarName, bean, propName, null, descr.setterName);
                     }
                 }
                 else {
-                    addProperty(res, bean, beanVarName, propName);
+                    addProperty(res, beanVarName, bean, propName);
                 }
             }
         }
-        
-        res.line(objVarName + '.' + getSetterName(beanPropName) + '(' + beanVarName + ');');
-        
+
+        res.line(varName + '.' + getSetterName(beanPropName) + '(' + beanVarName + ');');
+
         res.needEmptyLine = true;
     }
     else if (createBeanAlthoughNoProps) {
         res.emptyLineIfNeeded();
-        
-        res.line(objVarName + '.' + getSetterName(beanPropName) + '(new ' + beanClass + '());');
+
+        res.line(varName + '.' + getSetterName(beanPropName) + '(new ' + beanClass + '());');
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a82fce90/modules/control-center-web/src/main/js/routes/generator/xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/xml.js b/modules/control-center-web/src/main/js/routes/generator/xml.js
index 079f268..318aed5 100644
--- a/modules/control-center-web/src/main/js/routes/generator/xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/xml.js
@@ -337,11 +337,11 @@ function createEvictionPolicy(res, evictionPolicy, propertyName) {
     }
 }
 
-function addCacheTypeMetadataDatabaseFields(res, meta, fieldsProperty) {
-    var fields = meta[fieldsProperty];
+function addCacheTypeMetadataDatabaseFields(res, meta, fieldProperty) {
+    var fields = meta[fieldProperty];
 
     if (fields && fields.length > 0) {
-        res.startBlock('<property name="' + fieldsProperty + '">');
+        res.startBlock('<property name="' + fieldProperty + '">');
 
         res.startBlock('<list>');
 
@@ -366,11 +366,11 @@ function addCacheTypeMetadataDatabaseFields(res, meta, fieldsProperty) {
     }
 }
 
-function addCacheTypeMetadataQueryFields(res, meta, fieldsProperty) {
-    var fields = meta[fieldsProperty];
+function addCacheTypeMetadataQueryFields(res, meta, fieldProperty) {
+    var fields = meta[fieldProperty];
 
     if (fields && fields.length > 0) {
-        res.startBlock('<property name="' + fieldsProperty + '">');
+        res.startBlock('<property name="' + fieldProperty + '">');
 
         res.startBlock('<map>');
 



[02/25] incubator-ignite git commit: #ignite-gg-10610: Security hole if DataStreamer is used for populating the cache

Posted by an...@apache.org.
#ignite-gg-10610: Security hole if DataStreamer is used for populating the cache


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

Branch: refs/heads/ignite-1121
Commit: 5288b2d8b882bbb86d69e1019821d51803685861
Parents: a127756
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jul 29 15:27:31 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jul 29 15:27:31 2015 +0300

----------------------------------------------------------------------
 .../datastreamer/DataStreamerImpl.java          | 22 ++++++++++++++++++++
 .../datastreamer/DataStreamerUpdateJob.java     | 20 +++++++++++++++++-
 2 files changed, 41 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5288b2d8/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
index 605f478..5fae676 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerImpl.java
@@ -39,6 +39,7 @@ import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.lang.*;
+import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.stream.*;
 import org.jetbrains.annotations.*;
 import org.jsr166.*;
@@ -413,6 +414,8 @@ public class DataStreamerImpl<K, V> implements IgniteDataStreamer<K, V>, Delayed
     @Override public IgniteFuture<?> addData(Collection<? extends Map.Entry<K, V>> entries) {
         A.notEmpty(entries, "entries");
 
+        checkSecurityPermission(SecurityPermission.CACHE_PUT);
+
         enterBusy();
 
         try {
@@ -520,6 +523,11 @@ public class DataStreamerImpl<K, V> implements IgniteDataStreamer<K, V>, Delayed
     @Override public IgniteFuture<?> addData(K key, V val) {
         A.notNull(key, "key");
 
+        if (val == null)
+            checkSecurityPermission(SecurityPermission.CACHE_REMOVE);
+        else
+            checkSecurityPermission(SecurityPermission.CACHE_PUT);
+
         KeyCacheObject key0 = cacheObjProc.toCacheKeyObject(cacheObjCtx, key, true);
         CacheObject val0 = cacheObjProc.toCacheObject(cacheObjCtx, val, true);
 
@@ -980,6 +988,20 @@ public class DataStreamerImpl<K, V> implements IgniteDataStreamer<K, V>, Delayed
     }
 
     /**
+     * Check permissions for streaming.
+     *
+     * @param perm Security permission.
+     * @throws org.apache.ignite.plugin.security.SecurityException If permissions are not enough for streaming.
+     */
+    private void checkSecurityPermission(SecurityPermission perm)
+        throws org.apache.ignite.plugin.security.SecurityException{
+        if (!ctx.security().enabled())
+            return;
+
+        ctx.security().authorize(cacheName, perm, null);
+    }
+
+    /**
      *
      */
     private class Buffer {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5288b2d8/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerUpdateJob.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerUpdateJob.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerUpdateJob.java
index 21ba3ac..9e0703a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerUpdateJob.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastreamer/DataStreamerUpdateJob.java
@@ -22,6 +22,7 @@ import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.stream.*;
 import org.jetbrains.annotations.*;
 
@@ -106,8 +107,13 @@ class DataStreamerUpdateJob implements GridPlainCallable<Object> {
 
                 CacheObject val = e.getValue();
 
-                if (val != null)
+                if (val != null) {
+                    checkSecurityPermission(SecurityPermission.CACHE_PUT);
+
                     val.finishUnmarshal(cctx.cacheObjectContext(), cctx.deploy().globalLoader());
+                }
+                else
+                    checkSecurityPermission(SecurityPermission.CACHE_REMOVE);
             }
 
             if (unwrapEntries()) {
@@ -139,4 +145,16 @@ class DataStreamerUpdateJob implements GridPlainCallable<Object> {
     private boolean unwrapEntries() {
         return !(rcvr instanceof DataStreamerCacheUpdaters.InternalUpdater);
     }
+
+    /**
+     * @param perm Security permission.
+     * @throws org.apache.ignite.plugin.security.SecurityException If permission is not enough.
+     */
+    private void checkSecurityPermission(SecurityPermission perm)
+        throws org.apache.ignite.plugin.security.SecurityException {
+        if (!ctx.security().enabled())
+            return;
+
+        ctx.security().authorize(cacheName, perm, null);
+    }
 }


[06/25] incubator-ignite git commit: # ignite-843 Fixed focus in tables.

Posted by an...@apache.org.
# ignite-843 Fixed focus in tables.


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

Branch: refs/heads/ignite-1121
Commit: 865ad01081003914de12929996d10144ee79b9c1
Parents: 7798255
Author: Andrey <an...@gridgain.com>
Authored: Thu Jul 30 15:01:14 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Jul 30 15:01:14 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/views/includes/controls.jade    | 105 ++++++++++---------
 1 file changed, 57 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/865ad010/modules/control-center-web/src/main/js/views/includes/controls.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/includes/controls.jade b/modules/control-center-web/src/main/js/views/includes/controls.jade
index e9fe71b..8363066 100644
--- a/modules/control-center-web/src/main/js/views/includes/controls.jade
+++ b/modules/control-center-web/src/main/js/views/includes/controls.jade
@@ -52,18 +52,23 @@ mixin btn-up(show, click)
 mixin btn-down(show, click)
     i.tipField.fa.fa-arrow-down(ng-show=show ng-click=click bs-tooltip data-title='Move item down')
 
-mixin table-pair-edit(keyModel, valModel, keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes, focusId)
-    .col-sm-6(style='float: right')
-        if valueJavaBuildInTypes
-            input.form-control(type='text' ng-model=valModel placeholder=valPlaceholder bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes' ng-escape='tableReset()')
-        else
-            input.form-control(type='text' ng-model=valModel placeholder=valPlaceholder ng-escape='tableReset()')
-    label.fieldSep /
-    .input-tip
-        if keyJavaBuildInTypes
-            input.form-control(id=focusId type='text' ng-model=keyModel placeholder=keyPlaceholder bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes' ng-escape='tableReset()')
-        else
-            input.form-control(id=focusId type='text' ng-model=keyModel placeholder=keyPlaceholder ng-escape='tableReset()')
+mixin table-pair-edit(keyModel, valModel, keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes, focusId, index)
+    .col-sm-6
+        label.fieldSep /
+        .input-tip
+            if keyJavaBuildInTypes
+                input.form-control(id=focusId type='text' ng-model=keyModel placeholder=keyPlaceholder bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes' ng-escape='tableReset()')
+            else
+                input.form-control(id=focusId type='text' ng-model=keyModel placeholder=keyPlaceholder ng-escape='tableReset()')
+    .col-sm-6
+        -var arg = keyModel + ', ' + valModel
+
+        +btn-save('tablePairSaveVisible(' + arg + ')', 'tablePairSave(tablePairValid, backupItem, field, '+ arg +', ' + index + ')')
+        .input-tip
+            if valueJavaBuildInTypes
+                input.form-control(type='text' ng-model=valModel placeholder=valPlaceholder bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes' ng-escape='tableReset()')
+            else
+                input.form-control(type='text' ng-model=valModel placeholder=valPlaceholder ng-escape='tableReset()')
 
 mixin table-pair(header, tblMdl, keyFld, valFld, keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes)
     .col-sm-6
@@ -79,14 +84,11 @@ mixin table-pair(header, tblMdl, keyFld, valFld, keyPlaceholder, valPlaceholder,
                                 a.labelFormField(event-focus='click' event-focus-id='{{::field.focusCurItemId}}' ng-click='curPair = tableStartEdit(backupItem, field, $index); curKey = curPair.#{keyFld}; curValue = curPair.#{valFld}') {{$index + 1}}) {{item.#{keyFld}}} / {{item.#{valFld}}}
                                 +btn-remove('tableRemove(backupItem, field, $index)', 'field.removeTip')
                             div(ng-if='tableEditing(field, $index)')
-                                label.labelField {{$index + 1}})
-                                +btn-save('tablePairSaveVisible(curKey, curValue)', 'tablePairSave(tablePairValid, backupItem, field, curKey, curValue, $index)')
-                                +table-pair-edit('curKey', 'curValue', keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes, '{{::field.focusCurItemId}}')
+                                +table-pair-edit('curKey', 'curValue', keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes, '{{::field.focusCurItemId}}', '$index')
                 tfoot(ng-show='tableNewItemActive(field)')
                     tr
                         td.col-sm-12
-                            +btn-save('tablePairSaveVisible(newKey, newValue)', 'tablePairSave(tablePairValid, backupItem, field, newKey, newValue, -1)')
-                            +table-pair-edit('newKey', 'newValue', keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes, '{{::field.focusNewItemId}}')
+                            +table-pair-edit('newKey', 'newValue', keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes, '{{::field.focusNewItemId}}', '-1')
 
 mixin details-row
     - var lblDetailClasses = ['col-sm-4', 'details-label']
@@ -155,28 +157,41 @@ mixin details-row
                 input.form-control(name='{{detail.model}}' type='text' ng-model='newValue' ng-focus='tableNewItem(detail)' placeholder='{{::detail.placeholder}}')&attributes(customValidators)
                 +ico-exclamation('{{detail.model}}', 'ipaddress', 'Invalid address, see help for format description.')
 
-mixin table-db-field-edit(databaseName, databaseType, javaName, javaType)
-    div(style='width: 22%; float: right')
-        button.form-control(ng-model=javaType bs-select data-placeholder='Java type' bs-options='item.value as item.label for item in {{javaTypes}}')
-    label.fieldSep /
-    div(style='width: 20%; float: right')
-        input.form-control(type='text' ng-model=javaName placeholder='Java name' ng-escape='tableReset()')
-    label.fieldSep /
-    div(style='width: 22%; float: right')
-        button.form-control(ng-model=databaseType bs-select data-placeholder='JDBC type' bs-options='item.value as item.label for item in {{jdbcTypes}}')
-    label.fieldSep /
-    .input-tip
-        input.form-control(type='text' ng-model=databaseName placeholder='DB name' ng-escape='tableReset()')
+mixin table-db-field-edit(databaseName, databaseType, javaName, javaType, index)
+    .col-sm-3
+        label.fieldSep /
+        .input-tip
+            input.form-control(type='text' ng-model=databaseName placeholder='DB name' ng-escape='tableReset()')
+    .col-sm-3
+        label.fieldSep /
+        .input-tip
+            button.form-control(ng-model=databaseType bs-select data-placeholder='JDBC type' bs-options='item.value as item.label for item in {{jdbcTypes}}')
+    .col-sm-3
+        label.fieldSep /
+        .input-tip
+            input.form-control(type='text' ng-model=javaName placeholder='Java name' ng-escape='tableReset()')
+    .col-sm-3
+        - var args = databaseName + ', ' + databaseType + ', ' + javaName + ', ' + javaType
 
-mixin table-group-item-edit(fieldName, className, direction, focusId)
-    div(style='width: 15%; float: right')
-        button.form-control(ng-model=direction bs-select data-placeholder='Sort' bs-options='item.value as item.label for item in {{sortDirections}}')
-    label.fieldSep /
-    div(style='width: 38%; float: right')
-        input.form-control(type='text' ng-model=className placeholder='Class name' bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes' ng-escape='tableReset()')
-    label.fieldSep /
-    .input-tip
-        input.form-control(id=focusId type='text' ng-model=fieldName placeholder='Field name' ng-escape='tableReset()')
+        +btn-save('tableDbFieldSaveVisible(' + args + ')', 'tableDbFieldSave(field, ' + args + ', ' + index +')')
+        .input-tip
+            button.form-control(ng-model=javaType bs-select data-placeholder='Java type' bs-options='item.value as item.label for item in {{javaTypes}}')
+
+mixin table-group-item-edit(fieldName, className, direction, focusId, index)
+    .col-sm-4
+        label.fieldSep /
+        .input-tip
+            input.form-control(id=focusId type='text' ng-model=fieldName placeholder='Field name' ng-escape='tableReset()')
+    .col-sm-5
+        label.fieldSep /
+        .input-tip
+            input.form-control(type='text' ng-model=className placeholder='Class name' bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes' ng-escape='tableReset()')
+    .col-sm-3
+        - var args = fieldName + ', ' + className
+
+        +btn-save('tableGroupItemSaveVisible(' + args + ')', 'tableGroupItemSave(' + args + ', ' + direction + ', groupIndex, ' + index +')')
+        .input-tip
+            button.form-control(ng-model=direction bs-select data-placeholder='Sort' bs-options='item.value as item.label for item in {{sortDirections}}')
 
 mixin form-row
     +form-row-custom(['col-sm-2'], ['col-sm-4'])
@@ -295,14 +310,11 @@ mixin form-row-custom(lblClasses, fieldClasses)
                                             a.labelFormField(ng-click='curField = tableStartEdit(backupItem, field, $index); curDatabaseName = curField.databaseName; curDatabaseType = curField.databaseType; curJavaName = curField.javaName; curJavaType = curField.javaType') {{$index + 1}}) {{item.databaseName}} / {{item.databaseType}} / {{item.javaName}} / {{item.javaType}}
                                             +btn-remove('tableRemove(backupItem, field, $index)', 'field.removeTip')
                                         div(ng-if='tableEditing(field, $index)')
-                                            label.labelField {{$index + 1}})
-                                            +btn-save('tableDbFieldSaveVisible(curDatabaseName, curDatabaseType, curJavaName, curJavaType)', 'tableDbFieldSave(field, curDatabaseName, curDatabaseType, curJavaName, curJavaType, $index)')
-                                            +table-db-field-edit('curDatabaseName', 'curDatabaseType', 'curJavaName', 'curJavaType')
+                                            +table-db-field-edit('curDatabaseName', 'curDatabaseType', 'curJavaName', 'curJavaType', '$index')
                             tfoot(ng-show='tableNewItemActive(field)')
                                 tr
                                     td.col-sm-12
-                                        +btn-save('tableDbFieldSaveVisible(newDatabaseName, newDatabaseType, newJavaName, newJavaType)', 'tableDbFieldSave(field, newDatabaseName, newDatabaseType, newJavaName, newJavaType, -1)')
-                                        +table-db-field-edit('newDatabaseName', 'newDatabaseType', 'newJavaName', 'newJavaType')
+                                        +table-db-field-edit('newDatabaseName', 'newDatabaseType', 'newJavaName', 'newJavaType', '-1')
         div(ng-switch-when='queryGroups' ng-hide=fieldHide)
             .col-sm-6
                 label.table-header {{::field.label}}:
@@ -334,14 +346,11 @@ mixin form-row-custom(lblClasses, fieldClasses)
                                                                     a.labelFormField(event-focus='click' event-focus-id='curGroupItemId' ng-click='curGroupItem = tableGroupItemStartEdit(groupIndex, $index); curFieldName = curGroupItem.name; curClassName = curGroupItem.className; curDirection = curGroupItem.direction') {{$index + 1}}) {{groupItem.name}} / {{groupItem.className}} / {{groupItem.direction ? "DESC" : "ASC"}}
                                                                     +btn-remove('tableRemoveGroupItem(group, $index)', 'field.removeItemTip')
                                                                 div(ng-if='tableGroupItemEditing(groupIndex, $index)')
-                                                                    label.labelField {{$index + 1}})
-                                                                    +btn-save('tableGroupItemSaveVisible(curFieldName, curClassName)', 'tableGroupItemSave(curFieldName, curClassName, curDirection, groupIndex, $index)')
-                                                                    +table-group-item-edit('curFieldName', 'curClassName', 'curDirection', 'curGroupItemId')
+                                                                    +table-group-item-edit('curFieldName', 'curClassName', 'curDirection', 'curGroupItemId', '$index')
                                                     tfoot(ng-if='tableGroupNewItemActive(groupIndex)')
                                                         tr.col-sm-12(style='padding-left: 18px')
                                                             td
-                                                                +btn-save('tableGroupItemSaveVisible(newFieldName, newClassName)', 'tableGroupItemSave(newFieldName, newClassName, newDirection, groupIndex, -1)')
-                                                                +table-group-item-edit('newFieldName', 'newClassName', 'newDirection', 'newGroupItemId')
+                                                                +table-group-item-edit('newFieldName', 'newClassName', 'newDirection', 'newGroupItemId', '-1')
                             tfoot(ng-show='tableNewItemActive(field)')
                                 tr
                                     td.col-sm-12


[16/25] incubator-ignite git commit: IGNITE-843 Fixed property file generation and downloaded archive content.

Posted by an...@apache.org.
IGNITE-843 Fixed property file generation and downloaded archive content.


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

Branch: refs/heads/ignite-1121
Commit: e1aa2cbde29f731eb9a62e7b065a061d0385b0aa
Parents: 3e6af39
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 17:31:21 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 17:31:21 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/controllers/summary-controller.js            | 2 +-
 .../src/main/js/routes/generator/common.js                   | 2 +-
 modules/control-center-web/src/main/js/routes/summary.js     | 8 ++++----
 3 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e1aa2cbd/modules/control-center-web/src/main/js/controllers/summary-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/summary-controller.js b/modules/control-center-web/src/main/js/controllers/summary-controller.js
index 531dc83..a152485 100644
--- a/modules/control-center-web/src/main/js/controllers/summary-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/summary-controller.js
@@ -120,7 +120,7 @@ controlCenterModule.controller('summaryController', ['$scope', '$http', '$common
     };
 
     $scope.download = function () {
-        $http.post('summary/download', {_id: $scope.selectedItem._id, javaClass: $scope.javaClass, os: $scope.os})
+        $http.post('summary/download', {_id: $scope.selectedItem._id, os: $scope.os})
             .success(function (data) {
                 var file = document.createElement('a');
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e1aa2cbd/modules/control-center-web/src/main/js/routes/generator/common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/common.js b/modules/control-center-web/src/main/js/routes/generator/common.js
index 54e3197..a74b545 100644
--- a/modules/control-center-web/src/main/js/routes/generator/common.js
+++ b/modules/control-center-web/src/main/js/routes/generator/common.js
@@ -309,7 +309,7 @@ exports.generateProperties = function (cluster) {
     }
 
     if (datasources.length > 0)
-        return '# ' + mainComment() + '\n\n' + res.join();
+        return '# ' + mainComment() + '\n\n' + res.join('');
 
     return undefined;
 };

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e1aa2cbd/modules/control-center-web/src/main/js/routes/summary.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/summary.js b/modules/control-center-web/src/main/js/routes/summary.js
index 9f8df2a..e91e045 100644
--- a/modules/control-center-web/src/main/js/routes/summary.js
+++ b/modules/control-center-web/src/main/js/routes/summary.js
@@ -87,8 +87,6 @@ router.post('/download', function (req, res) {
         // Send the file to the page output.
         zip.pipe(res);
 
-        var javaClass = req.body.javaClass;
-
         if (!clientNearConfiguration) {
             zip.append(generatorDocker.generateClusterConfiguration(cluster, req.body.os), {name: "Dockerfile"});
 
@@ -99,8 +97,10 @@ router.post('/download', function (req, res) {
         }
 
         zip.append(generatorXml.generateClusterConfiguration(cluster, clientNearConfiguration), {name: cluster.name + ".xml"})
-            .append(generatorJava.generateClusterConfiguration(cluster, javaClass, clientNearConfiguration),
-                {name: javaClass ? 'ConfigurationFactory.java' : cluster.name + '.snipplet.java'})
+            .append(generatorJava.generateClusterConfiguration(cluster, false, clientNearConfiguration),
+                {name: cluster.name + '.snippet.java'})
+            .append(generatorJava.generateClusterConfiguration(cluster, true, clientNearConfiguration),
+                {name: 'ConfigurationFactory.java'})
             .finalize();
     });
 });


[13/25] incubator-ignite git commit: IGNITE-843 Fixed java code generation.

Posted by an...@apache.org.
IGNITE-843 Fixed java code generation.


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

Branch: refs/heads/ignite-1121
Commit: 524ff59feb75018f3c2364b8b19642895f71c4d1
Parents: 8922aad
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 17:06:36 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 17:06:36 2015 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/routes/generator/java.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/524ff59f/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index 6024a4d..c10b6ce 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -555,7 +555,7 @@ function addCacheConfiguration(res, cache, varName) {
         if (storeFactory.dialect) {
             var dataSourceBean = storeFactory.dataSourceBean;
 
-            dsVarName = 'dataSource' + generatorUtils.toJavaName(dataSourceBean);
+            dsVarName = 'dataSource' + toJavaName(dataSourceBean);
 
             if (!_.contains(res.datasourceBeans, dataSourceBean)) {
                 res.datasourceBeans.push(dataSourceBean);


[05/25] incubator-ignite git commit: IGNITE-843 Finished cache type metadata java code generation.

Posted by an...@apache.org.
IGNITE-843 Finished cache type metadata java code generation.


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

Branch: refs/heads/ignite-1121
Commit: 77982551530dbf39379d7af514f681d10b9d936e
Parents: cc88167
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 00:19:28 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 00:19:28 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/routes/generator/common.js      |  20 +-
 .../src/main/js/routes/generator/docker.js      |  70 +++---
 .../src/main/js/routes/generator/java.js        | 240 ++++++++++---------
 .../src/main/js/routes/generator/xml.js         |  16 +-
 4 files changed, 175 insertions(+), 171 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/77982551/modules/control-center-web/src/main/js/routes/generator/common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/common.js b/modules/control-center-web/src/main/js/routes/generator/common.js
index 859f28c..54e3197 100644
--- a/modules/control-center-web/src/main/js/routes/generator/common.js
+++ b/modules/control-center-web/src/main/js/routes/generator/common.js
@@ -116,23 +116,19 @@ exports.builder = function () {
 
     res.imports = {};
 
-    res.importClass = function (fullClassName) {
-        var dotIdx = fullClassName.lastIndexOf('.');
+    res.importClass = function (className) {
+        var fullClassName = javaBuildInClass(className);
 
-        var shortName;
+        var dotIdx = fullClassName.lastIndexOf('.');
 
-        if (dotIdx > 0)
-            shortName = fullClassName.substr(dotIdx + 1);
-        else
-            shortName = fullClassName;
+        var shortName = dotIdx > 0 ? fullClassName.substr(dotIdx + 1) : fullClassName;
 
         if (this.imports[shortName]) {
             if (this.imports[shortName] != fullClassName)
                 throw "Class name conflict: " + this.imports[shortName] + ' and ' + fullClassName;
         }
-        else {
+        else
             this.imports[shortName] = fullClassName;
-        }
 
         return shortName;
     };
@@ -195,14 +191,16 @@ var javaBuildInClasses = {
     UUID: {className: 'java.util.UUID'}
 };
 
-exports.javaBuildInClass = function (className) {
+function javaBuildInClass(className) {
     var fullClassName = javaBuildInClasses[className];
 
     if (fullClassName)
         return fullClassName.className;
 
     return className;
-};
+}
+
+exports.javaBuildInClass = javaBuildInClass;
 
 exports.knownClasses = {
     Oracle: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.OracleDialect', {}),

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/77982551/modules/control-center-web/src/main/js/routes/generator/docker.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/docker.js b/modules/control-center-web/src/main/js/routes/generator/docker.js
index 93faf8e..997a7ce 100644
--- a/modules/control-center-web/src/main/js/routes/generator/docker.js
+++ b/modules/control-center-web/src/main/js/routes/generator/docker.js
@@ -15,44 +15,44 @@
  * limitations under the License.
  */
 
-exports.generateClusterConfiguration = function(cluster, os) {
+exports.generateClusterConfiguration = function (cluster, os) {
     if (!os)
         os = 'debian:8';
 
     return "" +
-        "# Start from a OS image.\n"+
-        "FROM " + os + "\n"+
-        "\n"+
-        "# Install tools.\n"+
-        "RUN apt-get update && apt-get install -y --fix-missing \\\n"+
-        "  wget \\\n"+
-        "  dstat \\\n"+
-        "  maven \\\n"+
-        "  git\n"+
-        "\n"+
-        "# Install Oracle JDK.\n"+
-        "RUN mkdir /opt/jdk\n"+
-        "\n"+
-        "RUN wget --header \"Cookie: oraclelicense=accept-securebackup-cookie\" \\\n"+
-        "  http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz\n"+
-        "\n"+
-        "RUN tar -zxf jdk-7u79-linux-x64.tar.gz -C /opt/jdk\n"+
-        "\n"+
-        "RUN rm jdk-7u79-linux-x64.tar.gz\n"+
-        "\n"+
-        "RUN update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.7.0_79/bin/java 100\n"+
-        "\n"+
-        "RUN update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.7.0_79/bin/javac 100\n"+
-        "\n"+
-        "# Sets java variables.\n"+
-        "ENV JAVA_HOME /opt/jdk/jdk1.7.0_79/\n"+
-        "\n"+
-        "# Create working directory\n"+
-        "WORKDIR /home\n"+
-        "\n"+
-        "RUN wget -O ignite.zip http://tiny.cc/updater/download_ignite.php && unzip ignite.zip && rm ignite.zip\n"+
-        "\n"+
-        "COPY *.xml /tmp/\n"+
-        "\n"+
+        "# Start from a OS image.\n" +
+        "FROM " + os + "\n" +
+        "\n" +
+        "# Install tools.\n" +
+        "RUN apt-get update && apt-get install -y --fix-missing \\\n" +
+        "  wget \\\n" +
+        "  dstat \\\n" +
+        "  maven \\\n" +
+        "  git\n" +
+        "\n" +
+        "# Install Oracle JDK.\n" +
+        "RUN mkdir /opt/jdk\n" +
+        "\n" +
+        "RUN wget --header \"Cookie: oraclelicense=accept-securebackup-cookie\" \\\n" +
+        "  http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz\n" +
+        "\n" +
+        "RUN tar -zxf jdk-7u79-linux-x64.tar.gz -C /opt/jdk\n" +
+        "\n" +
+        "RUN rm jdk-7u79-linux-x64.tar.gz\n" +
+        "\n" +
+        "RUN update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.7.0_79/bin/java 100\n" +
+        "\n" +
+        "RUN update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.7.0_79/bin/javac 100\n" +
+        "\n" +
+        "# Sets java variables.\n" +
+        "ENV JAVA_HOME /opt/jdk/jdk1.7.0_79/\n" +
+        "\n" +
+        "# Create working directory\n" +
+        "WORKDIR /home\n" +
+        "\n" +
+        "RUN wget -O ignite.zip http://tiny.cc/updater/download_ignite.php && unzip ignite.zip && rm ignite.zip\n" +
+        "\n" +
+        "COPY *.xml /tmp/\n" +
+        "\n" +
         "RUN mv /tmp/*.xml /home/$(ls)/config";
 };

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/77982551/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index 3293af2..d017901 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -55,7 +55,7 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientMode)
         res.startBlock('public IgniteConfiguration createConfiguration() {');
     }
 
-    declareVariable(res, true, 'org.apache.ignite.configuration.IgniteConfiguration', 'cfg');
+    declareVariable(res, true, 'cfg', 'org.apache.ignite.configuration.IgniteConfiguration');
     res.line();
 
     if (clientMode) {
@@ -66,7 +66,7 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientMode)
     if (cluster.discovery) {
         var d = cluster.discovery;
 
-        declareVariable(res, true, 'org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi', 'discovery');
+        declareVariable(res, true, 'discovery', 'org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi');
 
         switch (d.kind) {
             case 'Multicast':
@@ -135,7 +135,7 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientMode)
             case 'Jdbc':
                 res.line();
 
-                declareVariable(res, true, 'org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc.TcpDiscoveryJdbcIpFinder', 'ipFinder');
+                declareVariable(res, true, 'ipFinder', 'org.apache.ignite.spi.discovery.tcp.ipfinder.jdbc.TcpDiscoveryJdbcIpFinder');
 
                 res.line('ipFinder.setInitSchema(' + (d.Jdbc.initSchema != null || d.Jdbc.initSchema) + ');');
                 res.line('discovery.setIpFinder(ipFinder);');
@@ -162,30 +162,30 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientMode)
         res.needEmptyLine = true;
     }
 
-    if (cluster.caches && cluster.caches.length > 0) {
+    var caches = cluster.caches;
+
+    if (caches && caches.length > 0) {
         res.emptyLineIfNeeded();
 
         var names = [];
 
-        for (var i = 0; i < cluster.caches.length; i++) {
+        _.forEach(caches, function (cache) {
             res.emptyLineIfNeeded();
 
-            var cache = cluster.caches[i];
-
             var cacheName = toJavaName('cache', cache.name);
 
             names.push(cacheName);
 
-            generateCacheConfiguration(res, cache, cacheName);
+            addCacheConfiguration(res, cache, cacheName);
 
             res.needEmptyLine = true;
-        }
+        });
 
         res.emptyLineIfNeeded();
 
         res.append('cfg.setCacheConfiguration(');
 
-        for (i = 0; i < names.length; i++) {
+        for (var i = 0; i < names.length; i++) {
             if (i > 0)
                 res.append(', ');
 
@@ -326,7 +326,15 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientMode)
     return res.join('');
 };
 
-function createEvictionPolicy(res, varName, evictionPolicy, propertyName) {
+/**
+ * Add eviction policy.
+ *
+ * @param res Resulting output with generated code.
+ * @param varName Current using variable name.
+ * @param evictionPolicy Data to add.
+ * @param propertyName Name in source data.
+ */
+function addEvictionPolicy(res, varName, evictionPolicy, propertyName) {
     if (evictionPolicy && evictionPolicy.kind) {
         var e = generatorUtils.evictionPolicies[evictionPolicy.kind];
 
@@ -336,25 +344,16 @@ function createEvictionPolicy(res, varName, evictionPolicy, propertyName) {
     }
 }
 
-function addCacheTypeMetadataDatabaseFields(res, varName, meta, fieldProperty) {
-    var fields = meta[fieldProperty];
-
-    if (fields && fields.length > 0) {
-        res.emptyLineIfNeeded();
-
-        var varDbFields = fieldProperty;
-
-        var varNew = !res[fieldProperty];
+function addCacheTypeMetadataDatabaseFields(res, meta, fieldProperty) {
+    var dbFields = meta[fieldProperty];
 
-        if (varNew)
-            res[fieldProperty] = true;
-
-        declareVariable(res, varNew, 'java.util.Collection', varDbFields, 'java.util.ArrayList', 'org.apache.ignite.cache.CacheTypeFieldMetadata');
+    if (dbFields && dbFields.length > 0) {
+        res.line();
 
-        res.importClass('org.apache.ignite.cache.CacheTypeFieldMetadata');
+        declareVariable(res, needNewVariable(res, fieldProperty), fieldProperty, 'java.util.Collection', 'java.util.ArrayList', 'org.apache.ignite.cache.CacheTypeFieldMetadata');
 
-        _.forEach(fields, function (field) {
-            res.line(varDbFields + '.add(new CacheTypeFieldMetadata(' +
+        _.forEach(dbFields, function (field) {
+            res.line(fieldProperty + '.add(new CacheTypeFieldMetadata(' +
                 '"' + field.databaseName + '", ' +
                 'java.sql.Types.' + field.databaseType + ', ' +
                 '"' + field.javaName + '", ' +
@@ -362,110 +361,95 @@ function addCacheTypeMetadataDatabaseFields(res, varName, meta, fieldProperty) {
                 + '));');
         });
 
-        res.line(varName + '.' + toJavaName('set', fieldProperty) + '(' + varDbFields + ');');
+        res.line('typeMeta.' + toJavaName('set', fieldProperty) + '(' + fieldProperty + ');');
     }
 }
 
-function addCacheTypeMetadataQueryFields(res, varType, meta, fieldProperty) {
+function addCacheTypeMetadataQueryFields(res, meta, fieldProperty) {
     var fields = meta[fieldProperty];
 
     if (fields && fields.length > 0) {
-        res.emptyLineIfNeeded();
-
-        var varQryFields = fieldProperty;
-
-        var varNew = !res[fieldProperty];
-
-        if (varNew)
-            res[fieldProperty] = true;
+        res.line();
 
-        declareVariable(res, varNew, 'java.util.Map', varQryFields, 'java.util.LinkedHashMap', 'java.lang.String', 'java.lang.Class<?>');
+        declareVariable(res, needNewVariable(res, fieldProperty), fieldProperty, 'java.util.Map', 'java.util.LinkedHashMap', 'java.lang.String', 'java.lang.Class<?>');
 
         _.forEach(fields, function (field) {
-            var cls = res.importClass(generatorUtils.javaBuildInClass(field.className));
-
-            res.line(varQryFields + '.put("' + field.name + '", ' + cls + '.class);');
+            res.line(fieldProperty + '.put("' + field.name + '", ' + res.importClass(field.className) + '.class);');
         });
 
-        res.line(varType + '.' + toJavaName('set', fieldProperty) + '(' + varQryFields + ');');
+        res.line('typeMeta.' + toJavaName('set', fieldProperty) + '(' + fieldProperty + ');');
     }
 }
 
-function addCacheTypeMetadataGroups(res, meta, varName) {
+function addCacheTypeMetadataGroups(res, meta) {
     var groups = meta.groups;
 
     if (groups && groups.length > 0) {
-        res.line('addCacheTypeMetadataGroups for ' + varName);
-        //res.startBlock('<property name="groups">');
-        //res.startBlock('<map>');
-        //
-        //_.forEach(groups, function (group) {
-        //    var fields = group.fields;
-        //
-        //    if (fields && fields.length > 0) {
-        //        res.startBlock('<entry key="' + group.name + '">');
-        //        res.startBlock('<map>');
-        //
-        //        _.forEach(fields, function (field) {
-        //            res.startBlock('<entry key="' + field.name + '">');
-        //
-        //            res.startBlock('<bean class="org.apache.ignite.lang.IgniteBiTuple">');
-        //            res.line('<constructor-arg value="' + generatorUtils.javaBuildInClass(field.className) + '"/>');
-        //            res.line('<constructor-arg value="' + field.direction + '"/>');
-        //            res.endBlock('</bean>');
-        //
-        //            res.endBlock('</entry>');
-        //        });
-        //
-        //        res.endBlock('</map>');
-        //        res.endBlock('</entry>');
-        //    }
-        //});
-        //
-        //res.endBlock('</map>');
-        //res.endBlock('</property>');
-    }
-}
+        _.forEach(groups, function (group) {
+            var fields = group.fields;
 
-function generateCacheTypeMetadataConfiguration(res, cache, meta) {
-    var varType = 'meta';
+            if (fields && fields.length > 0) {
+                res.importClass('java.util.Map');
+                res.importClass('java.util.LinkedHashMap');
+                res.importClass('org.apache.ignite.lang.IgniteBiTuple');
 
-    var varNew = !res[varType];
+                var varNew = !res.groups;
 
-    if (varNew)
-        res[varType] = true;
+                res.line();
+                res.line((varNew ? 'Map<String, LinkedHashMap<String, IgniteBiTuple<Class<?>, Boolean>>> ' : '') +
+                    "groups = new LinkedHashMap<>();");
 
-    declareVariable(res, varNew, 'org.apache.ignite.cache.CacheTypeMetadata', varType);
+                if (varNew)
+                    res.groups = true;
 
-    addProperty(res, varType, meta, 'databaseSchema');
-    addProperty(res, varType, meta, 'databaseTable');
+                varNew = !res.groupItems;
 
-    addProperty(res, varType, meta, 'keyType');
-    addProperty(res, varType, meta, 'valueType');
+                res.line((varNew ? 'LinkedHashMap<String, IgniteBiTuple<Class<?>, Boolean>> ' : '') +
+                    'groupItems = new LinkedHashMap<>();');
 
-    addCacheTypeMetadataDatabaseFields(res, varType, meta, 'keyFields');
-    res.needEmptyLine = true;
+                if (varNew)
+                    res.groupItems = true;
 
-    addCacheTypeMetadataDatabaseFields(res, varType, meta, 'valueFields');
-    res.needEmptyLine = true;
+                _.forEach(fields, function (field) {
+                    res.line('groupItems.put("' + field.name + '", ' +
+                        'new IgniteBiTuple<Class<?>, Boolean>(' + res.importClass(field.className) + '.class, ' + field.direction + '));');
+                });
 
-    addCacheTypeMetadataQueryFields(res, varType, meta, 'queryFields');
-    res.needEmptyLine = true;
+                res.line('groups.put("' + group.name + '", groupItems);');
+            }
+        });
 
-    addCacheTypeMetadataQueryFields(res, varType, meta, 'ascendingFields');
-    res.needEmptyLine = true;
+        res.line('typeMeta.setGroups(groups);');
+    }
+}
 
-    addCacheTypeMetadataQueryFields(res, varType, meta, 'descendingFields');
-    res.needEmptyLine = true;
+function addCacheTypeMetadataConfiguration(res, meta) {
+    declareVariable(res, needNewVariable(res, 'typeMeta'), 'typeMeta', 'org.apache.ignite.cache.CacheTypeMetadata');
+
+    addProperty(res, 'typeMeta', meta, 'databaseSchema');
+    addProperty(res, 'typeMeta', meta, 'databaseTable');
+
+    addClassProperty(res, 'typeMeta', meta, 'keyType');
+    addClassProperty(res, 'typeMeta', meta, 'valueType');
+
+    addCacheTypeMetadataDatabaseFields(res, meta, 'keyFields');
+
+    addCacheTypeMetadataDatabaseFields(res, meta, 'valueFields');
+
+    addCacheTypeMetadataQueryFields(res, meta, 'queryFields');
+
+    addCacheTypeMetadataQueryFields(res, meta, 'ascendingFields');
+
+    addCacheTypeMetadataQueryFields(res, meta, 'descendingFields');
 
-    addListProperty(res, varType, meta, 'textFields');
     res.needEmptyLine = true;
+    addListProperty(res, 'typeMeta', meta, 'textFields');
 
-    addCacheTypeMetadataGroups(res, varType, meta);
+    addCacheTypeMetadataGroups(res, meta);
 
     res.line();
-
-    return varType;
+    res.line('types.add(typeMeta);');
+    res.line();
 }
 
 /**
@@ -476,13 +460,13 @@ function generateCacheTypeMetadataConfiguration(res, cache, meta) {
  * @param res Result builder.
  * @returns {*} Append generated java code to builder and return it.
  */
-function generateCacheConfiguration(res, cache, varName) {
+function addCacheConfiguration(res, cache, varName) {
     res.emptyLineIfNeeded();
 
     res.importClass('org.apache.ignite.cache.CacheAtomicityMode');
     res.importClass('org.apache.ignite.cache.CacheMode');
 
-    declareVariable(res, true, 'org.apache.ignite.configuration.CacheConfiguration', varName);
+    declareVariable(res, true, varName, 'org.apache.ignite.configuration.CacheConfiguration');
 
     res.needEmptyLine = true;
 
@@ -504,7 +488,7 @@ function generateCacheConfiguration(res, cache, varName) {
 
     res.needEmptyLine = true;
 
-    createEvictionPolicy(res, varName, cache.evictionPolicy, 'evictionPolicy');
+    addEvictionPolicy(res, varName, cache.evictionPolicy, 'evictionPolicy');
 
     if (cache.nearCacheEnabled) {
         res.needEmptyLine = true;
@@ -515,7 +499,7 @@ function generateCacheConfiguration(res, cache, varName) {
             'NearCacheConfiguration', {nearStartSize: null}, true);
 
         if (cache.nearConfiguration && cache.nearConfiguration.nearEvictionPolicy && cache.nearConfiguration.nearEvictionPolicy.kind) {
-            createEvictionPolicy(res, 'nearConfiguration', cache.nearConfiguration.nearEvictionPolicy, 'nearEvictionPolicy');
+            addEvictionPolicy(res, 'nearConfiguration', cache.nearConfiguration.nearEvictionPolicy, 'nearEvictionPolicy');
         }
     }
 
@@ -575,7 +559,7 @@ function generateCacheConfiguration(res, cache, varName) {
 
                 res.line();
 
-                declareVariable(res, true, dataSource.className, dsVarName);
+                declareVariable(res, true, dsVarName, dataSource.className);
 
                 res.line(dsVarName + '.setURL(_URL_);');
                 res.line(dsVarName + '.setUsername(_User_Name_);');
@@ -626,14 +610,7 @@ function generateCacheConfiguration(res, cache, varName) {
         (cache.storeMetadata && cache.storeMetadata.length > 0)) {
         res.emptyLineIfNeeded();
 
-        var varTypes = 'types';
-
-        var varNew = !res[varTypes];
-
-        if (varNew)
-            res[varTypes] = true;
-
-        declareVariable(res, varNew, 'java.util.Collection', varTypes, 'java.util.ArrayList', 'org.apache.ignite.cache.CacheTypeMetadata');
+        declareVariable(res, needNewVariable(res, 'types'), 'types', 'java.util.Collection', 'java.util.ArrayList', 'org.apache.ignite.cache.CacheTypeMetadata');
         res.line();
 
         var metaNames = [];
@@ -643,8 +620,7 @@ function generateCacheConfiguration(res, cache, varName) {
                 if (!_.contains(metaNames, meta.name)) {
                     metaNames.push(meta.name);
 
-                    res.line(varTypes + '.add(' + generateCacheTypeMetadataConfiguration(res, cache, meta) + ');');
-                    res.line();
+                    addCacheTypeMetadataConfiguration(res, meta);
                 }
             });
         }
@@ -654,13 +630,12 @@ function generateCacheConfiguration(res, cache, varName) {
                 if (!_.contains(metaNames, meta.name)) {
                     metaNames.push(meta.name);
 
-                    res.line(varTypes + '.add(' + generateCacheTypeMetadataConfiguration(res, cache, meta) + ');');
-                    res.line();
+                    addCacheTypeMetadataConfiguration(res, meta);
                 }
             });
         }
 
-        res.line(varName + '.setCacheTypeMetadata(' + varTypes + ');');
+        res.line(varName + '.setTypeMetadata(types);');
     }
 }
 
@@ -686,18 +661,27 @@ function toJavaCode(val, type) {
     throw "Unknown type: " + typeof(val) + ' (' + val + ')';
 }
 
+function needNewVariable(res, varName) {
+    var needNew = !res[varName];
+
+    if (needNew)
+        res[varName] = true;
+
+    return needNew;
+}
+
 /**
  * Add variable declaration.
  *
  * @param res Resulting output with generated code.
  * @param varNew If 'true' then declare new variable otherwise reuse previously declared variable.
- * @param varFullType Variable full class name to be added to imports.
  * @param varName Variable name.
+ * @param varFullType Variable full class name to be added to imports.
  * @param varFullActualType Variable actual full class name to be added to imports.
  * @param varFullGenericType1 Optional full class name of first generic.
  * @param varFullGenericType2 Optional full class name of second generic.
  */
-function declareVariable(res, varNew, varFullType, varName, varFullActualType, varFullGenericType1, varFullGenericType2) {
+function declareVariable(res, varNew, varName, varFullType, varFullActualType, varFullGenericType1, varFullGenericType2) {
     var varType = res.importClass(varFullType);
 
     if (varFullActualType && varFullGenericType1) {
@@ -735,6 +719,24 @@ function addProperty(res, varName, obj, propName, enumType, setterName) {
 }
 
 /**
+ * Add property via setter assuming that it is a 'Class'.
+ *
+ * @param res Resulting output with generated code.
+ * @param varName Variable name.
+ * @param obj Source object with data.
+ * @param propName Property name to take from source object.
+ */
+function addClassProperty(res, varName, obj, propName) {
+    var val = obj[propName];
+
+    if (generatorUtils.isDefined(val)) {
+        res.emptyLineIfNeeded();
+
+        res.line(varName + '.' + getSetterName(propName) + '(' + res.importClass(val) + '.class);');
+    }
+}
+
+/**
  * @param propName Property name
  * @returns Property setter with name by java conventions.
  */
@@ -748,6 +750,8 @@ function addListProperty(res, varName, obj, propName, enumType, setterName) {
     if (val && val.length > 0) {
         res.emptyLineIfNeeded();
 
+        res.importClass('java.util.Arrays');
+
         res.append(varName + '.' + getSetterName(setterName ? setterName : propName) + '(Arrays.asList(');
 
         for (var i = 0; i < val.length; i++) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/77982551/modules/control-center-web/src/main/js/routes/generator/xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/xml.js b/modules/control-center-web/src/main/js/routes/generator/xml.js
index 318aed5..271d79c 100644
--- a/modules/control-center-web/src/main/js/routes/generator/xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/xml.js
@@ -20,7 +20,7 @@ var _ = require('lodash');
 var generatorUtils = require("./common");
 var dataStructures = require("../../helpers/data-structures.js");
 
-exports.generateClusterConfiguration = function(cluster, clientNearConfiguration) {
+exports.generateClusterConfiguration = function (cluster, clientNearConfiguration) {
     var res = generatorUtils.builder();
 
     res.datasources = [];
@@ -174,9 +174,9 @@ exports.generateClusterConfiguration = function(cluster, clientNearConfiguration
     // Generate events group.
     if (cluster.includeEventTypes && cluster.includeEventTypes.length > 0) {
         res.emptyLineIfNeeded();
-        
+
         res.startBlock('<property name="includeEventTypes">');
-        
+
         if (cluster.includeEventTypes.length == 1)
             res.line('<util:constant static-field="org.apache.ignite.events.EventType.' + cluster.includeEventTypes[0] + '"/>');
         else {
@@ -199,7 +199,7 @@ exports.generateClusterConfiguration = function(cluster, clientNearConfiguration
 
             res.endBlock('</array>');
         }
-        
+
         res.endBlock('</property>');
 
         res.needEmptyLine = true;
@@ -307,7 +307,7 @@ exports.generateClusterConfiguration = function(cluster, clientNearConfiguration
 
         xml += '    <!-- Data source beans will be initialized from external properties file. -->\n';
 
-        _.forEach(res.datasources, function(item) {
+        _.forEach(res.datasources, function (item) {
             var beanId = item.dataSourceBean;
 
             xml += '    <bean id= "' + beanId + '" class="' + item.className + '">\n';
@@ -672,7 +672,7 @@ function addBeanWithProperties(res, bean, beanPropName, beanClass, props, create
                                 var eqIndex = nameAndValue.indexOf('=');
                                 if (eqIndex >= 0) {
                                     res.line('<prop key="' + escapeAttr(nameAndValue.substring(0, eqIndex)) + '">' +
-                                            + escape(nameAndValue.substr(eqIndex + 1)) + '</prop>');
+                                        escape(nameAndValue.substr(eqIndex + 1)) + '</prop>');
                                 }
                             }
 
@@ -708,7 +708,9 @@ function addListProperty(res, obj, propName, listType, rowFactory) {
             listType = 'list';
 
         if (!rowFactory)
-            rowFactory = function(val) { return '<value>' + escape(val) + '</value>' };
+            rowFactory = function (val) {
+                return '<value>' + escape(val) + '</value>'
+            };
 
         res.startBlock('<property name="' + propName + '">');
         res.startBlock('<' + listType + '>');


[22/25] incubator-ignite git commit: IGNITE-843 Reverted usage of addPropertyIfNotDefault.

Posted by an...@apache.org.
IGNITE-843 Reverted usage of addPropertyIfNotDefault.


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

Branch: refs/heads/ignite-1121
Commit: 00f9f620017cddc1ccbae55241f9526959d01b64
Parents: 7d00974
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Jul 31 00:41:24 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Jul 31 00:41:24 2015 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/routes/generator/java.js | 4 ++--
 modules/control-center-web/src/main/js/routes/generator/xml.js  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00f9f620/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index 6b3868b..803b360 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -479,7 +479,7 @@ function addCacheConfiguration(res, cache, varName) {
     if (cacheMode == 'PARTITIONED')
         addProperty(res, varName, cache, 'backups');
 
-    addProperty(res, varName, cache, 'readFromBackup', true);
+    addProperty(res, varName, cache, 'readFromBackup');
     addProperty(res, varName, cache, 'startSize');
 
     res.needEmptyLine = true;
@@ -487,7 +487,7 @@ function addCacheConfiguration(res, cache, varName) {
     addProperty(res, varName, cache, 'memoryMode', 'CacheMemoryMode');
     addProperty(res, varName, cache, 'offHeapMaxMemory');
     addProperty(res, varName, cache, 'swapEnabled');
-    addProperty(res, varName, cache, 'copyOnRead', true);
+    addProperty(res, varName, cache, 'copyOnRead');
 
     res.needEmptyLine = true;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/00f9f620/modules/control-center-web/src/main/js/routes/generator/xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/xml.js b/modules/control-center-web/src/main/js/routes/generator/xml.js
index 9058378..f07f7f6 100644
--- a/modules/control-center-web/src/main/js/routes/generator/xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/xml.js
@@ -464,7 +464,7 @@ function generateCacheConfiguration(res, cacheCfg) {
     if (cacheMode == 'PARTITIONED')
         addProperty(res, cacheCfg, 'backups');
 
-    addProperty(res, cacheCfg, 'readFromBackup', true);
+    addProperty(res, cacheCfg, 'readFromBackup');
 
     addProperty(res, cacheCfg, 'startSize');
 
@@ -473,7 +473,7 @@ function generateCacheConfiguration(res, cacheCfg) {
     addProperty(res, cacheCfg, 'memoryMode');
     addProperty(res, cacheCfg, 'offHeapMaxMemory');
     addProperty(res, cacheCfg, 'swapEnabled');
-    addProperty(res, cacheCfg, 'copyOnRead', true);
+    addProperty(res, cacheCfg, 'copyOnRead');
 
     res.needEmptyLine = true;
 


[12/25] incubator-ignite git commit: IGNITE-843 Fixed java code generation.

Posted by an...@apache.org.
IGNITE-843 Fixed java code generation.


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

Branch: refs/heads/ignite-1121
Commit: 8922aad71e1a7939d2d2c82254d7fe41fc8f6673
Parents: 05cb7f3
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 17:04:34 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 17:04:34 2015 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/routes/generator/java.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8922aad7/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index c1c2de8..6024a4d 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -732,7 +732,7 @@ function addPropertyIfNotDefault(res, varName, obj, propName, dflt) {
         res.emptyLineIfNeeded();
 
         res.line(varName + '.' + getSetterName(propName)
-            + '(' + toJavaCode(val, enumType) + ');');
+            + '(' + toJavaCode(val) + ');');
     }
 }
 


[09/25] incubator-ignite git commit: IGNITE-843 Show backups only for partitioned caches.

Posted by an...@apache.org.
IGNITE-843 Show backups only for partitioned caches.


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

Branch: refs/heads/ignite-1121
Commit: 9d3a3efce4cf91b22b0cb6fffc6b770e21cfa0d1
Parents: 3059760
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 16:27:30 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 16:27:30 2015 +0700

----------------------------------------------------------------------
 .../control-center-web/src/main/js/controllers/models/caches.json  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9d3a3efc/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 1cc0ae5..c3f17df 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
@@ -58,7 +58,7 @@
       "label": "Backups",
       "type": "number",
       "model": "backups",
-      "hide": "backupItem.mode == 'LOCAL'",
+      "hide": "backupItem.mode != 'PARTITIONED'",
       "placeholder": 0,
       "tip": [
         "Number of nodes used to back up single partition for partitioned cache."


[14/25] incubator-ignite git commit: IGNITE-843 Fixed java code generation.

Posted by an...@apache.org.
IGNITE-843 Fixed java code generation.


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

Branch: refs/heads/ignite-1121
Commit: a0a878a3c9661cdf23f945a2ecd2cc965dee421d
Parents: 524ff59
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 17:09:17 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 17:09:17 2015 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/routes/generator/java.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a0a878a3/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index c10b6ce..e4f6573 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -555,7 +555,7 @@ function addCacheConfiguration(res, cache, varName) {
         if (storeFactory.dialect) {
             var dataSourceBean = storeFactory.dataSourceBean;
 
-            dsVarName = 'dataSource' + toJavaName(dataSourceBean);
+            dsVarName = toJavaName('dataSource', dataSourceBean);
 
             if (!_.contains(res.datasourceBeans, dataSourceBean)) {
                 res.datasourceBeans.push(dataSourceBean);


[24/25] incubator-ignite git commit: Merge branches 'ignite-1121' and 'ignite-961' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-1121

Posted by an...@apache.org.
Merge branches 'ignite-1121' and 'ignite-961' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-1121


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

Branch: refs/heads/ignite-1121
Commit: a13453f5d2d6b35f3b276f8cfb89ea6cda561834
Parents: e24f3b7 6961060
Author: Andrey <an...@gridgain.com>
Authored: Fri Jul 31 09:46:17 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Fri Jul 31 09:46:17 2015 +0700

----------------------------------------------------------------------
 .../datastreamer/DataStreamerImpl.java          | 22 ++++++++++++++++++++
 .../datastreamer/DataStreamerUpdateJob.java     | 20 +++++++++++++++++-
 2 files changed, 41 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[19/25] incubator-ignite git commit: IGNITE-843 Fixed load cluster from db for download.

Posted by an...@apache.org.
IGNITE-843 Fixed load cluster from db for download.


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

Branch: refs/heads/ignite-1121
Commit: ea45ca0f5d74a31bf403175f5efb22964529cbf3
Parents: 5b111c7
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 23:48:04 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 23:48:04 2015 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/routes/summary.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea45ca0f/modules/control-center-web/src/main/js/routes/summary.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/summary.js b/modules/control-center-web/src/main/js/routes/summary.js
index e91e045..c992ad9 100644
--- a/modules/control-center-web/src/main/js/routes/summary.js
+++ b/modules/control-center-web/src/main/js/routes/summary.js
@@ -55,8 +55,8 @@ router.post('/generator', function (req, res) {
 });
 
 router.post('/download', function (req, res) {
-    // Get cluster.
-    db.Cluster.findById(req.body._id).populate('caches').exec(function (err, cluster) {
+    // Get cluster with all inner objects (caches, metadata).
+    db.Cluster.findById(req.body._id).deepPopulate('caches caches.queryMetadata caches.storeMetadata').exec(function (err, cluster) {
         if (err)
             return res.status(500).send(err.message);
 
@@ -80,7 +80,7 @@ router.post('/download', function (req, res) {
         });
 
         // Set the archive name.
-        res.attachment(cluster.name + (clientNearConfiguration ? '-client' : '') + '-configuration.zip');
+        res.attachment(cluster.name + (clientNearConfiguration ? '-client' : '-server') + '-configuration.zip');
 
         var generatorCommon = require('./generator/common');
 
@@ -105,4 +105,4 @@ router.post('/download', function (req, res) {
     });
 });
 
-module.exports = router;
\ No newline at end of file
+module.exports = router;


[20/25] incubator-ignite git commit: IGNITE-843 Minor changes to code generation.

Posted by an...@apache.org.
IGNITE-843 Minor changes to code generation.


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

Branch: refs/heads/ignite-1121
Commit: 3040d64355734c09b871b9dad078ff727e2e41e8
Parents: ea45ca0
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 23:55:32 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 23:55:32 2015 +0700

----------------------------------------------------------------------
 .../control-center-web/src/main/js/routes/generator/java.js    | 6 +++---
 modules/control-center-web/src/main/js/routes/summary.js       | 3 +--
 2 files changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3040d643/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index d24f16c..3b969ca 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -37,9 +37,9 @@ function toJavaName(prefix, name) {
  *
  * @param cluster Cluster to process.
  * @param javaClass If 'true' then generate factory class otherwise generate code snippet.
- * @param clientMode If 'true' then generate configuration for client node.
+ * @param clientNearConfiguration Near cache configuration for client node.
  */
-exports.generateClusterConfiguration = function (cluster, javaClass, clientMode) {
+exports.generateClusterConfiguration = function (cluster, javaClass, clientNearConfiguration) {
     var res = generatorUtils.builder();
 
     res.datasourceBeans = [];
@@ -58,7 +58,7 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientMode)
     declareVariable(res, true, 'cfg', 'org.apache.ignite.configuration.IgniteConfiguration');
     res.line();
 
-    if (clientMode) {
+    if (clientNearConfiguration) {
         res.line('cfg.setClientMode(true);');
         res.line();
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3040d643/modules/control-center-web/src/main/js/routes/summary.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/summary.js b/modules/control-center-web/src/main/js/routes/summary.js
index c992ad9..d187700 100644
--- a/modules/control-center-web/src/main/js/routes/summary.js
+++ b/modules/control-center-web/src/main/js/routes/summary.js
@@ -19,6 +19,7 @@ var db = require('../db');
 
 var router = require('express').Router();
 
+var generatorCommon = require('./generator/common');
 var generatorXml = require('./generator/xml');
 var generatorJava = require('./generator/java');
 var generatorDocker = require('./generator/docker');
@@ -82,8 +83,6 @@ router.post('/download', function (req, res) {
         // Set the archive name.
         res.attachment(cluster.name + (clientNearConfiguration ? '-client' : '-server') + '-configuration.zip');
 
-        var generatorCommon = require('./generator/common');
-
         // Send the file to the page output.
         zip.pipe(res);
 


[08/25] incubator-ignite git commit: IGNITE-843 Fixed UI and XML/java generation.

Posted by an...@apache.org.
IGNITE-843 Fixed UI and XML/java generation.


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

Branch: refs/heads/ignite-1121
Commit: 305976051ae0ecd2828048b5cb98c2e7c16a8f10
Parents: 86fb3d7
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 16:22:57 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 16:22:57 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/controllers/common-module.js    | 18 ++++++------
 .../src/main/js/controllers/models/caches.json  |  2 ++
 .../main/js/controllers/models/metadata.json    | 12 ++++----
 .../src/main/js/routes/generator/java.js        | 29 ++++++++++++--------
 .../src/main/js/routes/generator/xml.js         | 27 +++++++++++-------
 .../src/main/js/views/configuration/caches.jade |  2 +-
 6 files changed, 53 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/30597605/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 df2ff19..492f643 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
@@ -377,11 +377,11 @@ controlCenterModule.directive('match', function ($parse) {
 });
 
 // Directive to bind ENTER key press with some user action.
-controlCenterModule.directive('ngEnter', function() {
-    return function(scope, element, attrs) {
-        element.bind('keydown keypress', function(event) {
+controlCenterModule.directive('ngEnter', function () {
+    return function (scope, element, attrs) {
+        element.bind('keydown keypress', function (event) {
             if (event.which === 13) {
-                scope.$apply(function() {
+                scope.$apply(function () {
                     scope.$eval(attrs.ngEnter);
                 });
 
@@ -392,11 +392,11 @@ controlCenterModule.directive('ngEnter', function() {
 });
 
 // Directive to bind ESC key press with some user action.
-controlCenterModule.directive('ngEscape', function() {
-    return function(scope, element, attrs) {
-        element.bind('keydown keyup', function(event) {
+controlCenterModule.directive('ngEscape', function () {
+    return function (scope, element, attrs) {
+        element.bind('keydown keyup', function (event) {
             if (event.which === 27) {
-                scope.$apply(function() {
+                scope.$apply(function () {
                     scope.$eval(attrs.ngEscape);
                 });
 
@@ -430,7 +430,7 @@ controlCenterModule.directive('eventFocus', function (focus) {
 
         // Removes bound events in the element itself when the scope is destroyed
         scope.$on('$destroy', function () {
-            element.off(attr.eventFocus);
+            elem.off(attr.eventFocus);
         });
     };
 });

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/30597605/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 932eecc..1cc0ae5 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
@@ -416,6 +416,7 @@
     },
     {
       "label": "Rebalance",
+      "hide": "backupItem.mode == 'LOCAL'",
       "tip": [
         "Cache rebalance settings."
       ],
@@ -495,6 +496,7 @@
     },
     {
       "label": "Server near cache",
+      "hide": "backupItem.mode != 'PARTITIONED'",
       "tip": [
         "Near cache settings.",
         "Near cache is a small local cache that stores most recently or most frequently accessed data.",

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/30597605/modules/control-center-web/src/main/js/controllers/models/metadata.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/models/metadata.json b/modules/control-center-web/src/main/js/controllers/models/metadata.json
index a9b60de..86efe0b 100644
--- a/modules/control-center-web/src/main/js/controllers/models/metadata.json
+++ b/modules/control-center-web/src/main/js/controllers/models/metadata.json
@@ -93,7 +93,7 @@
       "model": "keyFields",
       "keyName": "name",
       "valueName": "className",
-      "hide": "backupItem.kind != 'both' && backupItem.kind == 'query'",
+      "hide": "backupItem.kind == 'query'",
       "addTip": "Add key field.",
       "removeTip": "Remove key field.",
       "tip": [
@@ -119,7 +119,7 @@
       "model": "queryFields",
       "keyName": "name",
       "valueName": "className",
-      "hide": "backupItem.kind != 'both' && backupItem.kind != 'query'",
+      "hide": "backupItem.kind == 'store'",
       "focusNewItemId": "newQryField",
       "focusCurItemId": "curQryField",
       "addTip": "Add field to query.",
@@ -134,7 +134,7 @@
       "model": "ascendingFields",
       "keyName": "name",
       "valueName": "className",
-      "hide": "backupItem.kind != 'both' && backupItem.kind != 'query'",
+      "hide": "backupItem.kind == 'store'",
       "focusNewItemId": "newAscField",
       "focusCurItemId": "curAscField",
       "addTip": "Add field to index in ascending order.",
@@ -149,7 +149,7 @@
       "model": "descendingFields",
       "keyName": "name",
       "valueName": "className",
-      "hide": "backupItem.kind != 'both' && backupItem.kind != 'query'",
+      "hide": "backupItem.kind == 'store'",
       "focusNewItemId": "newDescField",
       "focusCurItemId": "curDescField",
       "addTip": "Add field to index in descending order.",
@@ -162,7 +162,7 @@
       "label": "Text fields",
       "type": "table-simple",
       "model": "textFields",
-      "hide": "backupItem.kind != 'both' && backupItem.kind != 'query'",
+      "hide": "backupItem.kind == 'store'",
       "placeholder": "Field name",
       "focusNewItemId": "newTextField",
       "focusCurItemId": "curTextField",
@@ -179,7 +179,7 @@
       "label": "Groups",
       "type": "queryGroups",
       "model": "groups",
-      "hide": "backupItem.kind != 'both' && backupItem.kind != 'query'",
+      "hide": "backupItem.kind == 'store'",
       "addTip": "Add new group.",
       "removeTip": "Remove group.",
       "addItemTip": "Add new field to group.",

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/30597605/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index d017901..573418d 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -472,10 +472,13 @@ function addCacheConfiguration(res, cache, varName) {
 
     addProperty(res, varName, cache, 'name');
 
-    addProperty(res, varName, cache, 'mode', 'CacheMode', 'cacheMode');
+    var cacheMode = addProperty(res, varName, cache, 'mode', 'CacheMode', 'cacheMode');
 
     addProperty(res, varName, cache, 'atomicityMode', 'CacheAtomicityMode');
-    addProperty(res, varName, cache, 'backups');
+
+    if (cacheMode == 'PARTITIONED')
+        addProperty(res, varName, cache, 'backups');
+
     addProperty(res, varName, cache, 'startSize');
     addProperty(res, varName, cache, 'readFromBackup');
 
@@ -490,7 +493,7 @@ function addCacheConfiguration(res, cache, varName) {
 
     addEvictionPolicy(res, varName, cache.evictionPolicy, 'evictionPolicy');
 
-    if (cache.nearCacheEnabled) {
+    if (cacheMode == 'PARTITIONED' && cache.nearCacheEnabled) {
         res.needEmptyLine = true;
 
         res.importClass('org.apache.ignite.configuration.NearCacheConfiguration');
@@ -530,15 +533,17 @@ function addCacheConfiguration(res, cache, varName) {
 
     res.needEmptyLine = true;
 
-    addProperty(res, varName, cache, 'rebalanceMode', 'CacheRebalanceMode');
-    addProperty(res, varName, cache, 'rebalanceThreadPoolSize');
-    addProperty(res, varName, cache, 'rebalanceBatchSize');
-    addProperty(res, varName, cache, 'rebalanceOrder');
-    addProperty(res, varName, cache, 'rebalanceDelay');
-    addProperty(res, varName, cache, 'rebalanceTimeout');
-    addProperty(res, varName, cache, 'rebalanceThrottle');
+    if (cacheMode != 'LOCAL') {
+        addProperty(res, varName, cache, 'rebalanceMode', 'CacheRebalanceMode');
+        addProperty(res, varName, cache, 'rebalanceThreadPoolSize');
+        addProperty(res, varName, cache, 'rebalanceBatchSize');
+        addProperty(res, varName, cache, 'rebalanceOrder');
+        addProperty(res, varName, cache, 'rebalanceDelay');
+        addProperty(res, varName, cache, 'rebalanceTimeout');
+        addProperty(res, varName, cache, 'rebalanceThrottle');
 
-    res.needEmptyLine = true;
+        res.needEmptyLine = true;
+    }
 
     if (cache.cacheStoreFactory && cache.cacheStoreFactory.kind) {
         var storeFactory = cache.cacheStoreFactory[cache.cacheStoreFactory.kind];
@@ -716,6 +721,8 @@ function addProperty(res, varName, obj, propName, enumType, setterName) {
         res.line(varName + '.' + getSetterName(setterName ? setterName : propName)
             + '(' + toJavaCode(val, enumType) + ');');
     }
+
+    return val;
 }
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/30597605/modules/control-center-web/src/main/js/routes/generator/xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/xml.js b/modules/control-center-web/src/main/js/routes/generator/xml.js
index 271d79c..d6bc1c3 100644
--- a/modules/control-center-web/src/main/js/routes/generator/xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/xml.js
@@ -457,10 +457,13 @@ function generateCacheConfiguration(res, cacheCfg) {
 
     res.needEmptyLine = true;
 
-    addProperty(res, cacheCfg, 'mode', 'cacheMode');
+    var cacheMode = addProperty(res, cacheCfg, 'mode', 'cacheMode');
 
     addProperty(res, cacheCfg, 'atomicityMode');
-    addProperty(res, cacheCfg, 'backups');
+
+    if (cacheMode == 'PARTITIONED')
+        addProperty(res, cacheCfg, 'backups');
+
     addProperty(res, cacheCfg, 'startSize');
     addProperty(res, cacheCfg, 'readFromBackup');
 
@@ -518,15 +521,17 @@ function generateCacheConfiguration(res, cacheCfg) {
 
     res.needEmptyLine = true;
 
-    addProperty(res, cacheCfg, 'rebalanceMode');
-    addProperty(res, cacheCfg, 'rebalanceThreadPoolSize');
-    addProperty(res, cacheCfg, 'rebalanceBatchSize');
-    addProperty(res, cacheCfg, 'rebalanceOrder');
-    addProperty(res, cacheCfg, 'rebalanceDelay');
-    addProperty(res, cacheCfg, 'rebalanceTimeout');
-    addProperty(res, cacheCfg, 'rebalanceThrottle');
+    if (cacheMode != 'LOCAL') {
+        addProperty(res, cacheCfg, 'rebalanceMode');
+        addProperty(res, cacheCfg, 'rebalanceThreadPoolSize');
+        addProperty(res, cacheCfg, 'rebalanceBatchSize');
+        addProperty(res, cacheCfg, 'rebalanceOrder');
+        addProperty(res, cacheCfg, 'rebalanceDelay');
+        addProperty(res, cacheCfg, 'rebalanceTimeout');
+        addProperty(res, cacheCfg, 'rebalanceThrottle');
 
-    res.needEmptyLine = true;
+        res.needEmptyLine = true;
+    }
 
     if (cacheCfg.cacheStoreFactory && cacheCfg.cacheStoreFactory.kind) {
         var storeFactory = cacheCfg.cacheStoreFactory[cacheCfg.cacheStoreFactory.kind];
@@ -636,6 +641,8 @@ function addProperty(res, obj, propName, setterName) {
 
     if (generatorUtils.isDefined(val))
         addElement(res, 'property', 'name', setterName ? setterName : propName, 'value', escapeAttr(val));
+
+    return val;
 }
 
 function addBeanWithProperties(res, bean, beanPropName, beanClass, props, createBeanAlthoughNoProps) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/30597605/modules/control-center-web/src/main/js/views/configuration/caches.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/caches.jade b/modules/control-center-web/src/main/js/views/configuration/caches.jade
index 15d8f40..2cddbce 100644
--- a/modules/control-center-web/src/main/js/views/configuration/caches.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/caches.jade
@@ -55,7 +55,7 @@ block content
                             a(bs-collapse-toggle='0' ng-click='expanded = !expanded;') {{expanded ? 'Hide advanced settings...' : 'Show advanced settings...'}}
                     .panel-collapse(bs-collapse-target)
                         .span(bs-collapse data-start-collapsed='true' data-allow-multiple='true')
-                            .panel.panel-default(ng-repeat='group in advanced')
+                            .panel.panel-default(ng-repeat='group in advanced' ng-hide='{{group.hide}}')
                                 .panel-heading
                                     h3
                                         a(bs-collapse-toggle) {{group.label}}


[17/25] incubator-ignite git commit: IGNITE-843 Assed indexed types to imports.

Posted by an...@apache.org.
IGNITE-843 Assed indexed types to imports.


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

Branch: refs/heads/ignite-1121
Commit: ae32685ee58169d6cd6906907c41492890151549
Parents: e1aa2cb
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 17:42:02 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 17:42:02 2015 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/routes/generator/common.js | 2 +-
 modules/control-center-web/src/main/js/routes/generator/java.js   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ae32685e/modules/control-center-web/src/main/js/routes/generator/common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/common.js b/modules/control-center-web/src/main/js/routes/generator/common.js
index a74b545..01a7cd6 100644
--- a/modules/control-center-web/src/main/js/routes/generator/common.js
+++ b/modules/control-center-web/src/main/js/routes/generator/common.js
@@ -176,7 +176,7 @@ exports.marshallers = {
 };
 
 var javaBuildInClasses = {
-    BigDecimal: {className: 'java.math.Boolean'},
+    BigDecimal: {className: 'java.math.BigDecimal'},
     Boolean: {className: 'java.lang.Boolean'},
     Byte: {className: 'java.lang.Byte'},
     Date: {className: 'java.sql.Date'},

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ae32685e/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index 9eb196d..ba253e0 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -523,7 +523,7 @@ function addCacheConfiguration(res, cache, varName) {
 
             var pair = cache.indexedTypes[i];
 
-            res.append(toJavaCode(pair.keyClass, 'class')).append(', ').append(toJavaCode(pair.valueClass, 'class'))
+            res.append(toJavaCode(res.importClass(pair.keyClass), 'class')).append(', ').append(toJavaCode(res.importClass(pair.valueClass), 'class'))
         }
 
         res.line(');');


[04/25] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/master' into ignite-961

Posted by an...@apache.org.
Merge remote-tracking branch 'remotes/origin/master' into ignite-961


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

Branch: refs/heads/ignite-1121
Commit: 6961060ce64f41697e2a1bfaa921908f05ea0b61
Parents: 216d4ff 5288b2d
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jul 29 18:09:28 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jul 29 18:09:28 2015 +0300

----------------------------------------------------------------------
 .../datastreamer/DataStreamerImpl.java          | 22 ++++++++++++++++++++
 .../datastreamer/DataStreamerUpdateJob.java     | 20 +++++++++++++++++-
 2 files changed, 41 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[23/25] incubator-ignite git commit: IGNITE-843 Add meta selection for JDBC POJO store.

Posted by an...@apache.org.
IGNITE-843 Add meta selection for JDBC POJO store.


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

Branch: refs/heads/ignite-1121
Commit: a3c533cbd1605c5cc9d766cc07f3c4ae972a03ce
Parents: 00f9f62
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Jul 31 00:41:53 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Jul 31 00:41:53 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/controllers/models/caches.json       | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a3c533cb/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 c3f17df..bacfc17 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
@@ -732,6 +732,21 @@
                     "  <li>H2 database.</li>",
                     "</ul>"
                   ]
+                },
+                {
+                  "label": "Metadata",
+                  "type": "dropdown-multiple",
+                  "path": "cacheStoreFactory.CacheJdbcPojoStoreFactory",
+                  "model": "storeMetadata",
+                  "placeholder": "Choose metadata",
+                  "items": "storeMetadata",
+                  "tip": [
+                    "Select cache type metadata to associate database with cache."
+                  ],
+                  "addLink": {
+                    "label": "Add metadata(s)",
+                    "ref": "/configuration/metadata"
+                  }
                 }
               ]
             },


[18/25] incubator-ignite git commit: IGNITE-843 Reverted usage of addPropertyIfNotDefault.

Posted by an...@apache.org.
IGNITE-843 Reverted usage of addPropertyIfNotDefault.


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

Branch: refs/heads/ignite-1121
Commit: 5b111c770e3cbff191bff6478bc13ee00f84f0ce
Parents: ae32685
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 23:41:03 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 23:41:03 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/routes/generator/java.js             | 15 ++-------------
 .../src/main/js/routes/generator/xml.js              | 13 +++----------
 2 files changed, 5 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5b111c77/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index ba253e0..d24f16c 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -479,15 +479,15 @@ function addCacheConfiguration(res, cache, varName) {
     if (cacheMode == 'PARTITIONED')
         addProperty(res, varName, cache, 'backups');
 
+    addProperty(res, varName, cache, 'readFromBackup', true);
     addProperty(res, varName, cache, 'startSize');
-    addPropertyIfNotDefault(res, varName, cache, 'readFromBackup', true);
 
     res.needEmptyLine = true;
 
     addProperty(res, varName, cache, 'memoryMode', 'CacheMemoryMode');
     addProperty(res, varName, cache, 'offHeapMaxMemory');
     addProperty(res, varName, cache, 'swapEnabled');
-    addPropertyIfNotDefault(res, varName, cache, 'copyOnRead', true);
+    addProperty(res, varName, cache, 'copyOnRead', true);
 
     res.needEmptyLine = true;
 
@@ -725,17 +725,6 @@ function addProperty(res, varName, obj, propName, enumType, setterName) {
     return val;
 }
 
-function addPropertyIfNotDefault(res, varName, obj, propName, dflt) {
-    var val = obj[propName];
-
-    if (generatorUtils.isDefined(val) && val != dflt) {
-        res.emptyLineIfNeeded();
-
-        res.line(varName + '.' + getSetterName(propName)
-            + '(' + toJavaCode(val) + ');');
-    }
-}
-
 /**
  * Add property via setter assuming that it is a 'Class'.
  *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5b111c77/modules/control-center-web/src/main/js/routes/generator/xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/xml.js b/modules/control-center-web/src/main/js/routes/generator/xml.js
index 9a893a6..3555d2e 100644
--- a/modules/control-center-web/src/main/js/routes/generator/xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/xml.js
@@ -464,16 +464,16 @@ function generateCacheConfiguration(res, cacheCfg) {
     if (cacheMode == 'PARTITIONED')
         addProperty(res, cacheCfg, 'backups');
 
-    addProperty(res, cacheCfg, 'startSize');
+    addProperty(res, cacheCfg, 'readFromBackup', true);
 
-    addPropertyIfNotDefault(res, cacheCfg, 'readFromBackup', true);
+    addProperty(res, cacheCfg, 'startSize');
 
     res.needEmptyLine = true;
 
     addProperty(res, cacheCfg, 'memoryMode');
     addProperty(res, cacheCfg, 'offHeapMaxMemory');
     addProperty(res, cacheCfg, 'swapEnabled');
-    addPropertyIfNotDefault(res, cacheCfg, 'copyOnRead', true);
+    addProperty(res, cacheCfg, 'copyOnRead', true);
 
     res.needEmptyLine = true;
 
@@ -646,13 +646,6 @@ function addProperty(res, obj, propName, setterName) {
     return val;
 }
 
-function addPropertyIfNotDefault(res, obj, propName, dflt) {
-    var val = obj[propName];
-
-    if (generatorUtils.isDefined(val) && val != dflt)
-        addElement(res, 'property', 'name', propName, 'value', escapeAttr(val));
-}
-
 function addBeanWithProperties(res, bean, beanPropName, beanClass, props, createBeanAlthoughNoProps) {
     if (bean && generatorUtils.hasProperty(bean, props)) {
         res.emptyLineIfNeeded();


[11/25] incubator-ignite git commit: IGNITE-843 Fixed java code generation.

Posted by an...@apache.org.
IGNITE-843 Fixed java code generation.


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

Branch: refs/heads/ignite-1121
Commit: 05cb7f3fff5bb0350de475d85b7e13054ca924b2
Parents: e1adcd0
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 17:00:41 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 17:00:41 2015 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/routes/generator/java.js | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/05cb7f3f/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index d737780..c1c2de8 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -731,12 +731,11 @@ function addPropertyIfNotDefault(res, varName, obj, propName, dflt) {
     if (generatorUtils.isDefined(val) && val != dflt) {
         res.emptyLineIfNeeded();
 
-        res.line(varName + '.' + getSetterName(setterName ? setterName : propName)
+        res.line(varName + '.' + getSetterName(propName)
             + '(' + toJavaCode(val, enumType) + ');');
     }
 }
 
-
 /**
  * Add property via setter assuming that it is a 'Class'.
  *


[25/25] incubator-ignite git commit: Merge branch 'ignite-843' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-1121

Posted by an...@apache.org.
Merge branch 'ignite-843' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-1121


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

Branch: refs/heads/ignite-1121
Commit: f20f5c5b6c126d11245ad026c4431e6ed80ae1f4
Parents: a13453f a3c533c
Author: Andrey <an...@gridgain.com>
Authored: Fri Jul 31 09:46:49 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Fri Jul 31 09:46:49 2015 +0700

----------------------------------------------------------------------
 .../control-center-web/src/main/js/DEVNOTES.txt |   8 +-
 .../main/js/controllers/caches-controller.js    |   2 +
 .../main/js/controllers/clusters-controller.js  |   2 +
 .../src/main/js/controllers/common-module.js    |  18 +-
 .../main/js/controllers/metadata-controller.js  |   2 +
 .../src/main/js/controllers/models/caches.json  |  19 +-
 .../main/js/controllers/models/metadata.json    |  12 +-
 .../main/js/controllers/summary-controller.js   |   2 +-
 .../src/main/js/routes/generator/common.js      |  31 +-
 .../src/main/js/routes/generator/docker.js      |  70 +-
 .../src/main/js/routes/generator/java.js        | 670 +++++++++++--------
 .../src/main/js/routes/generator/xml.js         |  98 +--
 .../src/main/js/routes/summary.js               |  19 +-
 .../src/main/js/views/configuration/caches.jade |   2 +-
 .../src/main/js/views/includes/controls.jade    | 105 +--
 15 files changed, 591 insertions(+), 469 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f20f5c5b/modules/control-center-web/src/main/js/controllers/common-module.js
----------------------------------------------------------------------


[10/25] incubator-ignite git commit: IGNITE-843 Do not generate value if it is equals to default.

Posted by an...@apache.org.
IGNITE-843 Do not generate value if it is equals to default.


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

Branch: refs/heads/ignite-1121
Commit: e1adcd012e626bcd86e1d90f091f9c443fdb2fbd
Parents: 9d3a3ef
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 16:36:46 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 16:36:46 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/routes/generator/java.js            | 16 ++++++++++++++--
 .../src/main/js/routes/generator/xml.js             | 12 ++++++++++--
 2 files changed, 24 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e1adcd01/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index 573418d..d737780 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -480,14 +480,14 @@ function addCacheConfiguration(res, cache, varName) {
         addProperty(res, varName, cache, 'backups');
 
     addProperty(res, varName, cache, 'startSize');
-    addProperty(res, varName, cache, 'readFromBackup');
+    addPropertyIfNotDefault(res, varName, cache, 'readFromBackup', true);
 
     res.needEmptyLine = true;
 
     addProperty(res, varName, cache, 'memoryMode', 'CacheMemoryMode');
     addProperty(res, varName, cache, 'offHeapMaxMemory');
     addProperty(res, varName, cache, 'swapEnabled');
-    addProperty(res, varName, cache, 'copyOnRead');
+    addPropertyIfNotDefault(res, varName, cache, 'copyOnRead', true);
 
     res.needEmptyLine = true;
 
@@ -725,6 +725,18 @@ function addProperty(res, varName, obj, propName, enumType, setterName) {
     return val;
 }
 
+function addPropertyIfNotDefault(res, varName, obj, propName, dflt) {
+    var val = obj[propName];
+
+    if (generatorUtils.isDefined(val) && val != dflt) {
+        res.emptyLineIfNeeded();
+
+        res.line(varName + '.' + getSetterName(setterName ? setterName : propName)
+            + '(' + toJavaCode(val, enumType) + ');');
+    }
+}
+
+
 /**
  * Add property via setter assuming that it is a 'Class'.
  *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e1adcd01/modules/control-center-web/src/main/js/routes/generator/xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/xml.js b/modules/control-center-web/src/main/js/routes/generator/xml.js
index d6bc1c3..9a893a6 100644
--- a/modules/control-center-web/src/main/js/routes/generator/xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/xml.js
@@ -465,14 +465,15 @@ function generateCacheConfiguration(res, cacheCfg) {
         addProperty(res, cacheCfg, 'backups');
 
     addProperty(res, cacheCfg, 'startSize');
-    addProperty(res, cacheCfg, 'readFromBackup');
+
+    addPropertyIfNotDefault(res, cacheCfg, 'readFromBackup', true);
 
     res.needEmptyLine = true;
 
     addProperty(res, cacheCfg, 'memoryMode');
     addProperty(res, cacheCfg, 'offHeapMaxMemory');
     addProperty(res, cacheCfg, 'swapEnabled');
-    addProperty(res, cacheCfg, 'copyOnRead');
+    addPropertyIfNotDefault(res, cacheCfg, 'copyOnRead', true);
 
     res.needEmptyLine = true;
 
@@ -645,6 +646,13 @@ function addProperty(res, obj, propName, setterName) {
     return val;
 }
 
+function addPropertyIfNotDefault(res, obj, propName, dflt) {
+    var val = obj[propName];
+
+    if (generatorUtils.isDefined(val) && val != dflt)
+        addElement(res, 'property', 'name', propName, 'value', escapeAttr(val));
+}
+
 function addBeanWithProperties(res, bean, beanPropName, beanClass, props, createBeanAlthoughNoProps) {
     if (bean && generatorUtils.hasProperty(bean, props)) {
         res.emptyLineIfNeeded();


[21/25] incubator-ignite git commit: IGNITE-843 Renaming.

Posted by an...@apache.org.
IGNITE-843 Renaming.


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

Branch: refs/heads/ignite-1121
Commit: 7d009748813be61d9f9b2bb55bf430b8a94d93f7
Parents: 3040d64
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Jul 31 00:16:00 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Jul 31 00:16:00 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/routes/generator/java.js        | 30 +++++++--------
 .../src/main/js/routes/generator/xml.js         | 40 ++++++++++----------
 2 files changed, 35 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7d009748/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index 3b969ca..6b3868b 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -17,7 +17,7 @@
 
 var _ = require('lodash');
 
-var generatorUtils = require("./common");
+var generatorCommon = require("./common");
 
 /**
  * Convert some name to valid java name.
@@ -40,13 +40,13 @@ function toJavaName(prefix, name) {
  * @param clientNearConfiguration Near cache configuration for client node.
  */
 exports.generateClusterConfiguration = function (cluster, javaClass, clientNearConfiguration) {
-    var res = generatorUtils.builder();
+    var res = generatorCommon.builder();
 
     res.datasourceBeans = [];
 
     if (javaClass) {
         res.line('/**');
-        res.line(' * ' + generatorUtils.mainComment());
+        res.line(' * ' + generatorCommon.mainComment());
         res.line(' */');
         res.startBlock('public class ConfigurationFactory {');
         res.line('/**');
@@ -198,7 +198,7 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientNearC
     }
 
     addBeanWithProperties(res, 'cfg', cluster.atomicConfiguration, 'atomicConfiguration', 'atomicCfg',
-        generatorUtils.atomicConfiguration.className, generatorUtils.atomicConfiguration.fields);
+        generatorCommon.atomicConfiguration.className, generatorCommon.atomicConfiguration.fields);
 
     res.needEmptyLine = true;
 
@@ -257,7 +257,7 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientNearC
     var marshaller = cluster.marshaller;
 
     if (marshaller && marshaller.kind) {
-        var marshallerDesc = generatorUtils.marshallers[marshaller.kind];
+        var marshallerDesc = generatorCommon.marshallers[marshaller.kind];
 
         addBeanWithProperties(res, 'cfg', marshaller[marshaller.kind], 'marshaller', 'marshaller',
             marshallerDesc.className, marshallerDesc.fields, true);
@@ -285,7 +285,7 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientNearC
 
     if (cluster.swapSpaceSpi && cluster.swapSpaceSpi.kind == 'FileSwapSpaceSpi') {
         addBeanWithProperties(res, 'cfg', cluster.swapSpaceSpi.FileSwapSpaceSpi, 'swapSpaceSpi', 'swapSpi',
-            generatorUtils.swapSpaceSpi.className, generatorUtils.swapSpaceSpi.fields, true);
+            generatorCommon.swapSpaceSpi.className, generatorCommon.swapSpaceSpi.fields, true);
 
         res.needEmptyLine = true;
     }
@@ -305,8 +305,8 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientNearC
     res.needEmptyLine = true;
 
     addBeanWithProperties(res, 'cfg', cluster.transactionConfiguration, 'transactionConfiguration',
-        'transactionConfiguration', generatorUtils.transactionConfiguration.className,
-        generatorUtils.transactionConfiguration.fields);
+        'transactionConfiguration', generatorCommon.transactionConfiguration.className,
+        generatorCommon.transactionConfiguration.fields);
 
     res.needEmptyLine = true;
 
@@ -336,7 +336,7 @@ exports.generateClusterConfiguration = function (cluster, javaClass, clientNearC
  */
 function addEvictionPolicy(res, varName, evictionPolicy, propertyName) {
     if (evictionPolicy && evictionPolicy.kind) {
-        var e = generatorUtils.evictionPolicies[evictionPolicy.kind];
+        var e = generatorCommon.evictionPolicies[evictionPolicy.kind];
 
         var obj = evictionPolicy[evictionPolicy.kind.toUpperCase()];
 
@@ -547,7 +547,7 @@ function addCacheConfiguration(res, cache, varName) {
 
     if (cache.cacheStoreFactory && cache.cacheStoreFactory.kind) {
         var storeFactory = cache.cacheStoreFactory[cache.cacheStoreFactory.kind];
-        var data = generatorUtils.storeFactories[cache.cacheStoreFactory.kind];
+        var data = generatorCommon.storeFactories[cache.cacheStoreFactory.kind];
 
         var sfVarName = toJavaName('storeFactory', cache.name);
         var dsVarName = 'none';
@@ -560,7 +560,7 @@ function addCacheConfiguration(res, cache, varName) {
             if (!_.contains(res.datasourceBeans, dataSourceBean)) {
                 res.datasourceBeans.push(dataSourceBean);
 
-                var dataSource = generatorUtils.dataSources[storeFactory.dialect];
+                var dataSource = generatorCommon.dataSources[storeFactory.dialect];
 
                 res.line();
 
@@ -715,7 +715,7 @@ function declareVariable(res, varNew, varName, varFullType, varFullActualType, v
 function addProperty(res, varName, obj, propName, enumType, setterName) {
     var val = obj[propName];
 
-    if (generatorUtils.isDefined(val)) {
+    if (generatorCommon.isDefined(val)) {
         res.emptyLineIfNeeded();
 
         res.line(varName + '.' + getSetterName(setterName ? setterName : propName)
@@ -736,7 +736,7 @@ function addProperty(res, varName, obj, propName, enumType, setterName) {
 function addClassProperty(res, varName, obj, propName) {
     var val = obj[propName];
 
-    if (generatorUtils.isDefined(val)) {
+    if (generatorCommon.isDefined(val)) {
         res.emptyLineIfNeeded();
 
         res.line(varName + '.' + getSetterName(propName) + '(' + res.importClass(val) + '.class);');
@@ -790,7 +790,7 @@ function addMultiparamProperty(res, varName, obj, propName, type, setterName) {
 }
 
 function addBeanWithProperties(res, varName, bean, beanPropName, beanVarName, beanClass, props, createBeanAlthoughNoProps) {
-    if (bean && generatorUtils.hasProperty(bean, props)) {
+    if (bean && generatorCommon.hasProperty(bean, props)) {
         if (!res.emptyLineIfNeeded()) {
             res.line();
         }
@@ -839,7 +839,7 @@ function addBeanWithProperties(res, varName, bean, beanPropName, beanVarName, be
 
                         case 'className':
                             if (bean[propName]) {
-                                res.line(beanVarName + '.' + getSetterName(propName) + '(new ' + generatorUtils.knownClasses[bean[propName]].className + '());');
+                                res.line(beanVarName + '.' + getSetterName(propName) + '(new ' + generatorCommon.knownClasses[bean[propName]].className + '());');
                             }
 
                             break;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7d009748/modules/control-center-web/src/main/js/routes/generator/xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/xml.js b/modules/control-center-web/src/main/js/routes/generator/xml.js
index 3555d2e..9058378 100644
--- a/modules/control-center-web/src/main/js/routes/generator/xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/xml.js
@@ -17,11 +17,11 @@
 
 var _ = require('lodash');
 
-var generatorUtils = require("./common");
+var generatorCommon = require("./common");
 var dataStructures = require("../../helpers/data-structures.js");
 
 exports.generateClusterConfiguration = function (cluster, clientNearConfiguration) {
-    var res = generatorUtils.builder();
+    var res = generatorCommon.builder();
 
     res.datasources = [];
     res.deep = 1;
@@ -155,7 +155,7 @@ exports.generateClusterConfiguration = function (cluster, clientNearConfiguratio
 
     // Generate atomics group.
     addBeanWithProperties(res, cluster.atomicConfiguration, 'atomicConfiguration',
-        generatorUtils.atomicConfiguration.className, generatorUtils.atomicConfiguration.fields);
+        generatorCommon.atomicConfiguration.className, generatorCommon.atomicConfiguration.fields);
     res.needEmptyLine = true;
 
     // Generate communication group.
@@ -209,7 +209,7 @@ exports.generateClusterConfiguration = function (cluster, clientNearConfiguratio
     var marshaller = cluster.marshaller;
 
     if (marshaller && marshaller.kind) {
-        var marshallerDesc = generatorUtils.marshallers[marshaller.kind];
+        var marshallerDesc = generatorCommon.marshallers[marshaller.kind];
 
         addBeanWithProperties(res, marshaller[marshaller.kind], 'marshaller', marshallerDesc.className, marshallerDesc.fields, true);
         res.needEmptyLine = true;
@@ -237,7 +237,7 @@ exports.generateClusterConfiguration = function (cluster, clientNearConfiguratio
     // Generate swap group.
     if (cluster.swapSpaceSpi && cluster.swapSpaceSpi.kind == 'FileSwapSpaceSpi') {
         addBeanWithProperties(res, cluster.swapSpaceSpi.FileSwapSpaceSpi, 'swapSpaceSpi',
-            generatorUtils.swapSpaceSpi.className, generatorUtils.swapSpaceSpi.fields, true);
+            generatorCommon.swapSpaceSpi.className, generatorCommon.swapSpaceSpi.fields, true);
 
         res.needEmptyLine = true;
     }
@@ -258,7 +258,7 @@ exports.generateClusterConfiguration = function (cluster, clientNearConfiguratio
 
     // Generate transactions group.
     addBeanWithProperties(res, cluster.transactionConfiguration, 'transactionConfiguration',
-        generatorUtils.transactionConfiguration.className, generatorUtils.transactionConfiguration.fields);
+        generatorCommon.transactionConfiguration.className, generatorCommon.transactionConfiguration.fields);
     res.needEmptyLine = true;
 
     // Generate caches configs.
@@ -289,7 +289,7 @@ exports.generateClusterConfiguration = function (cluster, clientNearConfiguratio
     // 1. Add header.
     var xml = '<?xml version="1.0" encoding="UTF-8"?>\n\n';
 
-    xml += '<!-- ' + generatorUtils.mainComment() + ' -->\n';
+    xml += '<!-- ' + generatorCommon.mainComment() + ' -->\n';
     xml += '<beans xmlns="http://www.springframework.org/schema/beans"\n';
     xml += '       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n';
     xml += '       xmlns:util="http://www.springframework.org/schema/util"\n';
@@ -329,7 +329,7 @@ exports.generateClusterConfiguration = function (cluster, clientNearConfiguratio
 
 function createEvictionPolicy(res, evictionPolicy, propertyName) {
     if (evictionPolicy && evictionPolicy.kind) {
-        var e = generatorUtils.evictionPolicies[evictionPolicy.kind];
+        var e = generatorCommon.evictionPolicies[evictionPolicy.kind];
 
         var obj = evictionPolicy[evictionPolicy.kind.toUpperCase()];
 
@@ -356,7 +356,7 @@ function addCacheTypeMetadataDatabaseFields(res, meta, fieldProperty) {
 
             addProperty(res, field, 'javaName');
 
-            addElement(res, 'property', 'name', 'javaType', 'value', generatorUtils.javaBuildInClass(field.javaType));
+            addElement(res, 'property', 'name', 'javaType', 'value', generatorCommon.javaBuildInClass(field.javaType));
 
             res.endBlock('</bean>');
         });
@@ -375,7 +375,7 @@ function addCacheTypeMetadataQueryFields(res, meta, fieldProperty) {
         res.startBlock('<map>');
 
         _.forEach(fields, function (field) {
-            addElement(res, 'entry', 'key', field.name, 'value', generatorUtils.javaBuildInClass(field.className));
+            addElement(res, 'entry', 'key', field.name, 'value', generatorCommon.javaBuildInClass(field.className));
         });
 
         res.endBlock('</map>');
@@ -402,7 +402,7 @@ function addCacheTypeMetadataGroups(res, meta) {
                     res.startBlock('<entry key="' + field.name + '">');
 
                     res.startBlock('<bean class="org.apache.ignite.lang.IgniteBiTuple">');
-                    res.line('<constructor-arg value="' + generatorUtils.javaBuildInClass(field.className) + '"/>');
+                    res.line('<constructor-arg value="' + generatorCommon.javaBuildInClass(field.className) + '"/>');
                     res.line('<constructor-arg value="' + field.direction + '"/>');
                     res.endBlock('</bean>');
 
@@ -421,7 +421,7 @@ function addCacheTypeMetadataGroups(res, meta) {
 
 function generateCacheTypeMetadataConfiguration(res, meta) {
     if (!res)
-        res = generatorUtils.builder();
+        res = generatorCommon.builder();
 
     res.startBlock('<bean class="org.apache.ignite.cache.CacheTypeMetadata">');
 
@@ -449,7 +449,7 @@ function generateCacheTypeMetadataConfiguration(res, meta) {
 
 function generateCacheConfiguration(res, cacheCfg) {
     if (!res)
-        res = generatorUtils.builder();
+        res = generatorCommon.builder();
 
     res.startBlock('<bean class="org.apache.ignite.configuration.CacheConfiguration">');
 
@@ -510,8 +510,8 @@ function generateCacheConfiguration(res, cacheCfg) {
         for (var i = 0; i < cacheCfg.indexedTypes.length; i++) {
             var pair = cacheCfg.indexedTypes[i];
 
-            res.line('<value>' + generatorUtils.javaBuildInClass(pair.keyClass) + '</value>');
-            res.line('<value>' + generatorUtils.javaBuildInClass(pair.valueClass) + '</value>');
+            res.line('<value>' + generatorCommon.javaBuildInClass(pair.keyClass) + '</value>');
+            res.line('<value>' + generatorCommon.javaBuildInClass(pair.valueClass) + '</value>');
         }
 
         res.endBlock('</list>');
@@ -536,7 +536,7 @@ function generateCacheConfiguration(res, cacheCfg) {
 
     if (cacheCfg.cacheStoreFactory && cacheCfg.cacheStoreFactory.kind) {
         var storeFactory = cacheCfg.cacheStoreFactory[cacheCfg.cacheStoreFactory.kind];
-        var data = generatorUtils.storeFactories[cacheCfg.cacheStoreFactory.kind];
+        var data = generatorCommon.storeFactories[cacheCfg.cacheStoreFactory.kind];
 
         addBeanWithProperties(res, storeFactory, 'cacheStoreFactory', data.className, data.fields, true);
 
@@ -546,7 +546,7 @@ function generateCacheConfiguration(res, cacheCfg) {
                 }) < 0) {
                 res.datasources.push({
                     dataSourceBean: storeFactory.dataSourceBean,
-                    className: generatorUtils.dataSources[storeFactory.dialect]
+                    className: generatorCommon.dataSources[storeFactory.dialect]
                 });
             }
         }
@@ -640,14 +640,14 @@ function addElement(res, tag, attr1, val1, attr2, val2) {
 function addProperty(res, obj, propName, setterName) {
     var val = obj[propName];
 
-    if (generatorUtils.isDefined(val))
+    if (generatorCommon.isDefined(val))
         addElement(res, 'property', 'name', setterName ? setterName : propName, 'value', escapeAttr(val));
 
     return val;
 }
 
 function addBeanWithProperties(res, bean, beanPropName, beanClass, props, createBeanAlthoughNoProps) {
-    if (bean && generatorUtils.hasProperty(bean, props)) {
+    if (bean && generatorCommon.hasProperty(bean, props)) {
         res.emptyLineIfNeeded();
         res.startBlock('<property name="' + beanPropName + '">');
         res.startBlock('<bean class="' + beanClass + '">');
@@ -663,7 +663,7 @@ function addBeanWithProperties(res, bean, beanPropName, beanClass, props, create
                     else if (descr.type == 'className') {
                         if (bean[propName]) {
                             res.startBlock('<property name="' + propName + '">');
-                            res.line('<bean class="' + generatorUtils.knownClasses[bean[propName]].className + '"/>');
+                            res.line('<bean class="' + generatorCommon.knownClasses[bean[propName]].className + '"/>');
                             res.endBlock('</property>');
                         }
                     }


[03/25] incubator-ignite git commit: IGNITE-843 Updated DEVNOTES.txt due to changed module folder.

Posted by an...@apache.org.
IGNITE-843 Updated DEVNOTES.txt due to changed module folder.


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

Branch: refs/heads/ignite-1121
Commit: cc88167f2da8e353c77056149400ef1194af6cc3
Parents: a82fce9
Author: AKuznetsov <ak...@gridgain.com>
Authored: Wed Jul 29 19:47:28 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Wed Jul 29 19:47:28 2015 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/DEVNOTES.txt | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cc88167f/modules/control-center-web/src/main/js/DEVNOTES.txt
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/DEVNOTES.txt b/modules/control-center-web/src/main/js/DEVNOTES.txt
index e8c558c..1673e98 100644
--- a/modules/control-center-web/src/main/js/DEVNOTES.txt
+++ b/modules/control-center-web/src/main/js/DEVNOTES.txt
@@ -4,9 +4,9 @@ Ignite Web Control Center Instructions
 How to deploy:
 
 1. Install locally NodeJS using installer from site https://nodejs.org for your OS.
-2. Install locally MongoDB folow instructions from site http://docs.mongodb.org/manual/installation
+2. Install locally MongoDB follow instructions from site http://docs.mongodb.org/manual/installation
 3. Checkout ignite-843 branch.
-4. Change directory '$IGNITE_HOME/modules/web-control-center/src/main/js'.
+4. Change directory '$IGNITE_HOME/modules/control-center-web/src/main/js'.
 5. Run "npm install" in terminal for download all dependencies.
 
 Steps 1 - 5 should be executed once.
@@ -14,8 +14,8 @@ Steps 1 - 5 should be executed once.
 How to run:
 
 1. Run MongoDB.
- 1.1 In terminal change dir to $MONGO_ISNTALL_DIR/server/3.0/bin.
+ 1.1 In terminal change dir to $MONGO_INSTALL_DIR/server/3.0/bin.
  1.2 Run "mongod".
-2. In new terminal change directory '$IGNITE_HOME/modules/web-control-center/src/main/js'.
+2. In new terminal change directory '$IGNITE_HOME/modules/control-center-web/src/main/js'.
 3. Start application by executing "npm start".
 4. In browser open: http://localhost:3000
\ No newline at end of file


[15/25] incubator-ignite git commit: IGNITE-843 Fixed java code generation.

Posted by an...@apache.org.
IGNITE-843 Fixed java code generation.


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

Branch: refs/heads/ignite-1121
Commit: 3e6af39cd78826f6e44482425c4f7086185520c0
Parents: a0a878a
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 30 17:14:11 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 30 17:14:11 2015 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/routes/generator/java.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3e6af39c/modules/control-center-web/src/main/js/routes/generator/java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/java.js b/modules/control-center-web/src/main/js/routes/generator/java.js
index e4f6573..9eb196d 100644
--- a/modules/control-center-web/src/main/js/routes/generator/java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/java.js
@@ -564,7 +564,7 @@ function addCacheConfiguration(res, cache, varName) {
 
                 res.line();
 
-                declareVariable(res, true, dsVarName, dataSource.className);
+                declareVariable(res, true, dsVarName, dataSource);
 
                 res.line(dsVarName + '.setURL(_URL_);');
                 res.line(dsVarName + '.setUsername(_User_Name_);');


[07/25] incubator-ignite git commit: # ignite-843 Remove selection on createItem.

Posted by an...@apache.org.
# ignite-843 Remove selection on createItem.


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

Branch: refs/heads/ignite-1121
Commit: 86fb3d720cced1ab2f04f7b5264bc5de406a84a3
Parents: 865ad01
Author: Andrey <an...@gridgain.com>
Authored: Thu Jul 30 15:04:36 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Jul 30 15:04:36 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/controllers/caches-controller.js                   | 2 ++
 .../src/main/js/controllers/clusters-controller.js                 | 2 ++
 .../src/main/js/controllers/metadata-controller.js                 | 2 ++
 3 files changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/86fb3d72/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 e995233..c103650 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
@@ -227,6 +227,8 @@ controlCenterModule.controller('cachesController', ['$scope', '$http', '$common'
         $scope.createItem = function () {
             $table.tableReset();
 
+            $scope.selectedItem = undefined;
+
             $scope.backupItem = {mode: 'PARTITIONED', atomicityMode: 'ATOMIC', readFromBackup: true, copyOnRead: true};
             $scope.backupItem.queryMetadata = [];
             $scope.backupItem.spaceMetadata = [];

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/86fb3d72/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 0b18868..1bc6633 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
@@ -185,6 +185,8 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo
         $scope.createItem = function () {
             $table.tableReset();
 
+            $scope.selectedItem = undefined;
+
             $scope.backupItem = angular.copy($scope.create.template);
             $scope.backupItem.caches = [];
             $scope.backupItem.space = $scope.spaces[0]._id;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/86fb3d72/modules/control-center-web/src/main/js/controllers/metadata-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/metadata-controller.js b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
index c8fad8d..da543e2 100644
--- a/modules/control-center-web/src/main/js/controllers/metadata-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
@@ -328,6 +328,8 @@ controlCenterModule.controller('metadataController', ['$scope', '$http', '$commo
         $scope.createItem = function () {
             $table.tableReset();
 
+            $scope.selectedItem = undefined;
+
             $scope.backupItem = angular.copy($scope.template);
             $scope.backupItem.space = $scope.spaces[0]._id;
         };