Skip to content

Commit 97afdad

Browse files
committed
Update current version to 7.13.5.Final
Refactor of persistence layer that give more flexibility for implementors to implement a different transactional policy without duplicating already existing code. Signed-off-by: fjtirado <ftirados@redhat.com>
1 parent 9bef2f0 commit 97afdad

4 files changed

Lines changed: 10 additions & 23 deletions

File tree

.github/project.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
release:
2-
current-version: 7.13.4.Final
2+
current-version: 7.13.5.Final
33
next-version: 8.0.0-SNAPSHOT

impl/persistence/api/src/main/java/io/serverlessworkflow/impl/persistence/DefaultPersistenceInstanceHandlers.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import static io.serverlessworkflow.impl.WorkflowUtils.safeClose;
1919

20-
import java.time.Duration;
2120
import java.util.Optional;
2221
import java.util.concurrent.ExecutorService;
2322

@@ -27,7 +26,6 @@ public static class Builder {
2726

2827
private final PersistenceInstanceStore store;
2928
private ExecutorService executorService;
30-
private Duration closeTimeout;
3129

3230
private Builder(PersistenceInstanceStore store) {
3331
this.store = store;
@@ -38,17 +36,9 @@ public Builder withExecutorService(ExecutorService executorService) {
3836
return this;
3937
}
4038

41-
public Builder withCloseTimeout(Duration closeTimeout) {
42-
this.closeTimeout = closeTimeout;
43-
return this;
44-
}
45-
4639
public PersistenceInstanceHandlers build() {
4740
return new DefaultPersistenceInstanceHandlers(
48-
new DefaultPersistenceInstanceWriter(
49-
store,
50-
Optional.ofNullable(executorService),
51-
closeTimeout == null ? Duration.ofSeconds(1) : closeTimeout),
41+
new DefaultPersistenceInstanceWriter(store, Optional.ofNullable(executorService)),
5242
new DefaultPersistenceInstanceReader(store),
5343
store);
5444
}

impl/persistence/api/src/main/java/io/serverlessworkflow/impl/persistence/DefaultPersistenceInstanceWriter.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import io.serverlessworkflow.impl.WorkflowContextData;
1919
import io.serverlessworkflow.impl.WorkflowDefinitionData;
20-
import java.time.Duration;
2120
import java.util.Map;
2221
import java.util.Optional;
2322
import java.util.concurrent.CompletableFuture;
@@ -32,18 +31,14 @@ public class DefaultPersistenceInstanceWriter extends AbstractPersistenceInstanc
3231
private final PersistenceInstanceStore store;
3332
private final Map<String, CompletableFuture<Void>> futuresMap = new ConcurrentHashMap<>();
3433
private final Optional<ExecutorService> executorService;
35-
private final Duration closeTimeout;
3634

3735
private static final Logger logger =
3836
LoggerFactory.getLogger(DefaultPersistenceInstanceWriter.class);
3937

4038
protected DefaultPersistenceInstanceWriter(
41-
PersistenceInstanceStore store,
42-
Optional<ExecutorService> executorService,
43-
Duration closeTimeout) {
39+
PersistenceInstanceStore store, Optional<ExecutorService> executorService) {
4440
this.store = store;
4541
this.executorService = executorService;
46-
this.closeTimeout = closeTimeout;
4742
}
4843

4944
@Override
@@ -76,7 +71,7 @@ private void executeTransaction(
7671
try {
7772
transaction.rollback(definition);
7873
} catch (Exception rollEx) {
79-
logger.warn("Exception during rollback. Ignoring it", ex);
74+
logger.warn("Exception during rollback. Ignoring it", rollEx);
8075
}
8176
throw ex;
8277
}

impl/test/src/test/java/io/serverlessworkflow/impl/test/MvStorePersistenceTest.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@
2929
import java.io.IOException;
3030
import java.nio.file.Files;
3131
import java.nio.file.Path;
32-
import java.time.Duration;
3332
import java.util.Collection;
3433
import java.util.Map;
34+
import java.util.concurrent.ExecutorService;
3535
import java.util.concurrent.Executors;
36+
import java.util.concurrent.TimeUnit;
3637
import java.util.stream.Stream;
3738
import org.junit.jupiter.api.Test;
3839

@@ -41,10 +42,10 @@ public class MvStorePersistenceTest {
4142
@Test
4243
void testSimpleRun() throws Exception {
4344
final String dbName = "db-samples/simple.db";
45+
ExecutorService service = Executors.newSingleThreadExecutor();
4446
try (PersistenceInstanceHandlers handlers =
4547
DefaultPersistenceInstanceHandlers.builder(new MVStorePersistenceStore(dbName))
46-
.withExecutorService(Executors.newSingleThreadExecutor())
47-
.withCloseTimeout(Duration.ofMillis(100))
48+
.withExecutorService(service)
4849
.build();
4950
WorkflowApplication application =
5051
PersistenceApplicationBuilder.builder(WorkflowApplication.builder(), handlers.writer())
@@ -54,7 +55,8 @@ void testSimpleRun() throws Exception {
5455
readWorkflowFromClasspath("workflows-samples/simple-expression.yaml"));
5556
assertNoInstance(handlers, definition);
5657
definition.instance(Map.of()).start().join();
57-
handlers.writer().close();
58+
service.shutdown();
59+
service.awaitTermination(100, TimeUnit.MILLISECONDS);
5860
assertNoInstance(handlers, definition);
5961
} finally {
6062
Files.delete(Path.of(dbName));

0 commit comments

Comments
 (0)