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

package de.fd.fh;
import de.fd.fh.server.access.AccessContextEventListener;
import de.fd.fh.server.access.AccessRepository;
import de.fd.fh.server.access.AccessService;
import de.fd.fh.server.access.web.AccessController;
import de.fd.fh.server.user.UserContextEventListener;
import de.fd.fh.server.user.web.UserController;
import de.fd.fh.server.user.UserRepository;
import de.fd.fh.server.user.UserService;
import java.util.HashSet;
import java.util.Observable;
import java.util.Observer;
import java.util.Set;
import static spark.Spark.*;
public class ServerApp
{
private static AccessRepository accessRepository;
private static UserRepository userRepository;
private static final Set<Observer> listeners = new HashSet<>();
public static void main(String[] args)
{
initRepositories();
initListeners();
new AccessController((AccessService) addListeners(new AccessService(accessRepository)));
new UserController((UserService) addListeners(new UserService(userRepository)));
get("/hello", (req, res) -> "Hello World");
}
private static Object addListeners(Observable service)
{
listeners.forEach(service::addObserver);
return service;
}
private static void initListeners()
{
listeners.add(new AccessContextEventListener(accessRepository));
listeners.add(new UserContextEventListener(userRepository));
}
private static void initRepositories() {
accessRepository = new AccessRepository();
userRepository = new UserRepository();
}
}