@Override
	public void start() {
		Assert.state(this.context != null, "An ApplicationContext is required");
		if (this.isRunning.compareAndSet(false, true)) {
			for (int i = this.modules.size() - 1; i >= 0; i--) {
				Module module = this.modules.get(i);
				module.start();
			}
			try {
				this.context.start();
			}
			catch (BeansException be) {
				this.context.destroy();
				throw be;
			}
			if (logger.isInfoEnabled()) {
				logger.info("started module: " + this.toString());
			}
		}
	}
@author Mark Fisher
@author David Turanski
@author Gary Russell
spring-xd-module/src/main/java/org/springframework/xd/module/core/CompositeModule.java