@Override public Repository connect( String repositoryName ) throws KettleException { IPentahoSession session = PentahoSessionHolder.getSession(); if ( session == null ) { logger.debug( "No active Pentaho Session, attempting to load PDI repository unauthenticated." ); throw new KettleException( "Attempting to create PDI Repository with no Active PentahoSession. " + "This is not allowed." ); } ICacheManager cacheManager = PentahoSystem.getCacheManager( session ); String sessionName = session.getName(); Repository repository = (Repository) cacheManager.getFromRegionCache( REGION, sessionName ); if ( repository == null ) { logger.debug( "Repository not cached for user: " + sessionName + ". Creating new Repository." ); repository = delegate.connect( repositoryName ); if ( !cacheManager.cacheEnabled( REGION ) ) { cacheManager.addCacheRegion( REGION ); } cacheManager.putInRegionCache( REGION, sessionName, repository ); } else { logger.debug( "Repository was cached for user: " + sessionName ); } return repository; } }
private void performAgainstAllInCache( CacheCallable callable ) { Set allKeysFromRegionCache = cacheManager.getAllKeysFromRegionCache( ICacheManager.SESSION ); for ( Object compositeKey : allKeysFromRegionCache ) { Matcher matcher = SESSION_KEY_PATTERN.matcher( compositeKey.toString() ); if ( matcher.matches() ) { String key = matcher.toMatchResult().group( 1 ); if ( ENTRY_COLLECTOR.equals( key ) ) { Object fromRegionCache = cacheManager.getFromRegionCache( ICacheManager.SESSION, compositeKey ); if ( EntryCache.class.isAssignableFrom( fromRegionCache.getClass() ) ) { callable.call( (EntryCache) fromRegionCache ); } } } } }
public DataSource getDataSource( String dsName ) throws DBDatasourceServiceException { DataSource dataSource = null; if ( cacheManager != null ) { if ( !cacheManager.cacheEnabled( IDBDatasourceService.JDBC_DATASOURCE ) ) { cacheManager.addCacheRegion( IDBDatasourceService.JDBC_DATASOURCE ); } Object foundDs = cacheManager.getFromRegionCache( IDBDatasourceService.JDBC_DATASOURCE, dsName ); if ( foundDs != null ) { dataSource = (DataSource) foundDs; } else { dataSource = retrieve( dsName ); } } return dataSource; }
fromCache = null; } else { fromCache = (Principal) cacheManager.getFromRegionCache( ROLE_CACHE_REGION, roleAuthority );
final String tenatedRoleString = JcrTenantUtils.getTenantedRole( role ); if ( cacheManager != null ) { Object rolePrincipal = cacheManager.getFromRegionCache( ROLE_CACHE_REGION, role ); if ( rolePrincipal == null ) { final SpringSecurityRolePrincipal ssRolePrincipal =
.getFromRegionCache( USER_CACHE_REGION, JcrTenantUtils.getTenantedUser( principalName ) ); .getFromRegionCache( ROLE_CACHE_REGION, JcrTenantUtils.getTenantedRole( principalName ) );
String roleName = tenantedRoleNameUtils.getPrincipleName( runtimeRoleName ); String roleId = tenantedRoleNameUtils.getPrincipleId( tenant, runtimeRoleName ); Object fromRegionCache = cacheManager.getFromRegionCache( LOGICAL_ROLE_BINDINGS_REGION, roleId ); if ( fromRegionCache != null ) { cachedBoundLogicalRoleNames.addAll( (Collection<String>) fromRegionCache ); String roleId = tenantedRoleNameUtils.getPrincipleId( tenant, runtimeRoleName ); if ( cacheManager.getFromRegionCache( LOGICAL_ROLE_BINDINGS_REGION, roleId ) == null ) { cacheManager.putInRegionCache( LOGICAL_ROLE_BINDINGS_REGION, roleId, Collections.emptyList() );