private List<Link> linksOf(final JobDefinition jobDefinition, final String baseUri, final String edisonManagementBasePath) { return asList( link("self", String.format("%s%s/jobsdefinitions/%s", baseUri, edisonManagementBasePath, jobDefinition.jobType()), null), link("collection", String.format("%s%s/jobdefinitions", baseUri, edisonManagementBasePath), null), link("http://github.com/otto-de/edison/link-relations/job/trigger", String.format("%s%s/jobs/%s", baseUri, edisonManagementBasePath, jobDefinition.jobType()), null) ); }
public static Link link(final String rel, final String href, final String title) { return new Link(href, rel, title); }
public List<Link> getLinks() { final String jobUri = String.format("%s%s/jobs/%s", baseUri, edisonManagementBasePath, job.getJobId()); return asList( link("self", jobUri, "Self"), link("http://github.com/otto-de/edison/link-relations/job/definition", String.format("%s%s/jobdefinitions/%s", baseUri, edisonManagementBasePath, job.getJobType()), "Job Definition"), link("collection", jobUri.substring(0, jobUri.lastIndexOf("/")), "All Jobs"), link("collection/" + getJobType(), jobUri.substring(0, jobUri.lastIndexOf("/")) + "?type=" + getJobType(), "All " + getJobType() + " Jobs") ); }
@RequestMapping(value = "${edison.application.management.base-path:/internal}/jobdefinitions", method = GET, produces = "application/json") @ResponseBody public Map<String, List<Link>> getJobDefinitionsAsJson(final HttpServletRequest request) { final String baseUri = baseUriOf(request); return singletonMap("links", new ArrayList<Link>() {{ addAll(jobDefinitionService.getJobDefinitions() .stream() .map((def) -> link( "http://github.com/otto-de/edison/link-relations/job/definition", baseUri + jobDefinitionsUri + "/" + def.jobType(), def.jobName())) .collect(toList())); add(link("self", baseUriOf(request) + jobDefinitionsUri, "Self")); }}); }
message, asList( link(REL_JOB, String.format("%s/jobs/%s", managementContextPath, lastJob.getJobId()), "Details") ), runningDetailsFor(lastJob)
@Test public void shouldCreateStatusRepresentationWithDetailInclUrl() { // given final StatusRepresentation json = statusRepresentationOf( applicationStatus( mock(ApplicationInfo.class), mock(ClusterInfo.class), mock(SystemInfo.class), mock(VersionInfo.class), mock(TeamInfo.class), singletonList( statusDetail("someDetail", OK, "some message", link("item", "http://example.org/some/url", "some title")) ) ) ); // then assertThat(json.application.status, is(OK)); final JsonMap jsonMap = jsonMapFrom(json.application.statusDetails.get("someDetail")); final JsonMap link = jsonMap.get("links").asListOf(JsonMap.class).get(0); assertThat(link.getString("href"), is("http://example.org/some/url")); assertThat(link.getString("title"), is("some title")); assertThat(link.getString("rel"), is("item")); }