Skip to content

Commit d9994e9

Browse files
authored
JavaSDK v1.13.0 (temporalio#313)
1 parent 7aabfaf commit d9994e9

5 files changed

Lines changed: 18 additions & 25 deletions

File tree

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ dependencies {
3030
implementation(platform("io.opentelemetry:opentelemetry-bom:1.15.0"))
3131
implementation(platform("org.junit:junit-bom:5.8.2"))
3232

33-
implementation group: 'io.temporal', name: 'temporal-sdk', version: '1.12.0'
34-
implementation group: 'io.temporal', name: 'temporal-opentracing', version: '1.12.0'
33+
implementation "io.temporal:temporal-sdk:1.13.0"
34+
implementation "io.temporal:temporal-opentracing:1.13.0"
3535

3636
implementation "com.fasterxml.jackson.core:jackson-databind"
3737
implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.11'
@@ -59,7 +59,7 @@ dependencies {
5959
// we don't update it to 2.1.0 because 2.1.0 requires Java 11
6060
implementation 'com.codingrodent:jackson-json-crypto:1.1.0'
6161

62-
testImplementation("io.temporal:temporal-testing:1.12.0")
62+
testImplementation("io.temporal:temporal-testing:1.13.0")
6363

6464
testImplementation "junit:junit:4.13.2"
6565
testImplementation group: 'org.mockito', name: 'mockito-core', version: '4.6.1'

src/main/java/io/temporal/samples/fileprocessing/FileProcessingWorkflowImpl.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
public class FileProcessingWorkflowImpl implements FileProcessingWorkflow {
3838

3939
// Uses the default task queue shared by the pool of workers.
40-
private final StoreActivities defaultTaskQueueStore;
40+
private final StoreActivities defaultTaskQueueActivities;
4141

4242
public FileProcessingWorkflowImpl() {
4343
// Create activity clients.
@@ -51,22 +51,19 @@ public FileProcessingWorkflowImpl() {
5151
.setDoNotRetry(IllegalArgumentException.class.getName())
5252
.build())
5353
.build();
54-
this.defaultTaskQueueStore = Workflow.newActivityStub(StoreActivities.class, ao);
54+
this.defaultTaskQueueActivities = Workflow.newActivityStub(StoreActivities.class, ao);
5555
}
5656

5757
@Override
5858
public void processFile(URL source, URL destination) {
5959
RetryOptions retryOptions =
6060
RetryOptions.newBuilder().setInitialInterval(Duration.ofSeconds(1)).build();
6161
// Retries the whole sequence on any failure, potentially on a different host.
62-
Workflow.retry(
63-
retryOptions,
64-
Optional.of(Duration.ofSeconds(10)),
65-
() -> processFileImpl(source, destination));
62+
Workflow.retry(retryOptions, Optional.empty(), () -> processFileImpl(source, destination));
6663
}
6764

6865
private void processFileImpl(URL source, URL destination) {
69-
StoreActivities.TaskQueueFileNamePair downloaded = defaultTaskQueueStore.download(source);
66+
StoreActivities.TaskQueueFileNamePair downloaded = defaultTaskQueueActivities.download(source);
7067

7168
// Now initialize stubs that are specific to the returned task queue.
7269
ActivityOptions hostActivityOptions =

src/main/java/io/temporal/samples/hello/HelloException.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ public static class GreetingChildImpl implements GreetingChild {
129129
GreetingActivities.class,
130130
ActivityOptions.newBuilder()
131131
.setStartToCloseTimeout(Duration.ofMinutes(1))
132+
.setScheduleToStartTimeout(Duration.ofSeconds(5))
132133
.setRetryOptions(
133134
RetryOptions.newBuilder()
134135
.setInitialInterval(Duration.ofSeconds(1))

src/test/java/io/temporal/samples/fileprocessing/FileProcessingTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,13 @@
2222
import static org.mockito.ArgumentMatchers.any;
2323
import static org.mockito.Mockito.*;
2424

25-
import io.temporal.api.enums.v1.TimeoutType;
2625
import io.temporal.client.WorkflowOptions;
27-
import io.temporal.failure.TimeoutFailure;
2826
import io.temporal.samples.fileprocessing.StoreActivities.TaskQueueFileNamePair;
2927
import io.temporal.testing.TestWorkflowRule;
3028
import io.temporal.worker.Worker;
3129
import java.net.MalformedURLException;
3230
import java.net.URL;
3331
import org.junit.*;
34-
import org.junit.rules.Timeout;
3532

3633
public class FileProcessingTest {
3734

@@ -60,8 +57,6 @@ public class FileProcessingTest {
6057
.setDoNotStart(true)
6158
.build();
6259

63-
@Rule public Timeout globalTimeout = Timeout.seconds(5);
64-
6560
// Host specific workers.
6661
private Worker workerHost1;
6762
private Worker workerHost2;
@@ -109,7 +104,7 @@ public void testHappyPath() {
109104
testWorkflowRule.getTestEnvironment().shutdown();
110105
}
111106

112-
@Test
107+
@Test(timeout = 30_000)
113108
public void testHostFailover() {
114109
StoreActivities activities = mock(StoreActivities.class);
115110
when(activities.download(any()))
@@ -120,7 +115,12 @@ public void testHostFailover() {
120115

121116
StoreActivities activitiesHost1 = mock(StoreActivities.class);
122117
when(activitiesHost1.process(FILE_NAME_UNPROCESSED))
123-
.thenThrow(new TimeoutFailure("simulated", null, TimeoutType.TIMEOUT_TYPE_START_TO_CLOSE));
118+
.then(
119+
invocation -> {
120+
Thread.sleep(Long.MAX_VALUE);
121+
return "done";
122+
});
123+
124124
workerHost1.registerActivitiesImplementations(activitiesHost1);
125125

126126
StoreActivities activitiesHost2 = mock(StoreActivities.class);

src/test/java/io/temporal/samples/hello/HelloExceptionTest.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import io.temporal.failure.ApplicationFailure;
3333
import io.temporal.failure.ChildWorkflowFailure;
3434
import io.temporal.failure.TimeoutFailure;
35-
import io.temporal.samples.hello.HelloException.GreetingActivities;
3635
import io.temporal.samples.hello.HelloException.GreetingChildImpl;
3736
import io.temporal.samples.hello.HelloException.GreetingWorkflow;
3837
import io.temporal.samples.hello.HelloException.GreetingWorkflowImpl;
@@ -80,18 +79,14 @@ public void testIOException() {
8079
}
8180

8281
@Test
83-
public void testActivityTimeout() {
82+
public void testActivityScheduleToStartTimeout() {
8483
testWorkflowRule
8584
.getWorker()
8685
.registerWorkflowImplementationTypes(
8786
HelloException.GreetingWorkflowImpl.class, GreetingChildImpl.class);
8887

89-
// Mock an activity that times out.
90-
GreetingActivities activities = mock(GreetingActivities.class);
91-
when(activities.composeGreeting(anyString(), anyString()))
92-
.thenThrow(
93-
new TimeoutFailure("simulated", null, TimeoutType.TIMEOUT_TYPE_SCHEDULE_TO_START));
94-
testWorkflowRule.getWorker().registerActivitiesImplementations(activities);
88+
// We don't register an activity implementation on the worker and the activity has 5 seconds
89+
// schedule to start timeout in GreetingChildImpl
9590

9691
testWorkflowRule.getTestEnvironment().start();
9792

0 commit comments

Comments
 (0)