### Question:
ComponentScanner { public void scan(final String componentPaths) { final List<String> paths = Arrays .stream(componentPaths.split(",")) .map(String::trim) .collect(toList()); scan(paths); } ComponentScanner(final ComponentRegistry registry); void scan(final String componentPaths); void scan(final List<String> componentPaths); void scanForPackage(final Package source); void scanForPackage(final String source);  }### Answer:
@Test public void shouldScanAndRegisterComponentsFromExternalPath() throws IOException { generateTopologyProviderClass("1.0", "component-version-1"); generateTopologyProviderClass("2.0", "component-version-2"); scanner.scan(COMPONENT_PATH.toString()); Optional<ComponentDescriptor<Object>> descriptorV10 = factory.findDescriptorByAlias( "test.ByteBuddyTopologyProvider", Qualifiers.byVersion("1.0")); assertTrue(Version.isEqual(descriptorV10.get().version(), "1.0")); Optional<ComponentDescriptor<Object>> descriptorV20 = factory.findDescriptorByAlias( "test.ByteBuddyTopologyProvider", Qualifiers.byVersion("2.0")); assertTrue(Version.isEqual(descriptorV20.get().version(), "2.0")); }