You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/12/26 11:16:55 UTC
[39/50] [abbrv] ignite git commit: Web console beta-7.
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/Maven.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/Maven.service.js b/modules/web-console/frontend/app/modules/configuration/generator/Maven.service.js
new file mode 100644
index 0000000..2e01761
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/configuration/generator/Maven.service.js
@@ -0,0 +1,234 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import StringBuilder from './StringBuilder';
+
+// Java built-in class names.
+import POM_DEPENDENCIES from 'app/data/pom-dependencies.json';
+
+/**
+ * Pom file generation entry point.
+ */
+export default class IgniteMavenGenerator {
+ escapeId(s) {
+ if (typeof (s) !== 'string')
+ return s;
+
+ return s.replace(/[^A-Za-z0-9_\-.]+/g, '_');
+ }
+
+ addProperty(sb, tag, val) {
+ sb.append('<' + tag + '>' + val + '</' + tag + '>');
+ }
+
+ addDependency(deps, groupId, artifactId, version, jar) {
+ if (!_.find(deps, (dep) => dep.groupId === groupId && dep.artifactId === artifactId))
+ deps.push({groupId, artifactId, version, jar});
+ }
+
+ addResource(sb, dir, exclude) {
+ sb.startBlock('<resource>');
+ if (dir)
+ this.addProperty(sb, 'directory', dir);
+
+ if (exclude) {
+ sb.startBlock('<excludes>');
+ this.addProperty(sb, 'exclude', exclude);
+ sb.endBlock('</excludes>');
+ }
+
+ sb.endBlock('</resource>');
+ }
+
+ artifact(sb, cluster, version) {
+ this.addProperty(sb, 'groupId', 'org.apache.ignite');
+ this.addProperty(sb, 'artifactId', this.escapeId(cluster.name) + '-project');
+ this.addProperty(sb, 'version', version);
+
+ sb.emptyLine();
+ }
+
+ dependencies(sb, cluster, deps) {
+ sb.startBlock('<dependencies>');
+
+ _.forEach(deps, (dep) => {
+ sb.startBlock('<dependency>');
+
+ this.addProperty(sb, 'groupId', dep.groupId);
+ this.addProperty(sb, 'artifactId', dep.artifactId);
+ this.addProperty(sb, 'version', dep.version);
+
+ if (dep.jar) {
+ this.addProperty(sb, 'scope', 'system');
+ this.addProperty(sb, 'systemPath', '${project.basedir}/jdbc-drivers/' + dep.jar);
+ }
+
+ sb.endBlock('</dependency>');
+ });
+
+ sb.endBlock('</dependencies>');
+
+ return sb;
+ }
+
+ build(sb = new StringBuilder(), cluster, excludeGroupIds) {
+ sb.startBlock('<build>');
+ sb.startBlock('<resources>');
+ this.addResource(sb, 'src/main/java', '**/*.java');
+ this.addResource(sb, 'src/main/resources');
+ sb.endBlock('</resources>');
+
+ sb.startBlock('<plugins>');
+ sb.startBlock('<plugin>');
+ this.addProperty(sb, 'artifactId', 'maven-dependency-plugin');
+ sb.startBlock('<executions>');
+ sb.startBlock('<execution>');
+ this.addProperty(sb, 'id', 'copy-libs');
+ this.addProperty(sb, 'phase', 'test-compile');
+ sb.startBlock('<goals>');
+ this.addProperty(sb, 'goal', 'copy-dependencies');
+ sb.endBlock('</goals>');
+ sb.startBlock('<configuration>');
+ this.addProperty(sb, 'excludeGroupIds', excludeGroupIds.join(','));
+ this.addProperty(sb, 'outputDirectory', 'target/libs');
+ this.addProperty(sb, 'includeScope', 'compile');
+ this.addProperty(sb, 'excludeTransitive', 'true');
+ sb.endBlock('</configuration>');
+ sb.endBlock('</execution>');
+ sb.endBlock('</executions>');
+ sb.endBlock('</plugin>');
+ sb.startBlock('<plugin>');
+ this.addProperty(sb, 'artifactId', 'maven-compiler-plugin');
+ this.addProperty(sb, 'version', '3.1');
+ sb.startBlock('<configuration>');
+ this.addProperty(sb, 'source', '1.7');
+ this.addProperty(sb, 'target', '1.7');
+ sb.endBlock('</configuration>');
+ sb.endBlock('</plugin>');
+ sb.endBlock('</plugins>');
+ sb.endBlock('</build>');
+
+ sb.endBlock('</project>');
+ }
+
+ /**
+ * Add dependency for specified store factory if not exist.
+ * @param storeDeps Already added dependencies.
+ * @param storeFactory Store factory to add dependency.
+ */
+ storeFactoryDependency(storeDeps, storeFactory) {
+ if (storeFactory.dialect && (!storeFactory.connectVia || storeFactory.connectVia === 'DataSource')) {
+ const dep = POM_DEPENDENCIES[storeFactory.dialect];
+
+ this.addDependency(storeDeps, dep.groupId, dep.artifactId, dep.version, dep.jar);
+ }
+ }
+
+ /**
+ * Generate pom.xml.
+ *
+ * @param cluster Cluster to take info about dependencies.
+ * @param version Ignite version for Ignite dependencies.
+ * @param sb Resulting output with generated pom.
+ * @returns {string} Generated content.
+ */
+ generate(cluster, version, sb = new StringBuilder()) {
+ const caches = cluster.caches;
+ const deps = [];
+ const storeDeps = [];
+ const excludeGroupIds = ['org.apache.ignite'];
+
+ const blobStoreFactory = {cacheStoreFactory: {kind: 'CacheHibernateBlobStoreFactory'}};
+
+ _.forEach(caches, (cache) => {
+ if (cache.cacheStoreFactory && cache.cacheStoreFactory.kind)
+ this.storeFactoryDependency(storeDeps, cache.cacheStoreFactory[cache.cacheStoreFactory.kind]);
+
+ if (_.get(cache, 'nodeFilter.kind') === 'Exclude')
+ this.addDependency(deps, 'org.apache.ignite', 'ignite-extdata-p2p', version);
+ });
+
+ sb.append('<?xml version="1.0" encoding="UTF-8"?>');
+
+ sb.emptyLine();
+
+ sb.append(`<!-- ${sb.generatedBy()} -->`);
+
+ sb.emptyLine();
+
+ sb.startBlock('<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">');
+
+ sb.append('<modelVersion>4.0.0</modelVersion>');
+
+ sb.emptyLine();
+
+ this.artifact(sb, cluster, version);
+
+ this.addDependency(deps, 'org.apache.ignite', 'ignite-core', version);
+
+ this.addDependency(deps, 'org.apache.ignite', 'ignite-spring', version);
+ this.addDependency(deps, 'org.apache.ignite', 'ignite-indexing', version);
+ this.addDependency(deps, 'org.apache.ignite', 'ignite-rest-http', version);
+
+ if (_.get(cluster, 'deploymentSpi.kind') === 'URI')
+ this.addDependency(deps, 'org.apache.ignite', 'ignite-urideploy', version);
+
+ let dep = POM_DEPENDENCIES[cluster.discovery.kind];
+
+ if (dep)
+ this.addDependency(deps, 'org.apache.ignite', dep.artifactId, version);
+
+ if (cluster.discovery.kind === 'Jdbc') {
+ const store = cluster.discovery.Jdbc;
+
+ if (store.dataSourceBean && store.dialect)
+ this.storeFactoryDependency(storeDeps, cluster.discovery.Jdbc);
+ }
+
+ _.forEach(cluster.checkpointSpi, (spi) => {
+ if (spi.kind === 'S3') {
+ dep = POM_DEPENDENCIES.S3;
+
+ if (dep)
+ this.addDependency(deps, 'org.apache.ignite', dep.artifactId, version);
+ }
+ else if (spi.kind === 'JDBC')
+ this.storeFactoryDependency(storeDeps, spi.JDBC);
+ });
+
+ if (_.find(cluster.igfss, (igfs) => igfs.secondaryFileSystemEnabled))
+ this.addDependency(deps, 'org.apache.ignite', 'ignite-hadoop', version);
+
+ if (_.find(caches, blobStoreFactory))
+ this.addDependency(deps, 'org.apache.ignite', 'ignite-hibernate', version);
+
+ if (cluster.logger && cluster.logger.kind) {
+ dep = POM_DEPENDENCIES[cluster.logger.kind];
+
+ if (dep)
+ this.addDependency(deps, 'org.apache.ignite', dep.artifactId, version);
+ }
+
+ this.dependencies(sb, cluster, deps.concat(storeDeps));
+
+ sb.emptyLine();
+
+ this.build(sb, cluster, excludeGroupIds);
+
+ return sb;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/Pom.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/Pom.service.js b/modules/web-console/frontend/app/modules/configuration/generator/Pom.service.js
deleted file mode 100644
index db58532..0000000
--- a/modules/web-console/frontend/app/modules/configuration/generator/Pom.service.js
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import StringBuilder from './StringBuilder';
-
-// Java built-in class names.
-import POM_DEPENDENCIES from 'app/data/pom-dependencies.json';
-
-/**
- * Pom file generation entry point.
- */
-class GeneratorPom {
- escapeId(s) {
- if (typeof (s) !== 'string')
- return s;
-
- return s.replace(/[^A-Za-z0-9_\-.]+/g, '_');
- }
-
- addProperty(sb, tag, val) {
- sb.append('<' + tag + '>' + val + '</' + tag + '>');
- }
-
- addDependency(deps, groupId, artifactId, version, jar) {
- if (!_.find(deps, (dep) => dep.groupId === groupId && dep.artifactId === artifactId))
- deps.push({groupId, artifactId, version, jar});
- }
-
- addResource(sb, dir, exclude) {
- sb.startBlock('<resource>');
- if (dir)
- this.addProperty(sb, 'directory', dir);
-
- if (exclude) {
- sb.startBlock('<excludes>');
- this.addProperty(sb, 'exclude', exclude);
- sb.endBlock('</excludes>');
- }
-
- sb.endBlock('</resource>');
- }
-
- artifact(sb, cluster, version) {
- this.addProperty(sb, 'groupId', 'org.apache.ignite');
- this.addProperty(sb, 'artifactId', this.escapeId(cluster.name) + '-project');
- this.addProperty(sb, 'version', version);
-
- sb.emptyLine();
- }
-
- dependencies(sb, cluster, deps) {
- sb.startBlock('<dependencies>');
-
- _.forEach(deps, (dep) => {
- sb.startBlock('<dependency>');
-
- this.addProperty(sb, 'groupId', dep.groupId);
- this.addProperty(sb, 'artifactId', dep.artifactId);
- this.addProperty(sb, 'version', dep.version);
-
- if (dep.jar) {
- this.addProperty(sb, 'scope', 'system');
- this.addProperty(sb, 'systemPath', '${project.basedir}/jdbc-drivers/' + dep.jar);
- }
-
- sb.endBlock('</dependency>');
- });
-
- sb.endBlock('</dependencies>');
-
- return sb;
- }
-
- build(sb = new StringBuilder(), cluster, excludeGroupIds) {
- sb.startBlock('<build>');
- sb.startBlock('<resources>');
- this.addResource(sb, 'src/main/java', '**/*.java');
- this.addResource(sb, 'src/main/resources');
- sb.endBlock('</resources>');
-
- sb.startBlock('<plugins>');
- sb.startBlock('<plugin>');
- this.addProperty(sb, 'artifactId', 'maven-dependency-plugin');
- sb.startBlock('<executions>');
- sb.startBlock('<execution>');
- this.addProperty(sb, 'id', 'copy-libs');
- this.addProperty(sb, 'phase', 'test-compile');
- sb.startBlock('<goals>');
- this.addProperty(sb, 'goal', 'copy-dependencies');
- sb.endBlock('</goals>');
- sb.startBlock('<configuration>');
- this.addProperty(sb, 'excludeGroupIds', excludeGroupIds.join(','));
- this.addProperty(sb, 'outputDirectory', 'target/libs');
- this.addProperty(sb, 'includeScope', 'compile');
- this.addProperty(sb, 'excludeTransitive', 'true');
- sb.endBlock('</configuration>');
- sb.endBlock('</execution>');
- sb.endBlock('</executions>');
- sb.endBlock('</plugin>');
- sb.startBlock('<plugin>');
- this.addProperty(sb, 'artifactId', 'maven-compiler-plugin');
- this.addProperty(sb, 'version', '3.1');
- sb.startBlock('<configuration>');
- this.addProperty(sb, 'source', '1.7');
- this.addProperty(sb, 'target', '1.7');
- sb.endBlock('</configuration>');
- sb.endBlock('</plugin>');
- sb.endBlock('</plugins>');
- sb.endBlock('</build>');
-
- sb.endBlock('</project>');
- }
-
- /**
- * Add dependency for specified store factory if not exist.
- * @param storeDeps Already added dependencies.
- * @param storeFactory Store factory to add dependency.
- */
- storeFactoryDependency(storeDeps, storeFactory) {
- if (storeFactory.dialect && (!storeFactory.connectVia || storeFactory.connectVia === 'DataSource')) {
- const dep = POM_DEPENDENCIES[storeFactory.dialect];
-
- this.addDependency(storeDeps, dep.groupId, dep.artifactId, dep.version, dep.jar);
- }
- }
-
- /**
- * Generate pom.xml.
- *
- * @param cluster Cluster to take info about dependencies.
- * @param version Ignite version for Ignite dependencies.
- * @param sb Resulting output with generated pom.
- * @returns {string} Generated content.
- */
- generate(cluster, version, sb = new StringBuilder()) {
- const caches = cluster.caches;
- const deps = [];
- const storeDeps = [];
- const excludeGroupIds = ['org.apache.ignite'];
-
- const blobStoreFactory = {cacheStoreFactory: {kind: 'CacheHibernateBlobStoreFactory'}};
-
- _.forEach(caches, (cache) => {
- if (cache.cacheStoreFactory && cache.cacheStoreFactory.kind)
- this.storeFactoryDependency(storeDeps, cache.cacheStoreFactory[cache.cacheStoreFactory.kind]);
-
- if (_.get(cache, 'nodeFilter.kind') === 'Exclude')
- this.addDependency(deps, 'org.apache.ignite', 'ignite-extdata-p2p', version);
- });
-
- sb.append('<?xml version="1.0" encoding="UTF-8"?>');
-
- sb.emptyLine();
-
- sb.append(`<!-- ${sb.generatedBy()} -->`);
-
- sb.emptyLine();
-
- sb.startBlock('<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">');
-
- sb.append('<modelVersion>4.0.0</modelVersion>');
-
- sb.emptyLine();
-
- this.artifact(sb, cluster, version);
-
- this.addDependency(deps, 'org.apache.ignite', 'ignite-core', version);
-
- this.addDependency(deps, 'org.apache.ignite', 'ignite-spring', version);
- this.addDependency(deps, 'org.apache.ignite', 'ignite-indexing', version);
- this.addDependency(deps, 'org.apache.ignite', 'ignite-rest-http', version);
-
- let dep = POM_DEPENDENCIES[cluster.discovery.kind];
-
- if (dep)
- this.addDependency(deps, 'org.apache.ignite', dep.artifactId, version);
-
- if (cluster.discovery.kind === 'Jdbc') {
- const store = cluster.discovery.Jdbc;
-
- if (store.dataSourceBean && store.dialect)
- this.storeFactoryDependency(storeDeps, cluster.discovery.Jdbc);
- }
-
- _.forEach(cluster.checkpointSpi, (spi) => {
- if (spi.kind === 'S3') {
- dep = POM_DEPENDENCIES.S3;
-
- if (dep)
- this.addDependency(deps, 'org.apache.ignite', dep.artifactId, version);
- }
- else if (spi.kind === 'JDBC')
- this.storeFactoryDependency(storeDeps, spi.JDBC);
- });
-
- if (_.find(cluster.igfss, (igfs) => igfs.secondaryFileSystemEnabled))
- this.addDependency(deps, 'org.apache.ignite', 'ignite-hadoop', version);
-
- if (_.find(caches, blobStoreFactory))
- this.addDependency(deps, 'org.apache.ignite', 'ignite-hibernate', version);
-
- if (cluster.logger && cluster.logger.kind) {
- dep = POM_DEPENDENCIES[cluster.logger.kind];
-
- if (dep)
- this.addDependency(deps, 'org.apache.ignite', dep.artifactId, version);
- }
-
- this.dependencies(sb, cluster, deps.concat(storeDeps));
-
- sb.emptyLine();
-
- this.build(sb, cluster, excludeGroupIds);
-
- return sb;
- }
-}
-
-export default ['GeneratorPom', GeneratorPom];
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/Properties.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/Properties.service.js b/modules/web-console/frontend/app/modules/configuration/generator/Properties.service.js
index 49b4aa6..8a6a471 100644
--- a/modules/web-console/frontend/app/modules/configuration/generator/Properties.service.js
+++ b/modules/web-console/frontend/app/modules/configuration/generator/Properties.service.js
@@ -20,7 +20,7 @@ import StringBuilder from './StringBuilder';
/**
* Properties generation entry point.
*/
-export default class PropertiesGenerator {
+export default class IgnitePropertiesGenerator {
_collectProperties(bean) {
const props = [];
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/Readme.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/Readme.service.js b/modules/web-console/frontend/app/modules/configuration/generator/Readme.service.js
index 7043807..0aa34ee 100644
--- a/modules/web-console/frontend/app/modules/configuration/generator/Readme.service.js
+++ b/modules/web-console/frontend/app/modules/configuration/generator/Readme.service.js
@@ -20,7 +20,7 @@ import StringBuilder from './StringBuilder';
/**
* Properties generation entry point.
*/
-export default class ReadmeGenerator {
+export default class IgniteReadmeGenerator {
header(sb) {
sb.append('Content of this folder was generated by Apache Ignite Web Console');
sb.append('=================================================================');
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/SharpTransformer.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/SharpTransformer.service.js b/modules/web-console/frontend/app/modules/configuration/generator/SharpTransformer.service.js
index 19043f6..6e6bffe 100644
--- a/modules/web-console/frontend/app/modules/configuration/generator/SharpTransformer.service.js
+++ b/modules/web-console/frontend/app/modules/configuration/generator/SharpTransformer.service.js
@@ -19,225 +19,238 @@ import _ from 'lodash';
import AbstractTransformer from './AbstractTransformer';
import StringBuilder from './StringBuilder';
-export default ['JavaTypes', 'IgnitePlatformGenerator', (JavaTypes, generator) => {
- return class SharpTransformer extends AbstractTransformer {
- static generator = generator;
-
- static commentBlock(sb, ...lines) {
- _.forEach(lines, (line) => sb.append(`// ${line}`));
- }
-
- static doc(sb, ...lines) {
- sb.append('/// <summary>');
- _.forEach(lines, (line) => sb.append(`/// ${line}`));
- sb.append('/// </summary>');
- }
-
- static mainComment(sb) {
- return this.doc(sb, sb.generatedBy());
- }
-
- /**
- *
- * @param {Array.<String>} sb
- * @param {Bean} bean
- */
- static _defineBean(sb, bean) {
- const shortClsName = JavaTypes.shortClassName(bean.clsName);
-
- sb.append(`var ${bean.id} = new ${shortClsName}();`);
- }
-
- /**
- * @param {StringBuilder} sb
- * @param {Bean} parent
- * @param {Bean} propertyName
- * @param {String|Bean} value
- * @private
- */
- static _setProperty(sb, parent, propertyName, value) {
- sb.append(`${parent.id}.${_.upperFirst(propertyName)} = ${value};`);
- }
-
- /**
- *
- * @param {StringBuilder} sb
- * @param {Bean} parent
- * @param {String} propertyName
- * @param {Bean} bean
- * @private
- */
- static _setBeanProperty(sb, parent, propertyName, bean) {
- sb.append(`${parent.id}.${_.upperFirst(propertyName)} = ${bean.id};`);
- }
-
- static _toObject(clsName, val) {
- const items = _.isArray(val) ? val : [val];
-
- return _.map(items, (item, idx) => {
- if (_.isNil(item))
- return 'null';
-
- const shortClsName = JavaTypes.shortClassName(clsName);
-
- switch (shortClsName) {
- // case 'byte':
- // return `(byte) ${item}`;
- // case 'Serializable':
- case 'String':
- if (items.length > 1)
- return `"${item}"${idx !== items.length - 1 ? ' +' : ''}`;
-
- return `"${item}"`;
- // case 'Path':
- // return `"${item.replace(/\\/g, '\\\\')}"`;
- // case 'Class':
- // return `${this.shortClassName(item)}.class`;
- // case 'UUID':
- // return `UUID.fromString("${item}")`;
- // case 'PropertyChar':
- // return `props.getProperty("${item}").toCharArray()`;
- // case 'Property':
- // return `props.getProperty("${item}")`;
- // case 'Bean':
- // if (item.isComplex())
- // return item.id;
+import ConfigurationGenerator from './ConfigurationGenerator';
+
+import ClusterDefaults from './defaults/Cluster.service';
+import CacheDefaults from './defaults/Cache.service';
+import IGFSDefaults from './defaults/IGFS.service';
+
+import JavaTypes from '../../../services/JavaTypes.service';
+
+const generator = new ConfigurationGenerator();
+
+const clusterDflts = new ClusterDefaults();
+const cacheDflts = new CacheDefaults();
+const igfsDflts = new IGFSDefaults();
+
+const javaTypes = new JavaTypes(clusterDflts, cacheDflts, igfsDflts);
+
+export default class SharpTransformer extends AbstractTransformer {
+ static generator = generator;
+
+ static commentBlock(sb, ...lines) {
+ _.forEach(lines, (line) => sb.append(`// ${line}`));
+ }
+
+ static doc(sb, ...lines) {
+ sb.append('/// <summary>');
+ _.forEach(lines, (line) => sb.append(`/// ${line}`));
+ sb.append('/// </summary>');
+ }
+
+ static mainComment(sb) {
+ return this.doc(sb, sb.generatedBy());
+ }
+
+ /**
+ *
+ * @param {Array.<String>} sb
+ * @param {Bean} bean
+ */
+ static _defineBean(sb, bean) {
+ const shortClsName = javaTypes.shortClassName(bean.clsName);
+
+ sb.append(`var ${bean.id} = new ${shortClsName}();`);
+ }
+
+ /**
+ * @param {StringBuilder} sb
+ * @param {Bean} parent
+ * @param {Bean} propertyName
+ * @param {String|Bean} value
+ * @private
+ */
+ static _setProperty(sb, parent, propertyName, value) {
+ sb.append(`${parent.id}.${_.upperFirst(propertyName)} = ${value};`);
+ }
+
+ /**
+ *
+ * @param {StringBuilder} sb
+ * @param {Bean} parent
+ * @param {String} propertyName
+ * @param {Bean} bean
+ * @private
+ */
+ static _setBeanProperty(sb, parent, propertyName, bean) {
+ sb.append(`${parent.id}.${_.upperFirst(propertyName)} = ${bean.id};`);
+ }
+
+ static _toObject(clsName, val) {
+ const items = _.isArray(val) ? val : [val];
+
+ return _.map(items, (item, idx) => {
+ if (_.isNil(item))
+ return 'null';
+
+ const shortClsName = javaTypes.shortClassName(clsName);
+
+ switch (shortClsName) {
+ // case 'byte':
+ // return `(byte) ${item}`;
+ // case 'Serializable':
+ case 'String':
+ if (items.length > 1)
+ return `"${item}"${idx !== items.length - 1 ? ' +' : ''}`;
+
+ return `"${item}"`;
+ // case 'Path':
+ // return `"${item.replace(/\\/g, '\\\\')}"`;
+ // case 'Class':
+ // return `${this.shortClassName(item)}.class`;
+ // case 'UUID':
+ // return `UUID.fromString("${item}")`;
+ // case 'PropertyChar':
+ // return `props.getProperty("${item}").toCharArray()`;
+ // case 'Property':
+ // return `props.getProperty("${item}")`;
+ // case 'Bean':
+ // if (item.isComplex())
+ // return item.id;
+ //
+ // return this._newBean(item);
+ default:
+ if (javaTypes.nonEnum(shortClsName))
+ return item;
+
+ return `${shortClsName}.${item}`;
+ }
+ });
+ }
+
+ /**
+ *
+ * @param {StringBuilder} sb
+ * @param {Bean} bean
+ * @returns {Array}
+ */
+ static _setProperties(sb = new StringBuilder(), bean) {
+ _.forEach(bean.properties, (prop) => {
+ switch (prop.clsName) {
+ case 'ICollection':
+ // const implClsName = JavaTypes.shortClassName(prop.implClsName);
+
+ const colTypeClsName = javaTypes.shortClassName(prop.typeClsName);
+
+ if (colTypeClsName === 'String') {
+ const items = this._toObject(colTypeClsName, prop.items);
+
+ sb.append(`${bean.id}.${_.upperFirst(prop.name)} = new {${items.join(', ')}};`);
+ }
+ // else {
+ // if (_.includes(vars, prop.id))
+ // sb.append(`${prop.id} = new ${implClsName}<>();`);
+ // else {
+ // vars.push(prop.id);
//
- // return this._newBean(item);
- default:
- if (JavaTypes.nonEnum(shortClsName))
- return item;
-
- return `${shortClsName}.${item}`;
- }
- });
- }
-
- /**
- *
- * @param {StringBuilder} sb
- * @param {Bean} bean
- * @returns {Array}
- */
- static _setProperties(sb = new StringBuilder(), bean) {
- _.forEach(bean.properties, (prop) => {
- switch (prop.clsName) {
- case 'ICollection':
- // const implClsName = JavaTypes.shortClassName(prop.implClsName);
-
- const colTypeClsName = JavaTypes.shortClassName(prop.typeClsName);
-
- if (colTypeClsName === 'String') {
- const items = this._toObject(colTypeClsName, prop.items);
-
- sb.append(`${bean.id}.${_.upperFirst(prop.name)} = new {${items.join(', ')}};`);
- }
- // else {
- // if (_.includes(vars, prop.id))
- // sb.append(`${prop.id} = new ${implClsName}<>();`);
- // else {
- // vars.push(prop.id);
- //
- // sb.append(`${clsName}<${colTypeClsName}> ${prop.id} = new ${implClsName}<>();`);
- // }
- //
- // sb.emptyLine();
- //
- // if (nonBean) {
- // const items = this._toObject(colTypeClsName, prop.items);
- //
- // _.forEach(items, (item) => {
- // sb.append(`${prop.id}.add("${item}");`);
- //
- // sb.emptyLine();
- // });
- // }
- // else {
- // _.forEach(prop.items, (item) => {
- // this.constructBean(sb, item, vars, limitLines);
- //
- // sb.append(`${prop.id}.add(${item.id});`);
- //
- // sb.emptyLine();
- // });
- //
- // this._setProperty(sb, bean.id, prop.name, prop.id);
- // }
- // }
-
- break;
-
- case 'Bean':
- const nestedBean = prop.value;
-
- this._defineBean(sb, nestedBean);
-
- sb.emptyLine();
-
- this._setProperties(sb, nestedBean);
-
- sb.emptyLine();
-
- this._setBeanProperty(sb, bean, prop.name, nestedBean);
-
- break;
- default:
- this._setProperty(sb, bean, prop.name, this._toObject(prop.clsName, prop.value));
- }
- });
-
- return sb;
- }
-
- /**
- * Build Java startup class with configuration.
- *
- * @param {Bean} cfg
- * @param pkg Package name.
- * @param clsName Class name for generate factory class otherwise generate code snippet.
- * @param clientNearCfg Optional near cache configuration for client node.
- * @returns {String}
- */
- static toClassFile(cfg, pkg, clsName) {
- const sb = new StringBuilder();
-
- sb.startBlock(`namespace ${pkg}`, '{');
-
- _.forEach(_.sortBy(cfg.collectClasses()), (cls) => sb.append(`using ${cls};`));
- sb.emptyLine();
-
-
- this.mainComment(sb);
- sb.startBlock(`public class ${clsName}`, '{');
-
- this.doc(sb, 'Configure grid.');
- sb.startBlock('public static IgniteConfiguration CreateConfiguration()', '{');
-
- this._defineBean(sb, cfg);
-
- sb.emptyLine();
-
- this._setProperties(sb, cfg);
+ // sb.append(`${clsName}<${colTypeClsName}> ${prop.id} = new ${implClsName}<>();`);
+ // }
+ //
+ // sb.emptyLine();
+ //
+ // if (nonBean) {
+ // const items = this._toObject(colTypeClsName, prop.items);
+ //
+ // _.forEach(items, (item) => {
+ // sb.append(`${prop.id}.add("${item}");`);
+ //
+ // sb.emptyLine();
+ // });
+ // }
+ // else {
+ // _.forEach(prop.items, (item) => {
+ // this.constructBean(sb, item, vars, limitLines);
+ //
+ // sb.append(`${prop.id}.add(${item.id});`);
+ //
+ // sb.emptyLine();
+ // });
+ //
+ // this._setProperty(sb, bean.id, prop.name, prop.id);
+ // }
+ // }
+
+ break;
+
+ case 'Bean':
+ const nestedBean = prop.value;
+
+ this._defineBean(sb, nestedBean);
+
+ sb.emptyLine();
+
+ this._setProperties(sb, nestedBean);
+
+ sb.emptyLine();
+
+ this._setBeanProperty(sb, bean, prop.name, nestedBean);
+
+ break;
+ default:
+ this._setProperty(sb, bean, prop.name, this._toObject(prop.clsName, prop.value));
+ }
+ });
+
+ return sb;
+ }
+
+ /**
+ * Build Java startup class with configuration.
+ *
+ * @param {Bean} cfg
+ * @param pkg Package name.
+ * @param clsName Class name for generate factory class otherwise generate code snippet.
+ * @returns {String}
+ */
+ static toClassFile(cfg, pkg, clsName) {
+ const sb = new StringBuilder();
+
+ sb.startBlock(`namespace ${pkg}`, '{');
+
+ _.forEach(_.sortBy(cfg.collectClasses()), (cls) => sb.append(`using ${cls};`));
+ sb.emptyLine();
+
+
+ this.mainComment(sb);
+ sb.startBlock(`public class ${clsName}`, '{');
+
+ this.doc(sb, 'Configure grid.');
+ sb.startBlock('public static IgniteConfiguration CreateConfiguration()', '{');
+
+ this._defineBean(sb, cfg);
+
+ sb.emptyLine();
+
+ this._setProperties(sb, cfg);
- sb.emptyLine();
+ sb.emptyLine();
- sb.append(`return ${cfg.id};`);
+ sb.append(`return ${cfg.id};`);
- sb.endBlock('}');
+ sb.endBlock('}');
- sb.endBlock('}');
+ sb.endBlock('}');
- sb.endBlock('}');
+ sb.endBlock('}');
- return sb.asString();
- }
+ return sb.asString();
+ }
- static generateSection(bean) {
- const sb = new StringBuilder();
+ static generateSection(bean) {
+ const sb = new StringBuilder();
- this._setProperties(sb, bean);
+ this._setProperties(sb, bean);
- return sb.asString();
- }
- };
-}];
+ return sb.asString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/SpringTransformer.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/SpringTransformer.service.js b/modules/web-console/frontend/app/modules/configuration/generator/SpringTransformer.service.js
index 73df25e..b234575 100644
--- a/modules/web-console/frontend/app/modules/configuration/generator/SpringTransformer.service.js
+++ b/modules/web-console/frontend/app/modules/configuration/generator/SpringTransformer.service.js
@@ -20,314 +20,311 @@ import _ from 'lodash';
import AbstractTransformer from './AbstractTransformer';
import StringBuilder from './StringBuilder';
-const escapeXml = (str) => {
- return str.replace(/&/g, '&')
- .replace(/"/g, '"')
- .replace(/'/g, ''')
- .replace(/>/g, '>')
- .replace(/</g, '<');
-};
-
-export default ['JavaTypes', 'igniteEventGroups', 'IgniteConfigurationGenerator', (JavaTypes, eventGroups, generator) => {
- return class SpringTransformer extends AbstractTransformer {
- static generator = generator;
-
- static commentBlock(sb, ...lines) {
- if (lines.length > 1) {
- sb.append('<!--');
-
- _.forEach(lines, (line) => sb.append(` ${line}`));
-
- sb.append('-->');
- }
- else
- sb.append(`<!-- ${_.head(lines)} -->`);
+export default class IgniteSpringTransformer extends AbstractTransformer {
+ static escapeXml(str) {
+ return str.replace(/&/g, '&')
+ .replace(/"/g, '"')
+ .replace(/'/g, ''')
+ .replace(/>/g, '>')
+ .replace(/</g, '<');
+ }
+
+ static commentBlock(sb, ...lines) {
+ if (lines.length > 1) {
+ sb.append('<!--');
+
+ _.forEach(lines, (line) => sb.append(` ${line}`));
+
+ sb.append('-->');
}
+ else
+ sb.append(`<!-- ${_.head(lines)} -->`);
+ }
- static appendBean(sb, bean, appendId) {
- const beanTags = [];
-
- if (appendId)
- beanTags.push(`id="${bean.id}"`);
-
- beanTags.push(`class="${bean.clsName}"`);
-
- if (bean.factoryMtd)
- beanTags.push(`factory-method="${bean.factoryMtd}"`);
-
- sb.startBlock(`<bean ${beanTags.join(' ')}>`);
-
- _.forEach(bean.arguments, (arg) => {
- if (arg.clsName === 'MAP') {
- sb.startBlock('<constructor-arg>');
- this._constructMap(sb, arg);
- sb.endBlock('</constructor-arg>');
- }
- else if (_.isNil(arg.value)) {
- sb.startBlock('<constructor-arg>');
- sb.append('<null/>');
- sb.endBlock('</constructor-arg>');
- }
- else if (arg.constant) {
- sb.startBlock('<constructor-arg>');
- sb.append(`<util:constant static-field="${arg.clsName}.${arg.value}"/>`);
- sb.endBlock('</constructor-arg>');
- }
- else if (arg.clsName === 'BEAN') {
- sb.startBlock('<constructor-arg>');
- this.appendBean(sb, arg.value);
- sb.endBlock('</constructor-arg>');
- }
- else
- sb.append(`<constructor-arg value="${this._toObject(arg.clsName, arg.value)}"/>`);
- });
+ static appendBean(sb, bean, appendId) {
+ const beanTags = [];
- this._setProperties(sb, bean);
+ if (appendId)
+ beanTags.push(`id="${bean.id}"`);
- sb.endBlock('</bean>');
- }
+ beanTags.push(`class="${bean.clsName}"`);
- static _toObject(clsName, items) {
- return _.map(_.isArray(items) ? items : [items], (item) => {
- switch (clsName) {
- case 'PROPERTY':
- case 'PROPERTY_CHAR':
- case 'PROPERTY_INT':
- return `\${${item}}`;
- case 'java.lang.Class':
- return JavaTypes.fullClassName(item);
- case 'long':
- return `${item}L`;
- case 'java.lang.String':
- return escapeXml(item);
- default:
- return item;
- }
- });
- }
+ if (bean.factoryMtd)
+ beanTags.push(`factory-method="${bean.factoryMtd}"`);
- static _isBean(clsName) {
- return JavaTypes.nonBuiltInClass(clsName) && JavaTypes.nonEnum(clsName) && _.includes(clsName, '.');
- }
+ sb.startBlock(`<bean ${beanTags.join(' ')}>`);
- static _setCollection(sb, prop) {
- sb.startBlock(`<property name="${prop.name}">`);
- sb.startBlock('<list>');
+ _.forEach(bean.arguments, (arg) => {
+ if (arg.clsName === 'MAP') {
+ sb.startBlock('<constructor-arg>');
+ this._constructMap(sb, arg);
+ sb.endBlock('</constructor-arg>');
+ }
+ else if (_.isNil(arg.value)) {
+ sb.startBlock('<constructor-arg>');
+ sb.append('<null/>');
+ sb.endBlock('</constructor-arg>');
+ }
+ else if (arg.constant) {
+ sb.startBlock('<constructor-arg>');
+ sb.append(`<util:constant static-field="${arg.clsName}.${arg.value}"/>`);
+ sb.endBlock('</constructor-arg>');
+ }
+ else if (arg.clsName === 'BEAN') {
+ sb.startBlock('<constructor-arg>');
+ this.appendBean(sb, arg.value);
+ sb.endBlock('</constructor-arg>');
+ }
+ else
+ sb.append(`<constructor-arg value="${this._toObject(arg.clsName, arg.value)}"/>`);
+ });
+
+ this._setProperties(sb, bean);
+
+ sb.endBlock('</bean>');
+ }
+
+ static _toObject(clsName, items) {
+ return _.map(_.isArray(items) ? items : [items], (item) => {
+ switch (clsName) {
+ case 'PROPERTY':
+ case 'PROPERTY_CHAR':
+ case 'PROPERTY_INT':
+ return `\${${item}}`;
+ case 'java.lang.Class':
+ return this.javaTypes.fullClassName(item);
+ case 'long':
+ return `${item}L`;
+ case 'java.lang.String':
+ case 'PATH':
+ return this.escapeXml(item);
+ default:
+ return item;
+ }
+ });
+ }
- _.forEach(prop.items, (item, idx) => {
- if (this._isBean(prop.typeClsName)) {
- if (idx !== 0)
- sb.emptyLine();
+ static _isBean(clsName) {
+ return this.javaTypes.nonBuiltInClass(clsName) && this.javaTypes.nonEnum(clsName) && _.includes(clsName, '.');
+ }
- this.appendBean(sb, item);
- }
- else
- sb.append(`<value>${item}</value>`);
- });
+ static _setCollection(sb, prop) {
+ sb.startBlock(`<property name="${prop.name}">`);
+ sb.startBlock('<list>');
- sb.endBlock('</list>');
- sb.endBlock('</property>');
- }
+ _.forEach(prop.items, (item, idx) => {
+ if (this._isBean(prop.typeClsName)) {
+ if (idx !== 0)
+ sb.emptyLine();
- static _constructMap(sb, map) {
- sb.startBlock('<map>');
+ this.appendBean(sb, item);
+ }
+ else
+ sb.append(`<value>${item}</value>`);
+ });
- _.forEach(map.entries, (entry) => {
- const key = entry[map.keyField];
- const val = entry[map.valField];
+ sb.endBlock('</list>');
+ sb.endBlock('</property>');
+ }
- const isKeyBean = this._isBean(map.keyClsName);
- const isValBean = this._isBean(map.valClsName);
+ static _constructMap(sb, map) {
+ sb.startBlock('<map>');
+ _.forEach(map.entries, (entry) => {
+ const key = entry[map.keyField];
+ const val = entry[map.valField];
- if (isKeyBean || isValBean) {
- sb.startBlock('<entry>');
+ const isKeyBean = this._isBean(map.keyClsName);
+ const isValBean = this._isBean(map.valClsName);
- sb.startBlock('<key>');
- if (isKeyBean)
- this.appendBean(sb, key);
- else
- sb.append(this._toObject(map.keyClsName, key));
- sb.endBlock('</key>');
- sb.startBlock('<value>');
- if (isValBean)
- this.appendBean(sb, val);
- else
- sb.append(this._toObject(map.valClsName, val));
- sb.endBlock('</value>');
+ if (isKeyBean || isValBean) {
+ sb.startBlock('<entry>');
- sb.endBlock('</entry>');
- }
+ sb.startBlock('<key>');
+ if (isKeyBean)
+ this.appendBean(sb, key);
else
- sb.append(`<entry key="${this._toObject(map.keyClsName, key)}" value="${this._toObject(map.valClsName, val)}"/>`);
- });
+ sb.append(this._toObject(map.keyClsName, key));
+ sb.endBlock('</key>');
- sb.endBlock('</map>');
- }
+ sb.startBlock('<value>');
+ if (isValBean)
+ this.appendBean(sb, val);
+ else
+ sb.append(this._toObject(map.valClsName, val));
+ sb.endBlock('</value>');
- /**
- *
- * @param {StringBuilder} sb
- * @param {Bean} bean
- * @returns {StringBuilder}
- */
- static _setProperties(sb, bean) {
- _.forEach(bean.properties, (prop, idx) => {
- switch (prop.clsName) {
- case 'DATA_SOURCE':
- const valAttr = prop.name === 'dataSource' ? 'ref' : 'value';
+ sb.endBlock('</entry>');
+ }
+ else
+ sb.append(`<entry key="${this._toObject(map.keyClsName, key)}" value="${this._toObject(map.valClsName, val)}"/>`);
+ });
- sb.append(`<property name="${prop.name}" ${valAttr}="${prop.id}"/>`);
+ sb.endBlock('</map>');
+ }
- break;
- case 'EVENT_TYPES':
- sb.startBlock(`<property name="${prop.name}">`);
+ /**
+ *
+ * @param {StringBuilder} sb
+ * @param {Bean} bean
+ * @returns {StringBuilder}
+ */
+ static _setProperties(sb, bean) {
+ _.forEach(bean.properties, (prop, idx) => {
+ switch (prop.clsName) {
+ case 'DATA_SOURCE':
+ const valAttr = prop.name === 'dataSource' ? 'ref' : 'value';
- if (prop.eventTypes.length === 1) {
- const evtGrp = _.find(eventGroups, {value: _.head(prop.eventTypes)});
+ sb.append(`<property name="${prop.name}" ${valAttr}="${prop.id}"/>`);
- evtGrp && sb.append(`<util:constant static-field="${evtGrp.class}.${evtGrp.value}"/>`);
- }
- else {
- sb.startBlock('<list>');
+ break;
+ case 'EVENT_TYPES':
+ sb.startBlock(`<property name="${prop.name}">`);
- _.forEach(prop.eventTypes, (item, ix) => {
- ix > 0 && sb.emptyLine();
+ if (prop.eventTypes.length === 1) {
+ const evtGrp = _.find(this.eventGroups, {value: _.head(prop.eventTypes)});
- const evtGrp = _.find(eventGroups, {value: item});
+ evtGrp && sb.append(`<util:constant static-field="${evtGrp.class}.${evtGrp.value}"/>`);
+ }
+ else {
+ sb.startBlock('<list>');
- if (evtGrp) {
- sb.append(`<!-- EventType.${item} -->`);
+ _.forEach(prop.eventTypes, (item, ix) => {
+ ix > 0 && sb.emptyLine();
- _.forEach(evtGrp.events, (event) =>
- sb.append(`<util:constant static-field="${evtGrp.class}.${event}"/>`));
- }
- });
+ const evtGrp = _.find(this.eventGroups, {value: item});
- sb.endBlock('</list>');
- }
+ if (evtGrp) {
+ sb.append(`<!-- EventType.${item} -->`);
- sb.endBlock('</property>');
+ _.forEach(evtGrp.events, (event) =>
+ sb.append(`<util:constant static-field="${evtGrp.class}.${event}"/>`));
+ }
+ });
- break;
- case 'ARRAY':
- case 'COLLECTION':
- this._setCollection(sb, prop);
+ sb.endBlock('</list>');
+ }
- break;
- case 'MAP':
- sb.startBlock(`<property name="${prop.name}">`);
+ sb.endBlock('</property>');
- this._constructMap(sb, prop);
+ break;
+ case 'ARRAY':
+ case 'COLLECTION':
+ this._setCollection(sb, prop);
- sb.endBlock('</property>');
+ break;
+ case 'MAP':
+ sb.startBlock(`<property name="${prop.name}">`);
- break;
- case 'java.util.Properties':
- sb.startBlock(`<property name="${prop.name}">`);
- sb.startBlock('<props>');
+ this._constructMap(sb, prop);
- _.forEach(prop.entries, (entry) => {
- sb.append(`<prop key="${entry.name}">${entry.value}</prop>`);
- });
+ sb.endBlock('</property>');
- sb.endBlock('</props>');
- sb.endBlock('</property>');
+ break;
+ case 'java.util.Properties':
+ sb.startBlock(`<property name="${prop.name}">`);
+ sb.startBlock('<props>');
- break;
- case 'BEAN':
- sb.startBlock(`<property name="${prop.name}">`);
+ _.forEach(prop.entries, (entry) => {
+ sb.append(`<prop key="${entry.name}">${entry.value}</prop>`);
+ });
- this.appendBean(sb, prop.value);
+ sb.endBlock('</props>');
+ sb.endBlock('</property>');
- sb.endBlock('</property>');
+ break;
+ case 'BEAN':
+ sb.startBlock(`<property name="${prop.name}">`);
- break;
- default:
- sb.append(`<property name="${prop.name}" value="${this._toObject(prop.clsName, prop.value)}"/>`);
- }
+ this.appendBean(sb, prop.value);
- this._emptyLineIfNeeded(sb, bean.properties, idx);
- });
+ sb.endBlock('</property>');
- return sb;
- }
+ break;
+ default:
+ sb.append(`<property name="${prop.name}" value="${this._toObject(prop.clsName, prop.value)}"/>`);
+ }
- /**
- * Build final XML.
- *
- * @param {Bean} cfg Ignite configuration.
- * @param {Boolean} clientNearCaches
- * @returns {StringBuilder}
- */
- static igniteConfiguration(cfg, clientNearCaches) {
- const sb = new StringBuilder();
-
- // 0. Add header.
- sb.append('<?xml version="1.0" encoding="UTF-8"?>');
- sb.emptyLine();
+ this._emptyLineIfNeeded(sb, bean.properties, idx);
+ });
+
+ return sb;
+ }
+
+ /**
+ * Build final XML.
+ *
+ * @param {Bean} cfg Ignite configuration.
+ * @param {Boolean} clientNearCaches
+ * @returns {StringBuilder}
+ */
+ static igniteConfiguration(cfg, clientNearCaches) {
+ const sb = new StringBuilder();
+
+ // 0. Add header.
+ sb.append('<?xml version="1.0" encoding="UTF-8"?>');
+ sb.emptyLine();
+
+ this.mainComment(sb);
+ sb.emptyLine();
+
+ // 1. Start beans section.
+ sb.startBlock([
+ '<beans xmlns="http://www.springframework.org/schema/beans"',
+ ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"',
+ ' xmlns:util="http://www.springframework.org/schema/util"',
+ ' xsi:schemaLocation="http://www.springframework.org/schema/beans',
+ ' http://www.springframework.org/schema/beans/spring-beans.xsd',
+ ' http://www.springframework.org/schema/util',
+ ' http://www.springframework.org/schema/util/spring-util.xsd">']);
+
+ // 2. Add external property file
+ if (this.hasProperties(cfg)) {
+ this.commentBlock(sb, 'Load external properties file.');
+
+ sb.startBlock('<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">');
+ sb.append('<property name="location" value="classpath:secret.properties"/>');
+ sb.endBlock('</bean>');
- this.mainComment(sb);
sb.emptyLine();
+ }
- // 1. Start beans section.
- sb.startBlock([
- '<beans xmlns="http://www.springframework.org/schema/beans"',
- ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"',
- ' xmlns:util="http://www.springframework.org/schema/util"',
- ' xsi:schemaLocation="http://www.springframework.org/schema/beans',
- ' http://www.springframework.org/schema/beans/spring-beans.xsd',
- ' http://www.springframework.org/schema/util',
- ' http://www.springframework.org/schema/util/spring-util.xsd">']);
+ // 3. Add data sources.
+ const dataSources = this.collectDataSources(cfg);
- // 2. Add external property file
- if (this.hasProperties(cfg)) {
- this.commentBlock(sb, 'Load external properties file.');
+ if (dataSources.length) {
+ this.commentBlock(sb, 'Data source beans will be initialized from external properties file.');
- sb.startBlock('<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">');
- sb.append('<property name="location" value="classpath:secret.properties"/>');
- sb.endBlock('</bean>');
+ _.forEach(dataSources, (ds) => {
+ this.appendBean(sb, ds, true);
sb.emptyLine();
- }
-
- // 3. Add data sources.
- const dataSources = this.collectDataSources(cfg);
-
- if (dataSources.length) {
- this.commentBlock(sb, 'Data source beans will be initialized from external properties file.');
-
- _.forEach(dataSources, (ds) => {
- this.appendBean(sb, ds, true);
-
- sb.emptyLine();
- });
- }
+ });
+ }
- _.forEach(clientNearCaches, (cache) => {
- this.commentBlock(sb, 'Configuration of near cache for cache "' + cache.name + '"');
+ _.forEach(clientNearCaches, (cache) => {
+ this.commentBlock(sb, `Configuration of near cache for cache "${cache.name}"`);
- this.appendBean(sb, generator.cacheNearClient(cache), true);
+ this.appendBean(sb, this.generator.cacheNearClient(cache), true);
- sb.emptyLine();
- });
+ sb.emptyLine();
+ });
- // 3. Add main content.
- this.appendBean(sb, cfg);
+ // 3. Add main content.
+ this.appendBean(sb, cfg);
- // 4. Close beans section.
- sb.endBlock('</beans>');
+ // 4. Close beans section.
+ sb.endBlock('</beans>');
- return sb;
- }
+ return sb;
+ }
- static cluster(cluster, client) {
- const cfg = generator.igniteConfiguration(cluster, client);
+ static cluster(cluster, client) {
+ const cfg = this.generator.igniteConfiguration(cluster, client);
- const clientNearCaches = client ? _.filter(cluster.caches, (cache) => _.get(cache, 'clientNearConfiguration.enabled')) : [];
+ const clientNearCaches = client ? _.filter(cluster.caches, (cache) => _.get(cache, 'clientNearConfiguration.enabled')) : [];
- return this.igniteConfiguration(cfg, clientNearCaches);
- }
- };
-}];
+ return this.igniteConfiguration(cfg, clientNearCaches);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cache.platform.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cache.platform.service.js b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cache.platform.service.js
new file mode 100644
index 0000000..eeac3a0
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cache.platform.service.js
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import _ from 'lodash';
+
+const enumValueMapper = (val) => _.capitalize(val);
+
+const DFLT_CACHE = {
+ cacheMode: {
+ clsName: 'Apache.Ignite.Core.Cache.Configuration.CacheMode',
+ mapper: enumValueMapper
+ },
+ atomicityMode: {
+ clsName: 'Apache.Ignite.Core.Cache.Configuration.CacheAtomicityMode',
+ mapper: enumValueMapper
+ },
+ memoryMode: {
+ clsName: 'Apache.Ignite.Core.Cache.Configuration.CacheMemoryMode',
+ value: 'ONHEAP_TIERED',
+ mapper: enumValueMapper
+ },
+ atomicWriteOrderMode: {
+ clsName: 'org.apache.ignite.cache.CacheAtomicWriteOrderMode',
+ mapper: enumValueMapper
+ },
+ writeSynchronizationMode: {
+ clsName: 'org.apache.ignite.cache.CacheWriteSynchronizationMode',
+ value: 'PRIMARY_SYNC',
+ mapper: enumValueMapper
+ },
+ rebalanceMode: {
+ clsName: 'org.apache.ignite.cache.CacheRebalanceMode',
+ value: 'ASYNC',
+ mapper: enumValueMapper
+ }
+};
+
+export default class IgniteCachePlatformDefaults {
+ constructor() {
+ Object.assign(this, DFLT_CACHE);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cache.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cache.service.js b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cache.service.js
new file mode 100644
index 0000000..14b315f
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cache.service.js
@@ -0,0 +1,131 @@
+/*
+ * 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.
+ */
+
+const DFLT_CACHE = {
+ cacheMode: {
+ clsName: 'org.apache.ignite.cache.CacheMode'
+ },
+ atomicityMode: {
+ clsName: 'org.apache.ignite.cache.CacheAtomicityMode'
+ },
+ memoryMode: {
+ clsName: 'org.apache.ignite.cache.CacheMemoryMode',
+ value: 'ONHEAP_TIERED'
+ },
+ offHeapMaxMemory: -1,
+ startSize: 1500000,
+ swapEnabled: false,
+ sqlOnheapRowCacheSize: 10240,
+ longQueryWarningTimeout: 3000,
+ snapshotableIndex: false,
+ sqlEscapeAll: false,
+ storeKeepBinary: false,
+ loadPreviousValue: false,
+ cacheStoreFactory: {
+ CacheJdbcPojoStoreFactory: {
+ batchSize: 512,
+ maximumWriteAttempts: 2,
+ parallelLoadCacheMinimumThreshold: 512,
+ sqlEscapeAll: false
+ }
+ },
+ readThrough: false,
+ writeThrough: false,
+ writeBehindEnabled: false,
+ writeBehindBatchSize: 512,
+ writeBehindFlushSize: 10240,
+ writeBehindFlushFrequency: 5000,
+ writeBehindFlushThreadCount: 1,
+ maxConcurrentAsyncOperations: 500,
+ defaultLockTimeout: 0,
+ atomicWriteOrderMode: {
+ clsName: 'org.apache.ignite.cache.CacheAtomicWriteOrderMode'
+ },
+ writeSynchronizationMode: {
+ clsName: 'org.apache.ignite.cache.CacheWriteSynchronizationMode',
+ value: 'PRIMARY_SYNC'
+ },
+ rebalanceMode: {
+ clsName: 'org.apache.ignite.cache.CacheRebalanceMode',
+ value: 'ASYNC'
+ },
+ rebalanceThreadPoolSize: 1,
+ rebalanceBatchSize: 524288,
+ rebalanceBatchesPrefetchCount: 2,
+ rebalanceOrder: 0,
+ rebalanceDelay: 0,
+ rebalanceTimeout: 10000,
+ rebalanceThrottle: 0,
+ statisticsEnabled: false,
+ managementEnabled: false,
+ nearConfiguration: {
+ nearStartSize: 375000
+ },
+ clientNearConfiguration: {
+ nearStartSize: 375000
+ },
+ evictionPolicy: {
+ LRU: {
+ batchSize: 1,
+ maxSize: 100000
+ },
+ FIFO: {
+ batchSize: 1,
+ maxSize: 100000
+ },
+ SORTED: {
+ batchSize: 1,
+ maxSize: 100000
+ }
+ },
+ queryMetadata: 'Configuration',
+ fields: {
+ keyClsName: 'java.lang.String',
+ valClsName: 'java.lang.String',
+ valField: 'className',
+ entries: []
+ },
+ aliases: {
+ keyClsName: 'java.lang.String',
+ valClsName: 'java.lang.String',
+ keyField: 'field',
+ valField: 'alias',
+ entries: []
+ },
+ indexes: {
+ indexType: {
+ clsName: 'org.apache.ignite.cache.QueryIndexType'
+ },
+ fields: {
+ keyClsName: 'java.lang.String',
+ valClsName: 'java.lang.Boolean',
+ valField: 'direction',
+ entries: []
+ }
+ },
+ typeField: {
+ databaseFieldType: {
+ clsName: 'java.sql.Types'
+ }
+ }
+};
+
+export default class IgniteCacheDefaults {
+ constructor() {
+ Object.assign(this, DFLT_CACHE);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cluster.platform.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cluster.platform.service.js b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cluster.platform.service.js
new file mode 100644
index 0000000..b701951
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cluster.platform.service.js
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+
+const enumValueMapper = (val) => _.capitalize(val);
+
+const DFLT_CLUSTER = {
+ atomics: {
+ cacheMode: {
+ clsName: 'Apache.Ignite.Core.Cache.Configuration.CacheMode',
+ mapper: enumValueMapper
+ }
+ },
+ transactionConfiguration: {
+ defaultTxConcurrency: {
+ clsName: 'Apache.Ignite.Core.Transactions.TransactionConcurrency',
+ mapper: enumValueMapper
+ },
+ defaultTxIsolation: {
+ clsName: 'Apache.Ignite.Core.Transactions.TransactionIsolation',
+ mapper: enumValueMapper
+ }
+ }
+};
+
+export default class IgniteClusterPlatformDefaults {
+ constructor() {
+ Object.assign(this, DFLT_CLUSTER);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cluster.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cluster.service.js b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cluster.service.js
new file mode 100644
index 0000000..6333ef9
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Cluster.service.js
@@ -0,0 +1,289 @@
+/*
+ * 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.
+ */
+
+const DFLT_CLUSTER = {
+ localHost: '0.0.0.0',
+ discovery: {
+ localPort: 47500,
+ localPortRange: 100,
+ socketTimeout: 5000,
+ ackTimeout: 5000,
+ maxAckTimeout: 600000,
+ networkTimeout: 5000,
+ joinTimeout: 0,
+ threadPriority: 10,
+ heartbeatFrequency: 2000,
+ maxMissedHeartbeats: 1,
+ maxMissedClientHeartbeats: 5,
+ topHistorySize: 1000,
+ reconnectCount: 10,
+ statisticsPrintFrequency: 0,
+ ipFinderCleanFrequency: 60000,
+ forceServerMode: false,
+ clientReconnectDisabled: false,
+ Multicast: {
+ multicastGroup: '228.1.2.4',
+ multicastPort: 47400,
+ responseWaitTime: 500,
+ addressRequestAttempts: 2,
+ localAddress: '0.0.0.0'
+ },
+ Jdbc: {
+ initSchema: false
+ },
+ SharedFs: {
+ path: 'disco/tcp'
+ },
+ ZooKeeper: {
+ basePath: '/services',
+ serviceName: 'ignite',
+ allowDuplicateRegistrations: false,
+ ExponentialBackoff: {
+ baseSleepTimeMs: 1000,
+ maxRetries: 10
+ },
+ BoundedExponentialBackoffRetry: {
+ baseSleepTimeMs: 1000,
+ maxSleepTimeMs: 2147483647,
+ maxRetries: 10
+ },
+ UntilElapsed: {
+ maxElapsedTimeMs: 60000,
+ sleepMsBetweenRetries: 1000
+ },
+ RetryNTimes: {
+ n: 10,
+ sleepMsBetweenRetries: 1000
+ },
+ OneTime: {
+ sleepMsBetweenRetry: 1000
+ },
+ Forever: {
+ retryIntervalMs: 1000
+ }
+ }
+ },
+ atomics: {
+ atomicSequenceReserveSize: 1000,
+ backups: 0,
+ cacheMode: {
+ clsName: 'org.apache.ignite.cache.CacheMode',
+ value: 'PARTITIONED'
+ }
+ },
+ binary: {
+ compactFooter: true,
+ typeConfigurations: {
+ enum: false
+ }
+ },
+ collision: {
+ kind: null,
+ JobStealing: {
+ activeJobsThreshold: 95,
+ waitJobsThreshold: 0,
+ messageExpireTime: 1000,
+ maximumStealingAttempts: 5,
+ stealingEnabled: true,
+ stealingAttributes: {
+ keyClsName: 'java.lang.String',
+ valClsName: 'java.io.Serializable',
+ items: []
+ }
+ },
+ PriorityQueue: {
+ priorityAttributeKey: 'grid.task.priority',
+ jobPriorityAttributeKey: 'grid.job.priority',
+ defaultPriority: 0,
+ starvationIncrement: 1,
+ starvationPreventionEnabled: true
+ }
+ },
+ communication: {
+ localPort: 47100,
+ localPortRange: 100,
+ sharedMemoryPort: 48100,
+ directBuffer: false,
+ directSendBuffer: false,
+ idleConnectionTimeout: 30000,
+ connectTimeout: 5000,
+ maxConnectTimeout: 600000,
+ reconnectCount: 10,
+ socketSendBuffer: 32768,
+ socketReceiveBuffer: 32768,
+ messageQueueLimit: 1024,
+ tcpNoDelay: true,
+ ackSendThreshold: 16,
+ unacknowledgedMessagesBufferSize: 0,
+ socketWriteTimeout: 2000
+ },
+ networkTimeout: 5000,
+ networkSendRetryDelay: 1000,
+ networkSendRetryCount: 3,
+ discoveryStartupDelay: 60000,
+ connector: {
+ port: 11211,
+ portRange: 100,
+ idleTimeout: 7000,
+ idleQueryCursorTimeout: 600000,
+ idleQueryCursorCheckFrequency: 60000,
+ receiveBufferSize: 32768,
+ sendBufferSize: 32768,
+ sendQueueLimit: 0,
+ directBuffer: false,
+ noDelay: true,
+ sslEnabled: false,
+ sslClientAuth: false
+ },
+ deploymentMode: {
+ clsName: 'org.apache.ignite.configuration.DeploymentMode',
+ value: 'SHARED'
+ },
+ peerClassLoadingEnabled: false,
+ peerClassLoadingMissedResourcesCacheSize: 100,
+ peerClassLoadingThreadPoolSize: 2,
+ failoverSpi: {
+ JobStealing: {
+ maximumFailoverAttempts: 5
+ },
+ Always: {
+ maximumFailoverAttempts: 5
+ }
+ },
+ logger: {
+ Log4j: {
+ level: {
+ clsName: 'org.apache.log4j.Level'
+ }
+ },
+ Log4j2: {
+ level: {
+ clsName: 'org.apache.logging.log4j.Level'
+ }
+ }
+ },
+ marshalLocalJobs: false,
+ marshallerCacheKeepAliveTime: 10000,
+ metricsHistorySize: 10000,
+ metricsLogFrequency: 60000,
+ metricsUpdateFrequency: 2000,
+ clockSyncSamples: 8,
+ clockSyncFrequency: 120000,
+ timeServerPortBase: 31100,
+ timeServerPortRange: 100,
+ transactionConfiguration: {
+ defaultTxConcurrency: {
+ clsName: 'org.apache.ignite.transactions.TransactionConcurrency',
+ value: 'PESSIMISTIC'
+ },
+ defaultTxIsolation: {
+ clsName: 'org.apache.ignite.transactions.TransactionIsolation',
+ value: 'REPEATABLE_READ'
+ },
+ defaultTxTimeout: 0,
+ pessimisticTxLogLinger: 10000
+ },
+ attributes: {
+ keyClsName: 'java.lang.String',
+ valClsName: 'java.lang.String',
+ items: []
+ },
+ odbcConfiguration: {
+ endpointAddress: '0.0.0.0:10800..10810',
+ maxOpenCursors: 128
+ },
+ eventStorage: {
+ Memory: {
+ expireCount: 10000
+ }
+ },
+ checkpointSpi: {
+ S3: {
+ bucketNameSuffix: 'default-bucket',
+ clientConfiguration: {
+ protocol: {
+ clsName: 'com.amazonaws.Protocol',
+ value: 'HTTPS'
+ },
+ maxConnections: 50,
+ retryPolicy: {
+ retryCondition: {
+ clsName: 'com.amazonaws.retry.PredefinedRetryPolicies'
+ },
+ backoffStrategy: {
+ clsName: 'com.amazonaws.retry.PredefinedRetryPolicies'
+ },
+ maxErrorRetry: {
+ clsName: 'com.amazonaws.retry.PredefinedRetryPolicies'
+ }
+ },
+ maxErrorRetry: -1,
+ socketTimeout: 50000,
+ connectionTimeout: 50000,
+ requestTimeout: 0,
+ socketSendBufferSizeHints: 0,
+ connectionTTL: -1,
+ connectionMaxIdleMillis: 60000,
+ responseMetadataCacheSize: 50,
+ useReaper: true,
+ useGzip: false,
+ preemptiveBasicProxyAuth: false,
+ useTcpKeepAlive: false
+ }
+ },
+ JDBC: {
+ checkpointTableName: 'CHECKPOINTS',
+ keyFieldName: 'NAME',
+ keyFieldType: 'VARCHAR',
+ valueFieldName: 'VALUE',
+ valueFieldType: 'BLOB',
+ expireDateFieldName: 'EXPIRE_DATE',
+ expireDateFieldType: 'DATETIME',
+ numberOfRetries: 2
+ }
+ },
+ loadBalancingSpi: {
+ RoundRobin: {
+ perTask: false
+ },
+ Adaptive: {
+ loadProbe: {
+ Job: {
+ useAverage: true
+ },
+ CPU: {
+ useAverage: true,
+ useProcessors: true,
+ processorCoefficient: 1
+ },
+ ProcessingTime: {
+ useAverage: true
+ }
+ }
+ },
+ WeightedRandom: {
+ nodeWeight: 10,
+ useWeights: false
+ }
+ }
+};
+
+export default class IgniteClusterDefaults {
+ constructor() {
+ Object.assign(this, DFLT_CLUSTER);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Event-groups.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/defaults/Event-groups.service.js b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Event-groups.service.js
new file mode 100644
index 0000000..315da1f
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/configuration/generator/defaults/Event-groups.service.js
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import _ from 'lodash';
+
+// Events groups.
+import EVENT_GROUPS from 'app/data/event-groups.json';
+
+export default class IgniteEventGroups {
+ constructor() {
+ return _.clone(EVENT_GROUPS);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/defaults/IGFS.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/defaults/IGFS.service.js b/modules/web-console/frontend/app/modules/configuration/generator/defaults/IGFS.service.js
new file mode 100644
index 0000000..985a56e
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/configuration/generator/defaults/IGFS.service.js
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+
+const DFLT_IGFS = {
+ defaultMode: {
+ clsName: 'org.apache.ignite.igfs.IgfsMode',
+ value: 'DUAL_ASYNC'
+ },
+ secondaryFileSystem: {
+
+ },
+ ipcEndpointConfiguration: {
+ type: {
+ clsName: 'org.apache.ignite.igfs.IgfsIpcEndpointType'
+ },
+ host: '127.0.0.1',
+ port: 10500,
+ memorySize: 262144,
+ tokenDirectoryPath: 'ipc/shmem'
+ },
+ fragmentizerConcurrentFiles: 0,
+ fragmentizerThrottlingBlockLength: 16777216,
+ fragmentizerThrottlingDelay: 200,
+ dualModeMaxPendingPutsSize: 0,
+ dualModePutExecutorServiceShutdown: false,
+ blockSize: 65536,
+ streamBufferSize: 65536,
+ maxSpaceSize: 0,
+ maximumTaskRangeLength: 0,
+ managementPort: 11400,
+ perNodeBatchSize: 100,
+ perNodeParallelBatchCount: 8,
+ prefetchBlocks: 0,
+ sequentialReadsBeforePrefetch: 0,
+ trashPurgeTimeout: 1000,
+ colocateMetadata: true,
+ relaxedConsistency: true,
+ pathModes: {
+ keyClsName: 'java.lang.String',
+ keyField: 'path',
+ valClsName: 'org.apache.ignite.igfs.IgfsMode',
+ valField: 'mode'
+ }
+};
+
+export default class IgniteIGFSDefaults {
+ constructor() {
+ Object.assign(this, DFLT_IGFS);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/defaults/cache.platform.provider.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/defaults/cache.platform.provider.js b/modules/web-console/frontend/app/modules/configuration/generator/defaults/cache.platform.provider.js
deleted file mode 100644
index f06e11b..0000000
--- a/modules/web-console/frontend/app/modules/configuration/generator/defaults/cache.platform.provider.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import _ from 'lodash';
-
-const enumValueMapper = (val) => _.capitalize(val);
-
-const DFLT_CACHE = {
- cacheMode: {
- clsName: 'Apache.Ignite.Core.Cache.Configuration.CacheMode',
- mapper: enumValueMapper
- },
- atomicityMode: {
- clsName: 'Apache.Ignite.Core.Cache.Configuration.CacheAtomicityMode',
- mapper: enumValueMapper
- },
- memoryMode: {
- clsName: 'Apache.Ignite.Core.Cache.Configuration.CacheMemoryMode',
- value: 'ONHEAP_TIERED',
- mapper: enumValueMapper
- },
- atomicWriteOrderMode: {
- clsName: 'org.apache.ignite.cache.CacheAtomicWriteOrderMode',
- mapper: enumValueMapper
- },
- writeSynchronizationMode: {
- clsName: 'org.apache.ignite.cache.CacheWriteSynchronizationMode',
- value: 'PRIMARY_SYNC',
- mapper: enumValueMapper
- },
- rebalanceMode: {
- clsName: 'org.apache.ignite.cache.CacheRebalanceMode',
- value: 'ASYNC',
- mapper: enumValueMapper
- }
-};
-
-export default function() {
- this.append = (dflts) => {
- _.merge(DFLT_CACHE, dflts);
- };
-
- this.$get = ['igniteCacheDefaults', (cacheDefaults) => {
- return _.merge({}, cacheDefaults, DFLT_CACHE);
- }];
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/defaults/cache.provider.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/defaults/cache.provider.js b/modules/web-console/frontend/app/modules/configuration/generator/defaults/cache.provider.js
deleted file mode 100644
index f50e493..0000000
--- a/modules/web-console/frontend/app/modules/configuration/generator/defaults/cache.provider.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import _ from 'lodash';
-
-const DFLT_CACHE = {
- cacheMode: {
- clsName: 'org.apache.ignite.cache.CacheMode'
- },
- atomicityMode: {
- clsName: 'org.apache.ignite.cache.CacheAtomicityMode'
- },
- memoryMode: {
- clsName: 'org.apache.ignite.cache.CacheMemoryMode',
- value: 'ONHEAP_TIERED'
- },
- offHeapMaxMemory: -1,
- startSize: 1500000,
- swapEnabled: false,
- sqlOnheapRowCacheSize: 10240,
- longQueryWarningTimeout: 3000,
- snapshotableIndex: false,
- sqlEscapeAll: false,
- storeKeepBinary: false,
- loadPreviousValue: false,
- cacheStoreFactory: {
- CacheJdbcPojoStoreFactory: {
- batchSize: 512,
- maximumWriteAttempts: 2,
- parallelLoadCacheMinimumThreshold: 512,
- sqlEscapeAll: false
- }
- },
- readThrough: false,
- writeThrough: false,
- writeBehindEnabled: false,
- writeBehindBatchSize: 512,
- writeBehindFlushSize: 10240,
- writeBehindFlushFrequency: 5000,
- writeBehindFlushThreadCount: 1,
- maxConcurrentAsyncOperations: 500,
- defaultLockTimeout: 0,
- atomicWriteOrderMode: {
- clsName: 'org.apache.ignite.cache.CacheAtomicWriteOrderMode'
- },
- writeSynchronizationMode: {
- clsName: 'org.apache.ignite.cache.CacheWriteSynchronizationMode',
- value: 'PRIMARY_SYNC'
- },
- rebalanceMode: {
- clsName: 'org.apache.ignite.cache.CacheRebalanceMode',
- value: 'ASYNC'
- },
- rebalanceThreadPoolSize: 1,
- rebalanceBatchSize: 524288,
- rebalanceBatchesPrefetchCount: 2,
- rebalanceOrder: 0,
- rebalanceDelay: 0,
- rebalanceTimeout: 10000,
- rebalanceThrottle: 0,
- statisticsEnabled: false,
- managementEnabled: false,
- nearConfiguration: {
- nearStartSize: 375000
- },
- clientNearConfiguration: {
- nearStartSize: 375000
- },
- evictionPolicy: {
- LRU: {
- batchSize: 1,
- maxSize: 100000
- },
- FIFO: {
- batchSize: 1,
- maxSize: 100000
- },
- SORTED: {
- batchSize: 1,
- maxSize: 100000
- }
- },
- queryMetadata: 'Configuration',
- fields: {
- keyClsName: 'java.lang.String',
- valClsName: 'java.lang.String',
- valField: 'className',
- entries: []
- },
- aliases: {
- keyClsName: 'java.lang.String',
- valClsName: 'java.lang.String',
- keyField: 'field',
- valField: 'alias',
- entries: []
- },
- indexes: {
- indexType: {
- clsName: 'org.apache.ignite.cache.QueryIndexType'
- },
- fields: {
- keyClsName: 'java.lang.String',
- valClsName: 'java.lang.Boolean',
- valField: 'direction',
- entries: []
- }
- },
- typeField: {
- databaseFieldType: {
- clsName: 'java.sql.Types'
- }
- }
-};
-
-export default function() {
- this.append = (dflts) => {
- _.merge(DFLT_CACHE, dflts);
- };
-
- this.$get = [() => {
- return DFLT_CACHE;
- }];
-}