本文整理汇总了Java中org.osgi.util.promise.Deferred.getPromise方法的典型用法代码示例。如果您正苦于以下问题:Java Deferred.getPromise方法的具体用法?Java Deferred.getPromise怎么用?Java Deferred.getPromise使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.osgi.util.promise.Deferred
的用法示例。
在下文中一共展示了Deferred.getPromise方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: restart
import org.osgi.util.promise.Deferred; //导入方法依赖的package包/类
@Override
public Promise<Void> restart() {
Deferred<Void> future = new Deferred<>();
Thread restartThread = new Thread("Restart-Server-Thread") {
@Override
public void run() {
Server.inMaintenance = true;
try {
log.info("Restarting server.");
boolean successStarted = startNewServer();
if (!successStarted) {
throw new Exception("Fail to start new server process.");
}
log.info("Restart server (pid:" + ServerUtil.getCurrentPid() + ")");
future.resolve(null);
} catch (Exception ex) {
future.fail(ex);
}
}
};
restartThread.start();
return future.getPromise();
}
示例2: callAsyncPromise
import org.osgi.util.promise.Deferred; //导入方法依赖的package包/类
@Override
public Promise<String> callAsyncPromise(final int delay) {
final Deferred<String> deferred = new Deferred<String>();
new Thread(new Runnable() {
@Override
public void run() {
if (delay == -1) {
deferred.fail(new ExpectedTestException());
return;
}
sleep(delay);
deferred.resolve("Finished");
}
}).start();
return deferred.getPromise();
}
示例3: getLongResult
import org.osgi.util.promise.Deferred; //导入方法依赖的package包/类
@Override
public Promise<Long> getLongResult() {
Deferred<Long> d = new Deferred<>();
Promise<Long> promise = superSlowService.compute();
promise.onResolve(() -> {
new Thread(new Runnable() {
@Override
public void run() {
d.resolveWith(promise);
}
}).start();
});
Promise<Long> promise2 = d.getPromise();
return promise2;
}
示例4: getNeuralNetwork
import org.osgi.util.promise.Deferred; //导入方法依赖的package包/类
@Override
public Promise<NeuralNetwork> getNeuralNetwork(NeuralNetworkInstanceDTO nni) {
Deferred<NeuralNetwork> result = new Deferred<>();
NeuralNetwork nn = nnServices.get(nni.id);
if(nn!=null){
result.resolve(nn);
return result.getPromise();
}
ToWatch w = new ToWatch();
w.nni = nni;
w.deferred = result;
toWatchFor.put(nni.id, w);
createNeuralNetwork(nni.id);
return result.getPromise();
}
示例5: exceptionPromise
import org.osgi.util.promise.Deferred; //导入方法依赖的package包/类
@Override
public Promise<String> exceptionPromise() throws IOException {
final Deferred<String> deferred = new Deferred<String>();
new Thread(() -> {
sleep(500);
deferred.fail(new IOException("test"));
}).start();
return deferred.getPromise();
}
示例6: createPromiseResult
import org.osgi.util.promise.Deferred; //导入方法依赖的package包/类
private Object createPromiseResult(final Method method, final Object[] args) {
final Deferred<Object> deferred = new Deferred<Object>();
new Thread(new Runnable() {
@Override
public void run() {
try {
deferred.resolve(handleSyncCall(method, args));
} catch (Throwable e) {
deferred.fail(e);
}
}
}).start();
return deferred.getPromise();
}
示例7: compute
import org.osgi.util.promise.Deferred; //导入方法依赖的package包/类
@Override
@Timed
public Promise<Long> compute() {
Deferred<Long> deferred = new Deferred<>();
executor.submit(() -> {
Uninterruptibles.sleepUninterruptibly(3, TimeUnit.SECONDS);
deferred.resolve(42L);
});
return deferred.getPromise();
}
示例8: helloPromise
import org.osgi.util.promise.Deferred; //导入方法依赖的package包/类
@Override
public Promise<String> helloPromise() {
final Deferred<String> deferred = new Deferred<String>();
new Thread(() -> deferred.resolve("Hello")).start();
return deferred.getPromise();
}