Mentions légales du service

Skip to content
Snippets Groups Projects
Commit cc587f71 authored by Sébastian Le Merdy's avatar Sébastian Le Merdy
Browse files

remove guava dependency

parent 2adf8d91
No related branches found
No related tags found
No related merge requests found
...@@ -66,11 +66,6 @@ ...@@ -66,11 +66,6 @@
<artifactId>jackson-jaxrs-json-provider</artifactId> <artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.7.4</version> <version>2.7.4</version>
</dependency> </dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
......
package elevator.server; package elevator.server;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import com.google.common.collect.Sets;
import elevator.server.security.AdminAuthenticationFilter; import elevator.server.security.AdminAuthenticationFilter;
import elevator.server.security.UserAuthenticationFilter; import elevator.server.security.UserAuthenticationFilter;
import org.glassfish.jersey.media.multipart.MultiPartFeature; import org.glassfish.jersey.media.multipart.MultiPartFeature;
...@@ -10,23 +9,23 @@ import javax.ws.rs.core.Application; ...@@ -10,23 +9,23 @@ import javax.ws.rs.core.Application;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import static com.google.common.collect.Sets.newHashSet; import static java.util.Arrays.asList;
public class ElevatorApplication extends Application { public class ElevatorApplication extends Application {
private final HashSet<Object> singletons; private final HashSet<Object> singletons;
public ElevatorApplication() { public ElevatorApplication() {
ElevatorServer server = new ElevatorServer(); ElevatorServer server = new ElevatorServer();
singletons = newHashSet( singletons = new HashSet<>(asList(
new WebResource(server), new WebResource(server),
new UserAuthenticationFilter(server), new UserAuthenticationFilter(server),
new AdminAuthenticationFilter(), new AdminAuthenticationFilter(),
new ServerStarter(server)); new ServerStarter(server)));
} }
@Override @Override
public Set<Class<?>> getClasses() { public Set<Class<?>> getClasses() {
return Sets.<Class<?>>newHashSet(JacksonJsonProvider.class, MultiPartFeature.class); return new HashSet<>(asList(JacksonJsonProvider.class, MultiPartFeature.class));
} }
@Override @Override
......
package elevator.server; package elevator.server;
import com.google.common.base.Function;
import com.google.common.base.Splitter;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap;
import elevator.server.security.AdminAuthentication; import elevator.server.security.AdminAuthentication;
import elevator.server.security.UserAuthentication; import elevator.server.security.UserAuthentication;
import org.glassfish.jersey.media.multipart.FormDataParam; import org.glassfish.jersey.media.multipart.FormDataParam;
...@@ -12,24 +8,17 @@ import javax.ws.rs.*; ...@@ -12,24 +8,17 @@ import javax.ws.rs.*;
import javax.ws.rs.core.Context; import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import javax.ws.rs.core.SecurityContext; import javax.ws.rs.core.SecurityContext;
import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.nio.charset.Charset;
import java.util.Collection; import java.util.*;
import java.util.List;
import java.util.Map; import static java.util.Arrays.stream;
import java.util.stream.Collectors; import static java.util.stream.Collectors.joining;
import static com.google.common.base.CharMatcher.is;
import static com.google.common.base.Charsets.UTF_8;
import static com.google.common.base.Joiner.on;
import static com.google.common.collect.FluentIterable.from;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.io.CharStreams.readLines;
import static java.util.stream.Collectors.toCollection;
import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;
import static javax.ws.rs.core.MediaType.APPLICATION_JSON; import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static javax.ws.rs.core.MediaType.MULTIPART_FORM_DATA; import static javax.ws.rs.core.MediaType.MULTIPART_FORM_DATA;
...@@ -77,11 +66,12 @@ public class WebResource { ...@@ -77,11 +66,12 @@ public class WebResource {
@Produces("text/csv;charset=UTF-8") @Produces("text/csv;charset=UTF-8")
@AdminAuthentication @AdminAuthentication
public String players() { public String players() {
return on('\n').join(from(server.getUnmodifiableElevatorGames()).transform(input -> on(',').join(newArrayList( return server.getUnmodifiableElevatorGames().stream().map(input -> "" +
"\"" + input.getPlayerInfo().email + "\"", "\"" + input.getPlayerInfo().email + "\"," +
"\"" + input.getPlayerInfo().pseudo + "\"", "\"" + input.getPlayerInfo().pseudo + "\"," +
"\"" + input.url + "\"", "\"" + input.url + "\"," +
input.score().toString())))); input.score().toString())
.collect(joining("\n"));
} }
@POST @POST
...@@ -91,24 +81,30 @@ public class WebResource { ...@@ -91,24 +81,30 @@ public class WebResource {
@AdminAuthentication @AdminAuthentication
public Map<String, Collection<String>> importPlayers( public Map<String, Collection<String>> importPlayers(
@FormDataParam("players") InputStream uploadedInputStream) throws IOException { @FormDataParam("players") InputStream uploadedInputStream) throws IOException {
List<String> fileContent; final Map<String, Collection<String>> passwordsByEmail = new HashMap<>();
try (InputStreamReader inputStreamReader = new InputStreamReader(uploadedInputStream, UTF_8)) { try (BufferedReader in = new BufferedReader(new InputStreamReader(uploadedInputStream, Charset.forName("UTF-8")))) {
fileContent = readLines(inputStreamReader); String s;
} while ((s = in.readLine()) != null) {
final ListMultimap<String, String> passwordsByEmail = ArrayListMultimap.create(); List<String> columns = stream(s.split(",")).map(column -> column.replaceAll("\"(.*)\"", "$1")).collect(toList());
for (String s : fileContent) { String email = columns.get(0);
List<String> columns = Splitter.on(",").trimResults(is('"')).splitToList(s); String pseudo = columns.get(1);
String email = columns.get(0); String serverURL = columns.get(2);
String pseudo = columns.get(1); Integer score = Integer.parseInt(columns.get(3));
String serverURL = columns.get(2); try {
Integer score = Integer.parseInt(columns.get(3)); add(passwordsByEmail, email, newParticipantWithScore(email, pseudo, serverURL, score));
try { } catch (WebApplicationException e) {
passwordsByEmail.put(email, newParticipantWithScore(email, pseudo, serverURL, score)); add(passwordsByEmail, email, e.getResponse().getEntity().toString());
} catch (WebApplicationException e) { }
passwordsByEmail.put(email, e.getResponse().getEntity().toString());
} }
} }
return passwordsByEmail.asMap(); return passwordsByEmail;
}
private void add(Map<String, Collection<String>> passwordsByEmail, String email, String newParticipantWithScore) {
if (!passwordsByEmail.containsKey(email)) {
passwordsByEmail.put(email, new ArrayList<>());
}
passwordsByEmail.get(email).add(newParticipantWithScore);
} }
@POST @POST
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment