Example usage for org.springframework.beans.factory.config BeanDefinition getBeanClassName

List of usage examples for org.springframework.beans.factory.config BeanDefinition getBeanClassName

Introduction

In this page you can find the example usage for org.springframework.beans.factory.config BeanDefinition getBeanClassName.

Prototype

@Nullable
String getBeanClassName();

Source Link

Document

Return the current bean class name of this bean definition.

Usage

From source file:org.springframework.retry.policy.RetryContextSerializationTests.java

@Parameters(name = "{index}: {0}")
public static List<Object[]> policies() {
    List<Object[]> result = new ArrayList<Object[]>();
    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(true);
    scanner.addIncludeFilter(new AssignableTypeFilter(RetryPolicy.class));
    scanner.addExcludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*Test.*")));
    scanner.addExcludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*Mock.*")));
    Set<BeanDefinition> candidates = scanner.findCandidateComponents("org.springframework.retry.policy");
    for (BeanDefinition beanDefinition : candidates) {
        try {/*from   w ww  . j  a  va2 s  .co  m*/
            result.add(new Object[] { BeanUtils
                    .instantiate(ClassUtils.resolveClassName(beanDefinition.getBeanClassName(), null)) });
        } catch (Exception e) {
            logger.warn("Cannot create instance of " + beanDefinition.getBeanClassName(), e);
        }
    }
    ExceptionClassifierRetryPolicy extra = new ExceptionClassifierRetryPolicy();
    extra.setExceptionClassifier(new SubclassClassifier<Throwable, RetryPolicy>(new AlwaysRetryPolicy()));
    result.add(new Object[] { extra });
    return result;
}

From source file:org.statefulj.framework.core.StatefulFactory.java

private Class<?> getClassFromBeanDefinition(BeanDefinition bf, BeanDefinitionRegistry reg)
        throws ClassNotFoundException {
    Class<?> clazz = null;/*from  w ww.  j a v  a2  s. co m*/

    if (bf.getBeanClassName() == null) {
        clazz = getClassFromFactoryMethod(bf, reg);
    } else {
        clazz = getClassFromBeanClassName(bf);
    }

    if (clazz == null) {
        clazz = getClassFromParentBean(bf, reg);
    }

    return clazz;
}

From source file:org.statefulj.framework.core.StatefulFactory.java

/**
 * @param bf//ww  w  . j a v  a2  s. com
 * @return
 * @throws ClassNotFoundException
 */
private Class<?> getClassFromBeanClassName(BeanDefinition bf) throws ClassNotFoundException {
    return Class.forName(bf.getBeanClassName());
}

From source file:org.statefulj.framework.core.StatefulFactory.java

/**
 * @param bf//from  w ww  . j a  v a2 s  . c o  m
 * @param reg
 * @param clazz
 * @return
 * @throws ClassNotFoundException
 */
private Class<?> getClassFromFactoryMethod(BeanDefinition bf, BeanDefinitionRegistry reg)
        throws ClassNotFoundException {
    Class<?> clazz = null;
    String factoryBeanName = bf.getFactoryBeanName();
    if (factoryBeanName != null) {
        BeanDefinition factory = reg.getBeanDefinition(factoryBeanName);
        if (factory != null) {
            String factoryClassName = factory.getBeanClassName();
            Class<?> factoryClass = Class.forName(factoryClassName);
            List<Method> methods = new LinkedList<Method>();
            methods.addAll(Arrays.asList(factoryClass.getMethods()));
            methods.addAll(Arrays.asList(factoryClass.getDeclaredMethods()));
            for (Method method : methods) {
                method.setAccessible(true);
                if (method.getName().equals(bf.getFactoryMethodName())) {
                    clazz = method.getReturnType();
                    break;
                }
            }
        }
    }
    return clazz;
}

From source file:org.tdar.core.service.ReflectionService.java

/**
 * Scan the class tree to find all objects that implement @link Persistable
 * /* w  w w .j  a va 2s. c om*/
 * @throws NoSuchBeanDefinitionException
 * @throws ClassNotFoundException
 */
@SuppressWarnings({ "rawtypes", "unchecked" })
private void scanForPersistables() throws ClassNotFoundException {
    if (persistableLookup != null) {
        return;
    }

    Set<BeanDefinition> findCandidateComponents = findClassesThatImplement(Persistable.class);
    persistableLookup = new HashMap<>();
    for (BeanDefinition bd : findCandidateComponents) {
        String beanClassName = bd.getBeanClassName();
        Class cls = Class.forName(beanClassName);
        logger.trace("{} - {} ", cls.getSimpleName(), cls);
        if (persistableLookup.containsKey(cls.getSimpleName())) {
            throw new TdarRecoverableRuntimeException("reflectionService.jaxb_mapping",
                    Arrays.asList(cls.getSimpleName()));
        }
        persistableLookup.put(cls.getSimpleName(), cls);
    }

}

From source file:org.tdar.core.service.ReflectionService.java

/**
 * find all Classes that support the identified Annotation
 * //from  ww w  .  jav a 2 s  .  c om
 * @param annots
 * @return
 * @throws NoSuchBeanDefinitionException
 * @throws ClassNotFoundException
 */
@SafeVarargs
public static Class<?>[] scanForAnnotation(Class<? extends Annotation>... annots)
        throws ClassNotFoundException {
    List<Class<?>> toReturn = new ArrayList<>();
    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);
    for (Class<? extends Annotation> annot : annots) {
        scanner.addIncludeFilter(new AnnotationTypeFilter(annot));
    }
    String basePackage = ORG_TDAR2;
    for (BeanDefinition bd : scanner.findCandidateComponents(basePackage)) {
        String beanClassName = bd.getBeanClassName();
        Class<?> cls = Class.forName(beanClassName);
        toReturn.add(cls);
    }
    return toReturn.toArray(new Class<?>[0]);
}

From source file:org.teiid.spring.autoconfigure.TeiidServer.java

boolean findAndConfigureViews(VDBMetaData vdb, ApplicationContext context,
        PhysicalNamingStrategy namingStrategy) {
    ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
            false);// w w w .j a v  a2 s  .c o  m
    provider.addIncludeFilter(new AnnotationTypeFilter(javax.persistence.Entity.class));
    provider.addIncludeFilter(new AnnotationTypeFilter(javax.persistence.Embeddable.class));
    provider.addIncludeFilter(new AnnotationTypeFilter(SelectQuery.class));
    provider.addIncludeFilter(new AnnotationTypeFilter(UserDefinedFunctions.class));

    String basePackage = context.getEnvironment().getProperty(TeiidConstants.ENTITY_SCAN_DIR);
    if (basePackage == null) {
        logger.warn("***************************************************************");
        logger.warn("\"" + TeiidConstants.ENTITY_SCAN_DIR
                + "\" is NOT set, scanning entire classpath for @Entity classes.");
        logger.warn("consider setting this property to avoid time consuming scanning");
        logger.warn("***************************************************************");
        basePackage = "*";
    }

    // check to add any source models first based on the annotations
    boolean load = false;
    Set<BeanDefinition> components = provider.findCandidateComponents(basePackage);
    for (BeanDefinition c : components) {
        try {
            Class<?> clazz = Class.forName(c.getBeanClassName());
            ExcelTable excelAnnotation = clazz.getAnnotation(ExcelTable.class);

            if (excelAnnotation != null) {
                addExcelModel(vdb, clazz, excelAnnotation);
                load = true;
            }
        } catch (ClassNotFoundException e) {
            logger.warn("Error loading entity classes");
        }
    }

    ModelMetaData model = new ModelMetaData();
    model.setName(EXPOSED_VIEW);
    model.setModelType(Model.Type.VIRTUAL);
    MetadataFactory mf = new MetadataFactory(VDBNAME, VDBVERSION,
            SystemMetadata.getInstance().getRuntimeTypeMap(), model);

    if (components.isEmpty()) {
        if (isRedirectUpdatesEnabled(context)) {
            // when no @entity classes are defined then this is service based, sniff the
            // metadata
            // from Teiid models that are defined and build Hibernate metadata from it.
            buildVirtualBaseLayer(vdb, context, mf);
        } else {
            return false;
        }
    }

    Metadata metadata = getMetadata(components, namingStrategy, mf);
    UDFProcessor udfProcessor = new UDFProcessor(metadata, vdb);
    for (BeanDefinition c : components) {
        try {
            Class<?> clazz = Class.forName(c.getBeanClassName());
            Entity entityAnnotation = clazz.getAnnotation(Entity.class);
            SelectQuery selectAnnotation = clazz.getAnnotation(SelectQuery.class);
            TextTable textAnnotation = clazz.getAnnotation(TextTable.class);
            JsonTable jsonAnnotation = clazz.getAnnotation(JsonTable.class);
            ExcelTable excelAnnotation = clazz.getAnnotation(ExcelTable.class);
            UserDefinedFunctions udfAnnotation = clazz.getAnnotation(UserDefinedFunctions.class);

            if (textAnnotation != null && entityAnnotation != null) {
                new TextTableView(metadata).buildView(clazz, mf, textAnnotation);
            } else if (jsonAnnotation != null && entityAnnotation != null) {
                new JsonTableView(metadata).buildView(clazz, mf, jsonAnnotation);
            } else if (selectAnnotation != null && entityAnnotation != null) {
                new SimpleView(metadata).buildView(clazz, mf, selectAnnotation);
            } else if (excelAnnotation != null && entityAnnotation != null) {
                new ExcelTableView(metadata).buildView(clazz, mf, excelAnnotation);
            } else if (udfAnnotation != null) {
                udfProcessor.buildFunctions(clazz, mf, udfAnnotation);
            } else if (selectAnnotation == null && entityAnnotation != null) {
                new EntityBaseView(metadata, vdb, this).buildView(clazz, mf, entityAnnotation);
            }

            // check for sequence
            if (entityAnnotation != null) {
                udfProcessor.buildSequence(clazz, mf, entityAnnotation);
            }
        } catch (ClassNotFoundException e) {
            logger.warn("Error loading entity classes");
        }
    }
    udfProcessor.finishProcessing();

    // check if the redirection is in play
    if (isRedirectUpdatesEnabled(context)) {
        String redirectedDSName = getRedirectedDataSource(context);
        try {
            // rename current view model to something else
            model.setName("internal");
            model.setVisible(false);

            DataSource redirectedDS = (DataSource) ((SBConnectionFactoryProvider) getConnectionFactoryProviders()
                    .get(redirectedDSName)).getBean();
            String driverName = getDriverName(redirectedDS);
            if (driverName == null) {
                throw new IllegalStateException("Redirection of updates enabled, however datasource"
                        + " configured for redirection is not recognized.");
            }

            RedirectionSchemaBuilder mg = new RedirectionSchemaBuilder(context, redirectedDSName);
            // if none of the annotations defined, create layer with tables from all data
            // sources
            if (mf.getSchema().getTables().isEmpty()) {
                throw new IllegalStateException("Redirection of updates enabled, however there are no "
                        + "@Entity found. There must be atleast one @Entity for this feature to work.");
            }

            // now add the modified model that does the redirection
            ModelMetaData exposedModel = mg.buildRedirectionLayer(mf, EXPOSED_VIEW);
            vdb.addModel(exposedModel);

            // we need to create the schema in the redirected data source to store the
            // ephemeral data, will use
            // hibernate metadata for schema generation techniques.
            ModelMetaData redirectedModel = vdb.getModel(redirectedDSName);
            assert (redirectedModel != null);
            String dialect = redirectedModel.getPropertyValue(DIALECT);
            if (dialect == null) {
                throw new IllegalStateException(
                        "Redirection is enabled, however data source named \"" + redirectedDSName
                                + "\" cannot be used with schema initialization, choose a different data source"
                                + "as there are no schema generation facilities for this data source.");
            }
            new RedirectionSchemaInitializer(redirectedDS, redirectedDSName, getDialect(dialect), metadata,
                    this.metadataSources.getServiceRegistry(), mf.getSchema(), context).init();

            // reload the redirection model as it has new entries now after schema
            // generation.
            try {
                vdb.addModel(buildModelFromDataSource(redirectedDSName, driverName, context, false));
            } catch (AdminException e) {
                throw new IllegalStateException("Error adding the source, cause: " + e.getMessage());
            }
            load = true;
        } catch (BeansException e) {
            throw new IllegalStateException("Redirection is enabled, however data source named \""
                    + redirectedDSName + "\" is not configured. Please configure a data source.");
        }
    }
    if (!mf.getSchema().getTables().isEmpty()) {
        load = true;
        String ddl = DDLStringVisitor.getDDLString(mf.getSchema(), null, null);
        model.addSourceMetadata("DDL", ddl);
        vdb.addModel(model);
    }
    return load;
}

From source file:org.teiid.spring.autoconfigure.TeiidServer.java

private Metadata getMetadata(Set<BeanDefinition> components, PhysicalNamingStrategy namingStrategy,
        MetadataFactory mf) {/*w w w. j  ava2 s  .c  o m*/
    ServiceRegistry registry = metadataSources.getServiceRegistry();
    StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder(
            (BootstrapServiceRegistry) registry).applySetting(AvailableSettings.DIALECT, TeiidDialect.class)
                    .build();
    // Generate Hibernate model based on @Entity definitions
    for (BeanDefinition c : components) {
        try {
            Class<?> clazz = Class.forName(c.getBeanClassName());
            metadataSources.addAnnotatedClass(clazz);
        } catch (ClassNotFoundException e) {
        }
    }
    return metadataSources.getMetadataBuilder(serviceRegistry).applyPhysicalNamingStrategy(namingStrategy)
            .build();
}

From source file:org.usergrid.persistence.Schema.java

@SuppressWarnings("unchecked")
public void scanEntities() {
    for (String path : entitiesScanPath) {
        ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
                true);//from  www. ja  va2s  .com
        provider.addIncludeFilter(new AssignableTypeFilter(TypedEntity.class));

        Set<BeanDefinition> components = provider.findCandidateComponents(path);
        for (BeanDefinition component : components) {
            try {
                Class<?> cls = Class.forName(component.getBeanClassName());
                if (Entity.class.isAssignableFrom(cls)) {
                    registerEntity((Class<? extends Entity>) cls);
                }
            } catch (ClassNotFoundException e) {
                logger.error("Unable to get entity class ", e);
            }
        }
        registerEntity(DynamicEntity.class);
    }
}

From source file:ru.cwt.console.EasyShellServer.java

@PostConstruct
private void init() {
    registerCommand("exit", new Command() {
        @Override//  w w w  . j  av  a2s . com
        public void execute(String name, String argument, EasyTerminal terminal) throws IOException {
            terminal.close();
        }
    });

    registerCommand("help", new Command() {
        @Override
        public void execute(String name, String argument, EasyTerminal terminal) throws IOException {
            terminal.write(TelnetUtils.join(" ", commands.keySet()) + "\r\n");
            terminal.flush();
        }
    });

    registerCommand("status", new Command() {
        @Override
        public void execute(String name, String argument, EasyTerminal terminal) throws IOException {
            Map<String, Integer> status = probeService.getPoolersStatus();

            int c = 0;
            for (String p : status.keySet()) {
                terminal.write("Pooler " + p + " task count " + status.get(p) + "\r\n");
                c += status.get(p);
            }

            terminal.write("Total tasks in queue " + c + "\r\n");

            terminal.flush();
        }
    });

    registerCommand("list", new Command() {
        @Override
        public void execute(String name, String argument, EasyTerminal terminal) throws IOException {
            switch (argument) {
            case "hosts":
                if (probeService.getHosts().size() > 0) {
                    terminal.write("available hosts: \r\n");

                    for (String hostId : probeService.getHosts().keySet()) {
                        Host h = probeService.getHosts().get(hostId);
                        terminal.write(
                                " " + h.getName() + " (" + h.getAddressType() + ":" + h.getAddress() + ")\r\n");
                    }
                } else {
                    terminal.write("no hosts \r\n");
                }

                break;

            case "checks":
                if (probeService.getHosts().size() > 0) {
                    terminal.write("available probe checks: \r\n");

                    for (String hostId : probeService.getHosts().keySet()) {
                        Host h = probeService.getHosts().get(hostId);

                        if (CollectionUtils.isEmpty(h.getChecks())) {
                            terminal.write(" Host: " + h.getName() + " has no probe check\r\n");

                        } else {
                            terminal.write(" Host: " + h.getName() + " (" + h.getAddressType() + ":"
                                    + h.getAddress() + ")\r\n");

                            for (ServiceCheck sc : h.getChecks()) {
                                terminal.write(
                                        "  * " + sc.getName() + " (" + sc.getServiceBeanName() + ")\r\n");
                            }
                        }
                    }
                } else {
                    terminal.write("no checks \r\n");
                }

                break;

            case "services":
                terminal.write("available probe beans: \r\n");
                final ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
                        false);
                provider.addIncludeFilter(new RegexPatternTypeFilter(Pattern.compile(".*")));

                final Set<BeanDefinition> classes = provider
                        .findCandidateComponents("ru.cwt.devscheck.probe.impl");

                for (BeanDefinition bean : classes) {
                    terminal.write(" " + bean.getBeanClassName() + "\r\n");
                }

                break;

            default:
                terminal.write("unknown argument '" + argument + "'. allowed values: host, check\r\n");
            }

            terminal.flush();
        }
    });

    registerCommand("add", new Command() {
        @Override
        public void execute(String name, String argument, EasyTerminal terminal) throws IOException {

            String[] params = StringUtils.split(argument, " ");
            if (params.length == 0) {
                terminal.write("unknown argument '" + argument + "'. allowed values: host, check\r\n");
            } else {

                switch (params[0]) {
                case "host":
                    if (params.length < 4) {
                        terminal.write("wrong parameters count. usage: add host name ip type\r\n");
                        terminal.write(" type can be one of: WMWARE,WINDOWS,LINUX,MACOSX,CISCO,IBM_BLADE\r\n");
                    } else {
                        Host h = new Host();
                        h.setName(params[1]);
                        if (StringUtils.contains(params[2], "."))
                            h.setAddressType(AddressType.IPV4);
                        else
                            h.setAddressType(AddressType.IPV6);
                        h.setAddress(params[2]);
                        h.setHostType(HostType.valueOf(params[3]));
                        h.setCreateDate(new Date());

                        if (!probeService.addHost(h)) {
                            terminal.write("Error adding Host\r\n");
                        }
                    }

                    break;

                case "check":
                    if (params.length < 3) {
                        terminal.write("wrong parameters count. usage: add check host check-name clazz\r\n");
                    } else {
                        ServiceCheck sc = new ServiceCheck();
                        sc.setName(params[2]);
                        sc.setServiceBeanName(params[3]);
                        sc.setCreateDate(new Date());
                        if (!probeService.addServiceCheck(params[1], sc)) {
                            terminal.write("Error adding ServiceCheck\r\n");
                        }
                    }

                    break;

                case "treshold":
                    if (params.length < 4) {
                        terminal.write("wrong parameters count. usage: add treshold name warning alert\r\n");
                    } else {
                        Treshold t = new Treshold();
                        t.setName(params[2]);
                        t.setWarning(NumberUtils.createDouble(params[3]));
                        t.setAlert(NumberUtils.createDouble(params[4]));
                        if (!probeService.addTreshold(t)) {
                            terminal.write("Error adding Treshold\r\n");
                        }
                    }
                    break;

                default:
                    terminal.write("unknown argument '" + argument + "'. allowed values: host, check\r\n");
                }
            }

            terminal.flush();
        }
    });

    registerCommand("discovery", new Command() {
        @Override
        public void execute(String name, String argument, EasyTerminal terminal) throws IOException {
            String[] params = StringUtils.split(argument, " ");
            if (params.length < 3) {
                terminal.write("wrong parameters count. usage: discovery from-ip to-ip ServiceCherk\r\n");
            } else {
                ServiceCheck check = new ServiceCheck("ping", null, new HashMap<>(),
                        "ru.cwt.devscheck.probe.impl.PingServiceBean");

                discoveryService.scan(params[0], params[1], check);
            }

            terminal.flush();
        }
    });

    try {
        start(InetAddress.getByName(addr), Integer.parseInt(port));

        log.info("Start shell server at {}:{} ", addr, port);
    } catch (Exception e) {
        log.error("Cant init shell server", e);
    }
}