Skip to content
Snippets Groups Projects
Commit 66f8c875 authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'Add parameter for performing user sync on start up.' (#98)...

Merge pull request 'Add parameter for performing user sync on start up.' (#98) from add-usersync-onstart-support into master

Reviewed-on: https://git.ozg-sh.de/ozgcloud-app/user-manager/pulls/98
parents 5ea32bed 5b46671a
No related branches found
No related tags found
No related merge requests found
......@@ -25,10 +25,14 @@ package de.ozgcloud.user.sync;
import static io.quarkus.scheduler.Scheduled.ConcurrentExecution.*;
import de.ozgcloud.user.common.lock.LockService;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.event.Observes;
import jakarta.inject.Inject;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import de.ozgcloud.user.common.lock.LockService;
import io.quarkus.runtime.StartupEvent;
import io.quarkus.scheduler.Scheduled;
import lombok.extern.log4j.Log4j2;
......@@ -41,6 +45,15 @@ public class SyncScheduler {
@Inject
LockService syncLockService;
@ConfigProperty(name = "ozgcloud.usersync.onstart")
boolean syncUsers;
void onStart(@Observes StartupEvent event) {
if (syncUsers) {
start();
}
}
@Scheduled(every = "{ozgcloud.usersync.period}", concurrentExecution = SKIP)
public void start() {
if (syncLockService.isNotLocked()) {
......
......@@ -47,3 +47,4 @@ ozgcloud:
client: alfa
usersync:
period: "6h"
onstart: false
\ No newline at end of file
......@@ -38,6 +38,7 @@ import org.mockito.Spy;
import de.ozgcloud.user.common.lock.Lock;
import de.ozgcloud.user.common.lock.LockService;
import io.quarkus.runtime.StartupEvent;
class SyncSchedulerTest {
......@@ -124,4 +125,31 @@ class SyncSchedulerTest {
verify(syncLockService).unlock();
}
}
@Nested
class OnStartTest {
@Test
void shouldSyncUsers() {
doNothing().when(scheduler).start();
scheduler.syncUsers = true;
callScheduler();
verify(scheduler).start();
}
@Test
void shouldNOTSyncUsers() {
scheduler.syncUsers = false;
callScheduler();
verify(scheduler, never()).start();
}
private void callScheduler() {
scheduler.onStart(new StartupEvent());
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment