Skip to content

Commit

Permalink
EVERREST-83 Update accordingly to the changes in Everrest
Browse files Browse the repository at this point in the history
  • Loading branch information
Mihail Kuznyetsov committed Jul 22, 2016
1 parent 48c8f14 commit f63d7a4
Show file tree
Hide file tree
Showing 12 changed files with 93 additions and 93 deletions.
Expand Up @@ -20,7 +20,7 @@
import org.eclipse.che.dto.server.DtoFactory;
import org.everrest.core.ObjectFactory;
import org.everrest.core.ResourceBinder;
import org.everrest.core.resource.AbstractResourceDescriptor;
import org.everrest.core.resource.ResourceDescriptor;
import org.everrest.services.RestServicesList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -85,11 +85,11 @@ private ApiInfo readApiInfo() throws ServerException {
public RestServicesList.RootResourcesList listJSON(@Context ServletContext context) {
ResourceBinder binder = (ResourceBinder)context.getAttribute(ResourceBinder.class.getName());
return new RestServicesList.RootResourcesList(FluentIterable.from(binder.getResources()).transform(
new Function<ObjectFactory<AbstractResourceDescriptor>, RestServicesList.RootResource>() {
new Function<ObjectFactory<ResourceDescriptor>, RestServicesList.RootResource>() {
@Nullable
@Override
public RestServicesList.RootResource apply(ObjectFactory<AbstractResourceDescriptor> input) {
AbstractResourceDescriptor descriptor = input.getObjectModel();
public RestServicesList.RootResource apply(ObjectFactory<ResourceDescriptor> input) {
ResourceDescriptor descriptor = input.getObjectModel();
return new RestServicesList.RootResource(descriptor.getObjectClass().getName(), //
descriptor.getPathValue().getPath(), //
descriptor.getUriPattern().getRegex());
Expand Down
Expand Up @@ -19,7 +19,7 @@
import org.eclipse.che.api.core.UnauthorizedException;
import org.eclipse.che.dto.server.DtoFactory;
import org.everrest.core.method.MethodInvokerFilter;
import org.everrest.core.resource.GenericMethodResource;
import org.everrest.core.resource.GenericResourceMethod;

import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
Expand All @@ -33,7 +33,7 @@
*/
public abstract class CheMethodInvokerFilter implements MethodInvokerFilter {
@Override
public void accept(GenericMethodResource genericMethodResource, Object[] arguments) throws WebApplicationException {
public void accept(GenericResourceMethod genericMethodResource, Object[] arguments) throws WebApplicationException {
try {
filter(genericMethodResource, arguments);
} catch (ApiException exception) {
Expand Down Expand Up @@ -83,11 +83,11 @@ else if (exception instanceof BadRequestException) {
* Check does supplied method can be invoked.
*
* @param genericMethodResource
* See {@link GenericMethodResource}
* See {@link GenericResourceMethod}
* @param arguments
* actual method arguments that were created from request
* @throws ApiException
* if method can not be invoked cause current environment context, e.g. for current user, with current request attributes, etc.
*/
protected abstract void filter(GenericMethodResource genericMethodResource, Object[] arguments) throws ApiException;
protected abstract void filter(GenericResourceMethod genericMethodResource, Object[] arguments) throws ApiException;
}
Expand Up @@ -20,7 +20,6 @@
import org.everrest.core.Filter;
import org.everrest.core.GenericContainerResponse;
import org.everrest.core.ResponseFilter;
import org.everrest.core.impl.ApplicationContextImpl;

import javax.ws.rs.HttpMethod;
import javax.ws.rs.core.EntityTag;
Expand Down Expand Up @@ -55,7 +54,7 @@ public enum EntityType {
* Filter the given container response
*
* @param containerResponse
* the reponse to use
* the response to use
*/
public void doFilter(GenericContainerResponse containerResponse) {

Expand All @@ -73,7 +72,7 @@ public void doFilter(GenericContainerResponse containerResponse) {
}

// Get the request
ApplicationContext applicationContext = ApplicationContextImpl.getCurrent();
ApplicationContext applicationContext = ApplicationContext.getCurrent();
Request request = applicationContext.getRequest();

// manage only GET requests
Expand Down
Expand Up @@ -15,7 +15,6 @@
import org.everrest.core.Filter;
import org.everrest.core.GenericContainerResponse;
import org.everrest.core.ResponseFilter;
import org.everrest.core.impl.ApplicationContextImpl;

import javax.ws.rs.core.Request;
import javax.ws.rs.core.Response;
Expand All @@ -33,13 +32,13 @@ public class EverrestDownloadFileResponseFilter extends DownloadFileResponseFilt
* Filter the given container response.
*
* @param containerResponse
* the reponse to use
* the response to use
*/
public void doFilter(GenericContainerResponse containerResponse) {
containerResponse.getResponse();

// Get the request
ApplicationContext applicationContext = ApplicationContextImpl.getCurrent();
ApplicationContext applicationContext = ApplicationContext.getCurrent();
Request request = applicationContext.getRequest();

// Apply header if all if correct
Expand Down
Expand Up @@ -10,6 +10,9 @@
*******************************************************************************/
package org.eclipse.che.everrest;

import com.google.common.base.MoreObjects;
import com.google.common.util.concurrent.ThreadFactoryBuilder;

import org.eclipse.che.commons.env.EnvironmentContext;
import org.eclipse.che.commons.subject.Subject;
import org.everrest.core.DependencySupplier;
Expand All @@ -18,6 +21,8 @@
import org.everrest.core.impl.EverrestConfiguration;
import org.everrest.core.impl.EverrestProcessor;
import org.everrest.core.impl.ProviderBinder;
import org.everrest.core.impl.RequestDispatcher;
import org.everrest.core.impl.RequestHandlerImpl;
import org.everrest.core.impl.provider.json.JsonException;
import org.everrest.core.tools.SimplePrincipal;
import org.everrest.core.tools.SimpleSecurityContext;
Expand Down Expand Up @@ -47,14 +52,10 @@
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicLong;

import static javax.websocket.server.ServerEndpointConfig.Builder.create;
import static javax.websocket.server.ServerEndpointConfig.Configurator;

import com.google.common.base.MoreObjects;

/**
* @author andrew00x
*/
Expand All @@ -66,8 +67,6 @@ public class ServerContainerInitializeListener implements ServletContextListener
public static final String EXECUTOR_ATTRIBUTE = "everrest.Executor";
public static final String SECURITY_CONTEXT = SecurityContext.class.getName();

private static final AtomicLong sequence = new AtomicLong(1);

private WebApplicationDeclaredRoles webApplicationDeclaredRoles;
private EverrestConfiguration everrestConfiguration;
private ServerEndpointConfig wsServerEndpointConfig;
Expand Down Expand Up @@ -161,9 +160,10 @@ protected EverrestProcessor getEverrestProcessor(ServletContext servletContext)
final DependencySupplier dependencies = (DependencySupplier)servletContext.getAttribute(DependencySupplier.class.getName());
final ResourceBinder resources = (ResourceBinder)servletContext.getAttribute(ResourceBinder.class.getName());
final ProviderBinder providers = (ProviderBinder)servletContext.getAttribute(ApplicationProviderBinder.class.getName());
final EverrestConfiguration copy = getEverrestConfiguration(servletContext);
copy.setProperty(EverrestConfiguration.METHOD_INVOKER_DECORATOR_FACTORY, WebSocketMethodInvokerDecoratorFactory.class.getName());
return new EverrestProcessor(resources, providers, dependencies, copy, null);
final EverrestConfiguration copyOfEverrestConfiguration = new EverrestConfiguration(getEverrestConfiguration(servletContext));
copyOfEverrestConfiguration.setProperty(EverrestConfiguration.METHOD_INVOKER_DECORATOR_FACTORY, WebSocketMethodInvokerDecoratorFactory.class.getName());
final RequestHandlerImpl requestHandler = new RequestHandlerImpl(new RequestDispatcher(resources), providers);
return new EverrestProcessor(copyOfEverrestConfiguration, dependencies, requestHandler, null);
}

protected EverrestConfiguration getEverrestConfiguration(ServletContext servletContext) {
Expand All @@ -172,15 +172,9 @@ protected EverrestConfiguration getEverrestConfiguration(ServletContext servletC

protected ExecutorService createExecutor(final ServletContext servletContext) {
final EverrestConfiguration everrestConfiguration = getEverrestConfiguration(servletContext);
return Executors.newFixedThreadPool(everrestConfiguration.getAsynchronousPoolSize(), new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
final Thread t =
new Thread(r, "everrest.WSConnection." + servletContext.getServletContextName() + sequence.getAndIncrement());
t.setDaemon(true);
return t;
}
});
final String threadNameFormat = "everrest.WSConnection." + servletContext.getServletContextName() + "-%d";
return Executors.newFixedThreadPool(everrestConfiguration.getAsynchronousPoolSize(),
new ThreadFactoryBuilder().setNameFormat(threadNameFormat).setDaemon(true).build());
}

protected SecurityContext createSecurityContext(final HandshakeRequest req) {
Expand Down
Expand Up @@ -17,8 +17,7 @@
import org.everrest.core.ApplicationContext;
import org.everrest.core.impl.method.MethodInvokerDecorator;
import org.everrest.core.method.MethodInvoker;
import org.everrest.core.resource.GenericMethodResource;
import org.everrest.websockets.ServerContainerInitializeListener;
import org.everrest.core.resource.GenericResourceMethod;
import org.everrest.websockets.WSConnection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -36,7 +35,7 @@ class WebSocketMethodInvokerDecorator extends MethodInvokerDecorator {
}

@Override
public Object invokeMethod(Object resource, GenericMethodResource genericMethodResource, ApplicationContext context) {
public Object invokeMethod(Object resource, GenericResourceMethod genericMethodResource, ApplicationContext context) {
WSConnection wsConnection = (WSConnection)org.everrest.core.impl.EnvironmentContext.getCurrent().get(WSConnection.class);
if (wsConnection != null) {

Expand Down
Expand Up @@ -18,13 +18,15 @@
import org.eclipse.che.api.core.rest.shared.dto.Link;
import org.eclipse.che.api.core.rest.shared.dto.LinkParameter;
import org.eclipse.che.api.core.rest.shared.dto.ServiceDescriptor;
import org.everrest.core.ApplicationContext;
import org.everrest.core.ResourceBinder;
import org.everrest.core.impl.ApplicationContextImpl;
import org.everrest.core.impl.ApplicationProviderBinder;
import org.everrest.core.impl.ContainerResponse;
import org.everrest.core.impl.EverrestConfiguration;
import org.everrest.core.impl.EverrestProcessor;
import org.everrest.core.impl.ProviderBinder;
import org.everrest.core.impl.RequestDispatcher;
import org.everrest.core.impl.RequestHandlerImpl;
import org.everrest.core.impl.ResourceBinderImpl;
import org.everrest.core.tools.DependencySupplierImpl;
import org.everrest.core.tools.ResourceLauncher;
Expand All @@ -40,12 +42,13 @@
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.MediaType;

import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import static org.everrest.core.ApplicationContext.anApplicationContext;

/** @author <a href="mailto:andrew00x@gmail.com">Andrey Parfonov</a> */
public class ServiceDescriptorTest {
final String BASE_URI = "http://localhost/service";
Expand Down Expand Up @@ -91,11 +94,14 @@ public void setUp() throws Exception {
DependencySupplierImpl dependencies = new DependencySupplierImpl();
ResourceBinder resources = new ResourceBinderImpl();
ProviderBinder providers = new ApplicationProviderBinder();
EverrestProcessor processor = new EverrestProcessor(resources,providers,dependencies,new EverrestConfiguration(), null);
EverrestProcessor processor = new EverrestProcessor(new EverrestConfiguration(),
dependencies,
new RequestHandlerImpl(new RequestDispatcher(resources), providers),
null);
launcher = new ResourceLauncher(processor);
processor.addApplication(new Deployer());
ApplicationContextImpl.setCurrent(new ApplicationContextImpl(null, null, ProviderBinder.getInstance()));
System.out.println("initilize");
ApplicationContext.setCurrent(anApplicationContext().withProviders(providers).build());
System.out.println("initialized");
}

@Test
Expand Down
Expand Up @@ -12,12 +12,14 @@

import org.eclipse.che.api.core.rest.ApiExceptionMapper;
import org.eclipse.che.api.core.rest.DownloadFileResponseFilter;
import org.everrest.core.impl.ApplicationContextImpl;
import org.everrest.core.ApplicationContext;
import org.everrest.core.impl.ApplicationProviderBinder;
import org.everrest.core.impl.ContainerRequest;
import org.everrest.core.impl.ContainerResponse;
import org.everrest.core.impl.EverrestConfiguration;
import org.everrest.core.impl.EverrestProcessor;
import org.everrest.core.impl.RequestDispatcher;
import org.everrest.core.impl.RequestHandlerImpl;
import org.everrest.core.impl.ResourceBinderImpl;
import org.everrest.core.tools.DependencySupplierImpl;
import org.everrest.core.tools.ResourceLauncher;
Expand All @@ -39,6 +41,7 @@

import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static javax.ws.rs.core.Response.Status.OK;
import static org.everrest.core.ApplicationContext.anApplicationContext;
import static org.testng.Assert.assertEquals;

/**
Expand Down Expand Up @@ -105,18 +108,16 @@ public void before() throws Exception {
final ResourceBinderImpl resources = new ResourceBinderImpl();
resources.addResource(MyJaxRSService.class, null);
final DependencySupplierImpl dependencies = new DependencySupplierImpl();
final ApplicationProviderBinder binder = new ApplicationProviderBinder();
binder.addExceptionMapper(ApiExceptionMapper.class);
binder.addResponseFilter(EverrestDownloadFileResponseFilter.class);
final ApplicationProviderBinder providers = new ApplicationProviderBinder();
providers.addExceptionMapper(ApiExceptionMapper.class);
providers.addResponseFilter(EverrestDownloadFileResponseFilter.class);
final URI uri = new URI(BASE_URI);
final ContainerRequest req = new ContainerRequest(null, uri, uri, null, null, null);
final ApplicationContextImpl contextImpl = new ApplicationContextImpl(req, null, binder);
contextImpl.setDependencySupplier(dependencies);
ApplicationContextImpl.setCurrent(contextImpl);
final EverrestProcessor processor = new EverrestProcessor(resources,
binder,
final ApplicationContext context = anApplicationContext().withRequest(req).withProviders(providers).withDependencySupplier(dependencies).build();
ApplicationContext.setCurrent(context);
final EverrestProcessor processor = new EverrestProcessor(new EverrestConfiguration(),
dependencies,
new EverrestConfiguration(),
new RequestHandlerImpl(new RequestDispatcher(resources), providers),
null);
resourceLauncher = new ResourceLauncher(processor);
}
Expand Down
Expand Up @@ -11,12 +11,14 @@
package org.eclipse.che.everrest;

import org.eclipse.che.api.core.rest.ApiExceptionMapper;
import org.everrest.core.impl.ApplicationContextImpl;
import org.everrest.core.ApplicationContext;
import org.everrest.core.impl.ApplicationProviderBinder;
import org.everrest.core.impl.ContainerRequest;
import org.everrest.core.impl.ContainerResponse;
import org.everrest.core.impl.EverrestConfiguration;
import org.everrest.core.impl.EverrestProcessor;
import org.everrest.core.impl.RequestDispatcher;
import org.everrest.core.impl.RequestHandlerImpl;
import org.everrest.core.impl.ResourceBinderImpl;
import org.everrest.core.tools.DependencySupplierImpl;
import org.everrest.core.tools.ResourceLauncher;
Expand All @@ -31,7 +33,6 @@
import javax.ws.rs.core.EntityTag;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Response;

import java.net.URI;
import java.util.Arrays;
import java.util.Collections;
Expand All @@ -42,6 +43,7 @@
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static javax.ws.rs.core.Response.Status.NOT_MODIFIED;
import static javax.ws.rs.core.Response.Status.OK;
import static org.everrest.core.ApplicationContext.anApplicationContext;
import static org.testng.Assert.assertEquals;

/**
Expand Down Expand Up @@ -109,18 +111,17 @@ public void before() throws Exception {
final ResourceBinderImpl resources = new ResourceBinderImpl();
resources.addResource(MyJaxRSService.class, null);
final DependencySupplierImpl dependencies = new DependencySupplierImpl();
final ApplicationProviderBinder binder = new ApplicationProviderBinder();
binder.addExceptionMapper(ApiExceptionMapper.class);
binder.addResponseFilter(ETagResponseFilter.class);
final ApplicationProviderBinder providers = new ApplicationProviderBinder();
providers.addExceptionMapper(ApiExceptionMapper.class);
providers.addResponseFilter(ETagResponseFilter.class);
final URI uri = new URI(BASE_URI);
final ContainerRequest req = new ContainerRequest(null, uri, uri, null, null, null);
final ApplicationContextImpl contextImpl = new ApplicationContextImpl(req, null, binder);
final ApplicationContext contextImpl = anApplicationContext().withRequest(req).withProviders(providers).build();
contextImpl.setDependencySupplier(dependencies);
ApplicationContextImpl.setCurrent(contextImpl);
final EverrestProcessor processor = new EverrestProcessor(resources,
binder,
ApplicationContext.setCurrent(contextImpl);
final EverrestProcessor processor = new EverrestProcessor(new EverrestConfiguration(),
dependencies,
new EverrestConfiguration(),
new RequestHandlerImpl(new RequestDispatcher(resources), providers),
null);
resourceLauncher = new ResourceLauncher(processor);
}
Expand Down

0 comments on commit f63d7a4

Please sign in to comment.