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

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

Introduction

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

Prototype

String SCOPE_SINGLETON

To view the source code for org.springframework.beans.factory.config BeanDefinition SCOPE_SINGLETON.

Click Source Link

Document

Scope identifier for the standard singleton scope: "singleton".

Usage

From source file:org.brushingbits.jnap.persistence.factory.DaoFactoryPostProcessor.java

protected BeanDefinition createDaoDefinition(Class<? extends PersistentModel> entityClass,
        SessionFactory sessionFactory) {
    Class daoClass = IndexedModel.class.isAssignableFrom(entityClass) ? GenericFullTextDao.class
            : GenericDao.class;
    return BeanDefinitionBuilder.genericBeanDefinition(daoClass).addConstructorArgValue(entityClass)
            .addPropertyValue("sessionFactory", sessionFactory).setScope(BeanDefinition.SCOPE_SINGLETON)
            .getBeanDefinition();//from   w  w w. j a v  a2s.  c  om
}

From source file:br.com.caelum.vraptor.ioc.spring.SpringRegistry.java

/**
 * From org.springframework.context.annotation.ClassPathBeanDefinitionScanner#applyScope()
 * @param definition/*from w ww  .java  2 s. c om*/
 * @param scopeMetadata
 *
 * @return
 */
private BeanDefinitionHolder applyScopeOn(BeanDefinitionHolder definition, ScopeMetadata scopeMetadata) {
    String scope = scopeMetadata.getScopeName();
    ScopedProxyMode proxyMode = scopeMetadata.getScopedProxyMode();
    definition.getBeanDefinition().setScope(scope);
    if (BeanDefinition.SCOPE_SINGLETON.equals(scope) || BeanDefinition.SCOPE_PROTOTYPE.equals(scope)
            || proxyMode.equals(ScopedProxyMode.NO)) {
        return definition;
    } else {
        boolean proxyTargetClass = proxyMode.equals(ScopedProxyMode.TARGET_CLASS);
        return ScopedProxyUtils.createScopedProxy(definition, (BeanDefinitionRegistry) beanFactory,
                proxyTargetClass);
    }
}

From source file:io.dohko.jdbi.spring.beans.factory.DBIRepositoryDefinitionBeanFactoryProcessor.java

/**
 * Creates a instance of this class with a singleton bean scope.
 * @param packageName the base-package name to scan the types annotated with {@link Repository}. It might not be <code>null</code> or empty.
 */// w  w  w. j a  v a  2s  .  co m
public DBIRepositoryDefinitionBeanFactoryProcessor(final String packageName) {
    this(packageName, BeanDefinition.SCOPE_SINGLETON);
}

From source file:pl.bristleback.server.bristle.conf.namespace.BristlebackServerMessagesBeanDefinitionParser.java

private void registerConditionSenderBeanPostProcessor(ParserContext parserContext) {
    registerRootBean(parserContext, ObjectSenderInjector.class, "system.sender.condition.injector",
            BeanDefinition.SCOPE_SINGLETON);
}

From source file:de.codecentric.batch.jsr352.CustomJsrJobOperator.java

@Override
public long start(String jobName, Properties params) throws JobStartException, JobSecurityException {
    final JsrXmlApplicationContext batchContext = new JsrXmlApplicationContext(params);
    batchContext.setValidating(false);//from  w ww.  ja  v  a2  s . c om

    Resource batchXml = new ClassPathResource("/META-INF/batch.xml");
    String jobConfigurationLocation = "/META-INF/batch-jobs/" + jobName + ".xml";
    Resource jobXml = new ClassPathResource(jobConfigurationLocation);

    if (batchXml.exists()) {
        batchContext.load(batchXml);
    }

    if (jobXml.exists()) {
        batchContext.load(jobXml);
    }

    AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder
            .genericBeanDefinition("org.springframework.batch.core.jsr.JsrJobContextFactoryBean")
            .getBeanDefinition();
    beanDefinition.setScope(BeanDefinition.SCOPE_SINGLETON);
    batchContext.registerBeanDefinition(JSR_JOB_CONTEXT_BEAN_NAME, beanDefinition);

    batchContext.setParent(parentContext);

    try {
        batchContext.refresh();
    } catch (BeanCreationException e) {
        throw new JobStartException(e);
    }

    Assert.notNull(jobName, "The job name must not be null.");

    final org.springframework.batch.core.JobExecution jobExecution;

    try {
        JobParameters jobParameters = jobParametersConverter.getJobParameters(params);
        String[] jobNames = batchContext.getBeanNamesForType(Job.class);

        if (jobNames == null || jobNames.length <= 0) {
            throw new BatchRuntimeException("No Job defined in current context");
        }

        org.springframework.batch.core.JobInstance jobInstance = jobRepository.createJobInstance(jobNames[0],
                jobParameters);
        jobExecution = jobRepository.createJobExecution(jobInstance, jobParameters, jobConfigurationLocation);
    } catch (Exception e) {
        throw new JobStartException(e);
    }

    try {
        final Semaphore semaphore = new Semaphore(1);
        final List<Exception> exceptionHolder = Collections.synchronizedList(new ArrayList<Exception>());
        semaphore.acquire();

        taskExecutor.execute(new Runnable() {

            @Override
            public void run() {
                JsrJobContextFactoryBean factoryBean = null;
                try {
                    factoryBean = (JsrJobContextFactoryBean) batchContext
                            .getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME);
                    factoryBean.setJobExecution(jobExecution);
                    final AbstractJob job = batchContext.getBean(AbstractJob.class);
                    addListenerToJobService.addListenerToJob(job);
                    semaphore.release();
                    // Initialization of the JobExecution for job level dependencies
                    jobRegistry.register(job, jobExecution);
                    job.execute(jobExecution);
                    jobRegistry.remove(jobExecution);
                } catch (Exception e) {
                    exceptionHolder.add(e);
                } finally {
                    if (factoryBean != null) {
                        factoryBean.close();
                    }

                    batchContext.close();

                    if (semaphore.availablePermits() == 0) {
                        semaphore.release();
                    }
                }
            }
        });

        semaphore.acquire();
        if (exceptionHolder.size() > 0) {
            semaphore.release();
            throw new JobStartException(exceptionHolder.get(0));
        }
    } catch (Exception e) {
        if (jobRegistry.exists(jobExecution.getId())) {
            jobRegistry.remove(jobExecution);
        }
        jobExecution.upgradeStatus(BatchStatus.FAILED);
        if (jobExecution.getExitStatus().equals(ExitStatus.UNKNOWN)) {
            jobExecution.setExitStatus(ExitStatus.FAILED.addExitDescription(e));
        }
        jobRepository.update(jobExecution);

        if (batchContext.isActive()) {
            batchContext.close();
        }

        throw new JobStartException(e);
    }
    return jobExecution.getId();
}

From source file:io.dohko.jdbi.spring.beans.factory.DBIRepositoryDefinitionBeanFactoryProcessor.java

/**
 * Defines an {@link IDBI} bean if and only if it is undefined.
 * <p> /*w  w  w .j a v a 2 s  .co  m*/
 * 
 * @param beanFactory  the bean factory used by the application context
 */
private void defineIdbiBeanIfUndefined(ConfigurableListableBeanFactory beanFactory) {
    try {
        beanFactory.getBean(IDBI.class);
    } catch (NoSuchBeanDefinitionException undefinedIdbiBean) {
        try {
            beanFactory.getBean(DBI.class);
        } catch (NoSuchBeanDefinitionException undefinedDbiBean) {
            AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder
                    .rootBeanDefinition(DBIFactoryBean2.class)
                    .addConstructorArgValue(beanFactory.getBean(DataSource.class))
                    .setAutowireMode(AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE)
                    .setScope(BeanDefinition.SCOPE_SINGLETON).getBeanDefinition();

            ((DefaultListableBeanFactory) beanFactory).registerBeanDefinition("dbi", beanDefinition);
        }
    }
}

From source file:org.eclipse.gemini.blueprint.compendium.internal.cm.ManagedServiceFactoryFactoryBean.java

private void processTemplateDefinition() {
    // make sure the scope is singleton
    templateDefinition.setScope(BeanDefinition.SCOPE_SINGLETON);
    // let the special invoker handle the destroy method
    String destroyMethod = templateDefinition.getDestroyMethodName();
    templateDefinition.setDestroyMethodName(null);
    // prevent Spring for calling DiposableBean (it's already handled by the invoker)
    templateDefinition.registerExternallyManagedDestroyMethod("destroy");
    destructionInvokerFactory = new DestructionInvokerCache(destroyMethod);
}

From source file:org.kuali.rice.krad.datadictionary.DataDictionary.java

protected void generateMissingInquiryDefinitions() {
    Collection<InquiryView> inquiryViewBeans = ddBeans.getBeansOfType(InquiryView.class).values();
    // Index all the inquiry views by the data object class so we can find them easily below
    Map<Class<?>, InquiryView> defaultViewsByDataObjectClass = new HashMap<Class<?>, InquiryView>();
    for (InquiryView view : inquiryViewBeans) {
        if (view.getViewName().equals(UifConstants.DEFAULT_VIEW_NAME)) {
            defaultViewsByDataObjectClass.put(view.getDataObjectClassName(), view);
        }// w ww.j a  va2  s .  c o m
    }
    for (DataObjectEntry entry : ddBeans.getBeansOfType(DataObjectEntry.class).values()) {
        // if an inquiry already exists, just ignore - we only default if none exist
        if (defaultViewsByDataObjectClass.containsKey(entry.getDataObjectClass())) {
            continue;
        }
        // We only generate the inquiry if the metadata says to
        if (entry.getDataObjectMetadata() == null) {
            continue;
        }
        if (!entry.getDataObjectMetadata().shouldAutoCreateUifViewOfType(UifAutoCreateViewType.INQUIRY)) {
            continue;
        }
        // no inquiry exists and we want one to, create one
        if (LOG.isInfoEnabled()) {
            LOG.info("Generating Inquiry View for : " + entry.getDataObjectClass());
        }
        String inquiryBeanName = entry.getDataObjectClass().getSimpleName() + "-InquiryView-default";

        InquiryView inquiryView = KRADServiceLocatorWeb.getUifDefaultingService()
                .deriveInquiryViewFromMetadata(entry);
        inquiryView.setId(inquiryBeanName);
        inquiryView.setViewName(UifConstants.DEFAULT_VIEW_NAME);

        ChildBeanDefinition inquiryBean = new ChildBeanDefinition("Uif-InquiryView");
        inquiryBean.setScope(BeanDefinition.SCOPE_SINGLETON);
        inquiryBean.setAttribute("dataObjectClassName", inquiryView.getDataObjectClassName());
        inquiryBean.getPropertyValues().add("dataObjectClassName",
                inquiryView.getDataObjectClassName().getName());
        inquiryBean.setResourceDescription("Autogenerated From Metadata");
        ddBeans.registerBeanDefinition(inquiryBeanName, inquiryBean);
        ddBeans.registerSingleton(inquiryBeanName, inquiryView);
    }
}

From source file:org.kuali.rice.krad.datadictionary.DataDictionary.java

protected void generateMissingLookupDefinitions() {
    Collection<LookupView> lookupViewBeans = ddBeans.getBeansOfType(LookupView.class).values();
    // Index all the inquiry views by the data object class so we can find them easily below
    Map<Class<?>, LookupView> defaultViewsByDataObjectClass = new HashMap<Class<?>, LookupView>();
    for (LookupView view : lookupViewBeans) {
        if (view.getViewName().equals(UifConstants.DEFAULT_VIEW_NAME)) {
            defaultViewsByDataObjectClass.put(view.getDataObjectClass(), view);
        }// w ww. j a  va2 s  . c  o  m
    }
    for (DataObjectEntry entry : ddBeans.getBeansOfType(DataObjectEntry.class).values()) {
        // if an inquiry already exists, just ignore - we only default if none exist
        if (defaultViewsByDataObjectClass.containsKey(entry.getDataObjectClass())) {
            continue;
        }
        // We only generate the inquiry if the metadata says to
        if (entry.getDataObjectMetadata() == null) {
            continue;
        }
        if (!entry.getDataObjectMetadata().shouldAutoCreateUifViewOfType(UifAutoCreateViewType.LOOKUP)) {
            continue;
        }
        // no inquiry exists and we want one to, create one
        if (LOG.isInfoEnabled()) {
            LOG.info("Generating Lookup View for : " + entry.getDataObjectClass());
        }
        String lookupBeanName = entry.getDataObjectClass().getSimpleName() + "-LookupView-default";

        LookupView lookupView = KRADServiceLocatorWeb.getUifDefaultingService()
                .deriveLookupViewFromMetadata(entry);
        lookupView.setId(lookupBeanName);
        lookupView.setViewName(UifConstants.DEFAULT_VIEW_NAME);

        ChildBeanDefinition lookupBean = new ChildBeanDefinition(ComponentFactory.LOOKUP_VIEW);
        lookupBean.setScope(BeanDefinition.SCOPE_SINGLETON);
        lookupBean.setAttribute("dataObjectClassName", lookupView.getDataObjectClass());
        lookupBean.getPropertyValues().add("dataObjectClassName", lookupView.getDataObjectClass().getName());
        lookupBean.setResourceDescription("Autogenerated From Metadata");
        ddBeans.registerBeanDefinition(lookupBeanName, lookupBean);
        ddBeans.registerSingleton(lookupBeanName, lookupView);
    }
}

From source file:org.mule.config.spring.parsers.AbstractMuleBeanDefinitionParser.java

/**
 * Creates a {@link BeanDefinitionBuilder} instance for the {@link #getBeanClass
 * bean Class} and passes it to the {@link #doParse} strategy method.
 *
 * @param element the element that is to be parsed into a single BeanDefinition
 * @param context the object encapsulating the current state of the parsing
 *            process//from www .  ja  va2  s  . co m
 * @return the BeanDefinition resulting from the parsing of the supplied
 *         {@link Element}
 * @throws IllegalStateException if the bean {@link Class} returned from
 *             {@link #getBeanClass(org.w3c.dom.Element)} is <code>null</code>
 * @see #doParse
 */
@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext context) {
    preProcess(element);
    setParserContext(context);
    setRegistry(context.getRegistry());
    checkElementNameUnique(element);
    Class<?> beanClass = getClassInternal(element);
    BeanDefinitionBuilder builder = createBeanDefinitionBuilder(element, beanClass);
    builder.getRawBeanDefinition().setSource(context.extractSource(element));
    builder.setScope(isSingleton() ? BeanDefinition.SCOPE_SINGLETON : BeanDefinition.SCOPE_PROTOTYPE);

    // Marker for MULE-4813
    // We don't want lifcycle for the following from spring
    if (!Component.class.isAssignableFrom(beanClass) && !MessageSource.class.isAssignableFrom(beanClass)
            && !OutboundRouterCollection.class.isAssignableFrom(beanClass)
            && !OutboundRouter.class.isAssignableFrom(beanClass)
            && !AbstractMessageProcessorOwner.class.isAssignableFrom(beanClass)
            && !MessagingExceptionHandler.class.isAssignableFrom(beanClass)
            && !Transformer.class.isAssignableFrom(beanClass)) {
        if (Initialisable.class.isAssignableFrom(beanClass)) {
            builder.setInitMethodName(Initialisable.PHASE_NAME);
        }

        if (Disposable.class.isAssignableFrom(beanClass)) {
            builder.setDestroyMethodName(Disposable.PHASE_NAME);
        }
    }

    if (context.isNested()) {
        // Inner bean definition must receive same singleton status as containing bean.
        builder.setScope(context.getContainingBeanDefinition().isSingleton() ? BeanDefinition.SCOPE_SINGLETON
                : BeanDefinition.SCOPE_PROTOTYPE);
    }

    doParse(element, context, builder);
    return builder.getBeanDefinition();
}