You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/10/26 04:13:23 UTC

[1/2] ignite git commit: IGNITE-1200 WIP IGFS: added code generation + preview.

Repository: ignite
Updated Branches:
  refs/heads/ignite-843-rc1 b3010bb6b -> cb42765e4


IGNITE-1200 WIP IGFS: added code generation + preview.


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

Branch: refs/heads/ignite-843-rc1
Commit: 7ef27e54cc7c92898459d3a8305872c91bc1fd4d
Parents: c1583b6
Author: vsisko <vs...@gridgain.com>
Authored: Mon Oct 26 10:13:09 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Mon Oct 26 10:13:09 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/controllers/igfs-controller.js  |  24 +++-
 .../src/main/js/controllers/models/igfs.json    |   2 +
 .../main/js/controllers/summary-controller.js   |   4 +
 .../js/routes/generator/generator-common.js     |  16 ++-
 .../main/js/routes/generator/generator-java.js  | 134 ++++++++++++++++++-
 .../main/js/routes/generator/generator-xml.js   | 134 ++++++++++++++++++-
 6 files changed, 303 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/7ef27e54/modules/control-center-web/src/main/js/controllers/igfs-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/igfs-controller.js b/modules/control-center-web/src/main/js/controllers/igfs-controller.js
index ecbf69b..c8855b7 100644
--- a/modules/control-center-web/src/main/js/controllers/igfs-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/igfs-controller.js
@@ -89,6 +89,7 @@ consoleModule.controller('igfsController', [
                 general: {xml: '', java: '', allDefaults: true},
                 ipc: {xml: '', java: '', allDefaults: true},
                 fragmentizer: {xml: '', java: '', allDefaults: true},
+                dualMode: {xml: '', java: '', allDefaults: true},
                 misc: {xml: '', java: '', allDefaults: true}
             };
 
@@ -159,9 +160,25 @@ consoleModule.controller('igfsController', [
 
                                     var varName = $commonUtils.toJavaName('igfs', val.name);
 
-                                    $scope.preview.general.xml = $generatorXml.igfs(val).asString();
-                                    $scope.preview.general.java = $generatorJava.igfs(val, varName).asString();
+                                    $scope.preview.general.xml = $generatorXml.igfsGeneral(val).asString();
+                                    $scope.preview.general.java = $generatorJava.igfsGeneral(val, varName).asString();
                                     $scope.preview.general.allDefaults = $common.isEmptyString($scope.preview.general.xml);
+
+                                    $scope.preview.ipc.xml = $generatorXml.igfsIPC(val).asString();
+                                    $scope.preview.ipc.java = $generatorJava.igfsIPC(val, varName).asString();
+                                    $scope.preview.ipc.allDefaults = $common.isEmptyString($scope.preview.ipc.xml);
+
+                                    $scope.preview.fragmentizer.xml = $generatorXml.igfsFragmentizer(val).asString();
+                                    $scope.preview.fragmentizer.java = $generatorJava.igfsFragmentizer(val, varName).asString();
+                                    $scope.preview.fragmentizer.allDefaults = $common.isEmptyString($scope.preview.fragmentizer.xml);
+
+                                    $scope.preview.dualMode.xml = $generatorXml.igfsDualMode(val).asString();
+                                    $scope.preview.dualMode.java = $generatorJava.igfsDualMode(val, varName).asString();
+                                    $scope.preview.dualMode.allDefaults = $common.isEmptyString($scope.preview.dualMode.xml);
+
+                                    $scope.preview.misc.xml = $generatorXml.igfsMisc(val).asString();
+                                    $scope.preview.misc.java = $generatorJava.igfsMisc(val, varName).asString();
+                                    $scope.preview.misc.allDefaults = $common.isEmptyString($scope.preview.general.xml);
                                 }
                             }, true);
                         })
@@ -233,7 +250,8 @@ consoleModule.controller('igfsController', [
                 if ($common.isEmptyString(item.name))
                     return showPopoverMessage($scope.panels, 'general', 'igfsName', 'Name should not be empty');
 
-                if (!$common.isEmptyString(item.dualModePutExecutorService) && !$common.isValidJavaClass('Put executor service', item.dualModePutExecutorService, false, 'dualModePutExecutorService', false, $scope.panels, 'dualMode'))
+                if (!$common.isEmptyString(item.dualModePutExecutorService) &&
+                    !$common.isValidJavaClass('Put executor service', item.dualModePutExecutorService, false, 'dualModePutExecutorService', false, $scope.panels, 'dualMode'))
                     return false;
 
                 return true;

http://git-wip-us.apache.org/repos/asf/ignite/blob/7ef27e54/modules/control-center-web/src/main/js/controllers/models/igfs.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/models/igfs.json b/modules/control-center-web/src/main/js/controllers/models/igfs.json
index 5f688b8..a22b720 100644
--- a/modules/control-center-web/src/main/js/controllers/models/igfs.json
+++ b/modules/control-center-web/src/main/js/controllers/models/igfs.json
@@ -99,6 +99,7 @@
           "path": "ipcEndpointConfiguration",
           "model": "port",
           "placeholder": 10500,
+          "max": 65535,
           "hide": "!backupItem.ipcEndpointEnabled",
           "tip": [
             "Port"
@@ -278,6 +279,7 @@
           "type": "number",
           "model": "managementPort",
           "placeholder": 11400,
+          "max": 65535,
           "tip": [
             "Port number for management endpoint"
           ]

http://git-wip-us.apache.org/repos/asf/ignite/blob/7ef27e54/modules/control-center-web/src/main/js/controllers/summary-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/summary-controller.js b/modules/control-center-web/src/main/js/controllers/summary-controller.js
index fb57065..6efe806 100644
--- a/modules/control-center-web/src/main/js/controllers/summary-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/summary-controller.js
@@ -201,6 +201,10 @@ consoleModule.controller('summaryController', [
                     cluster.caches = _.filter(data.caches, function (cache) {
                         return _.contains(cluster.caches, cache._id);
                     });
+
+                    cluster.igfss = _.filter(data.igfss, function (igfs) {
+                        return _.contains(cluster.igfss, igfs._id);
+                    });
                 });
 
                 var restoredId = sessionStorage.summarySelectedId;

http://git-wip-us.apache.org/repos/asf/ignite/blob/7ef27e54/modules/control-center-web/src/main/js/routes/generator/generator-common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-common.js b/modules/control-center-web/src/main/js/routes/generator/generator-common.js
index 8b88219..46213b8 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-common.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-common.js
@@ -69,10 +69,6 @@ $generatorCommon.builder = function () {
     res.safeDatasources = [];
     res.safePoint = -1;
 
-    function getLineStart() {
-        return this.lineStart ? _.repeat('    ', this.deep) : '';
-    }
-
     res.startSafeBlock = function () {
         res.safeDeep = this.deep;
         this.safeNeedEmptyLine = this.needEmptyLine;
@@ -373,6 +369,18 @@ $generatorCommon.COMMUNICATION_CONFIGURATION = {
     }
 };
 
+// Communication configuration code generation descriptor.
+$generatorCommon.IGFS_IPC_CONFIGURATION = {
+    className: 'org.apache.ignite.igfs.IgfsIpcEndpointConfiguration',
+    fields: {
+        type: {type: 'enum', enumClass: 'org.apache.ignite.igfs.IgfsIpcEndpointType'},
+        host: {dflt: '127.0.0.1'},
+        port: {dflt: 10500},
+        memorySize: {dflt: 262144},
+        tokenDirectoryPath: {dflt: 'ipc/shmem'}
+    }
+};
+
 // For server side we should export Java code generation entry point.
 if (typeof window === 'undefined') {
     module.exports = $generatorCommon;

http://git-wip-us.apache.org/repos/asf/ignite/blob/7ef27e54/modules/control-center-web/src/main/js/routes/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-java.js b/modules/control-center-web/src/main/js/routes/generator/generator-java.js
index d65f3e9..d9e0cc4 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-java.js
@@ -1512,16 +1512,144 @@ $generatorJava.clusterSsl = function(cluster, res) {
 
         $generatorJava.beanProperty(res, 'cfg', cluster.sslContextFactory, 'sslContextFactory', 'sslContextFactory',
             'org.apache.ignite.ssl.SslContextFactory', propsDesc, false);
+
+        res.needEmptyLine = true;
+    }
+
+    return res;
+};
+
+$generatorJava.igfss = function(igfss, varName, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    if ($commonUtils.isDefinedAndNotEmpty(igfss)) {
+        res.emptyLineIfNeeded();
+
+        var arrayName = 'fileSystems';
+        var igfsInst = 'igfs';
+
+        res.line(res.importClass('org.apache.ignite.configuration.FileSystemConfiguration') + '[] ' + arrayName + ' = new FileSystemConfiguration[' + igfss.length + '];');
+
+        _.forEach(igfss, function(igfs, ix) {
+            $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, igfsInst), igfsInst, 'org.apache.ignite.configuration.FileSystemConfiguration');
+
+            $generatorJava.igfsGeneral(igfs, igfsInst, res);
+            $generatorJava.igfsIPC(igfs, igfsInst, res);
+            $generatorJava.igfsFragmentizer(igfs, igfsInst, res);
+            $generatorJava.igfsDualMode(igfs, igfsInst, res);
+            $generatorJava.igfsMisc(igfs, igfsInst, res);
+
+            res.line(arrayName + '[' + ix + '] = ' + igfsInst + ';');
+
+            res.needEmptyLine = true;
+        });
+
+        res.line(varName + '.' + 'setFileSystemConfiguration(' + arrayName + ');');
+
+        res.needEmptyLine = true;
+    }
+
+    return res;
+};
+
+$generatorJava.igfsIPC = function(igfs, varName, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    if (igfs.ipcEndpointEnabled) {
+        var desc = $generatorCommon.IGFS_IPC_CONFIGURATION;
+
+        $generatorJava.beanProperty(res, varName, igfs.ipcEndpointConfiguration, 'ipcEndpointConfiguration', 'ipcEndpointCfg',
+            desc.className, desc.fields, true);
+
+        res.needEmptyLine = true;
+    }
+
+    return res;
+};
+
+$generatorJava.igfsFragmentizer = function(igfs, varName, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    if (igfs.fragmentizerEnabled) {
+        $generatorJava.property(res, varName, igfs, 'fragmentizerConcurrentFiles', undefined, undefined, 0);
+        $generatorJava.property(res, varName, igfs, 'fragmentizerThrottlingBlockLength', undefined, undefined, 16777216);
+        $generatorJava.property(res, varName, igfs, 'fragmentizerThrottlingDelay', undefined, undefined, 200);
+
+        res.needEmptyLine = true;
     }
 
     return res;
 };
 
-$generatorJava.igfs = function(igfs, varName, res) {
+$generatorJava.igfsDualMode = function(igfs, varName, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    $generatorJava.property(res, varName, igfs, 'dualModeMaxPendingPutsSize', undefined, undefined, 0);
+
+    if ($commonUtils.isDefinedAndNotEmpty(igfs.dualModePutExecutorService))
+        res.line(varName + '.' + $generatorJava.setterName('dualModePutExecutorService') + '(new ' + res.importClass(igfs.dualModePutExecutorService) + '());');
+
+    $generatorJava.property(res, varName, igfs, 'dualModePutExecutorServiceShutdown', undefined, undefined, false);
+
+    res.needEmptyLine = true;
+
+    return res;
+};
+
+$generatorJava.igfsGeneral = function(igfs, varName, res) {
     if (!res)
         res = $generatorCommon.builder();
 
-    res.line('TODO IGFS java code generation');
+    if ($commonUtils.isDefinedAndNotEmpty(igfs.name)) {
+        igfs.dataCacheName = igfs.name + 'Data';
+        igfs.metaCacheName = igfs.name + 'Meta';
+
+        $generatorJava.property(res, varName, igfs, 'name');
+        $generatorJava.property(res, varName, igfs, 'dataCacheName');
+        $generatorJava.property(res, varName, igfs, 'metaCacheName');
+
+        res.needEmptyLine = true;
+    }
+
+    return res;
+};
+
+$generatorJava.igfsMisc = function(igfs, varName, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    $generatorJava.property(res, varName, igfs, 'blockSize', undefined, undefined, 65536);
+    $generatorJava.property(res, varName, igfs, 'streamBufferSize', undefined, undefined, 65536);
+    $generatorJava.property(res, varName, igfs, 'defaultMode', res.importClass('org.apache.ignite.igfs.IgfsMode'), undefined, "DUAL_ASYNC");
+    $generatorJava.property(res, varName, igfs, 'maxSpaceSize');
+    $generatorJava.property(res, varName, igfs, 'maximumTaskRangeLength');
+    $generatorJava.property(res, varName, igfs, 'managementPort', undefined, undefined, 11400);
+
+    if (igfs.pathModes && igfs.pathModes.length > 0) {
+        res.needEmptyLine = true;
+
+        $generatorJava.declareVariable(res, true, 'pathModes', 'java.util.HashMap<String, ' + res.importClass('org.apache.ignite.igfs.IgfsMode') + '>');
+
+        _.forEach(igfs.pathModes, function (pair) {
+            res.line('pathModes.put("' + pair.path + '", IgfsMode.' + pair.mode +');');
+        });
+
+        res.needEmptyLine = true;
+
+        res.line(varName + '.setPathModes(pathModes);');
+    }
+
+    $generatorJava.property(res, varName, igfs, 'perNodeBatchSize', undefined, undefined, 100);
+    $generatorJava.property(res, varName, igfs, 'perNodeParallelBatchCount', undefined, undefined, 8);
+    $generatorJava.property(res, varName, igfs, 'prefetchBlocks', undefined, undefined, 0);
+    $generatorJava.property(res, varName, igfs, 'sequentialReadsBeforePrefetch', undefined, undefined, 0);
+    $generatorJava.property(res, varName, igfs, 'trashPurgeTimeout', undefined, undefined, 1000);
+
+    res.needEmptyLine = true;
 
     return res;
 };
@@ -1577,6 +1705,8 @@ $generatorJava.cluster = function (cluster, javaClass, clientNearCfg) {
 
         $generatorJava.clusterSsl(cluster, res);
 
+        $generatorJava.igfss(cluster.igfss, 'cfg', res);
+
         if (javaClass) {
             res.importClass('org.apache.ignite.Ignite');
             res.importClass('org.apache.ignite.Ignition');

http://git-wip-us.apache.org/repos/asf/ignite/blob/7ef27e54/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-xml.js b/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
index 6dfd9cf..12e4d0f 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
@@ -637,6 +637,8 @@ $generatorXml.clusterSsl = function(cluster, res) {
             $generatorCommon.SSL_CONFIGURATION_TRUST_FILE_FACTORY;
 
         $generatorXml.beanProperty(res, cluster.sslContextFactory, 'sslContextFactory', propsDesc, false);
+
+        res.needEmptyLine = true;
     }
 
     return res;
@@ -1088,11 +1090,137 @@ $generatorXml.clusterCaches = function(caches, res) {
     return res;
 };
 
-$generatorXml.igfs = function(igfs, res) {
+$generatorXml.igfss = function(igfss, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    if ($commonUtils.isDefinedAndNotEmpty(igfss)) {
+        res.emptyLineIfNeeded();
+
+        res.startBlock('<property name="fileSystemConfiguration">');
+        res.startBlock('<list>');
+
+        _.forEach(igfss, function(igfs) {
+            res.startBlock('<bean class="org.apache.ignite.configuration.FileSystemConfiguration">');
+
+            $generatorXml.igfsGeneral(igfs, res);
+            $generatorXml.igfsIPC(igfs, res);
+            $generatorXml.igfsFragmentizer(igfs, res);
+            $generatorXml.igfsDualMode(igfs, res);
+            $generatorXml.igfsMisc(igfs, res);
+
+            res.endBlock('</bean>');
+
+        });
+
+        res.endBlock('</list>');
+        res.endBlock('</property>');
+
+        res.needEmptyLine = true;
+    }
+
+    return res;
+};
+
+$generatorXml.igfsIPC = function(igfs, res) {
     if (!res)
         res = $generatorCommon.builder();
 
-    res.line('TODO IGFS XML generation');
+    if (igfs.ipcEndpointEnabled) {
+        $generatorXml.beanProperty(res, igfs.ipcEndpointConfiguration, 'ipcEndpointConfiguration', $generatorCommon.IGFS_IPC_CONFIGURATION, true);
+
+        res.needEmptyLine = true;
+    }
+
+    return res;
+};
+
+$generatorXml.igfsFragmentizer = function(igfs, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    if (igfs.fragmentizerEnabled) {
+        $generatorXml.property(res, igfs, 'fragmentizerConcurrentFiles', undefined, 0);
+        $generatorXml.property(res, igfs, 'fragmentizerThrottlingBlockLength', undefined, 16777216);
+        $generatorXml.property(res, igfs, 'fragmentizerThrottlingDelay', undefined, 200);
+
+        res.needEmptyLine = true;
+    }
+
+    return res;
+};
+
+$generatorXml.igfsDualMode = function(igfs, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    $generatorXml.property(res, igfs, 'dualModeMaxPendingPutsSize', undefined, 0);
+
+    if ($commonUtils.isDefinedAndNotEmpty(igfs.dualModePutExecutorService)) {
+        res.startBlock('<property name="dualModePutExecutorService">');
+        res.line('<bean class="' + igfs.dualModePutExecutorService + '"/>');
+        res.endBlock('</property>');
+    }
+
+    $generatorXml.property(res, igfs, 'dualModePutExecutorServiceShutdown', undefined, false);
+
+    res.needEmptyLine = true;
+
+    return res;
+};
+
+$generatorXml.igfsGeneral = function(igfs, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    if ($commonUtils.isDefinedAndNotEmpty(igfs.name)) {
+        igfs.dataCacheName = igfs.name + 'Data';
+        igfs.metaCacheName = igfs.name + 'Meta';
+
+        $generatorXml.property(res, igfs, 'name');
+        $generatorXml.property(res, igfs, 'dataCacheName');
+        $generatorXml.property(res, igfs, 'metaCacheName');
+
+        res.needEmptyLine = true;
+    }
+
+    return res;
+};
+
+$generatorXml.igfsMisc = function(igfs, res) {
+    if (!res)
+        res = $generatorCommon.builder();
+
+    $generatorXml.property(res, igfs, 'blockSize', undefined, 65536);
+    $generatorXml.property(res, igfs, 'streamBufferSize', undefined, 65536);
+    $generatorXml.property(res, igfs, 'defaultMode', undefined, "DUAL_ASYNC");
+    $generatorXml.property(res, igfs, 'maxSpaceSize');
+    $generatorXml.property(res, igfs, 'maximumTaskRangeLength');
+    $generatorXml.property(res, igfs, 'managementPort', undefined, 11400);
+
+    res.needEmptyLine = true;
+
+    if (igfs.pathModes && igfs.pathModes.length > 0) {
+        res.startBlock('<property name="pathModes">');
+        res.startBlock('<map>');
+
+        for (var i = 0; i < igfs.pathModes.length; i++) {
+            var pair = igfs.pathModes[i];
+
+            res.line('<entry key="' + pair.path + '" value="' + pair.mode + '"/>');
+        }
+
+        res.endBlock('</map>');
+        res.endBlock('</property>');
+
+        res.needEmptyLine = true;
+    }
+
+    $generatorXml.property(res, igfs, 'perNodeBatchSize', undefined, 100);
+    $generatorXml.property(res, igfs, 'perNodeParallelBatchCount', undefined, 8);
+    $generatorXml.property(res, igfs, 'prefetchBlocks', undefined, 0);
+    $generatorXml.property(res, igfs, 'sequentialReadsBeforePrefetch', undefined, 0);
+    $generatorXml.property(res, igfs, 'trashPurgeTimeout', undefined, 1000);
 
     return res;
 };
@@ -1153,6 +1281,8 @@ $generatorXml.cluster = function (cluster, clientNearCfg) {
 
         $generatorXml.clusterSsl(cluster, res);
 
+        $generatorXml.igfss(cluster.igfss, res);
+
         res.endBlock('</bean>');
 
         // Build final XML:


[2/2] ignite git commit: Merge remote-tracking branch 'origin/ignite-843-rc1' into ignite-843-rc1

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


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

Branch: refs/heads/ignite-843-rc1
Commit: cb42765e429958d7aee3d14740d2f841d252e29e
Parents: 7ef27e5 b3010bb
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Mon Oct 26 10:13:28 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Mon Oct 26 10:13:28 2015 +0700

----------------------------------------------------------------------
 .../src/main/js/controllers/sql-controller.js   | 21 ++++----
 .../src/main/js/public/stylesheets/style.scss   |  2 +-
 .../src/main/js/views/sql/sql.jade              | 50 ++++++++++++--------
 3 files changed, 40 insertions(+), 33 deletions(-)
----------------------------------------------------------------------