Example usage for org.springframework.beans.factory.support BeanDefinitionBuilder genericBeanDefinition

List of usage examples for org.springframework.beans.factory.support BeanDefinitionBuilder genericBeanDefinition

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support BeanDefinitionBuilder genericBeanDefinition.

Prototype

public static BeanDefinitionBuilder genericBeanDefinition(Class<?> beanClass) 

Source Link

Document

Create a new BeanDefinitionBuilder used to construct a GenericBeanDefinition .

Usage

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

/**
 * @param element/*  ww  w  . ja  v  a  2s  .com*/
 * @return
 */
protected Object prepareDeltaValueInterceptor(Element element) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder
            .genericBeanDefinition(SnapshotDeltaValueInterceptor.class);
    return builder.getBeanDefinition();
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

/**
 * @param element//from   www. j  av a 2  s.c om
 * @return
 */
protected AbstractBeanDefinition prepareDefaultConfigurationSource(Element element, Engine engine) {
    Element defaultsElement = selectSingleChildElement(element, "defaults", true);
    String defaultsPath = null;
    String encoding = null;
    if (defaultsElement != null) {
        defaultsPath = defaultsElement.getAttribute("path");
        encoding = defaultsElement.getAttribute("encoding");
    }
    if (defaultsPath == null) {
        String guessPath = String.format("stillingar/%s.%s", getName(element), engine.getDefaultExtension());
        URL resource = Thread.currentThread().getContextClassLoader().getResource(guessPath);
        if (resource != null) {
            defaultsPath = guessPath;
        }
    }
    if (defaultsPath != null) {
        BeanDefinitionBuilder builder = BeanDefinitionBuilder
                .genericBeanDefinition(DefaultConfigurationSourceFactoryBean.class);

        builder.addConstructorArgValue(prepareClassPathResource(defaultsPath));
        builder.addConstructorArgReference(getLoaderReference(element));
        builder.addConstructorArgValue(encoding == null ? null : Charset.forName(encoding));
        return builder.getBeanDefinition();
    }
    return null;
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

/**
 * @param defaultsPath//from  www. java 2 s  . c  o  m
 * @return
 */
protected AbstractBeanDefinition prepareClassPathResource(String path) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(ClassPathResource.class);
    builder.addConstructorArgValue(path);
    return builder.getBeanDefinition();
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

protected AbstractBeanDefinition prepareFileSystemResource(String path) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(FileSystemResource.class);
    builder.addConstructorArgValue(path);
    return builder.getBeanDefinition();
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

protected AbstractBeanDefinition prepareXmlBeansConversionManager() {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(ConversionManager.class);
    List<String> converterShortNames = Arrays.asList("BigDecimalConverter", "BigIntegerConverter",
            "BooleanConverter", "ByteConverter", "ByteArrayConverter", "UUIDConverter", "EnumConverter",
            "DoubleConverter", "ElementConverter", "FloatConverter", "IntegerConverter", "LongConverter",
            "ShortConverter", "StringConverter", "URIConverter", "DocumentConverter", "LocaleConverter");
    ManagedList<AbstractBeanDefinition> converters = toManagedConverterList(converterShortNames,
            "org.brekka.stillingar.xmlbeans.conversion");
    converters.addAll(//from   w  w w  .j a  v a  2  s .  co  m
            prepareTemporalConverters("org.brekka.stillingar.xmlbeans.conversion", "XmlBeansTemporalAdapter"));

    BeanDefinitionBuilder appCxtBeanDefBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(ApplicationContextConverter.class);
    appCxtBeanDefBuilder.addConstructorArgValue(BeanDefinitionBuilder
            .genericBeanDefinition("org.brekka.stillingar.xmlbeans.conversion.DocumentConverter")
            .getBeanDefinition());
    converters.add(appCxtBeanDefBuilder.getBeanDefinition());
    builder.addConstructorArgValue(converters);
    return builder.getBeanDefinition();
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

protected AbstractBeanDefinition prepareDOMConversionManager() {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(ConversionManager.class);
    ManagedList<AbstractBeanDefinition> converters = prepareCoreConverters();
    converters.addAll(prepareTemporalConverters(TemporalAdapter.class.getPackage().getName(),
            TemporalAdapter.class.getSimpleName()));

    BeanDefinitionBuilder appCxtBeanDefBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(ApplicationContextConverter.class);
    appCxtBeanDefBuilder.addConstructorArgValue(
            BeanDefinitionBuilder.genericBeanDefinition(DocumentConverter.class).getBeanDefinition());
    converters.add(appCxtBeanDefBuilder.getBeanDefinition());
    builder.addConstructorArgValue(converters);
    return builder.getBeanDefinition();
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

protected AbstractBeanDefinition prepareJAXBConversionManager() {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(ConversionManager.class);
    ManagedList<AbstractBeanDefinition> converters = prepareCoreConverters();
    converters//  w w  w .ja v  a  2s  . co m
            .addAll(prepareTemporalConverters("org.brekka.stillingar.jaxb.conversion", "JAXBTemporalAdapter"));

    BeanDefinitionBuilder appCxtBeanDefBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(ApplicationContextConverter.class);
    appCxtBeanDefBuilder.addConstructorArgValue(
            BeanDefinitionBuilder.genericBeanDefinition(DocumentConverter.class).getBeanDefinition());
    converters.add(appCxtBeanDefBuilder.getBeanDefinition());
    builder.addConstructorArgValue(converters);
    return builder.getBeanDefinition();
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

/**
 * @param string// w w  w. ja v  a2 s.c  om
 * @return
 */
protected Collection<? extends AbstractBeanDefinition> prepareTemporalConverters(String customClassPackage,
        String temporalAdapterClassShortName) {
    ManagedList<AbstractBeanDefinition> converters = new ManagedList<AbstractBeanDefinition>();
    BeanDefinitionBuilder temporalBeanBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(customClassPackage + "." + temporalAdapterClassShortName);
    AbstractBeanDefinition temporalBeanDef = temporalBeanBuilder.getBeanDefinition();

    List<String> temporalConverterShortNames = Arrays.asList("DateConverter", "CalendarConverter");
    if (ClassUtils.isPresent("org.joda.time.ReadableInstant", Thread.currentThread().getContextClassLoader())) {
        // JodaTime is present, add the support classes
        temporalConverterShortNames = new ArrayList<String>(temporalConverterShortNames);
        temporalConverterShortNames
                .addAll(Arrays.asList("DateTimeConverter", "LocalDateConverter", "LocalTimeConverter"));

        if (customClassPackage != null) {
            BeanDefinitionBuilder converterBldr = BeanDefinitionBuilder
                    .genericBeanDefinition(customClassPackage + ".PeriodConverter");
            converters.add(converterBldr.getBeanDefinition());
        }
    }
    for (String shortName : temporalConverterShortNames) {
        BeanDefinitionBuilder converterBldr = BeanDefinitionBuilder
                .genericBeanDefinition("org.brekka.stillingar.core.conversion." + shortName);
        converterBldr.addConstructorArgValue(temporalBeanDef);
        converters.add(converterBldr.getBeanDefinition());
    }
    return converters;
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

/**
 * @param converters//from   w w  w.ja  va 2s  .  co  m
 * @param converterShortNames
 */
private static ManagedList<AbstractBeanDefinition> toManagedConverterList(List<String> converterShortNames,
        String packagePrefix) {
    ManagedList<AbstractBeanDefinition> converters = new ManagedList<AbstractBeanDefinition>();
    for (String shortName : converterShortNames) {
        BeanDefinitionBuilder converterBldr = BeanDefinitionBuilder
                .genericBeanDefinition(packagePrefix + "." + shortName);
        converters.add(converterBldr.getBeanDefinition());
    }
    return converters;
}

From source file:nl.surfnet.spring.security.opensaml.config.ServiceProviderBeanDefinitionParser.java

@Override
protected AbstractBeanDefinition parseInternal(final Element element, final ParserContext parserContext) {

    final String preAuthFilterRef = element.getAttribute("preauth-filter-ref");
    if (StringUtils.isBlank(preAuthFilterRef)) {
        parserContext.getReaderContext().error("The preauth-filter-ref is mandatory", element);
    }// ww  w  .  j  a va  2s  .  c o m

    final String messageHandlerRef = element.getAttribute("message-handler-ref");
    if (StringUtils.isBlank(messageHandlerRef)) {
        parserContext.getReaderContext().error("The message-handler-ref is mandatory", element);
    }

    final String certificatestoreRef = element.getAttribute("certificatestore-ref");
    if (StringUtils.isBlank(certificatestoreRef)) {
        parserContext.getReaderContext().error("The certificatestore-ref is mandatory", element);
    }

    final String provisionerRef = element.getAttribute("provisioner-ref");
    if (StringUtils.isBlank(provisionerRef)) {
        parserContext.getReaderContext().error("The provisioner-ref is mandatory", element);
    }

    final String authenticationManangerRef = element.getAttribute("authentication-manager-ref");
    if (StringUtils.isBlank(authenticationManangerRef)) {
        parserContext.getReaderContext().error("The authentication-manager-ref is mandatory", element);
    }

    final String entityID = element.getAttribute("entity-id");
    if (StringUtils.isBlank(entityID)) {
        parserContext.getReaderContext().error("The entity-id is mandatory", element);
    }

    final String assertionConsumerURI = element.getAttribute("assertion-consumer-uri");
    if (StringUtils.isBlank(assertionConsumerURI)) {
        parserContext.getReaderContext().error("Missing or empty assertion-consumer-uri.", element);
    }

    final String poolSize = element.getAttribute("max-parser-pool-size");
    try {
        poolSizeInt = Integer.parseInt(poolSize);
    } catch (NumberFormatException nfe) {
        parserContext.getReaderContext().error("An invalid value for max-parser-pool-size was supplied",
                element);
    }

    final String replayCacheLife = element.getAttribute("replay-cache-life-in-millis");
    try {
        replayCacheDuration = Integer.parseInt(replayCacheLife);
    } catch (NumberFormatException nfe) {
        parserContext.getReaderContext().error("An invalid value for replay-cache-life-in-millis was supplied",
                element);
    }

    final String clockSkew = element.getAttribute("issue-instant-check-clock-skew-in-secs");
    try {
        newClockSkew = Integer.parseInt(clockSkew);
    } catch (NumberFormatException nfe) {
        parserContext.getReaderContext()
                .error("An invalid value for issue-instant-check-clock-skew-in-secs was supplied", element);
    }

    final String validTime = element.getAttribute("issue-instant-check-valid-time-in-secs");
    try {
        newExpires = Integer.parseInt(validTime);
    } catch (NumberFormatException nfe) {
        parserContext.getReaderContext()
                .error("An invalid value for issue-instant-check-valid-time-in-secs was supplied", element);
    }

    BeanDefinitionBuilder bootstrapBean = BeanDefinitionBuilder.genericBeanDefinition(DefaultBootstrap.class);
    bootstrapBean.setInitMethodName("bootstrap");
    parserContext.getRegistry().registerBeanDefinition(BEAN_SAMLINITIALIZER, bootstrapBean.getBeanDefinition());

    final BasicParserPool basicParserPool = new BasicParserPool();
    basicParserPool.setMaxPoolSize(poolSizeInt);

    final HTTPPostSimpleSignDecoder httpPostSimpleSignDecoder = new HTTPPostSimpleSignDecoder(basicParserPool);

    final VelocityEngineFactoryBean velocityEngineFactoryBean = new VelocityEngineFactoryBean();
    velocityEngineFactoryBean.setPreferFileSystemAccess(false);
    Properties velocityEngineProperties = new Properties();
    velocityEngineProperties.setProperty("resource.loader", "classpath");
    velocityEngineProperties.setProperty("classpath.resource.loader.class",
            "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
    velocityEngineFactoryBean.setVelocityProperties(velocityEngineProperties);
    VelocityEngine velocityEngine = null;
    try {
        velocityEngine = velocityEngineFactoryBean.createVelocityEngine();
    } catch (IOException e) {
        throw new RuntimeException("Unable to create velocity engine instance");
    }

    // Replay cache
    BeanDefinitionBuilder replayCacheBuilder = BeanDefinitionBuilder.genericBeanDefinition(ReplayCache.class);
    replayCacheBuilder.addConstructorArgValue(new MapBasedStorageService());
    replayCacheBuilder.addConstructorArgValue(replayCacheDuration);
    parserContext.getRegistry().registerBeanDefinition(BEAN_REPLAYCACHE,
            replayCacheBuilder.getBeanDefinition());

    // Message replay rule
    BeanDefinitionBuilder messageReplayRuleBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(MessageReplayRule.class);
    messageReplayRuleBuilder.addConstructorArgReference(BEAN_REPLAYCACHE);
    parserContext.getRegistry().registerBeanDefinition("messageReplayRule",
            messageReplayRuleBuilder.getBeanDefinition());

    // Issue instant rule
    BeanDefinitionBuilder issueInstantBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(IssueInstantRule.class);
    issueInstantBuilder.addConstructorArgValue(newClockSkew);
    issueInstantBuilder.addConstructorArgValue(newExpires);
    parserContext.getRegistry().registerBeanDefinition("issueInstantRule",
            issueInstantBuilder.getBeanDefinition());

    // KeyStore Credential Resolver
    BeanDefinitionBuilder keyStoreBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(KeyStoreCredentialResolverDelegate.class);
    keyStoreBuilder.addPropertyReference("keyStore", certificatestoreRef);
    parserContext.getRegistry().registerBeanDefinition(BEAN_KEYSTORECREDENTIALRESOLVER,
            keyStoreBuilder.getBeanDefinition());

    // Signature Rule Builder
    BeanDefinitionBuilder signatureRuleBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(SignatureSecurityPolicyRule.class);
    signatureRuleBuilder.addConstructorArgValue(new SAMLSignatureProfileValidator());
    signatureRuleBuilder.addPropertyReference("credentialResolver", BEAN_KEYSTORECREDENTIALRESOLVER);

    // List of rule beans
    final ManagedList<BeanMetadataElement> beanMetadataElements = new ManagedList<BeanMetadataElement>();
    beanMetadataElements.add(signatureRuleBuilder.getBeanDefinition());
    beanMetadataElements.add(issueInstantBuilder.getBeanDefinition());
    beanMetadataElements.add(messageReplayRuleBuilder.getBeanDefinition());

    // Security Policy
    BeanDefinitionBuilder securityPolicyDelegateBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(SecurityPolicyDelegate.class);
    securityPolicyDelegateBuilder.addConstructorArgValue(beanMetadataElements);
    parserContext.getRegistry().registerBeanDefinition(BEAN_SECURITYPOLICY,
            securityPolicyDelegateBuilder.getBeanDefinition());

    // Security Policy Resolver
    BeanDefinitionBuilder securityPolicyResolverBuilder = BeanDefinitionBuilder
            .genericBeanDefinition(StaticSecurityPolicyResolver.class);
    securityPolicyResolverBuilder.addConstructorArgReference(BEAN_SECURITYPOLICY);
    parserContext.getRegistry().registerBeanDefinition(BEAN_SECURITYPOLICYRESOLVER,
            securityPolicyResolverBuilder.getBeanDefinition());

    // Message Handler
    BeanDefinitionBuilder postBindingAdapter = BeanDefinitionBuilder
            .rootBeanDefinition(SAMLMessageHandlerImpl.class);
    postBindingAdapter.addConstructorArgValue(httpPostSimpleSignDecoder);
    postBindingAdapter.addConstructorArgReference(BEAN_SECURITYPOLICYRESOLVER);
    postBindingAdapter.addPropertyValue("velocityEngine", velocityEngine);
    postBindingAdapter.addPropertyValue("entityId", entityID);
    parserContext.getRegistry().registerBeanDefinition(messageHandlerRef,
            postBindingAdapter.getBeanDefinition());

    // Assertion Consumer Bean
    BeanDefinitionBuilder assertionComsumerBean = BeanDefinitionBuilder
            .genericBeanDefinition(AssertionConsumerImpl.class);
    assertionComsumerBean.addPropertyReference("provisioner", provisionerRef);
    parserContext.getRegistry().registerBeanDefinition(BEAN_ASSERTIONCONSUMER,
            assertionComsumerBean.getBeanDefinition());

    BeanDefinitionBuilder authenticationProvider = BeanDefinitionBuilder
            .rootBeanDefinition(SAMLResponseAuthenticationProvider.class);
    authenticationProvider.addConstructorArgReference(BEAN_ASSERTIONCONSUMER);
    parserContext.getRegistry().registerBeanDefinition(BEAN_AUTHENTICATIONPROVIDER,
            authenticationProvider.getBeanDefinition());

    // Pre Auth Filter
    final HttpSessionRequestCache requestCache = new HttpSessionRequestCache();
    final AuthenticationFailureHandlerImpl authenticationFailureHandler = new AuthenticationFailureHandlerImpl(
            requestCache);

    // Authentication Filter
    BeanDefinitionBuilder authenticationFilter = BeanDefinitionBuilder
            .rootBeanDefinition(SAMLResponseAuthenticationProcessingFilter.class);
    authenticationFilter.addConstructorArgValue(assertionConsumerURI);
    authenticationFilter.addPropertyReference("SAMLMessageHandler", messageHandlerRef);
    authenticationFilter.addPropertyReference("authenticationManager", authenticationManangerRef);
    authenticationFilter.addPropertyValue("authenticationFailureHandler", authenticationFailureHandler);
    parserContext.getRegistry().registerBeanDefinition(preAuthFilterRef,
            authenticationFilter.getBeanDefinition());

    return authenticationProvider.getBeanDefinition();
}