You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/12/10 09:43:31 UTC
ignite git commit: IGNITE-2068 Generate caches in separate methods.
Repository: ignite
Updated Branches:
refs/heads/ignite-843-rc2 e8cdae5e4 -> 478b984cb
IGNITE-2068 Generate caches in separate methods.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/478b984c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/478b984c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/478b984c
Branch: refs/heads/ignite-843-rc2
Commit: 478b984cbfabfe934dd94118377ac91a1c00a639
Parents: e8cdae5
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Dec 10 15:44:18 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Dec 10 15:44:18 2015 +0700
----------------------------------------------------------------------
.../js/helpers/generator/generator-common.js | 17 ++-
.../main/js/helpers/generator/generator-java.js | 151 ++++++++++++++-----
2 files changed, 129 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/478b984c/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-common.js b/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
index 1030956..8e1453c 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-common.js
@@ -441,6 +441,21 @@ $generatorCommon.IGFS_IPC_CONFIGURATION = {
}
};
+// Check that cache has datasource.
+$generatorCommon.cacheHasDatasource = function (cache) {
+ if (cache.cacheStoreFactory && cache.cacheStoreFactory.kind) {
+ var factoryKind = cache.cacheStoreFactory.kind;
+
+ var storeFactory = cache.cacheStoreFactory[factoryKind];
+
+ if (storeFactory && storeFactory.dialect) {
+ return true;
+ }
+ }
+
+ return false;
+};
+
$generatorCommon.loadOfPropertiesNeeded = function (cluster, res) {
- return res.datasources.length > 0 || cluster.sslEnabled;
+ return $commonUtils.isDefined(_.find(cluster.caches, $generatorCommon.cacheHasDatasource)) || cluster.sslEnabled;
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/478b984c/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
index 00bf120..e5e0b06 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-java.js
@@ -1312,13 +1312,13 @@ $generatorJava.clusterMetadatas = function (caches, res) {
var type = $generatorJava.extractType(meta.valueType);
if ($commonUtils.isDefinedAndNotEmpty(meta.databaseTable)) {
- res.line("/**");
- res.line(" * Create JDBC type for " + type + ".");
- res.line(" *");
- res.line(" * @param cacheName Cache name.");
- res.line(" * @return Configured JDBC type.");
- res.line(" */");
- res.startBlock("private static JdbcType jdbcType" + type + "(String cacheName) {");
+ res.line('/**');
+ res.line(' * Create JDBC type for ' + type + '.');
+ res.line(' *');
+ res.line(' * @param cacheName Cache name.');
+ res.line(' * @return Configured JDBC type.');
+ res.line(' */');
+ res.startBlock('private static JdbcType jdbcType' + type + '(String cacheName) {');
$generatorJava.declareVariable(res, typeVarName, 'org.apache.ignite.cache.store.jdbc.JdbcType');
@@ -1331,18 +1331,18 @@ $generatorJava.clusterMetadatas = function (caches, res) {
res.needEmptyLine = true;
res.line('return ' + typeVarName + ';');
- res.endBlock("}");
+ res.endBlock('}');
res.needEmptyLine = true;
}
if ($commonUtils.isDefinedAndNotEmpty(meta.fields)) {
- res.line("/**");
- res.line(" * Create SQL Query descriptor for " + type + ".");
- res.line(" *");
- res.line(" * @return Configured query entity.");
- res.line(" */");
- res.startBlock("private static QueryEntity queryEntity" + type + "() {");
+ res.line('/**');
+ res.line(' * Create SQL Query descriptor for ' + type + '.');
+ res.line(' *');
+ res.line(' * @return Configured query entity.');
+ res.line(' */');
+ res.startBlock('private static QueryEntity queryEntity' + type + '() {');
$generatorJava.declareVariable(res, metaVarName, 'org.apache.ignite.cache.QueryEntity');
@@ -1358,7 +1358,7 @@ $generatorJava.clusterMetadatas = function (caches, res) {
res.needEmptyLine = true;
- res.endBlock("}");
+ res.endBlock('}');
}
metadatas.push(meta.valueType);
@@ -1367,17 +1367,49 @@ $generatorJava.clusterMetadatas = function (caches, res) {
});
};
+// Generate next available cache variable name.
+$generatorJava.cacheVariableName = function (cache, names) {
+ var checkIndexedCacheName = function (name) {
+ return name === cacheName + (ix === 0 ? '' : '_' + ix);
+ };
+
+ var cacheName = $commonUtils.toJavaName('cache', cache.name);
+
+ var ix = 0;
+
+ while (_.find(names, checkIndexedCacheName)) {
+ ix ++;
+ }
+
+ if (ix > 0)
+ cacheName = cacheName + '_' + ix;
+
+ return cacheName;
+};
+
// Generate cluster caches.
$generatorJava.clusterCaches = function (caches, igfss, res) {
function clusterCache(res, cache, names) {
res.emptyLineIfNeeded();
- var cacheName = $commonUtils.toJavaName('cache', cache.name);
+ var cacheName = $generatorJava.cacheVariableName(cache, names);
+
+ $generatorJava.resetVariables(res);
+
+ res.line('/**');
+ res.line(' * Create cache configuration for cache "' + cache.name + '".');
+ res.line(' *');
+ res.line(' * @return Configured cache.');
+ res.line(' */');
+ res.startBlock('public static CacheConfiguration ' + cacheName + '(' + ($generatorCommon.cacheHasDatasource(cache) ? 'Properties props' : '') + ') {');
$generatorJava.declareVariable(res, cacheName, 'org.apache.ignite.configuration.CacheConfiguration');
$generatorJava.cache(cache, cacheName, res);
+ res.line('return ' + cacheName + ';');
+ res.endBlock('}');
+
names.push(cacheName);
res.needEmptyLine = true;
@@ -1409,6 +1441,29 @@ $generatorJava.clusterCaches = function (caches, igfss, res) {
res.needEmptyLine = true;
}
+ return res;
+};
+
+// Generate cluster caches.
+$generatorJava.clusterCacheUse = function (caches, igfss, res) {
+ function clusterCacheInvoke(res, cache, names) {
+ names.push($generatorJava.cacheVariableName(cache, names) + '(' + ($generatorCommon.cacheHasDatasource(cache) ? 'props' : '') + ')');
+ }
+
+ if (!res)
+ res = $generatorCommon.builder();
+
+ var names = [];
+
+ _.forEach(caches, function (cache) {
+ clusterCacheInvoke(res, cache, names);
+ });
+
+ _.forEach(igfss, function (igfs) {
+ clusterCacheInvoke(res, $generatorCommon.igfsDataCache(igfs), names);
+ clusterCacheInvoke(res, $generatorCommon.igfsMetaCache(igfs), names);
+ });
+
if (names.length > 0) {
res.line('cfg.setCacheConfiguration(' + names.join(', ') + ');');
@@ -1538,7 +1593,7 @@ $generatorJava.javaClassCode = function (meta, key, pkg, useConstructor, include
// Generate equals() method.
res.line('/** {@inheritDoc} */');
res.startBlock('@Override public boolean equals(Object o) {');
- res.startBlock('if (this === o)');
+ res.startBlock('if (this == o)');
res.line('return true;');
res.endBlock();
res.append('');
@@ -1556,7 +1611,7 @@ $generatorJava.javaClassCode = function (meta, key, pkg, useConstructor, include
var javaName = field.javaFieldName;
- res.startBlock('if (' + javaName + ' !== null ? !' + javaName + '.equals(that.' + javaName + ') : that.' + javaName + ' !== null)');
+ res.startBlock('if (' + javaName + ' != null ? !' + javaName + '.equals(that.' + javaName + ') : that.' + javaName + ' != null)');
res.line('return false;');
res.endBlock();
@@ -1581,8 +1636,8 @@ $generatorJava.javaClassCode = function (meta, key, pkg, useConstructor, include
if (!first)
res.needEmptyLine = true;
- res.line(first ? 'int res = ' + javaName + ' !== null ? ' + javaName + '.hashCode() : 0;'
- : 'res = 31 * res + (' + javaName + ' !== null ? ' + javaName + '.hashCode() : 0);');
+ res.line(first ? 'int res = ' + javaName + ' != null ? ' + javaName + '.hashCode() : 0;'
+ : 'res = 31 * res + (' + javaName + ' != null ? ' + javaName + '.hashCode() : 0);');
first = false;
});
@@ -1935,13 +1990,35 @@ $generatorJava.clusterConfiguration = function (cluster, clientNearCfg, res) {
$generatorJava.clusterTransactions(cluster, res);
- $generatorJava.clusterCaches(cluster.caches, cluster.igfss, res);
+ if (!$commonUtils.isDefined(clientNearCfg))
+ $generatorJava.clusterCacheUse(cluster.caches, cluster.igfss, res);
$generatorJava.clusterSsl(cluster, res);
return $generatorJava.igfss(cluster.igfss, 'cfg', res);
};
+// Generate loading of secret properties file.
+$generatorJava.loadSecretProperties = function (cluster, res) {
+ if ($generatorCommon.loadOfPropertiesNeeded(cluster, res)) {
+ res.importClass('org.apache.ignite.configuration.IgniteConfiguration');
+
+ $generatorJava.declareVariableCustom(res, 'res', 'java.net.URL', 'IgniteConfiguration.class.getResource("/secret.properties")');
+
+ $generatorJava.declareVariableCustom(res, 'propsFile', 'java.io.File', 'new File(res.toURI())');
+
+ $generatorJava.declareVariable(res, 'props', 'java.util.Properties');
+
+ res.needEmptyLine = true;
+
+ res.startBlock('try (' + res.importClass('java.io.InputStream') + ' in = new ' + res.importClass('java.io.FileInputStream') + '(propsFile)) {');
+ res.line('props.load(in);');
+ res.endBlock('}');
+
+ res.needEmptyLine = true;
+ }
+};
+
/**
* Function to generate java code for cluster configuration.
*
@@ -1972,21 +2049,7 @@ $generatorJava.cluster = function (cluster, pkg, javaClass, clientNearCfg) {
res.startBlock('public static IgniteConfiguration createConfiguration() throws Exception {');
}
- if ($generatorCommon.loadOfPropertiesNeeded(cluster, res)) {
- $generatorJava.declareVariableCustom(res, 'res', 'java.net.URL', 'IgniteConfiguration.class.getResource("/secret.properties")');
-
- $generatorJava.declareVariableCustom(res, 'propsFile', 'java.io.File', 'new File(res.toURI())');
-
- $generatorJava.declareVariable(res, 'props', 'java.util.Properties');
-
- res.needEmptyLine = true;
-
- res.startBlock('try (' + res.importClass('java.io.InputStream') + ' in = new ' + res.importClass('java.io.FileInputStream') + '(propsFile)) {');
- res.line('props.load(in);');
- res.endBlock('}');
-
- res.needEmptyLine = true;
- }
+ $generatorJava.loadSecretProperties(cluster, res);
res.mergeLines(resCfg);
@@ -2000,6 +2063,8 @@ $generatorJava.cluster = function (cluster, pkg, javaClass, clientNearCfg) {
$generatorJava.clusterMetadatas(cluster.caches, res);
+ $generatorJava.clusterCaches(cluster.caches, cluster.igfss, res);
+
res.needEmptyLine = true;
}
@@ -2079,9 +2144,19 @@ $generatorJava.nodeStartup = function (cluster, pkg, cls, cfg, factoryCls, clien
res.needEmptyLine = true;
if ($commonUtils.isDefinedAndNotEmpty(cluster.caches)) {
+ $generatorJava.loadSecretProperties(cluster, res);
+
res.line('// Example of near cache creation on client node.');
- res.line('ignite.getOrCreateNearCache("' + cluster.caches[0].name + '", ' +
- res.importClass(factoryCls) + '.createNearCacheConfiguration());');
+
+ var names = [];
+
+ _.forEach(cluster.caches, function (cache) {
+ $generatorJava.cacheVariableName(cache, names);
+
+ res.line('ignite.getOrCreateCache(' + res.importClass(factoryCls) + '.' + $generatorJava.cacheVariableName(cache, names[names.length - 1]) +
+ '(' + ($generatorCommon.cacheHasDatasource(cache) ? 'props' : '') + '), ' +
+ res.importClass(factoryCls) + '.createNearCacheConfiguration());');
+ });
res.needEmptyLine = true;
}