You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/12/02 09:25:09 UTC

[03/19] ignite git commit: Web console beta-6.

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/app/modules/states/configuration/domains/store.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/domains/store.jade b/modules/web-console/frontend/app/modules/states/configuration/domains/store.jade
index ab569e7..f5d6b7d 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/domains/store.jade
+++ b/modules/web-console/frontend/app/modules/states/configuration/domains/store.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../../../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 -var form = 'store'
 -var model = 'backupItem'
@@ -43,15 +43,15 @@ mixin table-db-field-edit(tbl, prefix, focusId, index)
     .col-xs-3.col-sm-3.col-md-3
         .fieldSep /
         .input-tip
-            input.form-control(id=databaseNameId ignite-on-enter-focus-move=databaseTypeId type='text' ng-model=databaseNameModel placeholder='DB name' ignite-on-enter='#{javaNameModel} = #{javaNameModel} ? #{javaNameModel} : #{databaseNameModel}' ignite-on-escape='tableReset()')
+            input.form-control(id=databaseNameId ignite-on-enter-focus-move=databaseTypeId type='text' ng-model=databaseNameModel placeholder='DB name' ignite-on-enter='#{javaNameModel} = #{javaNameModel} ? #{javaNameModel} : #{databaseNameModel}' ignite-on-escape='tableReset(false)')
     .col-xs-3.col-sm-3.col-md-3
         .fieldSep /
         .input-tip
-            button.select-toggle.form-control(id=databaseTypeId ignite-on-enter-focus-move=javaNameId ng-model=databaseTypeModel data-placeholder='DB type' ng-class='{placeholder: !#{databaseTypeModel}}' bs-select bs-options='item.value as item.label for item in {{supportedJdbcTypes}}' ignite-on-escape='tableReset()' tabindex='0')
+            button.select-toggle.form-control(id=databaseTypeId ignite-on-enter-focus-move=javaNameId ng-model=databaseTypeModel data-placeholder='DB type' ng-class='{placeholder: !#{databaseTypeModel}}' bs-select bs-options='item.value as item.label for item in {{supportedJdbcTypes}}' ignite-on-escape='tableReset(false)' tabindex='0')
     .col-xs-3.col-sm-3.col-md-3
         .fieldSep /
         .input-tip
-            input.form-control(id=javaNameId ignite-on-enter-focus-move=javaTypeId type='text' ng-model=javaNameModel placeholder='Java name' ignite-on-escape='tableReset()')
+            input.form-control(id=javaNameId ignite-on-enter-focus-move=javaTypeId type='text' ng-model=javaNameModel placeholder='Java name' ignite-on-escape='tableReset(false)')
     .col-xs-3.col-sm-3.col-md-3
         -var btnVisible = 'tableDbFieldSaveVisible(' + tbl + ', ' + index +')'
         -var btnSave = 'tableDbFieldSave(' + tbl + ', ' + index +')'
@@ -59,12 +59,12 @@ mixin table-db-field-edit(tbl, prefix, focusId, index)
 
         +btn-save(btnVisible, btnSave)
         .input-tip
-            button.select-toggle.form-control(id=javaTypeId ng-model=javaTypeModel data-placeholder='Java type' ng-class='{placeholder: !#{javaTypeModel}}' bs-select bs-options='item.value as item.label for item in {{supportedJavaTypes}}' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset()' tabindex='0')
+            button.select-toggle.form-control(id=javaTypeId ng-model=javaTypeModel data-placeholder='Java type' ng-class='{placeholder: !#{javaTypeModel}}' bs-select bs-options='item.value as item.label for item in {{supportedJavaTypes}}' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)' tabindex='0')
 
 .panel.panel-default(ng-form=form novalidate)
     .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
         ignite-form-panel-chevron
-        label Domain model for cache store
+        label(id='store-title') Domain model for cache store
         ignite-form-field-tooltip.tipLabel
             | Domain model properties for binding database with cache via POJO cache store#[br]
             | #[a(href="https://apacheignite.readme.io/docs/persistent-store" target="_blank") More info]

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.jade
index 1b3a00a..f6ac89f 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.jade
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../../../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 -var form = 'dualMode'
 -var model = 'backupItem'

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.jade
index edc2352..16f3749 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.jade
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../../../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 -var form = 'fragmentizer'
 -var model = 'backupItem'

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/app/modules/states/configuration/igfs/general.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/general.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/general.jade
index d12a6e8..62cda77 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/general.jade
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/general.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../../../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 -var form = 'general'
 -var model = 'backupItem'

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.jade
index f8da2f9..83c5de6 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.jade
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../../../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 -var form = 'ipc'
 -var model = 'backupItem'

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.jade
index ca22dc5..dc0e9fc 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.jade
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../../../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 -var form = 'misc'
 -var model = 'backupItem'
@@ -32,7 +32,7 @@ mixin table-igfs-path-mode-edit(prefix, focusId, index)
     .col-xs-8.col-sm-8.col-md-8
         .fieldSep /
         .input-tip
-            input.form-control(id=keyFocusId ignite-on-enter-focus-move=valFocusId type='text' ng-model=keyModel placeholder='Path' ignite-on-escape='tableReset()')
+            input.form-control(id=keyFocusId ignite-on-enter-focus-move=valFocusId type='text' ng-model=keyModel placeholder='Path' ignite-on-escape='tableReset(false)')
     .col-xs-4.col-sm-4.col-md-4
         -var arg = keyModel + ', ' + valModel
         -var btnVisible = 'tablePairSaveVisible(tblPathModes, ' + index + ')'
@@ -40,7 +40,7 @@ mixin table-igfs-path-mode-edit(prefix, focusId, index)
         -var btnVisibleAndSave = btnVisible + ' && ' + btnSave
         +btn-save(btnVisible, btnSave)
         .input-tip
-            button.select-toggle.form-control(id=valFocusId bs-select ng-model=valModel data-placeholder='Mode' bs-options='item.value as item.label for item in igfsModes' tabindex='0' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset()')
+            button.select-toggle.form-control(id=valFocusId bs-select ng-model=valModel data-placeholder='Mode' bs-options='item.value as item.label for item in igfsModes' tabindex='0' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
 
 .panel.panel-default(ng-form=form novalidate)
     .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.jade
index 1143662..b605e77 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.jade
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../../../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 -var form = 'secondaryFileSystem'
 -var model = 'backupItem'

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js b/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
index 4bfbf48..d739c43 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
@@ -223,6 +223,10 @@ export default [
             return false;
         }
 
+        function escapeFileName(name) {
+            return name.replace(/[\\\/*\"\[\],\.:;|=<>?]/g, '-').replace(/ /g, '_');
+        }
+
         $scope.selectItem = (cluster) => {
             delete ctrl.cluster;
 
@@ -318,8 +322,8 @@ export default [
             const srcPath = 'src/main/java';
             const resourcesPath = 'src/main/resources';
 
-            const serverXml = `${cluster.name}-server.xml`;
-            const clientXml = `${cluster.name}-client.xml`;
+            const serverXml = `${escapeFileName(cluster.name)}-server.xml`;
+            const clientXml = `${escapeFileName(cluster.name)}-client.xml`;
 
             const metaPath = `${resourcesPath}/META-INF`;
 
@@ -329,7 +333,7 @@ export default [
             const cfgPath = `${srcPath}/config`;
 
             zip.file(`${cfgPath}/ServerConfigurationFactory.java`, java.igniteConfiguration(cfg, 'config', 'ServerConfigurationFactory').asString());
-            zip.file(`${cfgPath}/ClientConfigurationFactory.java`, java.igniteConfiguration(cfg, 'config', 'ClientConfigurationFactory', clientNearCaches).asString());
+            zip.file(`${cfgPath}/ClientConfigurationFactory.java`, java.igniteConfiguration(clientCfg, 'config', 'ClientConfigurationFactory', clientNearCaches).asString());
 
             if (java.isDemoConfigured(cluster, $root.IgniteDemoMode)) {
                 zip.file(`${srcPath}/demo/DemoStartup.java`, java.nodeStartup(cluster, 'demo.DemoStartup',
@@ -370,7 +374,7 @@ export default [
             $generatorOptional.optionalContent(zip, cluster);
 
             zip.generateAsync({type: 'blob', compression: 'DEFLATE', mimeType: 'application/octet-stream'})
-                .then((blob) => saver.saveAs(blob, cluster.name + '-project.zip'));
+                .then((blob) => saver.saveAs(blob, escapeFileName(cluster.name) + '-project.zip'));
         };
 
         /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/controllers/clusters-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/controllers/clusters-controller.js b/modules/web-console/frontend/controllers/clusters-controller.js
index f9096f7..f92a2f1 100644
--- a/modules/web-console/frontend/controllers/clusters-controller.js
+++ b/modules/web-console/frontend/controllers/clusters-controller.js
@@ -594,6 +594,13 @@ export default ['clustersController', [
             }));
         }
 
+        function checkODBC(item) {
+            if (_.get(item, 'odbc.odbcEnabled') && _.get(item, 'marshaller.kind'))
+                return ErrorPopover.show('odbcEnabledInput', 'ODBC can only be used with BinaryMarshaller', $scope.ui, 'odbcConfiguration');
+
+            return true;
+        }
+
         function checkSwapConfiguration(item) {
             const swapKind = item.swapSpaceSpi && item.swapSpaceSpi.kind;
 
@@ -674,6 +681,9 @@ export default ['clustersController', [
             if (!checkLoadBalancingConfiguration(item))
                 return false;
 
+            if (!checkODBC(item))
+                return false;
+
             if (!checkSwapConfiguration(item))
                 return false;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/controllers/domains-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/controllers/domains-controller.js b/modules/web-console/frontend/controllers/domains-controller.js
index 0a79d82..2d7b875 100644
--- a/modules/web-console/frontend/controllers/domains-controller.js
+++ b/modules/web-console/frontend/controllers/domains-controller.js
@@ -95,7 +95,7 @@ export default ['domainsController', [
 
                         break;
 
-                    case 'indexes':
+                    case 'table-indexes':
                         if ($scope.tableIndexSaveVisible(field, index))
                             return $scope.tableIndexSave(field, index, stopEdit);
 
@@ -1355,6 +1355,9 @@ export default ['domainsController', [
             if (!LegacyUtils.domainForStoreConfigured(item) && !LegacyUtils.domainForQueryConfigured(item) && item.queryMetadata === 'Configuration')
                 return ErrorPopover.show('query-title', 'SQL query domain model should be configured', $scope.ui, 'query');
 
+            if (!LegacyUtils.domainForStoreConfigured(item) && item.generatePojo)
+                return ErrorPopover.show('store-title', 'Domain model for cache store should be configured when generation of POJO classes is enabled', $scope.ui, 'store');
+
             return true;
         }
 
@@ -1437,7 +1440,8 @@ export default ['domainsController', [
         }
 
         function _newNameIsValidJavaClass(newName) {
-            return LegacyUtils.isValidJavaClass('New name for value type', newName, false, 'copy-new-nameInput');
+            return !$scope.backupItem.generatePojo ||
+                LegacyUtils.isValidJavaClass('New name for value type', newName, false, 'copy-new-nameInput');
         }
 
         // Save domain model with new name.

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
index fe8bb09..4935976 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
@@ -19,10 +19,10 @@ import gulp from 'gulp';
 import ll from 'gulp-ll';
 import jade from 'gulp-jade';
 
-import { jadeViewsPaths, jadeAppModulePaths, jadeModulePaths, destDir } from '../paths';
+import { jadeViewsPaths, jadeAppModulePaths, jadeModulePaths, destDir, rootDir } from '../paths';
 
 const jadeOptions = {
-    basedir: './',
+    basedir: rootDir,
     cache: true
 };
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/gulpfile.babel.js/tasks/test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/test.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/test.js
deleted file mode 100644
index ad4108d..0000000
--- a/modules/web-console/frontend/gulpfile.babel.js/tasks/test.js
+++ /dev/null
@@ -1,92 +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 gulp from 'gulp';
-import karmaBabelPreprocessor from 'karma-babel-preprocessor';
-import karmaPhantomjsLauncher from 'karma-phantomjs-launcher';
-import karmaWebpack from 'karma-webpack';
-import karmaJasmine from 'karma-jasmine';
-
-import {Server} from 'karma';
-
-import {rootDir} from '../paths';
-
-gulp.task('test', (cb) => {
-    new Server({
-        // Base path that will be used to resolve all patterns (eg. files, exclude).
-        basePath: rootDir,
-
-        // Frameworks to use available frameworks: https://npmjs.org/browse/keyword/karma-adapter
-        frameworks: ['jasmine'],
-
-        // List of files / patterns to load in the browser.
-        files: [
-            'test/**/*.test.js'
-        ],
-
-        plugins: [
-            karmaBabelPreprocessor,
-            karmaPhantomjsLauncher,
-            karmaWebpack,
-            karmaJasmine
-        ],
-
-        // Preprocess matching files before serving them to the browser
-        // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor.
-        preprocessors: {
-            'test/**/*.js': ['webpack']
-        },
-
-        webpack: {
-            devtool: 'inline-source-map',
-            module: {
-                loaders: [
-                    {test: /\.js/, loaders: ['babel'], exclude: /node_modules/}
-                ]
-            },
-            resolve: {
-                extensions: ['', '.js']
-            }
-        },
-
-        // Test results reporter to use
-        // possible values: 'dots', 'progress'
-        // available reporters: https://npmjs.org/browse/keyword/karma-reporter.
-        reporters: ['progress'],
-
-        // web server port
-        port: 9876,
-
-        // enable / disable colors in the output (reporters and logs)
-        colors: true,
-
-        // enable / disable watching file and executing tests whenever any file changes
-        autoWatch: true,
-
-        // start these browsers
-        // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
-        browsers: ['PhantomJS'],
-
-        // Continuous Integration mode
-        // if true, Karma captures browsers, runs the tests and exits
-        singleRun: true,
-
-        // Concurrency level
-        // how many browser should be started simultaneous
-        concurrency: Infinity
-    }, cb).start();
-});

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
index f6c2d87..2463d24 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
@@ -77,7 +77,10 @@ export default () => {
                 './'
             ]
         },
-
+        jade: {
+            basedir: rootDir,
+            locals: {}
+        },
         // Modules resolvers.
         /* global require */
         module: {

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
index 1550dfa..cad9133 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
@@ -55,6 +55,11 @@ export default () => {
                     changeOrigin: true,
                     ws: true
                 },
+                '/agents': {
+                    target: 'http://localhost:3000',
+                    changeOrigin: true,
+                    ws: true
+                },
                 '/api/v1/*': {
                     target: 'http://localhost:3000',
                     changeOrigin: true,

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/package.json
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/package.json b/modules/web-console/frontend/package.json
index fe8c295..b511ca1 100644
--- a/modules/web-console/frontend/package.json
+++ b/modules/web-console/frontend/package.json
@@ -95,7 +95,7 @@
     "html-loader": "^0.4.3",
     "html-webpack-plugin": "^2.21.0",
     "jade": "^1.11.0",
-    "jade-html-loader": "0.0.3",
+    "jade-html-loader": "git://github.com/courcelan/jade-html-loader",
     "jasmine-core": "^2.4.1",
     "json-loader": "^0.5.4",
     "karma": "^0.13.22",

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/public/stylesheets/_font-awesome-custom.scss
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/public/stylesheets/_font-awesome-custom.scss b/modules/web-console/frontend/public/stylesheets/_font-awesome-custom.scss
index 1c8f325..15ee60c 100644
--- a/modules/web-console/frontend/public/stylesheets/_font-awesome-custom.scss
+++ b/modules/web-console/frontend/public/stylesheets/_font-awesome-custom.scss
@@ -30,3 +30,21 @@ $fa-font-path: '~font-awesome/fonts';
 @import '~font-awesome/scss/rotated-flipped';
 @import '~font-awesome/scss/stacked';
 @import '~font-awesome/scss/icons';
+
+.fa {
+  cursor: pointer;
+}
+
+.icon-help {
+  @extend .fa;
+  @extend .fa-question-circle-o;
+
+  cursor: default;
+}
+
+.icon-confirm {
+  @extend .fa;
+  @extend .fa-question-circle-o;
+
+  cursor: default;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/public/stylesheets/style.scss
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/public/stylesheets/style.scss b/modules/web-console/frontend/public/stylesheets/style.scss
index 0f8f49a..172abf4 100644
--- a/modules/web-console/frontend/public/stylesheets/style.scss
+++ b/modules/web-console/frontend/public/stylesheets/style.scss
@@ -541,6 +541,12 @@ i.btn {
         margin-left: 0;
     }
 
+    button.btn[disabled="disabled"] {
+        i {
+            cursor: not-allowed;
+        }
+    }
+
     > .btn + .dropdown-toggle {
         margin-right: 0;
         padding: 3px 6px;
@@ -1350,9 +1356,6 @@ label {
     margin: 0 5px;
 }
 
-.fa {
-    cursor: pointer;
-}
 
 .fa-cursor-default {
     cursor: default !important;
@@ -1372,10 +1375,6 @@ label {
     margin-right: 5px;
 }
 
-.fa-question-circle {
-    cursor: default;
-}
-
 label.required:after {
     color: $brand-primary;
     content: ' *';

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/configuration/caches.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/caches.jade b/modules/web-console/frontend/views/configuration/caches.jade
index 74d5505..4a4cf2e 100644
--- a/modules/web-console/frontend/views/configuration/caches.jade
+++ b/modules/web-console/frontend/views/configuration/caches.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 .docs-header
     h1 Configure Ignite Caches
@@ -36,19 +36,19 @@ include ../../app/helpers/jade/mixins.jade
             div(bs-collapse='' data-allow-multiple='true' ng-model='ui.activePanels')
                 form.form-horizontal(name='ui.inputForm' novalidate ng-if='contentVisible()')
                     .panel-group
-                        include ../../app/modules/states/configuration/caches/general.jade
-                        include ../../app/modules/states/configuration/caches/memory.jade
-                        include ../../app/modules/states/configuration/caches/query.jade
-                        include ../../app/modules/states/configuration/caches/store.jade
+                        include /app/modules/states/configuration/caches/general.jade
+                        include /app/modules/states/configuration/caches/memory.jade
+                        include /app/modules/states/configuration/caches/query.jade
+                        include /app/modules/states/configuration/caches/store.jade
 
                         +advanced-options-toggle-default
 
                         div(ng-show='ui.expanded')
-                            include ../../app/modules/states/configuration/caches/concurrency.jade
-                            include ../../app/modules/states/configuration/caches/near-cache-client.jade
-                            include ../../app/modules/states/configuration/caches/near-cache-server.jade
-                            include ../../app/modules/states/configuration/caches/node-filter.jade
-                            include ../../app/modules/states/configuration/caches/rebalance.jade
-                            include ../../app/modules/states/configuration/caches/statistics.jade
+                            include /app/modules/states/configuration/caches/concurrency.jade
+                            include /app/modules/states/configuration/caches/near-cache-client.jade
+                            include /app/modules/states/configuration/caches/near-cache-server.jade
+                            include /app/modules/states/configuration/caches/node-filter.jade
+                            include /app/modules/states/configuration/caches/rebalance.jade
+                            include /app/modules/states/configuration/caches/statistics.jade
 
                             +advanced-options-toggle-default

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/configuration/clusters.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/clusters.jade b/modules/web-console/frontend/views/configuration/clusters.jade
index 8a3a194..7826464 100644
--- a/modules/web-console/frontend/views/configuration/clusters.jade
+++ b/modules/web-console/frontend/views/configuration/clusters.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 .docs-header
     h1 Configure Ignite Clusters
@@ -36,33 +36,33 @@ include ../../app/helpers/jade/mixins.jade
             div(bs-collapse='' data-allow-multiple='true' ng-model='ui.activePanels')
                 form.form-horizontal(name='ui.inputForm' novalidate ng-if='contentVisible()')
                     .panel-group
-                        include ../../app/modules/states/configuration/clusters/general.jade
+                        include /app/modules/states/configuration/clusters/general.jade
 
                         +advanced-options-toggle-default
 
                         div(ng-show='ui.expanded')
-                            include ../../app/modules/states/configuration/clusters/atomic.jade
-                            include ../../app/modules/states/configuration/clusters/binary.jade
-                            include ../../app/modules/states/configuration/clusters/cache-key-cfg.jade
-                            include ../../app/modules/states/configuration/clusters/checkpoint.jade
-                            include ../../app/modules/states/configuration/clusters/collision.jade
-                            include ../../app/modules/states/configuration/clusters/communication.jade
-                            include ../../app/modules/states/configuration/clusters/connector.jade
-                            include ../../app/modules/states/configuration/clusters/deployment.jade
-                            include ../../app/modules/states/configuration/clusters/discovery.jade
-                            include ../../app/modules/states/configuration/clusters/events.jade
-                            include ../../app/modules/states/configuration/clusters/failover.jade
-                            include ../../app/modules/states/configuration/clusters/igfs.jade
-                            include ../../app/modules/states/configuration/clusters/load-balancing.jade
-                            include ../../app/modules/states/configuration/clusters/logger.jade
-                            include ../../app/modules/states/configuration/clusters/marshaller.jade
-                            include ../../app/modules/states/configuration/clusters/metrics.jade
-                            include ../../app/modules/states/configuration/clusters/odbc.jade
-                            include ../../app/modules/states/configuration/clusters/ssl.jade
-                            include ../../app/modules/states/configuration/clusters/swap.jade
-                            include ../../app/modules/states/configuration/clusters/thread.jade
-                            include ../../app/modules/states/configuration/clusters/time.jade
-                            include ../../app/modules/states/configuration/clusters/transactions.jade
-                            include ../../app/modules/states/configuration/clusters/attributes.jade
+                            include /app/modules/states/configuration/clusters/atomic.jade
+                            include /app/modules/states/configuration/clusters/binary.jade
+                            include /app/modules/states/configuration/clusters/cache-key-cfg.jade
+                            include /app/modules/states/configuration/clusters/checkpoint.jade
+                            include /app/modules/states/configuration/clusters/collision.jade
+                            include /app/modules/states/configuration/clusters/communication.jade
+                            include /app/modules/states/configuration/clusters/connector.jade
+                            include /app/modules/states/configuration/clusters/deployment.jade
+                            include /app/modules/states/configuration/clusters/discovery.jade
+                            include /app/modules/states/configuration/clusters/events.jade
+                            include /app/modules/states/configuration/clusters/failover.jade
+                            include /app/modules/states/configuration/clusters/igfs.jade
+                            include /app/modules/states/configuration/clusters/load-balancing.jade
+                            include /app/modules/states/configuration/clusters/logger.jade
+                            include /app/modules/states/configuration/clusters/marshaller.jade
+                            include /app/modules/states/configuration/clusters/metrics.jade
+                            include /app/modules/states/configuration/clusters/odbc.jade
+                            include /app/modules/states/configuration/clusters/ssl.jade
+                            include /app/modules/states/configuration/clusters/swap.jade
+                            include /app/modules/states/configuration/clusters/thread.jade
+                            include /app/modules/states/configuration/clusters/time.jade
+                            include /app/modules/states/configuration/clusters/transactions.jade
+                            include /app/modules/states/configuration/clusters/attributes.jade
 
                             +advanced-options-toggle-default

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/configuration/domains-import.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/domains-import.jade b/modules/web-console/frontend/views/configuration/domains-import.jade
index 99014bc..e4f95bc 100644
--- a/modules/web-console/frontend/views/configuration/domains-import.jade
+++ b/modules/web-console/frontend/views/configuration/domains-import.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 mixin chk(mdl, change, tip)
     input(type='checkbox' ng-model=mdl ng-change=change bs-tooltip='' data-title=tip data-trigger='hover' data-placement='top')
@@ -133,7 +133,7 @@ mixin td-ellipses-lbl(w, lbl)
                                                     td
                     .settings-row
                         label Defaults to be applied for filtered tables
-                        i.tipLabel.fa.fa-question-circle(bs-tooltip='' data-title='Select and apply options for caches generation')
+                        i.tipLabel.icon-help(bs-tooltip='' data-title='Select and apply options for caches generation')
                     .settings-row
                         .col-sm-11
                             .col-sm-6(style='padding-right: 5px')

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/configuration/domains.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/domains.jade b/modules/web-console/frontend/views/configuration/domains.jade
index 5912343..14e9ca5 100644
--- a/modules/web-console/frontend/views/configuration/domains.jade
+++ b/modules/web-console/frontend/views/configuration/domains.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 .docs-header
     h1 Configure Domain Model And SQL Queries
@@ -61,6 +61,6 @@ include ../../app/helpers/jade/mixins.jade
             div(bs-collapse='' data-allow-multiple='true' ng-model='ui.activePanels')
                 form.form-horizontal(name='ui.inputForm' novalidate ng-if='contentVisible()')
                     .panel-group
-                        include ../../app/modules/states/configuration/domains/general.jade
-                        include ../../app/modules/states/configuration/domains/query.jade
-                        include ../../app/modules/states/configuration/domains/store.jade
+                        include /app/modules/states/configuration/domains/general.jade
+                        include /app/modules/states/configuration/domains/query.jade
+                        include /app/modules/states/configuration/domains/store.jade

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/configuration/igfs.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/igfs.jade b/modules/web-console/frontend/views/configuration/igfs.jade
index 16e9f28..10c902b 100644
--- a/modules/web-console/frontend/views/configuration/igfs.jade
+++ b/modules/web-console/frontend/views/configuration/igfs.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 .docs-header
     h1 Configure Ignite In-memory File Systems
@@ -37,15 +37,15 @@ include ../../app/helpers/jade/mixins.jade
             div(bs-collapse='' data-allow-multiple='true' ng-model='ui.activePanels')
                 form.form-horizontal(name='ui.inputForm' novalidate ng-if='contentVisible()')
                     .panel-group
-                        include ../../app/modules/states/configuration/igfs/general.jade
+                        include /app/modules/states/configuration/igfs/general.jade
 
                         +advanced-options-toggle-default
 
                         div(ng-show='ui.expanded')
-                            include ../../app/modules/states/configuration/igfs/secondary.jade
-                            include ../../app/modules/states/configuration/igfs/ipc.jade
-                            include ../../app/modules/states/configuration/igfs/fragmentizer.jade
-                            include ../../app/modules/states/configuration/igfs/dual.jade
-                            include ../../app/modules/states/configuration/igfs/misc.jade
+                            include /app/modules/states/configuration/igfs/secondary.jade
+                            include /app/modules/states/configuration/igfs/ipc.jade
+                            include /app/modules/states/configuration/igfs/fragmentizer.jade
+                            include /app/modules/states/configuration/igfs/dual.jade
+                            include /app/modules/states/configuration/igfs/misc.jade
 
                             +advanced-options-toggle-default

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/summary.jade b/modules/web-console/frontend/views/configuration/summary.jade
index d041fea..9a6e553 100644
--- a/modules/web-console/frontend/views/configuration/summary.jade
+++ b/modules/web-console/frontend/views/configuration/summary.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 mixin hard-link(ref, txt)
     a(style='color:#ec1c24' href=ref target='_blank') #{txt}

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/includes/header.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/includes/header.jade b/modules/web-console/frontend/views/includes/header.jade
index 9ef09aa..99bcea9 100644
--- a/modules/web-console/frontend/views/includes/header.jade
+++ b/modules/web-console/frontend/views/includes/header.jade
@@ -24,22 +24,23 @@ header#header.header
             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")}' bs-dropdown='sidebar.items' data-placement='bottom-right' data-trigger='hover focus' data-container='self' data-animation='' ng-click='$event.stopPropagation()')
-                        a.dropdown-toggle Configuration
+                        a.dropdown-toggle Configure
                             span.caret
 
                 ul.nav.navbar-nav(ng-controller='notebookController')
                     li.sql-notebooks(ng-if='IgniteDemoMode' ng-class='{active: $state.includes("base.sql")}')
-                        a(ui-sref='base.sql.demo') SQL
+                        a(ui-sref='base.sql.demo') Queries
 
                     li.sql-notebooks(ng-if='!IgniteDemoMode && !notebooks.length' ng-class='{active: $state.includes("base.sql")}')
-                        a(ng-click='createNotebook()') SQL
+                        a(ng-click='createNotebook()') Queries
 
-                    li.sql-notebooks(ng-if='!IgniteDemoMode && notebooks.length' ng-class='{active: $state.includes("base.sql")}' bs-dropdown='notebooks' data-placement='bottom-left' data-trigger='hover focus' data-container='self' data-animation='' ng-click='$event.stopPropagation()' aria-haspopup="true" aria-expanded="false")
-                        a.dropdown-toggle SQL
+                    li.sql-notebooks(ng-if='!IgniteDemoMode && notebooks.length' ng-class='{active: $state.includes("base.sql")}' bs-dropdown='notebooks' data-placement='bottom-left' data-trigger='hover focus' data-container='self' data-animation='' ng-click='$event.stopPropagation()' aria-haspopup='true' aria-expanded='false')
+                        a.dropdown-toggle Queries
                             span.caret
 
-                    li(ui-sref-active='active'  ng-repeat='item in navbar.items')
-                        a(ui-sref='{{::item.sref}}') {{::item.text}}
+                    li(ui-sref-active='active' ng-repeat='item in navbar.items' ng-class='{active: $state.includes("base.monitoring")}' bs-dropdown='item.children' data-placement='bottom-left' data-trigger='hover focus' data-container='self' data-animation='' ng-click='$event.stopPropagation()' aria-haspopup='true' aria-expanded='false')
+                        a.dropdown-toggle {{::item.text}}
+                            span.caret
 
                 a(ng-controller='demoController')
                     button.btn.btn-info(ng-if='IgniteDemoMode' ng-click='closeDemo()') Close demo

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/settings/profile.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/settings/profile.jade b/modules/web-console/frontend/views/settings/profile.jade
index bc4965a..6f91f8f 100644
--- a/modules/web-console/frontend/views/settings/profile.jade
+++ b/modules/web-console/frontend/views/settings/profile.jade
@@ -56,7 +56,7 @@ mixin lbl(txt)
                             label {{user.token || 'No security token. Regenerate please.'}}
                             i.tipLabel.fa.fa-refresh(ng-click='generateToken()' bs-tooltip='' data-title='Generate random security token')
                             i.tipLabel.fa.fa-clipboard(ignite-copy-to-clipboard='{{user.token}}' bs-tooltip='' data-title='Copy security token to clipboard')
-                            i.tipLabel.fa.fa-question-circle(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent')
+                            i.tipLabel.icon-help(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent')
                     .details-row
                         .advanced-options
                             i.fa(

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/sql/sql.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/sql.jade b/modules/web-console/frontend/views/sql/sql.jade
index 4a596b9..e3f6461 100644
--- a/modules/web-console/frontend/views/sql/sql.jade
+++ b/modules/web-console/frontend/views/sql/sql.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../app/directives/ui-grid-settings/ui-grid-settings.jade
+include /app/directives/ui-grid-settings/ui-grid-settings.jade
 
 mixin btn-toolbar(btn, click, tip, focusId)
     i.btn.btn-default.fa(class=btn ng-click=click bs-tooltip='' data-title=tip ignite-on-click-focus=focusId data-trigger='hover' data-placement='bottom')

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/templates/agent-download.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/agent-download.jade b/modules/web-console/frontend/views/templates/agent-download.jade
index a6da3d1..20b6b03 100644
--- a/modules/web-console/frontend/views/templates/agent-download.jade
+++ b/modules/web-console/frontend/views/templates/agent-download.jade
@@ -36,7 +36,7 @@
                 .details-row(ng-show='agentLoad.showToken')
                     label.labelField Security token: {{user.token}}
                     i.tipLabel.fa.fa-clipboard(ignite-copy-to-clipboard='{{user.token}}' bs-tooltip='' data-title='Copy security token to clipboard')
-                    i.tipLabel.fa.fa-question-circle(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent')
+                    i.tipLabel.icon-help(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent')
             .agent-download(ng-if='hasAgents')
                 p Connection to Ignite Web Agent is established, but agent failed to connect to Ignite Node
                 p Please check the following:

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/templates/batch-confirm.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/batch-confirm.jade b/modules/web-console/frontend/views/templates/batch-confirm.jade
index c5d3775..0b74a4e 100644
--- a/modules/web-console/frontend/views/templates/batch-confirm.jade
+++ b/modules/web-console/frontend/views/templates/batch-confirm.jade
@@ -20,7 +20,7 @@
             .modal-header
                 button.close(ng-click='cancel()' aria-hidden='true') &times;
                 h4.modal-title 
-                    i.fa.fa-question
+                    i.icon-confirm
                     | Confirmation
             .modal-body(ng-show='content')
                 p(ng-bind-html='content' style='text-align: center')

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/templates/clone.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/clone.jade b/modules/web-console/frontend/views/templates/clone.jade
index 6cf93ca..99ec58b 100644
--- a/modules/web-console/frontend/views/templates/clone.jade
+++ b/modules/web-console/frontend/views/templates/clone.jade
@@ -14,7 +14,7 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-include ../../app/helpers/jade/mixins.jade
+include /app/helpers/jade/mixins.jade
 
 .modal(tabindex='-1' role='dialog')
     .modal-dialog

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/frontend/views/templates/confirm.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/confirm.jade b/modules/web-console/frontend/views/templates/confirm.jade
index f9f966b..0031498 100644
--- a/modules/web-console/frontend/views/templates/confirm.jade
+++ b/modules/web-console/frontend/views/templates/confirm.jade
@@ -20,7 +20,7 @@
             .modal-header
                 button.close(ng-click='confirmCancel()' aria-hidden='true') &times;
                 h4.modal-title 
-                    i.fa.fa-question-circle-o
+                    i.icon-confirm
                     | Confirmation
             .modal-body(ng-show='content')
                 p(ng-bind-html='content' style='text-align: center;')

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/web-agent/README.txt
----------------------------------------------------------------------
diff --git a/modules/web-console/web-agent/README.txt b/modules/web-console/web-agent/README.txt
index c6e625b..cc0c80f 100644
--- a/modules/web-console/web-agent/README.txt
+++ b/modules/web-console/web-agent/README.txt
@@ -24,7 +24,7 @@ Configuration file:
 
   Example configuration file:
     tokens=1a2b3c4d5f,2j1s134d12
-    serverURI=https://console.example.com:3001
+    serverURI=https://console.example.com
 
 Security tokens:
   1) By default security token of current user will be included into "default.properties" inside downloaded "ignite-web-agent-x.x.x.zip".
@@ -47,7 +47,7 @@ Options:
      http://localhost:8080
   -s, --server-uri
      URI for connect to Ignite Web Console via web-socket protocol, default
-     value: http://localhost:3001
+     value: http://localhost:3000
   -t, --tokens
      User's security tokens
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/web-agent/bin/ignite-web-agent.bat
----------------------------------------------------------------------
diff --git a/modules/web-console/web-agent/bin/ignite-web-agent.bat b/modules/web-console/web-agent/bin/ignite-web-agent.bat
index f16eb35..8291b55 100644
--- a/modules/web-console/web-agent/bin/ignite-web-agent.bat
+++ b/modules/web-console/web-agent/bin/ignite-web-agent.bat
@@ -53,7 +53,12 @@ goto error_finish
 ::
 :: ADD YOUR/CHANGE ADDITIONAL OPTIONS HERE
 ::
-if "%JVM_OPTS%" == "" set JVM_OPTS=-Xms1g -Xmx1g -server -XX:+AggressiveOpts -XX:MaxPermSize=256m
+"%JAVA_HOME%\bin\java.exe" -version 2>&1 | findstr "1\.[7]\." > nul
+if %ERRORLEVEL% equ 0 (
+    if "%JVM_OPTS%" == "" set JVM_OPTS=-Xms1g -Xmx1g -server -XX:+AggressiveOpts -XX:MaxPermSize=256m
+) else (
+    if "%JVM_OPTS%" == "" set JVM_OPTS=-Xms1g -Xmx1g -server -XX:+AggressiveOpts -XX:MaxMetaspaceSize=256m
+)
 
 "%JAVA_HOME%\bin\java.exe" %JVM_OPTS% -cp "*" org.apache.ignite.console.agent.AgentLauncher  %*
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/web-agent/bin/ignite-web-agent.sh
----------------------------------------------------------------------
diff --git a/modules/web-console/web-agent/bin/ignite-web-agent.sh b/modules/web-console/web-agent/bin/ignite-web-agent.sh
index 3f2c2bc..2e9f041 100644
--- a/modules/web-console/web-agent/bin/ignite-web-agent.sh
+++ b/modules/web-console/web-agent/bin/ignite-web-agent.sh
@@ -81,7 +81,11 @@ cd $DIR
 # ADD YOUR/CHANGE ADDITIONAL OPTIONS HERE
 #
 if [ -z "$JVM_OPTS" ] ; then
-    JVM_OPTS="-Xms1g -Xmx1g -server -XX:+AggressiveOpts -XX:MaxPermSize=256m"
+    if [[ `"$JAVA" -version 2>&1 | egrep "1\.[7]\."` ]]; then
+        JVM_OPTS="-Xms1g -Xmx1g -server -XX:+AggressiveOpts -XX:MaxPermSize=256m"
+    else
+        JVM_OPTS="-Xms1g -Xmx1g -server -XX:+AggressiveOpts -XX:MaxMetaspaceSize=256m"
+    fi
 fi
 
 "$JAVA" ${JVM_OPTS} -cp "*" org.apache.ignite.console.agent.AgentLauncher "$@"

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/agent/AgentConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/agent/AgentConfiguration.java b/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/agent/AgentConfiguration.java
index d4787cc..8f70100 100644
--- a/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/agent/AgentConfiguration.java
+++ b/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/agent/AgentConfiguration.java
@@ -31,9 +31,6 @@ import java.util.Properties;
  * Agent configuration.
  */
 public class AgentConfiguration {
-    /** Default server port. */
-    public static final int DFLT_SERVER_PORT = 3001;
-
     /** Default Ignite node HTTP port. */
     public static final int DFLT_NODE_PORT = 8080;
 
@@ -41,7 +38,7 @@ public class AgentConfiguration {
     public static final String DFLT_CFG_PATH = "default.properties";
 
     /** Default server URI. */
-    private static final String DFLT_SERVER_URI = "http://localhost:3001";
+    private static final String DFLT_SERVER_URI = "http://localhost:3000";
 
     /** Default Ignite node HTTP URI. */
     private static final String DFLT_NODE_URI = "http://localhost:8080";

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/agent/AgentLauncher.java
----------------------------------------------------------------------
diff --git a/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/agent/AgentLauncher.java b/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/agent/AgentLauncher.java
index 810fad4..0c03d77 100644
--- a/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/agent/AgentLauncher.java
+++ b/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/agent/AgentLauncher.java
@@ -50,7 +50,6 @@ import static io.socket.client.Socket.EVENT_CONNECT_ERROR;
 import static io.socket.client.Socket.EVENT_DISCONNECT;
 import static io.socket.client.Socket.EVENT_ERROR;
 import static io.socket.client.Socket.EVENT_RECONNECTING;
-import static org.apache.ignite.console.agent.AgentConfiguration.DFLT_SERVER_PORT;
 
 /**
  * Control Center Agent launcher.
@@ -227,11 +226,10 @@ public class AgentLauncher {
 
             URI uri = URI.create(cfg.serverUri());
 
-            if (uri.getPort() == -1)
-                uri = URI.create(cfg.serverUri() + ':' + DFLT_SERVER_PORT);
-
             IO.Options opts = new IO.Options();
 
+            opts.path = "/agents";
+
             opts.reconnectionDelay = RECONNECT_INTERVAL;
 
             // Workaround for use self-signed certificate

http://git-wip-us.apache.org/repos/asf/ignite/blob/bf330251/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
----------------------------------------------------------------------
diff --git a/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java b/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
index 2fb9f56..489e762 100644
--- a/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
+++ b/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
@@ -134,6 +134,7 @@ public class AgentClusterDemo {
         CacheConfiguration<K, V> ccfg = new CacheConfiguration<>(name);
 
         ccfg.setAffinity(new RendezvousAffinityFunction(false, 32));
+        ccfg.setQueryDetailMetricsSize(10);
         ccfg.setStartSize(100);
         ccfg.setStatisticsEnabled(true);