/** * Handles listing of shallow metric representations. Method still has to be overridden (and * annotated) in subclasses because of the way {@link PagedResourcesAssemblerArgumentResolver} * works. */ protected PagedResources<MetricResource> list( Pageable pageable, PagedResourcesAssembler<M> pagedAssembler) { /* Page */ Iterable<M> metrics = repository.findAll(/* pageable */ ); // Ok for now until we use PagingAndSortingRepo as we know we have lists Page<M> page = new PageImpl<M>((List<M>) metrics); return pagedAssembler.toResource(page, shallowResourceAssembler); }
public WebsiteResource toResource() { UserAccount currentUser = this.userAccountService.getCurrentUser(); WebsiteResource resource = new WebsiteResource(); resource.setAuthenticated(currentUser != null); try { resource.add( linkTo(methodOn(WebsiteRestController.class).getPublicWebsiteResource()).withSelfRel()); String baseUri = BasicLinkBuilder.linkToCurrentMapping().toString(); Link blogsLink = new Link( new UriTemplate(baseUri + ApiUrls.API_ROOT + ApiUrls.URL_SITE_BLOGS), WebsiteResource.LINK_NAME_BLOGS); resource.add(assembler.appendPaginationParameterTemplates(blogsLink)); Link blogLink = new Link( new UriTemplate(baseUri + ApiUrls.API_ROOT + ApiUrls.URL_SITE_BLOGS_BLOG), WebsiteResource.LINK_NAME_BLOG); resource.add(blogLink); resource.add( linkTo(methodOn(WebsiteRestController.class).getCurrentUserAccount()) .withRel(WebsiteResource.LINK_NAME_CURRENT_USER)); resource.add( linkTo(methodOn(WebsiteRestController.class).getLatestBlogPost()) .withRel(WebsiteResource.LINK_NAME_LATEST_BLOG)); resource.add( linkTo(methodOn(WebsiteRestController.class).getRecentPublicBlogPosts()) .withRel(WebsiteResource.LINK_NAME_RECENT_BLOGS)); resource.add( linkTo(methodOn(WebsiteRestController.class).getRecentPublicCommentPosts()) .withRel(WebsiteResource.LINK_NAME_RECENT_COMMENTS)); resource.add( linkTo(methodOn(WebsiteRestController.class).getTagCloud()) .withRel(WebsiteResource.LINK_NAME_TAG_CLOUD)); Link profileLink = new Link( new UriTemplate(baseUri + ApiUrls.API_ROOT + ApiUrls.URL_SITE_PROFILES_USER), WebsiteResource.LINK_NAME_PROFILE); resource.add(profileLink); Link postCommentLink = new Link( new UriTemplate(baseUri + ApiUrls.API_ROOT + ApiUrls.URL_USER_BLOGS_BLOG_COMMENTS), WebsiteResource.LINK_NAME_POST_COMMENT); resource.add(postCommentLink); } catch (ResourceNotFoundException ex) { } return resource; }
@RequestMapping("/persons") PagedResources<Resource<Person>> sample(Pageable pageable) { Page<Person> page = new PageImpl<Person>( Arrays.asList(new Person()), pageable, pageable.getOffset() + pageable.getPageSize() + 1); return assembler.toResource(page); }
@RequestMapping(method = RequestMethod.GET, produces = "application/json; charset=utf-8") public PagedResources<UserResource> collectionList( Pageable pageable, PagedResourcesAssembler<User> assembler, @RequestParam(value = "firstName", required = false) String firstName, @RequestParam(value = "lastName", required = false) String lastName, @RequestParam(value = "mail", required = false) String mail, HttpServletRequest httpServletRequest) { Page<User> users = null; try { if (firstName != null || lastName != null || mail != null) { if (firstName == null) firstName = ""; if (lastName == null) lastName = ""; if (mail == null) mail = ""; users = userRepo.findByLastNameLikeIgnoreCaseAndFirstNameLikeIgnoreCaseAndMailLikeIgnoreCase( "%" + lastName + "%", "%" + firstName + "%", "%" + mail + "%", pageable); } else { users = userRepo.findAllPaged(pageable); } } catch (DataAccessException e) { String msg = "Can't retrieve asked users from DB"; logger.error(msg, e); throw new DefaultSportManagerException( new ErrorResource("db error", msg, HttpStatus.INTERNAL_SERVER_ERROR)); } PagedResources<UserResource> resources = assembler.toResource(users, userResourceAssembler); resources.add(linkTo(UserController.class).withSelfRel()); if (httpServletRequest.isUserInRole("AK_ADMIN")) { resources.add(linkTo(UserController.class).withRel(ActionsConstants.CREATE_VIA_POST)); // On rajoute les liens sur les users for (UserResource resource : resources) { resource.add( linkTo(methodOn(UserController.class).userGet(resource.getTech_id(), null)) .withRel(ActionsConstants.UPDATE_VIA_PUT)); resource.add( linkTo(methodOn(UserController.class).userGet(resource.getTech_id(), null)) .withRel(ActionsConstants.DELETE_VIA_DELETE)); } } return resources; }
/** * List all the available containers along with the message rates for each deployed modules. * * @throws ModuleMessageRateNotFoundException * @throws JSONException */ @RequestMapping(value = "", method = RequestMethod.GET) @ResponseStatus(HttpStatus.OK) @ResponseBody public PagedResources<DetailedContainerResource> list( Pageable pageable, PagedResourcesAssembler<DetailedContainer> assembler) throws ModuleMessageRateNotFoundException, JSONException { Page<DetailedContainer> containers = containerRepository.findAllRuntimeContainers(pageable); for (DetailedContainer container : containers) { String containerHost = container.getAttributes().getIp(); String containerManagementPort = container.getAttributes().getManagementPort(); if (StringUtils.hasText(containerManagementPort) && enableMessageRates.equalsIgnoreCase("true")) { Map<String, HashMap<String, Double>> messageRates = new HashMap<String, HashMap<String, Double>>(); for (ModuleMetadata moduleMetadata : container.getDeployedModules()) { String moduleName = moduleMetadata.getName(); String moduleLabel = moduleName.substring(0, moduleName.indexOf('.')); String request = CONTAINER_HOST_URI_PROTOCOL + containerHost + ":" + containerManagementPort + "/management/jolokia/read/xd." + moduleMetadata.getUnitName() + ":module=" + moduleLabel + ".*,component=*,name=%s/MeanSendRate"; try { HashMap<String, Double> rate = new HashMap<String, Double>(); if (moduleMetadata.getModuleType().equals(ModuleType.source)) { rate.put("output", getMessageRate(String.format(request, "output"))); } else if (moduleMetadata.getModuleType().equals(ModuleType.sink)) { rate.put("input", getMessageRate(String.format(request, "input"))); } else if (moduleMetadata.getModuleType().equals(ModuleType.processor)) { rate.put("output", getMessageRate(String.format(request, "output"))); rate.put("input", getMessageRate(String.format(request, "input"))); } messageRates.put(moduleMetadata.getQualifiedId(), rate); } catch (RestClientException e) { throw new ModuleMessageRateNotFoundException(e.getMessage()); } } container.setMessageRates(messageRates); } } return assembler.toResource(containers, resourceAssembler); }
/** List module registrations. */ @RequestMapping(method = RequestMethod.GET) @ResponseStatus(HttpStatus.OK) public PagedResources<? extends ModuleRegistrationResource> list( PagedResourcesAssembler<ArtifactRegistration> assembler, @RequestParam(value = "type", required = false) ArtifactType type, @RequestParam(value = "detailed", defaultValue = "false") boolean detailed) { List<ArtifactRegistration> list = new ArrayList<>(registry.findAll()); for (Iterator<ArtifactRegistration> iterator = list.iterator(); iterator.hasNext(); ) { ArtifactType artifactType = iterator.next().getType(); if ((type != null && artifactType != type) || artifactType == ArtifactType.library) { iterator.remove(); } } Collections.sort(list); return assembler.toResource(new PageImpl<>(list), moduleAssembler); }