use of io.crnk.core.engine.filter.DocumentFilter in project crnk-framework by crnk-project.
the class MetaModule method setupModule.
@Override
public void setupModule(ModuleContext context) {
this.context = context;
informationBuilder = registerInformationBuilder(context.getPropertiesProvider());
if (context.isServer()) {
context.addFilter(new DocumentFilter() {
@Override
public Response filter(DocumentFilterContext filterRequestContext, DocumentFilterChain chain) {
try {
return chain.doFilter(filterRequestContext);
} finally {
lookupRequestLocal.remove();
}
}
});
} else {
context.addResourceLookup(new ResourceLookup() {
@SuppressWarnings("unchecked")
@Override
public Set<Class<?>> getResourceClasses() {
return (Set) collectMetaClasses();
}
});
}
}
use of io.crnk.core.engine.filter.DocumentFilter in project crnk-framework by crnk-project.
the class JsonApiActionResponseTest method setupFeature.
@Override
protected void setupFeature(CrnkTestFeature feature) {
filter = Mockito.spy(new DocumentFilter() {
@Override
public Response filter(DocumentFilterContext filterRequestContext, DocumentFilterChain chain) {
return chain.doFilter(filterRequestContext);
}
});
SimpleModule testModule = new SimpleModule("testFilter");
testModule.addFilter(filter);
feature.addModule(testModule);
}
use of io.crnk.core.engine.filter.DocumentFilter in project crnk-framework by crnk-project.
the class BasicActionTest method setupFeature.
@Override
protected void setupFeature(CrnkTestFeature feature) {
filter = Mockito.spy(new DocumentFilter() {
@Override
public Response filter(DocumentFilterContext filterRequestContext, DocumentFilterChain chain) {
return chain.doFilter(filterRequestContext);
}
});
SimpleModule testModule = new SimpleModule("testFilter");
testModule.addFilter(filter);
feature.addModule(testModule);
}
use of io.crnk.core.engine.filter.DocumentFilter in project crnk-framework by crnk-project.
the class CrnkBoot method setupComponents.
private void setupComponents() {
// not that the provided default implementation here are added last and
// as a consequence,
// can be overriden by other modules, like the
// JaxrsResourceRepositoryInformationBuilder.
SimpleModule module = new SimpleModule("discovery") {
@Override
public void setupModule(ModuleContext context) {
this.addHttpRequestProcessor(new JsonApiRequestProcessor(context));
super.setupModule(context);
}
};
for (JsonApiExceptionMapper<?> exceptionMapper : getInstancesByType(JsonApiExceptionMapper.class)) {
module.addExceptionMapper(exceptionMapper);
}
for (DocumentFilter filter : getInstancesByType(DocumentFilter.class)) {
module.addFilter(filter);
}
for (Object repository : getInstancesByType(Repository.class)) {
module.addRepository(repository);
}
for (Object repository : serviceDiscovery.getInstancesByAnnotation(JsonApiResourceRepository.class)) {
JsonApiResourceRepository annotation = ClassUtils.getAnnotation(repository.getClass(), JsonApiResourceRepository.class).get();
Class<?> resourceClass = annotation.value();
module.addRepository(resourceClass, repository);
}
for (Object repository : serviceDiscovery.getInstancesByAnnotation(JsonApiRelationshipRepository.class)) {
JsonApiRelationshipRepository annotation = ClassUtils.getAnnotation(repository.getClass(), JsonApiRelationshipRepository.class).get();
module.addRepository(annotation.source(), annotation.target(), repository);
}
moduleRegistry.addModule(module);
moduleRegistry.addModule(new CoreModule());
}
use of io.crnk.core.engine.filter.DocumentFilter in project crnk-framework by crnk-project.
the class CrnkBootTest method testServiceDiscovery.
@Test
public void testServiceDiscovery() {
CrnkBoot boot = new CrnkBoot();
boot.setServiceDiscoveryFactory(serviceDiscoveryFactory);
boot.setServiceUrlProvider(mock(ServiceUrlProvider.class));
Module module = mock(Module.class);
DocumentFilter filter = mock(DocumentFilter.class);
JsonApiExceptionMapper exceptionMapper = new TestExceptionMapper();
Mockito.when(serviceDiscovery.getInstancesByType(eq(DocumentFilter.class))).thenReturn(Arrays.asList(filter));
Mockito.when(serviceDiscovery.getInstancesByType(eq(Module.class))).thenReturn(Arrays.asList(module));
Mockito.when(serviceDiscovery.getInstancesByType(eq(JsonApiExceptionMapper.class))).thenReturn(Arrays.asList(exceptionMapper));
boot.boot();
ModuleRegistry moduleRegistry = boot.getModuleRegistry();
Assert.assertTrue(moduleRegistry.getModules().contains(module));
Assert.assertTrue(moduleRegistry.getFilters().contains(filter));
Assert.assertTrue(moduleRegistry.getExceptionMapperLookup().getExceptionMappers().contains(exceptionMapper));
}
Aggregations