All Downloads are FREE. Search and download functionalities are using the official Maven repository.

er.yoga-demo-shared.0.9.4.source-code.applicationContext.xml Maven / Gradle / Ivy

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
                        http://www.springframework.org/schema/jdbc    http://www.springframework.org/schema/jdbc/spring-jdbc.xsd">

    <context:annotation-config />
    <context:component-scan base-package="org.skyscreamer.yoga.demo">
        <context:exclude-filter type="annotation"
            expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

    <!-- DATABASE CONFIG START -->
    <jdbc:embedded-database id="dataSource" type="H2" />

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
        p:dataSource-ref="dataSource" p:packagesToScan="org.skyscreamer.yoga.demo.model">
        <property name="hibernateProperties">
            <value>
                hibernate.dialect = org.hibernate.dialect.H2Dialect
                hibernate.cache.provider_class = org.hibernate.cache.HashtableCacheProvider
                hibernate.hbm2ddl.auto = update
                hibernate.show_sql = true
                hibernate.cache.use_second_level_cache = true
                hibernate.cache.use_query_cache = true
                hibernate.cache.region.factory_class = net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory
            </value>
        </property>
    </bean>

    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"
        p:cacheQueries="true" p:sessionFactory-ref="sessionFactory" />

    <!-- This can normally be done via jdbc:init, but we wanted to let hibernate 
        initialize the database -->
    <bean id="dbInit"
        class="org.springframework.jdbc.datasource.init.DataSourceInitializer"
        p:dataSource-ref="dataSource" p:databasePopulator-ref="dbPopulator" />

    <bean id="dbPopulator"
        class="org.springframework.jdbc.datasource.init.ResourceDatabasePopulator"
        p:scripts="classpath:sampledb.sql" depends-on="sessionFactory" />

    <!-- This is for loading large quantities of data for testing data scaling. 
        Disabled by default. -->
    <bean id="extendedDbInit"
        class="org.springframework.jdbc.datasource.init.DataSourceInitializer"
        p:dataSource-ref="dataSource" p:databasePopulator-ref="extendedDbPopulator"
        depends-on="sessionFactory" />

    <bean id="extendedDbResource" class="org.skyscreamer.yoga.demo.util.GzippedResource">
      <constructor-arg
          value="https://raw.github.com/skyscreamer/skyscreamer.github.com/master/yoga/loaddb.sql.gz" />
    </bean>

    <bean id="extendedDbPopulator"
        class="org.springframework.jdbc.datasource.init.ResourceDatabasePopulator"
        p:scripts-ref="extendedDbResource" />

    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
        p:dataSource-ref="dataSource" />

    <!-- DATABSE CONFIG END -->


    <!-- YOGA CONFIG BEGIN -->
    <bean id="hibernateClassFinder" class="org.skyscreamer.yoga.classfinder.HibernateClassFinderStrategy" />

    <bean id="selectorParser" class="org.skyscreamer.yoga.selector.parser.GDataSelectorParser">
        <property name="entityConfigurationRegistry" ref="entityConfigurationRegistry"/>
        <property name="aliasSelectorResolver" ref="aliasSelectorResolver"/>
        <property name="disableExplicitSelectors" value="false"/>
    </bean>

    <bean id="aliasSelectorResolver" class="org.skyscreamer.yoga.selector.parser.DynamicPropertyResolver"
        p:propertyFile="classpath:selectorAlias.properties" />

    <bean id="entityConfigurationRegistry" class="org.skyscreamer.yoga.configuration.DefaultEntityConfigurationRegistry">
        <constructor-arg>
            <list>
                <bean class="org.skyscreamer.yoga.demo.dto.UserConfiguration" />
            </list>
        </constructor-arg>
    </bean>

    <bean id="hrefListener" class="org.skyscreamer.yoga.listener.HrefListener"
        p:entityConfigurationRegistry-ref="entityConfigurationRegistry" />

    <bean id="renderingListenerRegistry" class="org.skyscreamer.yoga.listener.RenderingListenerRegistry">
        <constructor-arg>
            <list>
                <bean class="org.skyscreamer.yoga.listener.CountLimitRenderingListener">
                    <constructor-arg value="2000" />
                </bean>
                <ref bean="hrefListener" />
                <bean class="org.skyscreamer.yoga.listener.SelectorBuilderListener" />
                <bean class="org.skyscreamer.yoga.listener.NavigationLinksListener"
                    p:hrefListener-ref="hrefListener" />
                <bean class="org.skyscreamer.yoga.listener.ModelDefinitionListener"
                    p:entityConfigurationRegistry-ref="entityConfigurationRegistry"/>
                <bean class="org.skyscreamer.yoga.listener.MetadataLinkListener"
                    p:metaDataRegistry-ref="metaDataService" />
            </list>
        </constructor-arg>
    </bean>

    <bean id="metaDataService" class="org.skyscreamer.yoga.metadata.DefaultMetaDataRegistry"
          p:coreSelector-ref="coreSelector">
        <property name="rootMetaDataUrl" value="/metadata/" />
        <property name="typeMappings">
            <map>
                <entry key="album" value="org.skyscreamer.yoga.demo.model.Album" />
                <entry key="artist" value="org.skyscreamer.yoga.demo.model.Artist" />
                <entry key="song" value="org.skyscreamer.yoga.demo.model.Song" />
                <entry key="user" value="org.skyscreamer.yoga.demo.model.User" />
            </map>
        </property>
    </bean>

    <bean id="coreSelector" class="org.skyscreamer.yoga.selector.CoreSelector"
        p:entityConfigurationRegistry-ref="entityConfigurationRegistry"/>

    <bean name="abstract.view" abstract="true"
        p:registry-ref="renderingListenerRegistry"
        p:classFinderStrategy-ref="hibernateClassFinder"
        p:selector-ref="coreSelector"
        p:selectorParser-ref="selectorParser" />

    <bean name="xml.view" parent="abstract.view" class="org.skyscreamer.yoga.view.XmlSelectorView" />
    <bean name="xhtml.view" parent="abstract.view" class="org.skyscreamer.yoga.view.XhtmlSelectorView" />
    <bean name="json.view" parent="abstract.view" class="org.skyscreamer.yoga.view.JsonSelectorView" />
    <bean name="builder.view" parent="abstract.view" class="org.skyscreamer.yoga.view.SelectorBuilderView" />

    <!-- YOGA CONFIG END -->
</beans>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy