diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 71bceb6f..2a58938e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -5,7 +5,7 @@ jobs:
runs-on: ubuntu-22.04
strategy:
matrix:
- java: [ '11', '17', '21' ]
+ java: [ '17', '21' ]
name: Temurin ${{ matrix.java }}
steps:
- uses: actions/checkout@v3
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 098fe1cf..2de646f6 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -17,10 +17,10 @@ jobs:
uses: actions/checkout@v3
with:
fetch-depth: 0
- - name: Set up JDK 11
+ - name: Set up JDK 17
uses: actions/setup-java@v3
with:
- java-version: '11'
+ java-version: '17'
distribution: 'temurin'
cache: maven
- name: Set release version
diff --git a/.sdkmanrc b/.sdkmanrc
index 25b2e5bc..83ec5a0a 100644
--- a/.sdkmanrc
+++ b/.sdkmanrc
@@ -1,3 +1,3 @@
# Enable auto-env through the sdkman_auto_env config
# Add key=value pairs of SDKs to use below
-java=21-librca
+java=17.0.14-librca
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d66f2f78..fd437ab9 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -14,7 +14,7 @@
* Ensure your Pull Request passes tests either locally or via Github Actions (once triggered by a maintainer it will run automatically on your PR)
### Tools needed to do development and execute tests
-* Java 11 (since it's the lowest supported java version to date, although we do support newer versions and execute tests again those as well)
+* Java 17 (since it's the lowest supported java version to date, although we do support newer versions and execute tests again those as well)
* Docker
### Running tests
diff --git a/README.md b/README.md
index fe706c7d..b0792f69 100644
--- a/README.md
+++ b/README.md
@@ -634,6 +634,9 @@ There are a number of users that are using db-scheduler for high throughput use-
See [releases](https://github.com/kagkarlsson/db-scheduler/releases) for release-notes.
+**Upgrading to 16.x**
+* Java 17+ is required now, since we migrated our codebase to Java 17
+
**Upgrading to 15.x**
* Priority is a new opt-in feature. To be able to use it, column `priority` and index `priority_execution_time_idx`
must be added to the database schema. See table definitions for
@@ -659,7 +662,7 @@ See [releases](https://github.com/kagkarlsson/db-scheduler/releases) for release
**Prerequisites**
-* Java 8+
+* Java 17+
* Maven
Follow these steps:
diff --git a/db-scheduler-boot-starter/pom.xml b/db-scheduler-boot-starter/pom.xml
index 7e713152..012c9d9e 100644
--- a/db-scheduler-boot-starter/pom.xml
+++ b/db-scheduler-boot-starter/pom.xml
@@ -94,9 +94,8 @@
- javax.annotation
- javax.annotation-api
- 1.3.2
+ jakarta.annotation
+ jakarta.annotation-api
provided
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/ExecutePicked.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/ExecutePicked.java
index 413593eb..cec79110 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/ExecutePicked.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/ExecutePicked.java
@@ -94,7 +94,7 @@ public void run() {
private void executePickedExecution(Execution execution, CurrentlyExecuting currentlyExecuting) {
final Optional task = taskResolver.resolve(execution.taskInstance.getTaskName());
- if (!task.isPresent()) {
+ if (task.isEmpty()) {
LOG.error(
"Failed to find implementation for task with name '{}'. Should have been excluded in JdbcRepository.",
execution.taskInstance.getTaskName());
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/FetchCandidates.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/FetchCandidates.java
index 1ee9a9a5..cbb82bf5 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/FetchCandidates.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/FetchCandidates.java
@@ -154,7 +154,7 @@ public Optional call() {
final Optional pickedExecution = taskRepository.pick(candidate, clock.now());
- if (!pickedExecution.isPresent()) {
+ if (pickedExecution.isEmpty()) {
// someone else picked id
LOG.debug("Execution picked by another scheduler. Continuing to next due execution.");
schedulerListeners.onCandidateEvent(CandidateEventType.ALREADY_PICKED);
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/DataClassMismatchException.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/DataClassMismatchException.java
index 7a5c9023..b0a9600b 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/DataClassMismatchException.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/DataClassMismatchException.java
@@ -13,8 +13,10 @@
*/
package com.github.kagkarlsson.scheduler.exceptions;
+import java.io.Serial;
+
public class DataClassMismatchException extends DbSchedulerException {
- private static final long serialVersionUID = 6333316294241471977L;
+ @Serial private static final long serialVersionUID = 6333316294241471977L;
public DataClassMismatchException(Class expectedClass, Class actualClass) {
super(
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/DbSchedulerException.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/DbSchedulerException.java
index 4b535823..9ae88461 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/DbSchedulerException.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/DbSchedulerException.java
@@ -13,8 +13,10 @@
*/
package com.github.kagkarlsson.scheduler.exceptions;
+import java.io.Serial;
+
public abstract class DbSchedulerException extends RuntimeException {
- private static final long serialVersionUID = -2132850112553296790L;
+ @Serial private static final long serialVersionUID = -2132850112553296790L;
public DbSchedulerException(String message) {
super(message);
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/ExecutionException.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/ExecutionException.java
index e4b96e3a..551b815b 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/ExecutionException.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/ExecutionException.java
@@ -14,9 +14,10 @@
package com.github.kagkarlsson.scheduler.exceptions;
import com.github.kagkarlsson.scheduler.task.Execution;
+import java.io.Serial;
public class ExecutionException extends TaskInstanceException {
- private static final long serialVersionUID = -4732028463501966553L;
+ @Serial private static final long serialVersionUID = -4732028463501966553L;
private final long version;
public ExecutionException(String message, Execution execution) {
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/FailedToScheduleBatchException.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/FailedToScheduleBatchException.java
index e18346ac..4c2e93d5 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/FailedToScheduleBatchException.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/FailedToScheduleBatchException.java
@@ -13,8 +13,10 @@
*/
package com.github.kagkarlsson.scheduler.exceptions;
+import java.io.Serial;
+
public class FailedToScheduleBatchException extends DbSchedulerException {
- private static final long serialVersionUID = -2132850112553296792L;
+ @Serial private static final long serialVersionUID = -2132850112553296792L;
public FailedToScheduleBatchException(String message) {
super(message);
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/MissingRawDataException.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/MissingRawDataException.java
index 08072a6e..ae2debc3 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/MissingRawDataException.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/MissingRawDataException.java
@@ -13,13 +13,14 @@
*/
package com.github.kagkarlsson.scheduler.exceptions;
+import java.io.Serial;
+
public class MissingRawDataException extends DbSchedulerException {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
public MissingRawDataException(Class> dataClass) {
super(
- String.format(
- "Scheduled execution has typed data, use getData() to read the deserialized object. Data-class : %s",
- dataClass));
+ "Scheduled execution has typed data, use getData() to read the deserialized object. Data-class : %s"
+ .formatted(dataClass));
}
}
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/SerializationException.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/SerializationException.java
index 0d3efc17..56111316 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/SerializationException.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/SerializationException.java
@@ -13,8 +13,10 @@
*/
package com.github.kagkarlsson.scheduler.exceptions;
+import java.io.Serial;
+
public class SerializationException extends DbSchedulerException {
- private static final long serialVersionUID = -5209721067354085350L;
+ @Serial private static final long serialVersionUID = -5209721067354085350L;
public SerializationException(String msg, Throwable cause) {
super(msg, cause);
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceCurrentlyExecutingException.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceCurrentlyExecutingException.java
index fe2f121d..ac5410ff 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceCurrentlyExecutingException.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceCurrentlyExecutingException.java
@@ -13,8 +13,10 @@
*/
package com.github.kagkarlsson.scheduler.exceptions;
+import java.io.Serial;
+
public class TaskInstanceCurrentlyExecutingException extends TaskInstanceException {
- private static final long serialVersionUID = 6016933189040296444L;
+ @Serial private static final long serialVersionUID = 6016933189040296444L;
public TaskInstanceCurrentlyExecutingException(String taskName, String instanceId) {
super(
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceException.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceException.java
index 8c706f93..e1e7fdf9 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceException.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceException.java
@@ -13,21 +13,23 @@
*/
package com.github.kagkarlsson.scheduler.exceptions;
+import java.io.Serial;
+
public class TaskInstanceException extends DbSchedulerException {
- private static final long serialVersionUID = -2132850112553296791L;
+ @Serial private static final long serialVersionUID = -2132850112553296791L;
private static final String TASK_NAME_INSTANCE_MESSAGE_PART = " (task name: %s, instance id: %s)";
private final String taskName;
private final String instanceId;
public TaskInstanceException(String message, String taskName, String instanceId, Throwable ex) {
- super(message + String.format(TASK_NAME_INSTANCE_MESSAGE_PART, taskName, instanceId), ex);
+ super(message + TASK_NAME_INSTANCE_MESSAGE_PART.formatted(taskName, instanceId), ex);
this.taskName = taskName;
this.instanceId = instanceId;
}
public TaskInstanceException(String message, String taskName, String instanceId) {
- super(message + String.format(TASK_NAME_INSTANCE_MESSAGE_PART, taskName, instanceId));
+ super(message + TASK_NAME_INSTANCE_MESSAGE_PART.formatted(taskName, instanceId));
this.taskName = taskName;
this.instanceId = instanceId;
}
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceNotFoundException.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceNotFoundException.java
index cd9aa985..edd68d2c 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceNotFoundException.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/exceptions/TaskInstanceNotFoundException.java
@@ -13,8 +13,10 @@
*/
package com.github.kagkarlsson.scheduler.exceptions;
+import java.io.Serial;
+
public class TaskInstanceNotFoundException extends TaskInstanceException {
- private static final long serialVersionUID = -3604591431614052358L;
+ @Serial private static final long serialVersionUID = -3604591431614052358L;
public TaskInstanceNotFoundException(String taskName, String instanceId) {
super("Failed to perform action on task because it was not found.", taskName, instanceId);
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/helper/PlainScheduleAndData.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/helper/PlainScheduleAndData.java
index a29389c5..37a69aaa 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/helper/PlainScheduleAndData.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/helper/PlainScheduleAndData.java
@@ -14,11 +14,12 @@
package com.github.kagkarlsson.scheduler.task.helper;
import com.github.kagkarlsson.scheduler.task.schedule.Schedule;
+import java.io.Serial;
import java.io.Serializable;
import java.util.Objects;
public class PlainScheduleAndData implements ScheduleAndData, Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private final Schedule schedule;
private final Object data;
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/CompositeParser.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/CompositeParser.java
index f2ea6b69..90e646fd 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/CompositeParser.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/CompositeParser.java
@@ -29,8 +29,7 @@ private CompositeParser(List delegates) {
public Optional parse(String scheduleString) {
return delegates.stream()
.map(it -> it.parse(scheduleString))
- .filter(Optional::isPresent)
- .map(Optional::get)
+ .flatMap(Optional::stream)
.findFirst();
}
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/CronSchedule.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/CronSchedule.java
index 170d0831..1cad92f5 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/CronSchedule.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/CronSchedule.java
@@ -19,6 +19,7 @@
import com.cronutils.model.time.ExecutionTime;
import com.cronutils.parser.CronParser;
import com.github.kagkarlsson.scheduler.task.ExecutionComplete;
+import java.io.Serial;
import java.io.Serializable;
import java.time.Duration;
import java.time.Instant;
@@ -32,7 +33,7 @@
/** Spring-style cron-pattern schedule */
public class CronSchedule implements Schedule, Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private static final String DISABLED = "-";
private static final Logger LOG = LoggerFactory.getLogger(CronSchedule.class);
@@ -76,7 +77,7 @@ public Instant getNextExecutionTime(ExecutionComplete executionComplete) {
ZonedDateTime lastDone = ZonedDateTime.ofInstant(executionComplete.getTimeDone(), zoneId);
Optional nextTime = cronExecutionTime.nextExecution(lastDone);
- if (!nextTime.isPresent()) {
+ if (nextTime.isEmpty()) {
LOG.error(
"Cron-pattern did not return any further execution-times. This behavior is currently "
+ "not supported by the scheduler. Setting next execution-time to far-future, "
@@ -126,7 +127,7 @@ private CronType getCronType(CronStyle cronStyle) {
return CronType.SPRING53;
default:
throw new IllegalArgumentException(
- String.format("No cron definition found for %s", this.cronStyle));
+ "No cron definition found for %s".formatted(this.cronStyle));
}
}
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/Daily.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/Daily.java
index 614d2607..eb2c8c43 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/Daily.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/Daily.java
@@ -14,6 +14,7 @@
package com.github.kagkarlsson.scheduler.task.schedule;
import com.github.kagkarlsson.scheduler.task.ExecutionComplete;
+import java.io.Serial;
import java.io.Serializable;
import java.time.Instant;
import java.time.LocalDate;
@@ -27,7 +28,7 @@
public class Daily implements Schedule, Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private final List times;
private final ZoneId zone;
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/FixedDelay.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/FixedDelay.java
index 5fd4daad..57f78c57 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/FixedDelay.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/FixedDelay.java
@@ -14,6 +14,7 @@
package com.github.kagkarlsson.scheduler.task.schedule;
import com.github.kagkarlsson.scheduler.task.ExecutionComplete;
+import java.io.Serial;
import java.io.Serializable;
import java.time.Duration;
import java.time.Instant;
@@ -21,7 +22,7 @@
public class FixedDelay implements Schedule, Serializable {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private final Duration duration;
diff --git a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/PersistentCronSchedule.java b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/PersistentCronSchedule.java
index 5beefb51..e1b65eb7 100644
--- a/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/PersistentCronSchedule.java
+++ b/db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/task/schedule/PersistentCronSchedule.java
@@ -14,10 +14,11 @@
package com.github.kagkarlsson.scheduler.task.schedule;
import com.github.kagkarlsson.scheduler.task.helper.ScheduleAndData;
+import java.io.Serial;
import java.time.ZoneId;
public class PersistentCronSchedule implements ScheduleAndData {
- private static final long serialVersionUID = 1L;
+ @Serial private static final long serialVersionUID = 1L;
private final String cronPattern;
private final String zoneId;
private final Object data;
diff --git a/db-scheduler/src/test/java/com/github/kagkarlsson/scheduler/ScheduledExecutionTest.java b/db-scheduler/src/test/java/com/github/kagkarlsson/scheduler/ScheduledExecutionTest.java
index e831b5cb..a14b75a4 100644
--- a/db-scheduler/src/test/java/com/github/kagkarlsson/scheduler/ScheduledExecutionTest.java
+++ b/db-scheduler/src/test/java/com/github/kagkarlsson/scheduler/ScheduledExecutionTest.java
@@ -37,11 +37,11 @@ public void test_data_class_type_equals() {
Instant now = Instant.now();
OneTimeTask task =
TestTasks.oneTime("OneTime", Integer.class, (instance, executionContext) -> {});
- Execution execution = new Execution(now, task.instance("id1", new Integer(1)));
+ Execution execution = new Execution(now, task.instance("id1", Integer.valueOf(1)));
ScheduledExecution scheduledExecution =
new ScheduledExecution<>(Integer.class, execution);
- assertEquals(new Integer(1), scheduledExecution.getData());
+ assertEquals(Integer.valueOf(1), scheduledExecution.getData());
}
@Test
@@ -55,7 +55,7 @@ public void test_data_class_type_not_equals() {
TestTasks.oneTime("OneTime", Integer.class, (instance, executionContext) -> {});
Execution execution =
new Execution(
- now, task.instance("id1", new Integer(1))); // Data class is an integer
+ now, task.instance("id1", Integer.valueOf(1))); // Data class is an integer
new ScheduledExecution<>(String.class, execution)
.getData(); // Instantiate with incorrect type
diff --git a/db-scheduler/src/test/java/com/github/kagkarlsson/scheduler/serializer/jackson/ScheduleAndDataForTest.java b/db-scheduler/src/test/java/com/github/kagkarlsson/scheduler/serializer/jackson/ScheduleAndDataForTest.java
index 63cd7f28..66e7ff6d 100644
--- a/db-scheduler/src/test/java/com/github/kagkarlsson/scheduler/serializer/jackson/ScheduleAndDataForTest.java
+++ b/db-scheduler/src/test/java/com/github/kagkarlsson/scheduler/serializer/jackson/ScheduleAndDataForTest.java
@@ -2,9 +2,12 @@
import com.github.kagkarlsson.scheduler.task.helper.ScheduleAndData;
import com.github.kagkarlsson.scheduler.task.schedule.CronSchedule;
+import java.io.Serial;
public class ScheduleAndDataForTest implements ScheduleAndData {
+ @Serial
private static final long serialVersionUID = 1L; // recommended when using Java serialization
+
private final CronSchedule schedule;
private final Long id;
diff --git a/examples/features/pom.xml b/examples/features/pom.xml
index 3e86e49c..9b756c3f 100644
--- a/examples/features/pom.xml
+++ b/examples/features/pom.xml
@@ -130,7 +130,7 @@
- 1.8
+ ${jdk.version}
kotlinx-serialization
diff --git a/examples/spring-boot-example/src/main/java/com/github/kagkarlsson/examples/boot/config/MultiInstanceRecurringConfiguration.java b/examples/spring-boot-example/src/main/java/com/github/kagkarlsson/examples/boot/config/MultiInstanceRecurringConfiguration.java
index ac621343..9a7a9be2 100644
--- a/examples/spring-boot-example/src/main/java/com/github/kagkarlsson/examples/boot/config/MultiInstanceRecurringConfiguration.java
+++ b/examples/spring-boot-example/src/main/java/com/github/kagkarlsson/examples/boot/config/MultiInstanceRecurringConfiguration.java
@@ -35,7 +35,7 @@ public class MultiInstanceRecurringConfiguration {
/** Start the example */
public static void start(ExampleContext ctx) {
- CronSchedule cron = new CronSchedule(String.format("%s * * * * *", new Random().nextInt(59)));
+ CronSchedule cron = new CronSchedule("%s * * * * *".formatted(new Random().nextInt(59)));
Customer customer = new Customer(String.valueOf(new Random().nextInt(10000)));
ScheduleAndCustomer data = new ScheduleAndCustomer(cron, customer);
@@ -59,9 +59,8 @@ public Task multiInstanceRecurring() {
ScheduleAndCustomer data = taskInstance.getData();
EventLogger.logTask(
MULTI_INSTANCE_RECURRING_TASK,
- String.format(
- "Ran according to schedule '%s' for customer %s",
- data.getSchedule(), data.getData()));
+ "Ran according to schedule '%s' for customer %s"
+ .formatted(data.getSchedule(), data.getData()));
});
}
diff --git a/examples/spring-boot-example/src/main/java/com/github/kagkarlsson/examples/boot/config/ParallellJobConfiguration.java b/examples/spring-boot-example/src/main/java/com/github/kagkarlsson/examples/boot/config/ParallellJobConfiguration.java
index afad0ac4..f8456ec7 100644
--- a/examples/spring-boot-example/src/main/java/com/github/kagkarlsson/examples/boot/config/ParallellJobConfiguration.java
+++ b/examples/spring-boot-example/src/main/java/com/github/kagkarlsson/examples/boot/config/ParallellJobConfiguration.java
@@ -92,9 +92,11 @@ public Task parallelJob() {
String threadName = Thread.currentThread().getName();
EventLogger.logTask(
PARALLEL_JOB,
- String.format(
- "Ran. Generated report for quarter Q%s (in thread '%s', duration %sms)",
- taskInstance.getData(), threadName, System.currentTimeMillis() - startTime));
+ "Ran. Generated report for quarter Q%s (in thread '%s', duration %sms)"
+ .formatted(
+ taskInstance.getData(),
+ threadName,
+ System.currentTimeMillis() - startTime));
});
}
}
diff --git a/pom.xml b/pom.xml
index 424ec54e..ba068470 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
UTF-8
- 11
+ 17
${jdk.version}
${jdk.version}
${jdk.version}