Java 类org.springframework.beans.factory.ListableBeanFactory 实例源码

项目:spring-security-oauth2-boot    文件:ResourceServerPropertiesTests.java   
private void setListableBeanFactory() {
    ListableBeanFactory beanFactory = new StaticWebApplicationContext() {

        @Override
        public String[] getBeanNamesForType(Class<?> type,
                boolean includeNonSingletons, boolean allowEagerInit) {
            if (type.isAssignableFrom(
                    ResourceServerTokenServicesConfiguration.class)) {
                return new String[] { "ResourceServerTokenServicesConfiguration" };
            }
            return new String[0];
        }

    };
    this.properties.setBeanFactory(beanFactory);
}
项目:OpenDiabetes    文件:SpringExtAuth.java   
/**
 * @throws SQLException If Setup of emulation database failed, or if the
 *         application JDBC work fails.
 */
static public void main(String[] sa) throws SQLException {
    if (sa.length != 1) throw new IllegalArgumentException(SYNTAX_MSG);
    String authSpringFile = null;
    if (sa[0].equals("LDAP")) {
        authSpringFile = "ldapbeans.xml";
    } else if (sa[0].equals("JAAS")) {
        authSpringFile = "jaasbeans.xml";
    } else if (sa[0].equals("HsqldbSlave")) {
        authSpringFile = "slavebeans.xml";
    } else if (sa[0].equals("JAAS_LDAP")) {
        authSpringFile = "jaasldapbeans.xml";
    }
    if (authSpringFile == null)
        throw new IllegalArgumentException(SYNTAX_MSG);

    SpringExtAuth.prepMemoryDatabases(!sa[0].equals("HsqldbSlave"));
    ApplicationContext ctx =
        new ClassPathXmlApplicationContext("beandefs.xml", authSpringFile);
    ListableBeanFactory bf = (ListableBeanFactory) ctx;
    JdbcAppClass appBean = bf.getBean("appBean", JdbcAppClass.class);
    appBean.doJdbcWork();
}
项目:gemini.blueprint    文件:ClassUtilsTest.java   
public void testAppContextClassHierarchy() {
    Class<?>[] clazz =
            ClassUtils.getClassHierarchy(OsgiBundleXmlApplicationContext.class, ClassUtils.ClassSet.ALL_CLASSES);

       //Closeable.class,
    Class<?>[] expected =
            new Class<?>[] { OsgiBundleXmlApplicationContext.class,
                    AbstractDelegatedExecutionApplicationContext.class, AbstractOsgiBundleApplicationContext.class,
                    AbstractRefreshableApplicationContext.class, AbstractApplicationContext.class,
                    DefaultResourceLoader.class, ResourceLoader.class,
                    AutoCloseable.class,
                    DelegatedExecutionOsgiBundleApplicationContext.class,
                    ConfigurableOsgiBundleApplicationContext.class, ConfigurableApplicationContext.class,
                    ApplicationContext.class, Lifecycle.class, Closeable.class, EnvironmentCapable.class, ListableBeanFactory.class,
                    HierarchicalBeanFactory.class, ApplicationEventPublisher.class, ResourcePatternResolver.class,
                    MessageSource.class, BeanFactory.class, DisposableBean.class };

    assertTrue(compareArrays(expected, clazz));
}
项目:lams    文件:SchedulerAccessorBean.java   
protected Scheduler findScheduler(String schedulerName) throws SchedulerException {
    if (this.beanFactory instanceof ListableBeanFactory) {
        ListableBeanFactory lbf = (ListableBeanFactory) this.beanFactory;
        String[] beanNames = lbf.getBeanNamesForType(Scheduler.class);
        for (String beanName : beanNames) {
            Scheduler schedulerBean = (Scheduler) lbf.getBean(beanName);
            if (schedulerName.equals(schedulerBean.getSchedulerName())) {
                return schedulerBean;
            }
        }
    }
    Scheduler schedulerInRepo = SchedulerRepository.getInstance().lookup(schedulerName);
    if (schedulerInRepo == null) {
        throw new IllegalStateException("No Scheduler named '" + schedulerName + "' found");
    }
    return schedulerInRepo;
}
项目:lams    文件:EntityManagerFactoryUtils.java   
/**
 * Find an EntityManagerFactory with the given name in the given
 * Spring application context (represented as ListableBeanFactory).
 * <p>The specified unit name will be matched against the configured
 * persistence unit, provided that a discovered EntityManagerFactory
 * implements the {@link EntityManagerFactoryInfo} interface. If not,
 * the persistence unit name will be matched against the Spring bean name,
 * assuming that the EntityManagerFactory bean names follow that convention.
 * <p>If no unit name has been given, this method will search for a default
 * EntityManagerFactory through {@link ListableBeanFactory#getBean(Class)}.
 * @param beanFactory the ListableBeanFactory to search
 * @param unitName the name of the persistence unit (may be {@code null} or empty,
 * in which case a single bean of type EntityManagerFactory will be searched for)
 * @return the EntityManagerFactory
 * @throws NoSuchBeanDefinitionException if there is no such EntityManagerFactory in the context
 * @see EntityManagerFactoryInfo#getPersistenceUnitName()
 */
public static EntityManagerFactory findEntityManagerFactory(
        ListableBeanFactory beanFactory, String unitName) throws NoSuchBeanDefinitionException {

    Assert.notNull(beanFactory, "ListableBeanFactory must not be null");
    if (StringUtils.hasLength(unitName)) {
        // See whether we can find an EntityManagerFactory with matching persistence unit name.
        String[] candidateNames =
                BeanFactoryUtils.beanNamesForTypeIncludingAncestors(beanFactory, EntityManagerFactory.class);
        for (String candidateName : candidateNames) {
            EntityManagerFactory emf = (EntityManagerFactory) beanFactory.getBean(candidateName);
            if (emf instanceof EntityManagerFactoryInfo) {
                if (unitName.equals(((EntityManagerFactoryInfo) emf).getPersistenceUnitName())) {
                    return emf;
                }
            }
        }
        // No matching persistence unit found - simply take the EntityManagerFactory
        // with the persistence unit name as bean name (by convention).
        return beanFactory.getBean(unitName, EntityManagerFactory.class);
    }
    else {
        // Find unique EntityManagerFactory bean in the context, falling back to parent contexts.
        return beanFactory.getBean(EntityManagerFactory.class);
    }
}
项目:dev-courses    文件:SpringExtAuth.java   
/**
 * @throws SQLException If Setup of emulation database failed, or if the
 *         application JDBC work fails.
 */
static public void main(String[] sa) throws SQLException {
    if (sa.length != 1) throw new IllegalArgumentException(SYNTAX_MSG);
    String authSpringFile = null;
    if (sa[0].equals("LDAP")) {
        authSpringFile = "ldapbeans.xml";
    } else if (sa[0].equals("JAAS")) {
        authSpringFile = "jaasbeans.xml";
    } else if (sa[0].equals("HsqldbSlave")) {
        authSpringFile = "slavebeans.xml";
    } else if (sa[0].equals("JAAS_LDAP")) {
        authSpringFile = "jaasldapbeans.xml";
    }
    if (authSpringFile == null)
        throw new IllegalArgumentException(SYNTAX_MSG);

    SpringExtAuth.prepMemoryDatabases(!sa[0].equals("HsqldbSlave"));
    ApplicationContext ctx =
        new ClassPathXmlApplicationContext("beandefs.xml", authSpringFile);
    ListableBeanFactory bf = (ListableBeanFactory) ctx;
    JdbcAppClass appBean = bf.getBean("appBean", JdbcAppClass.class);
    appBean.doJdbcWork();
}
项目:holon-datastore-jpa    文件:JpaRegistrar.java   
/**
 * Get the {@link DataSource} type bean name which corresponds to given data context id
 * @param registry Bean registry
 * @param beanFactory Bean factory
 * @param dataContextId Optional data context id
 * @return The DataSource bean name, or <code>null</code> if not found
 */
private static String getDataSourceBeanName(BeanDefinitionRegistry registry, BeanFactory beanFactory,
        String dataContextId) {
    // check unique DataSource if no data context id specified
    if (dataContextId == null && beanFactory instanceof ListableBeanFactory) {
        String[] dataSourceBeanNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(
                (ListableBeanFactory) beanFactory, DataSource.class, false, false);
        if (dataSourceBeanNames != null && dataSourceBeanNames.length == 1) {
            return dataSourceBeanNames[0];
        }
    }
    // check bean name using data context id
    String dsBeanName = BeanRegistryUtils.buildBeanName(dataContextId,
            EnableDataSource.DEFAULT_DATASOURCE_BEAN_NAME);
    if (registry.containsBeanDefinition(dsBeanName) && beanFactory.isTypeMatch(dsBeanName, DataSource.class)) {
        return dsBeanName;
    }
    return null;
}
项目:holon-datastore-jpa    文件:JpaAutoConfigurationRegistrar.java   
/**
 * Checks if a bean of given type and bound to given data context id is already registered
 * @param beanFactory Bean factory
 * @param registry Bean registry
 * @param type Bean type to check
 * @param dataContextId Data context id
 * @param defaultBeanName Default bean name to check
 * @return The registered bean name if found, <code>null</code> otherwise
 */
private static String isBeanRegistered(ListableBeanFactory beanFactory, BeanDefinitionRegistry registry,
        Class<?> type, String dataContextId, String defaultBeanName) {
    String[] beanNames = beanFactory.getBeanNamesForType(type);
    if (beanNames != null && beanNames.length > 0) {
        for (String beanName : beanNames) {
            BeanDefinition bd = registry.getBeanDefinition(beanName);
            if (bd instanceof DataContextBoundBeanDefinition) {
                String did = ((DataContextBoundBeanDefinition) bd).getDataContextId().orElse(null);
                if ((dataContextId == null && did == null)
                        || (dataContextId != null && dataContextId.equals(did))) {
                    return beanName;
                }
            } else {
                if (dataContextId == null) {
                    return beanName;
                }
            }
        }
    }
    if (defaultBeanName != null && registry.containsBeanDefinition(defaultBeanName)) {
        return defaultBeanName;
    }
    return null;
}
项目:holon-datastore-jpa    文件:JpaDatastoreAutoConfigurationRegistrar.java   
@Override
public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry registry) {
    // Register JPA Datastore (transactional)
    if (beanFactory instanceof ListableBeanFactory) {
        String[] emfBeanNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(
                (ListableBeanFactory) beanFactory, EntityManagerFactory.class, true, false);
        if (emfBeanNames == null || emfBeanNames.length == 0) {
            emfBeanNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors((ListableBeanFactory) beanFactory,
                    AbstractEntityManagerFactoryBean.class, true, false);
        }
        if (emfBeanNames != null && emfBeanNames.length == 1) {
            String emfBeanName = (emfBeanNames[0].startsWith("&")) ? emfBeanNames[0].substring(1) : emfBeanNames[0];
            JpaDatastoreRegistrar.registerDatastore(registry, null, PrimaryMode.AUTO, emfBeanName, true, false,
                    beanClassLoader);
        }
    }
}
项目:parabuild-ci    文件:SpringContainer.java   
public void addParameter(Object askFor, Object valueParam)
throws InstantiationException, IllegalAccessException {
    try {
        Class clz = ClassUtils.forName((String)askFor);
        if (log.isDebugEnabled()) {
            log.debug("trying to resolve the following class from the Spring bean container: " + clz.getName());
        }

        Map beansOfType = ((ListableBeanFactory)beanFactory).getBeansOfType(clz);
        if (log.isDebugEnabled()) {
            log.debug("beans: " + beansOfType + " - " + beansOfType.size());
        }
        if (beansOfType.size() == 0) {
            log.debug("adding parameter the normal way");
            super.addParameter(askFor, valueParam);
        } else if (beansOfType.size() > 1) {
            // TODO: handle multiple declarations
            throw new InstantiationException("multiple beans of type '" + clz.getName() + "' were found in the spring configuration");
        } else {
            this.beans.put(askFor, beansOfType.values().iterator().next());
        }
    } catch (ClassNotFoundException e) {
        super.addParameter(askFor, valueParam);
    }
}
项目:parabuild-ci    文件:SpringContainer.java   
public Collection getBeanNames()
{
    List names = new ArrayList();

    // Snarf the beans from Spring
    if (beanFactory instanceof ListableBeanFactory)
    {
        ListableBeanFactory listable = (ListableBeanFactory) beanFactory;
        names.addAll(Arrays.asList(listable.getBeanDefinitionNames()));
    }
    else
    {
        log.warn("List of beanNames does not include Spring beans since your BeanFactory is not a ListableBeanFactory.");
    }

    // And append the DWR ones
    names.addAll(super.getBeanNames());

    return Collections.unmodifiableCollection(names);
}
项目:holon-core    文件:DatastoreInitializer.java   
/**
 * Register {@link DatastoreResolver}s bean into given <code>datastore</code>.
 * @param datastore Datastore
 * @param datastoreBeanName Datastore bean name
 * @param factory BeanFactory
 */
public static void configureDatastore(Datastore datastore, String datastoreBeanName, BeanFactory factory) {
    ObjectUtils.argumentNotNull(datastore, "Null Datastore");
    ObjectUtils.argumentNotNull(datastoreBeanName, "Null Datastore bean name");
    ObjectUtils.argumentNotNull(factory, "Null BeanFactory");

    if (factory instanceof ListableBeanFactory) {
        configureDatastoreResolvers(datastore, datastoreBeanName, (ListableBeanFactory) factory);
        configureDatastoreCommodityFactories(datastore, datastoreBeanName, (ListableBeanFactory) factory);
        configureDatastorePostProcessors(datastore, datastoreBeanName, (ListableBeanFactory) factory);
    } else {
        LOGGER.warn(
                "The BeanFactory [" + factory + "] is not a ListableBeanFactory: skipping Datastore configuration");
    }

}
项目:holon-core    文件:DatastoreInitializer.java   
/**
 * Register {@link DatastoreResolver} annotated beans as <code>datastore</code> {@link ExpressionResolver}s.
 * @param datastore Datastore to configure
 * @param datastoreBeanName Datastore bean name to configure
 * @param beanFactory Bean factory
 */
private static void configureDatastoreResolvers(Datastore datastore, String datastoreBeanName,
        ListableBeanFactory beanFactory) {
    final String[] beanNames = beanFactory.getBeanNamesForAnnotation(DatastoreResolver.class);
    if (beanNames != null && beanNames.length > 0) {
        for (String beanName : beanNames) {
            if (!ExpressionResolver.class.isAssignableFrom(beanFactory.getType(beanName))) {
                throw new BeanNotOfRequiredTypeException(beanName, ExpressionResolver.class,
                        beanFactory.getType(beanName));
            }
            DatastoreResolver dr = beanFactory.findAnnotationOnBean(beanName, DatastoreResolver.class);
            String datastoreRef = AnnotationUtils.getStringValue(dr.datastoreBeanName());
            if (datastoreRef == null || datastoreRef.equals(datastoreBeanName)) {
                // register resolver
                ExpressionResolver<?, ?> resolver = (ExpressionResolver<?, ?>) beanFactory.getBean(beanName);
                datastore.addExpressionResolver(resolver);
                LOGGER.debug(() -> "Registered expression resolver [" + resolver.getClass().getName()
                        + "] into Datastore with bean name [" + datastoreBeanName + "]");
            }
        }
    }
}
项目:holon-jdbc    文件:DataSourcesTransactionManagerAutoConfigurationRegistrar.java   
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {

    if (beanFactory instanceof ListableBeanFactory) {

        String[] dataSourceBeanNames = ((ListableBeanFactory) beanFactory).getBeanNamesForType(DataSource.class,
                false, true);
        if (dataSourceBeanNames != null) {
            for (String dataSourceBeanName : dataSourceBeanNames) {
                BeanDefinition bd = registry.getBeanDefinition(dataSourceBeanName);
                if (bd instanceof DataContextBoundBeanDefinition) {
                    DataSourceRegistrar.registerDataSourceTransactionManager(registry, dataSourceBeanName,
                            ((DataContextBoundBeanDefinition) bd).getDataContextId().orElse(null),
                            PrimaryMode.AUTO);
                }
            }
        }

    }

}
项目:spring-boot-jms    文件:MethodJmsListenerConfigurer.java   
@Override
public void afterPropertiesSet() throws Exception {
    if (beanFactory instanceof ListableBeanFactory) {
        Map<String, HandlerMethodArgumentResolver> instances =
                ((ListableBeanFactory) this.beanFactory).getBeansOfType(HandlerMethodArgumentResolver.class);
        if (null != instances && instances.size() > 0) {
            handlerMethodArgumentResolvers.addAll(instances.values());
        }
    }

    if (null == messageHandlerMethodFactory) {
        messageHandlerMethodFactory = createDefaultJmsHandlerMethodFactory();
    }

    if (endpointRegistry instanceof JmsListenerEndpointRegistryAdapter) {
        JmsListenerEndpointRegistryAdapter methodEndpointRegistry =
                (JmsListenerEndpointRegistryAdapter) endpointRegistry;
        methodEndpointRegistry.setMessageHandlerMethodFactory(messageHandlerMethodFactory);
    }
}
项目:multi-task    文件:TaskBeanContainer.java   
/**
 * 初始化Fetcher容器
 *
 * @param factory
 */
public static void initFetcherContainer(ListableBeanFactory factory) {
    if (initing.get()) {
        waitInit();
        return;
    }
    if (initing.compareAndSet(false, true)) {
        Map<String, Object> fetcherServices = factory.getBeansWithAnnotation(TaskService.class);
        for (Object service : fetcherServices.values()) {
            regiserOneService(service);
        }
        hasInit.countDown();
    } else {
        waitInit();
    }
}
项目:spring-boot-concourse    文件:HypermediaHttpMessageConverterConfiguration.java   
@PostConstruct
public void customizedSupportedMediaTypes() {
    if (this.beanFactory instanceof ListableBeanFactory) {
        Map<String, RequestMappingHandlerAdapter> handlerAdapters = ((ListableBeanFactory) this.beanFactory)
                .getBeansOfType(RequestMappingHandlerAdapter.class);
        for (Entry<String, RequestMappingHandlerAdapter> entry : handlerAdapters
                .entrySet()) {
            RequestMappingHandlerAdapter handlerAdapter = entry.getValue();
            for (HttpMessageConverter<?> converter : handlerAdapter
                    .getMessageConverters()) {
                if (converter instanceof TypeConstrainedMappingJackson2HttpMessageConverter) {
                    ((TypeConstrainedMappingJackson2HttpMessageConverter) converter)
                            .setSupportedMediaTypes(
                                    Arrays.asList(MediaTypes.HAL_JSON,
                                            MediaType.APPLICATION_JSON));
                }
            }

        }
    }
}
项目:spring4-understanding    文件:EntityManagerFactoryUtils.java   
/**
 * Find an EntityManagerFactory with the given name in the given
 * Spring application context (represented as ListableBeanFactory).
 * <p>The specified unit name will be matched against the configured
 * persistence unit, provided that a discovered EntityManagerFactory
 * implements the {@link EntityManagerFactoryInfo} interface. If not,
 * the persistence unit name will be matched against the Spring bean name,
 * assuming that the EntityManagerFactory bean names follow that convention.
 * <p>If no unit name has been given, this method will search for a default
 * EntityManagerFactory through {@link ListableBeanFactory#getBean(Class)}.
 * @param beanFactory the ListableBeanFactory to search
 * @param unitName the name of the persistence unit (may be {@code null} or empty,
 * in which case a single bean of type EntityManagerFactory will be searched for)
 * @return the EntityManagerFactory
 * @throws NoSuchBeanDefinitionException if there is no such EntityManagerFactory in the context
 * @see EntityManagerFactoryInfo#getPersistenceUnitName()
 */
public static EntityManagerFactory findEntityManagerFactory(
        ListableBeanFactory beanFactory, String unitName) throws NoSuchBeanDefinitionException {

    Assert.notNull(beanFactory, "ListableBeanFactory must not be null");
    if (StringUtils.hasLength(unitName)) {
        // See whether we can find an EntityManagerFactory with matching persistence unit name.
        String[] candidateNames =
                BeanFactoryUtils.beanNamesForTypeIncludingAncestors(beanFactory, EntityManagerFactory.class);
        for (String candidateName : candidateNames) {
            EntityManagerFactory emf = (EntityManagerFactory) beanFactory.getBean(candidateName);
            if (emf instanceof EntityManagerFactoryInfo) {
                if (unitName.equals(((EntityManagerFactoryInfo) emf).getPersistenceUnitName())) {
                    return emf;
                }
            }
        }
        // No matching persistence unit found - simply take the EntityManagerFactory
        // with the persistence unit name as bean name (by convention).
        return beanFactory.getBean(unitName, EntityManagerFactory.class);
    }
    else {
        // Find unique EntityManagerFactory bean in the context, falling back to parent contexts.
        return beanFactory.getBean(EntityManagerFactory.class);
    }
}
项目:spring4-understanding    文件:SchedulerAccessorBean.java   
protected Scheduler findScheduler(String schedulerName) throws SchedulerException {
    if (this.beanFactory instanceof ListableBeanFactory) {
        ListableBeanFactory lbf = (ListableBeanFactory) this.beanFactory;
        String[] beanNames = lbf.getBeanNamesForType(Scheduler.class);
        for (String beanName : beanNames) {
            Scheduler schedulerBean = (Scheduler) lbf.getBean(beanName);
            if (schedulerName.equals(schedulerBean.getSchedulerName())) {
                return schedulerBean;
            }
        }
    }
    Scheduler schedulerInRepo = SchedulerRepository.getInstance().lookup(schedulerName);
    if (schedulerInRepo == null) {
        throw new IllegalStateException("No Scheduler named '" + schedulerName + "' found");
    }
    return schedulerInRepo;
}
项目:bigstreams    文件:MetricsDI.java   
@Bean
public MetricManager metricManager() {

    String[] beanNames = ((ListableBeanFactory) beanFactory)
            .getBeanNamesForType(Metric.class);

    if (beanNames == null) {
        throw new RuntimeException(
                "At least 1 Metric bean must be specified");
    }

    Metric[] metrics = new Metric[beanNames.length];
    int i = 0;
    for (String metricName : beanNames) {
        metrics[i++] = beanFactory.getBean(metricName, Metric.class);
    }

    return new SimpleMetricManager(metrics);
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:ServletContextInitializerBeans.java   
private void addServletContextInitializerBean(Class<?> type, String beanName,
        ServletContextInitializer initializer, ListableBeanFactory beanFactory,
        Object source) {
    this.initializers.add(type, initializer);
    if (source != null) {
        // Mark the underlying source as seen in case it wraps an existing bean
        this.seen.add(source);
    }
    if (ServletContextInitializerBeans.logger.isDebugEnabled()) {
        String resourceDescription = getResourceDescription(beanName, beanFactory);
        int order = getOrder(initializer);
        ServletContextInitializerBeans.logger.debug("Added existing "
                + type.getSimpleName() + " initializer bean '" + beanName
                + "'; order=" + order + ", resource=" + resourceDescription);
    }
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:ServletContextInitializerBeans.java   
private <T, B extends T> void addAsRegistrationBean(ListableBeanFactory beanFactory,
        Class<T> type, Class<B> beanType, RegistrationBeanAdapter<T> adapter) {
    List<Map.Entry<String, B>> beans = getOrderedBeansOfType(beanFactory, beanType,
            this.seen);
    for (Entry<String, B> bean : beans) {
        if (this.seen.add(bean.getValue())) {
            int order = getOrder(bean.getValue());
            String beanName = bean.getKey();
            // One that we haven't already seen
            RegistrationBean registration = adapter.createRegistrationBean(beanName,
                    bean.getValue(), beans.size());
            registration.setName(beanName);
            registration.setOrder(order);
            this.initializers.add(type, registration);
            if (ServletContextInitializerBeans.logger.isDebugEnabled()) {
                ServletContextInitializerBeans.logger.debug(
                        "Created " + type.getSimpleName() + " initializer for bean '"
                                + beanName + "'; order=" + order + ", resource="
                                + getResourceDescription(beanName, beanFactory));
            }
        }
    }
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:HypermediaHttpMessageConverterConfiguration.java   
@PostConstruct
public void customizedSupportedMediaTypes() {
    if (this.beanFactory instanceof ListableBeanFactory) {
        Map<String, RequestMappingHandlerAdapter> handlerAdapters = ((ListableBeanFactory) this.beanFactory)
                .getBeansOfType(RequestMappingHandlerAdapter.class);
        for (Entry<String, RequestMappingHandlerAdapter> entry : handlerAdapters
                .entrySet()) {
            RequestMappingHandlerAdapter handlerAdapter = entry.getValue();
            for (HttpMessageConverter<?> converter : handlerAdapter
                    .getMessageConverters()) {
                if (converter instanceof TypeConstrainedMappingJackson2HttpMessageConverter) {
                    ((TypeConstrainedMappingJackson2HttpMessageConverter) converter)
                            .setSupportedMediaTypes(
                                    Arrays.asList(MediaTypes.HAL_JSON,
                                            MediaType.APPLICATION_JSON));
                }
            }

        }
    }
}
项目:spring-boot-concourse    文件:ServletContextInitializerBeans.java   
private <T, B extends T> void addAsRegistrationBean(ListableBeanFactory beanFactory,
        Class<T> type, Class<B> beanType, RegistrationBeanAdapter<T> adapter) {
    List<Map.Entry<String, B>> beans = getOrderedBeansOfType(beanFactory, beanType,
            this.seen);
    for (Entry<String, B> bean : beans) {
        if (this.seen.add(bean.getValue())) {
            int order = getOrder(bean.getValue());
            String beanName = bean.getKey();
            // One that we haven't already seen
            RegistrationBean registration = adapter.createRegistrationBean(beanName,
                    bean.getValue(), beans.size());
            registration.setName(beanName);
            registration.setOrder(order);
            this.initializers.add(type, registration);
            if (ServletContextInitializerBeans.logger.isDebugEnabled()) {
                ServletContextInitializerBeans.logger.debug(
                        "Created " + type.getSimpleName() + " initializer for bean '"
                                + beanName + "'; order=" + order + ", resource="
                                + getResourceDescription(beanName, beanFactory));
            }
        }
    }
}
项目:spring-boot-concourse    文件:ServletContextInitializerBeans.java   
private void addServletContextInitializerBean(Class<?> type, String beanName,
        ServletContextInitializer initializer, ListableBeanFactory beanFactory,
        Object source) {
    this.initializers.add(type, initializer);
    if (source != null) {
        // Mark the underlying source as seen in case it wraps an existing bean
        this.seen.add(source);
    }
    if (ServletContextInitializerBeans.logger.isDebugEnabled()) {
        String resourceDescription = getResourceDescription(beanName, beanFactory);
        int order = getOrder(initializer);
        ServletContextInitializerBeans.logger.debug("Added existing "
                + type.getSimpleName() + " initializer bean '" + beanName
                + "'; order=" + order + ", resource=" + resourceDescription);
    }
}
项目:haven-platform    文件:JobsManagerImpl.java   
private Map<String, JobFactory> loadFactories(ListableBeanFactory beanFactory) {
    ImmutableMap.Builder<String, JobFactory> mb = ImmutableMap.builder();
    //load factory beans
    String[] factoryNames = beanFactory.getBeanNamesForType(JobFactory.class);
    for(String factoryName: factoryNames) {
        JobFactory factory = beanFactory.getBean(factoryName, JobFactory.class);
        if(factory == this) {
            // we do not want to load self
            continue;
        }
        Set<String> types = factory.getTypes();
        for(String type: types) {
            mb.put(type, factory);
        }
    }
    //load job beans
    String[] jobNames = beanFactory.getBeanNamesForAnnotation(JobBean.class);
    for(String jobName: jobNames) {
        Class<?> jobType = beanFactory.getType(jobName);
        JobDescription jd = descFactory.getFor(jobName);
        mb.put(jobName, new JobFactoryForBean(this, jobName, jobType, jd));
    }
    return mb.build();
}
项目:spring-web-jsflow    文件:BeanFactoryUtilsEx.java   
/**
 * Returns a bean of specified type in the specified bean factory or its
 * ancestors. In contrast with Spring's BeanFactoryUtils, doesn't throw an
 * exception if no bean is found, but rather returns null.
 * 
 * @param lbf
 *            the bean factory to look for the bean
 * @param type
 *            the expected type of the bean
 * @return the bean - if exactly one is defined. null - if none is defined
 * @throws NoSuchBeanDefinitionException
 *             if more than one bean is defined
 */
public static <T> T beanOfTypeIncludingAncestors(final ListableBeanFactory lbf, final Class<T> type) {
    final Map<String, T> map = org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(lbf,
            type);
    switch (map.size()) {
    case 0:
        return null;
    case 1:
        return map.values().iterator().next();
    default:
        throw new NoSuchBeanDefinitionException(
                "More than one bean of type " + type.getName() + " found: " + map.keySet());
    }
}
项目:alfresco-repository    文件:FullTextSearchIndexerImpl.java   
public void setBeanFactory(BeanFactory beanFactory) throws BeansException
{
    ListableBeanFactory listableBeanFactory = (ListableBeanFactory)beanFactory;

    // Find bean implementaing SupportsBackgroundIndexing and register
    for(Object bgindexable : listableBeanFactory.getBeansOfType(SupportsBackgroundIndexing.class).values())
    {
        if(bgindexable instanceof SupportsBackgroundIndexing)
        {
            ((SupportsBackgroundIndexing)bgindexable).setFullTextSearchIndexer(this);
        }
    }

}
项目:dhus-core    文件:ClientExtensionService.java   
@Override
public void refresh()
{
   super.refresh();
   if (springContext != null)
   {
      Map<String, IExtensionPoint> extensionPointMap = new TreeMap<>();
      extensionPointMap.putAll(springContext.getBeansOfType(IExtensionPoint.class));
      if (springContext.getParentBeanFactory() != null &&
             springContext.getParentBeanFactory() instanceof ListableBeanFactory)
      {
         extensionPointMap.putAll(((ListableBeanFactory) springContext.getParentBeanFactory())
               .getBeansOfType(IExtensionPoint.class));
      }

      log.info("Found {} extension points from spring that will be registered",
            extensionPointMap.size());
      for (String name: extensionPointMap.keySet())
      {
         registerExtension(name, extensionPointMap.get(name), true);
      }

      // Adding our extension to dynamically add product
      // in solr when a modification is synchronized by symmetricDS
      IExtensionPoint extension = (IExtensionPoint) ApplicationContextProvider.getBean(
            SolrReplicationExtensionPoint.class);
      registerExtension("symds", extension, true);
   }
}
项目:spring-boot-autoconfigure    文件:OnBeansCondition.java   
private Collection<String> getBeanNamesForType(ListableBeanFactory beanFactory, String type,
                                               ClassLoader classLoader, boolean considerHierarchy) throws LinkageError {
    try {
        Set<String> result = new LinkedHashSet<>();
        collectBeanNamesForType(result, beanFactory,
                ClassUtils.forName(type, classLoader), considerHierarchy);
        return result;
    } catch (ClassNotFoundException | NoClassDefFoundError ex) {
        return Collections.emptySet();
    }
}
项目:spring-boot-autoconfigure    文件:OnBeansCondition.java   
private void collectBeanNamesForType(Set<String> result, ListableBeanFactory beanFactory, Class<?> type,
                                     boolean considerHierarchy) {
    result.addAll(BeanTypeRegistry.get(beanFactory).getNamesForType(type));
    if (considerHierarchy && beanFactory instanceof HierarchicalBeanFactory) {
        BeanFactory parent = ((HierarchicalBeanFactory) beanFactory).getParentBeanFactory();
        if (parent instanceof ListableBeanFactory) {
            collectBeanNamesForType(result, (ListableBeanFactory) parent, type, considerHierarchy);
        }
    }
}
项目:spring-boot-autoconfigure    文件:OnBeansCondition.java   
private void collectBeanNamesForAnnotation(Set<String> names, ListableBeanFactory beanFactory,
                                           Class<? extends Annotation> annotationType, boolean considerHierarchy) {
    names.addAll(BeanTypeRegistry.get(beanFactory).getNamesForAnnotation(annotationType));
    if (considerHierarchy) {
        BeanFactory parent = ((HierarchicalBeanFactory) beanFactory).getParentBeanFactory();
        if (parent instanceof ListableBeanFactory) {
            collectBeanNamesForAnnotation(names, (ListableBeanFactory) parent, annotationType, considerHierarchy);
        }
    }
}
项目:gemini.blueprint    文件:ClassUtilsTest.java   
public void testInterfacesHierarchy() {
       //Closeable.class,
    Class<?>[] clazz = ClassUtils.getAllInterfaces(DelegatedExecutionOsgiBundleApplicationContext.class);
    Class<?>[] expected =
            { ConfigurableOsgiBundleApplicationContext.class, ConfigurableApplicationContext.class,
                    ApplicationContext.class, Lifecycle.class, Closeable.class, EnvironmentCapable.class, ListableBeanFactory.class,
                    HierarchicalBeanFactory.class, MessageSource.class, ApplicationEventPublisher.class,
                    ResourcePatternResolver.class, BeanFactory.class, ResourceLoader.class, AutoCloseable.class };

    assertTrue(compareArrays(expected, clazz));
}
项目:lams    文件:MBeanExporter.java   
/**
 * This callback is only required for resolution of bean names in the
 * {@link #setBeans(java.util.Map) "beans"} {@link Map} and for
 * autodetection of MBeans (in the latter case, a
 * {@code ListableBeanFactory} is required).
 * @see #setBeans
 * @see #setAutodetect
 */
@Override
public void setBeanFactory(BeanFactory beanFactory) {
    if (beanFactory instanceof ListableBeanFactory) {
        this.beanFactory = (ListableBeanFactory) beanFactory;
    }
    else {
        logger.info("MBeanExporter not running in a ListableBeanFactory: autodetection of MBeans not available.");
    }
}
项目:lams    文件:AbstractJaxWsServiceExporter.java   
/**
 * Obtains all web service beans and publishes them as JAX-WS endpoints.
 */
@Override
public void setBeanFactory(BeanFactory beanFactory) {
    if (!(beanFactory instanceof ListableBeanFactory)) {
        throw new IllegalStateException(getClass().getSimpleName() + " requires a ListableBeanFactory");
    }
    this.beanFactory = (ListableBeanFactory) beanFactory;
}
项目:lams    文件:PersistenceExceptionTranslationAdvisor.java   
/**
 * Create a new PersistenceExceptionTranslationAdvisor.
 * @param beanFactory the ListableBeanFactory to obtaining all
 * PersistenceExceptionTranslators from
 * @param repositoryAnnotationType the annotation type to check for
 */
PersistenceExceptionTranslationAdvisor(
        ListableBeanFactory beanFactory, Class<? extends Annotation> repositoryAnnotationType) {

    this.advice = new PersistenceExceptionTranslationInterceptor(beanFactory);
    this.pointcut = new AnnotationMatchingPointcut(repositoryAnnotationType, true);
}
项目:lams    文件:PersistenceExceptionTranslationPostProcessor.java   
@Override
public void setBeanFactory(BeanFactory beanFactory) {
    if (!(beanFactory instanceof ListableBeanFactory)) {
        throw new IllegalArgumentException(
                "Cannot use PersistenceExceptionTranslator autodetection without ListableBeanFactory");
    }
    this.advisor = new PersistenceExceptionTranslationAdvisor(
            (ListableBeanFactory) beanFactory, this.repositoryAnnotationType);
}
项目:lams    文件:PersistenceExceptionTranslationInterceptor.java   
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
    if (this.persistenceExceptionTranslator == null) {
        // No explicit exception translator specified - perform autodetection.
        if (!(beanFactory instanceof ListableBeanFactory)) {
            throw new IllegalArgumentException(
                    "Cannot use PersistenceExceptionTranslator autodetection without ListableBeanFactory");
        }
        this.beanFactory = (ListableBeanFactory) beanFactory;
    }
}
项目:lams    文件:PersistenceExceptionTranslationInterceptor.java   
/**
 * Detect all PersistenceExceptionTranslators in the given BeanFactory.
 * @param beanFactory the ListableBeanFactory to obtaining all
 * PersistenceExceptionTranslators from
 * @return a chained PersistenceExceptionTranslator, combining all
 * PersistenceExceptionTranslators found in the factory
 * @see ChainedPersistenceExceptionTranslator
 */
protected PersistenceExceptionTranslator detectPersistenceExceptionTranslators(ListableBeanFactory beanFactory) {
    // Find all translators, being careful not to activate FactoryBeans.
    Map<String, PersistenceExceptionTranslator> pets = BeanFactoryUtils.beansOfTypeIncludingAncestors(
            beanFactory, PersistenceExceptionTranslator.class, false, false);
    ChainedPersistenceExceptionTranslator cpet = new ChainedPersistenceExceptionTranslator();
    for (PersistenceExceptionTranslator pet : pets.values()) {
        cpet.addDelegate(pet);
    }
    return cpet;
}
项目:lams    文件:ServiceLocatorFactoryBean.java   
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
    if (!(beanFactory instanceof ListableBeanFactory)) {
        throw new FatalBeanException(
                "ServiceLocatorFactoryBean needs to run in a BeanFactory that is a ListableBeanFactory");
    }
    this.beanFactory = (ListableBeanFactory) beanFactory;
}