use of io.crnk.core.boot.CrnkBoot in project crnk-framework by crnk-project.
the class BraveResponseFilterTest method setup.
@Before
public void setup() {
boot = new CrnkBoot();
boot.setServiceDiscovery(new ReflectionsServiceDiscovery("io.crnk.test.mock.repository", new SampleJsonServiceLocator()));
boot.boot();
span = Mockito.mock(Span.class);
tracing = Mockito.mock(Tracing.class);
tracer = Mockito.mock(Tracer.class);
Mockito.when(tracing.tracer()).thenReturn(tracer);
Mockito.when(tracer.nextSpan()).thenReturn(span);
moduleContext = Mockito.mock(Module.ModuleContext.class);
Mockito.when(moduleContext.getResourceRegistry()).thenReturn(boot.getResourceRegistry());
QuerySpec querySpec = new QuerySpec(Task.class);
queryAdapter = new QuerySpecAdapter(querySpec, boot.getResourceRegistry());
ResourceInformation taskResourceInformation = boot.getResourceRegistry().getEntry(Task.class).getResourceInformation();
requestSpec = Mockito.mock(RepositoryRequestSpec.class);
Mockito.when(requestSpec.getMethod()).thenReturn(HttpMethod.GET);
Mockito.when(requestSpec.getQueryAdapter()).thenReturn(queryAdapter);
Mockito.when(requestSpec.getQuerySpec(taskResourceInformation)).thenReturn(querySpec);
filter = new BraveRepositoryFilter(tracing, moduleContext);
filterContext = Mockito.mock(RepositoryFilterContext.class);
Mockito.when(filterContext.getRequest()).thenReturn(requestSpec);
filterChain = Mockito.mock(RepositoryRequestFilterChain.class);
}
use of io.crnk.core.boot.CrnkBoot in project crnk-framework by crnk-project.
the class AbstractMetaTest method setup.
@Before
public void setup() {
boot = new CrnkBoot();
boot.addModule(new JaxrsModule(null));
boot.setServiceUrlProvider(new ConstantServiceUrlProvider("http://localhost"));
boot.addModule(new TestModule());
boot.addModule(new io.crnk.test.mock.dynamic.DynamicModule());
configure();
boot.boot();
resourceProvider = new ResourceMetaProvider();
lookup = new MetaLookup();
lookup.addProvider(resourceProvider);
lookup.setModuleContext(boot.getModuleRegistry().getContext());
lookup.initialize();
}
use of io.crnk.core.boot.CrnkBoot in project crnk-framework by crnk-project.
the class MetaMetaTest method setup.
@Before
public void setup() {
CrnkBoot boot = new CrnkBoot();
boot.setServiceUrlProvider(new ConstantServiceUrlProvider("http://localhost"));
boot.addModule(new TestModule());
resourceProvider = new ResourceMetaProvider();
MetaModuleConfig moduleConfig = new MetaModuleConfig();
moduleConfig.addMetaProvider(resourceProvider);
MetaModule module = MetaModule.createServerModule(moduleConfig);
boot.addModule(module);
boot.boot();
lookup = module.getLookup();
}
use of io.crnk.core.boot.CrnkBoot in project crnk-framework by crnk-project.
the class JsonApiResponseFilter method filter.
/**
* Creates JSON API responses for custom JAX-RS actions returning Crnk resources.
*/
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
Object response = responseContext.getEntity();
if (response == null) {
if (feature.getBoot().isNullDataResponseEnabled()) {
Document document = new Document();
document.setData(Nullable.nullValue());
responseContext.setEntity(document);
responseContext.setStatus(Response.Status.OK.getStatusCode());
responseContext.getHeaders().put("Content-Type", Collections.singletonList((Object) JsonApiMediaType.APPLICATION_JSON_API));
}
return;
}
// only modify responses which contain a single or a list of Crnk resources
if (isResourceResponse(response)) {
CrnkBoot boot = feature.getBoot();
DocumentMapper documentMapper = boot.getDocumentMapper();
HttpRequestContextProvider httpRequestContextProvider = boot.getModuleRegistry().getHttpRequestContextProvider();
try {
HttpRequestContext context = new HttpRequestContextBaseAdapter(new JaxrsRequestContext(requestContext, feature));
httpRequestContextProvider.onRequestStarted(context);
JsonApiResponse jsonApiResponse = new JsonApiResponse();
jsonApiResponse.setEntity(response);
// use the Crnk document mapper to create a JSON API response
responseContext.setEntity(documentMapper.toDocument(jsonApiResponse, null));
responseContext.getHeaders().put("Content-Type", Collections.singletonList((Object) JsonApiMediaType.APPLICATION_JSON_API));
} finally {
httpRequestContextProvider.onRequestFinished();
}
} else if (isJsonApiResponse(responseContext) && !doNotWrap(response)) {
Document document = new Document();
document.setData(Nullable.of(response));
responseContext.setEntity(document);
}
}
Aggregations