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 @@ ...@@ -26,5 +26,24 @@
<artifactId>dropwizard-core</artifactId> <artifactId>dropwizard-core</artifactId>
<version>0.9.0</version> <version>0.9.0</version>
</dependency> </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> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -91,5 +91,6 @@ ...@@ -91,5 +91,6 @@
<orderEntry type="library" name="Maven: io.dropwizard.metrics:metrics-healthchecks:3.1.2" level="project" /> <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: 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: 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> </component>
</module> </module>
\ No newline at end of file
import Repository.UsersRepository; import Repository.UsersRepository;
import api.ExampleResource; import api.UsersResource;
import com.google.common.collect.Lists; import com.google.inject.AbstractModule;
import com.mongodb.*; import com.google.inject.Guice;
import com.mongodb.client.FindIterable; import com.google.inject.Injector;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import database.MongoDBConnector; import database.MongoDBConnector;
import database.MongoDatabaseConnector;
import io.dropwizard.Application; import io.dropwizard.Application;
import io.dropwizard.setup.Environment; import io.dropwizard.setup.Environment;
import objects.Fruit;
import objects.User; 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.Random;
import java.util.stream.Collectors; import java.util.UUID;
import java.util.stream.Stream;
/** /**
* Created by gpietrus on 16.02.16. * Created by gpietrus on 16.02.16.
*/ */
public class CTFApplication extends Application<ApplicationConfiguration> { public class CTFApplication extends Application<ApplicationConfiguration> {
@Override @Override
public void run(ApplicationConfiguration applicationConfiguration, Environment environment) throws Exception { 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 mongoDBConnector = new MongoDBConnector();
mongoDBConnector.connect(); mongoDBConnector.connect();
...@@ -44,13 +26,30 @@ public class CTFApplication extends Application<ApplicationConfiguration> { ...@@ -44,13 +26,30 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
usersRepository.clean(); //todo usersRepository.clean(); //todo
int numberOfNewUsers = new Random().nextInt(50); 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"); User user = new User(String.valueOf(UUID.randomUUID()), "mehow");
usersRepository.add(user); 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; package api;
import database.MongoDatabaseConnector; import Repository.UsersRepository;
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;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import java.util.List;
/** /**
* Created by gpietrus on 16.02.16. * Created by gpietrus on 16.02.16.
*/ */
@Path(value = "/hello") @Path(value = "/users")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public class ExampleResource public class UsersResource
{ {
private UsersRepository usersRepository;
//todo: use injections
// @GET @Inject
// public String sayHello() { public UsersResource(UsersRepository usersRepository) {
// return "hello"; this.usersRepository = usersRepository;
// } }
@GET @GET
public com.mongodb.client.FindIterable<org.bson.Document> getUsers() { public List<Object> getUsers() {
return new MongoDatabaseConnector().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