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/17 08:59:44 UTC
ignite git commit: IGNITE-843 Reworked java code generation for JDBC
store factory.
Repository: ignite
Updated Branches:
refs/heads/ignite-843-rc2 40a0b99bb -> ffd7b2b8b
IGNITE-843 Reworked java code generation for JDBC store factory.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ffd7b2b8
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ffd7b2b8
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ffd7b2b8
Branch: refs/heads/ignite-843-rc2
Commit: ffd7b2b8b75710c6ec26d5aee54475f890b2b362
Parents: 40a0b99
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Dec 17 15:00:36 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Dec 17 15:00:36 2015 +0700
----------------------------------------------------------------------
.../main/js/helpers/generator/generator-java.js | 130 +++++++++++--------
.../helpers/generator/generator-properties.js | 2 +-
.../src/main/js/views/sql/sql.jade | 6 +-
3 files changed, 82 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ffd7b2b8/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 d326d9b..b197e1f 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
@@ -71,8 +71,9 @@ $generatorJava.setterName = function (propName, setterName) {
* @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.
+ * @param subClass If `true` then variable will be declared as anonymous subclass.
*/
-$generatorJava.declareVariable = function (res, varName, varFullType, varFullActualType, varFullGenericType1, varFullGenericType2) {
+$generatorJava.declareVariable = function (res, varName, varFullType, varFullActualType, varFullGenericType1, varFullGenericType2, subClass) {
res.emptyLineIfNeeded();
var varType = res.importClass(varFullType);
@@ -94,7 +95,23 @@ $generatorJava.declareVariable = function (res, varName, varFullType, varFullAct
varName + ' = new ' + varActualType + '<>();');
}
else
- res.line((varNew ? (varType + ' ') : '') + varName + ' = new ' + varType + '();');
+ res.line((varNew ? (varType + ' ') : '') + varName + ' = new ' + varType + '()' + (subClass ? ' {' : ';'));
+
+ if (!subClass)
+ res.needEmptyLine = true;
+};
+
+/**
+ * Add local variable declaration.
+ *
+ * @param res Resulting output with generated code.
+ * @param varName Variable name.
+ * @param varFullType Variable full class name to be added to imports.
+ */
+$generatorJava.declareVariableLocal = function (res, varName, varFullType) {
+ var varType = res.importClass(varFullType);
+
+ res.line(varType + varName + ' = new ' + varType + '();');
res.needEmptyLine = true;
};
@@ -874,6 +891,52 @@ $generatorJava.cacheQuery = function (cache, varName, res) {
};
/**
+ * Generate cache store datasource.
+ *
+ * @param storeFactory Factory to generate data source for.
+ * @param res Resulting output with generated code.
+ */
+$generatorJava.cacheStoreDataSource = function (storeFactory, res) {
+ if (storeFactory.dialect) {
+ var dataSourceBean = storeFactory.dataSourceBean;
+
+ var dsClsName = $generatorCommon.dataSourceClassName(storeFactory.dialect);
+
+ $generatorJava.declareVariableLocal(res, 'dataSource', dsClsName);
+
+ switch (storeFactory.dialect) {
+ case 'Generic':
+ res.line('dataSource.setJdbcUrl(props.getProperty("' + dataSourceBean + '.jdbc.url"));');
+
+ break;
+
+ case 'DB2':
+ res.line('dataSource.setServerName(props.getProperty("' + dataSourceBean + '.jdbc.server_name"));');
+ res.line('dataSource.setPortNumber(Integer.valueOf(props.getProperty("' + dataSourceBean + '.jdbc.port_number")));');
+ res.line('dataSource.setDatabaseName(props.getProperty("' + dataSourceBean + '.jdbc.database_name"));');
+ res.line('dataSource.setDriverType(Integer.valueOf(props.getProperty("' + dataSourceBean + '.jdbc.driver_type")));');
+
+ break;
+
+ case 'PostgreSQL':
+ res.line('dataSource.setDataSourceName("' + dataSourceBean + '");');
+ res.line('dataSource.setServerName(props.getProperty("' + dataSourceBean + '.jdbc.server_name"));');
+ res.line('dataSource.setDatabaseName(props.getProperty("' + dataSourceBean + '.jdbc.database_name"));');
+
+ break;
+
+ default:
+ res.line('dataSource.setURL(props.getProperty("' + dataSourceBean + '.jdbc.url"));');
+ }
+
+ res.line('dataSource.setUser(props.getProperty("' + dataSourceBean + '.jdbc.username"));');
+ res.line('dataSource.setPassword(props.getProperty("' + dataSourceBean + '.jdbc.password"));');
+
+ res.needEmptyLine = true;
+ }
+};
+
+/**
* Generate cache store group.
*
* @param cache Cache descriptor.
@@ -896,60 +959,23 @@ $generatorJava.cacheStore = function (cache, metadatas, cacheVarName, res) {
var varName = 'storeFactory' + storeFactoryDesc.suffix;
- var dataSourceFound = false;
-
- if (storeFactory.dialect) {
- var dataSourceBean = storeFactory.dataSourceBean;
-
- dataSourceFound = true;
-
- if (!_.contains(res.datasources, dataSourceBean)) {
- res.datasources.push(dataSourceBean);
-
- var dsClsName = $generatorCommon.dataSourceClassName(storeFactory.dialect);
-
- res.needEmptyLine = true;
-
- $generatorJava.declareVariable(res, 'dataSource', dsClsName);
-
- switch (storeFactory.dialect) {
- case 'Generic':
- res.line('dataSource.setJdbcUrl(props.getProperty("' + dataSourceBean + '.jdbc.url"));');
-
- break;
-
- case 'DB2':
- res.line('dataSource.setServerName(props.getProperty("' + dataSourceBean + '.jdbc.server_name"));');
- res.line('dataSource.setPortNumber(Integer.valueOf(props.getProperty("' + dataSourceBean + '.jdbc.port_number")));');
- res.line('dataSource.setDatabaseName(props.getProperty("' + dataSourceBean + '.jdbc.database_name"));');
- res.line('dataSource.setDriverType(Integer.valueOf(props.getProperty("' + dataSourceBean + '.jdbc.driver_type")));');
-
- break;
-
- case 'PostgreSQL':
- res.line('dataSource.setDataSourceName("' + dataSourceBean + '");');
- res.line('dataSource.setServerName(props.getProperty("' + dataSourceBean + '.jdbc.server_name"));');
- res.line('dataSource.setDatabaseName(props.getProperty("' + dataSourceBean + '.jdbc.database_name"));');
-
- break;
-
- default:
- res.line('dataSource.setURL(props.getProperty("' + dataSourceBean + '.jdbc.url"));');
- }
+ if (factoryKind === 'CacheJdbcPojoStoreFactory') {
+ // Generate POJO store factory.
+ $generatorJava.declareVariable(res, varName, 'org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory', null, null, null, true);
+ res.deep++;
- res.line('dataSource.setUser(props.getProperty("' + dataSourceBean + '.jdbc.username"));');
- res.line('dataSource.setPassword(props.getProperty("' + dataSourceBean + '.jdbc.password"));');
+ res.line('/** {@inheritDoc} */');
+ res.startBlock('@Override public CacheJdbcPojoStore<Long, Person> create() {');
- res.needEmptyLine = true;
- }
- }
+ $generatorJava.cacheStoreDataSource(storeFactory, res);
- if (factoryKind === 'CacheJdbcPojoStoreFactory') {
- // Generate POJO store factory.
- $generatorJava.declareVariable(res, varName, 'org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory');
+ res.line('setDataSource(dataSource);');
+ res.line('');
+ res.line('return super.create();');
+ res.endBlock('};');
+ res.endBlock('};');
- if (dataSourceFound)
- res.line(varName + '.setDataSource(dataSource);');
+ res.needEmptyLine = true;
res.line(varName + '.setDialect(new ' +
res.importClass($generatorCommon.jdbcDialectClassName(storeFactory.dialect)) + '());');
http://git-wip-us.apache.org/repos/asf/ignite/blob/ffd7b2b8/modules/control-center-web/src/main/js/helpers/generator/generator-properties.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/helpers/generator/generator-properties.js b/modules/control-center-web/src/main/js/helpers/generator/generator-properties.js
index c867559..a8dfd3f 100644
--- a/modules/control-center-web/src/main/js/helpers/generator/generator-properties.js
+++ b/modules/control-center-web/src/main/js/helpers/generator/generator-properties.js
@@ -87,7 +87,7 @@ $generatorProperties.dataSourcesProperties = function (cluster, res) {
res.line(beanId + '.jdbc.username=YOUR_USER_NAME');
res.line(beanId + '.jdbc.password=YOUR_PASSWORD');
- res.line();
+ res.line('');
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/ffd7b2b8/modules/control-center-web/src/main/js/views/sql/sql.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/sql/sql.jade b/modules/control-center-web/src/main/js/views/sql/sql.jade
index bc4dae8..238a636 100644
--- a/modules/control-center-web/src/main/js/views/sql/sql.jade
+++ b/modules/control-center-web/src/main/js/views/sql/sql.jade
@@ -30,7 +30,7 @@ mixin chart-settings(mdl)
.row
.col-xs-4
.chart-settings-link(ng-show='paragraph.chart && paragraph.chartColumns.length > 0')
- a(ng-click='$event.stopPropagation()' bs-popover data-template-url='/sql/chart-settings.html' data-placement='bottom' data-auto-close='1' data-trigger='click')
+ a(title='Click to show chart settings dialog' ng-click='$event.stopPropagation()' bs-popover data-template-url='/sql/chart-settings.html' data-placement='bottom' data-auto-close='1' data-trigger='click')
i.fa.fa-chevron-circle-down
| Chart settings
div(ng-show='paragraphTimeSpanVisible(paragraph)')
@@ -108,7 +108,7 @@ mixin chart-settings(mdl)
.col-xs-4.col-sm-3
div(ng-show='caches.length > 0' style='padding: 5px 10px' st-table='displayedCaches' st-safe-src='caches')
lable.labelField.labelFormField Caches:
- i.fa.fa-database.tipField(bs-popover data-template-url='/sql/cache-metadata.html', data-placement='bottom', data-trigger='click')
+ i.fa.fa-database.tipField(title='Click to show cache types metadata dialog' bs-popover data-template-url='/sql/cache-metadata.html', data-placement='bottom', data-trigger='click')
.input-tip
input.form-control(type='text' st-search placeholder='Filter caches...')
table.links
@@ -132,7 +132,7 @@ mixin chart-settings(mdl)
labelHide System columns:
a.btn.btn-default.fa.fa-bars.tipLabel(ng-class='{"btn-info": paragraph.systemColumns}' ng-click='toggleSystemColumns(paragraph)' ng-disabled='paragraph.disabledSystemColumns' bs-tooltip data-title='Show "_KEY", "_VAL" columns')
label.tipLabel Refresh rate:
- button.btn.btn-default.fa.fa-clock-o.tipLabel(ng-class='{"btn-info": paragraph.rate && paragraph.rate.installed}' bs-popover data-template-url='/sql/paragraph-rate.html' data-placement='left' data-auto-close='1' data-trigger='click') {{rateAsString(paragraph)}}
+ button.btn.btn-default.fa.fa-clock-o.tipLabel(title='Click to show refresh rate dialog' ng-class='{"btn-info": paragraph.rate && paragraph.rate.installed}' bs-popover data-template-url='/sql/paragraph-rate.html' data-placement='left' data-auto-close='1' data-trigger='click') {{rateAsString(paragraph)}}
label.tipLabel Page size:
button.select-toggle.fieldButton.btn.btn-default(ng-model='paragraph.pageSize' bs-options='item for item in pageSizes' bs-select bs-tooltip data-title='Max number of rows to show in query result as one page')
.col-sm-12(ng-show='paragraph.errMsg')