in modules/frontend/app/configuration/generator/generator/PlatformGenerator.js [324:418]
static cacheStore(cache, domains, ccfg = this.cacheConfigurationBean(cache)) {
const kind = _.get(cache, 'cacheStoreFactory.kind');
if (kind && cache.cacheStoreFactory[kind]) {
let bean = null;
const storeFactory = cache.cacheStoreFactory[kind];
switch (kind) {
case 'CacheJdbcPojoStoreFactory':
bean = new Bean('org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory', 'cacheStoreFactory',
storeFactory);
const id = bean.valueOf('dataSourceBean');
bean.dataSource(id, 'dataSourceBean', this.dataSourceBean(id, storeFactory.dialect))
.beanProperty('dialect', new EmptyBean(this.dialectClsName(storeFactory.dialect)));
const setType = (typeBean, propName) => {
if (JavaTypes.nonBuiltInClass(typeBean.valueOf(propName)))
typeBean.stringProperty(propName);
else
typeBean.classProperty(propName);
};
const types = _.reduce(domains, (acc, domain) => {
if (_.isNil(domain.databaseTable))
return acc;
const typeBean = new Bean('org.apache.ignite.cache.store.jdbc.JdbcType', 'type',
_.merge({}, domain, {cacheName: cache.name}))
.stringProperty('cacheName');
setType(typeBean, 'keyType');
setType(typeBean, 'valueType');
this.domainStore(domain, typeBean);
acc.push(typeBean);
return acc;
}, []);
bean.arrayProperty('types', 'types', types, 'org.apache.ignite.cache.store.jdbc.JdbcType');
break;
case 'CacheJdbcBlobStoreFactory':
bean = new Bean('org.apache.ignite.cache.store.jdbc.CacheJdbcBlobStoreFactory', 'cacheStoreFactory',
storeFactory);
if (bean.valueOf('connectVia') === 'DataSource')
bean.dataSource(bean.valueOf('dataSourceBean'), 'dataSourceBean', this.dialectClsName(storeFactory.dialect));
else {
ccfg.stringProperty('connectionUrl')
.stringProperty('user')
.property('password', `ds.${storeFactory.user}.password`, 'YOUR_PASSWORD');
}
bean.boolProperty('initSchema')
.stringProperty('createTableQuery')
.stringProperty('loadQuery')
.stringProperty('insertQuery')
.stringProperty('updateQuery')
.stringProperty('deleteQuery');
break;
case 'CacheHibernateBlobStoreFactory':
bean = new Bean('org.apache.ignite.cache.store.hibernate.CacheHibernateBlobStoreFactory',
'cacheStoreFactory', storeFactory);
bean.propsProperty('props', 'hibernateProperties');
break;
default:
}
if (bean)
ccfg.beanProperty('cacheStoreFactory', bean);
}
ccfg.boolProperty('storeKeepBinary')
.boolProperty('loadPreviousValue')
.boolProperty('readThrough')
.boolProperty('writeThrough');
if (ccfg.valueOf('writeBehindEnabled')) {
ccfg.boolProperty('writeBehindEnabled')
.intProperty('writeBehindBatchSize')
.intProperty('writeBehindFlushSize')
.intProperty('writeBehindFlushFrequency')
.intProperty('writeBehindFlushThreadCount');
}
return ccfg;
}