Commit aed5bfae authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

first try to injections

parent af04e3b0
import Repository.SolutionsRepository;
import Repository.TasksRepository;
import Repository.TeamsRepository;
import Repository.UsersRepository;
import api.ProxyResource;
import api.TasksResource;
import api.TeamsResource;
......@@ -76,17 +75,36 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
//REGISTER RESOURCES
// environment.jersey().register(new UsersResource(usersRepository));
environment.jersey().register(new TeamsResource(teamsRepository));
environment.jersey().register(new TasksResource(tasksRepository, teamsRepository, solutionsRepository));
environment.jersey().register(new ProxyResource());
Injector injector = createInjector(dbConnector);
environment.jersey().register(injector.getInstance(TeamsResource.class));
environment.jersey().register(injector.getInstance(TasksResource.class));
environment.jersey().register(injector.getInstance(ProxyResource.class));
}
private Injector createInjector(UsersRepository usersRepository) {
//todo: inject dbonnector
private Injector createInjector(MongoDBConnector dbConnector) {
return Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(UsersRepository.class).toInstance(usersRepository);
bind(MongoDBConnector.class).toInstance(dbConnector);
// TeamsRepository teamsRepository = new TeamsRepository(dbConnector);
// TasksRepository tasksRepository = new TasksRepository(dbConnector);
// SolutionsRepository solutionsRepository = new SolutionsRepository(dbConnector);
TeamsRepository teamsRepository = new TeamsRepository(dbConnector);
TasksRepository tasksRepository = new TasksRepository(dbConnector);
SolutionsRepository solutionsRepository = new SolutionsRepository(dbConnector);
bind(TeamsRepository.class).toInstance(teamsRepository);
bind(TasksRepository.class).toInstance(tasksRepository);
bind(TeamsResource.class).toInstance(new TeamsResource(teamsRepository));
bind(TasksResource.class).toInstance(new TasksResource(tasksRepository,teamsRepository,solutionsRepository));
bind(ProxyResource.class).toInstance(new ProxyResource());
}
});
}
......
......@@ -4,6 +4,8 @@ import database.MongoDBConnector;
import objects.Solution;
import org.bson.Document;
import javax.inject.Inject;
/**
* Created by gpietrus on 20.02.2016.
*/
......@@ -11,6 +13,7 @@ public class SolutionsRepository implements Repository {
private MongoDBConnector mongoDBConnector;
@Inject
public SolutionsRepository(MongoDBConnector mongoDBConnector) {
this.mongoDBConnector = mongoDBConnector;
}
......
......@@ -4,6 +4,7 @@ import database.MongoDBConnector;
import objects.Task;
import org.bson.Document;
import javax.inject.Inject;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
......@@ -15,6 +16,7 @@ public class TasksRepository implements Repository {
private MongoDBConnector mongoDBConnector;
@Inject
public TasksRepository(MongoDBConnector mongoDBConnector) {
this.mongoDBConnector = mongoDBConnector;
}
......
......@@ -5,6 +5,7 @@ import objects.Team;
import objects.User;
import org.bson.Document;
import javax.inject.Inject;
import java.util.List;
import java.util.UUID;
import java.util.function.Function;
......@@ -17,6 +18,7 @@ public class TeamsRepository implements Repository {
private MongoDBConnector mongoDBConnector;
@Inject
public TeamsRepository(MongoDBConnector mongoDBConnector) {
this.mongoDBConnector = mongoDBConnector;
}
......
......@@ -6,6 +6,7 @@ import Repository.TeamsRepository;
import core.FlagChecker;
import objects.Task;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
......@@ -25,6 +26,7 @@ public class TasksResource
private SolutionsRepository solutionsRepository;
//todo: use injections
@Inject
public TasksResource(TasksRepository tasksRepository, TeamsRepository teamsRepository, SolutionsRepository solutionsRepository) {
this.tasksRepository = tasksRepository;
this.teamsRepository = teamsRepository;
......
......@@ -3,6 +3,7 @@ package api;
import Repository.TeamsRepository;
import objects.Team;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
......@@ -19,6 +20,7 @@ public class TeamsResource
private TeamsRepository teamsRepository;
//todo: use injections
@Inject
public TeamsResource(TeamsRepository teamsRepository) {
this.teamsRepository = teamsRepository;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment