@RequestMapping()
	@ResponseBody
	public XDRuntime info() {
		XDRuntime xdRuntime = new XDRuntime();
		xdRuntime.add(entityLinks.linkFor(StreamDefinitionResource.class).withRel("streams"));
		xdRuntime.add(entityLinks.linkFor(JobDefinitionResource.class).withRel("jobs"));
		xdRuntime.add(entityLinks.linkFor(ModuleDefinitionResource.class).withRel("modules"));
		xdRuntime.add(entityLinks.linkFor(SecurityInfoResource.class).withRel("security/info"));
		xdRuntime.add(entityLinks.linkFor(ModuleMetadataResource.class).withRel("runtime/modules"));
		xdRuntime.add(entityLinks.linkFor(DetailedContainerResource.class).withRel("runtime/containers"));

		xdRuntime.add(entityLinks.linkFor(DetailedJobInfoResource.class).withRel("jobs/configurations"));
		xdRuntime.add(entityLinks.linkFor(JobExecutionInfoResource.class).withRel("jobs/executions"));
		xdRuntime.add(entityLinks.linkFor(JobInstanceInfoResource.class).withRel("jobs/instances"));

		xdRuntime.add(entityLinks.linkFor(VersionResource.class).withRel("meta/version"));

		// Maybe https://github.com/spring-projects/spring-hateoas/issues/169 will help eventually
		TemplateVariable start = new TemplateVariable("start", VariableType.REQUEST_PARAM);
		TemplateVariable lod = new TemplateVariable("detailLevel", VariableType.REQUEST_PARAM_CONTINUED);
		TemplateVariables vars = new TemplateVariables(start, lod);
		for (CompletionKind k : CompletionKind.values()) {
			Object mi = ControllerLinkBuilder.methodOn(CompletionsController.class).completions(k, "", 42);
			Link link = ControllerLinkBuilder.linkTo(mi).withRel(String.format("completions/%s", k));
			String href = link.getHref().substring(0, link.getHref().lastIndexOf('?'));
			UriTemplate template = new UriTemplate(href, vars);
			Link copy = new Link(template, link.getRel());

			xdRuntime.add(copy);
		}


		xdRuntime.add(entityLinks.linkFor(CounterResource.class).withRel("counters"));
		xdRuntime.add(entityLinks.linkFor(FieldValueCounterResource.class).withRel("field-value-counters"));
		xdRuntime.add(entityLinks.linkFor(AggregateCountsResource.class).withRel("aggregate-counters"));
		xdRuntime.add(entityLinks.linkFor(GaugeResource.class).withRel("gauges"));
		xdRuntime.add(entityLinks.linkFor(RichGaugeResource.class).withRel("rich-gauges"));
		return xdRuntime;
	}
@author Eric Bottard
@author Ilayaperumal Gopinathan
@author Gunnar Hillert
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/rest/AdminController.java