Commit 975ad8600bf4ea6ad6ce7e9c691d2a9f525d2ad1
1 parent
6ea89b5f
feature: SLF4J-Logging hinzugefügt, und ein paar Refactorings
Showing
7 changed files
with
48 additions
and
4 deletions
src/main/java/net/ziemers/swxercise/lg/utils/LoggerProducer.java
0 → 100644
1 | +package net.ziemers.swxercise.lg.utils; | ||
2 | + | ||
3 | +import org.slf4j.Logger; | ||
4 | +import org.slf4j.LoggerFactory; | ||
5 | + | ||
6 | +import javax.enterprise.inject.Produces; | ||
7 | +import javax.enterprise.inject.spi.InjectionPoint; | ||
8 | +import javax.inject.Named; | ||
9 | +import javax.inject.Singleton; | ||
10 | + | ||
11 | +/** | ||
12 | + * Dependendy Injection mit dem SLF4J-Logger | ||
13 | + * Quelle: http://www.pavel.cool/jee-tips/Injecting-Logger/ | ||
14 | + */ | ||
15 | +@Named | ||
16 | +@Singleton | ||
17 | +public class LoggerProducer { | ||
18 | + | ||
19 | + @Produces | ||
20 | + public Logger produceLogger(InjectionPoint injectionPoint) { | ||
21 | + return LoggerFactory.getLogger(injectionPoint.getBean().getBeanClass()); | ||
22 | + } | ||
23 | + | ||
24 | +} | ||
0 | \ No newline at end of file | 25 | \ No newline at end of file |
src/main/java/net/ziemers/swxercise/ui/RoleViewController.java
@@ -5,6 +5,7 @@ import net.ziemers.swxercise.lg.user.dto.RoleDto; | @@ -5,6 +5,7 @@ import net.ziemers.swxercise.lg.user.dto.RoleDto; | ||
5 | import net.ziemers.swxercise.lg.user.enums.RightState; | 5 | import net.ziemers.swxercise.lg.user.enums.RightState; |
6 | import net.ziemers.swxercise.lg.user.service.RoleService; | 6 | import net.ziemers.swxercise.lg.user.service.RoleService; |
7 | import net.ziemers.swxercise.ui.enums.ResponseState; | 7 | import net.ziemers.swxercise.ui.enums.ResponseState; |
8 | +import net.ziemers.swxercise.ui.utils.RestResponse; | ||
8 | 9 | ||
9 | import javax.annotation.security.RolesAllowed; | 10 | import javax.annotation.security.RolesAllowed; |
10 | import javax.enterprise.context.ApplicationScoped; | 11 | import javax.enterprise.context.ApplicationScoped; |
src/main/java/net/ziemers/swxercise/ui/UserViewController.java
@@ -14,6 +14,8 @@ import net.ziemers.swxercise.lg.model.user.User; | @@ -14,6 +14,8 @@ import net.ziemers.swxercise.lg.model.user.User; | ||
14 | import net.ziemers.swxercise.lg.user.dto.UserDto; | 14 | import net.ziemers.swxercise.lg.user.dto.UserDto; |
15 | import net.ziemers.swxercise.lg.user.service.UserService; | 15 | import net.ziemers.swxercise.lg.user.service.UserService; |
16 | import net.ziemers.swxercise.ui.enums.ResponseState; | 16 | import net.ziemers.swxercise.ui.enums.ResponseState; |
17 | +import net.ziemers.swxercise.ui.utils.RestResponse; | ||
18 | +import org.slf4j.Logger; | ||
17 | 19 | ||
18 | /** | 20 | /** |
19 | * REST-Methoden für die Benutzerverwaltung. | 21 | * REST-Methoden für die Benutzerverwaltung. |
@@ -24,6 +26,13 @@ public class UserViewController { | @@ -24,6 +26,13 @@ public class UserViewController { | ||
24 | 26 | ||
25 | static final String webContextPath = "/"; | 27 | static final String webContextPath = "/"; |
26 | 28 | ||
29 | + /* | ||
30 | + * SLF4J: "Simple Logging Facade for Java" | ||
31 | + * Dependency Injection erfolgt mit dem {@link net.ziemers.swxercise.lg.utils.LoggerProducer} | ||
32 | + */ | ||
33 | + @Inject | ||
34 | + private Logger logger; | ||
35 | + | ||
27 | @Inject | 36 | @Inject |
28 | private UserService userService; | 37 | private UserService userService; |
29 | 38 | ||
@@ -72,7 +81,9 @@ public class UserViewController { | @@ -72,7 +81,9 @@ public class UserViewController { | ||
72 | @Path("v1/user") | 81 | @Path("v1/user") |
73 | @Produces(MediaType.APPLICATION_JSON) | 82 | @Produces(MediaType.APPLICATION_JSON) |
74 | @RolesAllowed(RightState.Constants.LOGGED_IN) | 83 | @RolesAllowed(RightState.Constants.LOGGED_IN) |
75 | - public User getUser() { return userService.findUser(); } | 84 | + public User getUser() { |
85 | + logger.info("Trying to get user's profile info."); | ||
86 | + return userService.findUser(); } | ||
76 | 87 | ||
77 | /** | 88 | /** |
78 | * Erstellt ein neues User-Objekt mit den gewünschten Eigenschaften, welche mittels {@link UserDto} definiert werden. | 89 | * Erstellt ein neues User-Objekt mit den gewünschten Eigenschaften, welche mittels {@link UserDto} definiert werden. |
@@ -197,6 +208,7 @@ public class UserViewController { | @@ -197,6 +208,7 @@ public class UserViewController { | ||
197 | @Produces(MediaType.APPLICATION_JSON) | 208 | @Produces(MediaType.APPLICATION_JSON) |
198 | @RolesAllowed(RightState.Constants.NOT_LOGGED_IN) | 209 | @RolesAllowed(RightState.Constants.NOT_LOGGED_IN) |
199 | public RestResponse loginUser(UserDto dto) { | 210 | public RestResponse loginUser(UserDto dto) { |
211 | + logger.info("Trying to log-in user '{}'.", dto.getUsername()); | ||
200 | if (userService.loginUser(dto)) { | 212 | if (userService.loginUser(dto)) { |
201 | return new RestResponse(); | 213 | return new RestResponse(); |
202 | } | 214 | } |
@@ -216,6 +228,7 @@ public class UserViewController { | @@ -216,6 +228,7 @@ public class UserViewController { | ||
216 | @Produces(MediaType.APPLICATION_JSON) | 228 | @Produces(MediaType.APPLICATION_JSON) |
217 | @RolesAllowed(RightState.Constants.LOGGED_IN) | 229 | @RolesAllowed(RightState.Constants.LOGGED_IN) |
218 | public RestResponse logoutUser() { | 230 | public RestResponse logoutUser() { |
231 | + logger.info("Trying to log-out user."); | ||
219 | if (userService.logoutUser()) { | 232 | if (userService.logoutUser()) { |
220 | return new RestResponse(); | 233 | return new RestResponse(); |
221 | } | 234 | } |
src/main/java/net/ziemers/swxercise/ui/RestApplication.java renamed to src/main/java/net/ziemers/swxercise/ui/utils/RestApplication.java
src/main/java/net/ziemers/swxercise/ui/RestResponse.java renamed to src/main/java/net/ziemers/swxercise/ui/utils/RestResponse.java
src/main/java/net/ziemers/swxercise/ui/SecurityInterceptor.java renamed to src/main/java/net/ziemers/swxercise/ui/utils/SecurityInterceptor.java
src/test/java/net/ziemers/swxercise/ui/UserViewControllerTest.java
@@ -9,11 +9,13 @@ import net.ziemers.swxercise.lg.user.dto.UserDto; | @@ -9,11 +9,13 @@ import net.ziemers.swxercise.lg.user.dto.UserDto; | ||
9 | import net.ziemers.swxercise.lg.user.service.UserService; | 9 | import net.ziemers.swxercise.lg.user.service.UserService; |
10 | import net.ziemers.swxercise.ui.enums.ResponseState; | 10 | import net.ziemers.swxercise.ui.enums.ResponseState; |
11 | 11 | ||
12 | +import net.ziemers.swxercise.ui.utils.RestResponse; | ||
12 | import org.junit.Test; | 13 | import org.junit.Test; |
13 | import org.junit.runner.RunWith; | 14 | import org.junit.runner.RunWith; |
14 | import org.mockito.InjectMocks; | 15 | import org.mockito.InjectMocks; |
15 | import org.mockito.Mock; | 16 | import org.mockito.Mock; |
16 | import org.mockito.junit.MockitoJUnitRunner; | 17 | import org.mockito.junit.MockitoJUnitRunner; |
18 | +import org.slf4j.Logger; | ||
17 | 19 | ||
18 | import static org.junit.Assert.*; | 20 | import static org.junit.Assert.*; |
19 | import static org.mockito.Mockito.*; | 21 | import static org.mockito.Mockito.*; |
@@ -31,6 +33,10 @@ public class UserViewControllerTest { | @@ -31,6 +33,10 @@ public class UserViewControllerTest { | ||
31 | @InjectMocks | 33 | @InjectMocks |
32 | private UserViewController underTest; | 34 | private UserViewController underTest; |
33 | 35 | ||
36 | + // das Logging interessiert uns nicht; deshalb mocken wir es weg | ||
37 | + @Mock | ||
38 | + private Logger logger; | ||
39 | + | ||
34 | /* | 40 | /* |
35 | * Mockito allows to configure the return values of its mocks via a fluent API. | 41 | * Mockito allows to configure the return values of its mocks via a fluent API. |
36 | * Unspecified method calls return "empty" values | 42 | * Unspecified method calls return "empty" values |