diff --git a/README.md b/README.md index e75ac29a7c382944189c9e2177ecf4d15a333d5d..27d0110791315c6e801ddde881588825d5430e8f 100644 --- a/README.md +++ b/README.md @@ -77,3 +77,11 @@ Easily start your Reactive RESTful Web Services Monitor your application's health using SmallRye Health [Related guide section...](https://quarkus.io/guides/smallrye-health) + +## Best parctice + +### User package-private fields for injected fields + +This involves injection fields, constructors and initializers, observer methods, producer methods and fields, disposers and interceptor methods. + +[See section 2 of quarkus guide ](https://quarkus.io/guides/cdi-reference#native-executables-and-private-members) diff --git a/src/main/java/de/itvsh/kop/user/User.java b/src/main/java/de/itvsh/kop/user/User.java index f25a01a2e444e0524d26df3e86399f4d084a8c15..fc9d990fd0dccfe50abfeb36b5577688f9d5bf62 100644 --- a/src/main/java/de/itvsh/kop/user/User.java +++ b/src/main/java/de/itvsh/kop/user/User.java @@ -3,10 +3,9 @@ package de.itvsh.kop.user; import java.util.Collection; import java.util.Date; +import org.bson.codecs.pojo.annotations.BsonId; import org.bson.types.ObjectId; -import io.quarkus.mongodb.panache.PanacheMongoEntity; -import io.quarkus.mongodb.panache.common.MongoEntity; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; @@ -19,15 +18,16 @@ import lombok.ToString; @AllArgsConstructor @Getter @Setter -@MongoEntity @ToString -public class User extends PanacheMongoEntity { +public class User { public static final String EXTERNAL_ID_FIELD = "externalId"; public static final String EMAIL_FIELD = "email"; public static final String DELETED_FIELD = "deleted"; public static final String LAST_SYNC_TIMESTAMP_FIELD = "lastSyncTimestamp"; + @BsonId + private ObjectId id; private String externalId; private String firstName; private String lastName; @@ -42,12 +42,4 @@ public class User extends PanacheMongoEntity { public String getFullName() { return String.format("%s %s", firstName, lastName); } - - public ObjectId getId() { - return super.id; - } - - public void setId(ObjectId id) { - super.id = id; - } } \ No newline at end of file diff --git a/src/main/java/de/itvsh/kop/user/UserService.java b/src/main/java/de/itvsh/kop/user/UserService.java index b786f1c321b531d4384b71959dac4164d7f186ea..c9b407655908d81cf306b567288166a176071736 100644 --- a/src/main/java/de/itvsh/kop/user/UserService.java +++ b/src/main/java/de/itvsh/kop/user/UserService.java @@ -9,7 +9,7 @@ import javax.inject.Inject; public class UserService { @Inject - private UserRepository repository; + UserRepository repository; public void save(User user) { findUser(user).ifPresentOrElse(persistedUser -> repository.update(addIdUser(user, persistedUser)), diff --git a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java index 03dec638d5300f86b37f4ad8b92e7d3eb85543f2..559a346b2d19f3e4b77c0964ae55b6384f3ad0c5 100644 --- a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java +++ b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakApiService.java @@ -24,14 +24,14 @@ import de.itvsh.kop.user.common.errorhandling.KeycloakUnavailableException; class KeycloakApiService { @Inject - private RealmResource realmResource; + RealmResource realmResource; @Inject - private UserResourceMapper mapper; + UserResourceMapper mapper; @Inject - private KeycloakApiProperties properties; + KeycloakApiProperties properties; @ConfigProperty(name = "keycloak.url") - private String keycloakUrl; + String keycloakUrl; public Stream<User> findAllUser() { return handlingKeycloakException(() -> getAllUserRepresentation().map(this::toUser)); diff --git a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java index 194eb3efcc194eeb3bd421efb3913e800f9387c4..70e1355f6a6e6f7c031d481a61460fe5ee9931d3 100644 --- a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java +++ b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakProvider.java @@ -8,19 +8,18 @@ import org.keycloak.admin.client.Keycloak; import org.keycloak.admin.client.KeycloakBuilder; import org.keycloak.admin.client.resource.RealmResource; -// TODO Test public class KeycloakProvider { private static final String CLIENT = "admin-cli"; @Inject - private KeycloakApiProperties keycloakConfiguration; + KeycloakApiProperties keycloakConfiguration; @ConfigProperty(name = "keycloak.url") - private String keycloakUrl; + String keycloakUrl; @ApplicationScoped - private RealmResource provide() { + RealmResource provide() { return buildKeycloakInstance().realm(keycloakConfiguration.realm()); } diff --git a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java index 11d029822abe3752aff207f5cde432cd15a70ed1..56c33762474e079e265d503c28cccafbcbee554a 100644 --- a/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java +++ b/src/main/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteService.java @@ -11,7 +11,7 @@ import de.itvsh.kop.user.User; public class KeycloakUserRemoteService { @Inject - private KeycloakApiService apiService; + KeycloakApiService apiService; public Stream<User> getAllUsers() { return apiService.findAllUser(); diff --git a/src/test/java/de/itvsh/kop/user/UserServiceTest.java b/src/test/java/de/itvsh/kop/user/UserServiceTest.java index 39bee6f0fccd2dc354afcecfecd0ed1fbf79bde0..9b683fdc465604b217e3d5bd3023461cc1af870d 100644 --- a/src/test/java/de/itvsh/kop/user/UserServiceTest.java +++ b/src/test/java/de/itvsh/kop/user/UserServiceTest.java @@ -17,11 +17,11 @@ import de.itvsh.kop.user.keycloak.KeycloakUserRemoteService; class UserServiceTest { @InjectMocks - private UserService service; + UserService service; @Mock - private UserRepository repository; + UserRepository repository; @Mock - private KeycloakUserRemoteService keycloakRemoteService; + KeycloakUserRemoteService keycloakRemoteService; @DisplayName("Save") @Nested diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java index 7dc6275081eacc25859c1887b38d75cba2573093..2eb49ab4e065325a8577d224a12d6091301000a0 100644 --- a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java +++ b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakApiServiceITCase.java @@ -14,7 +14,7 @@ import io.quarkus.test.junit.TestProfile; class KeycloakApiServiceITCase { @Inject - private KeycloakApiService service; + KeycloakApiService service; @Test void shouldGetAllUsers() { diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java new file mode 100644 index 0000000000000000000000000000000000000000..800275d14a2644cb81e49184066c347d014a9d22 --- /dev/null +++ b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakProviderITCase.java @@ -0,0 +1,21 @@ +package de.itvsh.kop.user.keycloak; + +import static org.assertj.core.api.Assertions.*; + +import javax.inject.Inject; + +import org.junit.jupiter.api.Test; +import org.keycloak.admin.client.resource.RealmResource; + +import io.quarkus.test.junit.QuarkusTest; + +@QuarkusTest +class KeycloakProviderITCase { + @Inject + RealmResource realm; + + @Test + void shouldHaveRealmResource() { + assertThat(realm).isNotNull(); + } +} diff --git a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java index c5136559bccec3a1e6f8c1d0851081141f870b46..441f575b4e6bde1860db67f771781b7d72cab007 100644 --- a/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java +++ b/src/test/java/de/itvsh/kop/user/keycloak/KeycloakUserRemoteServiceITCase.java @@ -12,9 +12,9 @@ import io.quarkus.test.junit.mockito.InjectSpy; class KeycloakUserRemoteServiceITCase { @InjectSpy - private KeycloakUserRemoteService service; + KeycloakUserRemoteService service; @InjectMock - private KeycloakApiService apiService; + KeycloakApiService apiService; @Test void shouldCallGetAllUsers() {