Repository: ignite Updated Branches: refs/heads/ignite-843 7aae0ee85 -> f15f8bd8c
IGNITE-843 WIP preview. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f15f8bd8 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f15f8bd8 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f15f8bd8 Branch: refs/heads/ignite-843 Commit: f15f8bd8ce51d2a134602ab338042d113f229a38 Parents: 7aae0ee Author: AKuznetsov <[email protected]> Authored: Mon Aug 24 23:46:15 2015 +0700 Committer: AKuznetsov <[email protected]> Committed: Mon Aug 24 23:46:15 2015 +0700 ---------------------------------------------------------------------- .../main/js/controllers/clusters-controller.js | 10 + .../src/main/js/controllers/common-module.js | 204 ++++++++++++++++++- .../src/main/js/views/includes/controls.jade | 2 +- 3 files changed, 212 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/f15f8bd8/modules/control-center-web/src/main/js/controllers/clusters-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/clusters-controller.js b/modules/control-center-web/src/main/js/controllers/clusters-controller.js index ac6b347..2c7d016 100644 --- a/modules/control-center-web/src/main/js/controllers/clusters-controller.js +++ b/modules/control-center-web/src/main/js/controllers/clusters-controller.js @@ -187,6 +187,16 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo $scope.preview.general = $code.xmlClusterGeneral(val).join(''); $scope.preview.atomics = $code.xmlClusterAtomics(val).join(''); + $scope.preview.communication = $code.xmlClusterCommunication(val).join(''); + $scope.preview.deployment = $code.xmlClusterDeployment(val).join(''); + $scope.preview.events = $code.xmlClusterEvents(val).join(''); + $scope.preview.marshaller = $code.xmlClusterMarshaller(val).join(''); + $scope.preview.metrics = $code.xmlClusterMetrics(val).join(''); + $scope.preview.p2p = $code.xmlClusterP2P(val).join(''); + $scope.preview.swap = $code.xmlClusterSwap(val).join(''); + $scope.preview.time = $code.xmlClusterTime(val).join(''); + $scope.preview.pools = $code.xmlClusterPools(val).join(''); + $scope.preview.transactions = $code.xmlClusterTransactions(val).join(''); } }, true); }) http://git-wip-us.apache.org/repos/asf/ignite/blob/f15f8bd8/modules/control-center-web/src/main/js/controllers/common-module.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/common-module.js b/modules/control-center-web/src/main/js/controllers/common-module.js index 85bdc3e..be4a6a2 100644 --- a/modules/control-center-web/src/main/js/controllers/common-module.js +++ b/modules/control-center-web/src/main/js/controllers/common-module.js @@ -1072,7 +1072,7 @@ controlCenterModule.service('$code', ['$common', function ($common) { var val = obj[propName]; if ($common.isDefined(val)) - addElement(res, 'property', 'name', propName, 'value', generatorCommon.javaBuildInClass(val)); + addElement(res, 'property', 'name', propName, 'value', $common.javaBuildInClass(val)); return val; } @@ -1107,13 +1107,48 @@ controlCenterModule.service('$code', ['$common', function ($common) { this.fields = fields; } - atomicConfiguration = new ClassDescriptor('org.apache.ignite.configuration.AtomicConfiguration', { + var atomicConfiguration = new ClassDescriptor('org.apache.ignite.configuration.AtomicConfiguration', { backups: null, cacheMode: {type: 'enum', enumClass: 'CacheMode'}, atomicSequenceReserveSize: null }); - knownClasses = { + var evictionPolicies = { + 'LRU': new ClassDescriptor('org.apache.ignite.cache.eviction.lru.LruEvictionPolicy', + {batchSize: null, maxMemorySize: null, maxSize: null}), + 'RND': new ClassDescriptor('org.apache.ignite.cache.eviction.random.RandomEvictionPolicy', {maxSize: null}), + 'FIFO': new ClassDescriptor('org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicy', + {batchSize: null, maxMemorySize: null, maxSize: null}), + 'SORTED': new ClassDescriptor('org.apache.ignite.cache.eviction.sorted.SortedEvictionPolicy', + {batchSize: null, maxMemorySize: null, maxSize: null}) + }; + + var marshallers = { + OptimizedMarshaller: new ClassDescriptor('org.apache.ignite.marshaller.optimized.OptimizedMarshaller', { + poolSize: null, + requireSerializable: null + }), + JdkMarshaller: new ClassDescriptor('org.apache.ignite.marshaller.jdk.JdkMarshaller', {}) + }; + + var swapSpaceSpi = new ClassDescriptor('org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi', { + baseDirectory: null, + readStripesNumber: null, + maximumSparsity: {type: 'float'}, + maxWriteQueueSize: null, + writeBufferSize: null + }); + + var transactionConfiguration = new ClassDescriptor('org.apache.ignite.configuration.TransactionConfiguration', { + defaultTxConcurrency: {type: 'enum', enumClass: 'TransactionConcurrency'}, + transactionIsolation: {type: 'TransactionIsolation', setterName: 'defaultTxIsolation'}, + defaultTxTimeout: null, + pessimisticTxLogLinger: null, + pessimisticTxLogSize: null, + txSerializableEnabled: null + }); + + var knownClasses = { Oracle: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.OracleDialect', {}), DB2: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.DB2Dialect', {}), SQLServer: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.SQLServerDialect', {}), @@ -1305,6 +1340,169 @@ controlCenterModule.service('$code', ['$common', function ($common) { res.needEmptyLine = true; return res; + }, + xmlClusterCommunication: function (cluster, res) { + if (!res) + res = builder(); + + // Generate communication group. + addProperty(res, cluster, 'networkTimeout'); + addProperty(res, cluster, 'networkSendRetryDelay'); + addProperty(res, cluster, 'networkSendRetryCount'); + addProperty(res, cluster, 'segmentCheckFrequency'); + addProperty(res, cluster, 'waitForSegmentOnStart'); + addProperty(res, cluster, 'discoveryStartupDelay'); + res.needEmptyLine = true; + + return res; + }, + xmlClusterDeployment: function(cluster, res) { + if (!res) + res = builder(); + + // Generate deployment group. + addProperty(res, cluster, 'deploymentMode'); + res.needEmptyLine = true; + + return res; + }, + xmlClusterEvents: function(cluster, res) { + if (!res) + res = builder(); + + // Generate events group. + if (cluster.includeEventTypes && cluster.includeEventTypes.length > 0) { + res.emptyLineIfNeeded(); + + res.startBlock('<property name="includeEventTypes">'); + + if (cluster.includeEventTypes.length == 1) + res.line('<util:constant static-field="org.apache.ignite.events.EventType.' + cluster.includeEventTypes[0] + '"/>'); + else { + res.startBlock('<array>'); + + for (i = 0; i < cluster.includeEventTypes.length; i++) { + if (i > 0) + res.line(); + + var eventGroup = cluster.includeEventTypes[i]; + + res.line('<!-- EventType.' + eventGroup + ' -->'); + + var eventList = dataStructures.eventGroups[eventGroup]; + + for (var k = 0; k < eventList.length; k++) { + res.line('<util:constant static-field="org.apache.ignite.events.EventType.' + eventList[k] + '"/>') + } + } + + res.endBlock('</array>'); + } + + res.endBlock('</property>'); + + res.needEmptyLine = true; + } + + return res; + }, + xmlClusterMarshaller: function(cluster, res) { + if (!res) + res = builder(); + + // Generate marshaller group. + var marshaller = cluster.marshaller; + + if (marshaller && marshaller.kind) { + var marshallerDesc = marshallers[marshaller.kind]; + + addBeanWithProperties(res, marshaller[marshaller.kind], 'marshaller', marshallerDesc.className, marshallerDesc.fields, true); + res.needEmptyLine = true; + } + + addProperty(res, cluster, 'marshalLocalJobs'); + addProperty(res, cluster, 'marshallerCacheKeepAliveTime'); + addProperty(res, cluster, 'marshallerCacheThreadPoolSize'); + res.needEmptyLine = true; + + return res; + }, + xmlClusterMetrics: function(cluster, res) { + if (!res) + res = builder(); + + // Generate metrics group. + addProperty(res, cluster, 'metricsExpireTime'); + addProperty(res, cluster, 'metricsHistorySize'); + addProperty(res, cluster, 'metricsLogFrequency'); + addProperty(res, cluster, 'metricsUpdateFrequency'); + res.needEmptyLine = true; + + return res; + }, + xmlClusterP2P: function(cluster, res) { + if (!res) + res = builder(); + + // Generate PeerClassLoading group. + addProperty(res, cluster, 'peerClassLoadingEnabled'); + addListProperty(res, cluster, 'peerClassLoadingLocalClassPathExclude'); + addProperty(res, cluster, 'peerClassLoadingMissedResourcesCacheSize'); + addProperty(res, cluster, 'peerClassLoadingThreadPoolSize'); + res.needEmptyLine = true; + + return res; + }, + xmlClusterSwap: function(cluster, res) { + if (!res) + res = builder(); + + // Generate swap group. + if (cluster.swapSpaceSpi && cluster.swapSpaceSpi.kind == 'FileSwapSpaceSpi') { + addBeanWithProperties(res, cluster.swapSpaceSpi.FileSwapSpaceSpi, 'swapSpaceSpi', + swapSpaceSpi.className, swapSpaceSpi.fields, true); + + res.needEmptyLine = true; + } + + return res; + }, + xmlClusterTime: function(cluster, res) { + if (!res) + res = builder(); + + // Generate time group. + addProperty(res, cluster, 'clockSyncSamples'); + addProperty(res, cluster, 'clockSyncFrequency'); + addProperty(res, cluster, 'timeServerPortBase'); + addProperty(res, cluster, 'timeServerPortRange'); + res.needEmptyLine = true; + + return res; + }, + xmlClusterPools: function(cluster, res) { + if (!res) + res = builder(); + + // Generate thread pools group. + addProperty(res, cluster, 'publicThreadPoolSize'); + addProperty(res, cluster, 'systemThreadPoolSize'); + addProperty(res, cluster, 'managementThreadPoolSize'); + addProperty(res, cluster, 'igfsThreadPoolSize'); + res.needEmptyLine = true; + + return res; + }, + xmlClusterTransactions: function(cluster, res) { + if (!res) + res = builder(); + + // Generate transactions group. + addBeanWithProperties(res, cluster.transactionConfiguration, 'transactionConfiguration', + transactionConfiguration.className, transactionConfiguration.fields); + res.needEmptyLine = true; + + return res; } } }]); http://git-wip-us.apache.org/repos/asf/ignite/blob/f15f8bd8/modules/control-center-web/src/main/js/views/includes/controls.jade ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/views/includes/controls.jade b/modules/control-center-web/src/main/js/views/includes/controls.jade index 656eaa4..15dd664 100644 --- a/modules/control-center-web/src/main/js/views/includes/controls.jade +++ b/modules/control-center-web/src/main/js/views/includes/controls.jade @@ -312,7 +312,7 @@ mixin form-row-custom(lblClasses, fieldClasses, dataSource) +tipField('field.tip') .input-tip button.form-control(bs-select ng-disabled=fieldDisabled data-placeholder='{{::field.placeholder}}' bs-options='item.value as item.label for item in {{field.items}}' tabindex='0')&attributes(fieldCommon) - a.customize(ng-show='#{fieldMdl} && field.settings' ng-click='#{expanded} = !#{expanded}') {{#{expanded} ? 'Hide settings' : 'Show settings'}} + a.customize(ng-show='#{fieldMdl} && field.settings && field.details[#{fieldMdl}].fields.length > 0' ng-click='#{expanded} = !#{expanded}') {{#{expanded} ? 'Hide settings' : 'Show settings'}} .col-sm-12.panel-details(ng-show='(#{expanded} || !field.settings) && #{fieldMdl}') .details-row(ng-repeat='detail in field.details[#{fieldMdl}].fields') +details-row
