IGNITE-843: Finished XML generation for cache type metadata groups.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9018cc4b Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9018cc4b Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9018cc4b Branch: refs/heads/ignite-1155_1 Commit: 9018cc4bc7616828384b6e6fdef77667d57b77a1 Parents: 34cd6ec Author: AKuznetsov <akuznet...@gridgain.com> Authored: Tue Jul 28 15:31:32 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Tue Jul 28 15:31:32 2015 +0700 ---------------------------------------------------------------------- .../main/js/controllers/metadata-controller.js | 4 +- modules/web-control-center/src/main/js/db.js | 2 +- .../src/main/js/routes/generator/common.js | 11 ++++- .../src/main/js/routes/generator/xml.js | 43 +++++++++----------- .../src/main/js/views/includes/controls.jade | 4 +- 5 files changed, 34 insertions(+), 30 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9018cc4b/modules/web-control-center/src/main/js/controllers/metadata-controller.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/src/main/js/controllers/metadata-controller.js b/modules/web-control-center/src/main/js/controllers/metadata-controller.js index 47c8687..db10ddc 100644 --- a/modules/web-control-center/src/main/js/controllers/metadata-controller.js +++ b/modules/web-control-center/src/main/js/controllers/metadata-controller.js @@ -104,8 +104,8 @@ controlCenterModule.controller('metadataController', ['$scope', '$http', '$commo ]; $scope.sortDirections = [ - {value: 'ASC', label: 'ASC'}, - {value: 'DESC', label: 'DESC'} + {value: false, label: 'ASC'}, + {value: true, label: 'DESC'} ]; $scope.data = { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9018cc4b/modules/web-control-center/src/main/js/db.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/src/main/js/db.js b/modules/web-control-center/src/main/js/db.js index e6fb99b..5232e24 100644 --- a/modules/web-control-center/src/main/js/db.js +++ b/modules/web-control-center/src/main/js/db.js @@ -78,7 +78,7 @@ var CacheTypeMetadataSchema = new Schema({ ascendingFields: [{name: String, className: String}], descendingFields: [{name: String, className: String}], textFields: [String], - groups: [{name: String, fields: [{name: String, className: String, direction: String}]}] + groups: [{name: String, fields: [{name: String, className: String, direction: Boolean}]}] }); exports.CacheTypeMetadata = mongoose.model('CacheTypeMetadata', CacheTypeMetadataSchema); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9018cc4b/modules/web-control-center/src/main/js/routes/generator/common.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/src/main/js/routes/generator/common.js b/modules/web-control-center/src/main/js/routes/generator/common.js index 05405d3..a300bb5 100644 --- a/modules/web-control-center/src/main/js/routes/generator/common.js +++ b/modules/web-control-center/src/main/js/routes/generator/common.js @@ -174,7 +174,7 @@ exports.marshallers = { JdkMarshaller: new ClassDescriptor('org.apache.ignite.marshaller.jdk.JdkMarshaller', {}) }; -exports.knownBuildInClasses = { +var javaBuildInClasses = { BigDecimal: {className: 'java.math.Boolean'}, Boolean: {className: 'java.lang.Boolean'}, Byte: {className: 'java.lang.Byte'}, @@ -190,6 +190,15 @@ exports.knownBuildInClasses = { UUID: {className: 'java.util.UUID'} }; +exports.javaBuildInClass = function (className) { + var fullClassName = javaBuildInClasses[className]; + + if (fullClassName) + return fullClassName.className; + + return className; +}; + exports.knownClasses = { Oracle: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.OracleDialect', {}), DB2: new ClassDescriptor('org.apache.ignite.cache.store.jdbc.dialect.DB2Dialect', {}), http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9018cc4b/modules/web-control-center/src/main/js/routes/generator/xml.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/src/main/js/routes/generator/xml.js b/modules/web-control-center/src/main/js/routes/generator/xml.js index c266722..dbb6935 100644 --- a/modules/web-control-center/src/main/js/routes/generator/xml.js +++ b/modules/web-control-center/src/main/js/routes/generator/xml.js @@ -337,7 +337,7 @@ function createEvictionPolicy(res, evictionPolicy, propertyName) { } } -function addFields(res, meta, fieldsProperty) { +function addCacheTypeMetadataDatabaseFields(res, meta, fieldsProperty) { var fields = meta[fieldsProperty]; if (fields && fields.length > 0) { @@ -350,11 +350,13 @@ function addFields(res, meta, fieldsProperty) { addProperty(res, field, 'databaseName'); - addProperty(res, field, 'databaseType'); - //addPropertyAsConst(res, field, databaseType, toJdbcTypeConst); + res.startBlock('<property name="databaseType">'); + res.line('<util:constant static-field="java.sql.Types.' + field.databaseType + '"/>'); + res.endBlock('</property>'); addProperty(res, field, 'javaName'); - addElement(res, 'property', 'name', 'javaType', 'value', knownBuildInClasses(field.javaType)); + + addElement(res, 'property', 'name', 'javaType', 'value', generatorUtils.javaBuildInClass(field.javaType)); res.endBlock('</bean>'); }); @@ -364,16 +366,7 @@ function addFields(res, meta, fieldsProperty) { } } -function knownBuildInClasses(className) { - var fullClassName = generatorUtils.knownBuildInClasses[className]; - - if (fullClassName) - return fullClassName.className; - - return className; -} - -function addQueryFields(res, meta, fieldsProperty) { +function addCacheTypeMetadataQueryFields(res, meta, fieldsProperty) { var fields = meta[fieldsProperty]; if (fields && fields.length > 0) { @@ -382,7 +375,7 @@ function addQueryFields(res, meta, fieldsProperty) { res.startBlock('<map>'); _.forEach(fields, function (field) { - addElement(res, 'entry', 'key', field.name, 'value', knownBuildInClasses(field.className)); + addElement(res, 'entry', 'key', field.name, 'value', generatorUtils.javaBuildInClass(field.className)); }); res.endBlock('</map>'); @@ -407,10 +400,12 @@ function addCacheTypeMetadataGroups(res, meta) { _.forEach(fields, function (field) { res.startBlock('<entry key="' + field.name + '">'); + res.startBlock('<bean class="org.apache.ignite.lang.IgniteBiTuple">'); - res.line('<constructor-arg value="java.lang.String"/>'); - res.line('<constructor-arg value="false"/>'); + res.line('<constructor-arg value="' + generatorUtils.javaBuildInClass(field.className) + '"/>'); + res.line('<constructor-arg value="' + field.direction + '"/>'); res.endBlock('</bean>'); + res.endBlock('</entry>'); }); @@ -436,12 +431,12 @@ function generateCacheTypeMetadataConfiguration(metaCfg, res) { addProperty(res, metaCfg, 'keyType'); addProperty(res, metaCfg, 'valueType'); - addFields(res, metaCfg, 'keyFields'); - addFields(res, metaCfg, 'valueFields'); + addCacheTypeMetadataDatabaseFields(res, metaCfg, 'keyFields'); + addCacheTypeMetadataDatabaseFields(res, metaCfg, 'valueFields'); - addQueryFields(res, metaCfg, 'queryFields'); - addQueryFields(res, metaCfg, 'ascendingFields'); - addQueryFields(res, metaCfg, 'descendingFields'); + addCacheTypeMetadataQueryFields(res, metaCfg, 'queryFields'); + addCacheTypeMetadataQueryFields(res, metaCfg, 'ascendingFields'); + addCacheTypeMetadataQueryFields(res, metaCfg, 'descendingFields'); addListProperty(res, metaCfg, 'textFields'); @@ -511,8 +506,8 @@ function generateCacheConfiguration(cacheCfg, res) { for (var i = 0; i < cacheCfg.indexedTypes.length; i++) { var pair = cacheCfg.indexedTypes[i]; - res.line('<value>' + knownBuildInClasses(pair.keyClass) + '</value>'); - res.line('<value>' + knownBuildInClasses(pair.valueClass) + '</value>'); + res.line('<value>' + generatorUtils.javaBuildInClass(pair.keyClass) + '</value>'); + res.line('<value>' + generatorUtils.javaBuildInClass(pair.valueClass) + '</value>'); } res.endBlock('</list>'); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9018cc4b/modules/web-control-center/src/main/js/views/includes/controls.jade ---------------------------------------------------------------------- diff --git a/modules/web-control-center/src/main/js/views/includes/controls.jade b/modules/web-control-center/src/main/js/views/includes/controls.jade index 340a612..5bca8fc 100644 --- a/modules/web-control-center/src/main/js/views/includes/controls.jade +++ b/modules/web-control-center/src/main/js/views/includes/controls.jade @@ -173,7 +173,7 @@ mixin table-group-item-edit(fieldName, className, direction) button.form-control(ng-model=direction bs-select data-placeholder='Sort' bs-options='item.value as item.label for item in {{sortDirections}}') label.fieldSep / div(style='width: 38%; float: right') - input.form-control(type='text' ng-model=className placeholder='Class name') + input.form-control(type='text' ng-model=className placeholder='Class name' bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes') label.fieldSep / .input-tip input.form-control(type='text' ng-model=fieldName placeholder='Field name') @@ -330,7 +330,7 @@ mixin form-row-custom(lblClasses, fieldClasses) tr(ng-repeat='groupItem in group.fields') td div(ng-show='!tableGroupItemEditing(groupIndex, $index)') - a.labelFormField(ng-click='curGroupItem = tableGroupItemStartEdit(groupIndex, $index); curFieldName = curGroupItem.name; curClassName = curGroupItem.className; curDirection = curGroupItem.direction') {{$index + 1}}) {{groupItem.name}} / {{groupItem.className}} / {{groupItem.direction}} + a.labelFormField(ng-click='curGroupItem = tableGroupItemStartEdit(groupIndex, $index); curFieldName = curGroupItem.name; curClassName = curGroupItem.className; curDirection = curGroupItem.direction') {{$index + 1}}) {{groupItem.name}} / {{groupItem.className}} / {{groupItem.direction ? "DESC" : "ASC"}} +btn-remove('tableRemoveGroupItem(group, $index)', 'field.removeItemTip') div(ng-show='tableGroupItemEditing(groupIndex, $index)') label.labelField {{$index + 1}})