Commit aed5bfae authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

first try to injections

parent af04e3b0
import Repository.SolutionsRepository; import Repository.SolutionsRepository;
import Repository.TasksRepository; import Repository.TasksRepository;
import Repository.TeamsRepository; import Repository.TeamsRepository;
import Repository.UsersRepository;
import api.ProxyResource; import api.ProxyResource;
import api.TasksResource; import api.TasksResource;
import api.TeamsResource; import api.TeamsResource;
...@@ -76,17 +75,36 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -76,17 +75,36 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
//REGISTER RESOURCES //REGISTER RESOURCES
// environment.jersey().register(new UsersResource(usersRepository));
environment.jersey().register(new TeamsResource(teamsRepository)); Injector injector = createInjector(dbConnector);
environment.jersey().register(new TasksResource(tasksRepository, teamsRepository, solutionsRepository)); environment.jersey().register(injector.getInstance(TeamsResource.class));
environment.jersey().register(new ProxyResource()); 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() { return Guice.createInjector(new AbstractModule() {
@Override @Override
protected void configure() { 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; ...@@ -4,6 +4,8 @@ import database.MongoDBConnector;
import objects.Solution; import objects.Solution;
import org.bson.Document; import org.bson.Document;
import javax.inject.Inject;
/** /**
* Created by gpietrus on 20.02.2016. * Created by gpietrus on 20.02.2016.
*/ */
...@@ -11,6 +13,7 @@ public class SolutionsRepository implements Repository { ...@@ -11,6 +13,7 @@ public class SolutionsRepository implements Repository {
private MongoDBConnector mongoDBConnector; private MongoDBConnector mongoDBConnector;
@Inject
public SolutionsRepository(MongoDBConnector mongoDBConnector) { public SolutionsRepository(MongoDBConnector mongoDBConnector) {
this.mongoDBConnector = mongoDBConnector; this.mongoDBConnector = mongoDBConnector;
} }
......
...@@ -4,6 +4,7 @@ import database.MongoDBConnector; ...@@ -4,6 +4,7 @@ import database.MongoDBConnector;
import objects.Task; import objects.Task;
import org.bson.Document; import org.bson.Document;
import javax.inject.Inject;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -15,6 +16,7 @@ public class TasksRepository implements Repository { ...@@ -15,6 +16,7 @@ public class TasksRepository implements Repository {
private MongoDBConnector mongoDBConnector; private MongoDBConnector mongoDBConnector;
@Inject
public TasksRepository(MongoDBConnector mongoDBConnector) { public TasksRepository(MongoDBConnector mongoDBConnector) {
this.mongoDBConnector = mongoDBConnector; this.mongoDBConnector = mongoDBConnector;
} }
......
...@@ -5,6 +5,7 @@ import objects.Team; ...@@ -5,6 +5,7 @@ import objects.Team;
import objects.User; import objects.User;
import org.bson.Document; import org.bson.Document;
import javax.inject.Inject;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.function.Function; import java.util.function.Function;
...@@ -17,6 +18,7 @@ public class TeamsRepository implements Repository { ...@@ -17,6 +18,7 @@ public class TeamsRepository implements Repository {
private MongoDBConnector mongoDBConnector; private MongoDBConnector mongoDBConnector;
@Inject
public TeamsRepository(MongoDBConnector mongoDBConnector) { public TeamsRepository(MongoDBConnector mongoDBConnector) {
this.mongoDBConnector = mongoDBConnector; this.mongoDBConnector = mongoDBConnector;
} }
......
...@@ -6,6 +6,7 @@ import Repository.TeamsRepository; ...@@ -6,6 +6,7 @@ import Repository.TeamsRepository;
import core.FlagChecker; import core.FlagChecker;
import objects.Task; import objects.Task;
import javax.inject.Inject;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.POST; import javax.ws.rs.POST;
import javax.ws.rs.Path; import javax.ws.rs.Path;
...@@ -25,6 +26,7 @@ public class TasksResource ...@@ -25,6 +26,7 @@ public class TasksResource
private SolutionsRepository solutionsRepository; private SolutionsRepository solutionsRepository;
//todo: use injections //todo: use injections
@Inject
public TasksResource(TasksRepository tasksRepository, TeamsRepository teamsRepository, SolutionsRepository solutionsRepository) { public TasksResource(TasksRepository tasksRepository, TeamsRepository teamsRepository, SolutionsRepository solutionsRepository) {
this.tasksRepository = tasksRepository; this.tasksRepository = tasksRepository;
this.teamsRepository = teamsRepository; this.teamsRepository = teamsRepository;
......
...@@ -3,6 +3,7 @@ package api; ...@@ -3,6 +3,7 @@ package api;
import Repository.TeamsRepository; import Repository.TeamsRepository;
import objects.Team; import objects.Team;
import javax.inject.Inject;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
...@@ -19,6 +20,7 @@ public class TeamsResource ...@@ -19,6 +20,7 @@ public class TeamsResource
private TeamsRepository teamsRepository; private TeamsRepository teamsRepository;
//todo: use injections //todo: use injections
@Inject
public TeamsResource(TeamsRepository teamsRepository) { public TeamsResource(TeamsRepository teamsRepository) {
this.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