You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/10/30 11:36:46 UTC
ignite git commit: IGNITE-1806 WIP rework UI and code generation to
new store API.
Repository: ignite
Updated Branches:
refs/heads/ignite-843-rc1 3523917dd -> 12d5b16dd
IGNITE-1806 WIP rework UI and code generation to new store API.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/12d5b16d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/12d5b16d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/12d5b16d
Branch: refs/heads/ignite-843-rc1
Commit: 12d5b16dd72e1d34d45359449cfaedbbcf462fb5
Parents: 3523917
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Fri Oct 30 17:36:52 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Oct 30 17:36:52 2015 +0700
----------------------------------------------------------------------
.../main/js/controllers/metadata-controller.js | 2 +-
.../main/js/controllers/models/metadata.json | 9 +
modules/control-center-web/src/main/js/db.js | 1 +
.../js/routes/generator/generator-common.js | 5 +-
.../main/js/routes/generator/generator-java.js | 271 +++++++++++--------
.../main/js/routes/generator/generator-xml.js | 109 ++++----
6 files changed, 226 insertions(+), 171 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/12d5b16d/modules/control-center-web/src/main/js/controllers/metadata-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/metadata-controller.js b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
index d0f3f92..5ee53d7 100644
--- a/modules/control-center-web/src/main/js/controllers/metadata-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
@@ -726,7 +726,7 @@ consoleModule.controller('metadataController', [
$scope.preview.query.allDefaults = $common.isEmptyString($scope.preview.query.xml);
$scope.preview.store.xml = $generatorXml.metadataStore(val).asString();
- $scope.preview.store.java = $generatorJava.metadataStore(val).asString();
+ $scope.preview.store.java = $generatorJava.metadataStore(val, false).asString();
$scope.preview.store.allDefaults = $common.isEmptyString($scope.preview.store.xml);
}
}, true);
http://git-wip-us.apache.org/repos/asf/ignite/blob/12d5b16d/modules/control-center-web/src/main/js/controllers/models/metadata.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/models/metadata.json b/modules/control-center-web/src/main/js/controllers/models/metadata.json
index 0f38b9f..e64e8b0 100644
--- a/modules/control-center-web/src/main/js/controllers/models/metadata.json
+++ b/modules/control-center-web/src/main/js/controllers/models/metadata.json
@@ -151,6 +151,15 @@
]
},
{
+ "label": "Keep serialized",
+ "id": "keepSerialized",
+ "type": "check",
+ "model": "keepSerialized",
+ "tip": [
+ "Should be checked if in case of Portable object format"
+ ]
+ },
+ {
"label": "Key fields",
"id": "keyFields",
"type": "table-db-fields",
http://git-wip-us.apache.org/repos/asf/ignite/blob/12d5b16d/modules/control-center-web/src/main/js/db.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/db.js b/modules/control-center-web/src/main/js/db.js
index ff63d3b..df0284f 100644
--- a/modules/control-center-web/src/main/js/db.js
+++ b/modules/control-center-web/src/main/js/db.js
@@ -80,6 +80,7 @@ var CacheTypeMetadataSchema = new Schema({
valueType: String,
keyFields: [{databaseName: String, databaseType: String, javaName: String, javaType: String}],
valueFields: [{databaseName: String, databaseType: String, javaName: String, javaType: String}],
+ keepSerialized: Boolean,
fields: [{name: String, className: String}],
aliases: [{field: String, alias: String}],
indexes: [{name: String, type: {type: String, enum: ['SORTED', 'FULLTEXT', 'GEOSPATIAL']}, fields: [{name: String, direction: Boolean}]}]
http://git-wip-us.apache.org/repos/asf/ignite/blob/12d5b16d/modules/control-center-web/src/main/js/routes/generator/generator-common.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-common.js b/modules/control-center-web/src/main/js/routes/generator/generator-common.js
index d9dc14e..ffad061 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-common.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-common.js
@@ -62,6 +62,7 @@ $generatorCommon.builder = function () {
res.lineStart = true;
res.datasources = [];
res.imports = {};
+ res.vars = {};
res.safeDeep = 0;
res.safeNeedEmptyLine = false;
@@ -285,7 +286,9 @@ $generatorCommon.dataSourceClassName = function(db) {
$generatorCommon.STORE_FACTORIES = {
CacheJdbcPojoStoreFactory: {
className: 'org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory',
- fields: {dataSourceBean: null, dialect: {type: 'jdbcDialect'}}
+ fields: {
+ configuration: {type: 'bean'}
+ }
},
CacheJdbcBlobStoreFactory: {
className: 'org.apache.ignite.cache.store.jdbc.CacheJdbcBlobStoreFactory',
http://git-wip-us.apache.org/repos/asf/ignite/blob/12d5b16d/modules/control-center-web/src/main/js/routes/generator/generator-java.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-java.js b/modules/control-center-web/src/main/js/routes/generator/generator-java.js
index 656e7b1..562288a 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-java.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-java.js
@@ -72,35 +72,25 @@ $generatorJava.setterName = function (propName, setterName) {
};
/**
- * @param res Result holder.
- * @param varName Variable name to check.
- * @returns {boolean} 'true' if new variable required.
- */
-$generatorJava.needNewVariable = function (res, varName) {
- var needNew = !res[varName];
-
- if (needNew)
- res[varName] = true;
-
- return needNew;
-};
-
-/**
* Add variable declaration.
*
* @param res Resulting output with generated code.
- * @param varNew If 'true' then declare new variable otherwise reuse previously declared variable.
* @param varName Variable name.
* @param varFullType Variable full class name to be added to imports.
* @param varFullActualType Variable actual full class name to be added to imports.
* @param varFullGenericType1 Optional full class name of first generic.
* @param varFullGenericType2 Optional full class name of second generic.
*/
-$generatorJava.declareVariable = function (res, varNew, varName, varFullType, varFullActualType, varFullGenericType1, varFullGenericType2) {
+$generatorJava.declareVariable = function (res, varName, varFullType, varFullActualType, varFullGenericType1, varFullGenericType2) {
res.emptyLineIfNeeded();
var varType = res.importClass(varFullType);
+ var varNew = !res.vars[varName];
+
+ if (varNew)
+ res.vars[varName] = true;
+
if (varFullActualType && varFullGenericType1) {
var varActualType = res.importClass(varFullActualType);
var varGenericType1 = res.importClass(varFullGenericType1);
@@ -263,7 +253,7 @@ $generatorJava.beanProperty = function (res, varName, bean, beanPropName, beanVa
if (bean && $commonUtils.hasProperty(bean, props)) {
res.emptyLineIfNeeded();
- $generatorJava.declareVariable(res, true, beanVarName, beanClass);
+ $generatorJava.declareVariable(res, beanVarName, beanClass);
_.forIn(props, function(descr, propName) {
if (props.hasOwnProperty(propName)) {
@@ -313,15 +303,6 @@ $generatorJava.beanProperty = function (res, varName, bean, beanPropName, beanVa
}
break;
- case 'jdbcDialect':
- if (bean[propName]) {
- var jdbcDialectClsName = res.importClass($generatorCommon.jdbcDialectClassName(bean[propName]));
-
- res.line(beanVarName + '.' + $generatorJava.setterName(propName) + '(new ' + jdbcDialectClsName + '());');
- }
-
- break;
-
case 'bean':
if ($commonUtils.isDefinedAndNotEmpty(bean[propName]))
res.line(beanVarName + '.' + $generatorJava.setterName(propName) + '(new ' + res.importClass(bean[propName]) + '());');
@@ -376,7 +357,7 @@ $generatorJava.clusterGeneral = function (cluster, clientNearCfg, res) {
if (!res)
res = $generatorCommon.builder();
- $generatorJava.declareVariable(res, true, 'cfg', 'org.apache.ignite.configuration.IgniteConfiguration');
+ $generatorJava.declareVariable(res, 'cfg', 'org.apache.ignite.configuration.IgniteConfiguration');
$generatorJava.property(res, 'cfg', cluster, 'name', null, 'setGridName');
res.needEmptyLine = true;
@@ -390,7 +371,7 @@ $generatorJava.clusterGeneral = function (cluster, clientNearCfg, res) {
if (cluster.discovery) {
var d = cluster.discovery;
- $generatorJava.declareVariable(res, true, 'discovery', 'org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi');
+ $generatorJava.declareVariable(res, 'discovery', 'org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi');
switch (d.kind) {
case 'Multicast':
@@ -486,7 +467,7 @@ $generatorJava.clusterAtomics = function (cluster, res) {
if ($commonUtils.hasAtLeastOneProperty(atomics, ['cacheMode', 'atomicSequenceReserveSize', 'backups'])) {
res.startSafeBlock();
- $generatorJava.declareVariable(res, true, 'atomicCfg', 'org.apache.ignite.configuration.AtomicConfiguration');
+ $generatorJava.declareVariable(res, 'atomicCfg', 'org.apache.ignite.configuration.AtomicConfiguration');
$generatorJava.property(res, 'atomicCfg', atomics, 'cacheMode');
@@ -523,12 +504,12 @@ $generatorJava.clusterCommunication = function (cluster, res) {
res.needEmptyLine = false;
- $generatorJava.property(res, 'cfg', cluster, 'networkTimeout', undefined, undefined, 5000);
- $generatorJava.property(res, 'cfg', cluster, 'networkSendRetryDelay', undefined, undefined, 1000);
- $generatorJava.property(res, 'cfg', cluster, 'networkSendRetryCount', undefined, undefined, 3);
+ $generatorJava.property(res, 'cfg', cluster, 'networkTimeout', null, null, 5000);
+ $generatorJava.property(res, 'cfg', cluster, 'networkSendRetryDelay', null, null, 1000);
+ $generatorJava.property(res, 'cfg', cluster, 'networkSendRetryCount', null, null, 3);
$generatorJava.property(res, 'cfg', cluster, 'segmentCheckFrequency');
$generatorJava.property(res, 'cfg', cluster, 'waitForSegmentOnStart', null, null, false);
- $generatorJava.property(res, 'cfg', cluster, 'discoveryStartupDelay', undefined, undefined, 600000);
+ $generatorJava.property(res, 'cfg', cluster, 'discoveryStartupDelay', null, null, 600000);
res.needEmptyLine = true;
@@ -567,24 +548,24 @@ $generatorJava.clusterDiscovery = function (disco, res) {
res = $generatorCommon.builder();
$generatorJava.property(res, 'discovery', disco, 'localAddress');
- $generatorJava.property(res, 'discovery', disco, 'localPort', undefined, undefined, 47500);
- $generatorJava.property(res, 'discovery', disco, 'localPortRange', undefined, undefined, 100);
+ $generatorJava.property(res, 'discovery', disco, 'localPort', null, null, 47500);
+ $generatorJava.property(res, 'discovery', disco, 'localPortRange', null, null, 100);
if ($commonUtils.isDefinedAndNotEmpty(disco.addressResolver)) {
$generatorJava.beanProperty(res, 'discovery', disco, 'addressResolver', 'addressResolver', disco.addressResolver, {}, true);
res.needEmptyLine = false;
}
- $generatorJava.property(res, 'discovery', disco, 'socketTimeout', undefined, undefined, 5000);
- $generatorJava.property(res, 'discovery', disco, 'ackTimeout', undefined, undefined, 5000);
- $generatorJava.property(res, 'discovery', disco, 'maxAckTimeout', undefined, undefined, 600000);
- $generatorJava.property(res, 'discovery', disco, 'networkTimeout', undefined, undefined, 5000);
- $generatorJava.property(res, 'discovery', disco, 'joinTimeout', undefined, undefined, 0);
- $generatorJava.property(res, 'discovery', disco, 'threadPriority', undefined, undefined, 10);
- $generatorJava.property(res, 'discovery', disco, 'heartbeatFrequency', undefined, undefined, 2000);
- $generatorJava.property(res, 'discovery', disco, 'maxMissedHeartbeats', undefined, undefined, 1);
- $generatorJava.property(res, 'discovery', disco, 'maxMissedClientHeartbeats', undefined, undefined, 5);
- $generatorJava.property(res, 'discovery', disco, 'topHistorySize', undefined, undefined, 100);
+ $generatorJava.property(res, 'discovery', disco, 'socketTimeout', null, null, 5000);
+ $generatorJava.property(res, 'discovery', disco, 'ackTimeout', null, null, 5000);
+ $generatorJava.property(res, 'discovery', disco, 'maxAckTimeout', null, null, 600000);
+ $generatorJava.property(res, 'discovery', disco, 'networkTimeout', null, null, 5000);
+ $generatorJava.property(res, 'discovery', disco, 'joinTimeout', null, null, 0);
+ $generatorJava.property(res, 'discovery', disco, 'threadPriority', null, null, 10);
+ $generatorJava.property(res, 'discovery', disco, 'heartbeatFrequency', null, null, 2000);
+ $generatorJava.property(res, 'discovery', disco, 'maxMissedHeartbeats', null, null, 1);
+ $generatorJava.property(res, 'discovery', disco, 'maxMissedClientHeartbeats', null, null, 5);
+ $generatorJava.property(res, 'discovery', disco, 'topHistorySize', null, null, 100);
if ($commonUtils.isDefinedAndNotEmpty(disco.listener)) {
$generatorJava.beanProperty(res, 'discovery', disco, 'listener', 'listener', disco.listener, {}, true);
@@ -601,17 +582,17 @@ $generatorJava.clusterDiscovery = function (disco, res) {
res.needEmptyLine = false;
}
- $generatorJava.property(res, 'discovery', disco, 'reconnectCount', undefined, undefined, 10);
- $generatorJava.property(res, 'discovery', disco, 'statisticsPrintFrequency', undefined, undefined, 0);
- $generatorJava.property(res, 'discovery', disco, 'ipFinderCleanFrequency', undefined, undefined, 60000);
+ $generatorJava.property(res, 'discovery', disco, 'reconnectCount', null, null, 10);
+ $generatorJava.property(res, 'discovery', disco, 'statisticsPrintFrequency', null, null, 0);
+ $generatorJava.property(res, 'discovery', disco, 'ipFinderCleanFrequency', null, null, 60000);
if ($commonUtils.isDefinedAndNotEmpty(disco.authenticator)) {
$generatorJava.beanProperty(res, 'discovery', disco, 'authenticator', 'authenticator', disco.authenticator, {}, true);
res.needEmptyLine = false;
}
- $generatorJava.property(res, 'discovery', disco, 'forceServerMode', undefined, undefined, false);
- $generatorJava.property(res, 'discovery', disco, 'clientReconnectDisabled', undefined, undefined, false);
+ $generatorJava.property(res, 'discovery', disco, 'forceServerMode', null, null, false);
+ $generatorJava.property(res, 'discovery', disco, 'clientReconnectDisabled', null, null, false);
res.needEmptyLine = true;
@@ -842,24 +823,32 @@ $generatorJava.cacheQuery = function (cache, varName, res) {
return res;
};
-// Generate cache store group.
-$generatorJava.cacheStore = function (cache, varName, res) {
+/**
+ * Generate cache store group.
+ *
+ * @param cache Cache descriptor.
+ * @param cacheVarName Cache variable name.
+ * @param res Resulting output with generated code.
+ * @returns {*} Java code for cache store configuration.
+ */
+$generatorJava.cacheStore = function (cache, cacheVarName, res) {
if (!res)
res = $generatorCommon.builder();
if (cache.cacheStoreFactory && cache.cacheStoreFactory.kind) {
- var storeFactory = cache.cacheStoreFactory[cache.cacheStoreFactory.kind];
+ var factoryKind = cache.cacheStoreFactory.kind;
+
+ var storeFactory = cache.cacheStoreFactory[factoryKind];
if (storeFactory) {
- var storeFactoryDesc = $generatorCommon.STORE_FACTORIES[cache.cacheStoreFactory.kind];
+ var storeFactoryDesc = $generatorCommon.STORE_FACTORIES[factoryKind];
- var sfVarName = $commonUtils.toJavaName('storeFactory', cache.name);
- var dsVarName = 'none';
+ var dataSourceFound = false;
if (storeFactory.dialect) {
var dataSourceBean = storeFactory.dataSourceBean;
- dsVarName = $commonUtils.toJavaName('dataSource', dataSourceBean);
+ dataSourceFound = true;
if (!_.contains(res.datasources, dataSourceBean)) {
res.datasources.push(dataSourceBean);
@@ -868,46 +857,89 @@ $generatorJava.cacheStore = function (cache, varName, res) {
res.needEmptyLine = true;
- $generatorJava.declareVariable(res, true, dsVarName, dsClsName);
+ $generatorJava.declareVariable(res, 'dataSource', dsClsName);
switch (storeFactory.dialect) {
case 'DB2':
- res.line(dsVarName + '.setServerName(props.getProperty("' + dataSourceBean + '.jdbc.server_name"));');
- res.line(dsVarName + '.setPortNumber(props.getProperty("' + dataSourceBean + '.jdbc.port_number"));');
- res.line(dsVarName + '.setDatabaseName(props.getProperty("' + dataSourceBean + '.jdbc.database_name"));');
- res.line(dsVarName + '.setDriverType(props.getProperty("' + dataSourceBean + '.jdbc.driver_type"));');
+ res.line('dataSource.setServerName(props.getProperty("' + dataSourceBean + '.jdbc.server_name"));');
+ res.line('dataSource.setPortNumber(props.getProperty("' + dataSourceBean + '.jdbc.port_number"));');
+ res.line('dataSource.setDatabaseName(props.getProperty("' + dataSourceBean + '.jdbc.database_name"));');
+ res.line('dataSource.setDriverType(props.getProperty("' + dataSourceBean + '.jdbc.driver_type"));');
break;
default:
- res.line(dsVarName + '.setURL(props.getProperty("' + dataSourceBean + '.jdbc.url"));');
+ res.line('dataSource.setURL(props.getProperty("' + dataSourceBean + '.jdbc.url"));');
}
- res.line(dsVarName + '.setUser(props.getProperty("' + dataSourceBean + '.jdbc.username"));');
- res.line(dsVarName + '.setPassword(props.getProperty("' + dataSourceBean + '.jdbc.password"));');
+ res.line('dataSource.setUser(props.getProperty("' + dataSourceBean + '.jdbc.username"));');
+ res.line('dataSource.setPassword(props.getProperty("' + dataSourceBean + '.jdbc.password"));');
}
}
- $generatorJava.beanProperty(res, varName, storeFactory, 'cacheStoreFactory', sfVarName,
- storeFactoryDesc.className, storeFactoryDesc.fields, true);
+ if (factoryKind == 'CacheJdbcPojoStoreFactory') {
+ // Generate POJO store factory.
+ $generatorJava.declareVariable(res, 'storeFactory', 'org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory');
- if (dsVarName != 'none')
- res.line(sfVarName + '.setDataSource(' + dsVarName + ');');
+ $generatorJava.declareVariable(res, 'storeFactoryCfg', 'org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreConfiguration');
+
+ if (dataSourceFound)
+ res.line('storeFactoryCfg.setDataSource(dataSource);');
+
+ res.needEmptyLine = true;
+
+ if (cache.metadatas && cache.metadatas.length > 0) {
+ $generatorJava.declareVariable(res, 'jdbcTypes', 'java.util.Collection', 'java.util.ArrayList', 'org.apache.ignite.cache.store.jdbc.JdbcType');
+
+ res.needEmptyLine = true;
+
+ _.forEach(cache.metadatas, function (meta) {
+ $generatorJava.declareVariable(res, 'jdbcType', 'org.apache.ignite.cache.store.jdbc.JdbcType');
+
+ res.needEmptyLine = true;
+
+ $generatorJava.metadataStore(meta, true, res);
+
+ res.needEmptyLine = true;
+
+ res.line('jdbcTypes.add(jdbcType);');
+
+ res.needEmptyLine = true;
+ });
+
+ res.line('storeFactoryCfg.setTypes(jdbcTypes);');
+
+ res.needEmptyLine = true;
+ }
+
+ res.line('storeFactory.setConfiguration(storeFactoryCfg);');
+ }
+ else {
+ $generatorJava.beanProperty(res, cacheVarName, storeFactory, 'cacheStoreFactory', 'storeFactory',
+ storeFactoryDesc.className, storeFactoryDesc.fields, true);
+
+ if (dataSourceFound)
+ res.line('storeFactory.setDataSource(dataSource);');
+ }
res.needEmptyLine = true;
}
+
+ res.line(cacheVarName + '.setStoreFactory(storeFactory);');
+
+ res.needEmptyLine = true;
}
- $generatorJava.property(res, varName, cache, 'loadPreviousValue');
- $generatorJava.property(res, varName, cache, 'readThrough');
- $generatorJava.property(res, varName, cache, 'writeThrough');
+ $generatorJava.property(res, cacheVarName, cache, 'loadPreviousValue');
+ $generatorJava.property(res, cacheVarName, cache, 'readThrough');
+ $generatorJava.property(res, cacheVarName, cache, 'writeThrough');
res.needEmptyLine = true;
- $generatorJava.property(res, varName, cache, 'writeBehindEnabled');
- $generatorJava.property(res, varName, cache, 'writeBehindBatchSize');
- $generatorJava.property(res, varName, cache, 'writeBehindFlushSize');
- $generatorJava.property(res, varName, cache, 'writeBehindFlushFrequency');
- $generatorJava.property(res, varName, cache, 'writeBehindFlushThreadCount');
+ $generatorJava.property(res, cacheVarName, cache, 'writeBehindEnabled');
+ $generatorJava.property(res, cacheVarName, cache, 'writeBehindBatchSize');
+ $generatorJava.property(res, cacheVarName, cache, 'writeBehindFlushSize');
+ $generatorJava.property(res, cacheVarName, cache, 'writeBehindFlushFrequency');
+ $generatorJava.property(res, cacheVarName, cache, 'writeBehindFlushThreadCount');
res.needEmptyLine = true;
@@ -996,7 +1028,7 @@ $generatorJava.metadataQueryFields = function (res, meta) {
var fields = meta.fields;
if (fields && fields.length > 0) {
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, 'fields'), 'fields', 'java.util.LinkedHashMap', 'java.util.LinkedHashMap', 'java.lang.String', 'java.lang.String');
+ $generatorJava.declareVariable(res, 'fields', 'java.util.LinkedHashMap', 'java.util.LinkedHashMap', 'java.lang.String', 'java.lang.String');
_.forEach(fields, function (field) {
res.line('fields.put("' + field.name + '", "' + $dataStructures.fullClassName(field.className) + '");');
@@ -1015,7 +1047,7 @@ $generatorJava.metadataQueryAliases = function (res, meta) {
var aliases = meta.aliases;
if (aliases && aliases.length > 0) {
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, 'aliases'), 'aliases', 'java.util.Map', 'java.util.HashMap', 'java.lang.String', 'java.lang.String');
+ $generatorJava.declareVariable(res, 'aliases', 'java.util.Map', 'java.util.HashMap', 'java.lang.String', 'java.lang.String');
_.forEach(aliases, function (alias) {
res.line('aliases.put("' + alias.field + '", "' + alias.alias + '");');
@@ -1036,12 +1068,12 @@ $generatorJava.metadataQueryIndexes = function (res, meta) {
if (indexes && indexes.length > 0) {
res.needEmptyLine = true;
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, 'indexes'), 'indexes', 'java.util.Map', 'java.util.LinkedHashMap', 'String', 'org.apache.ignite.cache.store.QueryEntityIndex');
+ $generatorJava.declareVariable(res, 'indexes', 'java.util.Map', 'java.util.LinkedHashMap', 'String', 'org.apache.ignite.cache.store.QueryEntityIndex');
_.forEach(indexes, function (index) {
res.needEmptyLine = true;
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, 'index'), 'index', 'org.apache.ignite.cache.store.QueryEntityIndex');
+ $generatorJava.declareVariable(res, 'index', 'org.apache.ignite.cache.store.QueryEntityIndex');
$generatorJava.property(res, 'index', index, 'name');
$generatorJava.property(res, 'index', index, 'type', 'org.apache.ignite.cache.store.QueryEntityIndex.Type');
@@ -1049,7 +1081,7 @@ $generatorJava.metadataQueryIndexes = function (res, meta) {
var fields = index.fields;
if (fields && fields.length > 0) {
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, 'indFlds'), 'indFlds', 'java.util.LinkedHashMap', 'java.util.LinkedHashMap', 'String', 'Boolean');
+ $generatorJava.declareVariable(res, 'indFlds', 'java.util.LinkedHashMap', 'java.util.LinkedHashMap', 'String', 'Boolean');
_.forEach(fields, function(field) {
res.line('indFlds.put("' + field.name + '", ' + field.direction + ');');
@@ -1080,18 +1112,19 @@ $generatorJava.metadataDatabaseFields = function (res, meta, fieldProperty) {
if (dbFields && dbFields.length > 0) {
res.needEmptyLine = true;
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, fieldProperty), fieldProperty, 'java.util.Collection', 'java.util.ArrayList', 'org.apache.ignite.cache.CacheTypeFieldMetadata');
+ res.importClass('java.sql.Types');
+
+ res.startBlock('jdbcType.' + $commonUtils.toJavaName('set', fieldProperty) + '(');
+
+ var lastIx = dbFields.length - 1;
- _.forEach(dbFields, function (field) {
- res.line(fieldProperty + '.add(new CacheTypeFieldMetadata(' +
- '"' + field.databaseName + '", ' +
- 'java.sql.Types.' + field.databaseType + ', ' +
- '"' + field.javaName + '", ' +
- field.javaType + '.class'
- + '));');
+ _.forEach(dbFields, function (field, ix) {
+ res.line('new JdbcTypeField(' +
+ 'Types.' + field.databaseType + ', ' + '"' + field.databaseName + '", ' +
+ field.javaType + '.class, ' + '"' + field.javaName + '"'+ ')' + (ix < lastIx ? ',' : ''));
});
- res.line('typeMeta.' + $commonUtils.toJavaName('set', fieldProperty) + '(' + fieldProperty + ');');
+ res.endBlock(');');
res.needEmptyLine = true;
}
@@ -1127,15 +1160,20 @@ $generatorJava.metadataQuery = function (meta, res) {
};
// Generate metadata for store group.
-$generatorJava.metadataStore = function (meta, res) {
+$generatorJava.metadataStore = function (meta, withTypes, res) {
if (!res)
res = $generatorCommon.builder();
- $generatorJava.property(res, 'typeMeta', meta, 'databaseSchema');
- $generatorJava.property(res, 'typeMeta', meta, 'databaseTable');
+ $generatorJava.property(res, 'jdbcType', meta, 'databaseSchema');
+ $generatorJava.property(res, 'jdbcType', meta, 'databaseTable');
+ $generatorJava.property(res, 'jdbcType', meta, 'keepSerialized', null, null, false);
+
+ if (withTypes) {
+ $generatorJava.property(res, 'jdbcType', meta, 'keyType');
+ $generatorJava.property(res, 'jdbcType', meta, 'valueType');
+ }
- if (!$dataStructures.isJavaBuildInClass(meta.keyType))
- $generatorJava.metadataDatabaseFields(res, meta, 'keyFields');
+ $generatorJava.metadataDatabaseFields(res, meta, 'keyFields');
$generatorJava.metadataDatabaseFields(res, meta, 'valueFields');
@@ -1146,10 +1184,9 @@ $generatorJava.metadataStore = function (meta, res) {
// Generate cache type metadata config.
$generatorJava.cacheMetadata = function(meta, res) {
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, 'typeMeta'), 'typeMeta', 'org.apache.ignite.cache.CacheTypeMetadata');
+ $generatorJava.declareVariable(res, 'typeMeta', 'org.apache.ignite.cache.CacheTypeMetadata');
$generatorJava.metadataGeneral(meta, res);
- $generatorJava.metadataStore(meta, res);
res.emptyLineIfNeeded();
res.line('types.add(typeMeta);');
@@ -1159,7 +1196,7 @@ $generatorJava.cacheMetadata = function(meta, res) {
// Generate cache type metadata config.
$generatorJava.cacheQueryMetadata = function(meta, res) {
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, 'queryMeta'), 'queryMeta', 'org.apache.ignite.cache.store.QueryEntity');
+ $generatorJava.declareVariable(res, 'queryMeta', 'org.apache.ignite.cache.store.QueryEntity');
$generatorJava.classNameProperty(res, 'queryMeta', meta, 'keyType');
$generatorJava.classNameProperty(res, 'queryMeta', meta, 'valueType');
@@ -1181,7 +1218,7 @@ $generatorJava.cacheMetadatas = function (metadatas, varName, res) {
// Generate cache type metadata configs.
if (metadatas && metadatas.length > 0) {
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, 'types'), 'types', 'java.util.Collection', 'java.util.ArrayList', 'org.apache.ignite.cache.CacheTypeMetadata');
+ $generatorJava.declareVariable(res, 'types', 'java.util.Collection', 'java.util.ArrayList', 'org.apache.ignite.cache.CacheTypeMetadata');
_.forEach(metadatas, function (meta) {
$generatorJava.cacheMetadata(meta, res);
@@ -1191,7 +1228,7 @@ $generatorJava.cacheMetadatas = function (metadatas, varName, res) {
res.needEmptyLine = true;
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, 'queryEntities'), 'queryEntities', 'java.util.Collection', 'java.util.ArrayList', 'org.apache.ignite.cache.store.QueryEntity');
+ $generatorJava.declareVariable(res, 'queryEntities', 'java.util.Collection', 'java.util.ArrayList', 'org.apache.ignite.cache.store.QueryEntity');
_.forEach(metadatas, function (meta) {
$generatorJava.cacheQueryMetadata(meta, res);
@@ -1236,7 +1273,7 @@ $generatorJava.clusterCaches = function (caches, igfss, res) {
var cacheName = $commonUtils.toJavaName('cache', cache.name);
- $generatorJava.declareVariable(res, true, cacheName, 'org.apache.ignite.configuration.CacheConfiguration');
+ $generatorJava.declareVariable(res, cacheName, 'org.apache.ignite.configuration.CacheConfiguration');
$generatorJava.cache(cache, cacheName, res);
@@ -1572,7 +1609,7 @@ $generatorJava.igfss = function(igfss, varName, res) {
res.line(res.importClass('org.apache.ignite.configuration.FileSystemConfiguration') + '[] ' + arrayName + ' = new FileSystemConfiguration[' + igfss.length + '];');
_.forEach(igfss, function(igfs, ix) {
- $generatorJava.declareVariable(res, $generatorJava.needNewVariable(res, igfsInst), igfsInst, 'org.apache.ignite.configuration.FileSystemConfiguration');
+ $generatorJava.declareVariable(res, igfsInst, 'org.apache.ignite.configuration.FileSystemConfiguration');
$generatorJava.igfsGeneral(igfs, igfsInst, res);
$generatorJava.igfsIPC(igfs, igfsInst, res);
@@ -1614,9 +1651,9 @@ $generatorJava.igfsFragmentizer = function(igfs, varName, res) {
res = $generatorCommon.builder();
if (igfs.fragmentizerEnabled) {
- $generatorJava.property(res, varName, igfs, 'fragmentizerConcurrentFiles', undefined, undefined, 0);
- $generatorJava.property(res, varName, igfs, 'fragmentizerThrottlingBlockLength', undefined, undefined, 16777216);
- $generatorJava.property(res, varName, igfs, 'fragmentizerThrottlingDelay', undefined, undefined, 200);
+ $generatorJava.property(res, varName, igfs, 'fragmentizerConcurrentFiles', null, null, 0);
+ $generatorJava.property(res, varName, igfs, 'fragmentizerThrottlingBlockLength', null, null, 16777216);
+ $generatorJava.property(res, varName, igfs, 'fragmentizerThrottlingDelay', null, null, 200);
res.needEmptyLine = true;
}
@@ -1630,12 +1667,12 @@ $generatorJava.igfsDualMode = function(igfs, varName, res) {
if (!res)
res = $generatorCommon.builder();
- $generatorJava.property(res, varName, igfs, 'dualModeMaxPendingPutsSize', undefined, undefined, 0);
+ $generatorJava.property(res, varName, igfs, 'dualModeMaxPendingPutsSize', null, null, 0);
if ($commonUtils.isDefinedAndNotEmpty(igfs.dualModePutExecutorService))
res.line(varName + '.' + $generatorJava.setterName('dualModePutExecutorService') + '(new ' + res.importClass(igfs.dualModePutExecutorService) + '());');
- $generatorJava.property(res, varName, igfs, 'dualModePutExecutorServiceShutdown', undefined, undefined, false);
+ $generatorJava.property(res, varName, igfs, 'dualModePutExecutorServiceShutdown', null, null, false);
res.needEmptyLine = true;
@@ -1664,17 +1701,17 @@ $generatorJava.igfsMisc = function(igfs, varName, res) {
if (!res)
res = $generatorCommon.builder();
- $generatorJava.property(res, varName, igfs, 'blockSize', undefined, undefined, 65536);
- $generatorJava.property(res, varName, igfs, 'streamBufferSize', undefined, undefined, 65536);
+ $generatorJava.property(res, varName, igfs, 'blockSize', null, null, 65536);
+ $generatorJava.property(res, varName, igfs, 'streamBufferSize', null, null, 65536);
$generatorJava.property(res, varName, igfs, 'defaultMode', res.importClass('org.apache.ignite.igfs.IgfsMode'), undefined, "DUAL_ASYNC");
$generatorJava.property(res, varName, igfs, 'maxSpaceSize');
$generatorJava.property(res, varName, igfs, 'maximumTaskRangeLength');
- $generatorJava.property(res, varName, igfs, 'managementPort', undefined, undefined, 11400);
+ $generatorJava.property(res, varName, igfs, 'managementPort', null, null, 11400);
if (igfs.pathModes && igfs.pathModes.length > 0) {
res.needEmptyLine = true;
- $generatorJava.declareVariable(res, true, 'pathModes', 'java.util.Map', 'java.util.HashMap', 'String', 'org.apache.ignite.igfs.IgfsMode');
+ $generatorJava.declareVariable(res, 'pathModes', 'java.util.Map', 'java.util.HashMap', 'String', 'org.apache.ignite.igfs.IgfsMode');
_.forEach(igfs.pathModes, function (pair) {
res.line('pathModes.put("' + pair.path + '", IgfsMode.' + pair.mode +');');
@@ -1685,11 +1722,11 @@ $generatorJava.igfsMisc = function(igfs, varName, res) {
res.line(varName + '.setPathModes(pathModes);');
}
- $generatorJava.property(res, varName, igfs, 'perNodeBatchSize', undefined, undefined, 100);
- $generatorJava.property(res, varName, igfs, 'perNodeParallelBatchCount', undefined, undefined, 8);
- $generatorJava.property(res, varName, igfs, 'prefetchBlocks', undefined, undefined, 0);
- $generatorJava.property(res, varName, igfs, 'sequentialReadsBeforePrefetch', undefined, undefined, 0);
- $generatorJava.property(res, varName, igfs, 'trashPurgeTimeout', undefined, undefined, 1000);
+ $generatorJava.property(res, varName, igfs, 'perNodeBatchSize', null, null, 100);
+ $generatorJava.property(res, varName, igfs, 'perNodeParallelBatchCount', null, null, 8);
+ $generatorJava.property(res, varName, igfs, 'prefetchBlocks', null, null, 0);
+ $generatorJava.property(res, varName, igfs, 'sequentialReadsBeforePrefetch', null, null, 0);
+ $generatorJava.property(res, varName, igfs, 'trashPurgeTimeout', null, null, 1000);
res.needEmptyLine = true;
http://git-wip-us.apache.org/repos/asf/ignite/blob/12d5b16d/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/generator/generator-xml.js b/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
index 7c39150..f759b80 100644
--- a/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
+++ b/modules/control-center-web/src/main/js/routes/generator/generator-xml.js
@@ -153,20 +153,12 @@ $generatorXml.beanProperty = function (res, bean, beanPropName, desc, createBean
$generatorXml.listProperty(res, bean, propName, descr.setterName);
break;
+
case 'array':
$generatorXml.arrayProperty(res, bean, propName, descr);
break;
- case 'jdbcDialect':
- if (bean[propName]) {
- res.startBlock('<property name="' + propName + '">');
- res.line('<bean class="' + $generatorCommon.jdbcDialectClassName(bean[propName]) + '"/>');
- res.endBlock('</property>');
- hasData = true;
- }
-
- break;
case 'propertiesAsList':
var val = bean[propName];
@@ -189,6 +181,7 @@ $generatorXml.beanProperty = function (res, bean, beanPropName, desc, createBean
}
break;
+
case 'bean':
if ($commonUtils.isDefinedAndNotEmpty(bean[propName])) {
res.startBlock('<property name="' + propName + '">');
@@ -199,6 +192,7 @@ $generatorXml.beanProperty = function (res, bean, beanPropName, desc, createBean
}
break;
+
default:
if ($generatorXml.property(res, bean, propName, descr.setterName, descr.dflt))
hasData = true;
@@ -721,20 +715,61 @@ $generatorXml.cacheStore = function(cache, res) {
res = $generatorCommon.builder();
if (cache.cacheStoreFactory && cache.cacheStoreFactory.kind) {
- var storeFactory = cache.cacheStoreFactory[cache.cacheStoreFactory.kind];
+ var factoryKind = cache.cacheStoreFactory.kind;
+
+ var storeFactory = cache.cacheStoreFactory[factoryKind];
if (storeFactory) {
- $generatorXml.beanProperty(res, storeFactory, 'cacheStoreFactory', $generatorCommon.STORE_FACTORIES[cache.cacheStoreFactory.kind], true);
-
- if (storeFactory.dialect) {
- if (_.findIndex(res.datasources, function (ds) {
- return ds.dataSourceBean == storeFactory.dataSourceBean;
- }) < 0) {
- res.datasources.push({
- dataSourceBean: storeFactory.dataSourceBean,
- className: $generatorCommon.DATA_SOURCES[storeFactory.dialect],
- dialect: storeFactory.dialect
+ if (factoryKind == 'CacheJdbcPojoStoreFactory') {
+ res.startBlock('<property name="cacheStoreFactory">');
+ res.startBlock('<bean class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory">');
+ res.startBlock('<property name="configuration">');
+ res.startBlock('<bean class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreConfiguration">');
+
+ $generatorXml.property(res, storeFactory, 'dataSourceBean');
+
+ res.startBlock('<property name="dialect">');
+ res.line('<bean class="' + $generatorCommon.jdbcDialectClassName(storeFactory.dialect) + '"/>');
+ res.endBlock('</property>');
+
+ var metadatas = cache.metadatas;
+
+ if (metadatas && metadatas.length > 0) {
+ res.startBlock('<property name="types">');
+ res.startBlock('<list>');
+
+ _.forEach(metadatas, function (meta) {
+ res.startBlock('<bean class="org.apache.ignite.cache.store.jdbc.JdbcType">');
+
+ $generatorXml.classNameProperty(res, meta, 'keyType');
+ $generatorXml.property(res, meta, 'valueType');
+ $generatorXml.property(res, meta, 'keepSerialized', null, null, false);
+
+ res.endBlock('</bean>');
});
+
+ res.endBlock('</list>');
+ res.endBlock('</property>');
+ }
+
+ res.endBlock('</bean>');
+ res.endBlock("</property>");
+ res.endBlock('</bean>');
+ res.endBlock("</property>")
+ }
+ else {
+ $generatorXml.beanProperty(res, storeFactory, 'cacheStoreFactory', $generatorCommon.STORE_FACTORIES[factoryKind], true);
+
+ if (storeFactory.dialect) {
+ if (_.findIndex(res.datasources, function (ds) {
+ return ds.dataSourceBean == storeFactory.dataSourceBean;
+ }) < 0) {
+ res.datasources.push({
+ dataSourceBean: storeFactory.dataSourceBean,
+ className: $generatorCommon.DATA_SOURCES[storeFactory.dialect],
+ dialect: storeFactory.dialect
+ });
+ }
}
}
@@ -939,7 +974,7 @@ $generatorXml.metadataDatabaseFields = function (res, meta, fieldProp) {
res.startBlock('<list>');
_.forEach(fields, function (field) {
- res.startBlock('<bean class="org.apache.ignite.cache.CacheTypeFieldMetadata">');
+ res.startBlock('<bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">');
$generatorXml.property(res, field, 'databaseName');
@@ -997,6 +1032,7 @@ $generatorXml.metadataStore = function(meta, res) {
$generatorXml.property(res, meta, 'databaseSchema');
$generatorXml.property(res, meta, 'databaseTable');
+ $generatorXml.property(res, meta, 'keepSerialized');
res.needEmptyLine = true;
@@ -1010,25 +1046,6 @@ $generatorXml.metadataStore = function(meta, res) {
return res;
};
-// Generate cache type metadata config.
-$generatorXml.cacheMetadata = function(meta, res) {
- if (!res)
- res = $generatorCommon.builder();
-
- res.emptyLineIfNeeded();
-
- res.startBlock('<bean class="org.apache.ignite.cache.CacheTypeMetadata">');
-
- $generatorXml.metadataGeneral(meta, res);
- $generatorXml.metadataStore(meta, res);
-
- res.endBlock('</bean>');
-
- res.needEmptyLine = true;
-
- return res;
-};
-
$generatorXml.cacheQueryMetadata = function(meta, res) {
if (!res)
res = $generatorCommon.builder();
@@ -1055,18 +1072,6 @@ $generatorXml.cacheMetadatas = function(metadatas, res) {
if (metadatas && metadatas.length > 0) {
res.emptyLineIfNeeded();
- res.startBlock('<property name="typeMetadata">');
- res.startBlock('<list>');
-
- _.forEach(metadatas, function (meta) {
- $generatorXml.cacheMetadata(meta, res);
- });
-
- res.endBlock('</list>');
- res.endBlock('</property>');
-
- res.needEmptyLine = true;
-
res.startBlock('<property name="queryEntities">');
res.startBlock('<list>');