/**
* Copyright (C) 2011 Talend Inc. - www.talend.com
*/
package server;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.MediaType;
import oauth2.thirdparty.OAuthClientManager;
import oauth2.thirdparty.RestaurantReservationService;
import oauth2.thirdparty.SecurityContextFilter;
import org.apache.cxf.jaxrs.client.WebClient;
/*
* Class that can be used (instead of XML-based configuration) to inform the JAX-RS
* runtime about the resources and providers it is supposed to deploy. See the
* ApplicationServer class for more information.
*/
@ApplicationPath("/reservations")
public class RestaurantReserveApplication extends Application {
@Override
public Set<Object> getSingletons() {
Set<Object> classes = new HashSet<Object>();
RestaurantReservationService reserveService =
new RestaurantReservationService();
WebClient socialService =
WebClient.create("http://localhost:8080/thirdPartyAccess/calendar");
reserveService.setSocialService(socialService);
OAuthClientManager manager = new OAuthClientManager();
manager.setAuthorizationURI("http://localhost:8080/social/authorize");
WebClient ats =
WebClient.create("http://localhost:8080/oauth/token");
ats.accept(MediaType.APPLICATION_FORM_URLENCODED_TYPE);
WebClient.getConfig(ats).getHttpConduit().getClient().setReceiveTimeout(1000000L);
manager.setAccessTokenService(ats);
reserveService.setOAuthClientManager(manager);
SecurityContextFilter filter = new SecurityContextFilter();
filter.setUsers(Collections.singletonMap("barry@restaurant.com", "5678"));
WebClient restaurantService =
WebClient.create("http://localhost:8080/restaurant/reception");
restaurantService.accept(MediaType.TEXT_PLAIN_TYPE).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE);
reserveService.setRestaurantService(restaurantService);
classes.add(reserveService);
classes.add(filter);
return classes;
}
}