@Test
	public void testComposedModulesValuesAtUsageTime() throws IOException {
		FileSink sink = newFileSink().binary(true);
		HttpSource httpSource = newHttpSource();
		module().compose("filterAndTransform",
				"filter --expression=false | transform --expression=payload.replace('abc','...')");
		String options = String.format(
				"--filter%sexpression=true --transform%sexpression=payload.replace('def','...')", OPTION_SEPARATOR,
				OPTION_SEPARATOR);
		stream().create(generateStreamName(), "%s | filterAndTransform %s | %s", httpSource, options, sink);
		httpSource.ensureReady().postData("abcdefghi!");
		assertThat(sink, eventually(hasContentsThat(equalTo("abc...ghi!"))));

	}
This tests that options passed at usage time of a composed module are override definition values.
spring-xd-shell/src/test/java/org/springframework/xd/shell/command/AbstractModuleCommandsTests.java