Skip to content

Commit 94fb37b

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 94fb37b

4 files changed

Lines changed: 10 additions & 22 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 & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@
3232
import java.time.Duration;
3333
import java.util.Collection;
3434
import java.util.Map;
35+
import java.util.concurrent.ExecutorService;
3536
import java.util.concurrent.Executors;
37+
import java.util.concurrent.TimeUnit;
3638
import java.util.stream.Stream;
3739
import org.junit.jupiter.api.Test;
3840

@@ -41,10 +43,10 @@ public class MvStorePersistenceTest {
4143
@Test
4244
void testSimpleRun() throws Exception {
4345
final String dbName = "db-samples/simple.db";
46+
ExecutorService service =Executors.newSingleThreadExecutor();
4447
try (PersistenceInstanceHandlers handlers =
4548
DefaultPersistenceInstanceHandlers.builder(new MVStorePersistenceStore(dbName))
46-
.withExecutorService(Executors.newSingleThreadExecutor())
47-
.withCloseTimeout(Duration.ofMillis(100))
49+
.withExecutorService(service)
4850
.build();
4951
WorkflowApplication application =
5052
PersistenceApplicationBuilder.builder(WorkflowApplication.builder(), handlers.writer())
@@ -54,7 +56,8 @@ void testSimpleRun() throws Exception {
5456
readWorkflowFromClasspath("workflows-samples/simple-expression.yaml"));
5557
assertNoInstance(handlers, definition);
5658
definition.instance(Map.of()).start().join();
57-
handlers.writer().close();
59+
service.shutdown();
60+
service.awaitTermination(100, TimeUnit.MILLISECONDS);
5861
assertNoInstance(handlers, definition);
5962
} finally {
6063
Files.delete(Path.of(dbName));

0 commit comments

Comments
 (0)