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}