cacheLoaderTask.processEntry(marshalledEntry, taskContext);
cacheLoaderTask.processEntry(marshalledEntry, taskContext);
if (filter.accept(key)) { MarshalledEntry<K,V> marshalledEntry = decodeEntry(entry, key, fetchValue, fetchMetadata); task.processEntry(marshalledEntry, taskContext);
@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); } } })); }
@Override public Void call() throws Exception { try { final HashSet<MarshalledEntry> allInternalEntries = new HashSet<MarshalledEntry>(); dir.loadAllEntries(allInternalEntries, Integer.MAX_VALUE, ctx.getMarshaller()); for (MarshalledEntry me : allInternalEntries) { if (taskContext.isStopped()) break; if (filter == null || filter.shouldLoadKey(me.getKey())) { task.processEntry(me, taskContext); } } return null; } catch (Exception e) { log.errorExecutingParallelStoreTask(e); throw e; } } });
@Override public Void call() throws Exception { try { final HashSet<MarshalledEntry> allInternalEntries = new HashSet<>(); dir.loadAllEntries(allInternalEntries, Integer.MAX_VALUE, ctx.getMarshaller()); for (MarshalledEntry me : allInternalEntries) { if (taskContext.isStopped()) break; if (filter == null || filter.accept(me.getKey())) { task.processEntry(me, taskContext); } } return null; } catch (Exception e) { log.errorExecutingParallelStoreTask(e); throw e; } } });