package moe.tristan.easyfxml;

import static org.springframework.context.annotation.FilterType.ANNOTATION;
import static org.springframework.context.annotation.FilterType.ASSIGNABLE_TYPE;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;

import javafx.application.Application;
import javafx.application.HostServices;

import moe.tristan.easyfxml.api.FxmlController;
import moe.tristan.easyfxml.model.beanmanagement.AbstractInstanceManager;
import moe.tristan.easyfxml.model.components.listview.ComponentListCell;
import moe.tristan.easyfxml.util.NoSpringBean;

@Configuration
@ComponentScan(
    basePackages = "moe.tristan.easyfxml",
    lazyInit = true,
    includeFilters = @Filter(
        type = ASSIGNABLE_TYPE,
        classes = {
            EasyFxml.class,
            FxApplication.class,
            FxUiManager.class,
            FxmlController.class,
            AbstractInstanceManager.class,
            ComponentListCell.class
        }
    ),
    excludeFilters = @Filter(
        type = ANNOTATION,
        classes = NoSpringBean.class
    )
)
public class EasyFxmlAutoConfiguration {

    private static final Logger LOGGER = LoggerFactory.getLogger(EasyFxmlAutoConfiguration.class);

    private final ApplicationContext context;

    @Autowired
    public EasyFxmlAutoConfiguration(ApplicationContext context) {
        LOGGER.info("Loading EasyFXML auto-configuration...");
        this.context = context;
    }

    @Bean
    public HostServices hostServices(final Application application) {
        return application.getHostServices();
    }

}

@@ -182,16 +182,56 @@
 _TYPE;%0A%0A
+import javax.annotation.PostConstruct;%0A%0A
 import o
@@ -1837,16 +1837,295 @@
 %0A    %7D%0A%0A
+    @PostConstruct%0A    public void logFoundControllers() %7B%0A        final String fxmlControllersFound = String.join(%22%5Cn-%3E%5Ct%22, context.getBeanNamesForType(FxmlController.class));%0A        LOGGER.info(%22%5CnFound the following FxmlControllers : %5Cn-%3E%5Ct%7B%7D%22, fxmlControllersFound);%0A    %7D%0A%0A
     @Bea

Add output for found FxmlControllers on context load