@GET @Path("suggestions") public Response getSuggestions(@Context SecurityContext sc, @Context UriInfo uriInfo) { try { String userId = getUserId(sc, uriInfo); if (userId == null) { return Response.status(HTTPStatus.INTERNAL_ERROR).cacheControl(cacheControl).build(); } SpaceService spaceService = (SpaceService) ExoContainerContext.getCurrentContainer() .getComponentInstanceOfType(SpaceService.class); List<Space> suggestedSpaces = spaceService.getPublicSpaces(userId); IdentityManager identityManager = (IdentityManager) ExoContainerContext.getCurrentContainer() .getComponentInstanceOfType(IdentityManager.class); Identity identity = identityManager.getOrCreateIdentity(OrganizationIdentityProvider.NAME, userId); List<Identity> connections = identityManager.getConnections(identity); JSONArray jsonArray = new JSONArray(); for (Space space : suggestedSpaces) { if (space.getVisibility().equals(Space.HIDDEN)) continue; if (space.getRegistration().equals(Space.CLOSE)) continue; List<Identity> identityListMember = new ArrayList<Identity>(); String avatar = space.getAvatarUrl(); if (avatar == null) { avatar = "/social-resources/skin/ShareImages/SpaceImages/SpaceLogoDefault_61x61.gif"; } for (String mem : space.getMembers()) { Identity identityMem = identityManager.getOrCreateIdentity(OrganizationIdentityProvider.NAME, mem); identityListMember.add(identityMem); } int k = 0; for (Identity i : identityListMember) { for (Identity j : connections) { if (j.equals(i)) { k++; } } } String spaceType = ""; if (space.getRegistration().equals(Space.OPEN)) { spaceType = "Public"; } else { spaceType = "Private"; } JSONObject json = new JSONObject(); json.put("name", space.getName()); json.put("spaceId", space.getId()); json.put("displayName", space.getDisplayName()); json.put("spaceUrl", space.getUrl()); json.put("avatarUrl", avatar); json.put("registration", space.getRegistration()); json.put("members", space.getMembers().length); json.put("privacy", spaceType); json.put("number", k); jsonArray.put(json); } return Response.ok(jsonArray.toString(), MediaType.APPLICATION_JSON) .cacheControl(cacheControl) .build(); } catch (Exception e) { log.error("Error in space invitation rest service: " + e.getMessage(), e); return Response.ok("error").cacheControl(cacheControl).build(); } }