request.setCharacterEncoding("UTF-8");
context = contextService.getContext();
XOAIManager manager = xoaiManagerResolver.getManager();
OAIDataProvider dataProvider = new OAIDataProvider(manager, xoaiContext,
identifyResolver.getIdentify(),
setRepositoryResolver.getSetRepository(),
itemRepositoryResolver.getItemRepository(),
resumptionTokenFormat);
OutputStream out = response.getOutputStream();
OAIRequestParameters parameters = new OAIRequestParameters(buildParametersMap(request));
response.setContentType("application/xml");
String identification = xoaiContext + parameters.requestID();
if (cacheService.isActive()) {
if (!cacheService.hasCache(identification))
cacheService.store(identification, dataProvider.handle(parameters));
cacheService.handle(identification, out);
} else dataProvider.handle(parameters, out);
out.flush();
out.close();