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 2016/03/04 10:30:56 UTC

[01/50] ignite git commit: IGNITE-843 Minor code cleanup.

Repository: ignite
Updated Branches:
  refs/heads/ignite-843 [created] 20837100b


IGNITE-843 Minor code cleanup.


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

Branch: refs/heads/ignite-843
Commit: 99eaa65eba80d23e7a4b0b9f753128249207c027
Parents: c4c8c59
Author: vsisko <vs...@gridgain.com>
Authored: Thu Feb 18 10:54:25 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Feb 18 10:54:25 2016 +0700

----------------------------------------------------------------------
 .../main/js/controllers/caches-controller.js    |  2 +-
 .../main/js/helpers/generator/generator-java.js | 21 +++++++-------------
 .../src/main/js/serve/mail.js                   |  2 +-
 3 files changed, 9 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/99eaa65e/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 4a8ee53..7709aa4 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
@@ -570,7 +570,7 @@ consoleModule.controller('cachesController', [
 
             if (item.writeBehindFlushSize === 0 && item.writeBehindFlushFrequency === 0)
                 return showPopoverMessage($scope.ui, 'store', 'writeBehindFlushSize',
-                    'Both \'Flush frequency\' and \'Flush size\' are not allowed as 0');
+                    'Both "Flush frequency" and "Flush size" are not allowed as 0');
 
             if (item.cacheMode !== 'LOCAL' && item.rebalanceMode !== 'NONE' && item.rebalanceBatchSize === 0)
                 return showPopoverMessage($scope.ui, 'rebalance', 'rebalanceBatchSize',

http://git-wip-us.apache.org/repos/asf/ignite/blob/99eaa65e/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 4416e15..d693788 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -2067,21 +2067,14 @@ $generatorJava.javaClassCode = function (domain, key, pkg, useConstructor, inclu
     res.line('/** {@inheritDoc} */');
     res.startBlock('@Override public String toString() {');
 
-    if (allFields.length > 0) {
-        var field = allFields[0];
-
-        res.startBlock('return \"' + type + ' [' + field.javaFieldName + '=\" + ' + field.javaFieldName + ' +', type);
-
-        for (fldIx = 1; fldIx < allFields.length; fldIx ++) {
-            field = allFields[fldIx];
-
-            var javaName = field.javaFieldName;
-
-            res.line('\", ' + javaName + '=\" + ' + field.javaFieldName + ' +');
-        }
-    }
+    _.forEach(allFields, function (field, idx) {
+        if (idx === 0)
+            res.startBlock('return \"' + type + ' [' + field.javaFieldName + '=\" + ' + field.javaFieldName + ' +', type);
+        else
+            res.line('\", ' + field.javaFieldName + '=\" + ' + field.javaFieldName + ' +');
+    });
 
-    res.line('\']\';');
+    res.line('"]";');
     res.endBlock();
     res.endBlock('}');
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/99eaa65e/modules/control-center-web/src/main/js/serve/mail.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/mail.js b/modules/control-center-web/src/main/js/serve/mail.js
index 05d0fe9..0412840 100644
--- a/modules/control-center-web/src/main/js/serve/mail.js
+++ b/modules/control-center-web/src/main/js/serve/mail.js
@@ -45,7 +45,7 @@ module.exports.factory = function(nodemailer, settings) {
             };
 
             if (transporter.service === '' || transporter.auth.user === '' || transporter.auth.pass === '')
-                return Promise.reject('Can\'t send email because not configured SMTP server. Please ask webmaster to setup SMTP server!');
+                return Promise.reject('Failed to send email. SMTP server is not configured . Please ask webmaster to setup SMTP server!');
 
             const mailer = nodemailer.createTransport(transporter);
 


[48/50] ignite git commit: IGNITE-843 Minor fix.

Posted by an...@apache.org.
IGNITE-843 Minor fix.


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

Branch: refs/heads/ignite-843
Commit: c56ac303f88c67ef9cf6eec53ea800050c940e3d
Parents: 35aa7eb
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Mar 3 19:10:24 2016 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Mar 3 19:10:24 2016 +0700

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


http://git-wip-us.apache.org/repos/asf/ignite/blob/c56ac303/modules/control-center-web/src/main/js/serve/routes/domains.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/routes/domains.js b/modules/control-center-web/src/main/js/serve/routes/domains.js
index 6aae98f..4cbf889 100644
--- a/modules/control-center-web/src/main/js/serve/routes/domains.js
+++ b/modules/control-center-web/src/main/js/serve/routes/domains.js
@@ -101,7 +101,7 @@ module.exports.factory = (_, express, mongo) => {
                             return mongo.Cache.update({_id: {$in: caches}}, {$addToSet: {domains: savedDomain._id}}, {multi: true}).exec();
                         })
                         .then(() => _updateCacheStore(cacheStoreChanges));
-                })
+                });
         };
 
         const _save = (domains, res) => {


[18/50] ignite git commit: IGNITE-2287 Do not import primitive keys as query fields and indexes.

Posted by an...@apache.org.
IGNITE-2287 Do not import primitive keys as query fields and indexes.


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

Branch: refs/heads/ignite-843
Commit: f01fc590e576d1e58ff467f2d874e122585104b8
Parents: 6212669
Author: vsisko <vs...@gridgain.com>
Authored: Sat Feb 20 17:07:33 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Sat Feb 20 17:07:33 2016 +0700

----------------------------------------------------------------------
 .../main/js/controllers/domains-controller.js   | 22 ++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f01fc590/modules/control-center-web/src/main/js/controllers/domains-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/domains-controller.js b/modules/control-center-web/src/main/js/controllers/domains-controller.js
index d3b29ea..a7af8dd 100644
--- a/modules/control-center-web/src/main/js/controllers/domains-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/domains-controller.js
@@ -899,8 +899,26 @@ consoleModule.controller('domainsController', function ($filter, $http, $timeout
                         newDomain.valueFields = keyFields.slice();
 
                     // Use Java built-in type for key.
-                    if ($scope.ui.builtinKeys && newDomain.keyFields.length === 1)
-                        newDomain.keyType = newDomain.keyFields[0].jdbcType.javaType;
+                    if ($scope.ui.builtinKeys && newDomain.keyFields.length === 1) {
+                        var keyField = newDomain.keyFields[0];
+
+                        newDomain.keyType = keyField.jdbcType.javaType;
+
+                        // Exclude key column from query fields and indexes.
+                        newDomain.fields = _.filter(newDomain.fields, function (field) {
+                            return field.name != keyField.javaFieldName;
+                        });
+
+                        _.forEach(newDomain.indexes, function (index) {
+                            index.fields = _.filter(index.fields, function (field) {
+                                return field.name !== keyField.javaFieldName;
+                            })
+                        });
+
+                        newDomain.indexes = _.filter(newDomain.indexes, function (index) {
+                            return !$common.isEmptyArray(index.fields);
+                        });
+                    }
 
                     // Prepare caches for generation.
                     if (table.action === IMPORT_DM_NEW_CACHE) {


[12/50] ignite git commit: Merge remote-tracking branch 'origin/ignite-843-rc2' into ignite-843-rc2

Posted by an...@apache.org.
Merge remote-tracking branch 'origin/ignite-843-rc2' into ignite-843-rc2


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

Branch: refs/heads/ignite-843
Commit: 775a6afa7501d9c10e2aac31424b94e58b8c4075
Parents: c01cca4 473dd70
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Sat Feb 20 11:22:50 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Sat Feb 20 11:22:50 2016 +0700

----------------------------------------------------------------------
 .../control-center-web/src/main/js/app/index.js |  14 +-
 .../main/js/app/modules/states/admin.state.js   |  36 +++++
 .../main/js/app/modules/states/admin/index.js   |  36 -----
 .../app/modules/states/configuration.state.js   | 162 +++++++++++++++++++
 .../app/modules/states/configuration/index.js   | 162 -------------------
 .../main/js/app/modules/states/login/index.js   |  55 -------
 .../main/js/app/modules/states/logout.state.js  |  33 ++++
 .../main/js/app/modules/states/logout/index.js  |  33 ----
 .../js/app/modules/states/password.state.js     |  40 +++++
 .../js/app/modules/states/password/index.js     |  40 -----
 .../main/js/app/modules/states/profile.state.js |  36 +++++
 .../main/js/app/modules/states/profile/index.js |  36 -----
 .../main/js/app/modules/states/signin.state.js  |  55 +++++++
 .../src/main/js/app/modules/states/sql.state.js |  56 +++++++
 .../src/main/js/app/modules/states/sql/index.js |  56 -------
 15 files changed, 425 insertions(+), 425 deletions(-)
----------------------------------------------------------------------



[02/50] ignite git commit: IGNITE-843 Fixed pie chart display.

Posted by an...@apache.org.
IGNITE-843 Fixed pie chart display.


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

Branch: refs/heads/ignite-843
Commit: 2a0d870fe747bc1c14cd7077b6d18ea22f543794
Parents: 99eaa65
Author: vsisko <vs...@gridgain.com>
Authored: Thu Feb 18 11:13:37 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Feb 18 11:13:37 2016 +0700

----------------------------------------------------------------------
 .../control-center-web/src/main/js/controllers/sql-controller.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/2a0d870f/modules/control-center-web/src/main/js/controllers/sql-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/sql-controller.js b/modules/control-center-web/src/main/js/controllers/sql-controller.js
index fa2605e..a7abc82 100644
--- a/modules/control-center-web/src/main/js/controllers/sql-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/sql-controller.js
@@ -1123,7 +1123,7 @@ consoleModule.controller('sqlController', function ($http, $timeout, $interval,
 
                     var v = {
                         x: xCol < 0 ? index : row[xCol],
-                        y: _chartNumber(row, valCol, index)
+                        y: _chartNumber(row, valCol.value, index)
                     };
 
                     index++;
@@ -1131,7 +1131,7 @@ consoleModule.controller('sqlController', function ($http, $timeout, $interval,
                     return v;
                 });
 
-                datum.push({series: valCol.label, key: valCol.label, values: values});
+                datum.push({series: paragraph.chartKeyCols[0].label, key: valCol.label, values: values});
             });
         }
 


[39/50] ignite git commit: IGNITE-843 Added suffix in title.

Posted by an...@apache.org.
IGNITE-843 Added suffix in title.


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

Branch: refs/heads/ignite-843
Commit: 85b4b9fe14c2ec806a2743ee2eaf756f6cf1f1e1
Parents: 4c23c8e
Author: Andrey <an...@gridgain.com>
Authored: Thu Mar 3 11:06:08 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Mar 3 11:06:08 2016 +0700

----------------------------------------------------------------------
 .../app/modules/branding/branding.provider.js   | 12 ++++++++
 .../main/js/app/modules/states/admin.state.js   |  6 ++--
 .../app/modules/states/configuration.state.js   | 30 ++++++++++----------
 .../main/js/app/modules/states/profile.state.js |  6 ++--
 .../main/js/app/modules/states/signin.state.js  |  6 ++--
 .../src/main/js/app/modules/states/sql.state.js | 12 ++++----
 6 files changed, 42 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/85b4b9fe/modules/control-center-web/src/main/js/app/modules/branding/branding.provider.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/branding.provider.js b/modules/control-center-web/src/main/js/app/modules/branding/branding.provider.js
index d4c12a4..ce14b34 100644
--- a/modules/control-center-web/src/main/js/app/modules/branding/branding.provider.js
+++ b/modules/control-center-web/src/main/js/app/modules/branding/branding.provider.js
@@ -16,6 +16,8 @@
  */
 
 export default ['IgniteBranding', [function() {
+    let titleSuffix = ' – Apache Ignite Web Console';
+
     let headerLogo = '/images/ignite-logo.png';
 
     let headerText = 'Management console for Apache Ignite';
@@ -40,6 +42,15 @@ export default ['IgniteBranding', [function() {
     ];
 
     /**
+     * Change title suffix.
+     *
+     * @param {String} suffix.
+     */
+    this.titleSuffix = (suffix) => {
+        titleSuffix = suffix;
+    };
+
+    /**
      * Change logo in header.
      *
      * @param {String} url Logo path.
@@ -88,6 +99,7 @@ export default ['IgniteBranding', [function() {
 
     this.$get = [() => {
         return {
+            titleSuffix,
             headerLogo,
             headerText,
             featuresHtml: featuresHtml.join('\n'),

http://git-wip-us.apache.org/repos/asf/ignite/blob/85b4b9fe/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/admin.state.js b/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
index c183807..0de646e 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
@@ -28,9 +28,9 @@ angular
         url: '/admin',
         templateUrl: '/settings/admin.html',
         resolve: {
-            $title: () => {
-                return 'List of registered users';
-            }
+            $title: ['IgniteBranding', (branding) => {
+                return 'List of registered users' + branding.titleSuffix;
+            }]
         }
     });
 }]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/85b4b9fe/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js b/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
index edd7f9d..1071eb8 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
@@ -112,9 +112,9 @@ angular
             loading: 'Loading clusters screen...'
         },
         resolve: {
-            $title: () => {
-                return 'Configure Clusters';
-            }
+            $title: ['IgniteBranding', (branding) => {
+                return 'Configure Clusters' + branding.titleSuffix;
+            }]
         }
     })
     .state('base.configuration.caches', {
@@ -127,9 +127,9 @@ angular
             loading: 'Loading caches screen...'
         },
         resolve: {
-            $title: () => {
-                return 'Configure Caches';
-            }
+            $title: ['IgniteBranding', (branding) => {
+                return 'Configure Caches' + branding.titleSuffix;
+            }]
         }
     })
     .state('base.configuration.domains', {
@@ -142,9 +142,9 @@ angular
             loading: 'Loading domain models screen...'
         },
         resolve: {
-            $title: () => {
-                return 'Configure Domain Model';
-            }
+            $title: ['IgniteBranding', (branding) => {
+                return 'Configure Domain Model' + branding.titleSuffix;
+            }]
         }
     })
     .state('base.configuration.igfs', {
@@ -157,9 +157,9 @@ angular
             loading: 'Loading IGFS screen...'
         },
         resolve: {
-            $title: () => {
-                return 'Configure IGFS';
-            }
+            $title: ['IgniteBranding', (branding) => {
+                return 'Configure IGFS' + branding.titleSuffix;
+            }]
         }
     })
     .state('base.configuration.summary', {
@@ -171,9 +171,9 @@ angular
             loading: 'Loading summary screen...'
         },
         resolve: {
-            $title: () => {
-                return 'Configurations Summary';
-            }
+            $title: ['IgniteBranding', (branding) => {
+                return 'Configurations Summary' + branding.titleSuffix;
+            }]
         }
     });
 }]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/85b4b9fe/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/profile.state.js b/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
index 23d1bec..dc9cabd 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
@@ -28,9 +28,9 @@ angular
         url: '/profile',
         templateUrl: '/settings/profile.html',
         resolve: {
-            $title: () => {
-                return 'User profile';
-            }
+            $title: ['IgniteBranding', (branding) => {
+                return 'User profile' + branding.titleSuffix;
+            }]
         }
     });
 }]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/85b4b9fe/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/signin.state.js b/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
index bf5baa9..9855058 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
@@ -30,9 +30,9 @@ angular
         url: '/signin',
         templateUrl: '/signin.html',
         resolve: {
-            $title: () => {
-                return 'Sign In';
-            }
+            $title: ['IgniteBranding', (branding) => {
+                return 'Management Tool and Configuration Wizard for Apache Ignite' + branding.titleSuffix;
+            }]
         }
     });
 }])

http://git-wip-us.apache.org/repos/asf/ignite/blob/85b4b9fe/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/sql.state.js b/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
index 672d829..0c53bb6 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
@@ -36,9 +36,9 @@ angular
             loading: 'Loading notebook screen...'
         },
         resolve: {
-            $title: () => {
-                return 'Query notebook';
-            }
+            $title: ['IgniteBranding', (branding) => {
+                return 'Query notebook' + branding.titleSuffix;
+            }]
         }
     })
     .state('base.sql.demo', {
@@ -48,9 +48,9 @@ angular
             loading: 'Enable SQL demo...'
         },
         resolve: {
-            $title: () => {
-                return 'SQL demo';
-            }
+            $title: ['IgniteBranding', (branding) => {
+                return 'SQL demo' + branding.titleSuffix;
+            }]
         }
     });
 }]);


[45/50] ignite git commit: IGNITE-843 Minor.

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


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

Branch: refs/heads/ignite-843
Commit: d55c82023e54eec1b09e9f0b9277a93b58a61ef1
Parents: 877f4a4
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Mar 3 16:56:35 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Mar 3 16:56:35 2016 +0700

----------------------------------------------------------------------
 .../form-field-java-class/form-field-java-class.jade         | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d55c8202/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.jade b/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.jade
index ae75c27..6b56e6a 100644
--- a/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.jade
+++ b/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.jade
@@ -49,9 +49,9 @@ mixin feedback(error, message)
 
     span(ng-transclude='')
 
-    +feedback('javaPackageSpecified', 'does not have package specified')
-    +feedback('javaBuiltInClass', 'should not be the Java built-in class')
-    +feedback('javaKeywords', 'could not contains reserved Java keyword')
-    +feedback('javaIdentifier', 'is invalid Java identifier')
+    +feedback('javaPackageSpecified', 'does not have package specified!')
+    +feedback('javaBuiltInClass', 'should not be the Java built-in class!')
+    +feedback('javaKeywords', 'could not contains reserved Java keyword!')
+    +feedback('javaIdentifier', 'is invalid Java identifier!')
 
     +feedback('required', 'could not be empty!')


[14/50] ignite git commit: IGNITE-2287 Added generation of comment.

Posted by an...@apache.org.
IGNITE-2287 Added generation of comment.


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

Branch: refs/heads/ignite-843
Commit: 75ad7be650508fbc99b048cd452c9805e300222b
Parents: b0a6ed6
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Sat Feb 20 13:12:06 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Sat Feb 20 13:12:06 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/helpers/generator/generator-java.js                | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/75ad7be6/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 16079be..87255c4 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -2854,6 +2854,8 @@ $generatorJava.generateExample = function (cluster, res, factoryCls) {
                     });
 
                     if (desc) {
+                        res.line('// Generate ' + desc.type + '.');
+
                         if (desc.schema)
                             _prepareStatement(res, conVar, 'CREATE SCHEMA IF NOT EXISTS ' + desc.schema);
 


[42/50] ignite git commit: IGNITE-843 Minor fix.

Posted by an...@apache.org.
IGNITE-843 Minor fix.


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

Branch: refs/heads/ignite-843
Commit: 13bc0f5c1e9d6578cd6a73dcb169c9b0176f088e
Parents: 38ff57b
Author: Andrey <an...@gridgain.com>
Authored: Thu Mar 3 15:29:02 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Mar 3 15:29:02 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/app/filters/byName.filter.js    | 23 +++++++++++++++++
 .../main/js/app/filters/byName/byName.filter.js | 23 -----------------
 .../src/main/js/app/filters/hasPojo.filter.js   | 26 ++++++++++++++++++++
 .../js/app/filters/hasPojo/hasPojo.filter.js    | 26 --------------------
 .../control-center-web/src/main/js/app/index.js |  4 +--
 5 files changed, 51 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/13bc0f5c/modules/control-center-web/src/main/js/app/filters/byName.filter.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/filters/byName.filter.js b/modules/control-center-web/src/main/js/app/filters/byName.filter.js
new file mode 100644
index 0000000..3b0746f
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/filters/byName.filter.js
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default ['byName', [() => (arr, search) => {
+    if (!(arr && arr.length) || !search)
+        return arr;
+
+    return _.filter(arr, ({ name }) => name.indexOf(search) >= 0);
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/13bc0f5c/modules/control-center-web/src/main/js/app/filters/byName/byName.filter.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/filters/byName/byName.filter.js b/modules/control-center-web/src/main/js/app/filters/byName/byName.filter.js
deleted file mode 100644
index 3b0746f..0000000
--- a/modules/control-center-web/src/main/js/app/filters/byName/byName.filter.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default ['byName', [() => (arr, search) => {
-    if (!(arr && arr.length) || !search)
-        return arr;
-
-    return _.filter(arr, ({ name }) => name.indexOf(search) >= 0);
-}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/13bc0f5c/modules/control-center-web/src/main/js/app/filters/hasPojo.filter.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/filters/hasPojo.filter.js b/modules/control-center-web/src/main/js/app/filters/hasPojo.filter.js
new file mode 100644
index 0000000..db47585
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/filters/hasPojo.filter.js
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default ['hasPojo', [() => {
+    const filter = (cache) => {
+        return cache.domains && cache.domains.length;
+    };
+
+    return ({caches} = {}) => {
+        return caches && _.chain(caches).filter(filter).first().value();
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/13bc0f5c/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js b/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js
deleted file mode 100644
index db47585..0000000
--- a/modules/control-center-web/src/main/js/app/filters/hasPojo/hasPojo.filter.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default ['hasPojo', [() => {
-    const filter = (cache) => {
-        return cache.domains && cache.domains.length;
-    };
-
-    return ({caches} = {}) => {
-        return caches && _.chain(caches).filter(filter).first().value();
-    };
-}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/13bc0f5c/modules/control-center-web/src/main/js/app/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/index.js b/modules/control-center-web/src/main/js/app/index.js
index a2473e8..333f0ef 100644
--- a/modules/control-center-web/src/main/js/app/index.js
+++ b/modules/control-center-web/src/main/js/app/index.js
@@ -101,8 +101,8 @@ import IgniteCountries from './services/Countries/Countries.service';
 // Providers
 
 // Filters.
-import hasPojo from './filters/hasPojo/hasPojo.filter';
-import byName from './filters/byName/byName.filter';
+import hasPojo from './filters/hasPojo.filter';
+import byName from './filters/byName.filter';
 
 angular
 .module('ignite-console', [


[13/50] ignite git commit: IGNITE-2287 Fixed eslint warnings.

Posted by an...@apache.org.
IGNITE-2287 Fixed eslint warnings.


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

Branch: refs/heads/ignite-843
Commit: b0a6ed6c0bb8daa0fa2d5f6ee428a1c570d91a0c
Parents: 775a6af
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Sat Feb 20 11:27:39 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Sat Feb 20 11:27:39 2016 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/.eslintrc                  | 1 +
 .../modules/states/configuration/summary/summary.controller.js    | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/b0a6ed6c/modules/control-center-web/src/main/js/.eslintrc
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/.eslintrc b/modules/control-center-web/src/main/js/.eslintrc
index 9174e14..000de6c 100644
--- a/modules/control-center-web/src/main/js/.eslintrc
+++ b/modules/control-center-web/src/main/js/.eslintrc
@@ -22,6 +22,7 @@ globals:
     _: true
     window: true
     global: true
+    $generatorCommon: true
     $generatorProperties: true
     $generatorXml: true
     $generatorJava: true

http://git-wip-us.apache.org/repos/asf/ignite/blob/b0a6ed6c/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
index 7cd564a..5b8aa31 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
@@ -258,9 +258,10 @@ export default [
             zip.file(srcPath + 'config/ServerConfigurationFactory.java', $generatorJava.cluster(cluster, 'config', 'ServerConfigurationFactory', null));
             zip.file(srcPath + 'config/ClientConfigurationFactory.java', $generatorJava.cluster(cluster, 'config', 'ClientConfigurationFactory', clientNearCfg));
 
-            if ($generatorCommon.dataForExampleConfigured(cluster))
+            if ($generatorCommon.dataForExampleConfigured(cluster)) {
                 zip.file(srcPath + 'example/ExampleStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ExampleStartup',
                     'ServerConfigurationFactory.createConfiguration()', 'config.ServerConfigurationFactory'));
+            }
 
             zip.file(srcPath + 'startup/ServerNodeSpringStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ServerNodeSpringStartup', '"' + serverXml + '"'));
             zip.file(srcPath + 'startup/ClientNodeSpringStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ClientNodeSpringStartup', '"' + clientXml + '"'));


[06/50] ignite git commit: IGNITE-843 Updated tip for idMapper and nameMapper.

Posted by an...@apache.org.
IGNITE-843 Updated tip for idMapper and nameMapper.


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

Branch: refs/heads/ignite-843
Commit: 6a9ced4ad50061ee24878c7eaf76e041ae2acc25
Parents: 3655140
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Feb 18 20:39:36 2016 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Feb 18 20:39:36 2016 +0700

----------------------------------------------------------------------
 .../modules/states/configuration/clusters/binary.jade   | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6a9ced4a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
index 60e34db..6e78df3 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
@@ -32,8 +32,8 @@ form.panel.panel-default(name='binary' novalidate)
                         ignite-form-field-label
                             | ID mapper:
                         ignite-form-field-tooltip
-                            | Type and field ID mapper for binary objects#[br]
-                            | Ignite never writes full strings for field or type names. Instead, for performance reasons, Ignite writes integer hash codes for type and field names. It has been tested that hash code conflicts for the type names or the field names within the same type are virtually non-existent and, to gain performance, it is safe to work with hash codes. For the cases when hash codes for different types or fields actually do collide #[b BinaryIdMapper] allows to override the automatically generated hash code IDs for the type and field names
+                            | Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals#[br]
+                            | Ignite never writes full strings for field or type names. Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names. It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non-existent and, to gain performance, it is safe to work with hash codes. For the cases when hash codes for different types or fields actually do collide #[b BinaryIdMapper] allows to override the automatically generated hash code IDs for the type and field names
                         ignite-form-field-java-class(
                             data-id='idMapper'
                             data-name='idMapper'
@@ -44,7 +44,7 @@ form.panel.panel-default(name='binary' novalidate)
                         ignite-form-field-label
                             | Name mapper:
                         ignite-form-field-tooltip
-                            | Name mapper
+                            | Maps type/class and field names to different names#[br]
                         ignite-form-field-java-class(
                             data-id='nameMapper'
                             data-name='nameMapper'
@@ -94,8 +94,8 @@ form.panel.panel-default(name='binary' novalidate)
                                     ignite-form-field-label
                                         | ID mapper:
                                     ignite-form-field-tooltip
-                                        | Type and field ID mapper for binary objects#[br]
-                                        | Ignite never writes full strings for field or type names. Instead, for performance reasons, Ignite writes integer hash codes for type and field names. It has been tested that hash code conflicts for the type names or the field names within the same type are virtually non-existent and, to gain performance, it is safe to work with hash codes. For the cases when hash codes for different types or fields actually do collide #[b BinaryIdMapper] allows to override the automatically generated hash code IDs for the type and field names
+                                        | Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals#[br]
+                                        | Ignite never writes full strings for field or type/class names. Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names. It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non-existent and, to gain performance, it is safe to work with hash codes. For the cases when hash codes for different types or fields actually do collide #[b BinaryIdMapper] allows to override the automatically generated hash code IDs for the type and field names
                                     ignite-form-field-java-class(
                                         data-id='idMapper'
                                         data-name='idMapper'
@@ -106,7 +106,7 @@ form.panel.panel-default(name='binary' novalidate)
                                     ignite-form-field-label
                                         | Name mapper:
                                     ignite-form-field-tooltip
-                                        | Name mapper
+                                        | Maps type/class and field names to different names#[br]
                                     ignite-form-field-java-class(
                                         data-id='nameMapper'
                                         data-name='nameMapper'


[20/50] ignite git commit: IGNITE-843 Fixed "JQuery is not a function" + added missing affix fix on Domains screen.

Posted by an...@apache.org.
IGNITE-843 Fixed "JQuery is not a function" + added missing affix fix on Domains screen.


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

Branch: refs/heads/ignite-843
Commit: 1b214b0ef904474e9e1a58af4e365eece2757b8d
Parents: daccaef
Author: Dmitriyff <dm...@gmail.com>
Authored: Wed Feb 24 16:29:25 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Wed Feb 24 16:29:25 2016 +0700

----------------------------------------------------------------------
 .../app/directives/bs-affix-update/bs-affix-update.directive.js  | 4 ++--
 .../src/main/js/views/configuration/domains.jade                 | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/1b214b0e/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js b/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js
index 131089d..dbf78e5 100644
--- a/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js
+++ b/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-import jQuery from 'jquery';
+import angular from 'angular';
 
 export default ['igniteBsAffixUpdate', ['$window', '$timeout', ($window, $timeout) => {
     let update = null;
@@ -23,7 +23,7 @@ export default ['igniteBsAffixUpdate', ['$window', '$timeout', ($window, $timeou
     const link = ({$last}) => {
         if ($last) {
             update && $timeout.cancel(update);
-            update = $timeout(() => jQuery($window).trigger('resize'), 1000);
+            update = $timeout(() => angular.element($window).triggerHandler('resize'), 1000);
         }
     };
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/1b214b0e/modules/control-center-web/src/main/js/views/configuration/domains.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/domains.jade b/modules/control-center-web/src/main/js/views/configuration/domains.jade
index 395ead1..0dd39a0 100644
--- a/modules/control-center-web/src/main/js/views/configuration/domains.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/domains.jade
@@ -44,7 +44,7 @@ include ../includes/infos
                                     .scrollable-y(ng-show='(displayedRows | domainsValidation:ui.showValid:true).length > 0' style='max-height: 200px')
                                         table
                                             tbody
-                                                tr(ng-repeat='row in (displayedRows | domainsValidation:ui.showValid:true) track by row._id')
+                                                tr(ng-repeat='row in (displayedRows | domainsValidation:ui.showValid:true) track by row._id' ignite-bs-affix-update)
                                                     td
                                                         a(ng-class='{active: row._id == selectedItem._id}' ng-click='selectItem(row)') {{$index + 1}}) {{row.valueType}}
                                     label.placeholder(ng-show='(displayedRows | domainsValidation:ui.showValid:true).length == 0') No domain models found


[27/50] ignite git commit: IGNITE-843 Implemented support of "required" for number fields.

Posted by an...@apache.org.
IGNITE-843 Implemented support of "required" for number fields.


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

Branch: refs/heads/ignite-843
Commit: 9aa0a573790c89ba0893d140160759d14f4a90fa
Parents: c772d33
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Feb 25 17:16:16 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Feb 25 17:16:16 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/app/modules/form/field/input/number.directive.js | 4 ++++
 .../src/main/js/app/modules/form/field/input/number.jade         | 1 +
 2 files changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9aa0a573/modules/control-center-web/src/main/js/app/modules/form/field/input/number.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/form/field/input/number.directive.js b/modules/control-center-web/src/main/js/app/modules/form/field/input/number.directive.js
index b88425f..cc135b5 100644
--- a/modules/control-center-web/src/main/js/app/modules/form/field/input/number.directive.js
+++ b/modules/control-center-web/src/main/js/app/modules/form/field/input/number.directive.js
@@ -25,6 +25,10 @@ export default ['igniteFormFieldInputNumber', ['IgniteFormGUID', (guid) => {
         scope.field = field;
         label.for = scope.id = id || guid();
 
+        scope.$watch('required', (required) => {
+            label.required = required || false;
+        });
+
         form.$defaults = form.$defaults || {};
         form.$defaults[name] = _.cloneDeep(scope.value);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/9aa0a573/modules/control-center-web/src/main/js/app/modules/form/field/input/number.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/form/field/input/number.jade b/modules/control-center-web/src/main/js/app/modules/form/field/input/number.jade
index 6b31ebd..920a5eb 100644
--- a/modules/control-center-web/src/main/js/app/modules/form/field/input/number.jade
+++ b/modules/control-center-web/src/main/js/app/modules/form/field/input/number.jade
@@ -40,5 +40,6 @@ mixin feedback(error, message)
     +feedback('min', 'Value is less than allowable minimum: {{ min || 0 }}')
     +feedback('max', 'Value is more than allowable maximum: {{ max }}')
     +feedback('number', 'Only numbers allowed')
+    +feedback('required', 'This field could not be empty')
 
     span(ng-transclude='')


[09/50] ignite git commit: IGNITE-843 Fixed signin on enter + minor code cleanup.

Posted by an...@apache.org.
IGNITE-843 Fixed signin on enter + minor code cleanup.


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

Branch: refs/heads/ignite-843
Commit: ea979d83a7629e1d7007fa3e99b35d70c50b3559
Parents: dc5ada5
Author: vsisko <vs...@gridgain.com>
Authored: Fri Feb 19 14:56:45 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Feb 19 14:56:45 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/controllers/common-module.js           |  2 +-
 .../src/main/js/serve/routes/public.js                 |  2 +-
 .../control-center-web/src/main/js/views/signin.jade   |  2 +-
 .../src/main/js/views/sql/notebook-new.jade            | 13 ++++++-------
 .../src/main/js/views/templates/clone.jade             | 10 +++++-----
 5 files changed, 14 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ea979d83/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 fe11359..1de5433 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
@@ -2054,7 +2054,7 @@ consoleModule.controller('resetPassword', [
     }
 ]);
 
-// Login popup controller.
+// Sign in controller.
 // TODO IGNITE-1936 Refactor this controller.
 consoleModule.controller('auth', ['$scope', '$focus', 'Auth', 'IgniteCountries', function ($scope, $focus, Auth, countries) {
     $scope.auth = Auth.auth;

http://git-wip-us.apache.org/repos/asf/ignite/blob/ea979d83/modules/control-center-web/src/main/js/serve/routes/public.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/routes/public.js b/modules/control-center-web/src/main/js/serve/routes/public.js
index 02986a8..33aa287 100644
--- a/modules/control-center-web/src/main/js/serve/routes/public.js
+++ b/modules/control-center-web/src/main/js/serve/routes/public.js
@@ -116,7 +116,7 @@ module.exports.factory = function(express, passport, nodemailer, settings, mail,
         });
 
         /**
-         * Login in exist account.
+         * Sign in into exist account.
          */
         router.post('/signin', (req, res, next) => {
             passport.authenticate('local', (errAuth, user) => {

http://git-wip-us.apache.org/repos/asf/ignite/blob/ea979d83/modules/control-center-web/src/main/js/views/signin.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/signin.jade b/modules/control-center-web/src/main/js/views/signin.jade
index cb78abc..663b77b 100644
--- a/modules/control-center-web/src/main/js/views/signin.jade
+++ b/modules/control-center-web/src/main/js/views/signin.jade
@@ -63,7 +63,7 @@ header#header.header
                             .settings-row(ng-show='action != "password/forgot"')
                                 +lblRequired('Password:')
                                 .col-xs-9.col-md-8
-                                    input#user_password.form-control(enter-focus-next='user_confirm' type='password' ng-model='user_info.password' placeholder='Password' ng-required='action != "password/forgot"' on-enter='action == "login" && form.$valid && auth(action, user_info)')
+                                    input#user_password.form-control(enter-focus-next='user_confirm' type='password' ng-model='user_info.password' placeholder='Password' ng-required='action != "password/forgot"' on-enter='action == "signin" && form.$valid && auth(action, user_info)')
                             .settings-row(ng-if='action == "signup"')
                                 +lblRequired('Confirm:')
                                 .col-xs-9.col-md-8

http://git-wip-us.apache.org/repos/asf/ignite/blob/ea979d83/modules/control-center-web/src/main/js/views/sql/notebook-new.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/sql/notebook-new.jade b/modules/control-center-web/src/main/js/views/sql/notebook-new.jade
index 6a7766c..2a50137 100644
--- a/modules/control-center-web/src/main/js/views/sql/notebook-new.jade
+++ b/modules/control-center-web/src/main/js/views/sql/notebook-new.jade
@@ -20,13 +20,12 @@
             .modal-header
                 button.close(ng-click='$hide()') &times;
                 h4.modal-title New SQL notebook
-            form.form-horizontal(name='ui.inputForm' novalidate)
-                .modal-body.row
-                    .login
-                        .col-sm-3
-                            label.required.labelFormField Name:&nbsp;
-                        .col-sm-9
-                            input.form-control(id='create-notebook' type='text' ng-model='name' required on-enter='ui.inputForm.$valid && createNewNotebook(name)' auto-focus)
+            form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate)
+                div
+                    .col-sm-2
+                        label.required.labelFormField Name:&nbsp;
+                    .col-sm-10
+                        input.form-control(id='create-notebook' type='text' ng-model='name' required on-enter='ui.inputForm.$valid && createNewNotebook(name)' auto-focus)
             .modal-footer
                 button.btn.btn-default(id='copy-btn-cancel' ng-click='$hide()') Cancel
                 button.btn.btn-primary(id='copy-btn-confirm' ng-disabled='ui.inputForm.$invalid' ng-click='createNewNotebook(name)') Create

http://git-wip-us.apache.org/repos/asf/ignite/blob/ea979d83/modules/control-center-web/src/main/js/views/templates/clone.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/templates/clone.jade b/modules/control-center-web/src/main/js/views/templates/clone.jade
index 9628cc5..26b5385 100644
--- a/modules/control-center-web/src/main/js/views/templates/clone.jade
+++ b/modules/control-center-web/src/main/js/views/templates/clone.jade
@@ -21,11 +21,11 @@
                 button.close(ng-click='$hide()') &times;
                 h4.modal-title Clone
             form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate)
-                    .login
-                        .col-sm-3
-                            label.required.labelFormField New name:&nbsp;
-                        .col-sm-9
-                            input.form-control(id='copy-new-name' type='text' ng-model='newName' required auto-focus)
+                div
+                    .col-sm-2
+                        label.required.labelFormField New name:&nbsp;
+                    .col-sm-10
+                        input.form-control(id='copy-new-name' type='text' ng-model='newName' required auto-focus)
             .modal-footer
                 button.btn.btn-default(id='copy-btn-cancel' ng-click='$hide()') Cancel
                 button.btn.btn-primary(id='copy-btn-confirm' ng-disabled='ui.inputForm.$invalid' ng-click='ok(newName)') Confirm


[43/50] ignite git commit: IGNITE-2724 Fixed tooltips for ZooKeeper.

Posted by an...@apache.org.
IGNITE-2724 Fixed tooltips for ZooKeeper.


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

Branch: refs/heads/ignite-843
Commit: 53804c74ef778269ef21b7990985536a0aca1360
Parents: 13bc0f5
Author: vsisko <vs...@gridgain.com>
Authored: Thu Mar 3 16:30:50 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Mar 3 16:30:50 2016 +0700

----------------------------------------------------------------------
 .../configuration/clusters/general/discovery/zookeeper.jade      | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/53804c74/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
index c1d3b0b..245df84 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
@@ -23,7 +23,7 @@ div
                 | Curator:
             ignite-form-field-tooltip
                 | The Curator framework in use #[br]
-                | By default generates curator of org.apache.curator.framework.imps.CuratorFrameworkImpl.CuratorFrameworkImpl
+                | By default generates curator of org.apache.curator. framework.imps.CuratorFrameworkImpl
                 | class with configured connect string, retry policy, and default session and connection timeouts
             ignite-form-field-java-class(
                 data-id='curator'
@@ -55,8 +55,8 @@ div
                     li Max number of times - retries a max number of times
                     li Only once - retries only once
                     li Always allow retry - retries infinitely
-                    li Default - exponential backoff retry policy with configured base sleep time equal to 1000ms and max retry count equal to 10
                     li Custom - custom retry policy implementation
+                    li Default - exponential backoff retry policy with configured base sleep time equal to 1000ms and max retry count equal to 10
             ignite-form-field-dropdown(
                 data-id='retryPolicy'
                 data-name='retryPolicy'


[33/50] ignite git commit: IGNITE-843 Sort column on admin page.

Posted by an...@apache.org.
IGNITE-843 Sort column on admin page.


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

Branch: refs/heads/ignite-843
Commit: aaf139bd596bb1f1b37421cfa7e48cf59588f506
Parents: 4555bed
Author: Andrey <an...@gridgain.com>
Authored: Fri Feb 26 13:56:37 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Fri Feb 26 13:56:37 2016 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/views/settings/admin.jade | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/aaf139bd/modules/control-center-web/src/main/js/views/settings/admin.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/settings/admin.jade b/modules/control-center-web/src/main/js/views/settings/admin.jade
index 69a2971..e72eae2 100644
--- a/modules/control-center-web/src/main/js/views/settings/admin.jade
+++ b/modules/control-center-web/src/main/js/views/settings/admin.jade
@@ -32,7 +32,7 @@
                             th(st-sort='email') Email
                             th(st-sort='company') Company
                             th(st-sort='country') Country
-                            th.col-xs-2(st-sort='lastLogin') Last login
+                            th.col-xs-2(st-sort='lastLogin' st-sort-default='reverse') Last login
                             th(width='1%'  st-sort='admin') Admin
                             th(width='1%') Actions
                     tbody


[26/50] ignite git commit: IGNITE-843 Minor changes in comments.

Posted by an...@apache.org.
IGNITE-843 Minor changes in comments.


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

Branch: refs/heads/ignite-843
Commit: c772d332cf4a975b8dc15d7ca48ca7556849ccbe
Parents: f189e84
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Feb 25 17:09:08 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Feb 25 17:09:08 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/app/modules/ace.module.js       | 52 ++++++++++----------
 1 file changed, 26 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c772d332/modules/control-center-web/src/main/js/app/modules/ace.module.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/ace.module.js b/modules/control-center-web/src/main/js/app/modules/ace.module.js
index 35d94e1..475cfa0 100644
--- a/modules/control-center-web/src/main/js/app/modules/ace.module.js
+++ b/modules/control-center-web/src/main/js/app/modules/ace.module.js
@@ -38,23 +38,22 @@ angular
          *   </ul>
          *
          * @param acee
-         * @param session ACE editor session
-         * @param {object} opts Options to be set
+         * @param session ACE editor session.
+         * @param {object} opts Options to be set.
          */
         const setOptions = (acee, session, opts) => {
-            // sets the ace worker path, if running from concatenated
-            // or minified source
+            // Sets the ace worker path, if running from concatenated or minified source.
             if (angular.isDefined(opts.workerPath)) {
                 const config = window.ace.require('ace/config');
 
                 config.set('workerPath', opts.workerPath);
             }
 
-            // ace requires loading
+            // Ace requires loading.
             if (angular.isDefined(opts.require))
                 opts.require.forEach((n) => window.ace.require(n));
 
-            // Boolean options
+            // Boolean options.
             if (angular.isDefined(opts.showGutter))
                 acee.renderer.setShowGutter(opts.showGutter);
 
@@ -73,7 +72,7 @@ angular
             if (angular.isDefined(opts.showPrintMargin))
                 acee.setShowPrintMargin(opts.showPrintMargin);
 
-            // commands
+            // Commands.
             if (angular.isDefined(opts.disableSearch) && opts.disableSearch) {
                 acee.commands.addCommands([{
                     name: 'unfind',
@@ -86,14 +85,13 @@ angular
                 }]);
             }
 
-            // Basic options
+            // Base options.
             if (angular.isString(opts.theme))
                 acee.setTheme('ace/theme/' + opts.theme);
 
             if (angular.isString(opts.mode))
                 session.setMode('ace/mode/' + opts.mode);
 
-            // Advanced options
             if (angular.isDefined(opts.firstLineNumber)) {
                 if (angular.isNumber(opts.firstLineNumber))
                     session.setOption('firstLineNumber', opts.firstLineNumber);
@@ -101,33 +99,33 @@ angular
                     session.setOption('firstLineNumber', opts.firstLineNumber());
             }
 
-            // advanced options
+            // Advanced options.
             if (angular.isDefined(opts.advanced)) {
                 for (const key in opts.advanced) {
                     if (opts.advanced.hasOwnProperty(key)) {
-                        // create a javascript object with the key and value
+                        // Create a javascript object with the key and value.
                         const obj = {name: key, value: opts.advanced[key]};
 
-                        // try to assign the option to the ace editor
+                        // Try to assign the option to the ace editor.
                         acee.setOption(obj.name, obj.value);
                     }
                 }
             }
 
-            // advanced options for the renderer
+            // Advanced options for the renderer.
             if (angular.isDefined(opts.rendererOptions)) {
                 for (const key in opts.rendererOptions) {
                     if (opts.rendererOptions.hasOwnProperty(key)) {
-                        // create a javascript object with the key and value
+                        // Create a javascript object with the key and value.
                         const obj = {name: key, value: opts.rendererOptions[key]};
 
-                        // try to assign the option to the ace editor
+                        // Try to assign the option to the ace editor.
                         acee.renderer.setOption(obj.name, obj.value);
                     }
                 }
             }
 
-            // onLoad callbacks
+            // onLoad callbacks.
             angular.forEach(opts.callbacks, (cb) => {
                 if (angular.isFunction(cb))
                     cb(acee);
@@ -141,24 +139,28 @@ angular
 
                 /**
                  * Corresponds the igniteAceConfig ACE configuration.
+                 *
                  * @type object
                  */
                 const options = aceConfig.ace || {};
 
                 /**
-                 * igniteAceConfig merged with user options via json in attribute or data binding
+                 * IgniteAceConfig merged with user options via json in attribute or data binding.
+                 *
                  * @type object
                  */
                 let opts = angular.extend({}, options, scope.$eval(attrs.igniteAce));
 
                 /**
-                 * ACE editor
+                 * ACE editor.
+                 *
                  * @type object
                  */
                 const acee = window.ace.edit(elm[0]);
 
                 /**
                  * ACE editor session.
+                 *
                  * @type object
                  * @see [EditSession]{@link http://ace.c9.io/#nav=api&api=edit_session}
                  */
@@ -166,18 +168,18 @@ angular
 
                 /**
                  * Reference to a change listener created by the listener factory.
+                 *
                  * @function
                  * @see listenerFactory.onChange
                  */
                 let onChangeListener;
 
                 /**
-                 * Creates a change listener which propagates the change event
-                 * and the editor session to the callback from the user option
-                 * onChange. It might be exchanged during runtime, if this
-                 * happens the old listener will be unbound.
+                 * Creates a change listener which propagates the change event and the editor session
+                 * to the callback from the user option onChange.
+                 * It might be exchanged during runtime, if this happens the old listener will be unbound.
                  *
-                 * @param callback callback function defined in the user options
+                 * @param callback Callback function defined in the user options.
                  * @see onChangeListener
                  */
                 const onChangeFactory = (callback) => {
@@ -196,7 +198,7 @@ angular
                                 if (angular.isFunction(callback))
                                     callback([e, acee]);
                                 else
-                                    throw new Error('ignite-ace use a function as callback.');
+                                    throw new Error('ignite-ace use a function as callback');
                             });
                         }
                     };
@@ -251,14 +253,12 @@ angular
 
                 elm.on('$destroy', () => {
                     acee.session.$stopWorker();
-
                     acee.destroy();
                 });
 
                 scope.$watch(() => [elm[0].offsetWidth, elm[0].offsetHeight],
                     () => {
                         acee.resize();
-
                         acee.renderer.updateFull();
                     }, true);
             }


[44/50] ignite git commit: IGNTIE-2723 fixed java class input - Fixes #532.

Posted by an...@apache.org.
IGNTIE-2723 fixed java class input - Fixes #532.

Signed-off-by: Alexey Kuznetsov <ak...@apache.org>


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

Branch: refs/heads/ignite-843
Commit: 877f4a446abef7e0118f65095767d8855188afc4
Parents: 53804c7
Author: Dmitriyff <dm...@gmail.com>
Authored: Thu Mar 3 16:36:55 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Mar 3 16:36:55 2016 +0700

----------------------------------------------------------------------
 .../form-field-java-class.directive.js          | 46 ++++++++++++++++----
 .../form-field-java-class.jade                  | 38 ++++++++--------
 2 files changed, 58 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/877f4a44/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.directive.js b/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.directive.js
index d0f7254..659030e 100644
--- a/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.directive.js
+++ b/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.directive.js
@@ -18,19 +18,48 @@
 import template from './form-field-java-class.jade!';
 
 export default ['igniteFormFieldJavaClass', ['IgniteFormGUID', (guid) => {
-    const link = (scope, el, attrs, [form, label]) => {
+    const link = (scope, el, attrs, [ngModel, form, label]) => {
         const {id, name} = scope;
-        const field = form[name];
-
-        scope.form = form;
-        scope.field = field;
-        scope.label = label;
 
         label.for = scope.id = id || guid();
 
+        scope.form = form;
+        scope.label = label;
+        scope.ngModel = ngModel;
         scope.$watch('required', (required) => {
             label.required = required || false;
         });
+
+        form.$defaults = form.$defaults || {};
+        form.$defaults[name] = _.cloneDeep(scope.value);
+
+        const setAsDefault = () => {
+            if (!form.$pristine) return;
+
+            form.$defaults = form.$defaults || {};
+            form.$defaults[name] = _.cloneDeep(scope.value);
+        };
+
+        scope.$watch(() => form.$pristine, setAsDefault);
+        scope.$watch('value', setAsDefault);
+
+        scope.ngChange = function() {
+            ngModel.$setViewValue(scope.value);
+
+            if (JSON.stringify(scope.value) !== JSON.stringify(form.$defaults[name]))
+                ngModel.$setDirty();
+            else
+                ngModel.$setPristine();
+
+            if (ngModel.$valid)
+                el.find('input').addClass('ng-valid').removeClass('ng-invalid');
+            else
+                el.find('input').removeClass('ng-valid').addClass('ng-invalid');
+        };
+
+        ngModel.$render = function() {
+            scope.value = ngModel.$modelValue;
+        };
     };
 
     return {
@@ -38,11 +67,10 @@ export default ['igniteFormFieldJavaClass', ['IgniteFormGUID', (guid) => {
         scope: {
             id: '@',
             name: '@',
+            placeholder: '@',
             required: '=ngRequired',
             disabled: '=ngDisabled',
-            unique: '=igniteUnique',
 
-            ngModel: '=',
             ngBlur: '&',
 
             autofocus: '=igniteFormFieldInputAutofocus'
@@ -51,6 +79,6 @@ export default ['igniteFormFieldJavaClass', ['IgniteFormGUID', (guid) => {
         template,
         replace: true,
         transclude: true,
-        require: ['^form', '?^igniteFormField']
+        require: ['ngModel', '^form', '?^igniteFormField']
     };
 }]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/877f4a44/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.jade b/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.jade
index d8e5162..ae75c27 100644
--- a/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.jade
+++ b/modules/control-center-web/src/main/js/app/directives/form-field-java-class/form-field-java-class.jade
@@ -16,38 +16,42 @@
 
 mixin feedback(error, message)
     i.fa.fa-exclamation-triangle.form-control-feedback(
-        ng-if='!form[name].$pristine && form[name].$error.#{error}'
+        ng-if='!form[name+"JavaClass"].$pristine && form[name+"JavaClass"].$error.#{error}'
         bs-tooltip='"{{ label.name }} #{message}"'
         ignite-error='#{error}'
         ignite-error-message='{{ label.name }} #{message}'
     )
 
-div
-    ignite-form-field-input-text(
-        data-id='{{ id }}'
-        data-name='{{ name }}'
-        data-placeholder='Enter fully qualified class name'
+.input-tip
+    input.form-control(
+        id='{{ id }}'
+        name='{{ name }}JavaClass'
+        placeholder='Enter fully qualified class name'
+        type='text'
 
-        data-ng-model='ngModel'
+        data-ng-model='value'
+        data-ng-blur='ngBlur()'
+        data-ng-change='ngChange()'
         data-ng-required='required || false'
         data-ng-disabled='disabled || false'
+        data-ng-model-options='{debounce: 150}'
 
         data-java-keywords='true'
         data-java-identifier='true'
         data-java-package-specified='true'
         data-java-built-in-class='true'
-        
-        data-ignite-unique='unique'
-        data-ignite-form-field-input-autofocus='autofocus || false '
+
+        data-ignite-form-field-input-autofocus='autofocus || false'
 
         on-enter='onEnter()'
         on-escape='onEscape()'
-        data-ng-blur='ngBlur()'
     )
-        span(ng-transclude)
 
-        +feedback('javaPackageSpecified', 'does not have package specified')
-        +feedback('javaBuiltInClass', 'should not be the Java built-in class')
-        +feedback('javaKeywords', 'could not contains reserved Java keyword')
-        +feedback('javaIdentifier', 'is invalid Java identifier')
-        +feedback('required', 'could not be empty')
+    span(ng-transclude='')
+
+    +feedback('javaPackageSpecified', 'does not have package specified')
+    +feedback('javaBuiltInClass', 'should not be the Java built-in class')
+    +feedback('javaKeywords', 'could not contains reserved Java keyword')
+    +feedback('javaIdentifier', 'is invalid Java identifier')
+
+    +feedback('required', 'could not be empty!')


[37/50] ignite git commit: IGNITE-2724 Fixed defaults.

Posted by an...@apache.org.
IGNITE-2724 Fixed defaults.


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

Branch: refs/heads/ignite-843
Commit: 06af6d2310eba672562857c83478f6a54c047c4b
Parents: 440aa00
Author: vsisko <vs...@gridgain.com>
Authored: Tue Mar 1 17:04:44 2016 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Tue Mar 1 17:04:44 2016 +0700

----------------------------------------------------------------------
 .../clusters/general/discovery/zookeeper.jade   |  5 ++-
 .../bounded-exponential-backoff.jade            |  5 +--
 .../discovery/zookeeper/retrypolicy/custom.jade |  2 +-
 .../retrypolicy/exponential-backoff.jade        |  4 +--
 .../zookeeper/retrypolicy/forever.jade          |  1 -
 .../zookeeper/retrypolicy/n-times.jade          |  2 --
 .../zookeeper/retrypolicy/one-time.jade         |  1 -
 .../zookeeper/retrypolicy/until-elapsed.jade    |  2 --
 .../main/js/helpers/generator/generator-java.js | 34 ++++++++++----------
 .../main/js/helpers/generator/generator-xml.js  | 30 ++++++++---------
 10 files changed, 39 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/06af6d23/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
index 709d436..c1d3b0b 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
@@ -22,7 +22,9 @@ div
             ignite-form-field-label
                 | Curator:
             ignite-form-field-tooltip
-                | The Curator framework in use
+                | The Curator framework in use #[br]
+                | By default generates curator of org.apache.curator.framework.imps.CuratorFrameworkImpl.CuratorFrameworkImpl
+                | class with configured connect string, retry policy, and default session and connection timeouts
             ignite-form-field-java-class(
                 data-id='curator'
                 data-name='curator'
@@ -53,6 +55,7 @@ div
                     li Max number of times - retries a max number of times
                     li Only once - retries only once
                     li Always allow retry - retries infinitely
+                    li Default - exponential backoff retry policy with configured base sleep time equal to 1000ms and max retry count equal to 10
                     li Custom - custom retry policy implementation
             ignite-form-field-dropdown(
                 data-id='retryPolicy'

http://git-wip-us.apache.org/repos/asf/ignite/blob/06af6d23/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
index cc4920f..db6a9d6 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
@@ -22,12 +22,11 @@ div
             ignite-form-field-label
                 | Base interval:
             ignite-form-field-tooltip
-                | Initial amount of time to wait between retries
+                | Initial amount of time in ms to wait between retries
             ignite-form-field-input-number(
                 data-id='baseSleepTimeMs'
                 data-name='baseSleepTimeMs'
                 data-ng-model='#{model}.baseSleepTimeMs'
-                data-ng-required='true'
                 data-placeholder='1000'
             )
     .details-row
@@ -41,7 +40,6 @@ div
                 data-name='maxSleepTimeMs'
                 data-ng-model='#{model}.maxSleepTimeMs'
                 data-placeholder='Integer.MAX_VALUE'
-                data-ng-required='true'
             )
     .details-row
         ignite-form-field
@@ -53,7 +51,6 @@ div
                 data-id='maxRetries'
                 data-name='maxRetries'
                 data-ng-model='#{model}.maxRetries'
-                data-ng-required='true'
                 data-placeholder='10'
                 data-max='29'
             )

http://git-wip-us.apache.org/repos/asf/ignite/blob/06af6d23/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade
index e5663a8..337f2f8 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade
@@ -26,5 +26,5 @@
             data-id='className'
             data-name='className'
             data-ng-model='#{model}.className'
-            data-required='true'
+            data-ng-required='true'
         )

http://git-wip-us.apache.org/repos/asf/ignite/blob/06af6d23/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
index b33622b..0e89242 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
@@ -22,12 +22,11 @@ div
             ignite-form-field-label
                 | Base interval:
             ignite-form-field-tooltip
-                | Initial amount of time to wait between retries
+                | Initial amount of time in ms to wait between retries
             ignite-form-field-input-number(
                 data-id='baseSleepTimeMs'
                 data-name='baseSleepTimeMs'
                 data-ng-model='#{model}.baseSleepTimeMs'
-                data-ng-required='true'
                 data-placeholder='1000'
             )
     .details-row
@@ -40,7 +39,6 @@ div
                 data-id='maxRetries'
                 data-name='maxRetries'
                 data-ng-model='#{model}.maxRetries'
-                data-ng-required='true'
                 data-placeholder='10'
                 data-max='29'
             )

http://git-wip-us.apache.org/repos/asf/ignite/blob/06af6d23/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
index cde2869..d14ff21 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
@@ -26,6 +26,5 @@
             data-id='retryIntervalMs'
             data-name='retryIntervalMs'
             data-ng-model='#{model}.retryIntervalMs'
-            data-ng-required='true'
             data-placeholder='1000'
         )

http://git-wip-us.apache.org/repos/asf/ignite/blob/06af6d23/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
index 71a7acc..977a028 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
@@ -28,7 +28,6 @@ div
                 data-name='n'
                 data-ng-model='#{model}.n'
                 data-placeholder='10'
-                data-ng-required='true'
             )
     .details-row
         ignite-form-field
@@ -40,6 +39,5 @@ div
                 data-id='sleepMsBetweenRetries'
                 data-name='sleepMsBetweenRetries'
                 data-ng-model='#{model}.sleepMsBetweenRetries'
-                data-ng-required='true'
                 data-placeholder='1000'
             )

http://git-wip-us.apache.org/repos/asf/ignite/blob/06af6d23/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
index 39c7f13..f102f7e 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
@@ -27,6 +27,5 @@ div
                 data-id='sleepMsBetweenRetry'
                 data-name='sleepMsBetweenRetry'
                 data-ng-model='#{model}.sleepMsBetweenRetry'
-                data-ng-required='true'
                 data-placeholder='1000'
             )

http://git-wip-us.apache.org/repos/asf/ignite/blob/06af6d23/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
index e834d55..b5cadc7 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
@@ -27,7 +27,6 @@ div
                 data-id='maxElapsedTimeMs'
                 data-name='maxElapsedTimeMs'
                 data-ng-model='#{model}.maxElapsedTimeMs'
-                data-ng-required='true'
                 data-placeholder='60000'
             )
     .details-row
@@ -40,6 +39,5 @@ div
                 data-id='sleepMsBetweenRetries'
                 data-name='sleepMsBetweenRetries'
                 data-ng-model='#{model}.sleepMsBetweenRetries'
-                data-ng-required='true'
                 data-placeholder='1000'
             )

http://git-wip-us.apache.org/repos/asf/ignite/blob/06af6d23/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index dfb7a64..4e94d73 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -63,8 +63,8 @@ $generatorJava.setterName = function (propName, setterName) {
 };
 
 // Add constructor argument
-$generatorJava.constructorArg = function (obj, propName, notFirst, opt) {
-    var v = obj ? obj[propName] : undefined;
+$generatorJava.constructorArg = function (obj, propName, dflt, notFirst, opt) {
+    var v = (obj ? obj[propName] : undefined) || dflt;
 
     if ($commonUtils.isDefinedAndNotEmpty(v))
         return (notFirst ? ', ' : '') + $generatorJava.toJavaCode(v);
@@ -555,43 +555,43 @@ $generatorJava.clusterGeneral = function (cluster, clientNearCfg, res) {
                         switch (kind) {
                             case 'ExponentialBackoff':
                                 res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.ExponentialBackoffRetry') + '(' +
-                                    $generatorJava.constructorArg(retryPolicy, 'baseSleepTimeMs') +
-                                    $generatorJava.constructorArg(retryPolicy, 'maxRetries', true) +
-                                    $generatorJava.constructorArg(retryPolicy, 'maxSleepMs', true, true) + '));');
+                                    $generatorJava.constructorArg(retryPolicy, 'baseSleepTimeMs', 1000) +
+                                    $generatorJava.constructorArg(retryPolicy, 'maxRetries', 10, true) +
+                                    $generatorJava.constructorArg(retryPolicy, 'maxSleepMs', undefined, true, true) + '));');
 
                                 break;
 
                             case 'BoundedExponentialBackoff':
                                 res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.BoundedExponentialBackoffRetry') + '(' +
-                                    $generatorJava.constructorArg(retryPolicy, 'baseSleepTimeMs') +
-                                    $generatorJava.constructorArg(retryPolicy, 'maxSleepTimeMs', true) +
-                                    $generatorJava.constructorArg(retryPolicy, 'maxRetries', true) + '));');
+                                    $generatorJava.constructorArg(retryPolicy, 'baseSleepTimeMs', 1000) +
+                                    $generatorJava.constructorArg(retryPolicy, 'maxSleepTimeMs', 2147483647, true) +
+                                    $generatorJava.constructorArg(retryPolicy, 'maxRetries', 10, true) + '));');
 
                                 break;
 
                             case 'UntilElapsed':
                                 res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.RetryUntilElapsed') + '(' +
-                                    $generatorJava.constructorArg(retryPolicy, 'maxElapsedTimeMs') +
-                                    $generatorJava.constructorArg(retryPolicy, 'sleepMsBetweenRetries', true) + '));');
+                                    $generatorJava.constructorArg(retryPolicy, 'maxElapsedTimeMs', 60000) +
+                                    $generatorJava.constructorArg(retryPolicy, 'sleepMsBetweenRetries', 1000, true) + '));');
 
                                 break;
 
                             case 'NTimes':
                                 res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.RetryNTimes') + '(' +
-                                    $generatorJava.constructorArg(retryPolicy, 'n') +
-                                    $generatorJava.constructorArg(retryPolicy, 'sleepMsBetweenRetries', true) + '));');
+                                    $generatorJava.constructorArg(retryPolicy, 'n', 10) +
+                                    $generatorJava.constructorArg(retryPolicy, 'sleepMsBetweenRetries', 1000, true) + '));');
 
                                 break;
 
                             case 'OneTime':
                                 res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.RetryOneTime') + '(' +
-                                    $generatorJava.constructorArg(retryPolicy, 'sleepMsBetweenRetry') + '));');
+                                    $generatorJava.constructorArg(retryPolicy, 'sleepMsBetweenRetry', 1000) + '));');
 
                                 break;
 
                             case 'Forever':
                                 res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.RetryForever') + '(' +
-                                    $generatorJava.constructorArg(retryPolicy, 'retryIntervalMs') + '));');
+                                    $generatorJava.constructorArg(retryPolicy, 'retryIntervalMs', 1000) + '));');
 
                                 break;
 
@@ -2383,9 +2383,9 @@ $generatorJava.igfsSecondFS = function(igfs, varName, res) {
 
         res.line(varName + '.setSecondaryFileSystem(new ' +
             res.importClass('org.apache.ignite.hadoop.fs.IgniteHadoopIgfsSecondaryFileSystem') + '(' +
-                $generatorJava.constructorArg(secondFs, 'uri') +
-                (cfgDefined || nameDefined ? $generatorJava.constructorArg(secondFs, 'cfgPath', true) : '') +
-                $generatorJava.constructorArg(secondFs, 'userName', true, true) +
+                $generatorJava.constructorArg(secondFs, 'uri', undefined) +
+                (cfgDefined || nameDefined ? $generatorJava.constructorArg(secondFs, 'cfgPath', undefined, true) : '') +
+                $generatorJava.constructorArg(secondFs, 'userName', undefined, true, true) +
             '));');
 
         res.needEmptyLine = true;

http://git-wip-us.apache.org/repos/asf/ignite/blob/06af6d23/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
index 0afe190..29c924e 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
@@ -27,8 +27,8 @@ $generatorXml.escape = function (s) {
 };
 
 // Add constructor argument
-$generatorXml.constructorArg = function (res, ix, obj, propName, opt) {
-    var v = obj ? obj[propName] : undefined;
+$generatorXml.constructorArg = function (res, ix, obj, propName, dflt, opt) {
+    var v = (obj ? obj[propName] : undefined) || dflt;
 
     if ($commonUtils.isDefinedAndNotEmpty(v))
         res.line('<constructor-arg ' + (ix >= 0 ? 'index="' + ix + '" ' : '') + 'value="' + v + '"/>');
@@ -401,48 +401,48 @@ $generatorXml.clusterGeneral = function (cluster, res) {
                         switch (kind) {
                             case 'ExponentialBackoff':
                                 res.startBlock('<bean class="org.apache.curator.retry.ExponentialBackoffRetry">');
-                                $generatorXml.constructorArg(res, 0, retryPolicy, 'baseSleepTimeMs');
-                                $generatorXml.constructorArg(res, 1, retryPolicy, 'maxRetries');
-                                $generatorXml.constructorArg(res, 2, retryPolicy, 'maxSleepMs', true);
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'baseSleepTimeMs', 1000);
+                                $generatorXml.constructorArg(res, 1, retryPolicy, 'maxRetries', 10);
+                                $generatorXml.constructorArg(res, 2, retryPolicy, 'maxSleepMs', undefined, true);
                                 res.endBlock('</bean>');
 
                                 break;
 
                             case 'BoundedExponentialBackoff':
                                 res.startBlock('<bean class="org.apache.curator.retry.BoundedExponentialBackoffRetry">');
-                                $generatorXml.constructorArg(res, 0, retryPolicy, 'baseSleepTimeMs');
-                                $generatorXml.constructorArg(res, 1, retryPolicy, 'maxSleepTimeMs');
-                                $generatorXml.constructorArg(res, 2, retryPolicy, 'maxRetries');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'baseSleepTimeMs', 1000);
+                                $generatorXml.constructorArg(res, 1, retryPolicy, 'maxSleepTimeMs', 2147483647);
+                                $generatorXml.constructorArg(res, 2, retryPolicy, 'maxRetries', 10);
                                 res.endBlock('</bean>');
 
                                 break;
 
                             case 'UntilElapsed':
                                 res.startBlock('<bean class="org.apache.curator.retry.RetryUntilElapsed">');
-                                $generatorXml.constructorArg(res, 0, retryPolicy, 'maxElapsedTimeMs');
-                                $generatorXml.constructorArg(res, 1, retryPolicy, 'sleepMsBetweenRetries');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'maxElapsedTimeMs', 60000);
+                                $generatorXml.constructorArg(res, 1, retryPolicy, 'sleepMsBetweenRetries', 1000);
                                 res.endBlock('</bean>');
 
                                 break;
 
                             case 'NTimes':
                                 res.startBlock('<bean class="org.apache.curator.retry.RetryNTimes">');
-                                $generatorXml.constructorArg(res, 0, retryPolicy, 'n');
-                                $generatorXml.constructorArg(res, 1, retryPolicy, 'sleepMsBetweenRetries');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'n', 10);
+                                $generatorXml.constructorArg(res, 1, retryPolicy, 'sleepMsBetweenRetries', 1000);
                                 res.endBlock('</bean>');
 
                                 break;
 
                             case 'OneTime':
                                 res.startBlock('<bean class="org.apache.curator.retry.RetryOneTime">');
-                                $generatorXml.constructorArg(res, 0, retryPolicy, 'sleepMsBetweenRetry');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'sleepMsBetweenRetry', 1000);
                                 res.endBlock('</bean>');
 
                                 break;
 
                             case 'Forever':
                                 res.startBlock('<bean class="org.apache.curator.retry.RetryForever">');
-                                $generatorXml.constructorArg(res, 0, retryPolicy, 'retryIntervalMs');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'retryIntervalMs', 1000);
                                 res.endBlock('</bean>');
 
                                 break;
@@ -1530,7 +1530,7 @@ $generatorXml.igfsSecondFS = function(igfs, res) {
         if (cfgDefined || nameDefined)
             $generatorXml.constructorArg(res, 1, secondFs, 'cfgPath');
 
-        $generatorXml.constructorArg(res, 2, secondFs, 'userName', true);
+        $generatorXml.constructorArg(res, 2, secondFs, 'userName', undefined, true);
 
         res.endBlock('</bean>');
         res.endBlock('</property>');


[32/50] ignite git commit: IGNITE-843 Fix for number inputs when input is pristine.

Posted by an...@apache.org.
IGNITE-843 Fix for number inputs when input is pristine.


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

Branch: refs/heads/ignite-843
Commit: 4555bedfcd687aae00a745069f1bc6d5ba904c07
Parents: 6de273f
Author: vsisko <vs...@gridgain.com>
Authored: Fri Feb 26 13:41:32 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Feb 26 13:41:32 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/app/modules/form/field/input/number.jade           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/4555bedf/modules/control-center-web/src/main/js/app/modules/form/field/input/number.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/form/field/input/number.jade b/modules/control-center-web/src/main/js/app/modules/form/field/input/number.jade
index 920a5eb..4429d30 100644
--- a/modules/control-center-web/src/main/js/app/modules/form/field/input/number.jade
+++ b/modules/control-center-web/src/main/js/app/modules/form/field/input/number.jade
@@ -16,7 +16,7 @@
 
 mixin feedback(error, message)
     i.fa.fa-exclamation-triangle.form-control-feedback(
-        ng-show='field.$error.#{error}'
+        ng-show='!field.$pristine && field.$error.#{error}'
         bs-tooltip='"#{message}"'
         ignite-error='#{error}'
         ignite-error-message='#{message}'


[08/50] ignite git commit: IGNITE-2287 Reworked codegeneration of example code.

Posted by an...@apache.org.
IGNITE-2287 Reworked codegeneration of example code.


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

Branch: refs/heads/ignite-843
Commit: dc5ada545a57a3020395d350dfc0ea0c8cb20332
Parents: 695c217
Author: vsisko <vs...@gridgain.com>
Authored: Fri Feb 19 14:54:48 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Feb 19 14:54:48 2016 +0700

----------------------------------------------------------------------
 .../main/js/helpers/generator/generator-java.js | 199 ++++++++++++++-----
 1 file changed, 148 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/dc5ada54/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index abee0be..57ac1da 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -2561,13 +2561,7 @@ $generatorJava.dataSourceClassName = function (res, storeFactory) {
     return undefined;
 };
 
-var MAX_PARKING_CNT = 5;
-var MAX_CAR_CNT = 10;
-var MAX_COUNTRY_CNT = 5;
-var MAX_DEPARTMENT_CNT = 5;
-var MAX_EMPLOYE_CNT = 10;
-
-// Defined queries for demo data.
+// Descriptors for generation of demo data.
 var PREDEFINED_QUERIES = [
     {
         schema: 'CARS',
@@ -2576,13 +2570,13 @@ var PREDEFINED_QUERIES = [
             'ID       INTEGER     NOT NULL PRIMARY KEY,\n' +
             'NAME     VARCHAR(50) NOT NULL,\n' +
             'CAPACITY INTEGER NOT NULL)',
-        fillQuery: function () {
-            var queries = ['DELETE FROM CARS.PARKING;'];
-
-            for (var id = 0; id < MAX_PARKING_CNT; id++)
-                queries.push('INSERT INTO CARS.PARKING(ID, NAME, CAPACITY) VALUES(' + id + ', \'Parking #' + (id + 1) +  '\', 10);');
-
-            return queries;
+        clearQuery: 'DELETE FROM CARS.PARKING',
+        insertCntConsts: [{name: 'EXAMPLE_MAX_PARKING_CNT', val: 5, comment: 'How many parkings to generate.'}],
+        insertPattern: ['INSERT INTO CARS.PARKING(ID, NAME, CAPACITY) VALUES(?, ?, ?)'],
+        fillInsertParameters: function (res) {
+            res.line('stmt.setInt(1, id);');
+            res.line('stmt.setString(2, "Parking #" + (id + 1));');
+            res.line('stmt.setInt(3, 10 + rnd.nextInt(20));');
         },
         selectQuery: [
             "SELECT * FROM PARKING WHERE CAPACITY >= 20"
@@ -2595,13 +2589,17 @@ var PREDEFINED_QUERIES = [
             'ID         INTEGER NOT NULL PRIMARY KEY,\n' +
             'PARKING_ID INTEGER NOT NULL,\n' +
             'NAME       VARCHAR(50) NOT NULL);',
-        fillQuery: function () {
-            var queries = ['DELETE FROM CARS.CAR;'];
-
-            for (var id = 0; id < MAX_CAR_CNT; id++)
-                queries.push('INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(' + id + ', ' + Math.floor(Math.random() * MAX_PARKING_CNT) + ', \'Car #' + (id + 1) + '\');');
-
-            return queries;
+        clearQuery: 'DELETE FROM CARS.CAR',
+        rndRequired: true,
+        insertCntConsts: [
+            {name: 'EXAMPLE_MAX_CAR_CNT', val: 10, comment: 'How many cars to generate.'},
+            {name: 'EXAMPLE_MAX_PARKING_CNT', val: 5, comment: 'How many parkings to generate.'}
+        ],
+        insertPattern: ['INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(?, ?, ?)'],
+        fillInsertParameters: function (res) {
+            res.line('stmt.setInt(1, id);');
+            res.line('stmt.setInt(2, rnd.nextInt(EXAMPLE_MAX_PARKING_CNT));');
+            res.line('stmt.setString(3, "Car #" + (id + 1));');
         },
         selectQuery: [
             "SELECT * FROM CAR WHERE PARKINGID = 2"
@@ -2613,13 +2611,13 @@ var PREDEFINED_QUERIES = [
             'ID         INTEGER NOT NULL PRIMARY KEY,\n' +
             'NAME       VARCHAR(50),\n' +
             'POPULATION INTEGER NOT NULL);',
-        fillQuery: function () {
-            var queries = ['DELETE FROM COUNTRY;'];
-
-            for (var id = 0; id < MAX_COUNTRY_CNT; id++)
-                queries.push('INSERT INTO COUNTRY(ID, NAME, POPULATION) VALUES(' + id + ', \'Country #' + (id + 1) + '\', ' + ((id + 1) * 10000000) + ');');
-
-            return queries;
+        clearQuery: 'DELETE FROM COUNTRY',
+        insertCntConsts: [{name: 'EXAMPLE_MAX_COUNTRY_CNT', val: 5, comment: 'How many countries to generate.'}],
+        insertPattern: ['INSERT INTO COUNTRY(ID, NAME, POPULATION) VALUES(?, ?, ?)'],
+        fillInsertParameters: function (res) {
+            res.line('stmt.setInt(1, id);');
+            res.line('stmt.setString(2, "Country #" + (id + 1));');
+            res.line('stmt.setInt(3, 10000000 + rnd.nextInt(100000000));');
         },
         selectQuery: [
             "SELECT * FROM COUNTRY WHERE POPULATION BETWEEN 15000000 AND 25000000"
@@ -2631,13 +2629,17 @@ var PREDEFINED_QUERIES = [
             'ID         INTEGER NOT NULL PRIMARY KEY,\n' +
             'COUNTRY_ID INTEGER NOT NULL,\n' +
             'NAME       VARCHAR(50) NOT NULL);',
-        fillQuery: function () {
-            var queries = ['DELETE FROM DEPARTMENT;'];
-
-            for (var id = 0; id < MAX_DEPARTMENT_CNT; id++)
-                queries.push('INSERT INTO DEPARTMENT(ID, COUNTRY_ID, NAME) VALUES(' + id + ', ' + Math.floor(Math.random() * MAX_COUNTRY_CNT) + ', \'Department #' + (id + 1) + '\');');
-
-            return queries;
+        clearQuery: 'DELETE FROM DEPARTMENT',
+        rndRequired: true,
+        insertCntConsts: [
+            {name: 'EXAMPLE_MAX_DEPARTMENT_CNT', val: 5, comment: 'How many departments to generate.'},
+            {name: 'EXAMPLE_MAX_COUNTRY_CNT', val: 5, comment: 'How many countries to generate.'}
+        ],
+        insertPattern: ['INSERT INTO DEPARTMENT(ID, COUNTRY_ID, NAME) VALUES(?, ?, ?)'],
+        fillInsertParameters: function (res) {
+            res.line('stmt.setInt(1, id);');
+            res.line('stmt.setInt(2, rnd.nextInt(EXAMPLE_MAX_COUNTRY_CNT));');
+            res.line('stmt.setString(3, "Department #" + (id + 1));');
         },
         selectQuery: [
             "SELECT * FROM DEPARTMENT"
@@ -2656,23 +2658,62 @@ var PREDEFINED_QUERIES = [
             'HIRE_DATE     DATE        NOT NULL,\n' +
             'JOB           VARCHAR(50) NOT NULL,\n' +
             'SALARY        DOUBLE);',
-        fillQuery: function () {
-            var queries = ['DELETE FROM EMPLOYEE;'];
+        clearQuery: 'DELETE FROM EMPLOYEE',
+        rndRequired: true,
+        insertCntConsts: [
+            {name: 'EXAMPLE_MAX_EMPLOYEE_CNT', val: 10, comment: 'How many employees to generate.'},
+            {name: 'EXAMPLE_MAX_DEPARTMENT_CNT', val: 5, comment: 'How many departments to generate.'}
+        ],
+        specialGeneration: function (res, conVar) {
+            $generatorJava.declareVariableCustom(res, 'stmt', 'java.sql.PreparedStatement', conVar +
+                '.prepareStatement("INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)")');
+
+            res.startBlock('for (int id = 0; id < EXAMPLE_MAX_DEPARTMENT_CNT; id ++) {');
+            res.line('stmt.setInt(1, id);');
+            res.line('stmt.setInt(2, id);');
+            res.line('stmt.setString(3, "First name manager #" + (id + 1));');
+            res.line('stmt.setString(4, "Last name manager#" + (id + 1));');
+            res.line('stmt.setString(5, "Email manager#" + (id + 1));');
+            res.line('stmt.setString(6, "Phone number manager#" + (id + 1));');
+            res.line('stmt.setString(7, "2014-01-01");');
+            res.line('stmt.setString(8, "Job manager #" + (id + 1));');
+            res.line('stmt.setDouble(9, 1000.0 + rnd.nextInt(500));');
 
-            for (var id = 0; id < MAX_DEPARTMENT_CNT; id++)
-                queries.push('INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(' +
-                        id + ', ' + id + ', \'First name manager #' + (id + 1) + '\', \'Last name manager #' + (id + 1) + '\', \'Email manager #' +
-                        (id + 1) + '\', \'Phone number manager #' + (id + 1) + '\', \'2014-01-01\', \'Job manager #' + (id + 1) + '\', ' + (1100 + 50 * id) + ');');
+            res.needEmptyLine = true;
 
-            for (id = 0; id < MAX_EMPLOYE_CNT; id++) {
-                var depId = Math.floor(Math.random() * MAX_DEPARTMENT_CNT);
+            res.line('stmt.executeUpdate();');
 
-                queries.push('INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(' +
-                    (100 + id) + ', ' + depId + ', ' + depId + ', \'First name employee #' + (id + 1) + '\', \'Last name employee #' + (id + 1) + '\', \'Email employee #' +
-                    (id + 1) + '\', \'Phone number employee #' + (id + 1) + '\', \'2014-01-01\', \'Job employee #' + (id + 1) + '\', ' + (600 + 50 * id + 50 * depId) + ');');
-            }
+            res.endBlock('}');
+
+            res.needEmptyLine = true;
+
+            $generatorJava.declareVariableCustom(res, 'stmt', 'java.sql.PreparedStatement', conVar +
+                '.prepareStatement("INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")');
 
-            return queries;
+            res.startBlock('for (int id = 0; id < EXAMPLE_MAX_EMPLOYEE_CNT; id ++) {');
+
+            res.needEmptyLine = true;
+
+            res.line('int depId = rnd.nextInt(EXAMPLE_MAX_DEPARTMENT_CNT);');
+
+            res.line('stmt.setInt(1, EXAMPLE_MAX_DEPARTMENT_CNT + id);');
+            res.line('stmt.setInt(2, depId);');
+            res.line('stmt.setInt(3, depId);');
+            res.line('stmt.setString(4, "First name manager #" + (id + 1));');
+            res.line('stmt.setString(5, "Last name manager#" + (id + 1));');
+            res.line('stmt.setString(6, "Email manager#" + (id + 1));');
+            res.line('stmt.setString(7, "Phone number manager#" + (id + 1));');
+            res.line('stmt.setString(8, "2014-01-01");');
+            res.line('stmt.setString(9, "Job manager #" + (id + 1));');
+            res.line('stmt.setDouble(10, 600.0 + rnd.nextInt(300));');
+
+            res.needEmptyLine = true;
+
+            res.line('stmt.executeUpdate();');
+
+            res.endBlock('}');
+
+            res.needEmptyLine = true;
         },
         selectQuery: [
             "SELECT * FROM EMPLOYEE WHERE MANAGERID IS NOT NULL"
@@ -2765,14 +2806,49 @@ $generatorJava.generateExample = function (cluster, res, factoryCls) {
                 typeByDs[ds].push(type);
         });
 
+        var rndDefined = false;
+
+        var generatedConsts = [];
+
+        _.forEach(typeByDs, function (types) {
+            _.forEach(types, function (type) {
+                _.forEach(type.domains, function (domain) {
+                    var desc = _.find(PREDEFINED_QUERIES, function (desc) {
+                        return domain.valueType.toUpperCase().endsWith(desc.type);
+                    });
+
+                    if (desc) {
+                        if (!rndDefined && desc.rndRequired) {
+                            res.line('/** Random generator for demo data. */');
+                            $generatorJava.declareVariableCustom(res, 'rnd', 'java.util.Random', 'new Random()', 'private static final');
+
+                            rndDefined = true;
+                        }
+
+                        _.forEach(desc.insertCntConsts, function (cnt) {
+                            if (!_.contains(generatedConsts, cnt.name)) {
+                                res.line('/** ' + cnt.comment + ' */');
+                                res.line('private static final int ' + cnt.name + ' = ' + cnt.val + ';');
+                                res.needEmptyLine = true;
+
+                                generatedConsts.push(cnt.name);
+                            }
+                        });
+                    }
+                });
+            });
+        });
+
+        res.needEmptyLine = true;
+
         // Generation of fill database method
-        res.line('/** Fill data for domain model demo example. */');
+        res.line('/** Fill data for Demo example. */');
         res.startBlock('private static void prepareExampleData() throws ' + res.importClass('java.sql.SQLException') + ' {');
 
         _.forEach(typeByDs, function (types, ds) {
             var conVar = ds + 'Con';
 
-            res.startBlock('try (' + res.importClass('java.sql.Connection') + ' ' + conVar + ' = ' + factoryCls + '.DataSources.INSTANCE_' + ds + '.getConnection()) {');
+            res.startBlock('try (' + res.importClass('java.sql.Connection') + ' ' + conVar + ' = ' + res.importClass(factoryCls) + '.DataSources.INSTANCE_' + ds + '.getConnection()) {');
 
             _.forEach(types, function (type) {
                 _.forEach(type.domains, function (domain) {
@@ -2785,7 +2861,28 @@ $generatorJava.generateExample = function (cluster, res, factoryCls) {
                             _prepareStatement(res, conVar, 'CREATE SCHEMA IF NOT EXISTS ' + desc.schema);
 
                         _prepareStatement(res, conVar, desc.create);
-                        _prepareStatement(res, conVar, desc.fillQuery().join('\n'));
+
+                        _prepareStatement(res, conVar, desc.clearQuery);
+
+                        res.needEmptyLine = true;
+
+                        if (!desc.specialGeneration) {
+                            $generatorJava.declareVariableCustom(res, 'stmt', 'java.sql.PreparedStatement', conVar + '.prepareStatement("' + desc.insertPattern + '")');
+
+                            res.startBlock('for (int id = 0; id < ' + desc.insertCntConsts[0].name + '; id ++) {');
+
+                            desc.fillInsertParameters(res);
+
+                            res.needEmptyLine = true;
+
+                            res.line('stmt.executeUpdate();');
+
+                            res.endBlock('}');
+
+                            res.needEmptyLine = true;
+                        }
+                        else
+                            desc.specialGeneration(res, conVar);
 
                         res.line(conVar + '.commit();');
 


[34/50] ignite git commit: IGNITE-843 Fixed speed of very large data (more than 300 domains and caches) + lazy init.

Posted by an...@apache.org.
IGNITE-843 Fixed speed of very large data (more than 300 domains and caches) + lazy init.


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

Branch: refs/heads/ignite-843
Commit: cb1d79dd52bfbc0153781c4d882d9b4aa33105e3
Parents: aaf139b
Author: Dmitriyff <dm...@gmail.com>
Authored: Fri Feb 26 17:30:29 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Feb 26 17:30:29 2016 +0700

----------------------------------------------------------------------
 .../ui-ace-java/ui-ace-java.directive.js        |  4 ++-
 .../ui-ace-xml/ui-ace-xml.directive.js          |  4 ++-
 .../configuration/summary/summary.controller.js | 11 ++++++
 .../main/js/views/configuration/summary.jade    | 38 ++++++--------------
 4 files changed, 27 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/cb1d79dd/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
index 072ac8f..2ba0b15 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
@@ -101,8 +101,10 @@ export default ['igniteUiAceJava', ['GeneratorJava', (generator) => {
             scope.$watch('cfg', (data) => ctrl.data = render(data), true);
         }
 
+        const noDeepWatch = !(typeof attrs.noDeepWatch !== 'undefined');
+
         // Setup watchers.
-        scope.$watch('cluster', (data) => ctrl.data = render(data), true);
+        scope.$watch('cluster', (data) => ctrl.data = render(data), noDeepWatch);
     };
 
     return {

http://git-wip-us.apache.org/repos/asf/ignite/blob/cb1d79dd/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
index 6b6e1df..e421135 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
@@ -101,8 +101,10 @@ export default ['igniteUiAceXml', ['GeneratorXml', (generator) => {
             scope.$watch('cfg', (data) => ctrl.data = render(data), true);
         }
 
+        const noDeepWatch = !(typeof attrs.noDeepWatch !== 'undefined');
+
         // Setup watchers.
-        scope.$watch('cluster', (data) => ctrl.data = render(data), true);
+        scope.$watch('cluster', (data) => ctrl.data = render(data), noDeepWatch);
     };
 
     return {

http://git-wip-us.apache.org/repos/asf/ignite/blob/cb1d79dd/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
index 48d7b83..068a03c 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
@@ -15,6 +15,7 @@
  * limitations under the License.
  */
 
+import _ from 'lodash';
 import JSZip from 'jszip';
 
 export default [
@@ -26,6 +27,14 @@ export default [
 
         Resource.read().then(({clusters}) => {
             $scope.clusters = clusters;
+            $scope.clustersMap = {};
+            $scope.clustersView = _.map(clusters, (item) => {
+                const { _id, name } = item;
+
+                $scope.clustersMap[_id] = item;
+
+                return { _id, name };
+            });
 
             $loading.finish('loading');
 
@@ -186,6 +195,8 @@ export default [
             if (!cluster)
                 return;
 
+            cluster = $scope.clustersMap[cluster._id];
+
             ctrl.cluster = cluster;
 
             $scope.cluster = cluster;

http://git-wip-us.apache.org/repos/asf/ignite/blob/cb1d79dd/modules/control-center-web/src/main/js/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/summary.jade b/modules/control-center-web/src/main/js/views/configuration/summary.jade
index 176c483..538f7d9 100644
--- a/modules/control-center-web/src/main/js/views/configuration/summary.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/summary.jade
@@ -33,26 +33,8 @@ mixin ignite-form-field-tooltip(message)
             | You have no clusters configured. Please configure them #[a(ui-sref='base.configuration.clusters') here].
 
         div(ng-show='clusters && clusters.length > 0')
-            .padding-bottom-dflt
-                table.links
-                    thead
-                        tr
-                            th
-                                lable.labelHeader.labelFormField clusters:
-                                .col-sm-3.pull-right(style='padding: 0')
-                                    input.form-control(type='text' ng-model='clusterName' placeholder='Filter clusters...' value='')
-                    tbody
-                        tr
-                            td
-                                .scrollable-y(ng-show='(clusters | byName:clusterName).length > 0' style='max-height: 200px')
-                                    table
-                                        tbody
-                                            tr(ng-repeat='row in (clusters | byName:clusterName) track by row._id' ignite-bs-affix-update)
-                                                td
-                                                    a(ng-class='{active: row._id == selectedItem._id}' on-click-focus='clusterName' ng-click='selectItem(row)') {{$index + 1}}) {{row.name}}
-                                label.placeholder(ng-show='(clusters | byName:clusterName).length == 0') No clusters found
-
-            div(ng-show='selectedItem && (clusters | byName:clusterName).length')
+            +main-table('clusters', 'clustersView', 'clusterName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}', 'name')
+            div(ng-show='selectedItem && tableVisibleRow(displayedRows, selectedItem)')
                 .padding-top-dflt(bs-affix)
                     button.btn.btn-primary(id='download' ng-click='downloadConfiguration()' bs-tooltip='' data-title='Download project' data-placement='bottom') Download project
                     .btn.btn-primary(bs-tooltip='' data-title='Preview generated project structure' data-placement='bottom')
@@ -72,13 +54,13 @@ mixin ignite-form-field-tooltip(message)
                             ignite-ui-ace-tabs.summary-tabs
                                 div(bs-tabs data-bs-active-pane="tabsServer.activeTab" template='configuration/summary-tabs.html')
                                     div(bs-pane title='XML')
-                                        ignite-ui-ace-xml(ng-if='tabsServer.activeTab == 0 || tabsServer.init[0]' ng-init='tabsServer.init[0] = true' data-cluster='cluster')
+                                        ignite-ui-ace-xml(ng-if='tabsServer.activeTab == 0 || tabsServer.init[0]' ng-init='tabsServer.init[0] = true' data-cluster='cluster' data-no-deep-watch)
                                     div(bs-pane title='Java')
-                                        ignite-ui-ace-java(ng-if='tabsServer.activeTab == 1 || tabsServer.init[1]' ng-init='tabsServer.init[1] = true' data-cluster='cluster')
+                                        ignite-ui-ace-java(ng-if='tabsServer.activeTab == 1 || tabsServer.init[1]' ng-init='tabsServer.init[1] = true' data-cluster='cluster' data-no-deep-watch)
                                     div(bs-pane title='POM')
-                                        ignite-ui-ace-pom(ng-if='tabsServer.activeTab == 2 || tabsServer.init[2]' ng-init='tabsServer.init[2] = true' data-cluster='cluster')
+                                        ignite-ui-ace-pom(ng-if='tabsServer.activeTab == 2 || tabsServer.init[2]' ng-init='tabsServer.init[2] = true' data-cluster='cluster' data-no-deep-watch)
                                     div(bs-pane title='Dockerfile')
-                                        ignite-ui-ace-docker(ng-if='tabsServer.activeTab == 3 || tabsServer.init[3]' ng-init='tabsServer.init[3] = true' data-cluster='cluster' ng-model='ctrl.data.docker')
+                                        ignite-ui-ace-docker(ng-if='tabsServer.activeTab == 3 || tabsServer.init[3]' ng-init='tabsServer.init[3] = true' data-cluster='cluster'  data-no-deep-watch ng-model='ctrl.data.docker')
 
                     .panel.panel-default
                         .panel-heading(role='tab' bs-collapse-toggle)
@@ -152,10 +134,10 @@ mixin ignite-form-field-tooltip(message)
                             .summary-tabs(ignite-ui-ace-tabs)
                                 div(bs-tabs data-bs-active-pane="tabsClient.activeTab" template='configuration/summary-tabs.html')
                                     div(bs-pane title='XML')
-                                        ignite-ui-ace-xml(ng-if='tabsClient.activeTab == 0 || tabsClient.init[0]' ng-init='tabsClient.init[0] = true' data-cluster='cluster' data-cluster-cfg='#{nearCfg}')
+                                        ignite-ui-ace-xml(ng-if='tabsClient.activeTab == 0 || tabsClient.init[0]' ng-init='tabsClient.init[0] = true' data-cluster='cluster' data-no-deep-watch data-cluster-cfg='#{nearCfg}')
                                     div(bs-pane title='Java')
-                                        ignite-ui-ace-java(ng-if='tabsClient.activeTab == 1 || tabsClient.init[1]' ng-init='tabsClient.init[1] = true' data-cluster='cluster' data-cluster-cfg='#{nearCfg}')
+                                        ignite-ui-ace-java(ng-if='tabsClient.activeTab == 1 || tabsClient.init[1]' ng-init='tabsClient.init[1] = true' data-cluster='cluster' data-no-deep-watch data-cluster-cfg='#{nearCfg}')
                                     div(bs-pane title='POM')
-                                        ignite-ui-ace-pom(ng-if='tabsClient.activeTab == 2 || tabsClient.init[2]' ng-init='tabsClient.init[2] = true' data-cluster='cluster')
+                                        ignite-ui-ace-pom(ng-if='tabsClient.activeTab == 2 || tabsClient.init[2]' ng-init='tabsClient.init[2] = true' data-cluster='cluster' data-no-deep-watch)
                                     div(bs-pane title='POJO' ng-if='cluster | hasPojo')
-                                        ignite-ui-ace-pojos(ng-if='tabsClient.activeTab == 3 || tabsClient.init[3]' ng-init='tabsClient.init[3] = true' data-cluster='cluster' ng-model='ctrl.data.pojos')
+                                        ignite-ui-ace-pojos(ng-if='tabsClient.activeTab == 3 || tabsClient.init[3]' ng-init='tabsClient.init[3] = true' data-cluster='cluster' data-no-deep-watch ng-model='ctrl.data.pojos')


[35/50] ignite git commit: IGNITE-2713 Added resource folder to project structure.

Posted by an...@apache.org.
IGNITE-2713 Added resource folder to project structure.


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

Branch: refs/heads/ignite-843
Commit: f045f5386f9dc873a67cf8587921172a78c55b85
Parents: cb1d79d
Author: vsisko <vs...@gridgain.com>
Authored: Mon Feb 29 12:04:30 2016 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Mon Feb 29 12:04:30 2016 +0700

----------------------------------------------------------------------
 .../configuration/summary/summary.controller.js | 26 ++++++++++++++------
 1 file changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f045f538/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
index 068a03c..d4e3e98 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
@@ -90,6 +90,14 @@ export default [
             ]
         };
 
+        const resourcesFolder = {
+            type: 'folder',
+            name: 'resources',
+            children: [
+                { type: 'file', name: 'secret.properties' }
+            ]
+        };
+
         const javaFolder = {
             type: 'folder',
             name: 'java',
@@ -109,6 +117,12 @@ export default [
 
         const srvCfg = { type: 'file', name: 'server.xml' };
 
+        const mainFolder = {
+            type: 'folder',
+            name: 'main',
+            children: [javaFolder]
+        };
+
         const projectStructureRoot = {
             type: 'folder',
             name: 'project.zip',
@@ -128,13 +142,7 @@ export default [
                 {
                     type: 'folder',
                     name: 'src',
-                    children: [
-                        {
-                            type: 'folder',
-                            name: 'main',
-                            children: [javaFolder]
-                        }
-                    ]
+                    children: [mainFolder]
                 },
                 { type: 'file', name: '.dockerignore' },
                 { type: 'file', name: 'Dockerfile' },
@@ -205,8 +213,12 @@ export default [
 
             sessionStorage.summarySelectedId = $scope.clusters.indexOf(cluster);
 
+            mainFolder.children = [javaFolder];
             javaFolder.children = [javaConfigFolder, javaStartupFolder];
 
+            if ($generatorCommon.secretPropertiesNeeded(cluster))
+                mainFolder.children.push(resourcesFolder);
+
             if ($generatorCommon.dataForExampleConfigured(cluster))
                 javaFolder.children.push(exampleFolder);
 


[41/50] ignite git commit: IGNITE-843 Minor fix.

Posted by an...@apache.org.
IGNITE-843 Minor fix.


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

Branch: refs/heads/ignite-843
Commit: 38ff57b6256a24b353452700d068894f1f7dcddc
Parents: 91698c2
Author: Andrey <an...@gridgain.com>
Authored: Thu Mar 3 13:36:26 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Mar 3 13:36:26 2016 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/views/index.jade | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/38ff57b6/modules/control-center-web/src/main/js/views/index.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/index.jade b/modules/control-center-web/src/main/js/views/index.jade
index eebfd89..2d1c339 100644
--- a/modules/control-center-web/src/main/js/views/index.jade
+++ b/modules/control-center-web/src/main/js/views/index.jade
@@ -19,7 +19,9 @@ html(ng-app='ignite-web-console' id='app')
     head
         base(href='/')
         link(rel='shortcut icon' href='favicon.ico')
+
         meta(http-equiv='content-type' content='text/html; charset=UTF8')
+        meta(http-equiv='content-language' content='en')
 
         title(ng-bind='$meta.title')
 


[25/50] ignite git commit: IGNITE-2711 Fixed insert in editor.

Posted by an...@apache.org.
IGNITE-2711 Fixed insert in editor.


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

Branch: refs/heads/ignite-843
Commit: f189e84b46f406907d6f6ecdaa4e0e00b2763f48
Parents: 23b94aa
Author: Andrey <an...@gridgain.com>
Authored: Thu Feb 25 14:48:33 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Feb 25 14:48:33 2016 +0700

----------------------------------------------------------------------
 .../app/directives/bs-affix-update.directive.js |  34 +++
 .../bs-affix-update.directive.js                |  34 ---
 .../ui-ace-docker/ui-ace-docker.directive.js    |  12 +-
 .../directives/ui-ace-docker/ui-ace-docker.jade |   2 +-
 .../ui-ace-java/ui-ace-java.directive.js        |  12 +-
 .../app/directives/ui-ace-java/ui-ace-java.jade |   2 +-
 .../ui-ace-pojos/ui-ace-pojos.directive.js      |  12 +-
 .../directives/ui-ace-pojos/ui-ace-pojos.jade   |   2 +-
 .../ui-ace-pom/ui-ace-pom.directive.js          |  12 +-
 .../app/directives/ui-ace-pom/ui-ace-pom.jade   |   2 +-
 .../js/app/directives/ui-ace-tabs.directive.js  |  25 ++
 .../ui-ace-xml/ui-ace-xml.directive.js          |  12 +-
 .../app/directives/ui-ace-xml/ui-ace-xml.jade   |   2 +-
 .../app/directives/ui-ace/ui-ace.directive.js   |  25 --
 .../control-center-web/src/main/js/app/index.js |   9 +-
 .../src/main/js/app/modules/ace.module.js       | 266 +++++++++++++++++++
 .../states/configuration/clusters/atomic.jade   |   2 +-
 .../states/configuration/clusters/binary.jade   |   2 +-
 .../configuration/clusters/communication.jade   |   2 +-
 .../configuration/clusters/connector.jade       |   2 +-
 .../configuration/clusters/deployment.jade      |   2 +-
 .../configuration/clusters/discovery.jade       |   2 +-
 .../states/configuration/clusters/events.jade   |   2 +-
 .../states/configuration/clusters/general.jade  |   2 +-
 .../states/configuration/clusters/igfs.jade     |   2 +-
 .../configuration/clusters/marshaller.jade      |   2 +-
 .../states/configuration/clusters/metrics.jade  |   2 +-
 .../clusters/preview-panel.directive.js         |  12 +-
 .../states/configuration/clusters/ssl.jade      |   2 +-
 .../states/configuration/clusters/swap.jade     |   2 +-
 .../states/configuration/clusters/thread.jade   |   2 +-
 .../states/configuration/clusters/time.jade     |   2 +-
 .../configuration/clusters/transactions.jade    |   4 +-
 .../summary/summary-tabs.directive.js           |  10 +-
 .../control-center-web/src/main/js/config.js    |  12 +-
 .../src/main/js/controllers/common-module.js    |   2 +-
 .../src/main/js/controllers/sql-controller.js   |   6 -
 .../control-center-web/src/main/js/package.json |   6 -
 .../main/js/views/configuration/summary.jade    |   4 +-
 .../src/main/js/views/sql/sql.jade              |   2 +-
 40 files changed, 403 insertions(+), 148 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/bs-affix-update.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/bs-affix-update.directive.js b/modules/control-center-web/src/main/js/app/directives/bs-affix-update.directive.js
new file mode 100644
index 0000000..dbf78e5
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/bs-affix-update.directive.js
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, aither express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+
+export default ['igniteBsAffixUpdate', ['$window', '$timeout', ($window, $timeout) => {
+    let update = null;
+
+    const link = ({$last}) => {
+        if ($last) {
+            update && $timeout.cancel(update);
+            update = $timeout(() => angular.element($window).triggerHandler('resize'), 1000);
+        }
+    };
+
+    return {
+        restrict: 'A',
+        link
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js b/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js
deleted file mode 100644
index dbf78e5..0000000
--- a/modules/control-center-web/src/main/js/app/directives/bs-affix-update/bs-affix-update.directive.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, aither express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import angular from 'angular';
-
-export default ['igniteBsAffixUpdate', ['$window', '$timeout', ($window, $timeout) => {
-    let update = null;
-
-    const link = ({$last}) => {
-        if ($last) {
-            update && $timeout.cancel(update);
-            update = $timeout(() => angular.element($window).triggerHandler('resize'), 1000);
-        }
-    };
-
-    return {
-        restrict: 'A',
-        link
-    };
-}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.directive.js
index 2698e14..47a52df 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.directive.js
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.directive.js
@@ -19,12 +19,12 @@ import template from './ui-ace-docker.jade!';
 import controller from './ui-ace-docker.controller';
 
 export default ['igniteUiAceDocker', [() => {
-    const link = ($scope, $el, $attrs, [igniteUiAce]) => {
-        if (igniteUiAce.onLoad)
-            $scope.onLoad = igniteUiAce.onLoad;
+    const link = ($scope, $el, $attrs, [igniteUiAceTabs]) => {
+        if (igniteUiAceTabs.onLoad)
+            $scope.onLoad = igniteUiAceTabs.onLoad;
 
-        if (igniteUiAce.onChange)
-            $scope.onChange = igniteUiAce.onChange;
+        if (igniteUiAceTabs.onChange)
+            $scope.onChange = igniteUiAceTabs.onChange;
     };
 
     return {
@@ -41,6 +41,6 @@ export default ['igniteUiAceDocker', [() => {
         template,
         controller,
         controllerAs: 'ctrl',
-        require: ['?^igniteUiAce']
+        require: ['?^igniteUiAceTabs']
     };
 }]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.jade b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.jade
index 88ca37d..f634aed 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.jade
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-docker/ui-ace-docker.jade
@@ -28,4 +28,4 @@ div
             | . For more information about using Ignite with Docker please read&nbsp;
             +hard-link('http://apacheignite.readme.io/docs/docker-deployment', 'documentation')
             |.
-    div(ng-if='ctrl.data' ui-ace='{onLoad: onLoad, mode: "dockerfile"}' ng-model='ctrl.data')
+    div(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, mode: "dockerfile"}' ng-model='ctrl.data')

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
index 04d1810..072ac8f 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.directive.js
@@ -19,20 +19,20 @@ import template from './ui-ace-java.jade!';
 import controller from './ui-ace-java.controller';
 
 export default ['igniteUiAceJava', ['GeneratorJava', (generator) => {
-    const link = (scope, $el, attrs, [ctrl, igniteUiAce, formCtrl, ngModelCtrl]) => {
+    const link = (scope, $el, attrs, [ctrl, igniteUiAceTabs, formCtrl, ngModelCtrl]) => {
         if (formCtrl && ngModelCtrl)
             formCtrl.$removeControl(ngModelCtrl);
 
-        if (igniteUiAce && igniteUiAce.onLoad) {
+        if (igniteUiAceTabs && igniteUiAceTabs.onLoad) {
             scope.onLoad = (editor) => {
-                igniteUiAce.onLoad(editor);
+                igniteUiAceTabs.onLoad(editor);
 
                 scope.$watch('cluster', () => editor.attractAttention = false);
             };
         }
 
-        if (igniteUiAce && igniteUiAce.onChange)
-            scope.onChange = igniteUiAce.onChange;
+        if (igniteUiAceTabs && igniteUiAceTabs.onChange)
+            scope.onChange = igniteUiAceTabs.onChange;
 
         const render = (data) => {
             delete ctrl.data;
@@ -123,6 +123,6 @@ export default ['igniteUiAceJava', ['GeneratorJava', (generator) => {
         template,
         controller,
         controllerAs: 'ctrl',
-        require: ['igniteUiAceJava', '?^igniteUiAce', '?^form', '?ngModel']
+        require: ['igniteUiAceJava', '?^igniteUiAceTabs', '?^form', '?ngModel']
     };
 }]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.jade b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.jade
index 6c027c8..5acffb8 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.jade
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-java/ui-ace-java.jade
@@ -15,7 +15,7 @@
     limitations under the License.
 
 div(ng-if='ctrl.data' 
-    ui-ace='{onLoad: onLoad, \
+    ignite-ace='{onLoad: onLoad, \
              onChange: onChange, \
              renderOptions: renderOptions, \
              mode: "java"}' 

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
index 9d437f0..6222dc0 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
@@ -19,12 +19,12 @@ import template from './ui-ace-pojos.jade!';
 import controller from './ui-ace-pojos.controller';
 
 export default ['igniteUiAcePojos', [() => {
-    const link = ($scope, $el, $attrs, [igniteUiAce]) => {
-        if (igniteUiAce.onLoad)
-            $scope.onLoad = igniteUiAce.onLoad;
+    const link = ($scope, $el, $attrs, [igniteUiAceTabs]) => {
+        if (igniteUiAceTabs.onLoad)
+            $scope.onLoad = igniteUiAceTabs.onLoad;
 
-        if (igniteUiAce.onChange)
-            $scope.onChange = igniteUiAce.onChange;
+        if (igniteUiAceTabs.onChange)
+            $scope.onChange = igniteUiAceTabs.onChange;
     };
 
     return {
@@ -41,6 +41,6 @@ export default ['igniteUiAcePojos', [() => {
         template,
         controller,
         controllerAs: 'ctrl',
-        require: ['?^igniteUiAce']
+        require: ['?^igniteUiAceTabs']
     };
 }]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.jade b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.jade
index f2f48b6..3e82f12 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.jade
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pojos/ui-ace-pojos.jade
@@ -37,4 +37,4 @@ div
                 input(type='checkbox' ng-model='ctrl.includeKeyFields')
                 | Include key fields
             +check-tooltip("Generate key fields in POJO value class")
-    div(ng-if='ctrl.data' ui-ace='{onLoad: onLoad, mode: "java"}' ng-model='ctrl.data')
+    div(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, mode: "java"}' ng-model='ctrl.data')

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.directive.js
index 7aa75ba..3d68ba9 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.directive.js
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.directive.js
@@ -19,12 +19,12 @@ import template from './ui-ace-pom.jade!';
 import controller from './ui-ace-pom.controller';
 
 export default ['igniteUiAcePom', [() => {
-    const link = ($scope, $el, $attrs, [igniteUiAce]) => {
-        if (igniteUiAce.onLoad)
-            $scope.onLoad = igniteUiAce.onLoad;
+    const link = ($scope, $el, $attrs, [igniteUiAceTabs]) => {
+        if (igniteUiAceTabs.onLoad)
+            $scope.onLoad = igniteUiAceTabs.onLoad;
 
-        if (igniteUiAce.onChange)
-            $scope.onChange = igniteUiAce.onChange;
+        if (igniteUiAceTabs.onChange)
+            $scope.onChange = igniteUiAceTabs.onChange;
     };
 
     return {
@@ -36,6 +36,6 @@ export default ['igniteUiAcePom', [() => {
         template,
         controller,
         controllerAs: 'ctrl',
-        require: ['?^igniteUiAce']
+        require: ['?^igniteUiAceTabs']
     };
 }]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.jade b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.jade
index 8e263ab..b973a74 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.jade
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-pom/ui-ace-pom.jade
@@ -14,4 +14,4 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-div(ng-if='ctrl.data' ui-ace='{onLoad: onLoad, mode: "xml"}' ng-model='ctrl.data')
+div(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, mode: "xml"}' ng-model='ctrl.data')

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-tabs.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-tabs.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-tabs.directive.js
new file mode 100644
index 0000000..dd13d83
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-tabs.directive.js
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default ['igniteUiAceTabs', [() => {
+    const controller = () => {};
+
+    return {
+        restrict: 'AE',
+        controller
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
index c6c7879..6b6e1df 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.directive.js
@@ -19,20 +19,20 @@ import template from './ui-ace-xml.jade!';
 import controller from './ui-ace-xml.controller';
 
 export default ['igniteUiAceXml', ['GeneratorXml', (generator) => {
-    const link = (scope, $el, attrs, [ctrl, igniteUiAce, formCtrl, ngModelCtrl]) => {
+    const link = (scope, $el, attrs, [ctrl, igniteUiAceTabs, formCtrl, ngModelCtrl]) => {
         if (formCtrl && ngModelCtrl)
             formCtrl.$removeControl(ngModelCtrl);
 
-        if (igniteUiAce && igniteUiAce.onLoad) {
+        if (igniteUiAceTabs && igniteUiAceTabs.onLoad) {
             scope.onLoad = (editor) => {
-                igniteUiAce.onLoad(editor);
+                igniteUiAceTabs.onLoad(editor);
 
                 scope.$watch('cluster', () => editor.attractAttention = false);
             };
         }
 
-        if (igniteUiAce && igniteUiAce.onChange)
-            scope.onChange = igniteUiAce.onChange;
+        if (igniteUiAceTabs && igniteUiAceTabs.onChange)
+            scope.onChange = igniteUiAceTabs.onChange;
 
         const render = (data) => {
             delete ctrl.data;
@@ -122,6 +122,6 @@ export default ['igniteUiAceXml', ['GeneratorXml', (generator) => {
         template,
         controller,
         controllerAs: 'ctrl',
-        require: ['igniteUiAceXml', '?^igniteUiAce', '?^form', '?ngModel']
+        require: ['igniteUiAceXml', '?^igniteUiAceTabs', '?^form', '?ngModel']
     };
 }]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.jade b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.jade
index 585cbdd..0dd627a 100644
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.jade
+++ b/modules/control-center-web/src/main/js/app/directives/ui-ace-xml/ui-ace-xml.jade
@@ -14,4 +14,4 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-div(ng-if='ctrl.data' ui-ace='{onLoad: onLoad, onChange: onChange, mode: "xml"}' ng-model='ctrl.data')
+div(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, onChange: onChange, mode: "xml"}' ng-model='ctrl.data')

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/directives/ui-ace/ui-ace.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/directives/ui-ace/ui-ace.directive.js b/modules/control-center-web/src/main/js/app/directives/ui-ace/ui-ace.directive.js
deleted file mode 100644
index 4873b94..0000000
--- a/modules/control-center-web/src/main/js/app/directives/ui-ace/ui-ace.directive.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default ['igniteUiAce', [() => {
-    const controller = () => {};
-
-    return {
-        restrict: 'AE',
-        controller
-    };
-}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/index.js b/modules/control-center-web/src/main/js/app/index.js
index fca3027..eb76256 100644
--- a/modules/control-center-web/src/main/js/app/index.js
+++ b/modules/control-center-web/src/main/js/app/index.js
@@ -38,7 +38,6 @@ import 'angular-drag-and-drop-lists';
 import 'angular-nvd3';
 import 'angular-retina';
 import 'angular-strap';
-import 'angular-ui-ace';
 import 'angular-tree-control';
 import 'angular-smart-table';
 
@@ -78,19 +77,20 @@ import './modules/configuration/configuration.module';
 import './modules/getting-started/GettingStarted.provider';
 import './modules/dialog/dialog.module';
 import './modules/Version/Version.provider';
+import './modules/ace.module';
 // endignite
 
 // Directives.
 import igniteLoading from './directives/loading/loading.directive';
 import igniteInformation from './directives/information/information.directive';
-import igniteUiAce from './directives/ui-ace/ui-ace.directive';
+import igniteUiAceTabs from './directives/ui-ace-tabs.directive';
 import igniteUiAceXml from './directives/ui-ace-xml/ui-ace-xml.directive';
 import igniteUiAceJava from './directives/ui-ace-java/ui-ace-java.directive';
 import igniteUiAcePom from './directives/ui-ace-pom/ui-ace-pom.directive';
 import igniteUiAceDocker from './directives/ui-ace-docker/ui-ace-docker.directive';
 import igniteUiAcePojos from './directives/ui-ace-pojos/ui-ace-pojos.directive';
 import igniteFormFieldJavaClass from './directives/form-field-java-class/form-field-java-class.directive';
-import igniteBsAffixUpdate from './directives/bs-affix-update/bs-affix-update.directive';
+import igniteBsAffixUpdate from './directives/bs-affix-update.directive';
 
 // Services.
 import cleanup from './services/cleanup/cleanup.service';
@@ -114,6 +114,7 @@ angular
     'ignite-console.Form',
     'ignite-console.JavaTypes',
     'ignite-console.QueryNotebooks',
+    'ignite-console.ace',
     // States.
     'ignite-console.states.login',
     'ignite-console.states.logout',
@@ -132,7 +133,7 @@ angular
 // Directives.
 .directive(...igniteLoading)
 .directive(...igniteInformation)
-.directive(...igniteUiAce)
+.directive(...igniteUiAceTabs)
 .directive(...igniteUiAceXml)
 .directive(...igniteUiAceJava)
 .directive(...igniteUiAcePom)

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/ace.module.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/ace.module.js b/modules/control-center-web/src/main/js/app/modules/ace.module.js
new file mode 100644
index 0000000..35d94e1
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/ace.module.js
@@ -0,0 +1,266 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+
+angular
+    .module('ignite-console.ace', [])
+    .constant('igniteAceConfig', {})
+    .directive('igniteAce', ['igniteAceConfig', (aceConfig) => {
+        if (angular.isUndefined(window.ace))
+            throw new Error('ignite-ace need ace to work... (o rly?)');
+
+        /**
+         * Sets editor options such as the wrapping mode or the syntax checker.
+         *
+         * The supported options are:
+         *
+         *   <ul>
+         *     <li>showGutter</li>
+         *     <li>useWrapMode</li>
+         *     <li>onLoad</li>
+         *     <li>theme</li>
+         *     <li>mode</li>
+         *   </ul>
+         *
+         * @param acee
+         * @param session ACE editor session
+         * @param {object} opts Options to be set
+         */
+        const setOptions = (acee, session, opts) => {
+            // sets the ace worker path, if running from concatenated
+            // or minified source
+            if (angular.isDefined(opts.workerPath)) {
+                const config = window.ace.require('ace/config');
+
+                config.set('workerPath', opts.workerPath);
+            }
+
+            // ace requires loading
+            if (angular.isDefined(opts.require))
+                opts.require.forEach((n) => window.ace.require(n));
+
+            // Boolean options
+            if (angular.isDefined(opts.showGutter))
+                acee.renderer.setShowGutter(opts.showGutter);
+
+            if (angular.isDefined(opts.useWrapMode))
+                session.setUseWrapMode(opts.useWrapMode);
+
+            if (angular.isDefined(opts.showInvisibles))
+                acee.renderer.setShowInvisibles(opts.showInvisibles);
+
+            if (angular.isDefined(opts.showIndentGuides))
+                acee.renderer.setDisplayIndentGuides(opts.showIndentGuides);
+
+            if (angular.isDefined(opts.useSoftTabs))
+                session.setUseSoftTabs(opts.useSoftTabs);
+
+            if (angular.isDefined(opts.showPrintMargin))
+                acee.setShowPrintMargin(opts.showPrintMargin);
+
+            // commands
+            if (angular.isDefined(opts.disableSearch) && opts.disableSearch) {
+                acee.commands.addCommands([{
+                    name: 'unfind',
+                    bindKey: {
+                        win: 'Ctrl-F',
+                        mac: 'Command-F'
+                    },
+                    exec: () => false,
+                    readOnly: true
+                }]);
+            }
+
+            // Basic options
+            if (angular.isString(opts.theme))
+                acee.setTheme('ace/theme/' + opts.theme);
+
+            if (angular.isString(opts.mode))
+                session.setMode('ace/mode/' + opts.mode);
+
+            // Advanced options
+            if (angular.isDefined(opts.firstLineNumber)) {
+                if (angular.isNumber(opts.firstLineNumber))
+                    session.setOption('firstLineNumber', opts.firstLineNumber);
+                else if (angular.isFunction(opts.firstLineNumber))
+                    session.setOption('firstLineNumber', opts.firstLineNumber());
+            }
+
+            // advanced options
+            if (angular.isDefined(opts.advanced)) {
+                for (const key in opts.advanced) {
+                    if (opts.advanced.hasOwnProperty(key)) {
+                        // create a javascript object with the key and value
+                        const obj = {name: key, value: opts.advanced[key]};
+
+                        // try to assign the option to the ace editor
+                        acee.setOption(obj.name, obj.value);
+                    }
+                }
+            }
+
+            // advanced options for the renderer
+            if (angular.isDefined(opts.rendererOptions)) {
+                for (const key in opts.rendererOptions) {
+                    if (opts.rendererOptions.hasOwnProperty(key)) {
+                        // create a javascript object with the key and value
+                        const obj = {name: key, value: opts.rendererOptions[key]};
+
+                        // try to assign the option to the ace editor
+                        acee.renderer.setOption(obj.name, obj.value);
+                    }
+                }
+            }
+
+            // onLoad callbacks
+            angular.forEach(opts.callbacks, (cb) => {
+                if (angular.isFunction(cb))
+                    cb(acee);
+            });
+        };
+
+        return {
+            restrict: 'EA',
+            require: '?ngModel',
+            link: (scope, elm, attrs, ngModel) => {
+
+                /**
+                 * Corresponds the igniteAceConfig ACE configuration.
+                 * @type object
+                 */
+                const options = aceConfig.ace || {};
+
+                /**
+                 * igniteAceConfig merged with user options via json in attribute or data binding
+                 * @type object
+                 */
+                let opts = angular.extend({}, options, scope.$eval(attrs.igniteAce));
+
+                /**
+                 * ACE editor
+                 * @type object
+                 */
+                const acee = window.ace.edit(elm[0]);
+
+                /**
+                 * ACE editor session.
+                 * @type object
+                 * @see [EditSession]{@link http://ace.c9.io/#nav=api&api=edit_session}
+                 */
+                const session = acee.getSession();
+
+                /**
+                 * Reference to a change listener created by the listener factory.
+                 * @function
+                 * @see listenerFactory.onChange
+                 */
+                let onChangeListener;
+
+                /**
+                 * Creates a change listener which propagates the change event
+                 * and the editor session to the callback from the user option
+                 * onChange. It might be exchanged during runtime, if this
+                 * happens the old listener will be unbound.
+                 *
+                 * @param callback callback function defined in the user options
+                 * @see onChangeListener
+                 */
+                const onChangeFactory = (callback) => {
+                    return (e) => {
+                        const newValue = session.getValue();
+
+                        if (ngModel && newValue !== ngModel.$viewValue &&
+                                // HACK make sure to only trigger the apply outside of the
+                                // digest loop 'cause ACE is actually using this callback
+                                // for any text transformation !
+                            !scope.$$phase && !scope.$root.$$phase)
+                            scope.$eval(() => ngModel.$setViewValue(newValue));
+
+                        if (angular.isDefined(callback)) {
+                            scope.$evalAsync(() => {
+                                if (angular.isFunction(callback))
+                                    callback([e, acee]);
+                                else
+                                    throw new Error('ignite-ace use a function as callback.');
+                            });
+                        }
+                    };
+                };
+
+                attrs.$observe('readonly', (value) => acee.setReadOnly(!!value || value === ''));
+
+                // Value Blind.
+                if (ngModel) {
+                    ngModel.$formatters.push((value) => {
+                        if (angular.isUndefined(value) || value === null)
+                            return '';
+
+                        if (angular.isObject(value) || angular.isArray(value))
+                            throw new Error('ignite-ace cannot use an object or an array as a model');
+
+                        return value;
+                    });
+
+                    ngModel.$render = () => session.setValue(ngModel.$viewValue);
+                }
+
+                // Listen for option updates.
+                const updateOptions = (current, previous) => {
+                    if (current === previous)
+                        return;
+
+                    opts = angular.extend({}, options, scope.$eval(attrs.igniteAce));
+
+                    opts.callbacks = [opts.onLoad];
+
+                    // Also call the global onLoad handler.
+                    if (opts.onLoad !== options.onLoad)
+                        opts.callbacks.unshift(options.onLoad);
+
+                    // Unbind old change listener.
+                    session.removeListener('change', onChangeListener);
+
+                    // Bind new change listener.
+                    onChangeListener = onChangeFactory(opts.onChange);
+
+                    session.on('change', onChangeListener);
+
+                    setOptions(acee, session, opts);
+                };
+
+                scope.$watch(attrs.igniteAce, updateOptions, /* deep watch */ true);
+
+                // Set the options here, even if we try to watch later,
+                // if this line is missing things go wrong (and the tests will also fail).
+                updateOptions(options);
+
+                elm.on('$destroy', () => {
+                    acee.session.$stopWorker();
+
+                    acee.destroy();
+                });
+
+                scope.$watch(() => [elm[0].offsetWidth, elm[0].offsetHeight],
+                    () => {
+                        acee.resize();
+
+                        acee.renderer.updateFull();
+                    }, true);
+            }
+        };
+    }]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/atomic.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/atomic.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/atomic.jade
index d442d5c..03921ba 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/atomic.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/atomic.jade
@@ -72,7 +72,7 @@ form.panel.panel-default(name='atomics' novalidate)
                             data-ng-model='#{model}.backups'
                             data-placeholder='0'
                         )
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
index 6e78df3..301125b 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
@@ -145,7 +145,7 @@ form.panel.panel-default(name='binary' novalidate)
                         | Compact footer
                         ignite-form-field-tooltip
                             | When enabled, Ignite will not write fields metadata when serializing objects(this will increase serialization performance), because internally #[b BinaryMarshaller] already distribute metadata inside cluster
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/communication.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/communication.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/communication.jade
index f695714..9678ced 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/communication.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/communication.jade
@@ -333,7 +333,7 @@ form.panel.panel-default(name='communication' novalidate)
                             data-name='comAddressResolver'
                             data-ng-model='#{model}.addressResolver'
                         )
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/connector.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/connector.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/connector.jade
index 3f1a17c..b4dd86c 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/connector.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/connector.jade
@@ -294,7 +294,7 @@ form.panel.panel-default(name='connector' novalidate)
                             data-ng-required='#{model}.sslEnabled'
                             data-ng-disabled='!#{model}.enabled || !#{model}.sslEnabled'
                         )
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/deployment.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/deployment.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/deployment.jade
index adf7fb7..b3e8287 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/deployment.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/deployment.jade
@@ -182,7 +182,7 @@ form.panel.panel-default(name='#{form}' novalidate)
             
                         .group-content-empty(ng-if='!(#{exclude}.length) && !group.add.length')
                             | Not defined
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/discovery.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/discovery.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/discovery.jade
index 261e36a..b404464 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/discovery.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/discovery.jade
@@ -304,7 +304,7 @@ form.panel.panel-default(name='discovery' novalidate)
                         | Client reconnect disabled
                         ignite-form-field-tooltip
                             | Client reconnect disabled
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/events.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/events.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/events.jade
index 6db5113..c4a5484 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/events.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/events.jade
@@ -41,7 +41,7 @@ form.panel.panel-default(name='events' novalidate)
                             data-ng-model='#{model}.includeEventTypes'
                             data-placeholder='Choose recorded event types'
                         )
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
index 8958cbd..2f78db2 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
@@ -93,7 +93,7 @@ form.panel.panel-default(name='general' novalidate)
                             ng-if='#{model}.discovery.kind === "SharedFs"')
                         ignite-configuration-clusters-general-discovery-vm(
                             ng-if='#{model}.discovery.kind === "Vm"')
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/igfs.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/igfs.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/igfs.jade
index e0db188..7b63358 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/igfs.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/igfs.jade
@@ -41,7 +41,7 @@ form.panel.panel-default(name='igfs' novalidate)
                             data-ng-disabled='!igfss.length'
                             data-placeholder='{{ igfss.length ? "Choose IGFS": "No IGFS configured" }}'
                         )
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/marshaller.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/marshaller.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/marshaller.jade
index b181fee..f8219e6 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/marshaller.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/marshaller.jade
@@ -119,7 +119,7 @@ form.panel.panel-default(name='marshaller' novalidate)
                             data-placeholder='max(8, availableProcessors) * 2'
                         )
 
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/metrics.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/metrics.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/metrics.jade
index 7ced27d..b40ea2a 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/metrics.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/metrics.jade
@@ -75,7 +75,7 @@ form.panel.panel-default(name='metrics' novalidate)
                             data-ng-model='#{model}.metricsUpdateFrequency'
                             data-placeholder='2000'
                         )
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/preview-panel.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/preview-panel.directive.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/preview-panel.directive.js
index 61407fe..fb67326 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/preview-panel.directive.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/preview-panel.directive.js
@@ -205,13 +205,13 @@ export default ['previewPanel', ['$interval', '$timeout', ($interval, $timeout)
     };
 
 
-    const link = (scope, $element, $attrs, [igniteUiAce1, igniteUiAce2]) => {
-        const igniteUiAce = igniteUiAce1 || igniteUiAce2;
+    const link = (scope, $element, $attrs, [igniteUiAceTabs1, igniteUiAceTabs2]) => {
+        const igniteUiAceTabs = igniteUiAceTabs1 || igniteUiAceTabs2;
 
-        if (!igniteUiAce)
+        if (!igniteUiAceTabs)
             return;
 
-        igniteUiAce.onLoad = (editor) => {
+        igniteUiAceTabs.onLoad = (editor) => {
             editor.setReadOnly(true);
             editor.setOption('highlightActiveLine', false);
             editor.setAutoScrollEditorIntoView(true);
@@ -228,12 +228,12 @@ export default ['previewPanel', ['$interval', '$timeout', ($interval, $timeout)
             editor.setTheme('ace/theme/chrome');
         };
 
-        igniteUiAce.onChange = onChange;
+        igniteUiAceTabs.onChange = onChange;
     };
 
     return {
         restrict: 'C',
         link,
-        require: ['?igniteUiAce', '?^igniteUiAce']
+        require: ['?igniteUiAceTabs', '?^igniteUiAceTabs']
     };
 }]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/ssl.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/ssl.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/ssl.jade
index 7ef96e7..2a91f83 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/ssl.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/ssl.jade
@@ -220,7 +220,7 @@ form.panel.panel-default(name='#{form}' novalidate)
                             data-ng-disabled='!#{enabled}'
                         )                        
  
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/swap.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/swap.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/swap.jade
index 83698ce..9676c94 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/swap.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/swap.jade
@@ -118,7 +118,7 @@ form.panel.panel-default(name='swapSpaceSpi' novalidate)
                                 )
 
 
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/thread.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/thread.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/thread.jade
index 0e49742..1a5f780 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/thread.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/thread.jade
@@ -81,7 +81,7 @@ form.panel.panel-default(name='thread' novalidate)
                             data-placeholder='1'
                             data-min='1'
                         )
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/time.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/time.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/time.jade
index 63badbd..a6eac16 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/time.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/time.jade
@@ -79,7 +79,7 @@ form.panel.panel-default(name='time' novalidate)
                             data-placeholder='100'
                             data-min='1'
                         )
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/transactions.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/transactions.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/transactions.jade
index a4b4971..ff5166a 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/transactions.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/transactions.jade
@@ -107,7 +107,7 @@ form.panel.panel-default(name='transactionConfiguration' novalidate)
                             data-ng-model='#{model}.txManagerFactory'
                             data-placeholder='Enter fully qualified class name'
                         )
-            ignite-ui-ace.col-sm-6
+            ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend
                         a(ng-class='{active: !mode, inactive: mode}' ng-click='mode = false') XML
@@ -118,4 +118,4 @@ form.panel.panel-default(name='transactionConfiguration' novalidate)
                     .preview-content(ng-if='!mode')
                         ignite-ui-ace-xml(data-cluster='backupItem' data-generator='clusterTransactions' ng-model='$parent.data')
                     .preview-content-empty(ng-if='!data')
-                        label All Defaults
\ No newline at end of file
+                        label All Defaults

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary-tabs.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary-tabs.directive.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary-tabs.directive.js
index e38b6fd..f8094af 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary-tabs.directive.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary-tabs.directive.js
@@ -16,13 +16,13 @@
  */
 
 export default ['summaryTabs', [() => {
-    const link = (scope, $element, $attrs, [igniteUiAce1, igniteUiAce2]) => {
-        const igniteUiAce = igniteUiAce1 || igniteUiAce2;
+    const link = (scope, $element, $attrs, [igniteUiAceTabs1, igniteUiAceTabs2]) => {
+        const igniteUiAceTabs = igniteUiAceTabs1 || igniteUiAceTabs2;
 
-        if (!igniteUiAce)
+        if (!igniteUiAceTabs)
             return;
 
-        igniteUiAce.onLoad = (editor) => {
+        igniteUiAceTabs.onLoad = (editor) => {
             editor.setReadOnly(true);
             editor.setOption('highlightActiveLine', false);
             editor.setAutoScrollEditorIntoView(true);
@@ -45,6 +45,6 @@ export default ['summaryTabs', [() => {
         priority: 1000,
         restrict: 'C',
         link,
-        require: ['?igniteUiAce', '?^igniteUiAce']
+        require: ['?igniteUiAceTabs', '?^igniteUiAceTabs']
     };
 }]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/config.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/config.js b/modules/control-center-web/src/main/js/config.js
index d5be50e..8000eac 100644
--- a/modules/control-center-web/src/main/js/config.js
+++ b/modules/control-center-web/src/main/js/config.js
@@ -45,7 +45,7 @@ System.config({
     "file-saver": "github:eligrey/FileSaver.js@master",
     "font-awesome": "npm:font-awesome@4.5.0",
     "jade": "github:johnsoftek/plugin-jade@0.5.1",
-    "jquery": "github:components/jquery@2.2.0",
+    "jquery": "github:components/jquery@2.2.1",
     "json": "github:systemjs/plugin-json@0.1.0",
     "jszip": "github:Stuk/jszip@2.5.0",
     "lodash": "npm:lodash@3.10.1",
@@ -75,7 +75,7 @@ System.config({
       "angular": "github:angular/bower-angular@1.5.0"
     },
     "github:angular/bower-angular@1.5.0": {
-      "jquery": "github:components/jquery@2.2.0"
+      "jquery": "github:components/jquery@2.2.1"
     },
     "github:darthwade/angular-loading@0.1.4": {
       "spinjs": "github:fgnass/spin.js@2.3.2"
@@ -140,7 +140,7 @@ System.config({
       "css": "github:systemjs/plugin-css@0.1.20"
     },
     "github:twbs/bootstrap@3.3.6": {
-      "jquery": "github:components/jquery@2.2.0"
+      "jquery": "github:components/jquery@2.2.1"
     },
     "github:wix/angular-tree-control@0.2.23": {
       "angular": "github:angular/bower-angular@1.5.0"
@@ -247,7 +247,7 @@ System.config({
       "process": "github:jspm/nodelibs-process@0.1.2"
     },
     "npm:decamelize@1.1.2": {
-      "escape-string-regexp": "npm:escape-string-regexp@1.0.4"
+      "escape-string-regexp": "npm:escape-string-regexp@1.0.5"
     },
     "npm:font-awesome@4.5.0": {
       "css": "github:systemjs/plugin-css@0.1.20"
@@ -276,7 +276,7 @@ System.config({
       "process": "github:jspm/nodelibs-process@0.1.2",
       "systemjs-json": "github:systemjs/plugin-json@0.1.0",
       "transformers": "npm:transformers@2.1.0",
-      "uglify-js": "npm:uglify-js@2.6.1",
+      "uglify-js": "npm:uglify-js@2.6.2",
       "void-elements": "npm:void-elements@2.0.1",
       "with": "npm:with@4.0.3"
     },
@@ -381,7 +381,7 @@ System.config({
       "util": "github:jspm/nodelibs-util@0.1.0",
       "vm": "github:jspm/nodelibs-vm@0.1.0"
     },
-    "npm:uglify-js@2.6.1": {
+    "npm:uglify-js@2.6.2": {
       "async": "npm:async@0.2.10",
       "fs": "github:jspm/nodelibs-fs@0.1.2",
       "path": "github:jspm/nodelibs-path@0.1.0",

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/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 1de5433..b0c817d 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
@@ -17,7 +17,7 @@
 
 var consoleModule = angular.module('ignite-web-console',
     [
-        'ngAnimate', 'ngSanitize', 'mgcrea.ngStrap', 'smart-table', 'ui.ace', 'treeControl', 'darthwade.dwLoading', 'ui.grid', 'ui.grid.autoResize', 'ui.grid.exporter', 'nvd3', 'dndLists'
+        'ngAnimate', 'ngSanitize', 'mgcrea.ngStrap', 'smart-table', 'treeControl', 'darthwade.dwLoading', 'ui.grid', 'ui.grid.autoResize', 'ui.grid.exporter', 'nvd3', 'dndLists'
         /* ignite:modules */
         , 'ignite-console'
         /* endignite */

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/controllers/sql-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/sql-controller.js b/modules/control-center-web/src/main/js/controllers/sql-controller.js
index 55748cc..a806abb 100644
--- a/modules/control-center-web/src/main/js/controllers/sql-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/sql-controller.js
@@ -1477,13 +1477,7 @@ consoleModule.controller('sqlController', function ($http, $timeout, $interval,
     $scope.dblclickMetadata = function (paragraph, node) {
         paragraph.ace.insert(node.name);
 
-        var position = paragraph.ace.selection.getCursor();
-
-        paragraph.query = paragraph.ace.getValue();
-
         setTimeout(function () {
-            paragraph.ace.selection.moveCursorToPosition(position);
-
             paragraph.ace.focus();
         }, 1);
     };

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/package.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/package.json b/modules/control-center-web/src/main/js/package.json
index a4f820e..69c3af9 100644
--- a/modules/control-center-web/src/main/js/package.json
+++ b/modules/control-center-web/src/main/js/package.json
@@ -81,7 +81,6 @@
       "angular-smart-table": "github:lorenzofox3/Smart-Table@^2.1.4",
       "angular-strap": "github:akuznetsov-gridgain/angular-strap@fix-1852-2.3.6",
       "angular-tree-control": "github:wix/angular-tree-control@^0.2.23",
-      "angular-ui-ace": "github:angular-ui/ui-ace@^0.2.3",
       "angular-ui-grid": "github:angular-ui/bower-ui-grid@^3.0.7",
       "angular-ui-router": "github:angular-ui/ui-router@^0.2.15",
       "angular-ui-router-title": "github:nonplus/angular-ui-router-title@^0.0.4",
@@ -233,11 +232,6 @@
           }
         }
       },
-      "github:angular-ui/ui-ace@0.2.3": {
-        "dependencies": {
-          "ace": "github:ajaxorg/ace-builds@^1.2.2"
-        }
-      },
       "github:eligrey/FileSaver.js@master": {
         "format": "global",
         "dependencies": {

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/summary.jade b/modules/control-center-web/src/main/js/views/configuration/summary.jade
index e280f2b..efff15c 100644
--- a/modules/control-center-web/src/main/js/views/configuration/summary.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/summary.jade
@@ -52,7 +52,7 @@ mixin ignite-form-field-tooltip(message)
                             label Server
 
                         .panel-collapse(id='server' role='tabpanel' bs-collapse-target)
-                            .summary-tabs(ignite-ui-ace)
+                            ignite-ui-ace-tabs.summary-tabs
                                 div(bs-tabs data-bs-active-pane="tabsServer.activeTab" template='configuration/summary-tabs.html')
                                     div(bs-pane title='XML')
                                         ignite-ui-ace-xml(data-cluster='cluster')
@@ -132,7 +132,7 @@ mixin ignite-form-field-tooltip(message)
                                                     data-placeholder='100000'
                                                 )
 
-                            .summary-tabs(ignite-ui-ace)
+                            .summary-tabs(ignite-ui-ace-tabs)
                                 div(bs-tabs data-bs-active-pane="tabsClient.activeTab" template='configuration/summary-tabs.html')
                                     div(bs-pane title='XML')
                                         ignite-ui-ace-xml(data-cluster='cluster' data-cluster-cfg='#{nearCfg}')

http://git-wip-us.apache.org/repos/asf/ignite/blob/f189e84b/modules/control-center-web/src/main/js/views/sql/sql.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/sql/sql.jade b/modules/control-center-web/src/main/js/views/sql/sql.jade
index ac7db65..bafe1d2 100644
--- a/modules/control-center-web/src/main/js/views/sql/sql.jade
+++ b/modules/control-center-web/src/main/js/views/sql/sql.jade
@@ -98,7 +98,7 @@ mixin chart-settings(mdl)
                             .panel-collapse(role='tabpanel' bs-collapse-target)
                                 .col-sm-12
                                     .col-xs-8.col-sm-9(style='border-right: 1px solid #eee')
-                                        .sql-editor(ui-ace='{onLoad: aceInit(paragraph), theme: "chrome", mode: "sql", require: ["ace/ext/language_tools"],' +
+                                        .sql-editor(ignite-ace='{onLoad: aceInit(paragraph), theme: "chrome", mode: "sql", require: ["ace/ext/language_tools"],' +
                                         'advanced: {enableSnippets: false, enableBasicAutocompletion: true, enableLiveAutocompletion: true}}'
                                         ng-model='paragraph.query')
                                     .col-xs-4.col-sm-3


[30/50] ignite git commit: IGNITE-2724 WIP support for ZooKeeper.

Posted by an...@apache.org.
IGNITE-2724 WIP support for ZooKeeper.


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

Branch: refs/heads/ignite-843
Commit: 37bc97741db7a08e7706aa529406017c01bba93c
Parents: 711086a
Author: vsisko <vs...@gridgain.com>
Authored: Thu Feb 25 19:20:37 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Feb 25 19:20:37 2016 +0700

----------------------------------------------------------------------
 .../control-center-web/src/main/js/.eslintrc    |   2 +-
 .../app/modules/states/configuration.state.js   |  17 +++
 .../states/configuration/clusters/general.jade  |   2 +
 .../general/discovery/zookeeper.directive.js    |  27 +++++
 .../clusters/general/discovery/zookeeper.jade   | 113 +++++++++++++++++++
 .../bounded-exponential-backoff.directive.js    |  27 +++++
 .../bounded-exponential-backoff.jade            |  57 ++++++++++
 .../zookeeper/retrypolicy/custom.directive.js   |  27 +++++
 .../discovery/zookeeper/retrypolicy/custom.jade |  30 +++++
 .../exponential-backoff.directive.js            |  27 +++++
 .../retrypolicy/exponential-backoff.jade        |  56 +++++++++
 .../zookeeper/retrypolicy/forever.directive.js  |  27 +++++
 .../zookeeper/retrypolicy/forever.jade          |  30 +++++
 .../zookeeper/retrypolicy/n-times.directive.js  |  27 +++++
 .../zookeeper/retrypolicy/n-times.jade          |  43 +++++++
 .../zookeeper/retrypolicy/one-time.directive.js |  27 +++++
 .../zookeeper/retrypolicy/one-time.jade         |  31 +++++
 .../retrypolicy/until-elapsed.directive.js      |  27 +++++
 .../zookeeper/retrypolicy/until-elapsed.jade    |  43 +++++++
 .../main/js/controllers/clusters-controller.js  |   7 +-
 .../main/js/helpers/generator/generator-java.js |  87 ++++++++++++++
 .../main/js/helpers/generator/generator-pom.js  |   3 +
 .../main/js/helpers/generator/generator-xml.js  | 102 +++++++++++++++++
 .../src/main/js/serve/mongo.js                  |  40 ++++++-
 24 files changed, 874 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/.eslintrc
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/.eslintrc b/modules/control-center-web/src/main/js/.eslintrc
index 000de6c..0341ed7 100644
--- a/modules/control-center-web/src/main/js/.eslintrc
+++ b/modules/control-center-web/src/main/js/.eslintrc
@@ -57,7 +57,7 @@ rules:
     generator-star-spacing: 0
     guard-for-in: 1
     handle-callback-err: 0
-    id-length: [2, {"min": 1, "max": 40}]
+    id-length: [2, {"min": 1, "max": 50}]
     indent: [2, 4, {"SwitchCase": 1}]
     key-spacing: [2, { "beforeColon": false, "afterColon": true }]
     lines-around-comment: 0

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js b/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
index 57eb361..edd7f9d 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
@@ -46,6 +46,15 @@ import generalDiscoveryMulticast from './configuration/clusters/general/discover
 import generalDiscoveryS3 from './configuration/clusters/general/discovery/s3.directive';
 import generalDiscoveryShared from './configuration/clusters/general/discovery/shared.directive';
 import generalDiscoveryVm from './configuration/clusters/general/discovery/vm.directive';
+import generalDiscoveryZookeeper from './configuration/clusters/general/discovery/zookeeper.directive';
+
+import generalDiscoveryZookeeperRetryExponential from './configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.directive';
+import generalDiscoveryZookeeperRetryBoundedExponential from './configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.directive';
+import generalDiscoveryZookeeperRetryUntilElapsed from './configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.directive';
+import generalDiscoveryZookeeperRetryNTimes from './configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.directive';
+import generalDiscoveryZookeeperRetryOneTime from './configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.directive';
+import generalDiscoveryZookeeperRetryForever from './configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.directive';
+import generalDiscoveryZookeeperRetryCustom from './configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.directive';
 
 angular
 .module('ignite-console.states.configuration', [
@@ -76,6 +85,14 @@ angular
 .directive(...generalDiscoveryS3)
 .directive(...generalDiscoveryShared)
 .directive(...generalDiscoveryVm)
+.directive(...generalDiscoveryZookeeper)
+.directive(...generalDiscoveryZookeeperRetryExponential)
+.directive(...generalDiscoveryZookeeperRetryBoundedExponential)
+.directive(...generalDiscoveryZookeeperRetryUntilElapsed)
+.directive(...generalDiscoveryZookeeperRetryNTimes)
+.directive(...generalDiscoveryZookeeperRetryOneTime)
+.directive(...generalDiscoveryZookeeperRetryForever)
+.directive(...generalDiscoveryZookeeperRetryCustom)
 // Services.
 .service(...ConfigurationSummaryResource)
 .config(['$stateProvider', function($stateProvider) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
index 2f78db2..c750119 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
@@ -93,6 +93,8 @@ form.panel.panel-default(name='general' novalidate)
                             ng-if='#{model}.discovery.kind === "SharedFs"')
                         ignite-configuration-clusters-general-discovery-vm(
                             ng-if='#{model}.discovery.kind === "Vm"')
+                        ignite-configuration-clusters-general-discovery-zookeeper(
+                            ng-if='#{model}.discovery.kind === "ZooKeeper"')
             ignite-ui-ace-tabs.col-sm-6
                 .preview-panel(ng-init='mode = false')
                     .preview-legend

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.directive.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.directive.js
new file mode 100644
index 0000000..42925a9
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.directive.js
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './zookeeper.jade!';
+
+export default ['igniteConfigurationClustersGeneralDiscoveryZookeeper', [() => {
+    return {
+        scope: true,
+        restrict: 'E',
+        template,
+        replace: true
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
new file mode 100644
index 0000000..d99a7a7
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
@@ -0,0 +1,113 @@
+//-
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+- var model = 'backupItem.discovery.ZooKeeper';
+
+div
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Curator:
+            ignite-form-field-tooltip
+                | The Curator framework in use
+            ignite-form-field-java-class(
+                data-id='curator'
+                data-name='curator'
+                data-ng-model='#{model}.curator'
+            )
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Connection string:
+            ignite-form-field-tooltip
+                | This property will be used when "IGNITE_ZK_CONNECTION_STRING" system property is not configured
+            ignite-form-field-input-text(
+                data-id='zkConnectionString'
+                data-name='zkConnectionString'
+                data-ng-model='#{model}.zkConnectionString'
+                data-placeholder='host:port[chroot][,host:port[chroot]]'
+                data-ng-required='true'
+            )
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Retry policy:
+            ignite-form-field-tooltip
+                | Retry policy
+            ignite-form-field-dropdown(
+                data-id='retryPolicy'
+                data-name='retryPolicy'
+                data-options='[\
+                    {value: "ExponentialBackoff", label: "Exponential backoff"},\
+                    {value: "BoundedExponentialBackoff", label: "Bounded exponential backoff"},\
+                    {value: "UntilElapsed", label: "Until elapsed"},\
+                    {value: "NTimes", label: "Max number of times"},\
+                    {value: "OneTime", label: "Only once"},\
+                    {value: "Forever", label: "Always allowsRetry"},\
+                    {value: "Custom", label: "Custom"},\
+                    {value: undefined, label: "Default"}\
+                ]'
+                data-ng-model='#{model}.retryPolicy.kind'
+                data-multiple='false'
+            )
+    .details-row(ng-if='#{model}.retryPolicy.kind')
+        .col-sm-12.panel-details()
+            div(ng-switch='#{model}.retryPolicy.kind')
+                ignite-configuration-clusters-general-discovery-zookeeper-exponential(ng-switch-when='ExponentialBackoff')
+                ignite-configuration-clusters-general-discovery-zookeeper-bounded-exponential(ng-switch-when='BoundedExponentialBackoff')
+                ignite-configuration-clusters-general-discovery-zookeeper-until-elapsed(ng-switch-when='UntilElapsed')
+                ignite-configuration-clusters-general-discovery-zookeeper-n-times(ng-switch-when='NTimes')
+                ignite-configuration-clusters-general-discovery-zookeeper-one-time(ng-switch-when='OneTime')
+                ignite-configuration-clusters-general-discovery-zookeeper-forever(ng-switch-when='Forever')
+                ignite-configuration-clusters-general-discovery-zookeeper-custom(ng-switch-when='Custom')
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Base path:
+            ignite-form-field-tooltip
+                | Base path for service registration
+            ignite-form-field-input-text(
+                data-id='basePath'
+                data-name='basePath'
+                data-ng-model='#{model}.basePath'
+                data-placeholder='/services'
+            )
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Service name:
+            ignite-form-field-tooltip
+                | Service name to use, as defined by Curator's ServiceDiscovery recipe#[br]
+                | In physical ZooKeeper terms, it represents the node under basePath, under which services will be registered
+            ignite-form-field-input-text(
+                data-id='serviceName'
+                data-name='serviceName'
+                data-ng-model='#{model}.serviceName'
+                data-placeholder='ignite'
+            )
+    .details-row
+        ignite-form-field.checkbox
+            ignite-form-field-input-checkbox(
+                data-id='allowDuplicateRegistrations'
+                data-name='allowDuplicateRegistrations'
+                data-ng-model='#{model}.allowDuplicateRegistrations'
+            )
+            | Allow duplicate registrations
+            ignite-form-field-tooltip
+                | Whether to register each node only once, or if duplicate registrations are allowed#[br]
+                | Nodes will attempt to register themselves, plus those they know about #[br]
+                | By default, duplicate registrations are not allowed, but you might want to set this property to
+                | #[b true] if you have multiple network interfaces or if you are facing troubles

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.directive.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.directive.js
new file mode 100644
index 0000000..68e338b
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.directive.js
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './bounded-exponential-backoff.jade!';
+
+export default ['igniteConfigurationClustersGeneralDiscoveryZookeeperBoundedExponential', [() => {
+    return {
+        scope: true,
+        restrict: 'E',
+        template,
+        replace: true
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
new file mode 100644
index 0000000..06eb790
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
@@ -0,0 +1,57 @@
+//-
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+- var model = 'backupItem.discovery.ZooKeeper.retryPolicy.BoundedExponentialBackoff';
+
+div
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Base Sleep Time:
+            ignite-form-field-tooltip
+                | Initial amount of time to wait between retries
+            ignite-form-field-input-number(
+                data-id='baseSleepTimeMs'
+                data-name='baseSleepTimeMs'
+                data-ng-model='#{model}.baseSleepTimeMs'
+                data-ng-required='true'
+            )
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Max sleep time:
+            ignite-form-field-tooltip
+                | Max time in ms to sleep on each retry
+            ignite-form-field-input-number(
+                data-id='maxSleepTimeMs'
+                data-name='maxSleepTimeMs'
+                data-ng-model='#{model}.maxSleepTimeMs'
+                data-placeholder='Integer.MAX_VALUE'
+                data-ng-required='true'
+            )
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Max retries:
+            ignite-form-field-tooltip
+                | Max number of times to retry
+            ignite-form-field-input-number(
+                data-id='maxRetries'
+                data-name='maxRetries'
+                data-ng-model='#{model}.maxRetries'
+                data-ng-required='true'
+                data-max='29'
+            )

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.directive.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.directive.js
new file mode 100644
index 0000000..dfd9b08
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.directive.js
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './custom.jade!';
+
+export default ['igniteConfigurationClustersGeneralDiscoveryZookeeperCustom', [() => {
+    return {
+        scope: true,
+        restrict: 'E',
+        template,
+        replace: true
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade
new file mode 100644
index 0000000..e5663a8
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade
@@ -0,0 +1,30 @@
+//-
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+- var model = 'backupItem.discovery.ZooKeeper.retryPolicy.Custom';
+
+.details-row
+    ignite-form-field
+        ignite-form-field-label
+            | Class name:
+        ignite-form-field-tooltip
+            | Custom retry policy implementation class name
+        ignite-form-field-java-class(
+            data-id='className'
+            data-name='className'
+            data-ng-model='#{model}.className'
+            data-required='true'
+        )

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.directive.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.directive.js
new file mode 100644
index 0000000..29c968c
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.directive.js
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './exponential-backoff.jade!';
+
+export default ['igniteConfigurationClustersGeneralDiscoveryZookeeperExponential', [() => {
+    return {
+        scope: true,
+        restrict: 'E',
+        template,
+        replace: true
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
new file mode 100644
index 0000000..79bcfa1
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
@@ -0,0 +1,56 @@
+//-
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+- var model = 'backupItem.discovery.ZooKeeper.retryPolicy.ExponentialBackoff';
+
+div
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Base sleep time:
+            ignite-form-field-tooltip
+                | Initial amount of time to wait between retries
+            ignite-form-field-input-number(
+                data-id='baseSleepTimeMs'
+                data-name='baseSleepTimeMs'
+                data-ng-model='#{model}.baseSleepTimeMs'
+                data-ng-required='true'
+            )
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Max retries:
+            ignite-form-field-tooltip
+                | Max number of times to retry
+            ignite-form-field-input-number(
+                data-id='maxRetries'
+                data-name='maxRetries'
+                data-ng-model='#{model}.maxRetries'
+                data-ng-required='true'
+                data-max='29'
+            )
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Max sleep time:
+            ignite-form-field-tooltip
+                | Max time in ms to sleep on each retry
+            ignite-form-field-input-number(
+                data-id='maxSleepMs'
+                data-name='maxSleepMs'
+                data-ng-model='#{model}.maxSleepMs'
+                data-placeholder='Integer.MAX_VALUE'
+            )

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.directive.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.directive.js
new file mode 100644
index 0000000..ec39f66
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.directive.js
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './forever.jade!';
+
+export default ['igniteConfigurationClustersGeneralDiscoveryZookeeperForever', [() => {
+    return {
+        scope: true,
+        restrict: 'E',
+        template,
+        replace: true
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
new file mode 100644
index 0000000..705fa2a
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
@@ -0,0 +1,30 @@
+//-
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+- var model = 'backupItem.discovery.ZooKeeper.retryPolicy.Forever';
+
+.details-row
+    ignite-form-field
+        ignite-form-field-label
+            | Interval:
+        ignite-form-field-tooltip
+            | Time in ms between retry attempts
+        ignite-form-field-input-number(
+            data-id='retryIntervalMs'
+            data-name='retryIntervalMs'
+            data-ng-model='#{model}.retryIntervalMs'
+            data-ng-required='true'
+        )

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.directive.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.directive.js
new file mode 100644
index 0000000..ce83da4
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.directive.js
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './n-times.jade!';
+
+export default ['igniteConfigurationClustersGeneralDiscoveryZookeeperNTimes', [() => {
+    return {
+        scope: true,
+        restrict: 'E',
+        template,
+        replace: true
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
new file mode 100644
index 0000000..0c44709
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
@@ -0,0 +1,43 @@
+//-
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+- var model = 'backupItem.discovery.ZooKeeper.retryPolicy.NTimes';
+
+div
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Retries:
+            ignite-form-field-tooltip
+                | Number of times to retry
+            ignite-form-field-input-number(
+                data-id='n'
+                data-name='n'
+                data-ng-model='#{model}.n'
+                data-ng-required='true'
+            )
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Interval:
+            ignite-form-field-tooltip
+                | Time in ms between retry attempts
+            ignite-form-field-input-number(
+                data-id='sleepMsBetweenRetries'
+                data-name='sleepMsBetweenRetries'
+                data-ng-model='#{model}.sleepMsBetweenRetries'
+                data-ng-required='true'
+            )

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.directive.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.directive.js
new file mode 100644
index 0000000..7329cc2
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.directive.js
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './one-time.jade!';
+
+export default ['igniteConfigurationClustersGeneralDiscoveryZookeeperOneTime', [() => {
+    return {
+        scope: true,
+        restrict: 'E',
+        template,
+        replace: true
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
new file mode 100644
index 0000000..24b3514
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
@@ -0,0 +1,31 @@
+//-
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+- var model = 'backupItem.discovery.ZooKeeper.retryPolicy.OneTime';
+
+div
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Interval:
+            ignite-form-field-tooltip
+                | Time in ms to retry attempt
+            ignite-form-field-input-number(
+                data-id='sleepMsBetweenRetry'
+                data-name='sleepMsBetweenRetry'
+                data-ng-model='#{model}.sleepMsBetweenRetry'
+                data-ng-required='true'
+            )

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.directive.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.directive.js
new file mode 100644
index 0000000..8997159
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.directive.js
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './until-elapsed.jade!';
+
+export default ['igniteConfigurationClustersGeneralDiscoveryZookeeperUntilElapsed', [() => {
+    return {
+        scope: true,
+        restrict: 'E',
+        template,
+        replace: true
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
new file mode 100644
index 0000000..c4e701e
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
@@ -0,0 +1,43 @@
+//-
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+- var model = 'backupItem.discovery.ZooKeeper.retryPolicy.UntilElapsed';
+
+div
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Total time:
+            ignite-form-field-tooltip
+                | Total time in ms for execution of retry attempt
+            ignite-form-field-input-number(
+                data-id='maxElapsedTimeMs'
+                data-name='maxElapsedTimeMs'
+                data-ng-model='#{model}.maxElapsedTimeMs'
+                data-ng-required='true'
+            )
+    .details-row
+        ignite-form-field
+            ignite-form-field-label
+                | Interval:
+            ignite-form-field-tooltip
+                | Time in ms between retry attempts
+            ignite-form-field-input-number(
+                data-id='sleepMsBetweenRetries'
+                data-name='sleepMsBetweenRetries'
+                data-ng-model='#{model}.sleepMsBetweenRetries'
+                data-ng-required='true'
+            )

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/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 8f44788..7e49f81 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
@@ -65,10 +65,11 @@ consoleModule.controller('clustersController', function ($http, $timeout, $scope
             {value: 'Vm', label: 'static IPs'},
             {value: 'Multicast', label: 'multicast'},
             {value: 'S3', label: 'AWS S3'},
-            {value: 'Cloud', label: 'apache jclouds'},
-            {value: 'GoogleStorage', label: 'google cloud storage'},
+            {value: 'Cloud', label: 'Apache jclouds'},
+            {value: 'GoogleStorage', label: 'Google cloud storage'},
             {value: 'Jdbc', label: 'JDBC'},
-            {value: 'SharedFs', label: 'shared filesystem'}
+            {value: 'SharedFs', label: 'shared filesystem'},
+            {value: 'ZooKeeper', label: 'Apache ZooKeeper'}
         ];
 
         $scope.swapSpaceSpis = [

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 32023b9..732fe51 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -62,6 +62,18 @@ $generatorJava.setterName = function (propName, setterName) {
     return setterName ? setterName : $commonUtils.toJavaName('set', propName);
 };
 
+// Add constructor argument
+$generatorJava.constructorArg = function (obj, propName, notFirst, opt) {
+    var v = obj ? obj[propName] : undefined;
+
+    if ($commonUtils.isDefinedAndNotEmpty(v))
+        return (notFirst ? ', ' : '') + v;
+    else if (!opt)
+        return notFirst ? ', null' : 'null';
+    else
+        return '';
+};
+
 /**
  * Add variable declaration.
  *
@@ -525,6 +537,81 @@ $generatorJava.clusterGeneral = function (cluster, clientNearCfg, res) {
 
                 break;
 
+            case 'ZooKeeper':
+                var finderVar = 'ipFinder';
+
+                $generatorJava.declareVariable(res, 'ipFinder', 'org.apache.ignite.spi.discovery.tcp.ipfinder.zk.TcpDiscoveryZookeeperIpFinder');
+
+                if (d.ZooKeeper) {
+                    if ($commonUtils.isDefinedAndNotEmpty(d.ZooKeeper.curator))
+                        res.line(finderVar + '.setCurator(new ' + res.importClass(d.ZooKeeper.curator) + '());');
+
+                    $generatorJava.property(res, finderVar, d.ZooKeeper, 'zkConnectionString');
+
+                    if (d.ZooKeeper.retryPolicy && d.ZooKeeper.retryPolicy.kind) {
+                        var kind = d.ZooKeeper.retryPolicy.kind;
+                        var retryPolicy = d.ZooKeeper.retryPolicy[kind];
+
+                        switch (kind) {
+                            case 'ExponentialBackoff':
+                                res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.ExponentialBackoffRetry') + '(' +
+                                    $generatorJava.constructorArg(retryPolicy, 'baseSleepTimeMs') +
+                                    $generatorJava.constructorArg(retryPolicy, 'maxRetries', true) +
+                                    $generatorJava.constructorArg(retryPolicy, 'maxSleepMs', true, true) + '));');
+
+                                break;
+
+                            case 'BoundedExponentialBackoff':
+                                res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.BoundedExponentialBackoffRetry') + '(' +
+                                    $generatorJava.constructorArg(retryPolicy, 'baseSleepTimeMs') +
+                                    $generatorJava.constructorArg(retryPolicy, 'maxSleepTimeMs', true) +
+                                    $generatorJava.constructorArg(retryPolicy, 'maxRetries', true) + '));');
+
+                                break;
+
+                            case 'UntilElapsed':
+                                res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.RetryUntilElapsed') + '(' +
+                                    $generatorJava.constructorArg(retryPolicy, 'maxElapsedTimeMs') +
+                                    $generatorJava.constructorArg(retryPolicy, 'sleepMsBetweenRetries', true) + '));');
+
+                                break;
+
+                            case 'NTimes':
+                                res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.RetryNTimes') + '(' +
+                                    $generatorJava.constructorArg(retryPolicy, 'n') +
+                                    $generatorJava.constructorArg(retryPolicy, 'sleepMsBetweenRetries', true) + '));');
+
+                                break;
+
+                            case 'OneTime':
+                                res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.RetryOneTime') + '(' +
+                                    $generatorJava.constructorArg(retryPolicy, 'sleepMsBetweenRetry') + '));');
+
+                                break;
+
+                            case 'Forever':
+                                res.line(finderVar + '.setRetryPolicy(new ' + res.importClass('org.apache.curator.retry.RetryForever') + '(' +
+                                    $generatorJava.constructorArg(retryPolicy, 'retryIntervalMs') + '));');
+
+                                break;
+
+                            case 'Custom':
+                                if (retryPolicy && $commonUtils.isDefinedAndNotEmpty(retryPolicy.className))
+                                    res.line(finderVar + '.setRetryPolicy(new ' + res.importClass(retryPolicy.className) + '());');
+
+                                break;
+                        }
+                    }
+
+                    $generatorJava.property(res, finderVar, d.ZooKeeper, 'basePath', null, null, '/services');
+                    $generatorJava.property(res, finderVar, d.ZooKeeper, 'serviceName', null, null, 'ignite');
+                    $generatorJava.property(res, finderVar, d.ZooKeeper, 'allowDuplicateRegistrations', null, null, false);
+                }
+
+                res.line('discovery.setIpFinder(ipFinder);');
+
+                break;
+
             default:
                 res.line('Unknown discovery kind: ' + d.kind);
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js b/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
index 804b607..f7bcf92 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
@@ -176,6 +176,9 @@ $generatorPom.pom = function (cluster, igniteVersion, mvnRepositories, res) {
     addDependency('org.apache.ignite', 'ignite-indexing', igniteVersion);
     addDependency('org.apache.ignite', 'ignite-rest-http', igniteVersion);
 
+    if (cluster.discovery.kind === 'ZooKeeper')
+        addDependency('org.apache.ignite', 'ignite-zookeeper', igniteVersion);
+
     if (_.find(cluster.igfss, function (igfs) { return igfs.secondaryFileSystemEnabled; }))
         addDependency('org.apache.ignite', 'ignite-hadoop', igniteVersion);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
index 9fab39b..2d2c5c8 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
@@ -26,6 +26,19 @@ $generatorXml.escape = function (s) {
     return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
 };
 
+// Add constructor argument
+$generatorXml.constructorArg = function (res, ix, obj, propName, opt) {
+    var v = obj ? obj[propName] : undefined;
+
+    if ($commonUtils.isDefinedAndNotEmpty(v))
+        res.line('<constructor-arg ' + (ix >= 0 ? 'index="' + ix + '" ' : '') + 'value="' + v + '"/>');
+    else if (!opt) {
+        res.startBlock('<constructor-arg ' + (ix >= 0 ? 'index="' + ix + '"' : '') + '>');
+        res.line('<null/>');
+        res.endBlock('</constructor-arg>');
+    }
+};
+
 // Add XML element.
 $generatorXml.element = function (res, tag, attr1, val1, attr2, val2) {
     var elem = '<' + tag;
@@ -365,6 +378,95 @@ $generatorXml.clusterGeneral = function (cluster, res) {
 
                 break;
 
+            case 'ZooKeeper':
+                res.startBlock('<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.zk.TcpDiscoveryZookeeperIpFinder">');
+
+                if (d.ZooKeeper) {
+                    if ($commonUtils.isDefinedAndNotEmpty(d.ZooKeeper.curator)) {
+                        res.startBlock('<property name="curator">');
+                        res.line('<bean class="' + d.ZooKeeper.curator + '"/>');
+                        res.endBlock('</property>');
+                    }
+
+                    $generatorXml.property(res, d.ZooKeeper, 'zkConnectionString');
+
+                    if (d.ZooKeeper.retryPolicy && d.ZooKeeper.retryPolicy.kind) {
+                        var kind = d.ZooKeeper.retryPolicy.kind;
+                        var retryPolicy = d.ZooKeeper.retryPolicy[kind];
+                        var customClassDefined = retryPolicy && $commonUtils.isDefinedAndNotEmpty(retryPolicy.className);
+
+                        if (kind !== 'Custom' || customClassDefined)
+                            res.startBlock('<property name="retryPolicy">');
+
+                        switch (kind) {
+                            case 'ExponentialBackoff':
+                                res.startBlock('<bean class="org.apache.curator.retry.ExponentialBackoffRetry">');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'baseSleepTimeMs');
+                                $generatorXml.constructorArg(res, 1, retryPolicy, 'maxRetries');
+                                $generatorXml.constructorArg(res, 2, retryPolicy, 'maxSleepMs', true);
+                                res.endBlock('</bean>');
+
+                                break;
+
+                            case 'BoundedExponentialBackoff':
+                                res.startBlock('<bean class="org.apache.curator.retry.BoundedExponentialBackoffRetry">');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'baseSleepTimeMs');
+                                $generatorXml.constructorArg(res, 1, retryPolicy, 'maxSleepTimeMs');
+                                $generatorXml.constructorArg(res, 2, retryPolicy, 'maxRetries');
+                                res.endBlock('</bean>');
+
+                                break;
+
+                            case 'UntilElapsed':
+                                res.startBlock('<bean class="org.apache.curator.retry.RetryUntilElapsed">');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'maxElapsedTimeMs');
+                                $generatorXml.constructorArg(res, 1, retryPolicy, 'sleepMsBetweenRetries');
+                                res.endBlock('</bean>');
+
+                                break;
+
+                            case 'NTimes':
+                                res.startBlock('<bean class="org.apache.curator.retry.RetryNTimes">');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'n');
+                                $generatorXml.constructorArg(res, 1, retryPolicy, 'sleepMsBetweenRetries');
+                                res.endBlock('</bean>');
+
+                                break;
+
+                            case 'OneTime':
+                                res.startBlock('<bean class="org.apache.curator.retry.RetryOneTime">');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'sleepMsBetweenRetry');
+                                res.endBlock('</bean>');
+
+                                break;
+
+                            case 'Forever':
+                                res.startBlock('<bean class="org.apache.curator.retry.RetryForever">');
+                                $generatorXml.constructorArg(res, 0, retryPolicy, 'retryIntervalMs');
+                                res.endBlock('</bean>');
+
+                                break;
+
+                            case 'Custom':
+                                if (customClassDefined)
+                                    res.line('<bean class="' + retryPolicy.className + '"/>');
+
+                                break;
+                        }
+
+                        if (kind !== 'Custom' || customClassDefined)
+                            res.endBlock('</property>');
+                    }
+
+                    $generatorXml.property(res, d.ZooKeeper, 'basePath', null, '/services');
+                    $generatorXml.property(res, d.ZooKeeper, 'serviceName', null, 'ignite');
+                    $generatorXml.property(res, d.ZooKeeper, 'allowDuplicateRegistrations', null, false);
+                }
+
+                res.endBlock('</bean>');
+
+                break;
+
             default:
                 res.line('Unknown discovery kind: ' + d.kind);
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/37bc9774/modules/control-center-web/src/main/js/serve/mongo.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/mongo.js b/modules/control-center-web/src/main/js/serve/mongo.js
index cfb0040..46a9629 100644
--- a/modules/control-center-web/src/main/js/serve/mongo.js
+++ b/modules/control-center-web/src/main/js/serve/mongo.js
@@ -331,7 +331,7 @@ module.exports.factory = function(deepPopulatePlugin, passportMongo, settings, p
             authenticator: String,
             forceServerMode: Boolean,
             clientReconnectDisabled: Boolean,
-            kind: {type: String, enum: ['Vm', 'Multicast', 'S3', 'Cloud', 'GoogleStorage', 'Jdbc', 'SharedFs']},
+            kind: {type: String, enum: ['Vm', 'Multicast', 'S3', 'Cloud', 'GoogleStorage', 'Jdbc', 'SharedFs', 'ZooKeeper']},
             Vm: {
                 addresses: [String]
             },
@@ -366,6 +366,44 @@ module.exports.factory = function(deepPopulatePlugin, passportMongo, settings, p
             },
             SharedFs: {
                 path: String
+            },
+            ZooKeeper: {
+                curator: String,
+                zkConnectionString: String,
+                retryPolicy: {
+                    kind: {type: String, enum: ['ExponentialBackoff', 'BoundedExponentialBackoff', 'UntilElapsed',
+                        'NTimes', 'OneTime', 'Forever', 'Custom']},
+                    ExponentialBackoff: {
+                        baseSleepTimeMs: Number,
+                        maxRetries: Number,
+                        maxSleepMs: Number
+                    },
+                    BoundedExponentialBackoff: {
+                        baseSleepTimeMs: Number,
+                        maxSleepTimeMs: Number,
+                        maxRetries: Number
+                    },
+                    UntilElapsed: {
+                        maxElapsedTimeMs: Number,
+                        sleepMsBetweenRetries: Number
+                    },
+                    NTimes: {
+                        n: Number,
+                        sleepMsBetweenRetries: Number
+                    },
+                    OneTime: {
+                        sleepMsBetweenRetry: Number
+                    },
+                    Forever: {
+                        retryIntervalMs: Number
+                    },
+                    Custom: {
+                        className: String
+                    }
+                },
+                basePath: String,
+                serviceName: String,
+                allowDuplicateRegistrations: Boolean
             }
         },
         atomicConfiguration: {


[40/50] ignite git commit: IGNITE-843 Added suffix in title.

Posted by an...@apache.org.
IGNITE-843 Added suffix in title.


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

Branch: refs/heads/ignite-843
Commit: 91698c2430e9d877d6a0619d7a85123104517a2d
Parents: 85b4b9f
Author: Andrey <an...@gridgain.com>
Authored: Thu Mar 3 13:26:42 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Mar 3 13:26:42 2016 +0700

----------------------------------------------------------------------
 .../control-center-web/src/main/js/app/index.js | 15 +++++++---
 .../main/js/app/modules/states/admin.state.js   |  6 ++--
 .../app/modules/states/configuration.state.js   | 30 +++++++-------------
 .../main/js/app/modules/states/logout.state.js  |  5 +++-
 .../js/app/modules/states/password.state.js     | 10 +++++--
 .../main/js/app/modules/states/profile.state.js |  6 ++--
 .../main/js/app/modules/states/signin.state.js  |  6 ++--
 .../src/main/js/app/modules/states/sql.state.js | 12 +++-----
 .../control-center-web/src/main/js/config.js    |  1 +
 .../control-center-web/src/main/js/package.json |  2 +-
 .../src/main/js/views/index.jade                |  5 +++-
 11 files changed, 49 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/app/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/index.js b/modules/control-center-web/src/main/js/app/index.js
index 25ea53f..a2473e8 100644
--- a/modules/control-center-web/src/main/js/app/index.js
+++ b/modules/control-center-web/src/main/js/app/index.js
@@ -29,7 +29,7 @@ window.angular = angular;
 window.pdfMake = pdfMake;
 
 import 'angular-ui-router';
-import 'angular-ui-router-title';
+import 'angular-ui-router-metatags';
 import 'angular-animate';
 import 'angular-sanitize';
 import 'angular-ui-grid';
@@ -107,7 +107,7 @@ import byName from './filters/byName/byName.filter';
 angular
 .module('ignite-console', [
     'ui.router',
-    'ui.router.title',
+    'ui.router.metatags',
     'ngRetina',
     // Base modules.
     'ignite-console.user',
@@ -151,7 +151,7 @@ angular
 // Filters.
 .filter(...hasPojo)
 .filter(...byName)
-.config(['$stateProvider', '$locationProvider', '$urlRouterProvider', function($stateProvider, $locationProvider, $urlRouterProvider) {
+.config(['$stateProvider', '$locationProvider', '$urlRouterProvider', ($stateProvider, $locationProvider, $urlRouterProvider) => {
     // Set up the states.
     $stateProvider
         .state('base', {
@@ -169,12 +169,19 @@ angular
 
     $locationProvider.html5Mode(true);
 }])
+.config(['UIRouterMetatagsProvider', (UIRouterMetatagsProvider) => {
+    UIRouterMetatagsProvider
+        .setTitleSuffix(' – Apache Ignite Web Console')
+        .setDefaultDescription('The Apache Ignite Web Console is an interactive management tool and configuration wizard for Apache Ignite which walks you through the creation of configuration files. Try the tool now.');
+}])
 .run(['$rootScope', ($root) => {
     $root._ = _;
 }])
-.run(['$rootScope', '$state', 'Auth', 'User', ($root, $state, Auth, User) => {
+.run(['$rootScope', '$state', 'MetaTags', 'Auth', 'User', ($root, $state, $meta, Auth, User) => {
     $root.$state = $state;
 
+    $root.$meta = $meta;
+
     if (Auth.authorized) {
         User.read()
             .then((user) => $root.$broadcast('user', user));

http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/admin.state.js b/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
index 0de646e..af1fbde 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
@@ -27,10 +27,8 @@ angular
     .state('settings.admin', {
         url: '/admin',
         templateUrl: '/settings/admin.html',
-        resolve: {
-            $title: ['IgniteBranding', (branding) => {
-                return 'List of registered users' + branding.titleSuffix;
-            }]
+        metaTags: {
+            title: 'List of registered users'
         }
     });
 }]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js b/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
index 1071eb8..f789175 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
@@ -111,10 +111,8 @@ angular
         data: {
             loading: 'Loading clusters screen...'
         },
-        resolve: {
-            $title: ['IgniteBranding', (branding) => {
-                return 'Configure Clusters' + branding.titleSuffix;
-            }]
+        metaTags: {
+            title: 'Configure Clusters'
         }
     })
     .state('base.configuration.caches', {
@@ -126,10 +124,8 @@ angular
         data: {
             loading: 'Loading caches screen...'
         },
-        resolve: {
-            $title: ['IgniteBranding', (branding) => {
-                return 'Configure Caches' + branding.titleSuffix;
-            }]
+        metaTags: {
+            title: 'Configure Caches'
         }
     })
     .state('base.configuration.domains', {
@@ -141,10 +137,8 @@ angular
         data: {
             loading: 'Loading domain models screen...'
         },
-        resolve: {
-            $title: ['IgniteBranding', (branding) => {
-                return 'Configure Domain Model' + branding.titleSuffix;
-            }]
+        metaTags: {
+            title: 'Configure Domain Model'
         }
     })
     .state('base.configuration.igfs', {
@@ -156,10 +150,8 @@ angular
         data: {
             loading: 'Loading IGFS screen...'
         },
-        resolve: {
-            $title: ['IgniteBranding', (branding) => {
-                return 'Configure IGFS' + branding.titleSuffix;
-            }]
+        metaTags: {
+            title: 'Configure IGFS'
         }
     })
     .state('base.configuration.summary', {
@@ -170,10 +162,8 @@ angular
         data: {
             loading: 'Loading summary screen...'
         },
-        resolve: {
-            $title: ['IgniteBranding', (branding) => {
-                return 'Configurations Summary' + branding.titleSuffix;
-            }]
+        metaTags: {
+            title: 'Configurations Summary'
         }
     });
 }]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/app/modules/states/logout.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/logout.state.js b/modules/control-center-web/src/main/js/app/modules/states/logout.state.js
index 7609f24..7f24a45 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/logout.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/logout.state.js
@@ -28,6 +28,9 @@ angular
         url: '/logout',
         controller: ['Auth', function(Auth) {
             Auth.logout();
-        }]
+        }],
+        metaTags: {
+            title: 'Logout'
+        }
     });
 }]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/app/modules/states/password.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/password.state.js b/modules/control-center-web/src/main/js/app/modules/states/password.state.js
index 6014cd2..48d01df 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/password.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/password.state.js
@@ -31,10 +31,16 @@ angular
     })
     .state('password.reset', {
         url: '/reset?{token}',
-        templateUrl: '/reset.html'
+        templateUrl: '/reset.html',
+        metaTags: {
+            title: 'Reset password'
+        }
     })
     .state('password.send', {
         url: '/send',
-        templateUrl: '/reset.html'
+        templateUrl: '/reset.html',
+        metaTags: {
+            title: 'Password Send'
+        }
     });
 }]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/profile.state.js b/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
index dc9cabd..8b6cdfe 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
@@ -27,10 +27,8 @@ angular
     .state('settings.profile', {
         url: '/profile',
         templateUrl: '/settings/profile.html',
-        resolve: {
-            $title: ['IgniteBranding', (branding) => {
-                return 'User profile' + branding.titleSuffix;
-            }]
+        metaTags: {
+            title: 'User profile'
         }
     });
 }]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/signin.state.js b/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
index 9855058..96ff967 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
@@ -29,10 +29,8 @@ angular
     .state('signin', {
         url: '/signin',
         templateUrl: '/signin.html',
-        resolve: {
-            $title: ['IgniteBranding', (branding) => {
-                return 'Management Tool and Configuration Wizard for Apache Ignite' + branding.titleSuffix;
-            }]
+        metaTags: {
+            title: 'Management Tool and Configuration Wizard for Apache Ignite'
         }
     });
 }])

http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/sql.state.js b/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
index 0c53bb6..a48842f 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
@@ -35,10 +35,8 @@ angular
         data: {
             loading: 'Loading notebook screen...'
         },
-        resolve: {
-            $title: ['IgniteBranding', (branding) => {
-                return 'Query notebook' + branding.titleSuffix;
-            }]
+        metaTags: {
+            title: 'Query notebook'
         }
     })
     .state('base.sql.demo', {
@@ -47,10 +45,8 @@ angular
         data: {
             loading: 'Enable SQL demo...'
         },
-        resolve: {
-            $title: ['IgniteBranding', (branding) => {
-                return 'SQL demo' + branding.titleSuffix;
-            }]
+        metaTags: {
+            title: 'SQL demo'
         }
     });
 }]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/config.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/config.js b/modules/control-center-web/src/main/js/config.js
index 8000eac..1678d83 100644
--- a/modules/control-center-web/src/main/js/config.js
+++ b/modules/control-center-web/src/main/js/config.js
@@ -33,6 +33,7 @@ System.config({
     "angular-ui-ace": "github:angular-ui/ui-ace@0.2.3",
     "angular-ui-grid": "github:angular-ui/bower-ui-grid@3.1.1",
     "angular-ui-router": "github:angular-ui/ui-router@0.2.18",
+    "angular-ui-router-metatags": "github:tinusn/ui-router-metatags@1.0.3",
     "angular-ui-router-title": "github:nonplus/angular-ui-router-title@0.0.4",
     "babel": "npm:babel-core@5.8.35",
     "babel-runtime": "npm:babel-runtime@5.8.35",

http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/package.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/package.json b/modules/control-center-web/src/main/js/package.json
index 69c3af9..4a1101c 100644
--- a/modules/control-center-web/src/main/js/package.json
+++ b/modules/control-center-web/src/main/js/package.json
@@ -83,7 +83,7 @@
       "angular-tree-control": "github:wix/angular-tree-control@^0.2.23",
       "angular-ui-grid": "github:angular-ui/bower-ui-grid@^3.0.7",
       "angular-ui-router": "github:angular-ui/ui-router@^0.2.15",
-      "angular-ui-router-title": "github:nonplus/angular-ui-router-title@^0.0.4",
+      "angular-ui-router-metatags": "github:tinusn/ui-router-metatags@^1.0.3",
       "blob": "github:eligrey/Blob.js@master",
       "bootstrap-carousel": "github:twbs/bootstrap@^3.3.6",
       "css": "github:systemjs/plugin-css@^0.1.20",

http://git-wip-us.apache.org/repos/asf/ignite/blob/91698c24/modules/control-center-web/src/main/js/views/index.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/index.jade b/modules/control-center-web/src/main/js/views/index.jade
index b884db2..eebfd89 100644
--- a/modules/control-center-web/src/main/js/views/index.jade
+++ b/modules/control-center-web/src/main/js/views/index.jade
@@ -21,7 +21,10 @@ html(ng-app='ignite-web-console' id='app')
         link(rel='shortcut icon' href='favicon.ico')
         meta(http-equiv='content-type' content='text/html; charset=UTF8')
 
-        title(ng-bind='$title')
+        title(ng-bind='$meta.title')
+
+        meta(name='description' content='{{$meta.description}}')
+        meta(name='keywords' content='{{$meta.keywords}}')
 
         link(rel='stylesheet', href='/app.min.css')
 


[49/50] ignite git commit: IGNITE-843 Minor fix.

Posted by an...@apache.org.
IGNITE-843 Minor fix.


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

Branch: refs/heads/ignite-843
Commit: f0d50691c1db44487654b2900277edc79b64ac19
Parents: c56ac30
Author: Andrey <an...@gridgain.com>
Authored: Fri Mar 4 09:21:26 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Fri Mar 4 09:21:26 2016 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/views/index.jade | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/f0d50691/modules/control-center-web/src/main/js/views/index.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/index.jade b/modules/control-center-web/src/main/js/views/index.jade
index 2d1c339..28921d6 100644
--- a/modules/control-center-web/src/main/js/views/index.jade
+++ b/modules/control-center-web/src/main/js/views/index.jade
@@ -27,6 +27,7 @@ html(ng-app='ignite-web-console' id='app')
 
         meta(name='description' content='{{$meta.description}}')
         meta(name='keywords' content='{{$meta.keywords}}')
+        meta(ng-repeat='(key, value) in $meta.properties' property='{{::key}}' content='{{::value}}')
 
         link(rel='stylesheet', href='/app.min.css')
 


[16/50] ignite git commit: IGNITE-2287 Fixed wrong package name.

Posted by an...@apache.org.
IGNITE-2287 Fixed wrong package name.


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

Branch: refs/heads/ignite-843
Commit: a78f2a5b5e6c1a30c5b7b8742ede5ef4cd712962
Parents: e52058d
Author: vsisko <vs...@gridgain.com>
Authored: Sat Feb 20 14:49:47 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Sat Feb 20 14:49:47 2016 +0700

----------------------------------------------------------------------
 .../app/modules/states/configuration/summary/summary.controller.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a78f2a5b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
index 5b8aa31..adcc467 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
@@ -259,7 +259,7 @@ export default [
             zip.file(srcPath + 'config/ClientConfigurationFactory.java', $generatorJava.cluster(cluster, 'config', 'ClientConfigurationFactory', clientNearCfg));
 
             if ($generatorCommon.dataForExampleConfigured(cluster)) {
-                zip.file(srcPath + 'example/ExampleStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ExampleStartup',
+                zip.file(srcPath + 'example/ExampleStartup.java', $generatorJava.nodeStartup(cluster, 'example', 'ExampleStartup',
                     'ServerConfigurationFactory.createConfiguration()', 'config.ServerConfigurationFactory'));
             }
 


[38/50] ignite git commit: IGNITE-843 Refactored branding module.

Posted by an...@apache.org.
IGNITE-843 Refactored branding module.


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

Branch: refs/heads/ignite-843
Commit: 4c23c8e8303d61a4995530365cbdad5fb2b9b574
Parents: 06af6d2
Author: Andrey <an...@gridgain.com>
Authored: Wed Mar 2 17:42:11 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Wed Mar 2 17:42:11 2016 +0700

----------------------------------------------------------------------
 .../js/app/modules/branding/Logo.provider.js    | 42 ---------
 .../js/app/modules/branding/Terms.provider.js   | 41 --------
 .../js/app/modules/branding/branding.module.js  | 22 +++--
 .../app/modules/branding/branding.provider.js   | 99 ++++++++++++++++++++
 .../app/modules/branding/features.directive.js  | 35 +++++++
 .../js/app/modules/branding/footer.directive.js | 34 +++++++
 .../modules/branding/header-logo.directive.js   | 34 +++++++
 .../js/app/modules/branding/header-logo.jade    | 18 ++++
 .../modules/branding/header-title.directive.js  | 35 +++++++
 .../js/app/modules/branding/logo.directive.js   | 34 -------
 .../src/main/js/app/modules/branding/logo.jade  | 18 ----
 .../branding/powered-by-apache.directive.js     |  4 +-
 .../js/app/modules/branding/terms.directive.js  |  5 +-
 .../js/app/modules/branding/title.directive.js  | 35 -------
 .../main/js/app/modules/states/signin.state.js  |  4 +-
 .../src/main/js/public/stylesheets/style.scss   |  4 +
 .../src/main/js/views/includes/footer.jade      |  3 +-
 .../src/main/js/views/includes/header.jade      |  2 +-
 .../src/main/js/views/reset.jade                |  4 +-
 .../src/main/js/views/signin.jade               | 12 +--
 20 files changed, 285 insertions(+), 200 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/Logo.provider.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/Logo.provider.js b/modules/control-center-web/src/main/js/app/modules/branding/Logo.provider.js
deleted file mode 100644
index fcefc7c..0000000
--- a/modules/control-center-web/src/main/js/app/modules/branding/Logo.provider.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default ['IgniteLogo', [function() {
-    let poweredBy = false;
-
-    let url = '/images/ignite-logo.png';
-
-    let title = 'Management console for Apache Ignite';
-
-    this.url = (_url) => {
-        url = _url;
-
-        poweredBy = true;
-    };
-
-    this.title = (_title) => {
-        title = _title;
-    };
-
-    this.$get = [() => {
-        return {
-            url,
-            poweredBy,
-            title
-        };
-    }];
-}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/Terms.provider.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/Terms.provider.js b/modules/control-center-web/src/main/js/app/modules/branding/Terms.provider.js
deleted file mode 100644
index c9c6009..0000000
--- a/modules/control-center-web/src/main/js/app/modules/branding/Terms.provider.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default ['IgniteTerms', [function() {
-    let _rows = [
-        'Apache Ignite Web Console',
-        '© 2016 The Apache Software Foundation.',
-        'Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are trademarks of The Apache Software Foundation.'
-    ];
-
-    let _state;
-
-    this.footerRows = function(rows) {
-        _rows = rows;
-    };
-
-    this.termsState = function(state) {
-        _state = state;
-    };
-
-    this.$get = [function() {
-        return {
-            footerRows: _rows,
-            termsState: _state
-        };
-    }];
-}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/branding.module.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/branding.module.js b/modules/control-center-web/src/main/js/app/modules/branding/branding.module.js
index dc65efc..5a3e843 100644
--- a/modules/control-center-web/src/main/js/app/modules/branding/branding.module.js
+++ b/modules/control-center-web/src/main/js/app/modules/branding/branding.module.js
@@ -17,22 +17,24 @@
 
 import angular from 'angular';
 
-import IgniteLogo from './Logo.provider';
-import IgniteTerms from './Terms.provider';
+import IgniteBranding from './branding.provider';
 
-import ignitePoweredByApache from './powered-by-apache.directive';
-import igniteLogo from './logo.directive';
-import igniteTitle from './title.directive';
+import igniteHeaderLogo from './header-logo.directive';
+import igniteHeaderTitle from './header-title.directive';
 import igniteTerms from './terms.directive';
+import igniteFeatures from './features.directive';
+import igniteFooter from './footer.directive';
+import ignitePoweredByApache from './powered-by-apache.directive';
 
 angular
 .module('ignite-console.branding', [
 
 ])
-.provider(...IgniteLogo)
-.provider(...IgniteTerms)
+.provider(...IgniteBranding)
 .directive(...ignitePoweredByApache)
-.directive(...igniteLogo)
-.directive(...igniteTitle)
-.directive(...igniteTerms);
+.directive(...igniteHeaderLogo)
+.directive(...igniteHeaderTitle)
+.directive(...igniteTerms)
+.directive(...igniteFeatures)
+.directive(...igniteFooter);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/branding.provider.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/branding.provider.js b/modules/control-center-web/src/main/js/app/modules/branding/branding.provider.js
new file mode 100644
index 0000000..d4c12a4
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/branding/branding.provider.js
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default ['IgniteBranding', [function() {
+    let headerLogo = '/images/ignite-logo.png';
+
+    let headerText = 'Management console for Apache Ignite';
+
+    let showIgniteLogo = false;
+
+    let footerHtml = [
+        '<p>Apache Ignite Web Console</p>',
+        '<p>© 2016 The Apache Software Foundation.</p>',
+        '<p>Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are trademarks of The Apache Software Foundation.</p>'
+    ];
+
+    let termsState;
+
+    let featuresHtml = [
+        '<p>Web Console is an interactive management tool which allows to:</p>',
+        '<ul>',
+        '   <li>Create and download cluster configurations</li>',
+        '   <li>Automatically import domain model from any RDBMS</li>',
+        '   <li>Connect to cluster and run SQL analytics on it</li>',
+        '</ul>'
+    ];
+
+    /**
+     * Change logo in header.
+     *
+     * @param {String} url Logo path.
+     */
+    this.headerLogo = (url) => {
+        headerLogo = url;
+
+        showIgniteLogo = true;
+    };
+
+    /**
+     * Change text in header.
+     *
+     * @param {String} text Header text.
+     */
+    this.headerText = (text) => {
+        headerText = text;
+    };
+
+    /**
+     * Change text in features.
+     *
+     * @param {Array.<String>} rows Features text.
+     */
+    this.featuresHtml = (rows) => {
+        featuresHtml = rows;
+    };
+
+    /**
+     * Change text in footer.
+     *
+     * @param {Array.<String>} rows Footer text.
+     */
+    this.footerHtml = (rows) => {
+        footerHtml = rows;
+    };
+
+    /**
+     * Set terms and conditions stage.
+     *
+     * @param {String} state
+     */
+    this.termsState = (state) => {
+        termsState = state;
+    };
+
+    this.$get = [() => {
+        return {
+            headerLogo,
+            headerText,
+            featuresHtml: featuresHtml.join('\n'),
+            footerHtml: footerHtml.join('\n'),
+            showIgniteLogo,
+            termsState
+        };
+    }];
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/features.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/features.directive.js b/modules/control-center-web/src/main/js/app/modules/branding/features.directive.js
new file mode 100644
index 0000000..0477be6
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/branding/features.directive.js
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const template = `<div class='features' ng-bind-html='features.html'></div>`;
+
+export default ['igniteFeatures', ['IgniteBranding', (branding) => {
+    function controller() {
+        const ctrl = this;
+
+        ctrl.html = branding.featuresHtml;
+    }
+
+    return {
+        restrict: 'E',
+        template,
+        controller,
+        controllerAs: 'features',
+        replace: true
+    };
+}]];
+

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/footer.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/footer.directive.js b/modules/control-center-web/src/main/js/app/modules/branding/footer.directive.js
new file mode 100644
index 0000000..1312f98
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/branding/footer.directive.js
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const template = `<div class='footer' ng-bind-html='footer.html'></div>`;
+
+export default ['igniteFooter', ['IgniteBranding', (branding) => {
+    function controller() {
+        const ctrl = this;
+
+        ctrl.html = branding.footerHtml;
+    }
+
+    return {
+        restrict: 'E',
+        template,
+        controller,
+        controllerAs: 'footer',
+        replace: true
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/header-logo.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/header-logo.directive.js b/modules/control-center-web/src/main/js/app/modules/branding/header-logo.directive.js
new file mode 100644
index 0000000..1bfbc45
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/branding/header-logo.directive.js
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import template from './header-logo.jade!';
+
+export default ['igniteHeaderLogo', ['IgniteBranding', (branding) => {
+    function controller() {
+        const ctrl = this;
+
+        ctrl.url = branding.headerLogo;
+    }
+
+    return {
+        restrict: 'E',
+        template,
+        controller,
+        controllerAs: 'logo',
+        replace: true
+    };
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/header-logo.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/header-logo.jade b/modules/control-center-web/src/main/js/app/modules/branding/header-logo.jade
new file mode 100644
index 0000000..b807921
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/branding/header-logo.jade
@@ -0,0 +1,18 @@
+//-
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+a(href='/')
+    img.navbar-brand(ng-src='{{logo.url}}' height='40')

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/header-title.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/header-title.directive.js b/modules/control-center-web/src/main/js/app/modules/branding/header-title.directive.js
new file mode 100644
index 0000000..60b9f2f
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/branding/header-title.directive.js
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const template = `<label class='title'>{{::title.text}}</label>`;
+
+export default ['igniteHeaderTitle', ['IgniteBranding', (branding) => {
+    function controller() {
+        const ctrl = this;
+
+        ctrl.text = branding.headerText;
+    }
+
+    return {
+        restrict: 'E',
+        template,
+        controller,
+        controllerAs: 'title',
+        replace: true
+    };
+}]];
+

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/logo.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/logo.directive.js b/modules/control-center-web/src/main/js/app/modules/branding/logo.directive.js
deleted file mode 100644
index ff46945..0000000
--- a/modules/control-center-web/src/main/js/app/modules/branding/logo.directive.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import templateLogo from './logo.jade!';
-
-export default ['igniteLogo', ['IgniteLogo', (IgniteLogo) => {
-    function controller() {
-        const ctrl = this;
-
-        ctrl.url = IgniteLogo.url;
-    }
-
-    return {
-        restrict: 'E',
-        template: templateLogo,
-        controller,
-        controllerAs: 'logo',
-        replace: true
-    };
-}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/logo.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/logo.jade b/modules/control-center-web/src/main/js/app/modules/branding/logo.jade
deleted file mode 100644
index b807921..0000000
--- a/modules/control-center-web/src/main/js/app/modules/branding/logo.jade
+++ /dev/null
@@ -1,18 +0,0 @@
-//-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
-a(href='/')
-    img.navbar-brand(ng-src='{{logo.url}}' height='40')

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/powered-by-apache.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/powered-by-apache.directive.js b/modules/control-center-web/src/main/js/app/modules/branding/powered-by-apache.directive.js
index fd2ab98..37f1dec 100644
--- a/modules/control-center-web/src/main/js/app/modules/branding/powered-by-apache.directive.js
+++ b/modules/control-center-web/src/main/js/app/modules/branding/powered-by-apache.directive.js
@@ -17,11 +17,11 @@
 
 import templatePoweredByApache from './powered-by-apache.jade!';
 
-export default ['ignitePoweredByApache', ['IgniteLogo', (IgniteLogo) => {
+export default ['ignitePoweredByApache', ['IgniteBranding', (branding) => {
     function controller() {
         const ctrl = this;
 
-        ctrl.show = IgniteLogo.poweredBy;
+        ctrl.show = branding.showIgniteLogo;
     }
 
     return {

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/terms.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/terms.directive.js b/modules/control-center-web/src/main/js/app/modules/branding/terms.directive.js
index 22f2977..0207745 100644
--- a/modules/control-center-web/src/main/js/app/modules/branding/terms.directive.js
+++ b/modules/control-center-web/src/main/js/app/modules/branding/terms.directive.js
@@ -15,12 +15,11 @@
  * limitations under the License.
  */
 
-export default ['igniteTerms', ['IgniteTerms', (IgniteTerms) => {
+export default ['igniteTerms', ['IgniteBranding', (branding) => {
     function controller() {
         const ctrl = this;
 
-        ctrl.footerRows = IgniteTerms.footerRows;
-        ctrl.termsState = IgniteTerms.termsState;
+        ctrl.termsState = branding.termsState;
     }
 
     return {

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/branding/title.directive.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/branding/title.directive.js b/modules/control-center-web/src/main/js/app/modules/branding/title.directive.js
deleted file mode 100644
index 83b8a7b..0000000
--- a/modules/control-center-web/src/main/js/app/modules/branding/title.directive.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-const templateTitle = `<label class= 'title'>{{::title.text}}</label>`;
-
-export default ['igniteTitle', ['IgniteLogo', (IgniteLogo) => {
-    function controller() {
-        const ctrl = this;
-
-        ctrl.text = IgniteLogo.title;
-    }
-
-    return {
-        restrict: 'E',
-        template: templateTitle,
-        controller,
-        controllerAs: 'title',
-        replace: true
-    };
-}]];
-

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/signin.state.js b/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
index feaf76a..bf5baa9 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
@@ -36,9 +36,9 @@ angular
         }
     });
 }])
-.run(['$rootScope', '$state', 'Auth', 'IgniteTerms', function($root, $state, Auth, IgniteTerms) {
+.run(['$rootScope', '$state', 'Auth', 'IgniteBranding', function($root, $state, Auth, branding) {
     $root.$on('$stateChangeStart', function(event, toState) {
-        if (toState.name === IgniteTerms.termsState)
+        if (toState.name === branding.termsState)
             return;
 
         if (!Auth.authorized && (toState.name !== 'signin' && !_.startsWith(toState.name, 'password.'))) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/public/stylesheets/style.scss
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/public/stylesheets/style.scss b/modules/control-center-web/src/main/js/public/stylesheets/style.scss
index 4f2cf28..500d60c 100644
--- a/modules/control-center-web/src/main/js/public/stylesheets/style.scss
+++ b/modules/control-center-web/src/main/js/public/stylesheets/style.scss
@@ -95,6 +95,10 @@ hr {
     font-size: 22px;
 }
 
+.theme-line .footer {
+    text-align: center;
+}
+
 ul.navbar-nav, .sidebar-nav {
     li.active > a {
         color: $link-color;

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/views/includes/footer.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/includes/footer.jade b/modules/control-center-web/src/main/js/views/includes/footer.jade
index d057835..4ef3bf6 100644
--- a/modules/control-center-web/src/main/js/views/includes/footer.jade
+++ b/modules/control-center-web/src/main/js/views/includes/footer.jade
@@ -17,8 +17,7 @@
 .container.container-footer
     footer
         .col-md-offset-1.col-md-10
-            center(ignite-terms)
-                p(ng-repeat='item in terms.footerRows' ng-bind-html='item')
+            ignite-footer
         .col-md-1
             .pull-right
                 ignite-powered-by-apache

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/views/includes/header.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/includes/header.jade b/modules/control-center-web/src/main/js/views/includes/header.jade
index 3ed39b3..b4e095a 100644
--- a/modules/control-center-web/src/main/js/views/includes/header.jade
+++ b/modules/control-center-web/src/main/js/views/includes/header.jade
@@ -20,7 +20,7 @@ header#header.header
     table.container
         tr
             td.col-xs-3.col-sm-3.col-md-2
-                ignite-logo
+                ignite-header-logo
             td(ng-if='$root.user' style='padding-top: 20px')
                 ul.nav.navbar-nav(ignite-sidebar ignite-navbar)
                     li(ng-class='{active: $state.includes("base.configuration")}')

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/views/reset.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/reset.jade b/modules/control-center-web/src/main/js/views/reset.jade
index 468a493..e5b8f12 100644
--- a/modules/control-center-web/src/main/js/views/reset.jade
+++ b/modules/control-center-web/src/main/js/views/reset.jade
@@ -18,9 +18,9 @@ header#header.header
     table.container
         tr
             td.col-xs-3.col-sm-3.col-md-2
-                ignite-logo
+                ignite-header-logo
             td
-                ignite-title
+                ignite-header-title
 
 .container.body-container
     .main-content(ng-controller='resetPassword')

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c23c8e8/modules/control-center-web/src/main/js/views/signin.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/signin.jade b/modules/control-center-web/src/main/js/views/signin.jade
index 663b77b..9ec8dfd 100644
--- a/modules/control-center-web/src/main/js/views/signin.jade
+++ b/modules/control-center-web/src/main/js/views/signin.jade
@@ -24,9 +24,9 @@ header#header.header
     table.container
         tr
             td.col-xs-3.col-sm-3.col-md-2
-                ignite-logo
+                ignite-header-logo
             td
-                ignite-title
+                ignite-header-title
 
 .container.body-container
     .main-content(ng-controller='auth')
@@ -34,7 +34,7 @@ header#header.header
             .signin-greedy
                 .col-xs-12.col-md-6
                     form(name='form' novalidate)
-                        .modal-body.row(style='padding-bottom: 10px; margin: 0')
+                        .modal-body.row(style='padding: 0 0 10px 0; margin: 0')
                             .settings-row(ng-if='action == "signup"')
                                 h3.login-header Sign Up
                             .settings-row(ng-if='action == "signin"')
@@ -89,11 +89,7 @@ header#header.header
                                 button#login.btn.btn-primary(ng-click='auth(action, user_info)' ng-disabled='form.$invalid') Sign In
 
                     .col-xs-12.col-md-11.home-panel
-                        p Web Console is an interactive management tool which allows to:
-                        ul
-                            li Create and download cluster configurations
-                            li Automatically import domain model from any RDBMS
-                            li Connect to cluster and run SQL analytics on it
+                        ignite-features
                 .col-xs-12.col-md-6
                     #carousel.carousel.slide
                         // Indicators


[04/50] ignite git commit: IGNITE-2682 Added BinaryConfiguration.nameMapper property.

Posted by an...@apache.org.
IGNITE-2682 Added BinaryConfiguration.nameMapper property.


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

Branch: refs/heads/ignite-843
Commit: cb427d06145711095826b5a4171b172a1217186c
Parents: befbccf
Author: vsisko <vs...@gridgain.com>
Authored: Thu Feb 18 14:48:28 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Feb 18 14:48:28 2016 +0700

----------------------------------------------------------------------
 .../states/configuration/clusters/binary.jade   | 33 ++++++++++++++++----
 .../js/helpers/generator/generator-common.js    |  5 +--
 .../main/js/helpers/generator/generator-java.js |  6 ++++
 .../main/js/helpers/generator/generator-xml.js  |  2 ++
 .../src/main/js/serve/mongo.js                  |  9 +++++-
 5 files changed, 46 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/cb427d06/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
index 9e63adf..60e34db 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/binary.jade
@@ -28,7 +28,7 @@ form.panel.panel-default(name='binary' novalidate)
         .panel-body(ng-if='__show__')
             .col-sm-6
                 .settings-row
-                   ignite-form-field
+                    ignite-form-field
                         ignite-form-field-label
                             | ID mapper:
                         ignite-form-field-tooltip
@@ -40,7 +40,18 @@ form.panel.panel-default(name='binary' novalidate)
                             data-ng-model='#{model}.idMapper'
                         )
                 .settings-row
-                   ignite-form-field
+                    ignite-form-field
+                        ignite-form-field-label
+                            | Name mapper:
+                        ignite-form-field-tooltip
+                            | Name mapper
+                        ignite-form-field-java-class(
+                            data-id='nameMapper'
+                            data-name='nameMapper'
+                            data-ng-model='#{model}.nameMapper'
+                        )
+                .settings-row
+                    ignite-form-field
                         ignite-form-field-label
                             | Serializer:
                         ignite-form-field-tooltip
@@ -63,7 +74,7 @@ form.panel.panel-default(name='binary' novalidate)
                         .group-content(ng-form='form' ng-repeat='model in #{types} track by $index')
                             hr(ng-if='$index !== 0')
                             .settings-row
-                               ignite-form-field
+                                ignite-form-field
                                     ignite-form-field-label
                                         | Type name:
                                     ignite-form-field-tooltip
@@ -79,20 +90,30 @@ form.panel.panel-default(name='binary' novalidate)
                                         data-ng-required='true'
                                     )
                             .settings-row
-                               ignite-form-field
+                                ignite-form-field
                                     ignite-form-field-label
                                         | ID mapper:
                                     ignite-form-field-tooltip
                                         | Type and field ID mapper for binary objects#[br]
                                         | Ignite never writes full strings for field or type names. Instead, for performance reasons, Ignite writes integer hash codes for type and field names. It has been tested that hash code conflicts for the type names or the field names within the same type are virtually non-existent and, to gain performance, it is safe to work with hash codes. For the cases when hash codes for different types or fields actually do collide #[b BinaryIdMapper] allows to override the automatically generated hash code IDs for the type and field names
-              
                                     ignite-form-field-java-class(
                                         data-id='idMapper'
                                         data-name='idMapper'
                                         data-ng-model='model.idMapper'
                                     )
                             .settings-row
-                               ignite-form-field
+                                ignite-form-field
+                                    ignite-form-field-label
+                                        | Name mapper:
+                                    ignite-form-field-tooltip
+                                        | Name mapper
+                                    ignite-form-field-java-class(
+                                        data-id='nameMapper'
+                                        data-name='nameMapper'
+                                        data-ng-model='model.nameMapper'
+                                    )
+                            .settings-row
+                                ignite-form-field
                                     ignite-form-field-label
                                         | Serializer:
                                     ignite-form-field-tooltip

http://git-wip-us.apache.org/repos/asf/ignite/blob/cb427d06/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-common.js b/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
index e3b16e2..40614b6 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
@@ -499,8 +499,9 @@ $generatorCommon.secretPropertiesNeeded = function (cluster) {
 
 // Check that binary is configured.
 $generatorCommon.binaryIsDefined = function (binary) {
-    return binary && ($commonUtils.isDefinedAndNotEmpty(binary.idMapper) || $commonUtils.isDefinedAndNotEmpty(binary.serializer) ||
-        $commonUtils.isDefinedAndNotEmpty(binary.typeConfigurations) || ($commonUtils.isDefined(binary.compactFooter) && !binary.compactFooter));
+    return binary && ($commonUtils.isDefinedAndNotEmpty(binary.idMapper) || $commonUtils.isDefinedAndNotEmpty(binary.nameMapper) ||
+        $commonUtils.isDefinedAndNotEmpty(binary.serializer) || $commonUtils.isDefinedAndNotEmpty(binary.typeConfigurations) ||
+        ($commonUtils.isDefined(binary.compactFooter) && !binary.compactFooter));
 };
 
 // Extract domain model metadata location.

http://git-wip-us.apache.org/repos/asf/ignite/blob/cb427d06/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index cf76738..08e88c6 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -594,6 +594,9 @@ $generatorJava.clusterBinary = function (cluster, res) {
         if ($commonUtils.isDefinedAndNotEmpty(binary.idMapper))
             res.line(varName + '.setIdMapper(new ' + res.importClass(binary.idMapper) + '());');
 
+        if ($commonUtils.isDefinedAndNotEmpty(binary.nameMapper))
+            res.line(varName + '.setNameMapper(new ' + res.importClass(binary.nameMapper) + '());');
+
         if ($commonUtils.isDefinedAndNotEmpty(binary.serializer))
             res.line(varName + '.setSerializer(new ' + res.importClass(binary.serializer) + '());');
 
@@ -663,6 +666,9 @@ $generatorJava.binaryTypeConfiguration = function (type, res) {
     if ($commonUtils.isDefinedAndNotEmpty(type.idMapper))
         res.line(typeVar + '.setIdMapper(new ' + res.importClass(type.idMapper) + '());');
 
+    if ($commonUtils.isDefinedAndNotEmpty(type.nameMapper))
+        res.line(typeVar + '.setNameMapper(new ' + res.importClass(type.nameMapper) + '());');
+
     if ($commonUtils.isDefinedAndNotEmpty(type.serializer))
         res.line(typeVar + '.setSerializer(new ' + res.importClass(type.serializer) + '());');
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/cb427d06/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
index dcacae9..6d4fd6c 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
@@ -419,6 +419,7 @@ $generatorXml.clusterBinary = function (cluster, res) {
 
         $generatorXml.emptyBeanProperty(res, binary, 'idMapper');
         $generatorXml.emptyBeanProperty(res, binary, 'serializer');
+        $generatorXml.emptyBeanProperty(res, binary, 'nameMapper');
 
         if ($commonUtils.isDefinedAndNotEmpty(binary.typeConfigurations)) {
             res.startBlock('<property name="typeConfigurations">');
@@ -429,6 +430,7 @@ $generatorXml.clusterBinary = function (cluster, res) {
 
                 $generatorXml.property(res, type, 'typeName');
                 $generatorXml.emptyBeanProperty(res, type, 'idMapper');
+                $generatorXml.emptyBeanProperty(res, type, 'nameMapper');
                 $generatorXml.emptyBeanProperty(res, type, 'serializer');
                 $generatorXml.property(res, type, 'enum', undefined, false);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/cb427d06/modules/control-center-web/src/main/js/serve/mongo.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/mongo.js b/modules/control-center-web/src/main/js/serve/mongo.js
index 5f7ef9e..cfb0040 100644
--- a/modules/control-center-web/src/main/js/serve/mongo.js
+++ b/modules/control-center-web/src/main/js/serve/mongo.js
@@ -375,8 +375,15 @@ module.exports.factory = function(deepPopulatePlugin, passportMongo, settings, p
         },
         binaryConfiguration: {
             idMapper: String,
+            nameMapper: String,
             serializer: String,
-            typeConfigurations: [{typeName: String, idMapper: String, serializer: String, enum: Boolean}],
+            typeConfigurations: [{
+                typeName: String,
+                idMapper: String,
+                nameMapper: String,
+                serializer: String,
+                enum: Boolean
+            }],
             compactFooter: Boolean
         },
         caches: [{type: ObjectId, ref: 'Cache'}],


[15/50] ignite git commit: IGNITE-2696 Reworked pom artifact name generation.

Posted by an...@apache.org.
IGNITE-2696 Reworked pom artifact name generation.


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

Branch: refs/heads/ignite-843
Commit: e52058de8ac486e991746dfbfe4783fc7e664a81
Parents: 75ad7be
Author: vsisko <vs...@gridgain.com>
Authored: Sat Feb 20 14:49:05 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Sat Feb 20 14:49:05 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/helpers/generator/generator-pom.js          | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/e52058de/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js b/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
index 4d9724f..804b607 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-pom.js
@@ -18,6 +18,13 @@
 // pom.xml generation entry point.
 $generatorPom = {};
 
+$generatorPom.escapeId = function (s) {
+    if (typeof(s) !== 'string')
+        return s;
+
+    return s.replace(/[^A-Za-z0-9_\-.]+/g, '_');
+};
+
 $generatorPom.addProperty = function (res, tag, val) {
     res.line('<' + tag + '>' + val + '</' + tag + '>');
 };
@@ -124,7 +131,7 @@ $generatorPom.pom = function (cluster, igniteVersion, mvnRepositories, res) {
     res.needEmptyLine = true;
 
     $generatorPom.addProperty(res, 'groupId', 'org.apache.ignite');
-    $generatorPom.addProperty(res, 'artifactId', 'ignite-generated-model');
+    $generatorPom.addProperty(res, 'artifactId', 'ignite-generated-' + $generatorPom.escapeId(cluster.name));
     $generatorPom.addProperty(res, 'version', igniteVersion);
 
     res.needEmptyLine = true;


[46/50] ignite git commit: IGNITE-843 Fixed missed catch() blocks.

Posted by an...@apache.org.
IGNITE-843 Fixed missed catch() blocks.


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

Branch: refs/heads/ignite-843
Commit: e253f45b3186273c4331df1ef5303710efdf2b9d
Parents: d55c820
Author: vsisko <vs...@gridgain.com>
Authored: Thu Mar 3 16:58:41 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Mar 3 16:58:41 2016 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/serve/routes/caches.js   | 3 ++-
 modules/control-center-web/src/main/js/serve/routes/clusters.js | 3 ++-
 modules/control-center-web/src/main/js/serve/routes/domains.js  | 4 +++-
 modules/control-center-web/src/main/js/serve/routes/igfs.js     | 3 ++-
 4 files changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/e253f45b/modules/control-center-web/src/main/js/serve/routes/caches.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/routes/caches.js b/modules/control-center-web/src/main/js/serve/routes/caches.js
index 005fa53..21f6e6b 100644
--- a/modules/control-center-web/src/main/js/serve/routes/caches.js
+++ b/modules/control-center-web/src/main/js/serve/routes/caches.js
@@ -97,7 +97,8 @@ module.exports.factory = function(_, express, mongo) {
                         .then(() => mongo.DomainModel.update({_id: {$in: domains}}, {$addToSet: {caches: cacheId}}, {multi: true}).exec())
                         .then(() => res.send(cacheId))
                         .catch((err) => mongo.handleError(res, err));
-                });
+                })
+                .catch((err) => mongo.handleError(res, err));
         });
 
         /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/e253f45b/modules/control-center-web/src/main/js/serve/routes/clusters.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/routes/clusters.js b/modules/control-center-web/src/main/js/serve/routes/clusters.js
index 3fcfca4..5621028 100644
--- a/modules/control-center-web/src/main/js/serve/routes/clusters.js
+++ b/modules/control-center-web/src/main/js/serve/routes/clusters.js
@@ -112,7 +112,8 @@ module.exports.factory = function(_, express, mongo) {
                         .then(() => mongo.Igfs.update({_id: {$nin: igfss}}, {$pull: {clusters: clusterId}}, {multi: true}).exec())
                         .then(() => res.send(clusterId))
                         .catch((err) => mongo.handleError(res, err));
-                });
+                })
+                .catch((err) => mongo.handleError(res, err));
         });
 
         /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/e253f45b/modules/control-center-web/src/main/js/serve/routes/domains.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/routes/domains.js b/modules/control-center-web/src/main/js/serve/routes/domains.js
index 257c7fa..6963294 100644
--- a/modules/control-center-web/src/main/js/serve/routes/domains.js
+++ b/modules/control-center-web/src/main/js/serve/routes/domains.js
@@ -101,7 +101,8 @@ module.exports.factory = (_, express, mongo) => {
                             return mongo.Cache.update({_id: {$in: caches}}, {$addToSet: {domains: savedDomain._id}}, {multi: true}).exec();
                         })
                         .then(() => _updateCacheStore(cacheStoreChanges));
-                });
+                })
+                .catch((err) => mongo.handleError(res, err));
         };
 
         const _save = (domains, res) => {
@@ -135,6 +136,7 @@ module.exports.factory = (_, express, mongo) => {
 
                                     return _saveDomainModel(domain, savedDomains);
                                 })
+                                .catch((err) => mongo.handleError(res, err))
                         );
                     }
                     else

http://git-wip-us.apache.org/repos/asf/ignite/blob/e253f45b/modules/control-center-web/src/main/js/serve/routes/igfs.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/routes/igfs.js b/modules/control-center-web/src/main/js/serve/routes/igfs.js
index c204079..7f03617 100644
--- a/modules/control-center-web/src/main/js/serve/routes/igfs.js
+++ b/modules/control-center-web/src/main/js/serve/routes/igfs.js
@@ -88,7 +88,8 @@ module.exports.factory = function(_, express, mongo) {
                         })
                         .then(() => res.send(igfsId))
                         .catch((err) => mongo.handleError(res, err));
-                });
+                })
+                .catch((err) => mongo.handleError(res, err));
         });
 
         /**


[17/50] ignite git commit: IGNITE-2287 Fixed of loading secret.properties.

Posted by an...@apache.org.
IGNITE-2287 Fixed of loading secret.properties.


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

Branch: refs/heads/ignite-843
Commit: 6212669f15129d0c2faa4c571c20dd7a65107066
Parents: a78f2a5
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Sat Feb 20 16:01:12 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Sat Feb 20 16:01:12 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/helpers/generator/generator-java.js   | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6212669f/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 87255c4..3d83605 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -2426,24 +2426,12 @@ $generatorJava.tryLoadSecretProperties = function (cluster, res) {
         $generatorJava.declareVariableCustom(res, 'props', 'java.util.Properties', 'new Properties()', 'private static final');
 
         res.startBlock('static {');
-
-        $generatorJava.declareVariableCustom(res, 'res', 'java.net.URL', 'IgniteConfiguration.class.getResource("/secret.properties")');
-
-        res.startBlock('try {');
-
-        $generatorJava.declareVariableCustom(res, 'propsFile', 'java.io.File', 'new File(res.toURI())');
-
-        res.needEmptyLine = true;
-
-        res.startBlock('try (' + res.importClass('java.io.InputStream') + ' in = new ' + res.importClass('java.io.FileInputStream') + '(propsFile)) {');
+        res.startBlock('try (' + res.importClass('java.io.InputStream') + ' in = IgniteConfiguration.class.getClassLoader().getResourceAsStream("secret.properties")) {');
         res.line('props.load(in);');
         res.endBlock('}');
-
-        res.endBlock('}');
         res.startBlock('catch (Exception ignored) {');
         res.line('// No-op.');
         res.endBlock('}');
-
         res.endBlock('}');
 
         res.needEmptyLine = true;


[24/50] ignite git commit: IGNITE-843 Fixed sql ui.

Posted by an...@apache.org.
IGNITE-843 Fixed sql ui.


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

Branch: refs/heads/ignite-843
Commit: 23b94aa02a9c87350d9e327fd29ab111af34d777
Parents: d558cc4
Author: Andrey <an...@gridgain.com>
Authored: Thu Feb 25 11:10:45 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Feb 25 11:10:45 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/views/sql/sql.jade              | 53 ++++++++++----------
 1 file changed, 27 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/23b94aa0/modules/control-center-web/src/main/js/views/sql/sql.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/sql/sql.jade b/modules/control-center-web/src/main/js/views/sql/sql.jade
index 8627118..ac7db65 100644
--- a/modules/control-center-web/src/main/js/views/sql/sql.jade
+++ b/modules/control-center-web/src/main/js/views/sql/sql.jade
@@ -42,37 +42,38 @@ mixin chart-settings(mdl)
         .col-xs-4
             +result-toolbar
 
-.row
-    ignite-information(data-title='With SQL notebook you can')
-        ul
-            li Create any number of queries
-            li Execute and explain SQL queries
-            li Execute scan queries
-            li View data in tabular form and as charts
-    ignite-loading
-        .docs-content(ng-controller='sqlController')
-            hr
+.row(ng-controller='sqlController')
+    .docs-content
+        .row(ng-if='notebook' bs-affix style='margin-bottom: 20px;')
+            .docs-header.notebook-header
+                h1.col-sm-6(ng-hide='notebook.edit')
+                    label(style='max-width: calc(100% - 60px)') {{notebook.name}}
+                    .btn-group(ng-if='!demo')
+                        +btn-toolbar('fa-pencil', 'notebook.edit = true;notebook.editName = notebook.name', 'Rename notebook')
+                        +btn-toolbar('fa-trash', 'removeNotebook()', 'Remove notebook')
+                h1.col-sm-6(ng-show='notebook.edit')
+                    i.btn.fa.fa-floppy-o(ng-show='notebook.editName' ng-click='renameNotebook(notebook.editName)' bs-tooltip data-title='Save notebook name' data-trigger='hover')
+                    .input-tip
+                        input.form-control(ng-model='notebook.editName' required on-enter='renameNotebook(notebook.editName)' on-escape='notebook.edit = false;')
+                h1.pull-right
+                    a.dropdown-toggle(data-toggle='dropdown' bs-dropdown='scrollParagraphs' data-placement='bottom-right') Scroll to query
+                        span.caret
+                    .btn-group(style='margin-top: 2px')
+                        +btn-toolbar('fa-plus', 'addParagraph()', 'Add new query')
+
+        ignite-information(data-title='With SQL notebook you can' style='margin-top: 0; margin-bottom: 30px')
+            ul
+                li Create any number of queries
+                li Execute and explain SQL queries
+                li Execute scan queries
+                li View data in tabular form and as charts
+
+        ignite-loading
             div(ng-if='notebookLoadFailed' style='text-align: center')
                 h2 Failed to load notebook
                 label.col-sm-12 Notebook not accessible any more. Go back to configuration or open to another notebook.
                 button.h3.btn.btn-primary(ui-sref='base.configuration.clusters') Back to configuration
             div(ng-if='notebook')
-                .row(bs-affix style='margin-bottom: 10px')
-                    .docs-header.notebook-header
-                        h1.col-sm-6(ng-hide='notebook.edit')
-                            label(style='max-width: calc(100% - 60px)') {{notebook.name}}
-                            .btn-group(ng-if='!demo')
-                                +btn-toolbar('fa-pencil', 'notebook.edit = true;notebook.editName = notebook.name', 'Rename notebook')
-                                +btn-toolbar('fa-trash', 'removeNotebook()', 'Remove notebook')
-                        h1.col-sm-6(ng-show='notebook.edit')
-                            i.btn.fa.fa-floppy-o(ng-show='notebook.editName' ng-click='renameNotebook(notebook.editName)' bs-tooltip data-title='Save notebook name' data-trigger='hover')
-                            .input-tip
-                                input.form-control(ng-model='notebook.editName' required on-enter='renameNotebook(notebook.editName)' on-escape='notebook.edit = false;')
-                        h1.pull-right
-                            a.dropdown-toggle(data-toggle='dropdown' bs-dropdown='scrollParagraphs' data-placement='bottom-right') Scroll to query
-                                span.caret
-                            .btn-group(style='margin-top: 2px')
-                                +btn-toolbar('fa-plus', 'addParagraph()', 'Add new query')
                 .docs-body.paragraphs
                     .panel-group(bs-collapse ng-model='notebook.expandedParagraphs' data-allow-multiple='true' data-start-collapsed='false')
                         .panel.panel-default(ng-repeat='paragraph in notebook.paragraphs')


[29/50] ignite git commit: IGNITE-843 Fixed speed of very large data (more than 300 domains and caches) + lazy init.

Posted by an...@apache.org.
IGNITE-843 Fixed speed of very large data (more than 300 domains and caches) + lazy init.


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

Branch: refs/heads/ignite-843
Commit: 711086a4e517526f0cb7d82d3e73d69dcda2a7c0
Parents: 2d178a5
Author: Dmitriyff <dm...@gmail.com>
Authored: Thu Feb 25 18:59:40 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Feb 25 18:59:40 2016 +0700

----------------------------------------------------------------------
 .../main/js/app/filters/byName/byName.filter.js | 23 +++++++++++
 .../control-center-web/src/main/js/app/index.js |  2 +
 .../configuration/summary/summary.controller.js |  9 +++--
 .../main/js/views/configuration/summary.jade    | 41 ++++++++++++++------
 4 files changed, 60 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/711086a4/modules/control-center-web/src/main/js/app/filters/byName/byName.filter.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/filters/byName/byName.filter.js b/modules/control-center-web/src/main/js/app/filters/byName/byName.filter.js
new file mode 100644
index 0000000..3b0746f
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/filters/byName/byName.filter.js
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default ['byName', [() => (arr, search) => {
+    if (!(arr && arr.length) || !search)
+        return arr;
+
+    return _.filter(arr, ({ name }) => name.indexOf(search) >= 0);
+}]];

http://git-wip-us.apache.org/repos/asf/ignite/blob/711086a4/modules/control-center-web/src/main/js/app/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/index.js b/modules/control-center-web/src/main/js/app/index.js
index eb76256..25ea53f 100644
--- a/modules/control-center-web/src/main/js/app/index.js
+++ b/modules/control-center-web/src/main/js/app/index.js
@@ -102,6 +102,7 @@ import IgniteCountries from './services/Countries/Countries.service';
 
 // Filters.
 import hasPojo from './filters/hasPojo/hasPojo.filter';
+import byName from './filters/byName/byName.filter';
 
 angular
 .module('ignite-console', [
@@ -149,6 +150,7 @@ angular
 // Providers.
 // Filters.
 .filter(...hasPojo)
+.filter(...byName)
 .config(['$stateProvider', '$locationProvider', '$urlRouterProvider', function($stateProvider, $locationProvider, $urlRouterProvider) {
     // Set up the states.
     $stateProvider

http://git-wip-us.apache.org/repos/asf/ignite/blob/711086a4/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
index adcc467..48d7b83 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
@@ -222,15 +222,18 @@ export default [
             srvCfg.name = cluster.name + '-server.xml';
         };
 
-        const updateTab = (cluster) => {
+        $scope.$watch('cluster', (cluster) => {
             if (!cluster)
                 return;
 
             if (!$filter('hasPojo')(cluster) && $scope.tabsClient.activeTab === 3)
                 $scope.tabsClient.activeTab = 0;
-        };
+        });
 
-        $scope.$watch('cluster', updateTab);
+        $scope.$watch('cluster._id', () => {
+            $scope.tabsClient.init = [];
+            $scope.tabsServer.init = [];
+        });
 
         // TODO IGNITE-2114: implemented as independent logic for download.
         $scope.downloadConfiguration = function() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/711086a4/modules/control-center-web/src/main/js/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/summary.jade b/modules/control-center-web/src/main/js/views/configuration/summary.jade
index efff15c..176c483 100644
--- a/modules/control-center-web/src/main/js/views/configuration/summary.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/summary.jade
@@ -32,10 +32,27 @@ mixin ignite-form-field-tooltip(message)
         .padding-dflt(ng-if='!clusters || clusters.length == 0')
             | You have no clusters configured. Please configure them #[a(ui-sref='base.configuration.clusters') here].
 
-        div(ng-show='clusters || clusters.length > 0')
-            +main-table('clusters', 'clusters', 'clusterName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}', 'name')
+        div(ng-show='clusters && clusters.length > 0')
+            .padding-bottom-dflt
+                table.links
+                    thead
+                        tr
+                            th
+                                lable.labelHeader.labelFormField clusters:
+                                .col-sm-3.pull-right(style='padding: 0')
+                                    input.form-control(type='text' ng-model='clusterName' placeholder='Filter clusters...' value='')
+                    tbody
+                        tr
+                            td
+                                .scrollable-y(ng-show='(clusters | byName:clusterName).length > 0' style='max-height: 200px')
+                                    table
+                                        tbody
+                                            tr(ng-repeat='row in (clusters | byName:clusterName) track by row._id' ignite-bs-affix-update)
+                                                td
+                                                    a(ng-class='{active: row._id == selectedItem._id}' on-click-focus='clusterName' ng-click='selectItem(row)') {{$index + 1}}) {{row.name}}
+                                label.placeholder(ng-show='(clusters | byName:clusterName).length == 0') No clusters found
 
-            div(ng-show='selectedItem && tableVisibleRow(displayedRows, selectedItem)')
+            div(ng-show='selectedItem && (clusters | byName:clusterName).length')
                 .padding-top-dflt(bs-affix)
                     button.btn.btn-primary(id='download' ng-click='downloadConfiguration()' bs-tooltip='' data-title='Download project' data-placement='bottom') Download project
                     .btn.btn-primary(bs-tooltip='' data-title='Preview generated project structure' data-placement='bottom')
@@ -55,13 +72,13 @@ mixin ignite-form-field-tooltip(message)
                             ignite-ui-ace-tabs.summary-tabs
                                 div(bs-tabs data-bs-active-pane="tabsServer.activeTab" template='configuration/summary-tabs.html')
                                     div(bs-pane title='XML')
-                                        ignite-ui-ace-xml(data-cluster='cluster')
+                                        ignite-ui-ace-xml(ng-if='tabsServer.activeTab == 0 || tabsServer.init[0]' ng-init='tabsServer.init[0] = true' data-cluster='cluster')
                                     div(bs-pane title='Java')
-                                        ignite-ui-ace-java(data-cluster='cluster')
+                                        ignite-ui-ace-java(ng-if='tabsServer.activeTab == 1 || tabsServer.init[1]' ng-init='tabsServer.init[1] = true' data-cluster='cluster')
                                     div(bs-pane title='POM')
-                                        ignite-ui-ace-pom(data-cluster='cluster')
+                                        ignite-ui-ace-pom(ng-if='tabsServer.activeTab == 2 || tabsServer.init[2]' ng-init='tabsServer.init[2] = true' data-cluster='cluster')
                                     div(bs-pane title='Dockerfile')
-                                        ignite-ui-ace-docker(data-cluster='cluster' ng-model='ctrl.data.docker')
+                                        ignite-ui-ace-docker(ng-if='tabsServer.activeTab == 3 || tabsServer.init[3]' ng-init='tabsServer.init[3] = true' data-cluster='cluster' ng-model='ctrl.data.docker')
 
                     .panel.panel-default
                         .panel-heading(role='tab' bs-collapse-toggle)
@@ -135,10 +152,10 @@ mixin ignite-form-field-tooltip(message)
                             .summary-tabs(ignite-ui-ace-tabs)
                                 div(bs-tabs data-bs-active-pane="tabsClient.activeTab" template='configuration/summary-tabs.html')
                                     div(bs-pane title='XML')
-                                        ignite-ui-ace-xml(data-cluster='cluster' data-cluster-cfg='#{nearCfg}')
+                                        ignite-ui-ace-xml(ng-if='tabsClient.activeTab == 0 || tabsClient.init[0]' ng-init='tabsClient.init[0] = true' data-cluster='cluster' data-cluster-cfg='#{nearCfg}')
                                     div(bs-pane title='Java')
-                                        ignite-ui-ace-java(data-cluster='cluster' data-cluster-cfg='#{nearCfg}')
+                                        ignite-ui-ace-java(ng-if='tabsClient.activeTab == 1 || tabsClient.init[1]' ng-init='tabsClient.init[1] = true' data-cluster='cluster' data-cluster-cfg='#{nearCfg}')
                                     div(bs-pane title='POM')
-                                        ignite-ui-ace-pom(data-cluster='cluster')
-                                    div(bs-pane title='POJO' ng-show='cluster | hasPojo')
-                                        ignite-ui-ace-pojos(data-cluster='cluster' ng-model='ctrl.data.pojos')
+                                        ignite-ui-ace-pom(ng-if='tabsClient.activeTab == 2 || tabsClient.init[2]' ng-init='tabsClient.init[2] = true' data-cluster='cluster')
+                                    div(bs-pane title='POJO' ng-if='cluster | hasPojo')
+                                        ignite-ui-ace-pojos(ng-if='tabsClient.activeTab == 3 || tabsClient.init[3]' ng-init='tabsClient.init[3] = true' data-cluster='cluster' ng-model='ctrl.data.pojos')


[36/50] ignite git commit: IGNITE-843 Fixed download.

Posted by an...@apache.org.
IGNITE-843 Fixed download.


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

Branch: refs/heads/ignite-843
Commit: 440aa002a9b550b154c0575ae6f9a8a86e6850fb
Parents: f045f53
Author: Andrey <an...@gridgain.com>
Authored: Mon Feb 29 13:50:25 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Mon Feb 29 13:50:25 2016 +0700

----------------------------------------------------------------------
 .../states/configuration/summary/summary.controller.js      | 9 +++++++++
 1 file changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/440aa002/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
index d4e3e98..c62dc82 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
@@ -265,6 +265,12 @@ export default [
 
             const zip = new JSZip();
 
+            if (!ctrl.data)
+                ctrl.data = {};
+
+            if (!ctrl.data.docker)
+                ctrl.data.docker = $generatorDocker.clusterDocker(cluster, 'latest');
+
             zip.file('Dockerfile', ctrl.data.docker);
             zip.file('.dockerignore', $generatorDocker.ignoreFile());
 
@@ -302,6 +308,9 @@ export default [
             zip.file('README.txt', $generatorReadme.readme().asString());
             zip.file('jdbc-drivers/README.txt', $generatorReadme.readmeJdbc().asString());
 
+            if (!ctrl.data.pojos)
+                ctrl.data.pojos = $generatorJava.pojos(cluster.caches);
+
             for (const pojo of ctrl.data.pojos) {
                 if (pojo.keyClass && JavaTypes.nonBuiltInClass(pojo.keyType))
                     zip.file(srcPath + pojo.keyType.replace(/\./g, '/') + '.java', pojo.keyClass);


[21/50] ignite git commit: IGNITE-2711 Stop refresh on paragraph remove.

Posted by an...@apache.org.
IGNITE-2711 Stop refresh on paragraph remove.


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

Branch: refs/heads/ignite-843
Commit: 5e3b91912eda5dcb9f5a3afb2811f61cfad152a9
Parents: daccaef
Author: Andrey <an...@gridgain.com>
Authored: Wed Feb 24 16:38:25 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Wed Feb 24 16:38:25 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/controllers/sql-controller.js   | 26 +++++++++++---------
 1 file changed, 14 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/5e3b9191/modules/control-center-web/src/main/js/controllers/sql-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/sql-controller.js b/modules/control-center-web/src/main/js/controllers/sql-controller.js
index a7abc82..84773b2 100644
--- a/modules/control-center-web/src/main/js/controllers/sql-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/sql-controller.js
@@ -407,23 +407,25 @@ consoleModule.controller('sqlController', function ($http, $timeout, $interval,
     $scope.removeParagraph = function(paragraph) {
         $confirm.confirm('Are you sure you want to remove: "' + paragraph.name + '"?')
             .then(function () {
-                    var paragraph_idx = _.findIndex($scope.notebook.paragraphs, function (item) {
-                        return paragraph == item;
-                    });
+                $scope.stopRefresh(paragraph);
 
-                    var panel_idx = _.findIndex($scope.expandedParagraphs, function (item) {
-                        return paragraph_idx == item;
-                    });
+                var paragraph_idx = _.findIndex($scope.notebook.paragraphs, function (item) {
+                    return paragraph == item;
+                });
+
+                var panel_idx = _.findIndex($scope.expandedParagraphs, function (item) {
+                    return paragraph_idx == item;
+                });
 
-                    if (panel_idx >= 0)
-                        $scope.expandedParagraphs.splice(panel_idx, 1);
+                if (panel_idx >= 0)
+                    $scope.expandedParagraphs.splice(panel_idx, 1);
 
-                    $scope.notebook.paragraphs.splice(paragraph_idx, 1);
+                $scope.notebook.paragraphs.splice(paragraph_idx, 1);
 
-                    $scope.rebuildScrollParagraphs();
+                $scope.rebuildScrollParagraphs();
 
-                    QueryNotebooks.save($scope.demo, $scope.notebook)
-                        .catch(_handleException);
+                QueryNotebooks.save($scope.demo, $scope.notebook)
+                    .catch(_handleException);
             });
     };
 


[07/50] ignite git commit: IGNITE-843 refactored toString() in POJO java code generation.

Posted by an...@apache.org.
IGNITE-843 refactored toString() in POJO java code generation.


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

Branch: refs/heads/ignite-843
Commit: 695c217b74ba9c12170f56ca17ca72915b4ccb05
Parents: 6a9ced4
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Feb 18 20:41:17 2016 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Feb 18 20:41:17 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/helpers/generator/generator-java.js       | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/695c217b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 08e88c6..abee0be 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -2073,15 +2073,13 @@ $generatorJava.javaClassCode = function (domain, key, pkg, useConstructor, inclu
     res.line('/** {@inheritDoc} */');
     res.startBlock('@Override public String toString() {');
 
+    res.startBlock('return \"' + type + ' [" + ');
+
     _.forEach(allFields, function (field, idx) {
-        if (idx === 0)
-            res.startBlock('return \"' + type + ' [' + field.javaFieldName + '=\" + ' + field.javaFieldName + ' +', type);
-        else
-            res.line('\", ' + field.javaFieldName + '=\" + ' + field.javaFieldName + ' +');
+        res.line('\"' + field.javaFieldName + '=\" + ' + field.javaFieldName + (idx < allFields.length - 1 ? ' + ", " + ' : ' +'));
     });
 
-    res.line('"]";');
-    res.endBlock();
+    res.endBlock('"]";');
     res.endBlock('}');
 
     res.endBlock('}');


[10/50] ignite git commit: IGNITE-843 Rename.

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


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

Branch: refs/heads/ignite-843
Commit: 473dd701713133ccb08ee969c8da4425dd72263f
Parents: ea979d8
Author: Andrey <an...@gridgain.com>
Authored: Sat Feb 20 10:26:40 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Sat Feb 20 10:26:40 2016 +0700

----------------------------------------------------------------------
 .../control-center-web/src/main/js/app/index.js |  14 +-
 .../main/js/app/modules/states/admin.state.js   |  36 +++++
 .../main/js/app/modules/states/admin/index.js   |  36 -----
 .../app/modules/states/configuration.state.js   | 162 +++++++++++++++++++
 .../app/modules/states/configuration/index.js   | 162 -------------------
 .../main/js/app/modules/states/login/index.js   |  55 -------
 .../main/js/app/modules/states/logout.state.js  |  33 ++++
 .../main/js/app/modules/states/logout/index.js  |  33 ----
 .../js/app/modules/states/password.state.js     |  40 +++++
 .../js/app/modules/states/password/index.js     |  40 -----
 .../main/js/app/modules/states/profile.state.js |  36 +++++
 .../main/js/app/modules/states/profile/index.js |  36 -----
 .../main/js/app/modules/states/signin.state.js  |  55 +++++++
 .../src/main/js/app/modules/states/sql.state.js |  56 +++++++
 .../src/main/js/app/modules/states/sql/index.js |  56 -------
 15 files changed, 425 insertions(+), 425 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/index.js b/modules/control-center-web/src/main/js/app/index.js
index efa2d7d..fca3027 100644
--- a/modules/control-center-web/src/main/js/app/index.js
+++ b/modules/control-center-web/src/main/js/app/index.js
@@ -62,13 +62,13 @@ import './modules/form/form.module';
 import './modules/JavaTypes/JavaTypes.provider';
 import './modules/QueryNotebooks/QueryNotebooks.provider';
 
-import './modules/states/login/index';
-import './modules/states/logout/index';
-import './modules/states/password/index';
-import './modules/states/configuration/index';
-import './modules/states/sql/index';
-import './modules/states/profile/index';
-import './modules/states/admin/index';
+import './modules/states/signin.state';
+import './modules/states/logout.state';
+import './modules/states/password.state';
+import './modules/states/configuration.state';
+import './modules/states/sql.state';
+import './modules/states/profile.state';
+import './modules/states/admin.state';
 
 // ignite:modules
 import './modules/user/user.module';

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/admin.state.js b/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
new file mode 100644
index 0000000..c183807
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/admin.state.js
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+
+angular
+.module('ignite-console.states.admin', [
+    'ui.router'
+])
+.config(['$stateProvider', function($stateProvider) {
+    // set up the states
+    $stateProvider
+    .state('settings.admin', {
+        url: '/admin',
+        templateUrl: '/settings/admin.html',
+        resolve: {
+            $title: () => {
+                return 'List of registered users';
+            }
+        }
+    });
+}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/admin/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/admin/index.js b/modules/control-center-web/src/main/js/app/modules/states/admin/index.js
deleted file mode 100644
index c183807..0000000
--- a/modules/control-center-web/src/main/js/app/modules/states/admin/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import angular from 'angular';
-
-angular
-.module('ignite-console.states.admin', [
-    'ui.router'
-])
-.config(['$stateProvider', function($stateProvider) {
-    // set up the states
-    $stateProvider
-    .state('settings.admin', {
-        url: '/admin',
-        templateUrl: '/settings/admin.html',
-        resolve: {
-            $title: () => {
-                return 'List of registered users';
-            }
-        }
-    });
-}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js b/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
new file mode 100644
index 0000000..57eb361
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration.state.js
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+
+import ConfigurationSummaryCtrl from './configuration/summary/summary.controller';
+import ConfigurationSummaryResource from './configuration/summary/summary.resource';
+import summaryTabs from './configuration/summary/summary-tabs.directive';
+import previewPanel from './configuration/clusters/preview-panel.directive';
+
+import clustersTransactions from './configuration/clusters/transactions.directive';
+import clustersThread from './configuration/clusters/thread.directive';
+import clustersTime from './configuration/clusters/time.directive';
+import clustersSwap from './configuration/clusters/swap.directive';
+import clustersSsl from './configuration/clusters/ssl.directive';
+import clustersMetrics from './configuration/clusters/metrics.directive';
+import clustersMarshaller from './configuration/clusters/marshaller.directive';
+import clustersIgfs from './configuration/clusters/igfs.directive';
+import clustersEvents from './configuration/clusters/events.directive';
+import clustersDiscovery from './configuration/clusters/discovery.directive';
+import clustersDeployment from './configuration/clusters/deployment.directive';
+import clustersConnector from './configuration/clusters/connector.directive';
+import clustersCommunication from './configuration/clusters/communication.directive';
+import clustersBinary from './configuration/clusters/binary.directive';
+import clustersAtomic from './configuration/clusters/atomic.directive';
+
+import clustersGeneral from './configuration/clusters/general.directive';
+import generalDiscoveryCloud from './configuration/clusters/general/discovery/cloud.directive';
+import generalDiscoveryGoogle from './configuration/clusters/general/discovery/google.directive';
+import generalDiscoveryJdbc from './configuration/clusters/general/discovery/jdbc.directive';
+import generalDiscoveryMulticast from './configuration/clusters/general/discovery/multicast.directive';
+import generalDiscoveryS3 from './configuration/clusters/general/discovery/s3.directive';
+import generalDiscoveryShared from './configuration/clusters/general/discovery/shared.directive';
+import generalDiscoveryVm from './configuration/clusters/general/discovery/vm.directive';
+
+angular
+.module('ignite-console.states.configuration', [
+    'ui.router'
+])
+.directive(...summaryTabs)
+.directive(...previewPanel)
+.directive(...clustersTransactions)
+.directive(...clustersThread)
+.directive(...clustersTime)
+.directive(...clustersSwap)
+.directive(...clustersSsl)
+.directive(...clustersMetrics)
+.directive(...clustersMarshaller)
+.directive(...clustersIgfs)
+.directive(...clustersEvents)
+.directive(...clustersDiscovery)
+.directive(...clustersDeployment)
+.directive(...clustersConnector)
+.directive(...clustersCommunication)
+.directive(...clustersBinary)
+.directive(...clustersAtomic)
+.directive(...clustersGeneral)
+.directive(...generalDiscoveryCloud)
+.directive(...generalDiscoveryGoogle)
+.directive(...generalDiscoveryJdbc)
+.directive(...generalDiscoveryMulticast)
+.directive(...generalDiscoveryS3)
+.directive(...generalDiscoveryShared)
+.directive(...generalDiscoveryVm)
+// Services.
+.service(...ConfigurationSummaryResource)
+.config(['$stateProvider', function($stateProvider) {
+    // Setup the states.
+    $stateProvider
+    .state('base.configuration', {
+        url: '/configuration',
+        templateUrl: '/configuration/sidebar.html'
+    })
+    .state('base.configuration.clusters', {
+        url: '/clusters',
+        templateUrl: '/configuration/clusters.html',
+        params: {
+            id: null
+        },
+        data: {
+            loading: 'Loading clusters screen...'
+        },
+        resolve: {
+            $title: () => {
+                return 'Configure Clusters';
+            }
+        }
+    })
+    .state('base.configuration.caches', {
+        url: '/caches',
+        templateUrl: '/configuration/caches.html',
+        params: {
+            id: null
+        },
+        data: {
+            loading: 'Loading caches screen...'
+        },
+        resolve: {
+            $title: () => {
+                return 'Configure Caches';
+            }
+        }
+    })
+    .state('base.configuration.domains', {
+        url: '/domains',
+        templateUrl: '/configuration/domains.html',
+        params: {
+            id: null
+        },
+        data: {
+            loading: 'Loading domain models screen...'
+        },
+        resolve: {
+            $title: () => {
+                return 'Configure Domain Model';
+            }
+        }
+    })
+    .state('base.configuration.igfs', {
+        url: '/igfs',
+        templateUrl: '/configuration/igfs.html',
+        params: {
+            id: null
+        },
+        data: {
+            loading: 'Loading IGFS screen...'
+        },
+        resolve: {
+            $title: () => {
+                return 'Configure IGFS';
+            }
+        }
+    })
+    .state('base.configuration.summary', {
+        url: '/summary',
+        templateUrl: '/configuration/summary.html',
+        controller: ConfigurationSummaryCtrl,
+        controllerAs: 'ctrl',
+        data: {
+            loading: 'Loading summary screen...'
+        },
+        resolve: {
+            $title: () => {
+                return 'Configurations Summary';
+            }
+        }
+    });
+}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/configuration/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/index.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/index.js
deleted file mode 100644
index e8f32c0..0000000
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/index.js
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import angular from 'angular';
-
-import ConfigurationSummaryCtrl from './summary/summary.controller';
-import ConfigurationSummaryResource from './summary/summary.resource';
-import summaryTabs from './summary/summary-tabs.directive';
-import previewPanel from './clusters/preview-panel.directive';
-
-import clustersTransactions from './clusters/transactions.directive';
-import clustersThread from './clusters/thread.directive';
-import clustersTime from './clusters/time.directive';
-import clustersSwap from './clusters/swap.directive';
-import clustersSsl from './clusters/ssl.directive';
-import clustersMetrics from './clusters/metrics.directive';
-import clustersMarshaller from './clusters/marshaller.directive';
-import clustersIgfs from './clusters/igfs.directive';
-import clustersEvents from './clusters/events.directive';
-import clustersDiscovery from './clusters/discovery.directive';
-import clustersDeployment from './clusters/deployment.directive';
-import clustersConnector from './clusters/connector.directive';
-import clustersCommunication from './clusters/communication.directive';
-import clustersBinary from './clusters/binary.directive';
-import clustersAtomic from './clusters/atomic.directive';
-
-import clustersGeneral from './clusters/general.directive';
-import generalDiscoveryCloud from './clusters/general/discovery/cloud.directive';
-import generalDiscoveryGoogle from './clusters/general/discovery/google.directive';
-import generalDiscoveryJdbc from './clusters/general/discovery/jdbc.directive';
-import generalDiscoveryMulticast from './clusters/general/discovery/multicast.directive';
-import generalDiscoveryS3 from './clusters/general/discovery/s3.directive';
-import generalDiscoveryShared from './clusters/general/discovery/shared.directive';
-import generalDiscoveryVm from './clusters/general/discovery/vm.directive';
-
-angular
-.module('ignite-console.states.configuration', [
-    'ui.router'
-])
-.directive(...summaryTabs)
-.directive(...previewPanel)
-.directive(...clustersTransactions)
-.directive(...clustersThread)
-.directive(...clustersTime)
-.directive(...clustersSwap)
-.directive(...clustersSsl)
-.directive(...clustersMetrics)
-.directive(...clustersMarshaller)
-.directive(...clustersIgfs)
-.directive(...clustersEvents)
-.directive(...clustersDiscovery)
-.directive(...clustersDeployment)
-.directive(...clustersConnector)
-.directive(...clustersCommunication)
-.directive(...clustersBinary)
-.directive(...clustersAtomic)
-.directive(...clustersGeneral)
-.directive(...generalDiscoveryCloud)
-.directive(...generalDiscoveryGoogle)
-.directive(...generalDiscoveryJdbc)
-.directive(...generalDiscoveryMulticast)
-.directive(...generalDiscoveryS3)
-.directive(...generalDiscoveryShared)
-.directive(...generalDiscoveryVm)
-// Services.
-.service(...ConfigurationSummaryResource)
-.config(['$stateProvider', function($stateProvider) {
-    // Setup the states.
-    $stateProvider
-    .state('base.configuration', {
-        url: '/configuration',
-        templateUrl: '/configuration/sidebar.html'
-    })
-    .state('base.configuration.clusters', {
-        url: '/clusters',
-        templateUrl: '/configuration/clusters.html',
-        params: {
-            id: null
-        },
-        data: {
-            loading: 'Loading clusters screen...'
-        },
-        resolve: {
-            $title: () => {
-                return 'Configure Clusters';
-            }
-        }
-    })
-    .state('base.configuration.caches', {
-        url: '/caches',
-        templateUrl: '/configuration/caches.html',
-        params: {
-            id: null
-        },
-        data: {
-            loading: 'Loading caches screen...'
-        },
-        resolve: {
-            $title: () => {
-                return 'Configure Caches';
-            }
-        }
-    })
-    .state('base.configuration.domains', {
-        url: '/domains',
-        templateUrl: '/configuration/domains.html',
-        params: {
-            id: null
-        },
-        data: {
-            loading: 'Loading domain models screen...'
-        },
-        resolve: {
-            $title: () => {
-                return 'Configure Domain Model';
-            }
-        }
-    })
-    .state('base.configuration.igfs', {
-        url: '/igfs',
-        templateUrl: '/configuration/igfs.html',
-        params: {
-            id: null
-        },
-        data: {
-            loading: 'Loading IGFS screen...'
-        },
-        resolve: {
-            $title: () => {
-                return 'Configure IGFS';
-            }
-        }
-    })
-    .state('base.configuration.summary', {
-        url: '/summary',
-        templateUrl: '/configuration/summary.html',
-        controller: ConfigurationSummaryCtrl,
-        controllerAs: 'ctrl',
-        data: {
-            loading: 'Loading summary screen...'
-        },
-        resolve: {
-            $title: () => {
-                return 'Configurations Summary';
-            }
-        }
-    });
-}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/login/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/login/index.js b/modules/control-center-web/src/main/js/app/modules/states/login/index.js
deleted file mode 100644
index feaf76a..0000000
--- a/modules/control-center-web/src/main/js/app/modules/states/login/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import angular from 'angular';
-
-angular
-.module('ignite-console.states.login', [
-    'ui.router',
-    // services
-    'ignite-console.user'
-])
-.config(['$stateProvider', function($stateProvider) {
-    // set up the states
-    $stateProvider
-    .state('signin', {
-        url: '/signin',
-        templateUrl: '/signin.html',
-        resolve: {
-            $title: () => {
-                return 'Sign In';
-            }
-        }
-    });
-}])
-.run(['$rootScope', '$state', 'Auth', 'IgniteTerms', function($root, $state, Auth, IgniteTerms) {
-    $root.$on('$stateChangeStart', function(event, toState) {
-        if (toState.name === IgniteTerms.termsState)
-            return;
-
-        if (!Auth.authorized && (toState.name !== 'signin' && !_.startsWith(toState.name, 'password.'))) {
-            event.preventDefault();
-
-            $state.go('signin');
-        }
-        else if (Auth.authorized && toState.name === 'signin') {
-            event.preventDefault();
-
-            $state.go('base.configuration.clusters');
-        }
-    });
-}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/logout.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/logout.state.js b/modules/control-center-web/src/main/js/app/modules/states/logout.state.js
new file mode 100644
index 0000000..7609f24
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/logout.state.js
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+
+angular
+.module('ignite-console.states.logout', [
+    'ui.router'
+])
+.config(['$stateProvider', function($stateProvider) {
+    // set up the states
+    $stateProvider
+    .state('logout', {
+        url: '/logout',
+        controller: ['Auth', function(Auth) {
+            Auth.logout();
+        }]
+    });
+}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/logout/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/logout/index.js b/modules/control-center-web/src/main/js/app/modules/states/logout/index.js
deleted file mode 100644
index 7609f24..0000000
--- a/modules/control-center-web/src/main/js/app/modules/states/logout/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import angular from 'angular';
-
-angular
-.module('ignite-console.states.logout', [
-    'ui.router'
-])
-.config(['$stateProvider', function($stateProvider) {
-    // set up the states
-    $stateProvider
-    .state('logout', {
-        url: '/logout',
-        controller: ['Auth', function(Auth) {
-            Auth.logout();
-        }]
-    });
-}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/password.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/password.state.js b/modules/control-center-web/src/main/js/app/modules/states/password.state.js
new file mode 100644
index 0000000..6014cd2
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/password.state.js
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+
+angular
+.module('ignite-console.states.password', [
+    'ui.router'
+])
+.config(['$stateProvider', function($stateProvider) {
+    // set up the states
+    $stateProvider
+    .state('password', {
+        url: '/password',
+        abstract: true,
+        template: '<ui-view></ui-view>'
+    })
+    .state('password.reset', {
+        url: '/reset?{token}',
+        templateUrl: '/reset.html'
+    })
+    .state('password.send', {
+        url: '/send',
+        templateUrl: '/reset.html'
+    });
+}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/password/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/password/index.js b/modules/control-center-web/src/main/js/app/modules/states/password/index.js
deleted file mode 100644
index 6014cd2..0000000
--- a/modules/control-center-web/src/main/js/app/modules/states/password/index.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import angular from 'angular';
-
-angular
-.module('ignite-console.states.password', [
-    'ui.router'
-])
-.config(['$stateProvider', function($stateProvider) {
-    // set up the states
-    $stateProvider
-    .state('password', {
-        url: '/password',
-        abstract: true,
-        template: '<ui-view></ui-view>'
-    })
-    .state('password.reset', {
-        url: '/reset?{token}',
-        templateUrl: '/reset.html'
-    })
-    .state('password.send', {
-        url: '/send',
-        templateUrl: '/reset.html'
-    });
-}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/profile.state.js b/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
new file mode 100644
index 0000000..23d1bec
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/profile.state.js
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+
+angular
+.module('ignite-console.states.profile', [
+    'ui.router'
+])
+.config(['$stateProvider', function($stateProvider) {
+    // set up the states
+    $stateProvider
+    .state('settings.profile', {
+        url: '/profile',
+        templateUrl: '/settings/profile.html',
+        resolve: {
+            $title: () => {
+                return 'User profile';
+            }
+        }
+    });
+}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/profile/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/profile/index.js b/modules/control-center-web/src/main/js/app/modules/states/profile/index.js
deleted file mode 100644
index 23d1bec..0000000
--- a/modules/control-center-web/src/main/js/app/modules/states/profile/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import angular from 'angular';
-
-angular
-.module('ignite-console.states.profile', [
-    'ui.router'
-])
-.config(['$stateProvider', function($stateProvider) {
-    // set up the states
-    $stateProvider
-    .state('settings.profile', {
-        url: '/profile',
-        templateUrl: '/settings/profile.html',
-        resolve: {
-            $title: () => {
-                return 'User profile';
-            }
-        }
-    });
-}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/signin.state.js b/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
new file mode 100644
index 0000000..feaf76a
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/signin.state.js
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+
+angular
+.module('ignite-console.states.login', [
+    'ui.router',
+    // services
+    'ignite-console.user'
+])
+.config(['$stateProvider', function($stateProvider) {
+    // set up the states
+    $stateProvider
+    .state('signin', {
+        url: '/signin',
+        templateUrl: '/signin.html',
+        resolve: {
+            $title: () => {
+                return 'Sign In';
+            }
+        }
+    });
+}])
+.run(['$rootScope', '$state', 'Auth', 'IgniteTerms', function($root, $state, Auth, IgniteTerms) {
+    $root.$on('$stateChangeStart', function(event, toState) {
+        if (toState.name === IgniteTerms.termsState)
+            return;
+
+        if (!Auth.authorized && (toState.name !== 'signin' && !_.startsWith(toState.name, 'password.'))) {
+            event.preventDefault();
+
+            $state.go('signin');
+        }
+        else if (Auth.authorized && toState.name === 'signin') {
+            event.preventDefault();
+
+            $state.go('base.configuration.clusters');
+        }
+    });
+}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/sql.state.js b/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
new file mode 100644
index 0000000..672d829
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/states/sql.state.js
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular';
+
+angular
+.module('ignite-console.states.sql', [
+    'ui.router'
+])
+.config(['$stateProvider', function($stateProvider) {
+    // set up the states
+    $stateProvider
+    .state('base.sql', {
+        url: '/sql',
+        abstract: true,
+        template: '<ui-view></ui-view>'
+    })
+    .state('base.sql.notebook', {
+        url: '/notebook/{noteId}',
+        templateUrl: '/sql/sql.html',
+        data: {
+            loading: 'Loading notebook screen...'
+        },
+        resolve: {
+            $title: () => {
+                return 'Query notebook';
+            }
+        }
+    })
+    .state('base.sql.demo', {
+        url: '/demo',
+        templateUrl: '/sql/sql.html',
+        data: {
+            loading: 'Enable SQL demo...'
+        },
+        resolve: {
+            $title: () => {
+                return 'SQL demo';
+            }
+        }
+    });
+}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/473dd701/modules/control-center-web/src/main/js/app/modules/states/sql/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/sql/index.js b/modules/control-center-web/src/main/js/app/modules/states/sql/index.js
deleted file mode 100644
index 672d829..0000000
--- a/modules/control-center-web/src/main/js/app/modules/states/sql/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import angular from 'angular';
-
-angular
-.module('ignite-console.states.sql', [
-    'ui.router'
-])
-.config(['$stateProvider', function($stateProvider) {
-    // set up the states
-    $stateProvider
-    .state('base.sql', {
-        url: '/sql',
-        abstract: true,
-        template: '<ui-view></ui-view>'
-    })
-    .state('base.sql.notebook', {
-        url: '/notebook/{noteId}',
-        templateUrl: '/sql/sql.html',
-        data: {
-            loading: 'Loading notebook screen...'
-        },
-        resolve: {
-            $title: () => {
-                return 'Query notebook';
-            }
-        }
-    })
-    .state('base.sql.demo', {
-        url: '/demo',
-        templateUrl: '/sql/sql.html',
-        data: {
-            loading: 'Enable SQL demo...'
-        },
-        resolve: {
-            $title: () => {
-                return 'SQL demo';
-            }
-        }
-    });
-}]);


[22/50] ignite git commit: Merge remote-tracking branch 'origin/ignite-843-rc2' into ignite-843-rc2

Posted by an...@apache.org.
Merge remote-tracking branch 'origin/ignite-843-rc2' into ignite-843-rc2


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

Branch: refs/heads/ignite-843
Commit: 1c7286063a1b8d83a9f9c6f6cbce836ad03bf7d8
Parents: 5e3b919 1b214b0
Author: Andrey <an...@gridgain.com>
Authored: Wed Feb 24 16:38:45 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Wed Feb 24 16:38:45 2016 +0700

----------------------------------------------------------------------
 .../app/directives/bs-affix-update/bs-affix-update.directive.js  | 4 ++--
 .../src/main/js/views/configuration/domains.jade                 | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[28/50] ignite git commit: IGNITE-2711 Fixed insert in editor.

Posted by an...@apache.org.
IGNITE-2711 Fixed insert in editor.


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

Branch: refs/heads/ignite-843
Commit: 2d178a56f84a84364da64c296c04e6bc64b0ca53
Parents: 9aa0a57
Author: Andrey <an...@gridgain.com>
Authored: Thu Feb 25 18:13:10 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Feb 25 18:13:10 2016 +0700

----------------------------------------------------------------------
 .../control-center-web/src/main/js/views/includes/controls.jade    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/2d178a56/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 557f121..1b607d8 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
@@ -566,7 +566,7 @@ mixin preview-content(preview, state, mode)
     -var previewMode = 'group.preview'
 
     .preview-content(ng-if='!preview[#{preview}].allDefaults && #{previewMode} == #{state}' id='#{id}'
-        ui-ace='{onLoad: previewInit, onChange: previewChanged, mode: "#{mode}", rendererOptions: {minLines: group.previewMinLines || 3}}' ng-model='preview[#{preview}].#{mode}')
+        ignite-ace='{onLoad: previewInit, onChange: previewChanged, mode: "#{mode}", rendererOptions: {minLines: group.previewMinLines || 3}}' ng-model='preview[#{preview}].#{mode}')
 
 mixin preview(preview, id)
     -var previewMode = 'group.preview'


[23/50] ignite git commit: IGNITE-2424 Discern columns with the same name.

Posted by an...@apache.org.
IGNITE-2424 Discern columns with the same name.


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

Branch: refs/heads/ignite-843
Commit: d558cc4f39c4c9e028a5f13acf0ea8a0de29ff51
Parents: 1c72860
Author: Vasiliy Sisko <vs...@gridgain.com>
Authored: Wed Feb 24 18:11:32 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Wed Feb 24 18:11:32 2016 +0700

----------------------------------------------------------------------
 .../src/main/js/controllers/sql-controller.js           | 12 ++++++++++++
 1 file changed, 12 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d558cc4f/modules/control-center-web/src/main/js/controllers/sql-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/sql-controller.js b/modules/control-center-web/src/main/js/controllers/sql-controller.js
index 84773b2..55748cc 100644
--- a/modules/control-center-web/src/main/js/controllers/sql-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/sql-controller.js
@@ -486,6 +486,18 @@ consoleModule.controller('sqlController', function ($http, $timeout, $interval,
     var _rebuildColumns = function (paragraph) {
         var columnDefs = [];
 
+        _.forEach(_.groupBy(paragraph.meta, 'fieldName'), function (colsByName, fieldName) {
+            var colsByTypes = _.groupBy(colsByName, 'typeName');
+
+            var needType = _.keys(colsByTypes).length > 1;
+
+            _.forEach(colsByTypes, function(colsByType, typeName) {
+                _.forEach(colsByType, function (col, ix) {
+                    col.fieldName = (needType && !$common.isEmptyString(typeName) ? typeName + '.' : '') + fieldName + (ix > 0 ? ix : '');
+                })
+            });
+        });
+
         _.forEach(paragraph.meta, function (col, idx) {
             if (paragraph.columnFilter(col)) {
                 if (_notObjectType(col.fieldTypeName))


[11/50] ignite git commit: IGNITE-2287 Reworked code generation of example code.

Posted by an...@apache.org.
IGNITE-2287 Reworked code generation of example code.


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

Branch: refs/heads/ignite-843
Commit: c01cca4109f9984ce4aec53b11c8af76e2b84cd5
Parents: ea979d8
Author: vsisko <vs...@gridgain.com>
Authored: Sat Feb 20 11:22:27 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Sat Feb 20 11:22:27 2016 +0700

----------------------------------------------------------------------
 .../configuration/summary/summary.controller.js | 15 ++++++
 .../js/helpers/generator/generator-common.js    | 12 +++++
 .../main/js/helpers/generator/generator-java.js | 57 +++++++++++++++++---
 3 files changed, 77 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c01cca41/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
index 5f677d9..7cd564a 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/summary/summary.controller.js
@@ -73,6 +73,14 @@ export default [
             ]
         };
 
+        const exampleFolder = {
+            type: 'folder',
+            name: 'example',
+            children: [
+                { type: 'file', name: 'ExampleStartup.java' }
+            ]
+        };
+
         const javaFolder = {
             type: 'folder',
             name: 'java',
@@ -188,6 +196,9 @@ export default [
 
             javaFolder.children = [javaConfigFolder, javaStartupFolder];
 
+            if ($generatorCommon.dataForExampleConfigured(cluster))
+                javaFolder.children.push(exampleFolder);
+
             _.forEach(cluster.caches, (cache) => {
                 if (cache.cacheStoreFactory) {
                     const store = cache.cacheStoreFactory[cache.cacheStoreFactory.kind];
@@ -247,6 +258,10 @@ export default [
             zip.file(srcPath + 'config/ServerConfigurationFactory.java', $generatorJava.cluster(cluster, 'config', 'ServerConfigurationFactory', null));
             zip.file(srcPath + 'config/ClientConfigurationFactory.java', $generatorJava.cluster(cluster, 'config', 'ClientConfigurationFactory', clientNearCfg));
 
+            if ($generatorCommon.dataForExampleConfigured(cluster))
+                zip.file(srcPath + 'example/ExampleStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ExampleStartup',
+                    'ServerConfigurationFactory.createConfiguration()', 'config.ServerConfigurationFactory'));
+
             zip.file(srcPath + 'startup/ServerNodeSpringStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ServerNodeSpringStartup', '"' + serverXml + '"'));
             zip.file(srcPath + 'startup/ClientNodeSpringStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ClientNodeSpringStartup', '"' + clientXml + '"'));
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c01cca41/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-common.js b/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
index 40614b6..3731070 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
@@ -508,3 +508,15 @@ $generatorCommon.binaryIsDefined = function (binary) {
 $generatorCommon.domainQueryMetadata = function(domain) {
     return domain.queryMetadata ? domain.queryMetadata : 'Configuration';
 };
+
+/**
+ * Checks if cluster has demo types.
+ *
+ * @param cluster Cluster to check.
+ * @returns {boolean} True if cluster has caches with demo types.
+ */
+$generatorCommon.dataForExampleConfigured = function(cluster) {
+    return $commonUtils.isDefined(_.find(cluster.caches, function (cache) {
+        return _.find(cache.domains, {demo: true});
+    }));
+};

http://git-wip-us.apache.org/repos/asf/ignite/blob/c01cca41/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 57ac1da..16079be 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -2759,9 +2759,6 @@ function _multilineQuery(res, query, prefix, postfix) {
                 res.line('"' + line + '"' + (ix === lines.length - 1 ? postfix : ' +'));
         });
 
-        if (lines.length > 0)
-            res.needEmptyLine = true;
-
         if (lines.length > 1)
             res.endBlock();
     }
@@ -2900,6 +2897,14 @@ $generatorJava.generateExample = function (cluster, res, factoryCls) {
 
         res.needEmptyLine = true;
 
+        res.line('/** Print result table to console */');
+        res.startBlock('private static void printResult(' + res.importClass('java.util.List') + '<' + res.importClass('javax.cache.Cache') + '.Entry<Object, Object>> rows) {');
+        res.startBlock('for (Cache.Entry<Object, Object> row: rows) {');
+        res.line('System.out.println(row);');
+        res.endBlock('}');
+        res.endBlock('}');
+        res.needEmptyLine = true;
+
         // Generation of execute queries method.
         res.line('/** Run demo examples. */');
         res.startBlock('private static void runExamples(Ignite ignite) throws SQLException {');
@@ -2908,6 +2913,9 @@ $generatorJava.generateExample = function (cluster, res, factoryCls) {
             return fullType.substr(fullType.lastIndexOf('.') + 1);
         };
 
+        var cacheLoaded = [];
+        var rowVariableDeclared = false;
+
         _.forEach(typeByDs, function (types, ds) {
             var conVar = ds + 'Con';
 
@@ -2921,8 +2929,19 @@ $generatorJava.generateExample = function (cluster, res, factoryCls) {
 
                     if (desc) {
                         _.forEach(desc.selectQuery, function (query) {
-                            _multilineQuery(res, query, 'ignite.cache("' + type.cache.name + '").query(new ' + res.importClass('org.apache.ignite.cache.query.SqlQuery') +
-                                '<>("' + getType(domain.valueType) + '", ', '));');
+                            var cacheName = type.cache.name;
+
+                            if (!_.contains(cacheLoaded, cacheName)) {
+                                res.line('ignite.cache("' + cacheName + '").loadCache(null);');
+
+                                cacheLoaded.push(cacheName);
+                            }
+
+                            _multilineQuery(res, query, (rowVariableDeclared ? 'rows' : 'List<Cache.Entry<Object, Object>> rows') +
+                                ' = ignite.cache("' + cacheName + '").query(new ' + res.importClass('org.apache.ignite.cache.query.SqlQuery') +
+                                '<>("' + getType(domain.valueType) + '", ', ')).getAll();');
+                            res.line('printResult(rows);');
+                            rowVariableDeclared = true;
 
                             res.needEmptyLine = true;
                         })
@@ -2954,14 +2973,26 @@ $generatorJava.generateExample = function (cluster, res, factoryCls) {
  * @param clientNearCfg Optional near cache configuration for client node.
  */
 $generatorJava.nodeStartup = function (cluster, pkg, cls, cfg, factoryCls, clientNearCfg) {
+    var example = cls === 'ExampleStartup';
+
     var res = $generatorCommon.builder();
 
     res.line('/**');
     res.line(' * ' + $generatorCommon.mainComment());
+
+    if (example) {
+        res.line(' *');
+        res.line(' * To start example configure data sources in secret.properties file.');
+        res.line(' * For H2 database it should be like following:');
+        res.line(' * dsH2.jdbc.url=jdbc:h2:tcp://localhost/mem:ExampleDb;DB_CLOSE_DELAY=-1');
+        res.line(' * dsH2.jdbc.username=sa');
+        res.line(' * dsH2.jdbc.password=');
+    }
+
     res.line(' */');
     res.startBlock('public class ' + cls + ' {');
 
-    if (factoryCls)
+    if (example)
         var demoTypes = $generatorJava.generateExample(cluster, res, factoryCls);
 
     res.line('/**');
@@ -2973,6 +3004,18 @@ $generatorJava.nodeStartup = function (cluster, pkg, cls, cfg, factoryCls, clien
 
     res.startBlock('public static void main(String[] args) throws Exception {');
 
+    if (example) {
+        res.startBlock('try {');
+        res.line('// Start H2 database server.');
+        res.line(res.importClass('org.h2.tools.Server') + '.createTcpServer("-tcpDaemon").start();');
+        res.endBlock('}');
+        res.startBlock('catch (' + res.importClass('java.sql.SQLException') + ' ignore) {');
+        res.line('// No-op.');
+        res.endBlock('}');
+
+        res.needEmptyLine = true;
+    }
+
     if (factoryCls)
         res.importClass(factoryCls);
 
@@ -3002,7 +3045,7 @@ $generatorJava.nodeStartup = function (cluster, pkg, cls, cfg, factoryCls, clien
         }
     }
 
-    if ($commonUtils.isDefinedAndNotEmpty(demoTypes)) {
+    if (example) {
         res.needEmptyLine = true;
 
         res.line('prepareExampleData();');


[03/50] ignite git commit: IGNITE-843 Reworked example code generation.

Posted by an...@apache.org.
IGNITE-843 Reworked example code generation.


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

Branch: refs/heads/ignite-843
Commit: befbccfc3e934767c8d7bea1bc82d83b5152845f
Parents: 2a0d870
Author: vsisko <vs...@gridgain.com>
Authored: Thu Feb 18 11:19:10 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Feb 18 11:19:10 2016 +0700

----------------------------------------------------------------------
 .../main/js/helpers/generator/generator-java.js | 101 +++++++++++--------
 1 file changed, 57 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/befbccfc/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index d693788..cf76738 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -2557,6 +2557,12 @@ $generatorJava.dataSourceClassName = function (res, storeFactory) {
     return undefined;
 };
 
+var MAX_PARKING_CNT = 5;
+var MAX_CAR_CNT = 10;
+var MAX_COUNTRY_CNT = 5;
+var MAX_DEPARTMENT_CNT = 5;
+var MAX_EMPLOYE_CNT = 10;
+
 // Defined queries for demo data.
 var PREDEFINED_QUERIES = [
     {
@@ -2566,10 +2572,14 @@ var PREDEFINED_QUERIES = [
             'ID       INTEGER     NOT NULL PRIMARY KEY,\n' +
             'NAME     VARCHAR(50) NOT NULL,\n' +
             'CAPACITY INTEGER NOT NULL)',
-        fill: 'DELETE FROM CARS.PARKING;\n' +
-            'INSERT INTO CARS.PARKING(ID, NAME, CAPACITY) VALUES(0, \'Parking #1\', 10);\n' +
-            'INSERT INTO CARS.PARKING(ID, NAME, CAPACITY) VALUES(1, \'Parking #2\', 20);\n' +
-            'INSERT INTO CARS.PARKING(ID, NAME, CAPACITY) VALUES(2, \'Parking #3\', 30)',
+        fillQuery: function () {
+            var queries = ['DELETE FROM CARS.PARKING;'];
+
+            for (var id = 0; id < MAX_PARKING_CNT; id++)
+                queries.push('INSERT INTO CARS.PARKING(ID, NAME, CAPACITY) VALUES(' + id + ', \'Parking #' + (id + 1) +  '\', 10);');
+
+            return queries;
+        },
         selectQuery: [
             "SELECT * FROM PARKING WHERE CAPACITY >= 20"
         ]
@@ -2581,16 +2591,14 @@ var PREDEFINED_QUERIES = [
             'ID         INTEGER NOT NULL PRIMARY KEY,\n' +
             'PARKING_ID INTEGER NOT NULL,\n' +
             'NAME       VARCHAR(50) NOT NULL);',
-        fill: 'DELETE FROM CARS.CAR;\n' +
-            'INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(0, 0, \'Car #1\');\n' +
-            'INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(1, 0, \'Car #2\');\n' +
-            'INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(2, 0, \'Car #3\');\n' +
-            'INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(3, 1, \'Car #4\');\n' +
-            'INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(4, 1, \'Car #5\');\n' +
-            'INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(5, 2, \'Car #6\');\n' +
-            'INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(6, 2, \'Car #7\');\n' +
-            'INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(7, 2, \'Car #8\');\n' +
-            'INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(8, 2, \'Car #9\')',
+        fillQuery: function () {
+            var queries = ['DELETE FROM CARS.CAR;'];
+
+            for (var id = 0; id < MAX_CAR_CNT; id++)
+                queries.push('INSERT INTO CARS.CAR(ID, PARKING_ID, NAME) VALUES(' + id + ', ' + Math.floor(Math.random() * MAX_PARKING_CNT) + ', \'Car #' + (id + 1) + '\');');
+
+            return queries;
+        },
         selectQuery: [
             "SELECT * FROM CAR WHERE PARKINGID = 2"
         ]
@@ -2601,10 +2609,14 @@ var PREDEFINED_QUERIES = [
             'ID         INTEGER NOT NULL PRIMARY KEY,\n' +
             'NAME       VARCHAR(50),\n' +
             'POPULATION INTEGER NOT NULL);',
-        fill: 'DELETE FROM COUNTRY;\n' +
-            'INSERT INTO COUNTRY(ID, NAME, POPULATION) VALUES(0, \'Country #1\', 10000000);\n' +
-            'INSERT INTO COUNTRY(ID, NAME, POPULATION) VALUES(1, \'Country #2\', 20000000);\n' +
-            'INSERT INTO COUNTRY(ID, NAME, POPULATION) VALUES(2, \'Country #3\', 30000000);',
+        fillQuery: function () {
+            var queries = ['DELETE FROM COUNTRY;'];
+
+            for (var id = 0; id < MAX_COUNTRY_CNT; id++)
+                queries.push('INSERT INTO COUNTRY(ID, NAME, POPULATION) VALUES(' + id + ', \'Country #' + (id + 1) + '\', ' + ((id + 1) * 10000000) + ');');
+
+            return queries;
+        },
         selectQuery: [
             "SELECT * FROM COUNTRY WHERE POPULATION BETWEEN 15000000 AND 25000000"
         ]
@@ -2615,13 +2627,14 @@ var PREDEFINED_QUERIES = [
             'ID         INTEGER NOT NULL PRIMARY KEY,\n' +
             'COUNTRY_ID INTEGER NOT NULL,\n' +
             'NAME       VARCHAR(50) NOT NULL);',
-        fill: 'DELETE FROM DEPARTMENT;\n' +
-            'INSERT INTO DEPARTMENT(ID, COUNTRY_ID, NAME) VALUES(0, 0, \'Department #1\');\n' +
-            'INSERT INTO DEPARTMENT(ID, COUNTRY_ID, NAME) VALUES(1, 0, \'Department #2\');\n' +
-            'INSERT INTO DEPARTMENT(ID, COUNTRY_ID, NAME) VALUES(2, 2, \'Department #3\');\n' +
-            'INSERT INTO DEPARTMENT(ID, COUNTRY_ID, NAME) VALUES(3, 1, \'Department #4\');\n' +
-            'INSERT INTO DEPARTMENT(ID, COUNTRY_ID, NAME) VALUES(4, 1, \'Department #5\');\n' +
-            'INSERT INTO DEPARTMENT(ID, COUNTRY_ID, NAME) VALUES(5, 1, \'Department #6\');',
+        fillQuery: function () {
+            var queries = ['DELETE FROM DEPARTMENT;'];
+
+            for (var id = 0; id < MAX_DEPARTMENT_CNT; id++)
+                queries.push('INSERT INTO DEPARTMENT(ID, COUNTRY_ID, NAME) VALUES(' + id + ', ' + Math.floor(Math.random() * MAX_COUNTRY_CNT) + ', \'Department #' + (id + 1) + '\');');
+
+            return queries;
+        },
         selectQuery: [
             "SELECT * FROM DEPARTMENT"
         ]
@@ -2639,24 +2652,24 @@ var PREDEFINED_QUERIES = [
             'HIRE_DATE     DATE        NOT NULL,\n' +
             'JOB           VARCHAR(50) NOT NULL,\n' +
             'SALARY        DOUBLE);',
-        fill: 'DELETE FROM EMPLOYEE;\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(0, 0, \'First name manager #1\', \'Last name manager #1\', \'Email manager #1\', \'Phone number manager #1\', \'2014-01-01\', \'Job manager #1\', 1100.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(1, 1, \'First name manager #2\', \'Last name manager #2\', \'Email manager #2\', \'Phone number manager #2\', \'2014-01-01\', \'Job manager #2\', 2100.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(2, 2, \'First name manager #3\', \'Last name manager #3\', \'Email manager #3\', \'Phone number manager #3\', \'2014-01-01\', \'Job manager #3\', 3100.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(3, 3, \'First name manager #4\', \'Last name manager #4\', \'Email manager #4\', \'Phone number manager #4\', \'2014-01-01\', \'Job manager #4\', 1500.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(4, 4, \'First name manager #5\', \'Last name manager #5\', \'Email manager #5\', \'Phone number manager #5\', \'2014-01-01\', \'Job manager #5\', 1700.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(5, 5, \'First name manager #6\', \'Last name manager #6\', \'Email manager #6\', \'Phone number manager #6\', \'2014-01-01\', \'Job manager #6\', 1300.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(101, 0, 0, \'First name employee #1\', \'Last name employee #1\', \'Email employee #1\', \'Phone number employee #1\', \'2014-01-01\', \'Job employee #1\', 600.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(102, 0, 0, \'First name employee #2\', \'Last name employee #2\', \'Email employee #2\', \'Phone number employee #2\', \'2014-01-01\', \'Job employee #2\', 1600.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(103, 1, 1, \'First name employee #3\', \'Last name employee #3\', \'Email employee #3\', \'Phone number employee #3\', \'2014-01-01\', \'Job employee #3\', 2600.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(104, 2, 2, \'First name employee #4\', \'Last name employee #4\', \'Email employee #4\', \'Phone number employee #4\', \'2014-01-01\', \'Job employee #4\', 1000.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(105, 2, 2, \'First name employee #5\', \'Last name employee #5\', \'Email employee #5\', \'Phone number employee #5\', \'2014-01-01\', \'Job employee #5\', 1200.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(106, 2, 2, \'First name employee #6\', \'Last name employee #6\', \'Email employee #6\', \'Phone number employee #6\', \'2014-01-01\', \'Job employee #6\', 800.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(107, 3, 3, \'First name employee #7\', \'Last name employee #7\', \'Email employee #7\', \'Phone number employee #7\', \'2014-01-01\', \'Job employee #7\', 1400.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(108, 4, 4, \'First name employee #8\', \'Last name employee #8\', \'Email employee #8\', \'Phone number employee #8\', \'2014-01-01\', \'Job employee #8\', 800.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(109, 4, 4, \'First name employee #9\', \'Last name employee #9\', \'Email employee #9\', \'Phone number employee #9\', \'2014-01-01\', \'Job employee #9\', 1490.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(110, 4, 4, \'First name employee #10\', \'Last name employee #12\', \'Email employee #10\', \'Phone number employee #10\', \'2014-01-01\', \'Job employee #10\', 1600.00);\n' +
-            'INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(111, 5, 5, \'First name employee #11\', \'Last name employee #11\', \'Email employee #11\', \'Phone number employee #11\', \'2014-01-01\', \'Job employee #11\', 400.00);',
+        fillQuery: function () {
+            var queries = ['DELETE FROM EMPLOYEE;'];
+
+            for (var id = 0; id < MAX_DEPARTMENT_CNT; id++)
+                queries.push('INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(' +
+                        id + ', ' + id + ', \'First name manager #' + (id + 1) + '\', \'Last name manager #' + (id + 1) + '\', \'Email manager #' +
+                        (id + 1) + '\', \'Phone number manager #' + (id + 1) + '\', \'2014-01-01\', \'Job manager #' + (id + 1) + '\', ' + (1100 + 50 * id) + ');');
+
+            for (id = 0; id < MAX_EMPLOYE_CNT; id++) {
+                var depId = Math.floor(Math.random() * MAX_DEPARTMENT_CNT);
+
+                queries.push('INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(' +
+                    (100 + id) + ', ' + depId + ', ' + depId + ', \'First name employee #' + (id + 1) + '\', \'Last name employee #' + (id + 1) + '\', \'Email employee #' +
+                    (id + 1) + '\', \'Phone number employee #' + (id + 1) + '\', \'2014-01-01\', \'Job employee #' + (id + 1) + '\', ' + (600 + 50 * id + 50 * depId) + ');');
+            }
+
+            return queries;
+        },
         selectQuery: [
             "SELECT * FROM EMPLOYEE WHERE MANAGERID IS NOT NULL"
         ]
@@ -2768,7 +2781,7 @@ $generatorJava.generateExample = function (cluster, res, factoryCls) {
                             _prepareStatement(res, conVar, 'CREATE SCHEMA IF NOT EXISTS ' + desc.schema);
 
                         _prepareStatement(res, conVar, desc.create);
-                        _prepareStatement(res, conVar, desc.fill);
+                        _prepareStatement(res, conVar, desc.fillQuery().join('\n'));
 
                         res.line(conVar + '.commit();');
 


[05/50] ignite git commit: IGNITE-843 Refactored XML code generation: renamed methods and added jsdocs.

Posted by an...@apache.org.
IGNITE-843 Refactored XML code generation: renamed methods and added jsdocs.


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

Branch: refs/heads/ignite-843
Commit: 36551403d816507b0226ce5cd8377864091f6446
Parents: cb427d0
Author: vsisko <vs...@gridgain.com>
Authored: Thu Feb 18 15:15:13 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Feb 18 15:15:13 2016 +0700

----------------------------------------------------------------------
 .../main/js/helpers/generator/generator-xml.js  | 58 ++++++++++++--------
 1 file changed, 36 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/36551403/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
index 6d4fd6c..9fab39b 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
@@ -62,21 +62,6 @@ $generatorXml.property = function (res, obj, propName, setterName, dflt) {
     return false;
 };
 
-// Add property.
-$generatorXml.emptyBeanProperty = function (res, obj, propName) {
-    if ($commonUtils.isDefined(obj)) {
-        var val = obj[propName];
-
-        if ($commonUtils.isDefinedAndNotEmpty(val)) {
-            res.startBlock('<property name="' + propName + '">');
-            res.line('<bean class="' + val + '"/>');
-            res.endBlock('</property>');
-        }
-    }
-
-    return false;
-};
-
 // Add property for class name.
 $generatorXml.classNameProperty = function (res, obj, propName) {
     var val = obj[propName];
@@ -138,7 +123,15 @@ $generatorXml.arrayProperty = function (res, obj, propName, descr, rowFactory) {
     }
 };
 
-// Add bean property.
+/**
+ * Add bean property with internal content.
+ *
+ * @param res Optional configuration presentation builder object.
+ * @param bean Bean object for code generation.
+ * @param beanPropName Name of property to set generated bean as value.
+ * @param desc Bean metadata object.
+ * @param createBeanAlthoughNoProps Always generate bean even it has no properties defined.
+ */
 $generatorXml.beanProperty = function (res, bean, beanPropName, desc, createBeanAlthoughNoProps) {
     var props = desc.fields;
 
@@ -236,6 +229,27 @@ $generatorXml.beanProperty = function (res, bean, beanPropName, desc, createBean
     }
 };
 
+/**
+ * Add bean property without internal content.
+ *
+ * @param res Optional configuration presentation builder object.
+ * @param obj Object to take bean class name.
+ * @param propName Property name.
+ */
+$generatorXml.simpleBeanProperty = function (res, obj, propName) {
+    if ($commonUtils.isDefined(obj)) {
+        var val = obj[propName];
+
+        if ($commonUtils.isDefinedAndNotEmpty(val)) {
+            res.startBlock('<property name="' + propName + '">');
+            res.line('<bean class="' + val + '"/>');
+            res.endBlock('</property>');
+        }
+    }
+
+    return false;
+};
+
 // Generate eviction policy.
 $generatorXml.evictionPolicy = function (res, evtPlc, propName) {
     if (evtPlc && evtPlc.kind) {
@@ -417,9 +431,9 @@ $generatorXml.clusterBinary = function (cluster, res) {
         res.startBlock('<property name="binaryConfiguration">');
         res.startBlock('<bean class="org.apache.ignite.configuration.BinaryConfiguration">');
 
-        $generatorXml.emptyBeanProperty(res, binary, 'idMapper');
-        $generatorXml.emptyBeanProperty(res, binary, 'serializer');
-        $generatorXml.emptyBeanProperty(res, binary, 'nameMapper');
+        $generatorXml.simpleBeanProperty(res, binary, 'idMapper');
+        $generatorXml.simpleBeanProperty(res, binary, 'serializer');
+        $generatorXml.simpleBeanProperty(res, binary, 'nameMapper');
 
         if ($commonUtils.isDefinedAndNotEmpty(binary.typeConfigurations)) {
             res.startBlock('<property name="typeConfigurations">');
@@ -429,9 +443,9 @@ $generatorXml.clusterBinary = function (cluster, res) {
                 res.startBlock('<bean class="org.apache.ignite.binary.BinaryTypeConfiguration">');
 
                 $generatorXml.property(res, type, 'typeName');
-                $generatorXml.emptyBeanProperty(res, type, 'idMapper');
-                $generatorXml.emptyBeanProperty(res, type, 'nameMapper');
-                $generatorXml.emptyBeanProperty(res, type, 'serializer');
+                $generatorXml.simpleBeanProperty(res, type, 'idMapper');
+                $generatorXml.simpleBeanProperty(res, type, 'nameMapper');
+                $generatorXml.simpleBeanProperty(res, type, 'serializer');
                 $generatorXml.property(res, type, 'enum', undefined, false);
 
                 res.endBlock('</bean>');


[19/50] ignite git commit: IGNITE-2287 TEMPORARY do not generate values with NULL.

Posted by an...@apache.org.
IGNITE-2287 TEMPORARY do not generate values with NULL.


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

Branch: refs/heads/ignite-843
Commit: daccaefad557777cf9deccceb78420384c5626a7
Parents: f01fc59
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Sat Feb 20 17:12:25 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Sat Feb 20 17:12:25 2016 +0700

----------------------------------------------------------------------
 .../main/js/helpers/generator/generator-java.js | 44 ++++++++++----------
 1 file changed, 22 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/daccaefa/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 3d83605..32023b9 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -2653,27 +2653,27 @@ var PREDEFINED_QUERIES = [
             {name: 'EXAMPLE_MAX_DEPARTMENT_CNT', val: 5, comment: 'How many departments to generate.'}
         ],
         specialGeneration: function (res, conVar) {
-            $generatorJava.declareVariableCustom(res, 'stmt', 'java.sql.PreparedStatement', conVar +
-                '.prepareStatement("INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)")');
-
-            res.startBlock('for (int id = 0; id < EXAMPLE_MAX_DEPARTMENT_CNT; id ++) {');
-            res.line('stmt.setInt(1, id);');
-            res.line('stmt.setInt(2, id);');
-            res.line('stmt.setString(3, "First name manager #" + (id + 1));');
-            res.line('stmt.setString(4, "Last name manager#" + (id + 1));');
-            res.line('stmt.setString(5, "Email manager#" + (id + 1));');
-            res.line('stmt.setString(6, "Phone number manager#" + (id + 1));');
-            res.line('stmt.setString(7, "2014-01-01");');
-            res.line('stmt.setString(8, "Job manager #" + (id + 1));');
-            res.line('stmt.setDouble(9, 1000.0 + rnd.nextInt(500));');
-
-            res.needEmptyLine = true;
-
-            res.line('stmt.executeUpdate();');
-
-            res.endBlock('}');
-
-            res.needEmptyLine = true;
+            //$generatorJava.declareVariableCustom(res, 'stmt', 'java.sql.PreparedStatement', conVar +
+            //    '.prepareStatement("INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)")');
+            //
+            //res.startBlock('for (int id = 0; id < EXAMPLE_MAX_DEPARTMENT_CNT; id ++) {');
+            //res.line('stmt.setInt(1, id);');
+            //res.line('stmt.setInt(2, id);');
+            //res.line('stmt.setString(3, "First name manager #" + (id + 1));');
+            //res.line('stmt.setString(4, "Last name manager#" + (id + 1));');
+            //res.line('stmt.setString(5, "Email manager#" + (id + 1));');
+            //res.line('stmt.setString(6, "Phone number manager#" + (id + 1));');
+            //res.line('stmt.setString(7, "2014-01-01");');
+            //res.line('stmt.setString(8, "Job manager #" + (id + 1));');
+            //res.line('stmt.setDouble(9, 1000.0 + rnd.nextInt(500));');
+            //
+            //res.needEmptyLine = true;
+            //
+            //res.line('stmt.executeUpdate();');
+            //
+            //res.endBlock('}');
+            //
+            //res.needEmptyLine = true;
 
             $generatorJava.declareVariableCustom(res, 'stmt', 'java.sql.PreparedStatement', conVar +
                 '.prepareStatement("INSERT INTO EMPLOYEE(ID, DEPARTMENT_ID, MANAGER_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, JOB, SALARY) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")');
@@ -2704,7 +2704,7 @@ var PREDEFINED_QUERIES = [
             res.needEmptyLine = true;
         },
         selectQuery: [
-            "SELECT * FROM EMPLOYEE WHERE MANAGERID IS NOT NULL"
+            "SELECT * FROM EMPLOYEE WHERE SALARY > 700"
         ]
     }
 ];


[47/50] ignite git commit: IGNITE-843 Minor fix.

Posted by an...@apache.org.
IGNITE-843 Minor fix.


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

Branch: refs/heads/ignite-843
Commit: 35aa7eb1f04fd4c07f35f260f917811051260f03
Parents: e253f45
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Mar 3 19:04:24 2016 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Mar 3 19:04:24 2016 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/serve/routes/domains.js | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/35aa7eb1/modules/control-center-web/src/main/js/serve/routes/domains.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/routes/domains.js b/modules/control-center-web/src/main/js/serve/routes/domains.js
index 6963294..6aae98f 100644
--- a/modules/control-center-web/src/main/js/serve/routes/domains.js
+++ b/modules/control-center-web/src/main/js/serve/routes/domains.js
@@ -102,7 +102,6 @@ module.exports.factory = (_, express, mongo) => {
                         })
                         .then(() => _updateCacheStore(cacheStoreChanges));
                 })
-                .catch((err) => mongo.handleError(res, err));
         };
 
         const _save = (domains, res) => {


[31/50] ignite git commit: IGNITE-2724 WIP support for ZooKeeper.

Posted by an...@apache.org.
IGNITE-2724 WIP support for ZooKeeper.


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

Branch: refs/heads/ignite-843
Commit: 6de273facf0489ebca2c944867882f805c76fbaf
Parents: 37bc977
Author: vsisko <vs...@gridgain.com>
Authored: Fri Feb 26 13:30:53 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Feb 26 13:30:53 2016 +0700

----------------------------------------------------------------------
 .../states/configuration/clusters/general.jade  |  8 +++++++
 .../clusters/general/discovery/zookeeper.jade   | 21 +++++++++++------
 .../bounded-exponential-backoff.jade            |  6 +++--
 .../retrypolicy/exponential-backoff.jade        |  6 +++--
 .../zookeeper/retrypolicy/forever.jade          |  1 +
 .../zookeeper/retrypolicy/n-times.jade          |  2 ++
 .../zookeeper/retrypolicy/one-time.jade         |  1 +
 .../zookeeper/retrypolicy/until-elapsed.jade    |  2 ++
 .../main/js/controllers/clusters-controller.js  |  6 ++---
 .../main/js/helpers/generator/generator-java.js |  9 ++++----
 .../main/js/helpers/generator/generator-xml.js  | 24 ++++----------------
 .../src/main/js/public/stylesheets/style.scss   |  2 +-
 12 files changed, 49 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
index c750119..8317b47 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general.jade
@@ -70,6 +70,14 @@ form.panel.panel-default(name='general' novalidate)
                             | Discovery:
                         ignite-form-field-tooltip
                             | Discovery allows to discover remote nodes in grid
+                            ul: li Static IPs - IP Finder which works only with pre configured list of IP addresses specified
+                                li Multicast - Multicast based IP finder
+                                li AWS S3 - AWS S3 based IP finder
+                                li Apache jclouds - Apache jclouds multi cloud toolkit based IP finder
+                                li Google cloud storage - Google Cloud Storage based IP finder
+                                li JDBC - JDBC based IP finder
+                                li Shared filesystem - Shared filesystem based IP finder
+                                li Apache ZooKeeper - Apache ZooKeeper based IP finder
                         ignite-form-field-dropdown(
                             data-id='discovery'
                             data-name='discovery'

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
index d99a7a7..709d436 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
@@ -31,9 +31,9 @@ div
     .details-row
         ignite-form-field
             ignite-form-field-label
-                | Connection string:
+                | Connect string:
             ignite-form-field-tooltip
-                | This property will be used when "IGNITE_ZK_CONNECTION_STRING" system property is not configured
+                | When "IGNITE_ZK_CONNECTION_STRING" system property is not configured this property will be used
             ignite-form-field-input-text(
                 data-id='zkConnectionString'
                 data-name='zkConnectionString'
@@ -46,7 +46,14 @@ div
             ignite-form-field-label
                 | Retry policy:
             ignite-form-field-tooltip
-                | Retry policy
+                | Available retry policies:
+                ul: li Exponential backoff - retries a set number of times with increasing sleep time between retries
+                   li Bounded exponential backoff - retries a set number of times with an increasing (up to a maximum bound) sleep time between retries
+                    li Until elapsed - retries until a given amount of time elapses
+                    li Max number of times - retries a max number of times
+                    li Only once - retries only once
+                    li Always allow retry - retries infinitely
+                    li Custom - custom retry policy implementation
             ignite-form-field-dropdown(
                 data-id='retryPolicy'
                 data-name='retryPolicy'
@@ -56,7 +63,7 @@ div
                     {value: "UntilElapsed", label: "Until elapsed"},\
                     {value: "NTimes", label: "Max number of times"},\
                     {value: "OneTime", label: "Only once"},\
-                    {value: "Forever", label: "Always allowsRetry"},\
+                    {value: "Forever", label: "Always allow retry"},\
                     {value: "Custom", label: "Custom"},\
                     {value: undefined, label: "Default"}\
                 ]'
@@ -108,6 +115,6 @@ div
             | Allow duplicate registrations
             ignite-form-field-tooltip
                 | Whether to register each node only once, or if duplicate registrations are allowed#[br]
-                | Nodes will attempt to register themselves, plus those they know about #[br]
-                | By default, duplicate registrations are not allowed, but you might want to set this property to
-                | #[b true] if you have multiple network interfaces or if you are facing troubles
+                | Nodes will attempt to register themselves, plus those they know about#[br]
+                | By default, duplicate registrations are not allowed, but you might want to set this property
+                | to #[b true] if you have multiple network interfaces or if you are facing troubles

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
index 06eb790..cc4920f 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
@@ -20,7 +20,7 @@ div
     .details-row
         ignite-form-field
             ignite-form-field-label
-                | Base Sleep Time:
+                | Base interval:
             ignite-form-field-tooltip
                 | Initial amount of time to wait between retries
             ignite-form-field-input-number(
@@ -28,11 +28,12 @@ div
                 data-name='baseSleepTimeMs'
                 data-ng-model='#{model}.baseSleepTimeMs'
                 data-ng-required='true'
+                data-placeholder='1000'
             )
     .details-row
         ignite-form-field
             ignite-form-field-label
-                | Max sleep time:
+                | Max interval:
             ignite-form-field-tooltip
                 | Max time in ms to sleep on each retry
             ignite-form-field-input-number(
@@ -53,5 +54,6 @@ div
                 data-name='maxRetries'
                 data-ng-model='#{model}.maxRetries'
                 data-ng-required='true'
+                data-placeholder='10'
                 data-max='29'
             )

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
index 79bcfa1..b33622b 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
@@ -20,7 +20,7 @@ div
     .details-row
         ignite-form-field
             ignite-form-field-label
-                | Base sleep time:
+                | Base interval:
             ignite-form-field-tooltip
                 | Initial amount of time to wait between retries
             ignite-form-field-input-number(
@@ -28,6 +28,7 @@ div
                 data-name='baseSleepTimeMs'
                 data-ng-model='#{model}.baseSleepTimeMs'
                 data-ng-required='true'
+                data-placeholder='1000'
             )
     .details-row
         ignite-form-field
@@ -40,12 +41,13 @@ div
                 data-name='maxRetries'
                 data-ng-model='#{model}.maxRetries'
                 data-ng-required='true'
+                data-placeholder='10'
                 data-max='29'
             )
     .details-row
         ignite-form-field
             ignite-form-field-label
-                | Max sleep time:
+                | Max interval:
             ignite-form-field-tooltip
                 | Max time in ms to sleep on each retry
             ignite-form-field-input-number(

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
index 705fa2a..cde2869 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
@@ -27,4 +27,5 @@
             data-name='retryIntervalMs'
             data-ng-model='#{model}.retryIntervalMs'
             data-ng-required='true'
+            data-placeholder='1000'
         )

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
index 0c44709..71a7acc 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
@@ -27,6 +27,7 @@ div
                 data-id='n'
                 data-name='n'
                 data-ng-model='#{model}.n'
+                data-placeholder='10'
                 data-ng-required='true'
             )
     .details-row
@@ -40,4 +41,5 @@ div
                 data-name='sleepMsBetweenRetries'
                 data-ng-model='#{model}.sleepMsBetweenRetries'
                 data-ng-required='true'
+                data-placeholder='1000'
             )

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
index 24b3514..39c7f13 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
@@ -28,4 +28,5 @@ div
                 data-name='sleepMsBetweenRetry'
                 data-ng-model='#{model}.sleepMsBetweenRetry'
                 data-ng-required='true'
+                data-placeholder='1000'
             )

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
index c4e701e..e834d55 100644
--- a/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
+++ b/modules/control-center-web/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
@@ -28,6 +28,7 @@ div
                 data-name='maxElapsedTimeMs'
                 data-ng-model='#{model}.maxElapsedTimeMs'
                 data-ng-required='true'
+                data-placeholder='60000'
             )
     .details-row
         ignite-form-field
@@ -40,4 +41,5 @@ div
                 data-name='sleepMsBetweenRetries'
                 data-ng-model='#{model}.sleepMsBetweenRetries'
                 data-ng-required='true'
+                data-placeholder='1000'
             )

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/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 7e49f81..12b1199 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
@@ -62,13 +62,13 @@ consoleModule.controller('clustersController', function ($http, $timeout, $scope
         var showPopoverMessage = $common.showPopoverMessage;
 
         $scope.discoveries = [
-            {value: 'Vm', label: 'static IPs'},
-            {value: 'Multicast', label: 'multicast'},
+            {value: 'Vm', label: 'Static IPs'},
+            {value: 'Multicast', label: 'Multicast'},
             {value: 'S3', label: 'AWS S3'},
             {value: 'Cloud', label: 'Apache jclouds'},
             {value: 'GoogleStorage', label: 'Google cloud storage'},
             {value: 'Jdbc', label: 'JDBC'},
-            {value: 'SharedFs', label: 'shared filesystem'},
+            {value: 'SharedFs', label: 'Shared filesystem'},
             {value: 'ZooKeeper', label: 'Apache ZooKeeper'}
         ];
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 732fe51..dfb7a64 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -67,7 +67,7 @@ $generatorJava.constructorArg = function (obj, propName, notFirst, opt) {
     var v = obj ? obj[propName] : undefined;
 
     if ($commonUtils.isDefinedAndNotEmpty(v))
-        return (notFirst ? ', ' : '') + v;
+        return (notFirst ? ', ' : '') + $generatorJava.toJavaCode(v);
     else if (!opt)
         return notFirst ? ', null' : 'null';
     else
@@ -2378,15 +2378,14 @@ $generatorJava.igfsSecondFS = function(igfs, varName, res) {
     if (igfs.secondaryFileSystemEnabled) {
         var secondFs = igfs.secondaryFileSystem || {};
 
-        var uriDefined = $commonUtils.isDefinedAndNotEmpty(secondFs.uri);
         var nameDefined = $commonUtils.isDefinedAndNotEmpty(secondFs.userName);
         var cfgDefined = $commonUtils.isDefinedAndNotEmpty(secondFs.cfgPath);
 
         res.line(varName + '.setSecondaryFileSystem(new ' +
             res.importClass('org.apache.ignite.hadoop.fs.IgniteHadoopIgfsSecondaryFileSystem') + '(' +
-                (uriDefined ? '"' + secondFs.uri + '"' : 'null') +
-                (cfgDefined || nameDefined ? (cfgDefined ? ', "' + secondFs.cfgPath + '"' : ', null') : '') +
-                (nameDefined ? ', "' + secondFs.userName + '"' : '') +
+                $generatorJava.constructorArg(secondFs, 'uri') +
+                (cfgDefined || nameDefined ? $generatorJava.constructorArg(secondFs, 'cfgPath', true) : '') +
+                $generatorJava.constructorArg(secondFs, 'userName', true, true) +
             '));');
 
         res.needEmptyLine = true;

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
index 2d2c5c8..0afe190 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-xml.js
@@ -1073,7 +1073,7 @@ $generatorXml.cacheRebalance = function(cache, res) {
     if (cache.igfsAffinnityGroupSize) {
         res.startBlock('<property name="affinityMapper">');
         res.startBlock('<bean class="org.apache.ignite.igfs.IgfsGroupDataBlocksKeyMapper">');
-        res.line('<constructor-arg value="' + cache.igfsAffinnityGroupSize + '"/>');
+        $generatorXml.constructorArg(res, -1, cache, 'igfsAffinnityGroupSize');
         res.endBlock('</bean>');
         res.endBlock('</property>');
     }
@@ -1525,26 +1525,12 @@ $generatorXml.igfsSecondFS = function(igfs, res) {
         var nameDefined = $commonUtils.isDefinedAndNotEmpty(secondFs.userName);
         var cfgDefined = $commonUtils.isDefinedAndNotEmpty(secondFs.cfgPath);
 
-        if ($commonUtils.isDefinedAndNotEmpty(secondFs.uri))
-            res.line('<constructor-arg index="0" value="' + secondFs.uri + '"/>');
-        else {
-            res.startBlock('<constructor-arg index="0">');
-            res.line('<null/>');
-            res.endBlock('</constructor-arg>');
-        }
+        $generatorXml.constructorArg(res, 0, secondFs, 'uri');
 
-        if (cfgDefined || nameDefined) {
-            if (cfgDefined)
-                res.line('<constructor-arg index="1" value="' + secondFs.cfgPath + '"/>');
-            else {
-                res.startBlock('<constructor-arg index="1">');
-                res.line('<null/>');
-                res.endBlock('</constructor-arg>');
-            }
-        }
+        if (cfgDefined || nameDefined)
+            $generatorXml.constructorArg(res, 1, secondFs, 'cfgPath');
 
-        if ($commonUtils.isDefinedAndNotEmpty(secondFs.userName))
-            res.line('<constructor-arg index="2" value="' + secondFs.userName + '"/>');
+        $generatorXml.constructorArg(res, 2, secondFs, 'userName', true);
 
         res.endBlock('</bean>');
         res.endBlock('</property>');

http://git-wip-us.apache.org/repos/asf/ignite/blob/6de273fa/modules/control-center-web/src/main/js/public/stylesheets/style.scss
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/public/stylesheets/style.scss b/modules/control-center-web/src/main/js/public/stylesheets/style.scss
index 024fba9..4f2cf28 100644
--- a/modules/control-center-web/src/main/js/public/stylesheets/style.scss
+++ b/modules/control-center-web/src/main/js/public/stylesheets/style.scss
@@ -393,7 +393,7 @@ h1, h2, h3, h4, h5, h6 {
 }
 
 .details-row {
-    padding: 0 10px;
+    padding: 0 5px;
 }
 
 .details-row, .settings-row {


[50/50] ignite git commit: IGNITE-843 Minor fix.

Posted by an...@apache.org.
IGNITE-843 Minor fix.


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

Branch: refs/heads/ignite-843
Commit: 20837100b112dfefe25a2d0fe96b4604d6242ee0
Parents: f0d5069
Author: Andrey <an...@gridgain.com>
Authored: Fri Mar 4 09:25:04 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Fri Mar 4 09:25:04 2016 +0700

----------------------------------------------------------------------
 modules/control-center-web/src/main/js/views/index.jade | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/20837100/modules/control-center-web/src/main/js/views/index.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/index.jade b/modules/control-center-web/src/main/js/views/index.jade
index 28921d6..0eef7a7 100644
--- a/modules/control-center-web/src/main/js/views/index.jade
+++ b/modules/control-center-web/src/main/js/views/index.jade
@@ -27,7 +27,7 @@ html(ng-app='ignite-web-console' id='app')
 
         meta(name='description' content='{{$meta.description}}')
         meta(name='keywords' content='{{$meta.keywords}}')
-        meta(ng-repeat='(key, value) in $meta.properties' property='{{::key}}' content='{{::value}}')
+        meta(ng-repeat='(key, value) in $meta.properties' name='{{::key}}' content='{{::value}}')
 
         link(rel='stylesheet', href='/app.min.css')