List of usage examples for com.google.common.util.concurrent Futures addCallback
public static <V> void addCallback(final ListenableFuture<V> future, final FutureCallback<? super V> callback, Executor executor)
From source file:io.v.discoverysample.MainActivity.java
private void flipAdvertise() { advertiseButton.setEnabled(false);/*from w w w .jav a 2 s. c o m*/ if (advCtx == null) { // not advertising advCtx = rootCtx.withCancel(); Futures.addCallback(discovery.advertise(advCtx, SERVICE_TO_ADVERTISE, NO_PATTERNS), new FutureCallback<ListenableFuture<Void>>() { @Override public void onSuccess(ListenableFuture<Void> result) { // Advertising started. advertiseButton.setText("Stop advertising"); advertiseButton.setEnabled(true); Futures.transform(result, new Function<Void, Void>() { @Override public Void apply(Void input) { // Advertising done. advertiseButton.setText("Advertise"); advertiseButton.setEnabled(true); return null; } }, UiThreadExecutor.INSTANCE); } @Override public void onFailure(final Throwable t) { if (!(t instanceof CanceledException)) { // advertising wasn't stopped via advCtx.cancel() String msg = "Couldn't start advertising: " + t.getMessage(); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show(); } advertiseButton.setText("Advertise"); advertiseButton.setEnabled(true); } }, UiThreadExecutor.INSTANCE); } else { // advertising advCtx.cancel(); advCtx = null; } }
From source file:com.android.tools.idea.monitor.tool.StudioProfilerDeviceManager.java
public StudioProfilerDeviceManager(@NotNull Project project) throws IOException { final File adb = AndroidSdkUtils.getAdb(project); if (adb == null) { throw new IllegalStateException("No adb found"); }/*from www . ja v a 2 s.com*/ //TODO: Spawn the datastore in the right place (service)? myDataStoreService = new DataStoreService(DATASTORE_NAME); // The client is referenced in the update devices callback. As such the client needs to be set before we register // ourself as a listener for this callback. Otherwise we may get the callback before we are fully constructed myClient = new ProfilerClient(DATASTORE_NAME); ListenableFuture<AndroidDebugBridge> future = AdbService.getInstance().getDebugBridge(adb); Futures.addCallback(future, new FutureCallback<AndroidDebugBridge>() { @Override public void onSuccess(@Nullable AndroidDebugBridge bridge) { myBridge = bridge; } @Override public void onFailure(@NotNull Throwable t) { } }, EdtExecutor.INSTANCE); AndroidDebugBridge.addClientChangeListener(this); AndroidDebugBridge.addDeviceChangeListener(this); AndroidDebugBridge.addDebugBridgeChangeListener(this); myLegacyAllocationTracker = new StudioLegacyAllocationTracker(); myDataStoreService.setLegacyAllocationTracker(myLegacyAllocationTracker); }
From source file:com.skcraft.launcher.launch.LaunchSupervisor.java
public void launch(LaunchOptions options) { final Window window = options.getWindow(); final Instance instance = options.getInstance(); final LaunchListener listener = options.getListener(); try {//ww w .j a v a 2 s .c om boolean update = options.getUpdatePolicy().isUpdateEnabled() && instance.isUpdatePending(); // Store last access date Date now = new Date(); instance.setLastAccessed(now); Persistence.commitAndForget(instance); // Perform login final Session session; if (options.getSession() != null) { session = options.getSession(); } else { session = LoginDialog.showLoginRequest(window, launcher); if (session == null) { return; } } // If we have to update, we have to update if (!instance.isInstalled()) { update = true; } if (update) { // Execute the updater Updater updater = new Updater(launcher, instance); updater.setOnline(options.getUpdatePolicy() == UpdatePolicy.ALWAYS_UPDATE || session.isOnline()); ObservableFuture<Instance> future = new ObservableFuture<Instance>( launcher.getExecutor().submit(updater), updater); // Show progress ProgressDialog.showProgress(window, future, SharedLocale.tr("launcher.updatingTitle"), tr("launcher.updatingStatus", instance.getTitle())); SwingHelper.addErrorDialogCallback(window, future); // Update the list of instances after updating future.addListener(new Runnable() { @Override public void run() { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { listener.instancesUpdated(); } }); } }, SwingExecutor.INSTANCE); // On success, launch also Futures.addCallback(future, new FutureCallback<Instance>() { @Override public void onSuccess(Instance result) { launch(window, instance, session, listener); } @Override public void onFailure(Throwable t) { } }, SwingExecutor.INSTANCE); } else { launch(window, instance, session, listener); } } catch (ArrayIndexOutOfBoundsException e) { SwingHelper.showErrorDialog(window, SharedLocale.tr("launcher.noInstanceError"), SharedLocale.tr("launcher.noInstanceTitle")); } }
From source file:com.android.tools.idea.apk.viewer.dex.DexFileViewer.java
public DexFileViewer(@NotNull VirtualFile dexFile) { //noinspection Convert2Lambda // we need a new instance of this disposable every time, not just a lambda method myDisposable = new Disposable() { @Override/*from ww w . jav a2 s . c o m*/ public void dispose() { } }; myLoadingPanel = new JBLoadingPanel(new BorderLayout(), myDisposable); myLoadingPanel.startLoading(); DefaultTreeModel treeModel = new DefaultTreeModel(new LoadingNode()); myTree = new Tree(treeModel); myTree.setRootVisible(true); myTree.setShowsRootHandles(true); new TreeSpeedSearch(myTree, path -> { Object o = path.getLastPathComponent(); if (!(o instanceof PackageTreeNode)) { return ""; } PackageTreeNode node = (PackageTreeNode) o; return node.getName(); }); ColumnTreeBuilder builder = new ColumnTreeBuilder(myTree) .addColumn(new ColumnTreeBuilder.ColumnBuilder().setName("Class").setPreferredWidth(500) .setHeaderAlignment(SwingConstants.LEFT).setRenderer(new PackageTreeNodeRenderer())) .addColumn(new ColumnTreeBuilder.ColumnBuilder().setName("Defined Methods").setPreferredWidth(100) .setHeaderAlignment(SwingConstants.LEFT).setRenderer(new MethodCountRenderer(true))) .addColumn(new ColumnTreeBuilder.ColumnBuilder().setName("Referenced Methods") .setPreferredWidth(100).setHeaderAlignment(SwingConstants.LEFT) .setRenderer(new MethodCountRenderer(false))); JComponent columnTree = builder.build(); myLoadingPanel.add(columnTree, BorderLayout.CENTER); DexParser dexParser = new DexParser(MoreExecutors.listeningDecorator(PooledThreadExecutor.INSTANCE), dexFile); ListenableFuture<PackageTreeNode> future = dexParser.constructMethodRefCountTree(); Futures.addCallback(future, new FutureCallback<PackageTreeNode>() { @Override public void onSuccess(PackageTreeNode result) { myTree.setModel(new DefaultTreeModel(result)); myTree.setRootVisible(false); myLoadingPanel.stopLoading(); } @Override public void onFailure(Throwable t) { } }, EdtExecutor.INSTANCE); SimpleColoredComponent titleComponent = new SimpleColoredComponent(); Futures.addCallback(dexParser.getDexFileStats(), new FutureCallback<DexParser.DexFileStats>() { @Override public void onSuccess(DexParser.DexFileStats result) { titleComponent.setIcon(AllIcons.General.Information); titleComponent.append("This dex file defines "); titleComponent.append(Integer.toString(result.classCount), SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES); titleComponent.append(" classes with "); titleComponent.append(Integer.toString(result.definedMethodCount), SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES); titleComponent.append(" methods, and references "); titleComponent.append(Integer.toString(result.referencedMethodCount), SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES); titleComponent.append(" methods."); } @Override public void onFailure(Throwable t) { } }); myLoadingPanel.add(titleComponent, BorderLayout.NORTH); }
From source file:com.skcraft.plume.common.util.concurrent.DeferredImpl.java
@Override public Deferred<I> fail(Callback<Throwable> onFailure, ListeningExecutorService executor) { Futures.addCallback(future, new FutureCallback<I>() { @Override/* w w w. j a va 2 s . c om*/ public void onSuccess(I result) { } @Override public void onFailure(Throwable t) { try { onFailure.handle(t); } catch (Exception e) { log.log(Level.WARNING, "Exception thrown during callback", e); } } }, executor); return this; }
From source file:com.newlandframework.rpc.netty.MessageRecvExecutor.java
public static void submit(Callable<Boolean> task, final ChannelHandlerContext ctx, final MessageRequest request, final MessageResponse response) { if (threadPoolExecutor == null) { synchronized (MessageRecvExecutor.class) { if (threadPoolExecutor == null) { threadPoolExecutor = MoreExecutors .listeningDecorator((ThreadPoolExecutor) (RpcSystemConfig.isMonitorServerSupport() ? RpcThreadPool.getExecutorWithJmx(threadNums, queueNums) : RpcThreadPool.getExecutor(threadNums, queueNums))); }//from w w w . j a va2 s.c om } } ListenableFuture<Boolean> listenableFuture = threadPoolExecutor.submit(task); Futures.addCallback(listenableFuture, new FutureCallback<Boolean>() { public void onSuccess(Boolean result) { ctx.writeAndFlush(response).addListener(new ChannelFutureListener() { public void operationComplete(ChannelFuture channelFuture) throws Exception { System.out.println("RPC Server Send message-id respone:" + request.getMessageId()); } }); } public void onFailure(Throwable t) { t.printStackTrace(); } }, threadPoolExecutor); }
From source file:org.apache.twill.internal.zookeeper.LeaderElection.java
@Override protected void doStop() { final SettableFuture<String> completion = SettableFuture.create(); Futures.addCallback(completion, new FutureCallback<String>() { @Override//from w w w.j ava2 s . c om public void onSuccess(String result) { try { notifyStopped(); } finally { executor.shutdown(); } } @Override public void onFailure(Throwable t) { try { notifyFailed(t); } finally { executor.shutdown(); } } }, Threads.SAME_THREAD_EXECUTOR); executor.execute(new Runnable() { @Override public void run() { if (watcherCancellable != null) { watcherCancellable.cancel(); } if (state != State.CANCELLED) { // becomeFollower has to be called before deleting node to make sure no two active leader. if (state == State.LEADER) { becomeFollower(); } state = State.CANCELLED; doDeleteNode(completion); } } }); }
From source file:co.cask.cdap.common.service.RetryOnStartFailureService.java
@Override protected void doStop() { startupThread.interrupt();//from w w w . j a v a2 s . c o m Uninterruptibles.joinUninterruptibly(startupThread); Service service = currentDelegate; if (service != null) { Futures.addCallback(service.stop(), new FutureCallback<State>() { @Override public void onSuccess(State result) { notifyStopped(); } @Override public void onFailure(Throwable t) { notifyFailed(t); } }, Threads.SAME_THREAD_EXECUTOR); } else { notifyStopped(); } }
From source file:us.physion.ovation.ui.editor.PlainTextVisualizationFactory.java
@Override public DataVisualization createVisualization(final Content r) { return new AbstractDataVisualization() { @Override//from w w w . ja v a 2 s. c o m public JComponent generatePanel() { class PlainTextArea extends JTextArea { private boolean scrollableTracksViewportWidth = false; @Override public boolean getScrollableTracksViewportWidth() { return scrollableTracksViewportWidth; } private void setScrollableTracksViewportWidth(boolean b) { if (b == scrollableTracksViewportWidth) { return; } scrollableTracksViewportWidth = b; } private void failed() { setText(Bundle.LBL_TextLoadingFailed(ContentUtils.contentLabel(r))); } @Override public void addNotify() { super.addNotify(); ListenableFuture<File> data; try { data = r.getData(); } catch (ResourceNotFoundException ex) { log.warn("Resource not found", ex); failed(); return; } Futures.addCallback(data, new FutureCallback<File>() { @Override public void onSuccess(File f) { try { FileReader fr = new FileReader(f); try { final String text = IOUtils.toString(fr); EventQueue.invokeLater(new Runnable() { @Override public void run() { setText(text); setCaretPosition(0); repaint(); } }); } finally { IOUtils.closeQuietly(fr); } } catch (IOException ex) { log.warn("Could not load text", ex); failed(); } } @Override public void onFailure(Throwable ex) { log.warn("Could not get file", ex); failed(); } }, loadFileExecutors); } } final PlainTextArea t = new PlainTextArea(); t.setEditable(false); t.setText(Bundle.LBL_TextLoading()); ParentWidthPanel panel = new ParentWidthPanel(); panel.add(new JScrollPane(t), BorderLayout.CENTER); { JToolBar toolbar = new JToolBar(SwingConstants.HORIZONTAL); toolbar.setBackground(Color.WHITE); toolbar.add(new JToggleButton(new AbstractAction(Bundle.LBL_LineWrap()) { @Override public void actionPerformed(ActionEvent e) { boolean selected = ((JToggleButton) e.getSource()).isSelected(); t.setLineWrap(selected); t.setScrollableTracksViewportWidth(selected); t.setCaretPosition(0); t.revalidate(); t.repaint(); } })); panel.add(toolbar, BorderLayout.NORTH); } return panel; } @Override public boolean shouldAdd(Content r) { return false; } @Override public void add(Content r) { throw new UnsupportedOperationException(); } @Override public Iterable<? extends OvationEntity> getEntities() { return Sets.newHashSet((OvationEntity) r); } }; }
From source file:org.opendaylight.groupbasedpolicy.renderer.apic.ApicRenderer.java
private void readConfig() { ListenableFuture<Optional<ApicConfig>> dao = dataBroker.newReadOnlyTransaction() .read(LogicalDatastoreType.CONFIGURATION, configIid); Futures.addCallback(dao, new FutureCallback<Optional<ApicConfig>>() { @Override//from www . j a v a 2s. c o m public void onSuccess(final Optional<ApicConfig> result) { if (!result.isPresent()) return; if (result.get() instanceof ApicConfig) { config = (ApicConfig) result.get(); applyConfig(); } } @Override public void onFailure(Throwable t) { LOG.error("Failed to read configuration", t); } }, executor); }