diff --git a/src/main/java/com/commafeed/frontend/CommaFeedSession.java b/src/main/java/com/commafeed/frontend/CommaFeedSession.java index 7e6ea9db..40393a1e 100644 --- a/src/main/java/com/commafeed/frontend/CommaFeedSession.java +++ b/src/main/java/com/commafeed/frontend/CommaFeedSession.java @@ -2,32 +2,27 @@ package com.commafeed.frontend; import java.util.Set; -import javax.inject.Inject; +import lombok.Getter; import org.apache.wicket.Session; import org.apache.wicket.authroles.authentication.AuthenticatedWebSession; import org.apache.wicket.authroles.authorization.strategies.role.Roles; import org.apache.wicket.request.Request; -import com.commafeed.backend.dao.UserRoleDAO; import com.commafeed.backend.model.User; import com.commafeed.backend.model.UserRole.Role; -import com.commafeed.backend.services.UserService; import com.google.common.collect.Sets; public class CommaFeedSession extends AuthenticatedWebSession { private static final long serialVersionUID = 1L; - @Inject - UserService userService; - - @Inject - UserRoleDAO userRoleDAO; - private User user; private Roles roles = new Roles(); + @Getter(lazy = true) + private final CommaFeedSessionServices services = newServices(); + public CommaFeedSession(Request request) { super(request); } @@ -47,7 +42,7 @@ public class CommaFeedSession extends AuthenticatedWebSession { @Override public boolean authenticate(String userName, String password) { - User user = userService.login(userName, password); + User user = getServices().getUserService().login(userName, password); setUser(user); return user != null; } @@ -59,7 +54,7 @@ public class CommaFeedSession extends AuthenticatedWebSession { } else { Set roleSet = Sets.newHashSet(); - for (Role role : userRoleDAO.findRoles(user)) { + for (Role role : getServices().getUserRoleDAO().findRoles(user)) { roleSet.add(role.name()); } this.user = user; @@ -67,4 +62,8 @@ public class CommaFeedSession extends AuthenticatedWebSession { } } + private CommaFeedSessionServices newServices() { + return new CommaFeedSessionServices(); + } + } diff --git a/src/main/java/com/commafeed/frontend/CommaFeedSessionServices.java b/src/main/java/com/commafeed/frontend/CommaFeedSessionServices.java new file mode 100644 index 00000000..4a8f8c58 --- /dev/null +++ b/src/main/java/com/commafeed/frontend/CommaFeedSessionServices.java @@ -0,0 +1,35 @@ +package com.commafeed.frontend; + +import javax.inject.Inject; + +import org.apache.wicket.Component; + +import com.commafeed.backend.dao.UserRoleDAO; +import com.commafeed.backend.services.UserService; + +// extend Component in order to benefit from injection +public class CommaFeedSessionServices extends Component { + + @Inject + UserService userService; + + @Inject + UserRoleDAO userRoleDAO; + + public CommaFeedSessionServices() { + super("services"); + } + + public UserService getUserService() { + return userService; + } + + public UserRoleDAO getUserRoleDAO() { + return userRoleDAO; + } + + @Override + protected void onRender() { + // do nothing + } +}