Example usage for com.google.common.util.concurrent SettableFuture create

List of usage examples for com.google.common.util.concurrent SettableFuture create

Introduction

In this page you can find the example usage for com.google.common.util.concurrent SettableFuture create.

Prototype

public static <V> SettableFuture<V> create() 

Source Link

Document

Creates a new SettableFuture that can be completed or cancelled by a later method call.

Usage

From source file:com.microsoft.windowsazure.mobileservices.zumoe2etestapp.framework.log.DaylightLogger.java

private static void uploadBlob(List<TestCase> tests, String blobAccessToken) {
    String urlBlob = "https://daylight.blob.core.windows.net/attachments";

    for (TestCase test : tests) {
        String blobName = test.getFileName();
        String body = test.getLog();

        URI requestUrl = null;/*from w  w w.ja  v  a 2s  . c o m*/

        try {
            requestUrl = new URI(urlBlob + "/" + blobName + "?" + blobAccessToken);
        } catch (URISyntaxException e) {
        }

        test.setFileName(blobName);

        HttpPut request = new HttpPut(requestUrl);
        request.addHeader("x-ms-blob-type", "BlockBlob");

        try {
            request.setEntity(new StringEntity(body, "UTF-8"));
        } catch (UnsupportedEncodingException uee) {
        }

        final SettableFuture<Void> externalFuture = SettableFuture.create();

        ListenableFuture<HttpURLConnection> internalFuture = execute(request);

        Futures.addCallback(internalFuture, new FutureCallback<HttpURLConnection>() {
            @Override
            public void onFailure(Throwable throwable) {
                externalFuture.setException(throwable);
            }

            @Override
            public void onSuccess(HttpURLConnection connection) {
                try {
                    connection.getInputStream();
                    externalFuture.set(null);
                } catch (Throwable throwable) {
                    externalFuture.setException(throwable);
                }
            }
        });

        try {
            externalFuture.get();
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }
}

From source file:com.nicohuysamen.fetchapp.impl.jetty.async.JettyAsyncRequestEngine.java

@SuppressWarnings("unchecked")
private <S, R> ListenableFuture<R> sendRequest(final Class<S> sendClass, final Class<R> receiveClass,
        final String requestMethod, final String method, final S content) {

    final SettableFuture<R> future = SettableFuture.create();
    final ContentExchange exchange = new ContentExchange(true) {
        @Override/*from w  ww . ja  va 2  s .com*/
        protected void onResponseComplete() throws IOException {
            try {
                if (getResponseStatus() >= 200 && getResponseStatus() < 300) {
                    JAXBContext receiveContext = JAXBContext.newInstance("com.nicohuysamen.fetchapp.dto");
                    Unmarshaller unmarshaller = receiveContext.createUnmarshaller();
                    Object response = unmarshaller.unmarshal(new StringReader(getResponseContent()));

                    if ((response instanceof Message && !receiveClass.equals(Message.class))) {
                        LOG.warn("Received {}, expected {} - {}", Message.class, receiveClass,
                                ((Message) response).getMessage());
                        System.err.println(((Message) response).getMessage());
                        future.set(null);
                        return;
                    } else if (!response.getClass().equals(receiveClass)) {
                        LOG.debug("Received {}, expected {} - This is expected, trying to recover.",
                                response.getClass(), receiveClass);
                        receiveContext = JAXBContext.newInstance(receiveClass);
                        unmarshaller = receiveContext.createUnmarshaller();
                        response = unmarshaller.unmarshal(new StringReader(getResponseContent()));
                    }

                    future.set((R) response);
                } else {
                    future.set(null);
                }
            } catch (final JAXBException e) {
                future.setException(e);
                future.set(null);
            } catch (IOException e) {
                future.setException(e);
                future.set(null);
            }
        }
    };

    exchange.setMethod(requestMethod);
    exchange.setRequestHeader(RequestConstants.REQUEST_HEADER_AUTH, authKey);
    exchange.setRequestContentType(RequestConstants.REQUEST_CONTENT_XML);
    exchange.setURL(RequestConstants.generateRequestUrl(method));

    try {
        if (content != null) {
            final JAXBContext sendContext = JAXBContext.newInstance(sendClass);
            final Marshaller marshaller = sendContext.createMarshaller();
            final StringWriter xml = new StringWriter();

            marshaller.marshal(content, xml);
            exchange.setRequestContent(new ByteArrayBuffer(xml.toString()));
        }

        httpClient.send(exchange);

    } catch (final JAXBException e) {
        future.setException(e);
        future.set(null);
    } catch (IOException e) {
        future.setException(e);
        future.set(null);
    }

    return future;
}

From source file:edu.umich.si.inteco.minuku.dao.SemanticLocationDataRecordDAO.java

@Override
public Future<List<SemanticLocationDataRecord>> getAll() throws DAOException {
    final SettableFuture<List<SemanticLocationDataRecord>> settableFuture = SettableFuture.create();
    Firebase locationListRef = new Firebase(Constants.getInstance().getFirebaseUrlForSemanticLocation())
            .child(myUserEmail).child(new SimpleDateFormat("MMddyyyy").format(new Date()).toString());

    locationListRef.addValueEventListener(new ValueEventListener() {
        @Override/*from www.  j  ava2 s  .  com*/
        public void onDataChange(DataSnapshot dataSnapshot) {
            Map<String, SemanticLocationDataRecord> locationListMap = (HashMap<String, SemanticLocationDataRecord>) dataSnapshot
                    .getValue();
            List<SemanticLocationDataRecord> values = (List) locationListMap.values();
            settableFuture.set(values);
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {
            settableFuture.set(null);
        }
    });
    return settableFuture;
}

From source file:com.twitter.heron.statemgr.NullStateManager.java

@Override
public ListenableFuture<Scheduler.SchedulerLocation> getSchedulerLocation(WatchCallback watcher,
        String topologyName) {
    return SettableFuture.create();
}

From source file:org.wso2.andes.kernel.disruptor.inbound.InboundQueueSyncEvent.java

/**
 * Create a event representing a queue change
 *
 * @param encodedQueueInfo encoded information of a
 *                         {@link org.wso2.andes.kernel.subscription.StorageQueue}
 *//*  w w w  .  j av a  2 s.  c om*/
public InboundQueueSyncEvent(String encodedQueueInfo) {
    this.encodedQueueInfo = encodedQueueInfo;
    this.purgedCount = SettableFuture.create();
    this.isEventComplete = SettableFuture.create();
}

From source file:com.facebook.presto.operator.PartitionedLookupSourceFactory.java

@Override
public synchronized ListenableFuture<LookupSource> createLookupSource() {
    if (lookupSourceSupplier != null) {
        return Futures.immediateFuture(lookupSourceSupplier.getLookupSource());
    }/*from  ww w.ja  va 2 s .  co m*/

    SettableFuture<LookupSource> lookupSourceFuture = SettableFuture.create();
    lookupSourceFutures.add(lookupSourceFuture);
    return lookupSourceFuture;
}

From source file:org.opendaylight.netconf.topology.singleton.impl.tx.NetconfWriteOnlyTransaction.java

@Override
public CheckedFuture<Void, TransactionCommitFailedException> submit() {
    LOG.trace("{}: Submit", id);

    final Future<Void> submit = delegate.submit();
    final SettableFuture<Void> settFuture = SettableFuture.create();
    final CheckedFuture<Void, TransactionCommitFailedException> checkedFuture;
    checkedFuture = Futures.makeChecked(settFuture,
            new Function<Exception, TransactionCommitFailedException>() {
                @Nullable//from   w ww  .  j a  va 2  s. c o m
                @Override
                public TransactionCommitFailedException apply(Exception input) {
                    return new TransactionCommitFailedException("Transaction commit failed", input);
                }
            });
    submit.onComplete(new OnComplete<Void>() {
        @Override
        public void onComplete(Throwable throwable, Void object) throws Throwable {
            if (throwable == null) {
                settFuture.set(object);
            } else {
                settFuture.setException(throwable);
            }
        }
    }, actorSystem.dispatcher());
    return checkedFuture;
}

From source file:io.crate.autocomplete.AutoCompleter.java

public ListenableFuture<CompletionResult> complete(String statement) {
    StatementLexer lexer = getLexer(statement);
    final Context ctx = new Context(statement.length());
    List<ListenableFuture<List<String>>> futureCompletions;
    try {/*from  ww w.j  a  v a  2  s. c  om*/
        futureCompletions = innerComplete(lexer, statement, ctx);
    } catch (ParsingException e) {
        return Futures.immediateFuture(new CompletionResult(0, Collections.<String>emptyList()));
    } catch (Throwable t) {
        logger.error(t.getMessage(), t);
        return Futures.immediateFuture(new CompletionResult(0, Collections.<String>emptyList()));
    }

    final SettableFuture<CompletionResult> result = SettableFuture.create();
    Futures.addCallback(Futures.allAsList(futureCompletions), new FutureCallback<List<List<String>>>() {
        @Override
        public void onSuccess(@Nullable List<List<String>> completionsList) {
            if (completionsList == null) {
                result.set(new CompletionResult(0, ImmutableList.<String>of()));
                return;
            }
            if (ctx.parts.size() > 1) {
                Set<String> fullyQualifiedCompletions = new TreeSet<>();
                for (List<String> completions : completionsList) {
                    for (String completion : completions) {
                        ctx.parts.set(ctx.parts.size() - 1, completion);
                        fullyQualifiedCompletions.add(dotJoiner.join(ctx.parts));
                    }
                }
                result.set(new CompletionResult(ctx.startIdx, fullyQualifiedCompletions));
            } else {
                Set<String> uniqueSortedCompletions = new TreeSet<>();
                for (List<String> completions : completionsList) {
                    uniqueSortedCompletions.addAll(completions);
                }
                result.set(new CompletionResult(ctx.startIdx, uniqueSortedCompletions));
            }
        }

        @Override
        public void onFailure(@Nonnull Throwable t) {
            result.setException(t);
        }
    });
    return result;
}

From source file:io.crate.executor.transport.TableCreator.java

public SettableFuture<Long> create(CreateTableAnalyzedStatement statement) {
    final SettableFuture<Long> result = SettableFuture.create();

    // real work done in createTable()
    deleteOrphans(new CreateTableResponseListener(result, statement), statement);
    return result;
}

From source file:edu.umich.si.inteco.minuku.dao.UserSubmissionStatsDAO.java

public Future<UserSubmissionStats> get() {
    final SettableFuture<UserSubmissionStats> future = SettableFuture.create();
    if (myUserEmail != null) {
        Firebase userStatsRef = new Firebase(Constants.getInstance().getFirebaseUrlForUserSubmissionStats())
                .child(myUserEmail).child(new SimpleDateFormat("MMddyyyy").format(new Date()).toString());

        userStatsRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override/*from   ww w .  ja va  2 s .  c o  m*/
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) {
                    UserSubmissionStats stats = dataSnapshot.getValue(UserSubmissionStats.class);
                    future.set(stats);
                } else {
                    future.set(new UserSubmissionStats());
                }
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {

            }
        });
    }
    return future;
}