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(-)
----------------------------------------------------------------------