@Override protected Set<Component> doFindComponents() { return findClassesWithAnnotation( org.springframework.stereotype.Controller.class, SPRING_MVC_CONTROLLER, includePublicTypesOnly ); }
@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_FindsSpringMvcControllers() 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.SpringMvcControllerComponentFinderStrategy", new SpringMvcControllerComponentFinderStrategy() ); componentFinder.findComponents(); assertEquals(1, container.getComponents().size()); Component component = container.getComponentWithName("SomeController"); assertEquals("test.SpringMvcControllerComponentFinderStrategy.SomeController", component.getType().getType()); assertEquals("", component.getDescription()); assertEquals("Spring MVC Controller", component.getTechnology()); }