You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.6 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. package de.fd.fh;
  2. import de.fd.fh.server.access.AccessContextEventListener;
  3. import de.fd.fh.server.access.AccessRepository;
  4. import de.fd.fh.server.access.AccessService;
  5. import de.fd.fh.server.access.web.AccessController;
  6. import de.fd.fh.server.user.UserContextEventListener;
  7. import de.fd.fh.server.user.web.UserController;
  8. import de.fd.fh.server.user.UserRepository;
  9. import de.fd.fh.server.user.UserService;
  10. import java.util.HashSet;
  11. import java.util.Observable;
  12. import java.util.Observer;
  13. import java.util.Set;
  14. import static spark.Spark.*;
  15. public class ServerApp
  16. {
  17. private static AccessRepository accessRepository;
  18. private static UserRepository userRepository;
  19. private static final Set<Observer> listeners = new HashSet<>();
  20. public static void main(String[] args)
  21. {
  22. initRepositories();
  23. initListeners();
  24. new AccessController((AccessService) addListeners(new AccessService(accessRepository)));
  25. new UserController((UserService) addListeners(new UserService(userRepository)));
  26. get("/hello", (req, res) -> "Hello World");
  27. }
  28. private static Object addListeners(Observable service)
  29. {
  30. listeners.forEach(service::addObserver);
  31. return service;
  32. }
  33. private static void initListeners()
  34. {
  35. listeners.add(new AccessContextEventListener(accessRepository));
  36. listeners.add(new UserContextEventListener(userRepository));
  37. }
  38. private static void initRepositories() {
  39. accessRepository = new AccessRepository();
  40. userRepository = new UserRepository();
  41. }
  42. }