@Override protected Set<Component> doFindComponents() { return findInterfacesForImplementationClassesWithAnnotation( org.springframework.stereotype.Component.class, SPRING_COMPONENT ); }
@Override public void beforeFindComponents() { super.beforeFindComponents(); componentFinderStrategies.add(new SpringRestControllerComponentFinderStrategy()); componentFinderStrategies.add(new SpringMvcControllerComponentFinderStrategy()); componentFinderStrategies.add(new SpringServiceComponentFinderStrategy()); componentFinderStrategies.add(new SpringComponentComponentFinderStrategy()); componentFinderStrategies.add(new SpringRepositoryComponentFinderStrategy()); for (AbstractSpringComponentFinderStrategy componentFinderStrategy : componentFinderStrategies) { componentFinderStrategy.setIncludePublicTypesOnly(includePublicTypesOnly); componentFinderStrategy.setComponentFinder(getComponentFinder()); supportingTypesStrategies.forEach(componentFinderStrategy::addSupportingTypesStrategy); componentFinderStrategy.setDuplicateComponentStrategy(getDuplicateComponentStrategy()); componentFinderStrategy.beforeFindComponents(); } }
@Test public void test_findComponents_FindsSpringComponents() throws Exception { Workspace workspace = new Workspace("Name", "Description"); Model model = workspace.getModel(); SoftwareSystem softwareSystem = model.addSoftwareSystem("Name", "Description"); Container container = softwareSystem.addContainer("Name", "Description", "Technology"); ComponentFinder componentFinder = new ComponentFinder( container, "test.SpringComponentComponentFinderStrategy", new SpringComponentComponentFinderStrategy() ); componentFinder.findComponents(); assertEquals(1, container.getComponents().size()); Component component = container.getComponentWithName("SomeComponent"); assertEquals("test.SpringComponentComponentFinderStrategy.SomeComponent", component.getType().getType()); assertEquals("", component.getDescription()); assertEquals("Spring Component", component.getTechnology()); }