Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 4563F200C04 for ; Mon, 9 Jan 2017 18:02:39 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 44404160B3E; Mon, 9 Jan 2017 17:02:39 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 5918A160B54 for ; Mon, 9 Jan 2017 18:02:35 +0100 (CET) Received: (qmail 6725 invoked by uid 500); 9 Jan 2017 17:02:34 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 6320 invoked by uid 99); 9 Jan 2017 17:02:34 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Jan 2017 17:02:34 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 10C84DF9FD; Mon, 9 Jan 2017 17:02:34 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: yzhdanov@apache.org To: commits@ignite.apache.org Date: Mon, 09 Jan 2017 17:02:41 -0000 Message-Id: <9bd96e2dcb8a477bafd72d543713b647@git.apache.org> In-Reply-To: <1dbd13869d09418cbcdb1569c2faedd5@git.apache.org> References: <1dbd13869d09418cbcdb1569c2faedd5@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [09/40] ignite git commit: Web console beta-7. archived-at: Mon, 09 Jan 2017 17:02:39 -0000 http://git-wip-us.apache.org/repos/asf/ignite/blob/2b3a180f/modules/web-console/frontend/app/modules/configuration/generator/generator-optional.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/configuration/generator/generator-optional.js b/modules/web-console/frontend/app/modules/configuration/generator/generator-optional.js deleted file mode 100644 index 61de1a2..0000000 --- a/modules/web-console/frontend/app/modules/configuration/generator/generator-optional.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Optional content generation entry point. -const $generatorOptional = {}; - -$generatorOptional.optionalContent = function(zip, cluster) { // eslint-disable-line no-unused-vars - // No-op. -}; - -export default $generatorOptional; http://git-wip-us.apache.org/repos/asf/ignite/blob/2b3a180f/modules/web-console/frontend/app/modules/configuration/generator/generator-spring.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/configuration/generator/generator-spring.js b/modules/web-console/frontend/app/modules/configuration/generator/generator-spring.js deleted file mode 100644 index f70c66f..0000000 --- a/modules/web-console/frontend/app/modules/configuration/generator/generator-spring.js +++ /dev/null @@ -1,2111 +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. - */ - -// XML generation entry point. -const $generatorSpring = {}; - -// Do XML escape. -$generatorSpring.escape = function(s) { - if (typeof (s) !== 'string') - return s; - - return s.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); -}; - -// Add constructor argument -$generatorSpring.constructorArg = function(res, ix, obj, propName, dflt, opt) { - const v = (obj ? obj[propName] : null) || dflt; - - if ($generatorCommon.isDefinedAndNotEmpty(v)) - res.line('= 0 ? 'index="' + ix + '" ' : '') + 'value="' + v + '"/>'); - else if (!opt) { - res.startBlock('= 0 ? 'index="' + ix + '"' : '') + '>'); - res.line(''); - res.endBlock(''); - } -}; - -// Add XML element. -$generatorSpring.element = function(res, tag, attr1, val1, attr2, val2) { - let elem = '<' + tag; - - if (attr1) - elem += ' ' + attr1 + '="' + val1 + '"'; - - if (attr2) - elem += ' ' + attr2 + '="' + val2 + '"'; - - elem += '/>'; - - res.emptyLineIfNeeded(); - res.line(elem); -}; - -// Add property. -$generatorSpring.property = function(res, obj, propName, setterName, dflt) { - if (!_.isNil(obj)) { - const val = obj[propName]; - - if ($generatorCommon.isDefinedAndNotEmpty(val)) { - const missDflt = _.isNil(dflt); - - // Add to result if no default provided or value not equals to default. - if (missDflt || (!missDflt && val !== dflt)) { - $generatorSpring.element(res, 'property', 'name', setterName ? setterName : propName, 'value', $generatorSpring.escape(val)); - - return true; - } - } - } - - return false; -}; - -// Add property for class name. -$generatorSpring.classNameProperty = function(res, obj, propName) { - const val = obj[propName]; - - if (!_.isNil(val)) - $generatorSpring.element(res, 'property', 'name', propName, 'value', $generatorCommon.JavaTypes.fullClassName(val)); -}; - -// Add list property. -$generatorSpring.listProperty = function(res, obj, propName, listType, rowFactory) { - const val = obj[propName]; - - if (val && val.length > 0) { - res.emptyLineIfNeeded(); - - if (!listType) - listType = 'list'; - - if (!rowFactory) - rowFactory = (v) => '' + $generatorSpring.escape(v) + ''; - - res.startBlock(''); - res.startBlock('<' + listType + '>'); - - _.forEach(val, (v) => res.line(rowFactory(v))); - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - } -}; - -// Add array property -$generatorSpring.arrayProperty = function(res, obj, propName, descr, rowFactory) { - const val = obj[propName]; - - if (val && val.length > 0) { - res.emptyLineIfNeeded(); - - if (!rowFactory) - rowFactory = (v) => ''; - - res.startBlock(''); - res.startBlock(''); - - _.forEach(val, (v) => res.append(rowFactory(v))); - - res.endBlock(''); - res.endBlock(''); - } -}; - -/** - * Add bean property with internal content. - * - * @param res Optional configuration presentation builder object. - * @param bean Bean object for code generation. - * @param beanPropName Name of property to set generated bean as value. - * @param desc Bean metadata object. - * @param createBeanAlthoughNoProps Always generate bean even it has no properties defined. - */ -$generatorSpring.beanProperty = function(res, bean, beanPropName, desc, createBeanAlthoughNoProps) { - const props = desc.fields; - - if (bean && $generatorCommon.hasProperty(bean, props)) { - if (!createBeanAlthoughNoProps) - res.startSafeBlock(); - - res.emptyLineIfNeeded(); - res.startBlock(''); - - if (createBeanAlthoughNoProps) - res.startSafeBlock(); - - res.startBlock(''); - - let hasData = false; - - _.forIn(props, function(descr, propName) { - if (props.hasOwnProperty(propName)) { - if (descr) { - switch (descr.type) { - case 'list': - $generatorSpring.listProperty(res, bean, propName, descr.setterName); - - break; - - case 'array': - $generatorSpring.arrayProperty(res, bean, propName, descr); - - break; - - case 'propertiesAsList': - const val = bean[propName]; - - if (val && val.length > 0) { - res.startBlock(''); - res.startBlock(''); - - _.forEach(val, function(nameAndValue) { - const eqIndex = nameAndValue.indexOf('='); - if (eqIndex >= 0) { - res.line('' + - $generatorSpring.escape(nameAndValue.substr(eqIndex + 1)) + ''); - } - }); - - res.endBlock(''); - res.endBlock(''); - - hasData = true; - } - - break; - - case 'bean': - if ($generatorCommon.isDefinedAndNotEmpty(bean[propName])) { - res.startBlock(''); - res.line(''); - res.endBlock(''); - - hasData = true; - } - - break; - - default: - if ($generatorSpring.property(res, bean, propName, descr.setterName, descr.dflt)) - hasData = true; - } - } - else - if ($generatorSpring.property(res, bean, propName)) - hasData = true; - } - }); - - res.endBlock(''); - - if (createBeanAlthoughNoProps && !hasData) { - res.rollbackSafeBlock(); - - res.line(''); - } - - res.endBlock(''); - - if (!createBeanAlthoughNoProps && !hasData) - res.rollbackSafeBlock(); - } - else if (createBeanAlthoughNoProps) { - res.emptyLineIfNeeded(); - res.startBlock(''); - res.line(''); - res.endBlock(''); - } -}; - -/** - * Add bean property without internal content. - * - * @param res Optional configuration presentation builder object. - * @param obj Object to take bean class name. - * @param propName Property name. - */ -$generatorSpring.simpleBeanProperty = function(res, obj, propName) { - if (!_.isNil(obj)) { - const val = obj[propName]; - - if ($generatorCommon.isDefinedAndNotEmpty(val)) { - res.startBlock(''); - res.line(''); - res.endBlock(''); - } - } - - return false; -}; - -// Generate eviction policy. -$generatorSpring.evictionPolicy = function(res, evtPlc, propName) { - if (evtPlc && evtPlc.kind) { - $generatorSpring.beanProperty(res, evtPlc[evtPlc.kind.toUpperCase()], propName, - $generatorCommon.EVICTION_POLICIES[evtPlc.kind], true); - } -}; - -// Generate discovery. -$generatorSpring.clusterGeneral = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, cluster, 'name', 'gridName'); - $generatorSpring.property(res, cluster, 'localHost'); - - if (cluster.discovery) { - res.startBlock(''); - res.startBlock(''); - res.startBlock(''); - - const d = cluster.discovery; - - switch (d.kind) { - case 'Multicast': - res.startBlock(''); - - if (d.Multicast) { - $generatorSpring.property(res, d.Multicast, 'multicastGroup'); - $generatorSpring.property(res, d.Multicast, 'multicastPort'); - $generatorSpring.property(res, d.Multicast, 'responseWaitTime'); - $generatorSpring.property(res, d.Multicast, 'addressRequestAttempts'); - $generatorSpring.property(res, d.Multicast, 'localAddress'); - $generatorSpring.listProperty(res, d.Multicast, 'addresses'); - } - - res.endBlock(''); - - break; - - case 'Vm': - res.startBlock(''); - - if (d.Vm) - $generatorSpring.listProperty(res, d.Vm, 'addresses'); - - res.endBlock(''); - - break; - - case 'S3': - res.startBlock(''); - - if (d.S3) { - if (d.S3.bucketName) - res.line(''); - } - - res.endBlock(''); - - break; - - case 'Cloud': - res.startBlock(''); - - if (d.Cloud) { - $generatorSpring.property(res, d.Cloud, 'credential'); - $generatorSpring.property(res, d.Cloud, 'credentialPath'); - $generatorSpring.property(res, d.Cloud, 'identity'); - $generatorSpring.property(res, d.Cloud, 'provider'); - $generatorSpring.listProperty(res, d.Cloud, 'regions'); - $generatorSpring.listProperty(res, d.Cloud, 'zones'); - } - - res.endBlock(''); - - break; - - case 'GoogleStorage': - res.startBlock(''); - - if (d.GoogleStorage) { - $generatorSpring.property(res, d.GoogleStorage, 'projectName'); - $generatorSpring.property(res, d.GoogleStorage, 'bucketName'); - $generatorSpring.property(res, d.GoogleStorage, 'serviceAccountP12FilePath'); - $generatorSpring.property(res, d.GoogleStorage, 'serviceAccountId'); - } - - res.endBlock(''); - - break; - - case 'Jdbc': - res.startBlock(''); - - if (d.Jdbc) { - const datasource = d.Jdbc; - - res.line(''); - - if (datasource.dataSourceBean && datasource.dialect) { - res.line(''); - - if (!_.find(res.datasources, { dataSourceBean: datasource.dataSourceBean })) { - res.datasources.push({ - dataSourceBean: datasource.dataSourceBean, - dialect: datasource.dialect - }); - } - } - } - - res.endBlock(''); - - break; - - case 'SharedFs': - res.startBlock(''); - - if (d.SharedFs) - $generatorSpring.property(res, d.SharedFs, 'path'); - - res.endBlock(''); - - break; - - case 'ZooKeeper': - res.startBlock(''); - - if (d.ZooKeeper) { - if ($generatorCommon.isDefinedAndNotEmpty(d.ZooKeeper.curator)) { - res.startBlock(''); - res.line(''); - res.endBlock(''); - } - - $generatorSpring.property(res, d.ZooKeeper, 'zkConnectionString'); - - if (d.ZooKeeper.retryPolicy && d.ZooKeeper.retryPolicy.kind) { - const kind = d.ZooKeeper.retryPolicy.kind; - const retryPolicy = d.ZooKeeper.retryPolicy[kind]; - const customClassDefined = retryPolicy && $generatorCommon.isDefinedAndNotEmpty(retryPolicy.className); - - if (kind !== 'Custom' || customClassDefined) - res.startBlock(''); - - switch (kind) { - case 'ExponentialBackoff': - res.startBlock(''); - $generatorSpring.constructorArg(res, 0, retryPolicy, 'baseSleepTimeMs', 1000); - $generatorSpring.constructorArg(res, 1, retryPolicy, 'maxRetries', 10); - $generatorSpring.constructorArg(res, 2, retryPolicy, 'maxSleepMs', null, true); - res.endBlock(''); - - break; - - case 'BoundedExponentialBackoff': - res.startBlock(''); - $generatorSpring.constructorArg(res, 0, retryPolicy, 'baseSleepTimeMs', 1000); - $generatorSpring.constructorArg(res, 1, retryPolicy, 'maxSleepTimeMs', 2147483647); - $generatorSpring.constructorArg(res, 2, retryPolicy, 'maxRetries', 10); - res.endBlock(''); - - break; - - case 'UntilElapsed': - res.startBlock(''); - $generatorSpring.constructorArg(res, 0, retryPolicy, 'maxElapsedTimeMs', 60000); - $generatorSpring.constructorArg(res, 1, retryPolicy, 'sleepMsBetweenRetries', 1000); - res.endBlock(''); - - break; - - case 'NTimes': - res.startBlock(''); - $generatorSpring.constructorArg(res, 0, retryPolicy, 'n', 10); - $generatorSpring.constructorArg(res, 1, retryPolicy, 'sleepMsBetweenRetries', 1000); - res.endBlock(''); - - break; - - case 'OneTime': - res.startBlock(''); - $generatorSpring.constructorArg(res, 0, retryPolicy, 'sleepMsBetweenRetry', 1000); - res.endBlock(''); - - break; - - case 'Forever': - res.startBlock(''); - $generatorSpring.constructorArg(res, 0, retryPolicy, 'retryIntervalMs', 1000); - res.endBlock(''); - - break; - - case 'Custom': - if (customClassDefined) - res.line(''); - - break; - - default: - } - - if (kind !== 'Custom' || customClassDefined) - res.endBlock(''); - } - - $generatorSpring.property(res, d.ZooKeeper, 'basePath', null, '/services'); - $generatorSpring.property(res, d.ZooKeeper, 'serviceName', null, 'ignite'); - $generatorSpring.property(res, d.ZooKeeper, 'allowDuplicateRegistrations', null, false); - } - - res.endBlock(''); - - break; - - default: - res.line('Unknown discovery kind: ' + d.kind); - } - - res.endBlock(''); - - $generatorSpring.clusterDiscovery(d, res); - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate atomics group. -$generatorSpring.clusterAtomics = function(atomics, res) { - if (!res) - res = $generatorCommon.builder(); - - if ($generatorCommon.hasAtLeastOneProperty(atomics, ['cacheMode', 'atomicSequenceReserveSize', 'backups'])) { - res.startSafeBlock(); - - res.emptyLineIfNeeded(); - - res.startBlock(''); - res.startBlock(''); - - const cacheMode = atomics.cacheMode ? atomics.cacheMode : 'PARTITIONED'; - - let hasData = cacheMode !== 'PARTITIONED'; - - $generatorSpring.property(res, atomics, 'cacheMode', null, 'PARTITIONED'); - - hasData = $generatorSpring.property(res, atomics, 'atomicSequenceReserveSize', null, 1000) || hasData; - - if (cacheMode === 'PARTITIONED') - hasData = $generatorSpring.property(res, atomics, 'backups', null, 0) || hasData; - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - - if (!hasData) - res.rollbackSafeBlock(); - } - - return res; -}; - -// Generate binary group. -$generatorSpring.clusterBinary = function(binary, res) { - if (!res) - res = $generatorCommon.builder(); - - if ($generatorCommon.binaryIsDefined(binary)) { - res.startBlock(''); - res.startBlock(''); - - $generatorSpring.simpleBeanProperty(res, binary, 'idMapper'); - $generatorSpring.simpleBeanProperty(res, binary, 'nameMapper'); - $generatorSpring.simpleBeanProperty(res, binary, 'serializer'); - - if ($generatorCommon.isDefinedAndNotEmpty(binary.typeConfigurations)) { - res.startBlock(''); - res.startBlock(''); - - _.forEach(binary.typeConfigurations, function(type) { - res.startBlock(''); - - $generatorSpring.property(res, type, 'typeName'); - $generatorSpring.simpleBeanProperty(res, type, 'idMapper'); - $generatorSpring.simpleBeanProperty(res, type, 'nameMapper'); - $generatorSpring.simpleBeanProperty(res, type, 'serializer'); - $generatorSpring.property(res, type, 'enum', null, false); - - res.endBlock(''); - }); - - res.endBlock(''); - res.endBlock(''); - } - - $generatorSpring.property(res, binary, 'compactFooter', null, true); - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate cache key configurations. -$generatorSpring.clusterCacheKeyConfiguration = function(keyCfgs, res) { - if (!res) - res = $generatorCommon.builder(); - - keyCfgs = _.filter(keyCfgs, (cfg) => cfg.typeName && cfg.affinityKeyFieldName); - - if (_.isEmpty(keyCfgs)) - return res; - - res.startBlock(''); - res.startBlock(''); - - _.forEach(keyCfgs, (cfg) => { - res.startBlock(''); - - $generatorSpring.constructorArg(res, -1, cfg, 'typeName'); - $generatorSpring.constructorArg(res, -1, cfg, 'affinityKeyFieldName'); - - res.endBlock(''); - }); - - res.endBlock(''); - res.endBlock(''); - - return res; -}; - -// Generate collision group. -$generatorSpring.clusterCollision = function(collision, res) { - if (!res) - res = $generatorCommon.builder(); - - if (collision && collision.kind && collision.kind !== 'Noop') { - const spi = collision[collision.kind]; - - if (collision.kind !== 'Custom' || (spi && $generatorCommon.isDefinedAndNotEmpty(spi.class))) { - res.startBlock(''); - - switch (collision.kind) { - case 'JobStealing': - res.startBlock(''); - $generatorSpring.property(res, spi, 'activeJobsThreshold', null, 95); - $generatorSpring.property(res, spi, 'waitJobsThreshold', null, 0); - $generatorSpring.property(res, spi, 'messageExpireTime', null, 1000); - $generatorSpring.property(res, spi, 'maximumStealingAttempts', null, 5); - $generatorSpring.property(res, spi, 'stealingEnabled', null, true); - - if ($generatorCommon.isDefinedAndNotEmpty(spi.externalCollisionListener)) { - res.needEmptyLine = true; - - res.startBlock(''); - res.line(''); - res.endBlock(''); - } - - if ($generatorCommon.isDefinedAndNotEmpty(spi.stealingAttributes)) { - res.needEmptyLine = true; - - res.startBlock(''); - res.startBlock(''); - - _.forEach(spi.stealingAttributes, function(attr) { - $generatorSpring.element(res, 'entry', 'key', attr.name, 'value', attr.value); - }); - - res.endBlock(''); - res.endBlock(''); - } - - res.endBlock(''); - - break; - - case 'FifoQueue': - res.startBlock(''); - $generatorSpring.property(res, spi, 'parallelJobsNumber'); - $generatorSpring.property(res, spi, 'waitingJobsNumber'); - res.endBlock(''); - - break; - - case 'PriorityQueue': - res.startBlock(''); - $generatorSpring.property(res, spi, 'parallelJobsNumber'); - $generatorSpring.property(res, spi, 'waitingJobsNumber'); - $generatorSpring.property(res, spi, 'priorityAttributeKey', null, 'grid.task.priority'); - $generatorSpring.property(res, spi, 'jobPriorityAttributeKey', null, 'grid.job.priority'); - $generatorSpring.property(res, spi, 'defaultPriority', null, 0); - $generatorSpring.property(res, spi, 'starvationIncrement', null, 1); - $generatorSpring.property(res, spi, 'starvationPreventionEnabled', null, true); - res.endBlock(''); - - break; - - case 'Custom': - res.line(''); - - break; - - default: - } - - res.endBlock(''); - } - } - - return res; -}; - -// Generate communication group. -$generatorSpring.clusterCommunication = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.beanProperty(res, cluster.communication, 'communicationSpi', $generatorCommon.COMMUNICATION_CONFIGURATION); - - $generatorSpring.property(res, cluster, 'networkTimeout', null, 5000); - $generatorSpring.property(res, cluster, 'networkSendRetryDelay', null, 1000); - $generatorSpring.property(res, cluster, 'networkSendRetryCount', null, 3); - $generatorSpring.property(res, cluster, 'segmentCheckFrequency'); - $generatorSpring.property(res, cluster, 'waitForSegmentOnStart', null, false); - $generatorSpring.property(res, cluster, 'discoveryStartupDelay', null, 60000); - - res.needEmptyLine = true; - - return res; -}; - -/** - * XML generator for cluster's REST access configuration. - * - * @param connector Cluster REST connector configuration. - * @param res Optional configuration presentation builder object. - * @returns Configuration presentation builder object - */ -$generatorSpring.clusterConnector = function(connector, res) { - if (!res) - res = $generatorCommon.builder(); - - if (!_.isNil(connector) && connector.enabled) { - const cfg = _.cloneDeep($generatorCommon.CONNECTOR_CONFIGURATION); - - if (connector.sslEnabled) { - cfg.fields.sslClientAuth = {dflt: false}; - cfg.fields.sslFactory = {type: 'bean'}; - } - - $generatorSpring.beanProperty(res, connector, 'connectorConfiguration', cfg, true); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate deployment group. -$generatorSpring.clusterDeployment = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - if ($generatorSpring.property(res, cluster, 'deploymentMode', null, 'SHARED')) - res.needEmptyLine = true; - - const p2pEnabled = cluster.peerClassLoadingEnabled; - - if (!_.isNil(p2pEnabled)) { - $generatorSpring.property(res, cluster, 'peerClassLoadingEnabled', null, false); - - if (p2pEnabled) { - $generatorSpring.property(res, cluster, 'peerClassLoadingMissedResourcesCacheSize', null, 100); - $generatorSpring.property(res, cluster, 'peerClassLoadingThreadPoolSize', null, 2); - $generatorSpring.listProperty(res, cluster, 'peerClassLoadingLocalClassPathExclude'); - } - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate discovery group. -$generatorSpring.clusterDiscovery = function(disco, res) { - if (!res) - res = $generatorCommon.builder(); - - if (disco) { - $generatorSpring.property(res, disco, 'localAddress'); - $generatorSpring.property(res, disco, 'localPort', null, 47500); - $generatorSpring.property(res, disco, 'localPortRange', null, 100); - if ($generatorCommon.isDefinedAndNotEmpty(disco.addressResolver)) - $generatorSpring.beanProperty(res, disco, 'addressResolver', {className: disco.addressResolver}, true); - $generatorSpring.property(res, disco, 'socketTimeout', null, 5000); - $generatorSpring.property(res, disco, 'ackTimeout', null, 5000); - $generatorSpring.property(res, disco, 'maxAckTimeout', null, 600000); - $generatorSpring.property(res, disco, 'networkTimeout', null, 5000); - $generatorSpring.property(res, disco, 'joinTimeout', null, 0); - $generatorSpring.property(res, disco, 'threadPriority', null, 10); - $generatorSpring.property(res, disco, 'heartbeatFrequency', null, 2000); - $generatorSpring.property(res, disco, 'maxMissedHeartbeats', null, 1); - $generatorSpring.property(res, disco, 'maxMissedClientHeartbeats', null, 5); - $generatorSpring.property(res, disco, 'topHistorySize', null, 1000); - if ($generatorCommon.isDefinedAndNotEmpty(disco.listener)) - $generatorSpring.beanProperty(res, disco, 'listener', {className: disco.listener}, true); - if ($generatorCommon.isDefinedAndNotEmpty(disco.dataExchange)) - $generatorSpring.beanProperty(res, disco, 'dataExchange', {className: disco.dataExchange}, true); - if ($generatorCommon.isDefinedAndNotEmpty(disco.metricsProvider)) - $generatorSpring.beanProperty(res, disco, 'metricsProvider', {className: disco.metricsProvider}, true); - $generatorSpring.property(res, disco, 'reconnectCount', null, 10); - $generatorSpring.property(res, disco, 'statisticsPrintFrequency', null, 0); - $generatorSpring.property(res, disco, 'ipFinderCleanFrequency', null, 60000); - if ($generatorCommon.isDefinedAndNotEmpty(disco.authenticator)) - $generatorSpring.beanProperty(res, disco, 'authenticator', {className: disco.authenticator}, true); - $generatorSpring.property(res, disco, 'forceServerMode', null, false); - $generatorSpring.property(res, disco, 'clientReconnectDisabled', null, false); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate events group. -$generatorSpring.clusterEvents = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - if (cluster.includeEventTypes && cluster.includeEventTypes.length > 0) { - res.emptyLineIfNeeded(); - - res.startBlock(''); - - const evtGrps = angular.element(document.getElementById('app')).injector().get('igniteEventGroups'); - - if (cluster.includeEventTypes.length === 1) { - const evtGrp = _.find(evtGrps, {value: cluster.includeEventTypes[0]}); - - if (evtGrp) - res.line(''); - } - else { - res.startBlock(''); - - _.forEach(cluster.includeEventTypes, (item, ix) => { - ix > 0 && res.line(); - - const evtGrp = _.find(evtGrps, {value: item}); - - if (evtGrp) { - res.line(''); - - _.forEach(evtGrp.events, (event) => res.line('')); - } - }); - - res.endBlock(''); - } - - res.endBlock(''); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate failover group. -$generatorSpring.clusterFailover = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - if ($generatorCommon.isDefinedAndNotEmpty(cluster.failoverSpi) && _.findIndex(cluster.failoverSpi, function(spi) { - return $generatorCommon.isDefinedAndNotEmpty(spi.kind) && (spi.kind !== 'Custom' || $generatorCommon.isDefinedAndNotEmpty(_.get(spi, spi.kind + '.class'))); - }) >= 0) { - res.startBlock(''); - res.startBlock(''); - - _.forEach(cluster.failoverSpi, function(spi) { - if (spi.kind && (spi.kind !== 'Custom' || $generatorCommon.isDefinedAndNotEmpty(_.get(spi, spi.kind + '.class')))) { - const maxAttempts = _.get(spi, spi.kind + '.maximumFailoverAttempts'); - - if ((spi.kind === 'JobStealing' || spi.kind === 'Always') && $generatorCommon.isDefinedAndNotEmpty(maxAttempts) && maxAttempts !== 5) { - res.startBlock(''); - - $generatorSpring.property(res, spi[spi.kind], 'maximumFailoverAttempts', null, 5); - - res.endBlock(''); - } - else - res.line(''); - - res.needEmptyLine = true; - } - }); - - res.needEmptyLine = true; - - res.endBlock(''); - res.endBlock(''); - } - - return res; -}; - -// Generate marshaller group. -$generatorSpring.clusterLogger = function(logger, res) { - if (!res) - res = $generatorCommon.builder(); - - if ($generatorCommon.loggerConfigured(logger)) { - res.startBlock(''); - - const log = logger[logger.kind]; - - switch (logger.kind) { - case 'Log4j2': - res.startBlock(''); - res.line(''); - $generatorSpring.property(res, log, 'level'); - res.endBlock(''); - - break; - - case 'Null': - res.line(''); - - break; - - case 'Java': - res.line(''); - - break; - - case 'JCL': - res.line(''); - - break; - - case 'SLF4J': - res.line(''); - - break; - - case 'Log4j': - if (log.mode === 'Default' && !$generatorCommon.isDefinedAndNotEmpty(log.level)) - res.line(''); - else { - res.startBlock(''); - - if (log.mode === 'Path') - res.line(''); - - $generatorSpring.property(res, log, 'level'); - res.endBlock(''); - } - - break; - - case 'Custom': - res.line(''); - - break; - - default: - } - - res.endBlock(''); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate marshaller group. -$generatorSpring.clusterMarshaller = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - const marshaller = cluster.marshaller; - - if (marshaller && marshaller.kind) - $generatorSpring.beanProperty(res, marshaller[marshaller.kind], 'marshaller', $generatorCommon.MARSHALLERS[marshaller.kind], true); - - res.softEmptyLine(); - - $generatorSpring.property(res, cluster, 'marshalLocalJobs', null, false); - $generatorSpring.property(res, cluster, 'marshallerCacheKeepAliveTime', null, 10000); - $generatorSpring.property(res, cluster, 'marshallerCacheThreadPoolSize', 'marshallerCachePoolSize'); - - res.needEmptyLine = true; - - return res; -}; - -// Generate metrics group. -$generatorSpring.clusterMetrics = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, cluster, 'metricsExpireTime'); - $generatorSpring.property(res, cluster, 'metricsHistorySize', null, 10000); - $generatorSpring.property(res, cluster, 'metricsLogFrequency', null, 60000); - $generatorSpring.property(res, cluster, 'metricsUpdateFrequency', null, 2000); - - res.needEmptyLine = true; - - return res; -}; - -// Generate swap group. -$generatorSpring.clusterSwap = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - if (cluster.swapSpaceSpi && cluster.swapSpaceSpi.kind === 'FileSwapSpaceSpi') { - $generatorSpring.beanProperty(res, cluster.swapSpaceSpi.FileSwapSpaceSpi, 'swapSpaceSpi', - $generatorCommon.SWAP_SPACE_SPI, true); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate time group. -$generatorSpring.clusterTime = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, cluster, 'clockSyncSamples', null, 8); - $generatorSpring.property(res, cluster, 'clockSyncFrequency', null, 120000); - $generatorSpring.property(res, cluster, 'timeServerPortBase', null, 31100); - $generatorSpring.property(res, cluster, 'timeServerPortRange', null, 100); - - res.needEmptyLine = true; - - return res; -}; - -// Generate OBC configuration group. -$generatorSpring.clusterODBC = function(odbc, res) { - if (!res) - res = $generatorCommon.builder(); - - if (odbc && odbc.odbcEnabled) - $generatorSpring.beanProperty(res, odbc, 'odbcConfiguration', $generatorCommon.ODBC_CONFIGURATION, true); - - res.needEmptyLine = true; - - return res; -}; - -// Generate thread pools group. -$generatorSpring.clusterPools = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, cluster, 'publicThreadPoolSize'); - $generatorSpring.property(res, cluster, 'systemThreadPoolSize'); - $generatorSpring.property(res, cluster, 'managementThreadPoolSize'); - $generatorSpring.property(res, cluster, 'igfsThreadPoolSize'); - $generatorSpring.property(res, cluster, 'rebalanceThreadPoolSize'); - - res.needEmptyLine = true; - - return res; -}; - -// Generate transactions group. -$generatorSpring.clusterTransactions = function(transactionConfiguration, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.beanProperty(res, transactionConfiguration, 'transactionConfiguration', $generatorCommon.TRANSACTION_CONFIGURATION, false); - - res.needEmptyLine = true; - - return res; -}; - -// Generate user attributes group. -$generatorSpring.clusterUserAttributes = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - if ($generatorCommon.isDefinedAndNotEmpty(cluster.attributes)) { - res.startBlock(''); - res.startBlock(''); - - _.forEach(cluster.attributes, function(attr) { - $generatorSpring.element(res, 'entry', 'key', attr.name, 'value', attr.value); - }); - - res.endBlock(''); - res.endBlock(''); - } - - res.needEmptyLine = true; - - return res; -}; - -/** - * XML generator for cluster's SSL configuration. - * - * @param cluster Cluster to get SSL configuration. - * @param res Optional configuration presentation builder object. - * @returns Configuration presentation builder object - */ -$generatorSpring.clusterSsl = function(cluster, res) { - if (!res) - res = $generatorCommon.builder(); - - if (cluster.sslEnabled && !_.isNil(cluster.sslContextFactory)) { - let sslFactory; - - if (_.isEmpty(cluster.sslContextFactory.keyStoreFilePath) && _.isEmpty(cluster.sslContextFactory.trustStoreFilePath)) - sslFactory = cluster.sslContextFactory; - else { - sslFactory = _.clone(cluster.sslContextFactory); - - sslFactory.keyStorePassword = _.isEmpty(cluster.sslContextFactory.keyStoreFilePath) ? null : '${ssl.key.storage.password}'; - sslFactory.trustStorePassword = _.isEmpty(cluster.sslContextFactory.trustStoreFilePath) ? null : '${ssl.trust.storage.password}'; - } - - const propsDesc = $generatorCommon.isDefinedAndNotEmpty(cluster.sslContextFactory.trustManagers) ? - $generatorCommon.SSL_CONFIGURATION_TRUST_MANAGER_FACTORY : - $generatorCommon.SSL_CONFIGURATION_TRUST_FILE_FACTORY; - - $generatorSpring.beanProperty(res, sslFactory, 'sslContextFactory', propsDesc, true); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate cache general group. -$generatorSpring.cacheGeneral = function(cache, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, cache, 'name'); - - $generatorSpring.property(res, cache, 'cacheMode'); - $generatorSpring.property(res, cache, 'atomicityMode'); - - if (cache.cacheMode === 'PARTITIONED' && $generatorSpring.property(res, cache, 'backups')) - $generatorSpring.property(res, cache, 'readFromBackup'); - - $generatorSpring.property(res, cache, 'copyOnRead'); - - if (cache.cacheMode === 'PARTITIONED' && cache.atomicityMode === 'TRANSACTIONAL') - $generatorSpring.property(res, cache, 'invalidate'); - - res.needEmptyLine = true; - - return res; -}; - -// Generate cache memory group. -$generatorSpring.cacheMemory = function(cache, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, cache, 'memoryMode', null, 'ONHEAP_TIERED'); - - if (cache.memoryMode !== 'OFFHEAP_VALUES') - $generatorSpring.property(res, cache, 'offHeapMaxMemory', null, -1); - - res.softEmptyLine(); - - $generatorSpring.evictionPolicy(res, cache.evictionPolicy, 'evictionPolicy'); - - res.softEmptyLine(); - - $generatorSpring.property(res, cache, 'startSize', null, 1500000); - $generatorSpring.property(res, cache, 'swapEnabled', null, false); - - res.needEmptyLine = true; - - return res; -}; - -// Generate cache query & indexing group. -$generatorSpring.cacheQuery = function(cache, domains, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, cache, 'sqlSchema'); - $generatorSpring.property(res, cache, 'sqlOnheapRowCacheSize', null, 10240); - $generatorSpring.property(res, cache, 'longQueryWarningTimeout', null, 3000); - - const indexedTypes = _.filter(domains, (domain) => domain.queryMetadata === 'Annotations'); - - if (indexedTypes.length > 0) { - res.softEmptyLine(); - - res.startBlock(''); - res.startBlock(''); - - _.forEach(indexedTypes, function(domain) { - res.line('' + $generatorCommon.JavaTypes.fullClassName(domain.keyType) + ''); - res.line('' + $generatorCommon.JavaTypes.fullClassName(domain.valueType) + ''); - }); - - res.endBlock(''); - res.endBlock(''); - } - - res.softEmptyLine(); - - $generatorSpring.listProperty(res, cache, 'sqlFunctionClasses'); - - res.softEmptyLine(); - - $generatorSpring.property(res, cache, 'snapshotableIndex', null, false); - $generatorSpring.property(res, cache, 'sqlEscapeAll', null, false); - - res.needEmptyLine = true; - - return res; -}; - -// Generate cache store group. -$generatorSpring.cacheStore = function(cache, domains, res) { - if (!res) - res = $generatorCommon.builder(); - - if (cache.cacheStoreFactory && cache.cacheStoreFactory.kind) { - const factoryKind = cache.cacheStoreFactory.kind; - - const storeFactory = cache.cacheStoreFactory[factoryKind]; - - if (storeFactory) { - if (factoryKind === 'CacheJdbcPojoStoreFactory') { - res.startBlock(''); - res.startBlock(''); - - $generatorSpring.property(res, storeFactory, 'dataSourceBean'); - - res.startBlock(''); - res.line(''); - res.endBlock(''); - - if (storeFactory.sqlEscapeAll) - $generatorSpring.property(res, storeFactory, 'sqlEscapeAll'); - - const domainConfigs = _.filter(domains, function(domain) { - return $generatorCommon.isDefinedAndNotEmpty(domain.databaseTable); - }); - - if ($generatorCommon.isDefinedAndNotEmpty(domainConfigs)) { - res.startBlock(''); - res.startBlock(''); - - _.forEach(domainConfigs, function(domain) { - res.startBlock(''); - - $generatorSpring.property(res, cache, 'name', 'cacheName'); - - $generatorSpring.classNameProperty(res, domain, 'keyType'); - $generatorSpring.property(res, domain, 'valueType'); - - $generatorSpring.domainStore(domain, res); - - res.endBlock(''); - }); - - res.endBlock(''); - res.endBlock(''); - } - - res.endBlock(''); - res.endBlock(''); - } - else if (factoryKind === 'CacheJdbcBlobStoreFactory') { - res.startBlock(''); - res.startBlock(''); - - if (storeFactory.connectVia === 'DataSource') - $generatorSpring.property(res, storeFactory, 'dataSourceBean'); - else { - $generatorSpring.property(res, storeFactory, 'connectionUrl'); - $generatorSpring.property(res, storeFactory, 'user'); - res.line(''); - } - - $generatorSpring.property(res, storeFactory, 'initSchema'); - $generatorSpring.property(res, storeFactory, 'createTableQuery'); - $generatorSpring.property(res, storeFactory, 'loadQuery'); - $generatorSpring.property(res, storeFactory, 'insertQuery'); - $generatorSpring.property(res, storeFactory, 'updateQuery'); - $generatorSpring.property(res, storeFactory, 'deleteQuery'); - - res.endBlock(''); - res.endBlock(''); - } - else - $generatorSpring.beanProperty(res, storeFactory, 'cacheStoreFactory', $generatorCommon.STORE_FACTORIES[factoryKind], true); - - if (storeFactory.dataSourceBean && (storeFactory.connectVia ? (storeFactory.connectVia === 'DataSource' ? storeFactory.dialect : null) : storeFactory.dialect)) { - if (!_.find(res.datasources, { dataSourceBean: storeFactory.dataSourceBean})) { - res.datasources.push({ - dataSourceBean: storeFactory.dataSourceBean, - dialect: storeFactory.dialect - }); - } - } - } - } - - res.softEmptyLine(); - - $generatorSpring.property(res, cache, 'storeKeepBinary', null, false); - $generatorSpring.property(res, cache, 'loadPreviousValue', null, false); - $generatorSpring.property(res, cache, 'readThrough', null, false); - $generatorSpring.property(res, cache, 'writeThrough', null, false); - - res.softEmptyLine(); - - if (cache.writeBehindEnabled) { - $generatorSpring.property(res, cache, 'writeBehindEnabled', null, false); - $generatorSpring.property(res, cache, 'writeBehindBatchSize', null, 512); - $generatorSpring.property(res, cache, 'writeBehindFlushSize', null, 10240); - $generatorSpring.property(res, cache, 'writeBehindFlushFrequency', null, 5000); - $generatorSpring.property(res, cache, 'writeBehindFlushThreadCount', null, 1); - } - - res.needEmptyLine = true; - - return res; -}; - -// Generate cache node filter group. -$generatorSpring.cacheNodeFilter = function(cache, igfss, res) { - if (!res) - res = $generatorCommon.builder(); - - const kind = _.get(cache, 'nodeFilter.kind'); - - if (_.isNil(kind) || _.isNil(cache.nodeFilter[kind])) - return res; - - switch (kind) { - case 'IGFS': - const foundIgfs = _.find(igfss, (igfs) => igfs._id === cache.nodeFilter.IGFS.igfs); - - if (foundIgfs) { - res.startBlock(''); - res.startBlock(''); - res.line(''); - res.endBlock(''); - res.endBlock(''); - } - - break; - - case 'OnNodes': - const nodes = cache.nodeFilter.OnNodes.nodeIds; - - if ($generatorCommon.isDefinedAndNotEmpty(nodes)) { - res.startBlock(''); - res.startBlock(''); - res.startBlock(''); - res.startBlock(''); - - _.forEach(nodes, (nodeId) => { - res.startBlock(''); - res.line(''); - res.endBlock(''); - }); - - res.endBlock(''); - res.endBlock(''); - res.endBlock(''); - res.endBlock(''); - } - - break; - - case 'Custom': - res.startBlock(''); - res.line(''); - res.endBlock(''); - - break; - - default: break; - } - - res.needEmptyLine = true; - - return res; -}; - -// Generate cache concurrency group. -$generatorSpring.cacheConcurrency = function(cache, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, cache, 'maxConcurrentAsyncOperations', null, 500); - $generatorSpring.property(res, cache, 'defaultLockTimeout', null, 0); - $generatorSpring.property(res, cache, 'atomicWriteOrderMode'); - $generatorSpring.property(res, cache, 'writeSynchronizationMode', null, 'PRIMARY_SYNC'); - - res.needEmptyLine = true; - - return res; -}; - -// Generate cache rebalance group. -$generatorSpring.cacheRebalance = function(cache, res) { - if (!res) - res = $generatorCommon.builder(); - - if (cache.cacheMode !== 'LOCAL') { - $generatorSpring.property(res, cache, 'rebalanceMode', null, 'ASYNC'); - $generatorSpring.property(res, cache, 'rebalanceThreadPoolSize', null, 1); - $generatorSpring.property(res, cache, 'rebalanceBatchSize', null, 524288); - $generatorSpring.property(res, cache, 'rebalanceBatchesPrefetchCount', null, 2); - $generatorSpring.property(res, cache, 'rebalanceOrder', null, 0); - $generatorSpring.property(res, cache, 'rebalanceDelay', null, 0); - $generatorSpring.property(res, cache, 'rebalanceTimeout', null, 10000); - $generatorSpring.property(res, cache, 'rebalanceThrottle', null, 0); - } - - res.softEmptyLine(); - - if (cache.igfsAffinnityGroupSize) { - res.startBlock(''); - res.startBlock(''); - $generatorSpring.constructorArg(res, -1, cache, 'igfsAffinnityGroupSize'); - res.endBlock(''); - res.endBlock(''); - } - - return res; -}; - -// Generate cache server near cache group. -$generatorSpring.cacheServerNearCache = function(cache, res) { - if (!res) - res = $generatorCommon.builder(); - - if (cache.cacheMode === 'PARTITIONED' && cache.nearCacheEnabled) { - res.emptyLineIfNeeded(); - - res.startBlock(''); - res.startBlock(''); - - if (cache.nearConfiguration) { - if (cache.nearConfiguration.nearStartSize) - $generatorSpring.property(res, cache.nearConfiguration, 'nearStartSize', null, 375000); - - $generatorSpring.evictionPolicy(res, cache.nearConfiguration.nearEvictionPolicy, 'nearEvictionPolicy'); - } - - res.endBlock(''); - res.endBlock(''); - } - - res.needEmptyLine = true; - - return res; -}; - -// Generate cache statistics group. -$generatorSpring.cacheStatistics = function(cache, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, cache, 'statisticsEnabled', null, false); - $generatorSpring.property(res, cache, 'managementEnabled', null, false); - - res.needEmptyLine = true; - - return res; -}; - -// Generate domain model query fields. -$generatorSpring.domainModelQueryFields = function(res, domain) { - const fields = domain.fields; - - if (fields && fields.length > 0) { - res.emptyLineIfNeeded(); - - res.startBlock(''); - res.startBlock(''); - - _.forEach(fields, function(field) { - $generatorSpring.element(res, 'entry', 'key', field.name, 'value', $generatorCommon.JavaTypes.fullClassName(field.className)); - }); - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - } -}; - -// Generate domain model query fields. -$generatorSpring.domainModelQueryAliases = function(res, domain) { - const aliases = domain.aliases; - - if (aliases && aliases.length > 0) { - res.emptyLineIfNeeded(); - - res.startBlock(''); - res.startBlock(''); - - _.forEach(aliases, function(alias) { - $generatorSpring.element(res, 'entry', 'key', alias.field, 'value', alias.alias); - }); - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - } -}; - -// Generate domain model indexes. -$generatorSpring.domainModelQueryIndexes = function(res, domain) { - const indexes = domain.indexes; - - if (indexes && indexes.length > 0) { - res.emptyLineIfNeeded(); - - res.startBlock(''); - res.startBlock(''); - - _.forEach(indexes, function(index) { - res.startBlock(''); - - $generatorSpring.property(res, index, 'name'); - $generatorSpring.property(res, index, 'indexType'); - - const fields = index.fields; - - if (fields && fields.length > 0) { - res.startBlock(''); - res.startBlock(''); - - _.forEach(fields, function(field) { - $generatorSpring.element(res, 'entry', 'key', field.name, 'value', field.direction); - }); - - res.endBlock(''); - res.endBlock(''); - } - - res.endBlock(''); - }); - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - } -}; - -// Generate domain model db fields. -$generatorSpring.domainModelDatabaseFields = function(res, domain, fieldProp) { - const fields = domain[fieldProp]; - - if (fields && fields.length > 0) { - res.emptyLineIfNeeded(); - - res.startBlock(''); - - res.startBlock(''); - - _.forEach(fields, function(field) { - res.startBlock(''); - - $generatorSpring.property(res, field, 'databaseFieldName'); - - res.startBlock(''); - res.line(''); - res.endBlock(''); - - $generatorSpring.property(res, field, 'javaFieldName'); - - $generatorSpring.classNameProperty(res, field, 'javaFieldType'); - - res.endBlock(''); - }); - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - } -}; - -// Generate domain model general group. -$generatorSpring.domainModelGeneral = function(domain, res) { - if (!res) - res = $generatorCommon.builder(); - - switch ($generatorCommon.domainQueryMetadata(domain)) { - case 'Annotations': - if ($generatorCommon.isDefinedAndNotEmpty(domain.keyType) || $generatorCommon.isDefinedAndNotEmpty(domain.valueType)) { - res.startBlock(''); - res.startBlock(''); - - if ($generatorCommon.isDefinedAndNotEmpty(domain.keyType)) - res.line('' + $generatorCommon.JavaTypes.fullClassName(domain.keyType) + ''); - else - res.line('???'); - - if ($generatorCommon.isDefinedAndNotEmpty(domain.valueType)) - res.line('' + $generatorCommon.JavaTypes.fullClassName(domain.valueType) + ''); - else - res.line('>???'); - - res.endBlock(''); - res.endBlock(''); - } - - break; - - case 'Configuration': - $generatorSpring.classNameProperty(res, domain, 'keyType'); - $generatorSpring.property(res, domain, 'valueType'); - - break; - - default: - } - - res.needEmptyLine = true; - - return res; -}; - -// Generate domain model for query group. -$generatorSpring.domainModelQuery = function(domain, res) { - if (!res) - res = $generatorCommon.builder(); - - if ($generatorCommon.domainQueryMetadata(domain) === 'Configuration') { - $generatorSpring.domainModelQueryFields(res, domain); - $generatorSpring.domainModelQueryAliases(res, domain); - $generatorSpring.domainModelQueryIndexes(res, domain); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate domain model for store group. -$generatorSpring.domainStore = function(domain, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, domain, 'databaseSchema'); - $generatorSpring.property(res, domain, 'databaseTable'); - - res.softEmptyLine(); - - $generatorSpring.domainModelDatabaseFields(res, domain, 'keyFields'); - $generatorSpring.domainModelDatabaseFields(res, domain, 'valueFields'); - - res.needEmptyLine = true; - - return res; -}; - -$generatorSpring.cacheQueryMetadata = function(domain, res) { - if (!res) - res = $generatorCommon.builder(); - - res.startBlock(''); - - $generatorSpring.classNameProperty(res, domain, 'keyType'); - $generatorSpring.property(res, domain, 'valueType'); - - $generatorSpring.domainModelQuery(domain, res); - - res.endBlock(''); - - res.needEmptyLine = true; - - return res; -}; - -// Generate domain models configs. -$generatorSpring.cacheDomains = function(domains, res) { - if (!res) - res = $generatorCommon.builder(); - - const domainConfigs = _.filter(domains, function(domain) { - return $generatorCommon.domainQueryMetadata(domain) === 'Configuration' && - $generatorCommon.isDefinedAndNotEmpty(domain.fields); - }); - - if ($generatorCommon.isDefinedAndNotEmpty(domainConfigs)) { - res.emptyLineIfNeeded(); - - res.startBlock(''); - res.startBlock(''); - - _.forEach(domainConfigs, function(domain) { - $generatorSpring.cacheQueryMetadata(domain, res); - }); - - res.endBlock(''); - res.endBlock(''); - } - - return res; -}; - -// Generate cache configs. -$generatorSpring.cache = function(cache, res) { - if (!res) - res = $generatorCommon.builder(); - - res.startBlock(''); - - $generatorSpring.cacheConfiguration(cache, res); - - res.endBlock(''); - - return res; -}; - -// Generate cache configs. -$generatorSpring.cacheConfiguration = function(cache, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.cacheGeneral(cache, res); - $generatorSpring.cacheMemory(cache, res); - $generatorSpring.cacheQuery(cache, cache.domains, res); - $generatorSpring.cacheStore(cache, cache.domains, res); - - const igfs = _.get(cache, 'nodeFilter.IGFS.instance'); - - $generatorSpring.cacheNodeFilter(cache, igfs ? [igfs] : [], res); - $generatorSpring.cacheConcurrency(cache, res); - $generatorSpring.cacheRebalance(cache, res); - $generatorSpring.cacheServerNearCache(cache, res); - $generatorSpring.cacheStatistics(cache, res); - $generatorSpring.cacheDomains(cache.domains, res); - - return res; -}; - -// Generate caches configs. -$generatorSpring.clusterCaches = function(caches, igfss, isSrvCfg, res) { - if (!res) - res = $generatorCommon.builder(); - - if ($generatorCommon.isDefinedAndNotEmpty(caches) || (isSrvCfg && $generatorCommon.isDefinedAndNotEmpty(igfss))) { - res.emptyLineIfNeeded(); - - res.startBlock(''); - res.startBlock(''); - - _.forEach(caches, function(cache) { - $generatorSpring.cache(cache, res); - - res.needEmptyLine = true; - }); - - if (isSrvCfg) { - _.forEach(igfss, (igfs) => { - $generatorSpring.cache($generatorCommon.igfsDataCache(igfs), res); - - res.needEmptyLine = true; - - $generatorSpring.cache($generatorCommon.igfsMetaCache(igfs), res); - - res.needEmptyLine = true; - }); - } - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate IGFSs configs. -$generatorSpring.igfss = function(igfss, res) { - if (!res) - res = $generatorCommon.builder(); - - if ($generatorCommon.isDefinedAndNotEmpty(igfss)) { - res.emptyLineIfNeeded(); - - res.startBlock(''); - res.startBlock(''); - - _.forEach(igfss, function(igfs) { - res.startBlock(''); - - $generatorSpring.igfsGeneral(igfs, res); - $generatorSpring.igfsIPC(igfs, res); - $generatorSpring.igfsFragmentizer(igfs, res); - $generatorSpring.igfsDualMode(igfs, res); - $generatorSpring.igfsSecondFS(igfs, res); - $generatorSpring.igfsMisc(igfs, res); - - res.endBlock(''); - - res.needEmptyLine = true; - }); - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate IGFS IPC configuration. -$generatorSpring.igfsIPC = function(igfs, res) { - if (!res) - res = $generatorCommon.builder(); - - if (igfs.ipcEndpointEnabled) { - $generatorSpring.beanProperty(res, igfs.ipcEndpointConfiguration, 'ipcEndpointConfiguration', $generatorCommon.IGFS_IPC_CONFIGURATION, true); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate IGFS fragmentizer configuration. -$generatorSpring.igfsFragmentizer = function(igfs, res) { - if (!res) - res = $generatorCommon.builder(); - - if (igfs.fragmentizerEnabled) { - $generatorSpring.property(res, igfs, 'fragmentizerConcurrentFiles', null, 0); - $generatorSpring.property(res, igfs, 'fragmentizerThrottlingBlockLength', null, 16777216); - $generatorSpring.property(res, igfs, 'fragmentizerThrottlingDelay', null, 200); - - res.needEmptyLine = true; - } - else - $generatorSpring.property(res, igfs, 'fragmentizerEnabled'); - - return res; -}; - -// Generate IGFS dual mode configuration. -$generatorSpring.igfsDualMode = function(igfs, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, igfs, 'dualModeMaxPendingPutsSize', null, 0); - - if ($generatorCommon.isDefinedAndNotEmpty(igfs.dualModePutExecutorService)) { - res.startBlock(''); - res.line(''); - res.endBlock(''); - } - - $generatorSpring.property(res, igfs, 'dualModePutExecutorServiceShutdown', null, false); - - res.needEmptyLine = true; - - return res; -}; - -$generatorSpring.igfsSecondFS = function(igfs, res) { - if (!res) - res = $generatorCommon.builder(); - - if (igfs.secondaryFileSystemEnabled) { - const secondFs = igfs.secondaryFileSystem || {}; - - res.startBlock(''); - - res.startBlock(''); - - const nameDefined = $generatorCommon.isDefinedAndNotEmpty(secondFs.userName); - const cfgDefined = $generatorCommon.isDefinedAndNotEmpty(secondFs.cfgPath); - - $generatorSpring.constructorArg(res, 0, secondFs, 'uri'); - - if (cfgDefined || nameDefined) - $generatorSpring.constructorArg(res, 1, secondFs, 'cfgPath'); - - $generatorSpring.constructorArg(res, 2, secondFs, 'userName', null, true); - - res.endBlock(''); - res.endBlock(''); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate IGFS general configuration. -$generatorSpring.igfsGeneral = function(igfs, res) { - if (!res) - res = $generatorCommon.builder(); - - if ($generatorCommon.isDefinedAndNotEmpty(igfs.name)) { - igfs.dataCacheName = $generatorCommon.igfsDataCache(igfs).name; - igfs.metaCacheName = $generatorCommon.igfsMetaCache(igfs).name; - - $generatorSpring.property(res, igfs, 'name'); - $generatorSpring.property(res, igfs, 'dataCacheName'); - $generatorSpring.property(res, igfs, 'metaCacheName'); - $generatorSpring.property(res, igfs, 'defaultMode', null, 'DUAL_ASYNC'); - - res.needEmptyLine = true; - } - - return res; -}; - -// Generate IGFS misc configuration. -$generatorSpring.igfsMisc = function(igfs, res) { - if (!res) - res = $generatorCommon.builder(); - - $generatorSpring.property(res, igfs, 'blockSize', null, 65536); - $generatorSpring.property(res, igfs, 'streamBufferSize', null, 65536); - $generatorSpring.property(res, igfs, 'maxSpaceSize', null, 0); - $generatorSpring.property(res, igfs, 'maximumTaskRangeLength', null, 0); - $generatorSpring.property(res, igfs, 'managementPort', null, 11400); - $generatorSpring.property(res, igfs, 'perNodeBatchSize', null, 100); - $generatorSpring.property(res, igfs, 'perNodeParallelBatchCount', null, 8); - $generatorSpring.property(res, igfs, 'prefetchBlocks', null, 0); - $generatorSpring.property(res, igfs, 'sequentialReadsBeforePrefetch', null, 0); - $generatorSpring.property(res, igfs, 'trashPurgeTimeout', null, 1000); - $generatorSpring.property(res, igfs, 'colocateMetadata', null, true); - $generatorSpring.property(res, igfs, 'relaxedConsistency', null, true); - - res.softEmptyLine(); - - if (igfs.pathModes && igfs.pathModes.length > 0) { - res.startBlock(''); - res.startBlock(''); - - _.forEach(igfs.pathModes, function(pair) { - res.line(''); - }); - - res.endBlock(''); - res.endBlock(''); - } - - return res; -}; - -// Generate DataSource beans. -$generatorSpring.generateDataSources = function(datasources, res) { - if (!res) - res = $generatorCommon.builder(); - - if (datasources.length > 0) { - res.line(''); - - _.forEach(datasources, (datasource) => $generatorSpring.generateDataSource(datasource, res)); - - res.needEmptyLine = true; - - res.emptyLineIfNeeded(); - } - - return res; -}; - -$generatorSpring.generateDataSource = function(datasource, res) { - const beanId = datasource.dataSourceBean; - - res.startBlock(''); - - switch (datasource.dialect) { - case 'Generic': - res.line(''); - - break; - - case 'DB2': - res.line(''); - res.line(''); - res.line(''); - res.line(''); - - break; - - case 'PostgreSQL': - res.line(''); - - break; - - default: - res.line(''); - } - - res.line(''); - res.line(''); - - res.endBlock(''); - - res.needEmptyLine = true; - - res.emptyLineIfNeeded(); -}; - -$generatorSpring.clusterConfiguration = function(cluster, clientNearCfg, res) { - const isSrvCfg = _.isNil(clientNearCfg); - - if (!isSrvCfg) { - res.line(''); - - res.needEmptyLine = true; - } - - $generatorSpring.clusterGeneral(cluster, res); - - $generatorSpring.clusterAtomics(cluster.atomicConfiguration, res); - - $generatorSpring.clusterBinary(cluster.binaryConfiguration, res); - - $generatorSpring.clusterCacheKeyConfiguration(cluster.cacheKeyConfiguration, res); - - $generatorSpring.clusterCollision(cluster.collision, res); - - $generatorSpring.clusterCommunication(cluster, res); - - $generatorSpring.clusterConnector(cluster.connector, res); - - $generatorSpring.clusterDeployment(cluster, res); - - $generatorSpring.clusterEvents(cluster, res); - - $generatorSpring.clusterFailover(cluster, res); - - $generatorSpring.clusterLogger(cluster.logger, res); - - $generatorSpring.clusterODBC(cluster.odbc, res); - - $generatorSpring.clusterMarshaller(cluster, res); - - $generatorSpring.clusterMetrics(cluster, res); - - $generatorSpring.clusterSwap(cluster, res); - - $generatorSpring.clusterTime(cluster, res); - - $generatorSpring.clusterPools(cluster, res); - - $generatorSpring.clusterTransactions(cluster.transactionConfiguration, res); - - $generatorSpring.clusterCaches(cluster.caches, cluster.igfss, isSrvCfg, res); - - $generatorSpring.clusterSsl(cluster, res); - - if (isSrvCfg) - $generatorSpring.igfss(cluster.igfss, res); - - $generatorSpring.clusterUserAttributes(cluster, res); - - return res; -}; - -$generatorSpring.cluster = function(cluster, clientNearCfg) { - if (cluster) { - const res = $generatorCommon.builder(1); - - if (clientNearCfg) { - res.startBlock(''); - - if (clientNearCfg.nearStartSize) - $generatorSpring.property(res, clientNearCfg, 'nearStartSize'); - - if (clientNearCfg.nearEvictionPolicy && clientNearCfg.nearEvictionPolicy.kind) - $generatorSpring.evictionPolicy(res, clientNearCfg.nearEvictionPolicy, 'nearEvictionPolicy'); - - res.endBlock(''); - - res.needEmptyLine = true; - - res.emptyLineIfNeeded(); - } - - // Generate Ignite Configuration. - res.startBlock(''); - - $generatorSpring.clusterConfiguration(cluster, clientNearCfg, res); - - res.endBlock(''); - - // Build final XML: - // 1. Add header. - let xml = '\n\n'; - - xml += '\n\n'; - xml += ' this.NotebookData.findIndex(notebook)) .then((idx) => { this.NotebookData.remove(notebook) http://git-wip-us.apache.org/repos/asf/ignite/blob/2b3a180f/modules/web-console/frontend/app/modules/sql/scan-filter-input.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/sql/scan-filter-input.jade b/modules/web-console/frontend/app/modules/sql/scan-filter-input.jade deleted file mode 100644 index 0396727..0000000 --- a/modules/web-console/frontend/app/modules/sql/scan-filter-input.jade +++ /dev/null @@ -1,39 +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. - -include /app/helpers/jade/mixins.jade - -.modal(tabindex='-1' role='dialog') - .modal-dialog - .modal-content - .modal-header - button.close(ng-click='$hide()') × - h4.modal-title Scan filter - form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate) - .settings-row - .col-sm-2 - label.required.labelFormField Filter:  - .col-sm-10 - .input-tip - +ignite-form-field-input('"filter"', 'ui.filter', false, 'true', 'Enter filter')( - data-ignite-form-field-input-autofocus='true' - ignite-on-enter='form.$valid && ok()' - ) - .settings-row - +checkbox('Case sensitive search', 'ui.caseSensitive', '"caseSensitive"', 'Select this checkbox for case sensitive search') - .modal-footer - button.btn.btn-default(id='btn-cancel' ng-click='$hide()') Cancel - button.btn.btn-primary(id='btn-scan' ng-disabled='ui.inputForm.$invalid' ng-click='ok()') Scan http://git-wip-us.apache.org/repos/asf/ignite/blob/2b3a180f/modules/web-console/frontend/app/modules/sql/scan-filter-input.service.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/sql/scan-filter-input.service.js b/modules/web-console/frontend/app/modules/sql/scan-filter-input.service.js deleted file mode 100644 index 18ba3ba..0000000 --- a/modules/web-console/frontend/app/modules/sql/scan-filter-input.service.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export default class ScanFilter { - static $inject = ['$rootScope', '$q', '$modal']; - - constructor($root, $q, $modal) { - this.deferred = null; - this.$q = $q; - - const scope = $root.$new(); - - scope.ui = {}; - - scope.ok = () => { - this.deferred.resolve({filter: scope.ui.filter, caseSensitive: !!scope.ui.caseSensitive}); - - this.modal.hide(); - }; - - scope.$hide = () => { - this.modal.hide(); - - this.deferred.reject(); - }; - - this.modal = $modal({templateUrl: '/scan-filter-input.html', scope, placement: 'center', show: false}); - } - - open() { - this.deferred = this.$q.defer(); - - this.modal.$promise.then(this.modal.show); - - return this.deferred.promise; - } -}