private void close(PushEvent<T> event) { List<PushEventConsumer< ? super T>> toClose; Deferred<Void> toFail = null; synchronized (lock) { if(!closed) { closed = true; toClose = new ArrayList<>(connected); connected.clear(); queue.clear(); if(connectPromise != null) { toFail = connectPromise; connectPromise = null; } } else { toClose = emptyList(); } } toClose.stream().forEach(pec -> doSend(pec, event)); if (toFail != null) { toFail.resolveWith(closedConnectPromise()); } onClose.run(); }
private void close(PushEvent<T> event) { List<PushEventConsumer< ? super T>> toClose; Deferred<Void> toFail = null; synchronized (lock) { if(!closed) { closed = true; toClose = new ArrayList<>(connected); connected.clear(); queue.clear(); if(connectPromise != null) { toFail = connectPromise; connectPromise = null; } } else { toClose = emptyList(); } } toClose.stream().forEach(pec -> doSend(pec, event)); if (toFail != null) { toFail.resolveWith(closedConnectPromise()); } onClose.run(); }
private void close(PushEvent<T> event) { List<PushEventConsumer< ? super T>> toClose; Deferred<Void> toFail = null; synchronized (lock) { if(!closed) { closed = true; toClose = new ArrayList<>(connected); connected.clear(); queue.clear(); if(connectPromise != null) { toFail = connectPromise; connectPromise = null; } } else { toClose = emptyList(); } } toClose.stream().forEach(pec -> doSend(pec, event)); if (toFail != null) { toFail.resolveWith(closedConnectPromise()); } onClose.run(); }
private Promise<List<Artifact>> getArtifacts(Set<URI> cycles, final Collection<URI> uris) { Deferred<List<Artifact>> deferred = promiseFactory.deferred(); promiseFactory.executor() .execute(() -> { try { deferred.resolveWith(uris.stream() .map(uri -> getArtifacts(cycles, base.resolve(uri)).recover(failed -> { if (!defaults.contains(uri)) { logger.info("Failed to get artifacts for %s", uri, failed.getFailure()); } return Collections.emptyList(); })) .collect(toPromise(promiseFactory)) .map(ll -> ll.stream() .flatMap(List::stream) .collect(toList()))); } catch (Throwable e) { deferred.fail(e); } }); return deferred.getPromise(); }
private Promise<List<Artifact>> getArtifacts(Set<URI> cycles, final Collection<URI> uris) { Deferred<List<Artifact>> deferred = promiseFactory.deferred(); promiseFactory.executor() .execute(() -> { try { deferred.resolveWith(uris.stream() .map(uri -> getArtifacts(cycles, base.resolve(uri)).recover(failed -> { if (!defaults.contains(uri)) { logger.info("Failed to get artifacts for %s", uri, failed.getFailure()); } return Collections.emptyList(); })) .collect(toPromise(promiseFactory)) .map(ll -> ll.stream() .flatMap(List::stream) .collect(toList()))); } catch (Throwable e) { deferred.fail(e); } }); return deferred.getPromise(); }
return jars; }); deferred.resolveWith(result); } catch (Throwable e) { deferred.fail(e);
return jars; }); deferred.resolveWith(result); } catch (Throwable e) { deferred.fail(e);
private BridgeRepository getBridge() throws Exception { Promise<BridgeRepository> promise = repository.getPromise(); if (!promise.isDone()) { repository.resolveWith(readFiles()); } return promise.getValue(); }
private BridgeRepository getBridge() throws Exception { Promise<BridgeRepository> promise = repository.getPromise(); if (!promise.isDone()) { repository.resolveWith(readFiles()); } return promise.getValue(); }
private Promise<POM> getPomPromise(final Revision revision) throws Exception { Deferred<POM> deferred; synchronized (poms) { Promise<POM> promise = poms.get(revision); if (promise != null) { return promise; } deferred = promiseFactory.deferred(); poms.put(revision, deferred.getPromise()); } Archive pomArchive = revision.getPomArchive(); deferred.resolveWith(get(pomArchive, false).map(pomFile -> { if (pomFile == null) { return null; } try { return getPom(pomFile); } catch (Exception e) { logger.error("Failed to parse pom {} from file {}", revision, pomFile, e); return null; } })); return deferred.getPromise(); }
private Promise<POM> getPomPromise(final Revision revision) throws Exception { Deferred<POM> deferred; synchronized (poms) { Promise<POM> promise = poms.get(revision); if (promise != null) { return promise; } deferred = promiseFactory.deferred(); poms.put(revision, deferred.getPromise()); } Archive pomArchive = revision.getPomArchive(); deferred.resolveWith(get(pomArchive, false).map(pomFile -> { if (pomFile == null) { return null; } try { return getPom(pomFile); } catch (Exception e) { logger.error("Failed to parse pom {} from file {}", revision, pomFile, e); return null; } })); return deferred.getPromise(); }
@Override public Promise<Void> disableComponents( final boolean async ) { synchronized (enableLock) { if ( m_disablePromise != null) { return m_disablePromise; } wait( m_enablePromise ); List<AbstractComponentManager<S>> cms; synchronized ( m_components ) { m_enabled = false; cms = getDirectComponentManagers( ); clearComponents(); } List<Promise<Void>> promises = new ArrayList<>(); for ( AbstractComponentManager<S> cm : cms ) { promises.add(cm.disable( async )); } m_disablePromise = new Deferred<List<Void>>().resolveWith(Promises.<Void, Void>all(promises)); m_enablePromise = null; return m_disablePromise; } }
@Override public Promise<Void> disableComponents( final boolean async ) { synchronized (enableLock) { if ( m_disablePromise != null) { return m_disablePromise; } wait( m_enablePromise ); List<AbstractComponentManager<S>> cms; synchronized ( m_components ) { m_enabled = false; cms = getDirectComponentManagers( ); clearComponents(); } List<Promise<Void>> promises = new ArrayList<>(); for ( AbstractComponentManager<S> cm : cms ) { promises.add(cm.disable( async )); } m_disablePromise = new Deferred<List<Void>>().resolveWith(Promises.<Void, Void>all(promises)); m_enablePromise = null; return m_disablePromise; } }
m_enablePromise = new Deferred<List<Void>>().resolveWith(Promises.<Void, Void>all(promises)); m_disablePromise = null; return m_enablePromise;
m_enablePromise = new Deferred<List<Void>>().resolveWith(Promises.<Void, Void>all(promises)); m_disablePromise = null; return m_enablePromise;
.isDone()) { Promise<List<Void>> all = promiseFactory.all(promises); freshness.resolveWith(all);
.isDone()) { Promise<List<Void>> all = promiseFactory.all(promises); freshness.resolveWith(all);
freshness.resolveWith(all);
freshness.resolveWith(all);
if(p != null) { try { deferred.resolveWith(p); return deferred.getPromise(); } finally {