You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2017/03/02 09:05:46 UTC
[11/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.pug
new file mode 100644
index 0000000..1eeea84
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.pug
@@ -0,0 +1,39 @@
+//-
+ 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.
+
+include /app/helpers/jade/mixins
+
+-var form = 'statistics'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Statistics
+ ignite-form-field-tooltip.tipLabel
+ | Cache statistics and management settings
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +checkbox('Statistics enabled', `${model}.statisticsEnabled`, '"statisticsEnabled"', 'Flag indicating whether statistics gathering is enabled on this cache')
+ .settings-row
+ +checkbox('Management enabled', `${model}.managementEnabled`, '"managementEnabled"',
+ 'Flag indicating whether management is enabled on this cache<br/>\
+ If enabled the CacheMXBean for each cache is registered in the platform MBean server')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheStatistics')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/store.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/store.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/store.jade
deleted file mode 100644
index ea350f2..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/store.jade
+++ /dev/null
@@ -1,250 +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.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'store'
--var model = 'backupItem'
-
-mixin hibernateField(name, model, items, valid, save, newItem)
- -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
- -var onEnter = valid + ' && (' + save + '); ' + valid + ' && ' + resetOnEnter + ';'
-
- -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
-
- -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
- -var onBlur = valid + ' && ( ' + save + '); ' + resetOnBlur + ';'
-
- div(ignite-on-focus-out=onBlur)
- if block
- block
-
- .input-tip
- +ignite-form-field-input(name, model, false, 'true', 'key=value')(
- data-ignite-property-unique=items
- data-ignite-property-value-specified
- data-ignite-form-field-input-autofocus='true'
-
- ignite-on-enter=onEnter
- ignite-on-escape=onEscape
- )
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Store
- ignite-form-field-tooltip.tipLabel
- | Cache store settings#[br]
- | #[a(href="https://apacheignite.readme.io/docs/persistent-store" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- -var storeFactory = model + '.cacheStoreFactory';
- -var storeFactoryKind = storeFactory + '.kind';
-
- +dropdown('Store factory:', storeFactoryKind, '"cacheStoreFactory"', 'true', 'Not set',
- '[\
- {value: "CacheJdbcPojoStoreFactory", label: "JDBC POJO store factory"},\
- {value: "CacheJdbcBlobStoreFactory", label: "JDBC BLOB store factory"},\
- {value: "CacheHibernateBlobStoreFactory", label: "Hibernate BLOB store factory"},\
- {value: undefined, label: "Not set"}\
- ]',
- 'Factory for persistent storage for cache data\
- <ul>\
- <li>JDBC POJO store factory - Objects are stored in underlying database by using java beans mapping description via reflection backed by JDBC</li>\
- <li>JDBC BLOB store factory - Objects are stored in underlying database in BLOB format backed by JDBC</li>\
- <li>Hibernate BLOB store factory - Objects are stored in underlying database in BLOB format backed by Hibernate</li>\
- </ul>'
- )
- span(ng-show=storeFactoryKind ng-init='__.expanded = true')
- a.customize(ng-show='__.expanded' ng-click='__.expanded = false') Hide settings
- a.customize(ng-hide='__.expanded' ng-click='__.expanded = true') Show settings
- .panel-details(ng-show='__.expanded')
- div(ng-show='#{storeFactoryKind} === "CacheJdbcPojoStoreFactory"')
- -var pojoStoreFactory = storeFactory + '.CacheJdbcPojoStoreFactory'
- -var required = storeFactoryKind + ' === "CacheJdbcPojoStoreFactory"'
-
- .details-row
- +text('Data source bean name:', pojoStoreFactory + '.dataSourceBean',
- '"pojoDataSourceBean"', required, 'Input bean name',
- 'Name of the data source bean in Spring context')
- .details-row
- +dialect('Dialect:', pojoStoreFactory + '.dialect', '"pojoDialect"', required,
- 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect',
- 'Choose JDBC dialect')
- .details-row
- +number('Batch size:', pojoStoreFactory + '.batchSize', '"pojoBatchSize"', true, '512', '1',
- 'Maximum batch size for writeAll and deleteAll operations')
- .details-row
- +number('Thread count:', pojoStoreFactory + '.maximumPoolSize', '"pojoMaximumPoolSize"', true, 'availableProcessors', '1',
- 'Maximum workers thread count.<br/>\
- These threads are responsible for load cache.')
- .details-row
- +number('Maximum write attempts:', pojoStoreFactory + '.maximumWriteAttempts', '"pojoMaximumWriteAttempts"', true, '2', '0',
- 'Maximum write attempts in case of database error')
- .details-row
- +number('Parallel load threshold:', pojoStoreFactory + '.parallelLoadCacheMinimumThreshold', '"pojoParallelLoadCacheMinimumThreshold"', true, '512', '0',
- 'Parallel load cache minimum threshold.<br/>\
- If <b>0</b> then load sequentially.')
- .details-row
- +java-class('Hasher', pojoStoreFactory + '.hasher', '"pojoHasher"', 'true', 'false', 'Hash calculator', required)
- .details-row
- +java-class('Transformer', pojoStoreFactory + '.transformer', '"pojoTransformer"', 'true', 'false', 'Types transformer', required)
- .details-row
- +checkbox('Escape table and filed names', pojoStoreFactory + '.sqlEscapeAll', '"sqlEscapeAll"',
- 'If enabled than all schema, table and field names will be escaped with double quotes (for example: "tableName"."fieldName").<br/>\
- This enforces case sensitivity for field names and also allows having special characters in table and field names.<br/>\
- Escaped names will be used for CacheJdbcPojoStore internal SQL queries.')
- div(ng-show='#{storeFactoryKind} === "CacheJdbcBlobStoreFactory"')
- -var blobStoreFactory = storeFactory + '.CacheJdbcBlobStoreFactory'
- -var blobStoreFactoryVia = blobStoreFactory + '.connectVia'
-
- .details-row
- +dropdown('Connect via:', blobStoreFactoryVia, '"connectVia"', 'true', 'Choose connection method',
- '[\
- {value: "URL", label: "URL"},\
- {value: "DataSource", label: "Data source"}\
- ]',
- 'You can connect to database via:\
- <ul>\
- <li>JDBC URL, for example: jdbc:h2:mem:myDatabase</li>\
- <li>Configured data source</li>\
- </ul>')
- div(ng-show='#{blobStoreFactoryVia} === "URL"')
- -var required = storeFactoryKind + ' === "CacheJdbcBlobStoreFactory" && ' + blobStoreFactoryVia + ' === "URL"'
-
- .details-row
- +text('Connection URL:', blobStoreFactory + '.connectionUrl', '"connectionUrl"', required, 'Input URL',
- 'URL for database access, for example: jdbc:h2:mem:myDatabase')
- .details-row
- +text('User:', blobStoreFactory + '.user', '"user"', required, 'Input user name', 'User name for database access')
- .details-row
- label Note, password will be generated as stub
- div(ng-show='#{blobStoreFactoryVia} !== "URL"')
- -var required = storeFactoryKind + ' === "CacheJdbcBlobStoreFactory" && ' + blobStoreFactoryVia + '!== "URL"'
-
- .details-row
- +text('Data source bean name:', blobStoreFactory + '.dataSourceBean', '"blobDataSourceBean"', required, 'Input bean name',
- 'Name of the data source bean in Spring context')
- .details-row
- +dialect('Database:', blobStoreFactory + '.dialect', '"blobDialect"', required, 'Supported databases:', 'Generic database', 'Choose database')
- .details-row
- +checkbox('Init schema', blobStoreFactory + '.initSchema', '"initSchema"',
- 'Flag indicating whether DB schema should be initialized by Ignite (default behaviour) or was explicitly created by user')
- .details-row
- +text('Create query:', blobStoreFactory + '.createTableQuery', '"createTableQuery"', 'false', 'SQL for table creation',
- 'Query for table creation in underlying database<br/>\
- Default value: create table if not exists ENTRIES (key binary primary key, val binary)')
- .details-row
- +text('Load query:', blobStoreFactory + '.loadQuery', '"loadQuery"', 'false', 'SQL for load entry',
- 'Query for entry load from underlying database<br/>\
- Default value: select * from ENTRIES where key=?')
- .details-row
- +text('Insert query:', blobStoreFactory + '.insertQuery', '"insertQuery"', 'false', 'SQL for insert entry',
- 'Query for insert entry into underlying database<br/>\
- Default value: insert into ENTRIES (key, val) values (?, ?)')
- .details-row
- +text('Update query:', blobStoreFactory + '.updateQuery', '"updateQuery"', 'false', 'SQL for update entry',
- 'Query for update entry in underlying database<br/>\
- Default value: update ENTRIES set val=? where key=?')
- .details-row
- +text('Delete query:', blobStoreFactory + '.deleteQuery', '"deleteQuery"', 'false', 'SQL for delete entry',
- 'Query for delete entry from underlying database<br/>\
- Default value: delete from ENTRIES where key=?')
-
- div(ng-show='#{storeFactoryKind} === "CacheHibernateBlobStoreFactory"')
- -var hibernateStoreFactory = storeFactory + '.CacheHibernateBlobStoreFactory'
- -var hibernateProperties = hibernateStoreFactory + '.hibernateProperties'
-
- .details-row
- +ignite-form-group(ng-form=form ng-model=hibernateProperties)
- ignite-form-field-label
- | Hibernate properties
- ignite-form-group-tooltip
- | List of Hibernate properties#[br]
- | For example: connection.url=jdbc:h2:mem:exampleDb
- ignite-form-group-add(ng-click='tableNewItem(hibernatePropsTbl)')
- | Add new Hibernate property
-
- -var tipUnique = 'Property with such key already exists!'
- -var tipPropertySpecified = 'Property should be present in format key=value!'
-
- .group-content-empty(ng-if='!((#{hibernateProperties} && #{hibernateProperties}.length > 0) || tableNewItemActive(hibernatePropsTbl))')
- | Not defined
- .group-content(ng-show='(#{hibernateProperties} && #{hibernateProperties}.length > 0) || tableNewItemActive(hibernatePropsTbl)')
- table.links-edit(id='hibernateProps' st-table=hibernateProperties)
- tbody
- tr(ng-repeat='item in #{hibernateProperties}')
- td.col-sm-12(ng-hide='tableEditing(hibernatePropsTbl, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, hibernatePropsTbl, $index)') {{item.name}} = {{item.value}}
- +btn-remove('tableRemove(backupItem, hibernatePropsTbl, $index)', '"Remove Property"')
- td.col-sm-12(ng-if='tableEditing(hibernatePropsTbl, $index)')
- +table-pair-edit('hibernatePropsTbl', 'cur', 'Property name', 'Property value', false, false, '{{::hibernatePropsTbl.focusId + $index}}', '$index', '=')
- tfoot(ng-show='tableNewItemActive(hibernatePropsTbl)')
- tr
- td.col-sm-12
- +table-pair-edit('hibernatePropsTbl', 'new', 'Property name', 'Property value', false, false, '{{::hibernatePropsTbl.focusId + $index}}', '-1', '=')
-
-
- .settings-row
- +checkbox('Keep binary in store', model + '.storeKeepBinary', '"storeKeepBinary"',
- 'Flag indicating that CacheStore implementation is working with binary objects instead of Java objects')
- .settings-row
- +checkbox('Load previous value', model + '.loadPreviousValue', '"loadPreviousValue"',
- 'Flag indicating whether value should be loaded from store if it is not in the cache for following cache operations: \
- <ul> \
- <li>IgniteCache.putIfAbsent()</li> \
- <li>IgniteCache.replace()</li> \
- <li>IgniteCache.remove()</li> \
- <li>IgniteCache.getAndPut()</li> \
- <li>IgniteCache.getAndRemove()</li> \
- <li>IgniteCache.getAndReplace()</li> \
- <li> IgniteCache.getAndPutIfAbsent()</li>\
- </ul>')
- .settings-row
- +checkbox('Read-through', model + '.readThrough', '"readThrough"', 'Flag indicating whether read-through caching should be used')
- .settings-row
- +checkbox('Write-through', model + '.writeThrough', '"writeThrough"', 'Flag indicating whether write-through caching should be used')
- .settings-row
- +ignite-form-group
- ignite-form-field-label
- | Write-behind
- ignite-form-group-tooltip
- | Cache write-behind settings#[br]
- | Write-behind is a special mode when updates to cache accumulated and then asynchronously flushed to persistent store as a bulk operation
- .group-content
- -var enabled = model + '.writeBehindEnabled'
-
- .details-row
- +checkbox('Enabled', enabled, '"writeBehindEnabled"', 'Flag indicating whether Ignite should use write-behind behaviour for the cache store')
- .details-row
- +number('Batch size:', model + '.writeBehindBatchSize', '"writeBehindBatchSize"', enabled, '512', '1',
- 'Maximum batch size for write-behind cache store operations<br/>\
- Store operations(get or remove) are combined in a batch of this size to be passed to cache store')
- .details-row
- +number('Flush size:', model + '.writeBehindFlushSize', '"writeBehindFlushSize"', enabled, '10240', '0',
- 'Maximum size of the write-behind cache<br/>\
- If cache size exceeds this value, all cached items are flushed to the cache store and write cache is cleared')
- .details-row
- +number('Flush frequency:', model + '.writeBehindFlushFrequency', '"writeBehindFlushFrequency"', enabled, '5000', '0',
- 'Frequency with which write-behind cache is flushed to the cache store in milliseconds')
- .details-row
- +number('Flush threads count:', model + '.writeBehindFlushThreadCount', '"writeBehindFlushThreadCount"', enabled, '1', '1',
- 'Number of threads that will perform cache flushing')
- .col-sm-6
- +preview-xml-java(model, 'cacheStore', 'domains')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
new file mode 100644
index 0000000..f09bc0b
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
@@ -0,0 +1,250 @@
+//-
+ 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.
+
+include /app/helpers/jade/mixins
+
+-var form = 'store'
+-var model = 'backupItem'
+
+mixin hibernateField(name, model, items, valid, save, newItem)
+ -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
+ -var onEnter = `${valid} && (${save}); ${valid} && ${resetOnEnter};`
+
+ -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
+
+ -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
+ -var onBlur = `${valid} && (${save}); ${resetOnBlur};`
+
+ div(ignite-on-focus-out=onBlur)
+ if block
+ block
+
+ .input-tip
+ +ignite-form-field-input(name, model, false, 'true', 'key=value')(
+ data-ignite-property-unique=items
+ data-ignite-property-value-specified
+ data-ignite-form-field-input-autofocus='true'
+
+ ignite-on-enter=onEnter
+ ignite-on-escape=onEscape
+ )
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Store
+ ignite-form-field-tooltip.tipLabel
+ | Cache store settings#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/persistent-store" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ -var storeFactory = `${model}.cacheStoreFactory`;
+ -var storeFactoryKind = `${storeFactory}.kind`;
+
+ +dropdown('Store factory:', storeFactoryKind, '"cacheStoreFactory"', 'true', 'Not set',
+ '[\
+ {value: "CacheJdbcPojoStoreFactory", label: "JDBC POJO store factory"},\
+ {value: "CacheJdbcBlobStoreFactory", label: "JDBC BLOB store factory"},\
+ {value: "CacheHibernateBlobStoreFactory", label: "Hibernate BLOB store factory"},\
+ {value: undefined, label: "Not set"}\
+ ]',
+ 'Factory for persistent storage for cache data\
+ <ul>\
+ <li>JDBC POJO store factory - Objects are stored in underlying database by using java beans mapping description via reflection backed by JDBC</li>\
+ <li>JDBC BLOB store factory - Objects are stored in underlying database in BLOB format backed by JDBC</li>\
+ <li>Hibernate BLOB store factory - Objects are stored in underlying database in BLOB format backed by Hibernate</li>\
+ </ul>'
+ )
+ span(ng-show=storeFactoryKind ng-init='__.expanded = true')
+ a.customize(ng-show='__.expanded' ng-click='__.expanded = false') Hide settings
+ a.customize(ng-hide='__.expanded' ng-click='__.expanded = true') Show settings
+ .panel-details(ng-show='__.expanded')
+ div(ng-show=`${storeFactoryKind} === 'CacheJdbcPojoStoreFactory'`)
+ -var pojoStoreFactory = `${storeFactory}.CacheJdbcPojoStoreFactory`
+ -var required = `${storeFactoryKind} === 'CacheJdbcPojoStoreFactory'`
+
+ .details-row
+ +text('Data source bean name:', `${pojoStoreFactory}.dataSourceBean`,
+ '"pojoDataSourceBean"', required, 'Input bean name',
+ 'Name of the data source bean in Spring context')
+ .details-row
+ +dialect('Dialect:', `${pojoStoreFactory}.dialect`, '"pojoDialect"', required,
+ 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect',
+ 'Choose JDBC dialect')
+ .details-row
+ +number('Batch size:', `${pojoStoreFactory}.batchSize`, '"pojoBatchSize"', true, '512', '1',
+ 'Maximum batch size for writeAll and deleteAll operations')
+ .details-row
+ +number('Thread count:', `${pojoStoreFactory}.maximumPoolSize`, '"pojoMaximumPoolSize"', true, 'availableProcessors', '1',
+ 'Maximum workers thread count.<br/>\
+ These threads are responsible for load cache.')
+ .details-row
+ +number('Maximum write attempts:', `${pojoStoreFactory}.maximumWriteAttempts`, '"pojoMaximumWriteAttempts"', true, '2', '0',
+ 'Maximum write attempts in case of database error')
+ .details-row
+ +number('Parallel load threshold:', `${pojoStoreFactory}.parallelLoadCacheMinimumThreshold`, '"pojoParallelLoadCacheMinimumThreshold"', true, '512', '0',
+ 'Parallel load cache minimum threshold.<br/>\
+ If <b>0</b> then load sequentially.')
+ .details-row
+ +java-class('Hasher', `${pojoStoreFactory}.hasher`, '"pojoHasher"', 'true', 'false', 'Hash calculator', required)
+ .details-row
+ +java-class('Transformer', `${pojoStoreFactory}.transformer`, '"pojoTransformer"', 'true', 'false', 'Types transformer', required)
+ .details-row
+ +checkbox('Escape table and filed names', `${pojoStoreFactory}.sqlEscapeAll`, '"sqlEscapeAll"',
+ 'If enabled than all schema, table and field names will be escaped with double quotes (for example: "tableName"."fieldName").<br/>\
+ This enforces case sensitivity for field names and also allows having special characters in table and field names.<br/>\
+ Escaped names will be used for CacheJdbcPojoStore internal SQL queries.')
+ div(ng-show=`${storeFactoryKind} === 'CacheJdbcBlobStoreFactory'`)
+ -var blobStoreFactory = `${storeFactory}.CacheJdbcBlobStoreFactory`
+ -var blobStoreFactoryVia = `${blobStoreFactory}.connectVia`
+
+ .details-row
+ +dropdown('Connect via:', blobStoreFactoryVia, '"connectVia"', 'true', 'Choose connection method',
+ '[\
+ {value: "URL", label: "URL"},\
+ {value: "DataSource", label: "Data source"}\
+ ]',
+ 'You can connect to database via:\
+ <ul>\
+ <li>JDBC URL, for example: jdbc:h2:mem:myDatabase</li>\
+ <li>Configured data source</li>\
+ </ul>')
+ div(ng-show=`${blobStoreFactoryVia} === 'URL'`)
+ -var required = `${storeFactoryKind} === 'CacheJdbcBlobStoreFactory' && ${blobStoreFactoryVia} === 'URL'`
+
+ .details-row
+ +text('Connection URL:', `${blobStoreFactory}.connectionUrl`, '"connectionUrl"', required, 'Input URL',
+ 'URL for database access, for example: jdbc:h2:mem:myDatabase')
+ .details-row
+ +text('User:', `${blobStoreFactory}.user`, '"user"', required, 'Input user name', 'User name for database access')
+ .details-row
+ label Note, password will be generated as stub
+ div(ng-show=`${blobStoreFactoryVia} !== 'URL'`)
+ -var required = `${storeFactoryKind} === 'CacheJdbcBlobStoreFactory' && ${blobStoreFactoryVia} !== 'URL'`
+
+ .details-row
+ +text('Data source bean name:', `${blobStoreFactory}.dataSourceBean`, '"blobDataSourceBean"', required, 'Input bean name',
+ 'Name of the data source bean in Spring context')
+ .details-row
+ +dialect('Database:', `${blobStoreFactory}.dialect`, '"blobDialect"', required, 'Supported databases:', 'Generic database', 'Choose database')
+ .details-row
+ +checkbox('Init schema', `${blobStoreFactory}.initSchema`, '"initSchema"',
+ 'Flag indicating whether DB schema should be initialized by Ignite (default behaviour) or was explicitly created by user')
+ .details-row
+ +text('Create query:', `${blobStoreFactory}.createTableQuery`, '"createTableQuery"', 'false', 'SQL for table creation',
+ 'Query for table creation in underlying database<br/>\
+ Default value: create table if not exists ENTRIES (key binary primary key, val binary)')
+ .details-row
+ +text('Load query:', `${blobStoreFactory}.loadQuery`, '"loadQuery"', 'false', 'SQL for load entry',
+ 'Query for entry load from underlying database<br/>\
+ Default value: select * from ENTRIES where key=?')
+ .details-row
+ +text('Insert query:', `${blobStoreFactory}.insertQuery`, '"insertQuery"', 'false', 'SQL for insert entry',
+ 'Query for insert entry into underlying database<br/>\
+ Default value: insert into ENTRIES (key, val) values (?, ?)')
+ .details-row
+ +text('Update query:', `${blobStoreFactory}.updateQuery`, '"updateQuery"', 'false', 'SQL for update entry',
+ 'Query for update entry in underlying database<br/>\
+ Default value: update ENTRIES set val=? where key=?')
+ .details-row
+ +text('Delete query:', `${blobStoreFactory}.deleteQuery`, '"deleteQuery"', 'false', 'SQL for delete entry',
+ 'Query for delete entry from underlying database<br/>\
+ Default value: delete from ENTRIES where key=?')
+
+ div(ng-show=`${storeFactoryKind} === 'CacheHibernateBlobStoreFactory'`)
+ -var hibernateStoreFactory = `${storeFactory}.CacheHibernateBlobStoreFactory`
+ -var hibernateProperties = `${hibernateStoreFactory}.hibernateProperties`
+
+ .details-row
+ +ignite-form-group(ng-form=form ng-model=hibernateProperties)
+ ignite-form-field-label
+ | Hibernate properties
+ ignite-form-group-tooltip
+ | List of Hibernate properties#[br]
+ | For example: connection.url=jdbc:h2:mem:exampleDb
+ ignite-form-group-add(ng-click='tableNewItem(hibernatePropsTbl)')
+ | Add new Hibernate property
+
+ -var tipUnique = 'Property with such key already exists!'
+ -var tipPropertySpecified = 'Property should be present in format key=value!'
+
+ .group-content-empty(ng-if=`!((${hibernateProperties} && ${hibernateProperties}.length > 0) || tableNewItemActive(hibernatePropsTbl))`)
+ | Not defined
+ .group-content(ng-show=`(${hibernateProperties} && ${hibernateProperties}.length > 0) || tableNewItemActive(hibernatePropsTbl)`)
+ table.links-edit(id='hibernateProps' st-table=hibernateProperties)
+ tbody
+ tr(ng-repeat=`item in ${hibernateProperties}`)
+ td.col-sm-12(ng-hide='tableEditing(hibernatePropsTbl, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, hibernatePropsTbl, $index)') {{item.name}} = {{item.value}}
+ +btn-remove('tableRemove(backupItem, hibernatePropsTbl, $index)', '"Remove Property"')
+ td.col-sm-12(ng-if='tableEditing(hibernatePropsTbl, $index)')
+ +table-pair-edit('hibernatePropsTbl', 'cur', 'Property name', 'Property value', false, false, '{{::hibernatePropsTbl.focusId + $index}}', '$index', '=')
+ tfoot(ng-show='tableNewItemActive(hibernatePropsTbl)')
+ tr
+ td.col-sm-12
+ +table-pair-edit('hibernatePropsTbl', 'new', 'Property name', 'Property value', false, false, '{{::hibernatePropsTbl.focusId + $index}}', '-1', '=')
+
+
+ .settings-row
+ +checkbox('Keep binary in store', `${model}.storeKeepBinary`, '"storeKeepBinary"',
+ 'Flag indicating that CacheStore implementation is working with binary objects instead of Java objects')
+ .settings-row
+ +checkbox('Load previous value', `${model}.loadPreviousValue`, '"loadPreviousValue"',
+ 'Flag indicating whether value should be loaded from store if it is not in the cache for following cache operations: \
+ <ul> \
+ <li>IgniteCache.putIfAbsent()</li> \
+ <li>IgniteCache.replace()</li> \
+ <li>IgniteCache.remove()</li> \
+ <li>IgniteCache.getAndPut()</li> \
+ <li>IgniteCache.getAndRemove()</li> \
+ <li>IgniteCache.getAndReplace()</li> \
+ <li> IgniteCache.getAndPutIfAbsent()</li>\
+ </ul>')
+ .settings-row
+ +checkbox('Read-through', `${model}.readThrough`, '"readThrough"', 'Flag indicating whether read-through caching should be used')
+ .settings-row
+ +checkbox('Write-through', `${model}.writeThrough`, '"writeThrough"', 'Flag indicating whether write-through caching should be used')
+ .settings-row
+ +ignite-form-group
+ ignite-form-field-label
+ | Write-behind
+ ignite-form-group-tooltip
+ | Cache write-behind settings#[br]
+ | Write-behind is a special mode when updates to cache accumulated and then asynchronously flushed to persistent store as a bulk operation
+ .group-content
+ -var enabled = `${model}.writeBehindEnabled`
+
+ .details-row
+ +checkbox('Enabled', enabled, '"writeBehindEnabled"', 'Flag indicating whether Ignite should use write-behind behaviour for the cache store')
+ .details-row
+ +number('Batch size:', `${model}.writeBehindBatchSize`, '"writeBehindBatchSize"', enabled, '512', '1',
+ 'Maximum batch size for write-behind cache store operations<br/>\
+ Store operations(get or remove) are combined in a batch of this size to be passed to cache store')
+ .details-row
+ +number('Flush size:', `${model}.writeBehindFlushSize`, '"writeBehindFlushSize"', enabled, '10240', '0',
+ 'Maximum size of the write-behind cache<br/>\
+ If cache size exceeds this value, all cached items are flushed to the cache store and write cache is cleared')
+ .details-row
+ +number('Flush frequency:', `${model}.writeBehindFlushFrequency`, '"writeBehindFlushFrequency"', enabled, '5000', '0',
+ 'Frequency with which write-behind cache is flushed to the cache store in milliseconds')
+ .details-row
+ +number('Flush threads count:', `${model}.writeBehindFlushThreadCount`, '"writeBehindFlushThreadCount"', enabled, '1', '1',
+ 'Number of threads that will perform cache flushing')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheStore', 'domains')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.jade
deleted file mode 100644
index 412ca3a..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.jade
+++ /dev/null
@@ -1,54 +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.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'atomics'
--var model = 'backupItem.atomicConfiguration'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Atomic configuration
- ignite-form-field-tooltip.tipLabel
- | Configuration for atomic data structures#[br]
- | Atomics are distributed across the cluster, essentially enabling performing atomic operations (such as increment-and-get or compare-and-set) with the same globally-visible value#[br]
- | #[a(href="https://apacheignite.readme.io/docs/atomic-types" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target='' id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('Cache mode:', model + '.cacheMode', '"cacheMode"', 'true', 'PARTITIONED',
- '[\
- {value: "LOCAL", label: "LOCAL"},\
- {value: "REPLICATED", label: "REPLICATED"},\
- {value: "PARTITIONED", label: "PARTITIONED"}\
- ]',
- 'Cache modes:\
- <ul>\
- <li>Partitioned - in this mode the overall key set will be divided into partitions and all partitions will be split equally between participating nodes</li>\
- <li>Replicated - in this mode all the keys are distributed to all participating nodes</li>\
- <li>Local - in this mode caches residing on different grid nodes will not know about each other</li>\
- </ul>')
- .settings-row
- +number('Sequence reserve:', model + '.atomicSequenceReserveSize', '"atomicSequenceReserveSize"', 'true', '1000', '0',
- 'Default number of sequence values reserved for IgniteAtomicSequence instances<br/>\
- After a certain number has been reserved, consequent increments of sequence will happen locally, without communication with other nodes, until the next reservation has to be made')
- .settings-row(ng-show='!(#{model}.cacheMode && #{model}.cacheMode != "PARTITIONED")')
- +number('Backups:', model + '.backups', '"backups"', 'true', '0', '0', 'Number of backup nodes')
- .col-sm-6
- +preview-xml-java(model, 'clusterAtomics')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.pug
new file mode 100644
index 0000000..61532ab
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.pug
@@ -0,0 +1,54 @@
+//-
+ 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.
+
+include /app/helpers/jade/mixins
+
+-var form = 'atomics'
+-var model = 'backupItem.atomicConfiguration'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Atomic configuration
+ ignite-form-field-tooltip.tipLabel
+ | Configuration for atomic data structures#[br]
+ | Atomics are distributed across the cluster, essentially enabling performing atomic operations (such as increment-and-get or compare-and-set) with the same globally-visible value#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/atomic-types" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target='' id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Cache mode:', `${model}.cacheMode`, '"cacheMode"', 'true', 'PARTITIONED',
+ '[\
+ {value: "LOCAL", label: "LOCAL"},\
+ {value: "REPLICATED", label: "REPLICATED"},\
+ {value: "PARTITIONED", label: "PARTITIONED"}\
+ ]',
+ 'Cache modes:\
+ <ul>\
+ <li>Partitioned - in this mode the overall key set will be divided into partitions and all partitions will be split equally between participating nodes</li>\
+ <li>Replicated - in this mode all the keys are distributed to all participating nodes</li>\
+ <li>Local - in this mode caches residing on different grid nodes will not know about each other</li>\
+ </ul>')
+ .settings-row
+ +number('Sequence reserve:', `${model}.atomicSequenceReserveSize`, '"atomicSequenceReserveSize"', 'true', '1000', '0',
+ 'Default number of sequence values reserved for IgniteAtomicSequence instances<br/>\
+ After a certain number has been reserved, consequent increments of sequence will happen locally, without communication with other nodes, until the next reservation has to be made')
+ .settings-row(ng-show=`!(${model}.cacheMode && ${model}.cacheMode != "PARTITIONED")`)
+ +number('Backups:', model + '.backups', '"backups"', 'true', '0', '0', 'Number of backup nodes')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterAtomics')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.jade
deleted file mode 100644
index 0366ed8..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.jade
+++ /dev/null
@@ -1,57 +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.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'attributes'
--var model = 'backupItem'
--var userAttributes = model + '.attributes'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label User attributes
- ignite-form-field-tooltip.tipLabel
- | Configuration for Ignite user attributes
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +ignite-form-group(ng-model='#{userAttributes}' ng-form='#{form}')
- ignite-form-field-label
- | User attributes
- ignite-form-group-tooltip
- | User-defined attributes to add to node
- ignite-form-group-add(ng-click='tableNewItem(attributesTbl)')
- | Add user attribute
- .group-content-empty(ng-if='!((#{userAttributes} && #{userAttributes}.length > 0) || tableNewItemActive(attributesTbl))')
- | Not defined
- .group-content(ng-show='(#{userAttributes} && #{userAttributes}.length > 0) || tableNewItemActive(attributesTbl)')
- table.links-edit(id='attributes' st-table=userAttributes)
- tbody
- tr(ng-repeat='item in #{userAttributes} track by $index')
- td.col-sm-12(ng-hide='tableEditing(attributesTbl, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, attributesTbl, $index)') {{item.name}} = {{item.value}}
- +btn-remove('tableRemove(backupItem, attributesTbl, $index)', '"Remove attribute"')
- td.col-sm-12(ng-show='tableEditing(attributesTbl, $index)')
- +table-pair-edit('attributesTbl', 'cur', 'Attribute name', 'Attribute value', false, false, '{{::attributesTbl.focusId + $index}}', '$index', '=')
- tfoot(ng-show='tableNewItemActive(attributesTbl)')
- tr
- td.col-sm-12
- +table-pair-edit('attributesTbl', 'new', 'Attribute name', 'Attribute value', false, false, '{{::attributesTbl.focusId + $index}}', '-1', '=')
- .col-sm-6
- +preview-xml-java(model, 'clusterUserAttributes')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.pug
new file mode 100644
index 0000000..cac122b
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.pug
@@ -0,0 +1,57 @@
+//-
+ 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.
+
+include /app/helpers/jade/mixins
+
+-var form = 'attributes'
+-var model = 'backupItem'
+-var userAttributes = model + '.attributes'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label User attributes
+ ignite-form-field-tooltip.tipLabel
+ | Configuration for Ignite user attributes
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +ignite-form-group(ng-model=`${userAttributes}` ng-form=form)
+ ignite-form-field-label
+ | User attributes
+ ignite-form-group-tooltip
+ | User-defined attributes to add to node
+ ignite-form-group-add(ng-click='tableNewItem(attributesTbl)')
+ | Add user attribute
+ .group-content-empty(ng-if=`!((${userAttributes} && ${userAttributes}.length > 0) || tableNewItemActive(attributesTbl))`)
+ | Not defined
+ .group-content(ng-show=`(${userAttributes} && ${userAttributes}.length > 0) || tableNewItemActive(attributesTbl)`)
+ table.links-edit(id='attributes' st-table=userAttributes)
+ tbody
+ tr(ng-repeat=`item in ${userAttributes} track by $index`)
+ td.col-sm-12(ng-hide='tableEditing(attributesTbl, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, attributesTbl, $index)') {{item.name}} = {{item.value}}
+ +btn-remove('tableRemove(backupItem, attributesTbl, $index)', '"Remove attribute"')
+ td.col-sm-12(ng-show='tableEditing(attributesTbl, $index)')
+ +table-pair-edit('attributesTbl', 'cur', 'Attribute name', 'Attribute value', false, false, '{{::attributesTbl.focusId + $index}}', '$index', '=')
+ tfoot(ng-show='tableNewItemActive(attributesTbl)')
+ tr
+ td.col-sm-12
+ +table-pair-edit('attributesTbl', 'new', 'Attribute name', 'Attribute value', false, false, '{{::attributesTbl.focusId + $index}}', '-1', '=')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterUserAttributes')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.jade
deleted file mode 100644
index f8ec8f9..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.jade
+++ /dev/null
@@ -1,77 +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.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'binary'
--var model = 'backupItem.binaryConfiguration'
--var types = model + '.typeConfigurations'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Binary configuration
- ignite-form-field-tooltip.tipLabel
- | Configuration of specific binary types#[br]
- | #[a(href="https://apacheignite.readme.io/docs/binary-marshaller" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +java-class('ID mapper:', model + '.idMapper', '"idMapper"', 'true', 'false',
- 'Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals<br/>\
- Ignite never writes full strings for field or type names. Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names. It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non - existent and, to gain performance, it is safe to work with hash codes. For the cases when hash codes for different types or fields actually do collide <b>BinaryIdMapper</b> allows to override the automatically generated hash code IDs for the type and field names')
- .settings-row
- +java-class('Name mapper:', model + '.nameMapper', '"nameMapper"', 'true', 'false', 'Maps type/class and field names to different names')
- .settings-row
- +java-class('Serializer:', model + '.serializer', '"serializer"', 'true', 'false', 'Class with custom serialization logic for binary objects')
- .settings-row
- +ignite-form-group()
- ignite-form-field-label
- | Type configurations
- ignite-form-group-tooltip
- | Configuration properties for binary types
- ignite-form-group-add(ng-click='#{types}.push({})')
- | Add new type configuration.
- .group-content-empty(ng-if='!#{types}.length')
- | Not defined
- .group-content(ng-repeat='model in #{types} track by $index')
- hr(ng-if='$index !== 0')
- .settings-row
- +java-class-autofocus('Type name:', 'model.typeName', '"typeName" + $index', 'true', 'true', 'true', 'Type name')
- +table-remove-button(types, 'Remove type configuration')
- .settings-row
- +java-class('ID mapper:', 'model.idMapper', '"idMapper" + $index', 'true', 'false',
- 'Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals<br/>\
- Ignite never writes full strings for field or type/class names.\
- Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names.\
- It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non - existent and,\
- to gain performance, it is safe to work with hash codes.\
- For the cases when hash codes for different types or fields actually do collide <b>BinaryIdMapper</b> allows to override the automatically generated hash code IDs for the type and field names')
- .settings-row
- +java-class('Name mapper:', 'model.nameMapper', '"nameMapper" + $index', 'true', 'false',
- 'Maps type/class and field names to different names')
- .settings-row
- +java-class('Serializer:', 'model.serializer', '"serializer" + $index', 'true', 'false',
- 'Class with custom serialization logic for binary object')
- .settings-row
- +checkbox('Enum', 'model.enum', 'enum', 'Flag indicating that this type is the enum')
-
- .settings-row
- +checkbox('Compact footer', model + '.compactFooter', '"compactFooter"', 'When enabled, Ignite will not write fields metadata when serializing objects(this will increase serialization performance), because internally #[b BinaryMarshaller] already distribute metadata inside cluster')
- .col-sm-6
- +preview-xml-java(model, 'clusterBinary')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.pug
new file mode 100644
index 0000000..ee9f37b
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.pug
@@ -0,0 +1,77 @@
+//-
+ 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.
+
+include /app/helpers/jade/mixins
+
+-var form = 'binary'
+-var model = 'backupItem.binaryConfiguration'
+-var types = model + '.typeConfigurations'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Binary configuration
+ ignite-form-field-tooltip.tipLabel
+ | Configuration of specific binary types#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/binary-marshaller" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +java-class('ID mapper:', model + '.idMapper', '"idMapper"', 'true', 'false',
+ 'Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals<br/>\
+ Ignite never writes full strings for field or type names. Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names. It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non - existent and, to gain performance, it is safe to work with hash codes. For the cases when hash codes for different types or fields actually do collide <b>BinaryIdMapper</b> allows to override the automatically generated hash code IDs for the type and field names')
+ .settings-row
+ +java-class('Name mapper:', model + '.nameMapper', '"nameMapper"', 'true', 'false', 'Maps type/class and field names to different names')
+ .settings-row
+ +java-class('Serializer:', model + '.serializer', '"serializer"', 'true', 'false', 'Class with custom serialization logic for binary objects')
+ .settings-row
+ +ignite-form-group()
+ ignite-form-field-label
+ | Type configurations
+ ignite-form-group-tooltip
+ | Configuration properties for binary types
+ ignite-form-group-add(ng-click=`${types}.push({})`)
+ | Add new type configuration.
+ .group-content-empty(ng-if=`!${types}.length`)
+ | Not defined
+ .group-content(ng-repeat=`model in ${types} track by $index`)
+ hr(ng-if='$index !== 0')
+ .settings-row
+ +java-class-autofocus('Type name:', 'model.typeName', '"typeName" + $index', 'true', 'true', 'true', 'Type name')
+ +table-remove-button(types, 'Remove type configuration')
+ .settings-row
+ +java-class('ID mapper:', 'model.idMapper', '"idMapper" + $index', 'true', 'false',
+ 'Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals<br/>\
+ Ignite never writes full strings for field or type/class names.\
+ Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names.\
+ It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non - existent and,\
+ to gain performance, it is safe to work with hash codes.\
+ For the cases when hash codes for different types or fields actually do collide <b>BinaryIdMapper</b> allows to override the automatically generated hash code IDs for the type and field names')
+ .settings-row
+ +java-class('Name mapper:', 'model.nameMapper', '"nameMapper" + $index', 'true', 'false',
+ 'Maps type/class and field names to different names')
+ .settings-row
+ +java-class('Serializer:', 'model.serializer', '"serializer" + $index', 'true', 'false',
+ 'Class with custom serialization logic for binary object')
+ .settings-row
+ +checkbox('Enum', 'model.enum', 'enum', 'Flag indicating that this type is the enum')
+
+ .settings-row
+ +checkbox('Compact footer', model + '.compactFooter', '"compactFooter"', 'When enabled, Ignite will not write fields metadata when serializing objects(this will increase serialization performance), because internally #[b BinaryMarshaller] already distribute metadata inside cluster')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterBinary')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.jade
deleted file mode 100644
index 41a72c1..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.jade
+++ /dev/null
@@ -1,50 +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.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'cacheKeyCfg'
--var model = 'backupItem.cacheKeyConfiguration'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Cache key configuration
- ignite-form-field-tooltip.tipLabel
- | Cache key configuration allows to collocate objects in a partitioned cache based on field in cache key without explicit usage of annotations on user classes
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +ignite-form-group()
- ignite-form-field-label
- | Cache key configuration
- ignite-form-group-tooltip
- | Cache key configuration
- ignite-form-group-add(ng-click='#{model}.push({})')
- | Add new cache key configuration
- .group-content-empty(ng-if='!#{model}.length')
- | Not defined
- .group-content(ng-repeat='model in #{model} track by $index')
- hr(ng-if='$index !== 0')
- .settings-row
- +java-class-autofocus('Type name:', 'model.typeName', '"cacheKeyTypeName" + $index', 'true', 'true', 'true', 'Type name')
- +table-remove-button(model, 'Remove cache key configuration')
- .settings-row
- +text('Affinity key field name:', 'model.affinityKeyFieldName', '"affinityKeyFieldName" + $index', true, 'Enter field name', 'Affinity key field name')
- .col-sm-6
- +preview-xml-java(model, 'clusterCacheKeyConfiguration')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.pug
new file mode 100644
index 0000000..c2926f5
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.pug
@@ -0,0 +1,50 @@
+//-
+ 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.
+
+include /app/helpers/jade/mixins
+
+-var form = 'cacheKeyCfg'
+-var model = 'backupItem.cacheKeyConfiguration'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Cache key configuration
+ ignite-form-field-tooltip.tipLabel
+ | Cache key configuration allows to collocate objects in a partitioned cache based on field in cache key without explicit usage of annotations on user classes
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +ignite-form-group()
+ ignite-form-field-label
+ | Cache key configuration
+ ignite-form-group-tooltip
+ | Cache key configuration
+ ignite-form-group-add(ng-click=`${model}.push({})`)
+ | Add new cache key configuration
+ .group-content-empty(ng-if=`!${model}.length`)
+ | Not defined
+ .group-content(ng-repeat=`model in ${model} track by $index`)
+ hr(ng-if='$index !== 0')
+ .settings-row
+ +java-class-autofocus('Type name:', 'model.typeName', '"cacheKeyTypeName" + $index', 'true', 'true', 'true', 'Type name')
+ +table-remove-button(model, 'Remove cache key configuration')
+ .settings-row
+ +text('Affinity key field name:', 'model.affinityKeyFieldName', '"affinityKeyFieldName" + $index', true, 'Enter field name', 'Affinity key field name')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterCacheKeyConfiguration')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.jade
deleted file mode 100644
index 259909e..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.jade
+++ /dev/null
@@ -1,86 +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.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'checkpoint'
--var model = 'backupItem.checkpointSpi'
--var CustomCheckpoint = 'model.kind === "Custom"'
--var CacheCheckpoint = 'model.kind === "Cache"'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Checkpointing
- ignite-form-field-tooltip.tipLabel
- | Checkpointing provides an ability to save an intermediate job state#[br]
- | #[a(href="http://apacheignite.readme.io/docs/checkpointing" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row(ng-init='checkpointSpiTbl={type: "checkpointSpi", model: "checkpointSpi", focusId: "kind", ui: "checkpoint-table"}')
- +ignite-form-group()
- ignite-form-field-label
- | Checkpoint SPI configurations
- ignite-form-group-tooltip
- | Checkpoint SPI configurations
- ignite-form-group-add(ng-click='tableNewItem(checkpointSpiTbl)')
- | Add checkpoint SPI
- .group-content-empty(ng-if='!(#{model} && #{model}.length > 0)')
- | Not defined
- .group-content(ng-show='#{model} && #{model}.length > 0' ng-repeat='model in #{model} track by $index')
- hr(ng-if='$index != 0')
- .settings-row
- +dropdown-required-autofocus('Checkpoint SPI:', 'model.kind', '"checkpointKind" + $index', 'true', 'true', 'Choose checkpoint configuration variant', '[\
- {value: "FS", label: "File System"},\
- {value: "Cache", label: "Cache"},\
- {value: "S3", label: "Amazon S3"},\
- {value: "JDBC", label: "Database"},\
- {value: "Custom", label: "Custom"}\
- ]',
- 'Provides an ability to save an intermediate job state\
- <ul>\
- <li>File System - Uses a shared file system to store checkpoints</li>\
- <li>Cache - Uses a cache to store checkpoints</li>\
- <li>Amazon S3 - Uses Amazon S3 to store checkpoints</li>\
- <li>Database - Uses a database to store checkpoints</li>\
- <li>Custom - Custom checkpoint SPI implementation</li>\
- </ul>')
- +table-remove-button(model, 'Remove Checkpoint SPI')
-
- div(ng-show='model.kind === "FS"')
- include ./checkpoint/fs.jade
-
- div(ng-show=CacheCheckpoint)
- .settings-row
- +dropdown-required-empty('Cache:', 'model.Cache.cache', '"checkpointCacheCache"+ $index', 'true', CacheCheckpoint,
- 'Choose cache', 'No caches configured for current cluster', 'clusterCaches', 'Cache to use for storing checkpoints')
- .settings-row
- +java-class('Listener:', 'model.Cache.checkpointListener', '"checkpointCacheListener" + $index', 'true', 'false',
- 'Checkpoint listener implementation class name', CacheCheckpoint)
-
- div(ng-show='model.kind === "S3"')
- include ./checkpoint/s3.jade
-
- div(ng-show='model.kind === "JDBC"')
- include ./checkpoint/jdbc.jade
-
- .settings-row(ng-show=CustomCheckpoint)
- +java-class('Class name:', 'model.Custom.className', '"checkpointCustomClassName" + $index', 'true', CustomCheckpoint,
- 'Custom CheckpointSpi implementation class', CustomCheckpoint)
- .col-sm-6
- +preview-xml-java('backupItem', 'clusterCheckpoint', 'caches')