/** * Retrieves all entries from the LDAP directory under the base DN. * * @param consumer Consumes the matching directory entries. Must not be * {@code null}. */ public void retrieveEntries(final Consumer<ReadOnlyEntry> consumer) { retrieveEntries(MATCH_ANY_FILTER, consumer); }
/** * Retrieves all entries from the LDAP directory under the base DN. * * @param consumer Consumes the matching directory entries. Must not be * {@code null}. */ public void retrieveEntries(final Consumer<ReadOnlyEntry> consumer) { retrieveEntries(MATCH_ANY_FILTER, consumer); }
ldapConnector.retrieveEntries(ldapEntry -> {
ldapConnector.retrieveEntries(ldapEntry -> {
ldapConnector.retrieveEntries(ldapEntry -> {
@Override public void process(final KeyFilter<? super K> keyFilter, final CacheLoaderTask<K, V> cacheLoaderTask, final Executor executor, final boolean fetchValue, final boolean fetchMetadata) { Loggers.LDAP_LOG.trace("[IL0262] LDAP store: Processing key filter for {} cache: fetchValue={} fetchMetadata=", getCacheName(), fetchValue, fetchMetadata); final TaskContext taskContext = new TaskContextImpl(); // TODO consider multi-threaded LDAP retrieval? executor.execute(() -> ldapConnector.retrieveEntries(ldapEntry -> { // Retrieves entire entry, fetchValue / fetchMetadata params are ignored TODO consider if (taskContext.isStopped()) { // TODO Consider pushing task context to LDAP connector routine return; } InfinispanEntry<K,V> infinispanEntry = ldapEntryTransformer.toInfinispanEntry(new LDAPEntry(ldapEntry)); if (keyFilter.accept(infinispanEntry.getKey())) { MarshalledEntry<K,V> marshalledEntry = marshalledEntryFactory.newMarshalledEntry( infinispanEntry.getKey(), infinispanEntry.getValue(), infinispanEntry.getMetadata()); try { cacheLoaderTask.processEntry(marshalledEntry, taskContext); } catch (InterruptedException e) { throw new PersistenceException(e.getMessage(), e); } } })); }
@Override public void process(final KeyFilter<? super K> keyFilter, final CacheLoaderTask<K, V> cacheLoaderTask, final Executor executor, final boolean fetchValue, final boolean fetchMetadata) { Loggers.LDAP_LOG.trace("[IL0262] LDAP store: Processing key filter for {} cache: fetchValue={} fetchMetadata=", getCacheName(), fetchValue, fetchMetadata); final TaskContext taskContext = new TaskContextImpl(); // TODO consider multi-threaded LDAP retrieval? executor.execute(() -> ldapConnector.retrieveEntries(ldapEntry -> { // Retrieves entire entry, fetchValue / fetchMetadata params are ignored TODO consider if (taskContext.isStopped()) { // TODO Consider pushing task context to LDAP connector routine return; } InfinispanEntry<K,V> infinispanEntry = ldapEntryTransformer.toInfinispanEntry(new LDAPEntry(ldapEntry)); if (keyFilter.accept(infinispanEntry.getKey())) { MarshalledEntry<K,V> marshalledEntry = marshalledEntryFactory.newMarshalledEntry( infinispanEntry.getKey(), infinispanEntry.getValue(), infinispanEntry.getMetadata()); try { cacheLoaderTask.processEntry(marshalledEntry, taskContext); } catch (InterruptedException e) { throw new PersistenceException(e.getMessage(), e); } } })); }