protected ModuleRuntimeContainers retrieveModuleRuntimeContainers(String streamName) {
		ModuleRuntimeContainers containers = new ModuleRuntimeContainers();
		for (ModuleMetadataResource module : distributedTestSupport.ensureTemplate()
				.runtimeOperations().listDeployedModules()) {
			String moduleStreamName = module.getUnitName();
			String[] fields = module.getName().split("\\.");
			String moduleLabel = fields[0];

			if (moduleStreamName.equals(streamName)) {
				switch (module.getModuleType()) {
					case source:
						containers.addSourceContainer(module.getContainerId());
						break;
					case sink:
						containers.addSinkContainer(module.getContainerId());
						break;
					case processor:
						containers.addProcessorContainer(module.getContainerId(), moduleLabel);
				}
			}
		}

		assertTrue(String.format("A source and/or sink module is missing from %s", containers),
				containers.isComplete());
		return containers;
	}
Return a mapping of runtime modules to containers for a
given stream name. Note that this method assumes that the
stream has been deployed. To ensure that the stream has been
deployed, invoke {@link #verifyStreamDeployed} prior to invoking
this method.

@return mapping of modules to the containers they are deployed to
@see #verifyStreamDeployed
spring-xd-distributed-test/src/test/java/org/springframework/xd/distributed/test/AbstractDistributedTests.java