use of org.springframework.data.domain.Sort in project CzechIdMng by bcvsolutions.
the class IdentityReportExecutor method generateData.
@Override
protected IdmAttachmentDto generateData(RptReportDto report) {
File temp = null;
FileOutputStream outputStream = null;
try {
// prepare temp file for json stream
temp = getAttachmentManager().createTempFile();
outputStream = new FileOutputStream(temp);
// write into json stream
JsonGenerator jGenerator = getMapper().getFactory().createGenerator(outputStream, JsonEncoding.UTF8);
try {
// json will be array of identities
jGenerator.writeStartArray();
// form instance has useful methods to transform form values
IdmFormInstanceDto formInstance = new IdmFormInstanceDto(report, getFormDefinition(), report.getFilter());
// initialize filter by given form - transform to multi value map
// => form attribute defined above will be automaticaly mapped to identity filter
IdmIdentityFilter filter = new IdmIdentityFilter(formInstance.toMultiValueMap());
// report extends long running task - show progress by count and counter lrt attributes
counter = 0L;
// find a first page of identities
Pageable pageable = new PageRequest(0, 100, new Sort(Direction.ASC, IdmIdentity_.username.getName()));
do {
Page<IdmIdentityDto> identities = identityService.find(filter, pageable, IdmBasePermission.READ);
if (count == null) {
// report extends long running task - show progress by count and counter lrt attributes
count = identities.getTotalElements();
}
boolean canContinue = true;
for (Iterator<IdmIdentityDto> i = identities.iterator(); i.hasNext() && canContinue; ) {
// write single identity into json
getMapper().writeValue(jGenerator, i.next());
//
// supports cancel report generating (report extends long running task)
++counter;
canContinue = updateState();
}
// iterate while next page of identities is available
pageable = identities.hasNext() && canContinue ? identities.nextPageable() : null;
} while (pageable != null);
//
// close array of identities
jGenerator.writeEndArray();
} finally {
// close json stream
jGenerator.close();
}
// save create temp file with array of identities in json as attachment
return createAttachment(report, new FileInputStream(temp));
} catch (IOException ex) {
throw new ReportGenerateException(report.getName(), ex);
} finally {
// just for sure - jGenerator should close stream itself
IOUtils.closeQuietly(outputStream);
FileUtils.deleteQuietly(temp);
}
}
use of org.springframework.data.domain.Sort in project CzechIdMng by bcvsolutions.
the class IdentityReportExecutor method generateData.
@Override
protected IdmAttachmentDto generateData(RptReportDto report) {
File temp = null;
FileOutputStream outputStream = null;
try {
// prepare temp file for json stream
temp = getAttachmentManager().createTempFile();
outputStream = new FileOutputStream(temp);
// write into json stream
JsonGenerator jGenerator = getMapper().getFactory().createGenerator(outputStream, JsonEncoding.UTF8);
try {
// json will be array of identities
jGenerator.writeStartArray();
// form instance has useful methods to transform form values
IdmFormInstanceDto formInstance = new IdmFormInstanceDto(report, getFormDefinition(), report.getFilter());
// initialize filter by given form - transform to multi value map
// => form attribute defined above will be automaticaly mapped to identity filter
IdmIdentityFilter filter = new IdmIdentityFilter(formInstance.toMultiValueMap());
// report extends long running task - show progress by count and counter lrt attributes
counter = 0L;
// find a first page of identities
Pageable pageable = new PageRequest(0, 100, new Sort(Direction.ASC, IdmIdentity_.username.getName()));
do {
Page<IdmIdentityDto> identities = identityService.find(filter, pageable, IdmBasePermission.READ);
if (count == null) {
// report extends long running task - show progress by count and counter lrt attributes
count = identities.getTotalElements();
}
boolean canContinue = true;
for (Iterator<IdmIdentityDto> i = identities.iterator(); i.hasNext() && canContinue; ) {
// write single identity into json
getMapper().writeValue(jGenerator, i.next());
//
// supports cancel report generating (report extends long running task)
++counter;
canContinue = updateState();
}
// iterate while next page of identities is available
pageable = identities.hasNext() && canContinue ? identities.nextPageable() : null;
} while (pageable != null);
//
// close array of identities
jGenerator.writeEndArray();
} finally {
// close json stream
jGenerator.close();
}
// save create temp file with array of identities in json as attachment
return createAttachment(report, new FileInputStream(temp));
} catch (IOException ex) {
throw new ReportGenerateException(report.getName(), ex);
} finally {
// just for sure - jGenerator should close stream itself
IOUtils.closeQuietly(outputStream);
FileUtils.deleteQuietly(temp);
}
}
use of org.springframework.data.domain.Sort in project CzechIdMng by bcvsolutions.
the class DefaultVsRequestService method findDuplicities.
/**
* Find duplicity requests. All request in state IN_PROGRESS for same UID and
* system. For all operation types.
*
* @param request
* @return
*/
@Override
public List<VsRequestDto> findDuplicities(String uid, UUID systemId) {
VsRequestFilter filter = new VsRequestFilter();
filter.setUid(uid);
filter.setSystemId(systemId);
filter.setState(VsRequestState.IN_PROGRESS);
Sort sort = new Sort(Direction.DESC, VsRequest_.created.getName());
return this.find(filter, new PageRequest(0, Integer.MAX_VALUE, sort)).getContent();
}
use of org.springframework.data.domain.Sort in project cas by apereo.
the class MongoDbThrottledSubmissionHandlerInterceptorAdapter method exceedsThreshold.
@Override
public boolean exceedsThreshold(final HttpServletRequest request) {
final ClientInfo clientInfo = ClientInfoHolder.getClientInfo();
final String remoteAddress = clientInfo.getClientIpAddress();
final Query query = new Query().addCriteria(Criteria.where("clientIpAddress").is(remoteAddress).and("principal").is(getUsernameParameterFromRequest(request)).and("actionPerformed").is(getAuthenticationFailureCode()).and("applicationCode").is(getApplicationCode()).and("whenActionWasPerformed").gte(getFailureInRangeCutOffDate()));
query.with(new Sort(Sort.Direction.DESC, "whenActionWasPerformed"));
query.limit(2);
query.fields().include("whenActionWasPerformed");
LOGGER.debug("Executing MongoDb throttling query [{}]", query.toString());
final List<Date> failures = this.mongoTemplate.find(query, AuditActionContext.class, this.collectionName).stream().map(AuditActionContext::getWhenActionWasPerformed).collect(Collectors.toList());
return calculateFailureThresholdRateAndCompare(failures);
}
use of org.springframework.data.domain.Sort in project plumdo-work by wengwh.
the class BaseResource method getPageable.
protected Pageable getPageable(Map<String, String> requestParams) {
int page = 1;
if (requestParams.containsKey("pageNum")) {
page = ObjectUtils.convertToInteger(requestParams.get("pageNum"), 1);
}
int size = 10;
if (requestParams.containsKey("pageSize")) {
size = ObjectUtils.convertToInteger(requestParams.get("pageSize"), 10);
}
Order order = null;
if (ObjectUtils.isNotEmpty(requestParams.get("sortName"))) {
String sortName = requestParams.get("sortName");
String sortOrder = requestParams.get("sortOrder");
if (ObjectUtils.isEmpty(sortOrder) || sortOrder.equals("desc")) {
order = new Order(Direction.DESC, sortName);
} else {
order = new Order(Direction.ASC, sortName);
}
}
if (order == null) {
return new PageRequest(page - 1, size);
} else {
return new PageRequest(page - 1, size, new Sort(order));
}
}
Aggregations