/** * Return the DataSource supplier based on the tenancy mode. */ private DataSourceSupplier dataSource() { switch (serverConfig.getTenantMode()) { case DB: return new MultiTenantDbSupplier(serverConfig.getCurrentTenantProvider(), serverConfig.getTenantDataSourceProvider()); case SCHEMA: return new MultiTenantDbSchemaSupplier(serverConfig.getCurrentTenantProvider(), serverConfig.getDataSource(), serverConfig.getTenantSchemaProvider()); default: return new SimpleDataSourceProvider(serverConfig.getDataSource()); } }
return new DefaultServerCacheManager(localL2Caching, serverConfig.getCurrentTenantProvider(), factory, beanOptions, queryOptions);
/** * Create the TransactionManager */ public TransactionManager(TransactionManagerOptions options) { this.skipCacheAfterWrite = options.config.isSkipCacheAfterWrite(); this.localL2Caching = options.localL2Caching; this.persistBatch = options.config.getPersistBatch(); this.persistBatchOnCascade = options.config.appliedPersistBatchOnCascade(); this.beanDescriptorManager = options.descMgr; this.viewInvalidation = options.descMgr.requiresViewEntityCacheInvalidation(); this.changeLogPrepare = options.descMgr.getChangeLogPrepare(); this.changeLogListener = options.descMgr.getChangeLogListener(); this.clusterManager = options.clusterManager; this.serverName = options.config.getName(); this.backgroundExecutor = options.backgroundExecutor; this.dataSourceSupplier = options.dataSourceSupplier; this.docStoreActive = options.config.getDocStoreConfig().isActive(); this.docStoreUpdateProcessor = options.docStoreUpdateProcessor; this.bulkEventListenerMap = new BulkEventListenerMap(options.config.getBulkTableEventListeners()); this.prefix = ""; this.externalTransPrefix = "e"; this.onQueryOnly = initOnQueryOnly(options.config.getDatabasePlatform().getOnQueryOnly()); CurrentTenantProvider tenantProvider = options.config.getCurrentTenantProvider(); if (tenantProvider == null) { transactionFactory = new TransactionFactoryBasic(this, dataSourceSupplier); } else { transactionFactory = new TransactionFactoryTenant(this, dataSourceSupplier, tenantProvider); } }
this.encryptKeyManager = serverConfig.getEncryptKeyManager(); this.defaultPersistenceContextScope = serverConfig.getPersistenceContextScope(); this.currentTenantProvider = serverConfig.getCurrentTenantProvider();