Java Code Examples for net.sf.ehcache.search.Query#includeKeys()
The following examples show how to use
net.sf.ehcache.search.Query#includeKeys() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SDUtil.java From directory-fortress-core with Apache License 2.0 | 5 votes |
/** * Given DSD entry name, clear its corresponding object values from the cache. * * @param name contains the name of object to be cleared. * @param contextId maps to sub-tree in DIT, e.g. ou=contextId, dc=example, dc=com. * * @throws SecurityException in the event of system or rule violation. */ void clearDsdCacheEntry(String name, String contextId) { Attribute<String> context = m_dsdCache.getSearchAttribute(CONTEXT_ID); Attribute<String> dsdName = m_dsdCache.getSearchAttribute(DSD_NAME); Query query = m_dsdCache.createQuery(); query.includeKeys(); query.includeValues(); query.addCriteria(dsdName.eq(name).and(context.eq(contextId))); Results results = query.execute(); for (Result result : results.all()) { m_dsdCache.clear(result.getKey()); } }
Example 2
Source File: SDUtil.java From directory-fortress-core with Apache License 2.0 | 5 votes |
/** * Given a role name, return the set of DSD's that have a matching member. * * @param name contains name of authorized Role used to search the cache. * @param contextId maps to sub-tree in DIT, e.g. ou=contextId, dc=example, dc=com. * @return un-ordered set of matching DSD's. * @throws SecurityException in the event of system or rule violation. */ private Set<SDSet> getDsdCache(String name, String contextId) throws SecurityException { contextId = getContextId(contextId); Set<SDSet> finalSet = new HashSet<>(); Attribute<String> context = m_dsdCache.getSearchAttribute(CONTEXT_ID); Attribute<String> member = m_dsdCache.getSearchAttribute(SchemaConstants.MEMBER_AT); Query query = m_dsdCache.createQuery(); query.includeKeys(); query.includeValues(); query.addCriteria(member.eq(name).and(context.eq(contextId))); Results results = query.execute(); boolean empty = false; for (Result result : results.all()) { DsdCacheEntry entry = (DsdCacheEntry) result.getValue(); if (!entry.isEmpty()) { finalSet.add(entry.getSdSet()); finalSet = putDsdCache(name, contextId); } else { empty = true; } finalSet.add(entry.getSdSet()); } // If nothing was found in the cache, determine if it needs to be seeded: if (finalSet.size() == 0 && !empty) { finalSet = putDsdCache(name, contextId); } return finalSet; }
Example 3
Source File: CacheSample.java From directory-fortress-core with Apache License 2.0 | 5 votes |
void runTests() { loadCache(); Attribute<String> member = cache.getSearchAttribute( "member" ); Query query = cache.createQuery(); query.includeKeys(); query.includeValues(); Set<String> roles = new HashSet<>(); roles.add( "oamt17dsd1" ); roles.add( "oamt17dsd4" ); roles.add( "oamT13DSD6" ); roles.add( "oamT16SDR7" ); query.addCriteria( member.in( roles ) ); Results results = query.execute(); System.out.println( " Size: " + results.size() ); System.out.println( "----Results-----\n" ); Set<SDSet> resultSet = new HashSet<>(); for ( Result result : results.all() ) { DsdCacheEntry entry = ( DsdCacheEntry ) result.getValue(); resultSet.add( entry.getSdSet() ); } for ( SDSet sdSet : resultSet ) { LOG.info( "Found SDSet: " + sdSet.getName() ); } }
Example 4
Source File: SDUtil.java From directory-fortress-core with Apache License 2.0 | 4 votes |
/** * Given a Set of authorized Roles, return the set of DSD's that have matching members. * * @param authorizedRoleSet contains an un-order Set of authorized Roles. * @param contextId maps to sub-tree in DIT, e.g. ou=contextId, dc=example, dc=com. * @return un-ordered set of matching DSD's. * @throws SecurityException in the event of system or rule violation. */ Set<SDSet> getDsdCache(Set<String> authorizedRoleSet, String contextId) throws SecurityException { contextId = getContextId(contextId); Set<SDSet> dsdRetSets = new HashSet<>(); // Need to proceed? if (!CollectionUtils.isNotEmpty( authorizedRoleSet )) { return dsdRetSets; } // Was the DSD Cache switched off? boolean isCacheDisabled = Config.getInstance().getBoolean(IS_DSD_CACHE_DISABLED_PARM, false); // If so, get DSD's from LDAP: if (isCacheDisabled) { SDSet sdSet = new SDSet(); sdSet.setType(SDSet.SDType.DYNAMIC); sdSet.setContextId(contextId); dsdRetSets = sp.search(authorizedRoleSet, sdSet); } // Search the DSD cache for matching Role members: else { // Search on roleName attribute which maps to 'member' attr on the cache record: Attribute<String> member = m_dsdCache.getSearchAttribute(SchemaConstants.MEMBER_AT); Attribute<String> context = m_dsdCache.getSearchAttribute(CONTEXT_ID); Query query = m_dsdCache.createQuery(); query.includeKeys(); query.includeValues(); // Add the passed in authorized Role names to this cache query: Set<String> roles = new HashSet<>(authorizedRoleSet); query.addCriteria(member.in(roles).and(context.eq(contextId))); // Return all DSD cache entries that match roleName to the 'member' attribute in cache entry: Results results = query.execute(); for (Result result : results.all()) { DsdCacheEntry entry = (DsdCacheEntry) result.getValue(); // Do not add dummy DSD sets to the final list: if (!entry.isEmpty()) { dsdRetSets.add(entry.getSdSet()); } // Remove role member from authorizedRoleSet to preclude from upcoming DSD search: //authorizedRoleSet.remove(entry.getMember()); } // Authorized roles remaining in this set correspond to missed cache hits from above: if (authorizedRoleSet.size() > 0) { dsdRetSets = putDsdCache(authorizedRoleSet, contextId); } } return dsdRetSets; }