private String[] printBeans() {
    AutowireCapableBeanFactory autowireCapableBeanFactory = applicationContext.getAutowireCapableBeanFactory();
    if (autowireCapableBeanFactory instanceof SingletonBeanRegistry) {
        String[] singletonNames = ((SingletonBeanRegistry) autowireCapableBeanFactory).getSingletonNames();
        for (String singleton : singletonNames) {
            System.out.println(singleton);
        }
        return singletonNames;
    }
    return null;
}

        

B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean( bean );
factory.initializeBean( bean, "bean" );

        

// try to use the default configuration as much as possible
ObjectMapper om = Jackson2ObjectMapperBuilder.json().build();
// This instantiator will handle autowiring properties into the custom serializers
om.setHandlerInstantiator(
new SpringHandlerInstantiator(this.applicationContext.getAutowireCapableBeanFactory()));


        

public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
	beanFactory = applicationContext.getAutowireCapableBeanFactory();
}

        

AutowireCapableBeanFactory autowireFactory = applicationContext.getAutowireCapableBeanFactory();
autowireFactory.autowireBean(processor);

        

@Override
public void init(FilterConfig filterConfig) throws ServletException {
    String module = getModule(filterConfig);
    ApplicationContext applicationContext = CloudStackSpringContext.getApplicationContext(filterConfig.getServletContext(), module);
    if (applicationContext != null) {
        AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
        if (factory != null) {
            factory.autowireBean(this);
            enabled = true;
        }
    }
}

        

public static void registerSingleton(ApplicationContext applicationContext, String beanName, Object singletonObject) {

	AutowireCapableBeanFactory beanFactory = applicationContext.getAutowireCapableBeanFactory();
	if (!SingletonBeanRegistry.class.isAssignableFrom(beanFactory.getClass())) {
		throw new IllegalArgumentException(
				"ApplicationContext: " + applicationContext.getClass().toString()
				+ " doesn't implements SingletonBeanRegistry, cannot register JMS connection at runtime");
	}

	SingletonBeanRegistry beanDefinitionRegistry = (SingletonBeanRegistry) beanFactory;
	beanDefinitionRegistry.registerSingleton(beanName, singletonObject);

}

        

protected void doInitialize() throws Exception {
    provider.getProviders().forEach(p -> {
        final FlowDefinitionRegistry duoFlowRegistry = buildDuoFlowRegistry(p);
        applicationContext.getAutowireCapableBeanFactory().initializeBean(duoFlowRegistry, p.getId());
        final ConfigurableListableBeanFactory cfg = (ConfigurableListableBeanFactory) applicationContext.getAutowireCapableBeanFactory();
        cfg.registerSingleton(p.getId(), duoFlowRegistry);
        registerMultifactorProviderAuthenticationWebflow(getLoginFlow(), p.getId(), duoFlowRegistry);
    });
    casProperties.getAuthn().getMfa().getDuo().stream().filter(MultifactorAuthenticationProperties.Duo::isTrustedDeviceEnabled).forEach(duo -> {
        final String id = duo.getId();
        try {
            LOGGER.debug("Activating multifactor trusted authentication for webflow [{}]", id);
            final FlowDefinitionRegistry registry = applicationContext.getBean(id, FlowDefinitionRegistry.class);
            registerMultifactorTrustedAuthentication(registry);
        } catch (final Exception e) {
            LOGGER.error("Failed to register multifactor trusted authentication for " + id, e);
        }
    });
}

        

public void injectionUsingConstrettoWithEnvironmentSetAndUsinginterface(){
class MyConsumer {
    @Autowired CommonInterface commonInterface;
  }
  setProperty(ASSEMBLY_KEY,"stub");
  ApplicationContext ctx=loadContextAndInjectWithConstretto();
  MyConsumer consumer=new MyConsumer();
  ctx.getAutowireCapableBeanFactory().autowireBean(consumer);
  Assert.assertEquals(consumer.commonInterface.getClass(),CommonInterfaceStub.class);
}

        

public static void main(String[] args) throws Exception {
  if (args.length != 1) {
    System.out.println("java " + PluginLoader.class.getName() + " <plugin-dir>");
    System.exit(1);
  }
  ApplicationContext context=new ClassPathXmlApplicationContext("classpath:META-INF/00_system.xml");
  PluginLoader pl=new PluginLoader(args[0]);
  ClassLoader cl=pl.loadPlugins();
  PluggableTaskFlowProvider provider=(PluggableTaskFlowProvider)context.getAutowireCapableBeanFactory().getBean("taskFlowProvider");
  provider.setCl(cl);
  provider.loadPlugins();
  provider.listPlugins();
  System.exit(0);
}        
main