Commit 38b777bd authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

first try to implement injections

parent bf060488
<component name="libraryTable">
<library name="Maven: com.google.inject:guice:4.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/inject/guice/4.0/guice-4.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/google/inject/guice/4.0/guice-4.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/inject/guice/4.0/guice-4.0-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
......@@ -26,5 +26,24 @@
<artifactId>dropwizard-core</artifactId>
<version>0.9.0</version>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.0</version>
<exclusions>
<exclusion>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
</exclusion>
<exclusion>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
</exclusion>
<exclusion>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
\ No newline at end of file
......@@ -91,5 +91,6 @@
<orderEntry type="library" name="Maven: io.dropwizard.metrics:metrics-healthchecks:3.1.2" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.argparse4j:argparse4j:0.6.0" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.jetty.toolchain.setuid:jetty-setuid-java:1.0.3" level="project" />
<orderEntry type="library" name="Maven: com.google.inject:guice:4.0" level="project" />
</component>
</module>
\ No newline at end of file
import Repository.UsersRepository;
import api.ExampleResource;
import com.google.common.collect.Lists;
import com.mongodb.*;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import api.UsersResource;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
import database.MongoDBConnector;
import database.MongoDatabaseConnector;
import io.dropwizard.Application;
import io.dropwizard.setup.Environment;
import objects.Fruit;
import objects.User;
import org.bson.Document;
import org.mongolink.MongoSession;
import persistence.MongoRepositories;
import repositories.Repositories;
import stub.MongoConfiguration;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.Random;
import java.util.UUID;
/**
* Created by gpietrus on 16.02.16.
*/
public class CTFApplication extends Application<ApplicationConfiguration> {
@Override
public void run(ApplicationConfiguration applicationConfiguration, Environment environment) throws Exception {
// environment.jersey().register(ExampleResource.class);
// MongoDatabaseConnector mongoDatabaseConnector = new MongoDatabaseConnector();
// FindIterable<Document> users = mongoDatabaseConnector.getUsers();
}
public static void main(String[] args) throws Exception {
//todo: add mongo-java-driver as maven dep
MongoDBConnector mongoDBConnector = new MongoDBConnector();
mongoDBConnector.connect();
......@@ -44,13 +26,30 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
usersRepository.clean(); //todo
int numberOfNewUsers = new Random().nextInt(50);
for(int i = 0; i < numberOfNewUsers; i++) {
for (int i = 0; i < numberOfNewUsers; i++) {
User user = new User(String.valueOf(UUID.randomUUID()), "mehow");
usersRepository.add(user);
}
List<Object> all = usersRepository.getAll();
// Injector injector = createInjector(usersRepository);
// final LifecycleEnvironment lifecycleEnvironment = environment.lifecycle();
//
// lifecycleEnvironment.manage((Managed) );
environment.jersey().register(UsersResource.class);
}
private Injector createInjector(UsersRepository usersRepository) {
return Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(UsersRepository.class).toInstance(usersRepository);
}
});
}
public static void main(String[] args) throws Exception {
//todo: add mongo-java-driver as maven dep
new CTFApplication().run(args);
}
}
package api;
import database.MongoDatabaseConnector;
import Repository.UsersRepository;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.util.List;
/**
* Created by gpietrus on 16.02.16.
*/
@Path(value = "/hello")
@Path(value = "/users")
@Produces(MediaType.APPLICATION_JSON)
public class ExampleResource
public class UsersResource
{
private UsersRepository usersRepository;
//todo: use injections
// @GET
// public String sayHello() {
// return "hello";
// }
@Inject
public UsersResource(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
@GET
public com.mongodb.client.FindIterable<org.bson.Document> getUsers() {
return new MongoDatabaseConnector().getUsers();
public List<Object> getUsers() {
return usersRepository.getAll();
}
}
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