mirror of
https://github.com/tommyskeff/futur4j.git
synced 2026-01-18 07:16:45 +00:00
release v2.3.4
remove basic wrapper methods
This commit is contained in:
@@ -14,7 +14,7 @@ nexusPublishing {
|
|||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
group = 'dev.tommyjs'
|
group = 'dev.tommyjs'
|
||||||
version = '2.3.3'
|
version = '2.3.4'
|
||||||
|
|
||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
apply plugin: 'com.github.johnrengelman.shadow'
|
apply plugin: 'com.github.johnrengelman.shadow'
|
||||||
@@ -32,9 +32,6 @@ subprojects {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation 'org.jetbrains:annotations:24.1.0'
|
implementation 'org.jetbrains:annotations:24.1.0'
|
||||||
implementation 'org.slf4j:slf4j-api:2.0.12'
|
implementation 'org.slf4j:slf4j-api:2.0.12'
|
||||||
compileOnly 'io.projectreactor:reactor-core:3.6.4'
|
|
||||||
compileOnly 'org.redisson:redisson:3.2.0'
|
|
||||||
|
|
||||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||||
testImplementation 'io.projectreactor:reactor-core:3.6.4'
|
testImplementation 'io.projectreactor:reactor-core:3.6.4'
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
|
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
|
||||||
|
|||||||
42
futur-api/.gitignore
vendored
42
futur-api/.gitignore
vendored
@@ -1,42 +0,0 @@
|
|||||||
.gradle
|
|
||||||
build/
|
|
||||||
!gradle/wrapper/gradle-wrapper.jar
|
|
||||||
!**/src/main/**/build/
|
|
||||||
!**/src/test/**/build/
|
|
||||||
|
|
||||||
### IntelliJ IDEA ###
|
|
||||||
.idea/modules.xml
|
|
||||||
.idea/jarRepositories.xml
|
|
||||||
.idea/compiler.xml
|
|
||||||
.idea/libraries/
|
|
||||||
*.iws
|
|
||||||
*.iml
|
|
||||||
*.ipr
|
|
||||||
out/
|
|
||||||
!**/src/main/**/out/
|
|
||||||
!**/src/test/**/out/
|
|
||||||
|
|
||||||
### Eclipse ###
|
|
||||||
.apt_generated
|
|
||||||
.classpath
|
|
||||||
.factorypath
|
|
||||||
.project
|
|
||||||
.settings
|
|
||||||
.springBeans
|
|
||||||
.sts4-cache
|
|
||||||
bin/
|
|
||||||
!**/src/main/**/bin/
|
|
||||||
!**/src/test/**/bin/
|
|
||||||
|
|
||||||
### NetBeans ###
|
|
||||||
/nbproject/private/
|
|
||||||
/nbbuild/
|
|
||||||
/dist/
|
|
||||||
/nbdist/
|
|
||||||
/.nb-gradle/
|
|
||||||
|
|
||||||
### VS Code ###
|
|
||||||
.vscode/
|
|
||||||
|
|
||||||
### Mac OS ###
|
|
||||||
.DS_Store
|
|
||||||
@@ -3,8 +3,6 @@ package dev.tommyjs.futur.promise;
|
|||||||
import dev.tommyjs.futur.executor.PromiseExecutor;
|
import dev.tommyjs.futur.executor.PromiseExecutor;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.redisson.api.RFuture;
|
|
||||||
import reactor.core.publisher.Mono;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
@@ -148,21 +146,11 @@ public abstract class AbstractPromiseFactory<F> implements PromiseFactory {
|
|||||||
return promise;
|
return promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public <T> @NotNull Promise<T> wrapMono(@NotNull Mono<T> mono) {
|
|
||||||
return wrap(mono.toFuture());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> @NotNull Promise<T> wrap(@NotNull CompletableFuture<T> future) {
|
public <T> @NotNull Promise<T> wrap(@NotNull CompletableFuture<T> future) {
|
||||||
return wrap(future, future);
|
return wrap(future, future);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public <T> @NotNull Promise<T> wrapRedisson(@NotNull RFuture<T> future) {
|
|
||||||
return wrap(future, future);
|
|
||||||
}
|
|
||||||
|
|
||||||
private <T> @NotNull Promise<T> wrap(@NotNull CompletionStage<T> completion, Future<T> future) {
|
private <T> @NotNull Promise<T> wrap(@NotNull CompletionStage<T> completion, Future<T> future) {
|
||||||
Promise<T> promise = unresolved();
|
Promise<T> promise = unresolved();
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,7 @@ package dev.tommyjs.futur.promise;
|
|||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.redisson.api.RFuture;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import reactor.core.publisher.Mono;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -89,10 +87,6 @@ public interface PromiseFactory {
|
|||||||
return race(false, promises);
|
return race(false, promises);
|
||||||
}
|
}
|
||||||
|
|
||||||
<T> @NotNull Promise<T> wrapMono(@NotNull Mono<T> mono);
|
|
||||||
|
|
||||||
<T> @NotNull Promise<T> wrapRedisson(@NotNull RFuture<T> future);
|
|
||||||
|
|
||||||
<T> @NotNull Promise<T> wrap(@NotNull CompletableFuture<T> future);
|
<T> @NotNull Promise<T> wrap(@NotNull CompletableFuture<T> future);
|
||||||
|
|
||||||
default @NotNull Promise<Void> start() {
|
default @NotNull Promise<Void> start() {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package dev.tommyjs.futur;
|
package dev.tommyjs.futur;
|
||||||
|
|
||||||
import dev.tommyjs.futur.executor.PromiseExecutor;
|
|
||||||
import dev.tommyjs.futur.executor.SinglePoolExecutor;
|
import dev.tommyjs.futur.executor.SinglePoolExecutor;
|
||||||
import dev.tommyjs.futur.impl.SimplePromiseFactory;
|
import dev.tommyjs.futur.impl.SimplePromiseFactory;
|
||||||
import dev.tommyjs.futur.promise.Promise;
|
import dev.tommyjs.futur.promise.Promise;
|
||||||
@@ -8,11 +7,9 @@ import dev.tommyjs.futur.promise.PromiseFactory;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import reactor.core.publisher.Mono;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
@@ -22,22 +19,9 @@ public final class PromiseTests {
|
|||||||
private final ScheduledExecutorService executor = Executors.newScheduledThreadPool(5);
|
private final ScheduledExecutorService executor = Executors.newScheduledThreadPool(5);
|
||||||
private final PromiseFactory pfac = new SimplePromiseFactory<>(new SinglePoolExecutor(executor), logger);
|
private final PromiseFactory pfac = new SimplePromiseFactory<>(new SinglePoolExecutor(executor), logger);
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testMono() {
|
|
||||||
Exception value = new Exception("Test Error");
|
|
||||||
|
|
||||||
var error = pfac.wrapMono(Mono.error(value));
|
|
||||||
assert Objects.requireNonNull(error.getCompletion()).isError();
|
|
||||||
assert error.getCompletion().getException() == value;
|
|
||||||
|
|
||||||
var resolved = pfac.wrapMono(Mono.just(value));
|
|
||||||
assert !Objects.requireNonNull(resolved.getCompletion()).isError();
|
|
||||||
assert resolved.getCompletion().getResult() == value;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testShutdown() {
|
public void testShutdown() {
|
||||||
executor.close();
|
executor.shutdown();
|
||||||
Promise<?> promise = pfac.resolve(null).thenSupplyAsync(() -> null);
|
Promise<?> promise = pfac.resolve(null).thenSupplyAsync(() -> null);
|
||||||
try {
|
try {
|
||||||
promise.await();
|
promise.await();
|
||||||
|
|||||||
@@ -5,9 +5,7 @@ import dev.tommyjs.futur.promise.PromiseCompletion;
|
|||||||
import dev.tommyjs.futur.promise.PromiseFactory;
|
import dev.tommyjs.futur.promise.PromiseFactory;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.redisson.api.RFuture;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import reactor.core.publisher.Mono;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -110,18 +108,10 @@ public final class PromiseUtil {
|
|||||||
return pfac.race(cancelRaceLosers, promises);
|
return pfac.race(cancelRaceLosers, promises);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static @NotNull <T> Promise<T> wrapMono(@NotNull Mono<T> mono) {
|
|
||||||
return pfac.wrapMono(mono);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static @NotNull <T> Promise<T> wrap(@NotNull CompletableFuture<T> future) {
|
public static @NotNull <T> Promise<T> wrap(@NotNull CompletableFuture<T> future) {
|
||||||
return pfac.wrap(future);
|
return pfac.wrap(future);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static @NotNull <T> Promise<T> wrapRedisson(@NotNull RFuture<T> future) {
|
|
||||||
return pfac.wrapRedisson(future);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static @NotNull <T> Promise<T> resolve(T value) {
|
public static @NotNull <T> Promise<T> resolve(T value) {
|
||||||
return pfac.resolve(value);
|
return pfac.resolve(value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ public final class StaticPromiseFactory extends AbstractPromiseFactory<Future<?>
|
|||||||
private final static @NotNull Logger LOGGER = LoggerFactory.getLogger(StaticPromiseFactory.class);
|
private final static @NotNull Logger LOGGER = LoggerFactory.getLogger(StaticPromiseFactory.class);
|
||||||
|
|
||||||
private StaticPromiseFactory() {
|
private StaticPromiseFactory() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user