JasperReports Server v5.x Configuration File - ApplicationContext.xml

Warning

These configuration files are essential to JasperReports Server's functioning.  Be very careful when editting them, remembering to have a backup in case you make a mistake.

This particular file is from JasperReports Server, v5.1. Other versions may differ.

<beans xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd"
       xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:util="http://www.springframework.org/schema/util">

  <!--Enable the configuration of transactional behavior based on annotations-->
  <tx:annotation-driven transaction-manager="transactionManager"/>
  <!--Enable annotation-based wiring-->
  <context:annotation-config/>
  <context:component-scan base-package="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl"/>
  <alias name="${bean.securityContextProvider}" alias="concreteSecurityContextProvider"/>
  <alias name="${bean.engineService}"           alias="concreteEngineService"/>
  <util:properties id="springConfiguration" location="${resource.root}/js.spring.properties"/>
  <alias name="${bean.jasperReportsContext}"    alias="concreteJasperReportsContext"/>

  <bean id="contextApplicationContextProvider"
        class="com.jaspersoft.jasperserver.api.common.util.spring.ApplicationContextProvider"/>
  <!--Service beans-->
  <!--Hibernate SessionFactory-->
  <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="mappingResources">
      <list>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/CachedItem.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/ContentRepoFileResource.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoBeanDataSource.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoCustomDataSource.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoDataType.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoFileResource.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/util/BasicPersistentFileResource.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoFolder.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoInputControl.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoJdbcDataSource.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoJndiJdbcDataSource.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoVirtualDataSource.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoAwsDataSource.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoListOfValues.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoOlapClientConnection.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoOlapUnit.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoQuery.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoReportUnit.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoResource.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/common/service/impl/hibernate/persistent/RepoXMLAConnection.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/user/domain/impl/hibernate/RepoUser.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/user/domain/impl/hibernate/RepoRole.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/user/domain/impl/hibernate/RepoTenant.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/user/domain/impl/hibernate/RepoObjectPermission.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/user/domain/impl/hibernate/RepoProfileAttribute.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/engine/scheduling/hibernate/PersistentReportJob.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/engine/scheduling/hibernate/PersistentReportJobTrigger.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/engine/scheduling/hibernate/PersistentReportJobRepositoryDestination.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/engine/scheduling/hibernate/PersistentReportJobMailNotification.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/engine/scheduling/hibernate/PersistentReportJobAlert.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/common/domain/impl/LogEvent.hbm.xml</value>
        <value>${property.hbm.RepoMondrianConnection}</value>
        <value>${property.hbm.RepoMondrianXMLADefinition}</value>
        <value>/com/jaspersoft/jasperserver/api/logging/access/domain/hibernate/RepoAccessEvent.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/data/snapshot/hibernate/DataSnapshot.hbm.xml</value>
        <value>/com/jaspersoft/jasperserver/api/metadata/data/snapshot/hibernate/DataSnapshotContents.hbm.xml</value>
        <value>${property.hbm.NamedQueries}</value>
      </list>
    </property>
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">${metadata.hibernate.dialect}</prop>
        <prop key="hibernate.show_sql">false</prop>
        <prop key="hibernate.generate_statistics">true</prop>
        <!--uncomment property below if a default schema should be specified such as for DB2-->
        <!--<prop key="hibernate.default_schema">${metadata.hibernate.default_schema}</prop>-->
        <!--Cache Configurations-->
        <prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop>
        <prop key="net.sf.ehcache.configurationResourceName">/ehcache_hibernate.xml</prop>
        <prop key="hibernate.cache.use_minimal_puts">false</prop>
        <prop key="hibernate.cache.use_query_cache">true</prop>
        <prop key="hibernate.cache.use_second_level_cache">true</prop>
        <prop key="hibernate.cache.use_structured_entries">true</prop>
      </props>
    </property>
    <!--configure caching for each persistent class
            this is equivalent to adding <cache> element to each mapping file,
            but centralizing this is probably preferable-->
    <property name="entityCacheStrategies">
      <props>
        <prop key="com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoUser">read-write,defaultRepoCache</prop>
        <prop key="com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoRole">read-write,defaultRepoCache</prop>
        <prop key="com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoTenant">read-write,defaultRepoCache</prop>
      </props>
    </property>
    <property name="eventListeners">
      <map>
        <entry key="merge">
          <bean class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener"/>
        </entry>
        <entry key="delete">
          <ref bean="hibernateCompositeDeleteListener"/>
        </entry>
        <entry key="save-update">
          <ref bean="hibernateCompositeSaveOrUpdateListener"/>
        </entry>
        <entry key="post-update">
          <ref bean="hibernateCompositePostUpdateListener"/>
        </entry>
        <entry key="post-commit-update">
          <ref bean="propertiesSaveOrUpdateListener"/>
        </entry>
        <entry key="post-commit-insert">
          <ref bean="propertiesSaveOrUpdateListener"/>
        </entry>
        <entry key="post-commit-delete">
          <ref bean="driverDeleteListener"/>
        </entry>
      </map>
    </property>
    <property name="entityInterceptor">
      <ref local="hibernateCompositeInterceptor"/>
    </property>
  </bean>
  <bean id="themeHibernateListener" class="com.jaspersoft.jasperserver.war.themes.ThemeHibernateListener">
    <property name="themeCacheBeanName" value="themeCache"/>
  </bean>
  <!--Hibernate 3.0's JMX statistics service (uncomment this and the next bean if you wish to access Hibernate statistics via JMX)
    <bean name="jasperserver:type=HibernateStatistics" class="org.hibernate.jmx.StatisticsService">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>-->
  <!--Exporter that exposes Hibernate 3.0's statistics service via JMX.
    <bean id="jmxExporter" class="org.springframework.jmx.export.MBeanExporter">
        <property name="autodetect" value="true"/>
    </bean>-->
  <bean id="hibernateCompositeDeleteListener" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.HibernateCompositeDeleteListener">
    <property name="listeners" ref="${bean.hibernateCompositeDeleteListenerListeners}"/>
  </bean>
  <bean id="hibernateCompositeInterceptor" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.HibernateCompositeInterceptor">
    <property name="listeners" ref="${bean.hibernateCompositeInterceptorListeners}"/>
  </bean>
  <bean id="hibernateCompositeInterceptorListeners" class="java.util.ArrayList">
    <constructor-arg>
      <list>
        <ref bean="metadataRepositoryDeleteListener"/>
        <ref bean="userAuthorityDeleteListener"/>
        <ref bean="objectPermissionsUserAuthorityDeleteListener"/>
        <ref bean="dataSnapshotReportUnitListener"/>
      </list>
    </constructor-arg>
  </bean>
  <bean id="hibernateCompositeSaveOrUpdateListener" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.HibernateCompositeSaveOrUpdateListener">
    <property name="listeners" ref="${bean.hibernateCompositeSaveOrUpdateListeners}"/>
  </bean>
  <bean id="hibernateCompositePostUpdateListener" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.HibernateCompositePostUpdateListener">
    <property name="listeners" ref="hibernateCompositePostUpdateListeners"/>
  </bean>
  <bean id="metadataRepositoryDeleteListener" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateResourceDeleteListener">
    <property name="persistentClassMappings" ref="persistentMappings"/>
  </bean>
  <bean id="olapConnectionRepositoryPostUpdateListener" class="com.jaspersoft.jasperserver.api.metadata.olap.service.impl.OlapConnectionHibernatePostUpdateListener">
    <property name="resourceFactory" ref="mappingResourceFactory"/>
    <property name="olapManagementServiceBean" value="olapManagementService"/>
  </bean>
  <bean id="userAuthorityDeleteListener" class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.HibernateUserAuthorityDeleteListener"></bean>
  <bean id="hibernateRoleDeleteListener" class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.HibernateRoleDeleteListener"/>
  <bean id="driverDeleteListener" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.DriverDeleteListener" depends-on="configurationBean">
    <!--the listener is not wired to the propertiesManagementService yet, because we dont want to use the service in the import/export context-->
    <property name="propertiesManagementServiceName" value="propertiesManagementService"/>
    <property name="jdbcDriversFolder" value="#{configurationBean.jdbcDriversFolderUri}"/>
  </bean>
  <!--Transaction manager for a single Hibernate SessionFactory (alternative to JTA)-->
  <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
  </bean>
  <bean id="objectFactory" class="com.jaspersoft.jasperserver.api.common.service.impl.ObjectFactoryImpl"/>
  <bean id="mappingResourceFactory" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.ResourceFactoryImpl">
    <property name="objectFactory" ref="objectFactory"/>
    <property name="implementationClassMappings">
      <map>
        <entry key="com.jaspersoft.jasperserver.api.common.domain.LogEvent" value="com.jaspersoft.jasperserver.api.common.domain.client.LogEventImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.FileResource" value="com.jaspersoft.jasperserver.api.metadata.common.domain.client.FileResourceImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.ContentResource" value="com.jaspersoft.jasperserver.api.metadata.common.domain.client.ContentResourceImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.JdbcReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.client.JdbcReportDataSourceImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.AwsReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.client.AwsReportDataSourceImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.JndiJdbcReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.client.JndiJdbcReportDataSourceImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.VirtualReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.client.VirtualReportDataSourceImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.BeanReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.client.BeanReportDataSourceImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.CustomReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.client.CustomReportDataSourceImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportUnit" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.client.ReportUnitImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.Query" value="com.jaspersoft.jasperserver.api.metadata.common.domain.client.QueryImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.InputControl" value="com.jaspersoft.jasperserver.api.metadata.common.domain.client.InputControlImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.ListOfValues" value="com.jaspersoft.jasperserver.api.metadata.common.domain.client.ListOfValuesImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.DataType" value="com.jaspersoft.jasperserver.api.metadata.common.domain.client.DataTypeImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.Folder" value="com.jaspersoft.jasperserver.api.metadata.common.domain.client.FolderImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.user.domain.User" value="com.jaspersoft.jasperserver.api.metadata.user.domain.client.UserImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.user.domain.Role" value="com.jaspersoft.jasperserver.api.metadata.user.domain.client.RoleImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.user.domain.Tenant" value="com.jaspersoft.jasperserver.api.metadata.user.domain.client.TenantImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.user.domain.ObjectPermission" value="com.jaspersoft.jasperserver.api.metadata.user.domain.client.ObjectPermissionImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.user.domain.ProfileAttribute" value="com.jaspersoft.jasperserver.api.metadata.user.domain.client.ProfileAttributeImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.MondrianXMLADefinition" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.client.MondrianXMLADefinitionImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.OlapUnit" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.client.OlapUnitImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.OlapClientConnection" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.client.OlapClientConnectionImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.XMLAConnection" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.client.XMLAConnectionImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.JdbcOlapDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.client.JdbcReportDataSourceImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.JndiJdbcOlapDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.client.JndiJdbcReportDataSourceImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.MondrianConnection" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.client.MondrianConnectionImpl"/>
        <entry key="com.jaspersoft.jasperserver.api.logging.access.domain.AccessEvent" value="com.jaspersoft.jasperserver.api.logging.access.domain.AccessEventImpl"/>
      </map>
    </property>
  </bean>
  <bean id="addMappingResourceFactory" class="com.jaspersoft.jasperserver.api.common.util.spring.GenericBeanUpdaterDefinition">
    <property name="order" value="10"/>
    <property name="beanName" value="persistentMappings"/>
    <property name="propertyName" value="implementationClassMappings"/>
    <property name="operation" value="append"/>
  </bean>
  <bean id="persistentMappings" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.ResourceFactoryImpl">
    <property name="objectFactory" ref="objectFactory"/>
    <property name="implementationClassMappings">
      <map>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.Resource" value="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoResource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.FileResource" value="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoFileResource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.ContentResource" value="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.ContentRepoFileResource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.DataSource" value="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.datasource.RepoReportDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.JdbcReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.datasource.RepoJdbcDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.AwsReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.datasource.RepoAwsDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.JndiJdbcReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.datasource.RepoJndiJdbcDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.VirtualReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.datasource.RepoVirtualDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.BeanReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.datasource.RepoBeanDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.CustomReportDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.datasource.RepoCustomDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportUnit" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.RepoReportUnit"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.Query" value="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoQuery"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.InputControl" value="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoInputControl"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.ListOfValues" value="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoListOfValues"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.Folder" value="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoFolder"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.ListOfValuesItem" value="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoListOfValuesItem"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.DataType" value="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoDataType"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.user.domain.ProfileAttribute" value="com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoProfileAttribute"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.user.domain.ObjectPermission" value="com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoObjectPermission"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.user.domain.User" value="com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoUser"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.user.domain.Role" value="com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoRole"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.user.domain.Tenant" value="com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate.RepoTenant"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.OlapUnit" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.impl.hibernate.RepoOlapUnit"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.OlapClientConnection" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.impl.hibernate.RepoOlapClientConnection"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.XMLAConnection" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.impl.hibernate.RepoXMLAConnection"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.OlapDataSource" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.impl.hibernate.RepoOlapDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.JdbcOlapDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.datasource.RepoJdbcDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.JndiJdbcOlapDataSource" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.impl.datasource.RepoJndiJdbcDataSource"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.MondrianConnection" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.impl.hibernate.RepoMondrianConnection"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.olap.domain.MondrianXMLADefinition" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.impl.hibernate.RepoMondrianXMLADefinition"/>
        <entry key="com.jaspersoft.jasperserver.api.logging.access.domain.AccessEvent" value="com.jaspersoft.jasperserver.api.logging.access.domain.hibernate.RepoAccessEvent"/>
      </map>
    </property>
  </bean>
  <bean id="addPersistentMappings" class="com.jaspersoft.jasperserver.api.common.util.spring.GenericBeanUpdaterDefinition">
    <property name="order" value="10"/>
    <property name="beanName" value="persistentMappings"/>
    <property name="propertyName" value="implementationClassMappings"/>
    <property name="operation" value="append"/>
  </bean>
  <bean id="hibernateRepositoryService" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryServiceImpl">
    <property name="auditContext" ref="${bean.auditContext}"/>
    <property name="accessContext" ref="${bean.accessContext}"/>
    <property name="sessionFactory" ref="sessionFactory"/>
    <property name="resourceFactory" ref="mappingResourceFactory"/>
    <property name="persistentClassMappings" ref="persistentMappings"/>
    <property name="validatorMappings" ref="validatorMappings"/>
    <property name="collatorFactory" ref="collatorFactory"/>
    <property name="repositoryListeners" ref="${bean.hibernateRepositoryListeners}"/>
    <property name="securityChecker" ref="repositoryServiceSecurityChecker"/>
    <property name="lockFoldersOnPathChange" value="true"/>
    <property name="queryModificationEvaluator" ref="queryModificationEvaluator"/>
    <property name="hibernateSaveUpdateDeleteListener" ref="${bean.themeHibernateListener}"/>
  </bean>
  <bean id="queryModificationEvaluator" class="com.jaspersoft.jasperserver.search.common.QueryModificationEvaluatorImpl"/>
  <bean id="hibernateRepositoryListeners" class="java.util.ArrayList">
    <constructor-arg>
      <list>
        <ref bean="schedulingReportDeleteListener"/>
        <ref bean="objectPermissionsRepositoryListener"/>
        <ref bean="engineCacheDeleteListener"/>
        <ref bean="dataSnapshotReportUnitCopyListener"/>
      </list>
    </constructor-arg>
  </bean>
  <bean id="validatorMappings" class="com.jaspersoft.jasperserver.api.common.service.impl.SimpleClassMappObjectFactory">
    <property name="mappings">
      <map>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.Resource" value-ref="defaultResourceValidator"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.VirtualReportDataSource" value-ref="virtualDataSourceValidator"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.common.domain.Folder" value-ref="folderValidator"/>
        <entry key="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportUnit" value-ref="reportUnitValidator"/>
      </map>
    </property>
  </bean>
  <bean id="baseResourceValidator" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.BaseResourceValidator" abstract="true">
    <property name="repositoryService">
      <ref bean="${bean.internalRepositoryService}"/>
    </property>
  </bean>
  <bean id="reportUnitValidator" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.ReportUnitValidator" parent="baseResourceValidator">
    <property name="servletContextInformation" ref="servletContextInformation"/>
  </bean>
  <bean id="defaultResourceValidator" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.DefaultResourceValidator" parent="baseResourceValidator"></bean>
  <bean id="virtualDataSourceValidator" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.VirtualDataSourceValidator" parent="baseResourceValidator"></bean>
  <bean id="folderValidator" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.FolderValidator" parent="baseResourceValidator"></bean>
  <bean id="servletContextInformation" class="com.jaspersoft.jasperserver.war.util.ServletContextWrapper">
    <property name="jspPathPrefix" value="/WEB-INF/jsp/"/>
  </bean>
  <!--repositoryService bean: bean was moved into sub-folder specific locations.-->
  <!--this is because import-export needs a different definition than js-war and unit-test-->
  <!--this bean is for a repository service connection without object level security-->
  <alias name="hibernateRepositoryService" alias="unsecureRepositoryService"/>
  <bean id="dataSourceServiceFactories" class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceFactoryImpl">
    <property name="factory">
      <bean class="com.jaspersoft.jasperserver.api.common.service.impl.BeanForInterfaceFactoryImpl"/>
    </property>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceDefinition">
    <property name="dataSourceInterface" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.JdbcReportDataSource"/>
    <property name="serviceBeanName" value="jdbcDataSourceServiceFactory"/>
    <property name="supportedQueryLanguages">
      <set>
        <value>sql</value>
        <value>SQL</value>
      </set>
    </property>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceDefinition">
    <property name="dataSourceInterface" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.AwsReportDataSource"/>
    <property name="serviceBeanName" value="awsDataSourceServiceFactory"/>
    <property name="supportedQueryLanguages">
      <set>
        <value>sql</value>
        <value>SQL</value>
      </set>
    </property>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceDefinition">
    <property name="dataSourceInterface" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.JndiJdbcReportDataSource"/>
    <property name="serviceBeanName" value="jndiJdbcDataSourceServiceFactory"/>
    <property name="supportedQueryLanguages">
      <set>
        <value>sql</value>
        <value>SQL</value>
      </set>
    </property>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceDefinition">
    <property name="dataSourceInterface" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.VirtualReportDataSource"/>
    <property name="serviceBeanName" value="virtualDataSourceServiceFactory"/>
    <property name="supportedQueryLanguages">
      <set>
        <value>sql</value>
        <value>SQL</value>
      </set>
    </property>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceDefinition">
    <property name="dataSourceInterface" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.BeanReportDataSource"/>
    <property name="serviceBeanName" value="beanDataSourceServiceFactory"/>
    <property name="anyLanguage" value="true"/>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceDefinition">
    <property name="dataSourceInterface" value="com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.CustomReportDataSource"/>
    <property name="serviceBeanName" value="customDataSourceServiceFactory"/>
    <property name="anyLanguage" value="true"/>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceDefinition">
    <property name="dataSourceInterface" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.MondrianConnection"/>
    <property name="serviceBeanName" value="olapConnectionService"/>
    <property name="supportedQueryLanguages">
      <set>
        <value>mdx</value>
        <value>MDX</value>
      </set>
    </property>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.DataSourceServiceDefinition">
    <property name="dataSourceInterface" value="com.jaspersoft.jasperserver.api.metadata.olap.domain.XMLAConnection"/>
    <property name="serviceBeanName" value="olapConnectionService"/>
    <property name="supportedQueryLanguages">
      <set>
        <value>mdx</value>
        <value>MDX</value>
      </set>
    </property>
  </bean>
  <bean id="dataSourceObjectPoolFactory" class="org.apache.commons.pool.impl.GenericObjectPoolFactory">
    <constructor-arg type="org.apache.commons.pool.PoolableObjectFactory">
      <null/>
    </constructor-arg>
    <constructor-arg type="int" value="5"/>
  </bean>
  <bean id="dbcpJdbcDataSourceFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.DbcpDataSourceFactory">
    <property name="objectPoolFactory">
      <ref bean="dataSourceObjectPoolFactory"/>
    </property>
    <property name="jdbcDriverService" ref="jdbcDriverService"/>
  </bean>
  <bean id="jdbcDataSourceServiceFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JdbcReportDataSourceServiceFactory">
    <property name="pooledJdbcDataSourceFactory">
      <ref bean="dbcpJdbcDataSourceFactory"/>
    </property>
    <property name="poolTimeout" value="900"/>
  </bean>
  <bean id="awsDataSourceServiceFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.AwsReportDataSourceServiceFactory" parent="jdbcDataSourceServiceFactory">
    <property name="awsDataSourceRecovery" ref="awsDataSourceRecovery"/>
  </bean>
  <bean id="virtualDataSourceServiceFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.VirtualReportDataSourceServiceFactory" parent="jdbcDataSourceServiceFactory">
    <property name="virtualDataSourceHandler" ref="virtualDataSourceHandler"/>
    <property name="awsDataSourceServiceFactory" ref="awsDataSourceServiceFactory"/>
  </bean>
  <bean id="jndiFallbackResolver" class="com.jaspersoft.jasperserver.api.metadata.common.util.JndiFallbackResolver">
    <property name="jndiFallbackProperties">
      <util:properties location="${resource.root}/js.jdbc.properties"/>
    </property>
  </bean>
  <bean id="jndiJdbcDataSourceServiceFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.JndiJdbcReportDataSourceServiceFactory" parent="jdbcDataSourceServiceFactory">
    <!--in the absence of a JNDI service, use jndiFallbackResolver look up the properties in the file.-->
    <property name="jndiFallbackResolver" ref="jndiFallbackResolver"/>
  </bean>
  <bean id="beanDataSourceServiceFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.BeanReportDataSourceServiceFactory"/>
  <bean id="customDataSourceServiceFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.CustomReportDataSourceServiceFactory">
    <property name="mappingResourceFactory" ref="mappingResourceFactory"/>
  </bean>
  <bean id="hibernateRepositoryCacheBean" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryCache">
    <property name="hibernateTemplate">
      <bean class="org.springframework.orm.hibernate3.HibernateTemplate">
        <property name="sessionFactory" ref="sessionFactory"/>
        <property name="flushModeName" value="FLUSH_EAGER"/>
      </bean>
    </property>
    <property name="repository">
      <ref bean="${bean.internalRepositoryService}"/>
    </property>
    <!--set 'false' to run findByCriteria() in normal mode, 'true ' to run in read-only mode [NO SQL UPDATE ALLOWED WHEN CALLING findByCriteria()-->
    <property name="findByCriteriaToReadOnly" value="false"/>
    <property name="transactionManager" ref="transactionManager"/>
  </bean>
  <!--FIXME remove this once locking is implemented (see Bugzilla 10218)-->
  <bean id="hibernateRepositoryCacheReattemptInterceptor" class="com.jaspersoft.jasperserver.api.common.util.spring.ReattemptMethodInterceptor">
    <property name="reattemptAttributes">
      <bean class="com.jaspersoft.jasperserver.api.common.util.spring.MapNameMethodAttributes">
        <property name="methodAttributes">
          <map>
            <entry key="cache">
              <bean class="com.jaspersoft.jasperserver.api.common.util.spring.ExceptionTypesReattemptAttributes">
                <property name="exceptionTypes">
                  <list>
                    <value>org.springframework.dao.DataIntegrityViolationException</value>
                  </list>
                </property>
                <property name="attemptCount" value="3"/>
              </bean>
            </entry>
          </map>
        </property>
      </bean>
    </property>
  </bean>
  <bean id="hibernateRepositoryCache" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="interceptorNames">
      <list>
        <idref local="hibernateRepositoryCacheReattemptInterceptor"/>
        <idref local="hibernateRepositoryCacheBean"/>
      </list>
    </property>
  </bean>
  <util:map id="engineExecutions" key-type="java.lang.String" value-type="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineServiceImpl.ReportExecutionStatus" map-class="java.util.concurrent.ConcurrentHashMap"/>
  <bean id="engineService" class="${bean.class.engineService}" destroy-method="release">
    <property name="auditContext" ref="${bean.auditContext}"/>
    <property name="repositoryService">
      <ref bean="${bean.repositoryService}"/>
    </property>
    <property name="dataSourceServiceFactories">
      <ref bean="dataSourceServiceFactories"/>
    </property>
    <property name="compiledReportsCache">
      <ref bean="${bean.engineService.compiledReportsCache}"/>
    </property>
    <property name="queryManipulator">
      <ref bean="CascadeQueryManipulator"/>
    </property>
    <property name="securityContextProvider" ref="${bean.securityContextProvider}"/>
    <property name="builtInParameterProviders" ref="builtInParameterProviders"/>
    <property name="reportParameterLabelKeyPrefix" value="net.sf.jasperreports.prompt.label."/>
    <property name="repositoryContextManager" ref="${bean.repositoryContextManager}"/>
    <property name="cacheableCompiledReports" ref="${bean.cacheableCompiledReports}"/>
    <property name="reportJarsProtectionDomainProvider" ref="reportsProtectionDomainProvider"/>
    <property name="inputControlsInfoExtractor" ref="inputControlsInfoRoutingExtractor"/>
    <property name="dataCacheProvider" ref="engineServiceDataCacheProvider"/>
    <property name="unsecureRepository" ref="unsecureRepositoryService"/>
    <property name="autoUpdateJRXMLs" value="false"/>
    <!--required for data snapshot persistence, which is turned off by default-->
    <property name="reportExecutionListenerFactories" ref="${bean.reportExecutionListenerFactories}"/>
    <property name="jasperReportsContext" ref="${bean.jasperReportsContext}"/>
  </bean>
  <util:list id="reportExecutionListenerFactories">
    <ref local="localeContextReportExecutionListenerFactory"/>
    <ref local="securityContextReportExecutionListenerFactory"/>
    <ref local="reportExecutionAuditListenerFactory"/>
  </util:list>
  <bean name="localeContextReportExecutionListenerFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.LocaleContextReportExecutionListenerFactory"/>
  <bean name="securityContextReportExecutionListenerFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.SecurityContextReportExecutionListenerFactory"/>
  <bean name="reportExecutionAuditListenerFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.ReportExecutionAuditListenerFactory">
    <property name="loggingContextProvider" ref="${bean.loggingContextProvider}"/>
    <property name="auditContext" ref="${bean.auditContext}"/>
  </bean>
  <bean id="reportLoadingService" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.ReportLoadingService">
    <property name="repositoryService" ref="${bean.repositoryService}"/>
    <property name="cacheableCompiledReports" ref="${bean.cacheableCompiledReports}"/>
    <property name="compiledReportsCache" ref="${bean.engineService.compiledReportsCache}"/>
    <property name="repositoryContextManager" ref="${bean.repositoryContextManager}"/>
    <property name="builtInParameterProviders" ref="builtInParameterProviders"/>
    <property name="reportParameterLabelKeyPrefix" value="net.sf.jasperreports.prompt.label."/>
  </bean>
  <bean name="inputControlsInfoRoutingExtractor" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.InputControlsInfoRoutingExtractor"></bean>
  <bean id="reportsProtectionDomainProvider" class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.PermissionsListProtectionDomainProvider">
    <property name="permissions">
      <list>
        <!--no permissions by default-->
        <!--sample permission: read and write to temp folder-->
        <!--<bean class="java.io.FilePermission">
                    <constructor-arg value="${java.io.tmpdir}${file.separator}*"/>
                    <constructor-arg value="read,write"/>
                </bean>-->
        <!--all permissions can be granted if desired-->
        <!--<bean class="java.security.AllPermission"/>-->
      </list>
    </property>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.ProtectionDomainJRAdapter" lazy-init="false" init-method="setJRProtectionDomain">
    <property name="provider" ref="reportsProtectionDomainProvider"/>
  </bean>
  <bean id="builtInParameterProviders" class="java.util.ArrayList">
    <constructor-arg>
      <list>
        <bean class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.UserProfileBuiltInParameterProvider"/>
      </list>
    </constructor-arg>
  </bean>
  <bean id="cacheableCompiledReports" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.CacheableCompiledReports">
    <property name="compiler">
      <ref local="engineService"/>
    </property>
  </bean>
  <bean id="profileAttributeServiceTarget" class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.ProfileAttributeServiceImpl">
    <property name="sessionFactory" ref="sessionFactory"/>
    <property name="objectMappingFactory" ref="mappingResourceFactory"/>
    <property name="persistentClassFactory" ref="persistentMappings"/>
    <property name="repositoryService" ref="unsecureRepositoryService"/>
    <property name="userAuthorityService" ref="${bean.internalUserAuthorityService}"/>
  </bean>
  <bean id="profileAttributeService" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="interceptorNames">
      <list>
        <idref bean="profileAttributeServiceMethodSecurityInterceptor"/>
        <idref bean="profileAttributeServiceTarget"/>
      </list>
    </property>
  </bean>
  <bean id="profileAttributeServiceMethodSecurityInterceptor" class="org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor">
    <property name="authenticationManager">
      <ref local="authenticationManager"/>
    </property>
    <property name="accessDecisionManager">
      <bean class="org.springframework.security.vote.AffirmativeBased">
        <property name="decisionVoters">
          <list>
            <ref local="roleVoter"/>
          </list>
        </property>
      </bean>
    </property>
    <property name="objectDefinitionSource">
      <value>com.jaspersoft.jasperserver.api.metadata.user.service.ProfileAttributeService.putProfileAttribute=ROLE_ADMINISTRATOR,ROLE_SUPERUSER</value>
    </property>
  </bean>
  <bean id="userAuthorityService" class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl">
    <property name="sessionFactory" ref="sessionFactory"/>
    <property name="objectMappingFactory" ref="mappingResourceFactory"/>
    <property name="persistentClassFactory" ref="persistentMappings"/>
    <property name="profileAttributeService" ref="profileAttributeService"/>
    <property name="defaultInternalRoles">
      <list>
        <value>ROLE_USER</value>
      </list>
    </property>
    <property name="tenantPersistenceResolver">
      <ref bean="${bean.hibernateTenantService}"/>
    </property>
    <property name="auditContext" ref="${bean.auditContext}"/>
    <property name="databaseCharactersEscapeResolver" ref="databaseCharactersEscapeResolver"/>
    <property name="usernameCaseSensitive" value="false"/>
    <!--Allows to change regular expression, which validates password complexity.
             You should also change "exception.remote.weak.password" message in
             jsexeptions_messages.properties file according to your password policy-->
    <property name="allowedPasswordPattern" value="^.*$"/>
  </bean>
  <bean id="tenantService" class="com.jaspersoft.jasperserver.api.metadata.tenant.service.impl.TenantServiceImpl">
    <property name="sessionFactory" ref="sessionFactory"/>
    <property name="objectMappingFactory" ref="mappingResourceFactory"/>
    <property name="persistentClassFactory" ref="persistentMappings"/>
    <property name="userOrgIdDelimiter">
      <value>|</value>
    </property>
    <property name="databaseCharactersEscapeResolver" ref="databaseCharactersEscapeResolver"/>
    <property name="tenantCaseSensitive" value="false"/>
  </bean>
  <bean id="objectPermissionServiceTarget" class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.ObjectPermissionServiceImpl">
    <property name="sessionFactory" ref="sessionFactory"/>
    <property name="objectMappingFactory" ref="mappingResourceFactory"/>
    <property name="persistentClassFactory" ref="persistentMappings"/>
    <property name="repositoryService" ref="unsecureRepositoryService"/>
    <property name="userAuthorityService" ref="${bean.internalUserAuthorityService}"/>
    <property name="effectiveAclsResolver">
      <bean class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.ObjectPermissionEffectiveAclsResolver"/>
    </property>
    <property name="basicAclEntryCache">
      <bean class="org.springframework.security.acl.basic.cache.EhCacheBasedAclEntryCache">
        <property name="cache">
          <ref local="aclCache"/>
        </property>
      </bean>
    </property>
    <property name="auditContext" ref="${bean.auditContext}"/>
  </bean>
  <bean id="permissionsPrefetcher" class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.PermissionsPrefetcher">
    <property name="sessionFactory" ref="sessionFactory"/>
    <property name="objectMappingFactory" ref="mappingResourceFactory"/>
    <property name="persistentClassFactory" ref="persistentMappings"/>
    <property name="repositoryService" ref="${bean.internalRepositoryService}"/>
    <property name="objectPermissionService" ref="objectPermissionServiceTarget"/>
  </bean>
  <!--Setup a cache for ACLs-->
  <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" depends-on="sysProperties">
    <property name="configLocation">
      <value>${resource.root}/ehcache.xml</value>
    </property>
  </bean>
  <bean id="aclCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
    <property name="cacheManager">
      <ref local="cacheManager"/>
    </property>
    <property name="cacheName">
      <value>aclCache</value>
    </property>
  </bean>
  <bean id="objectPermissionServiceTransactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <property name="transactionManager" ref="transactionManager"/>
    <property name="transactionAttributes">
      <props>
        <prop key="update*">PROPAGATION_REQUIRED</prop>
        <prop key="get*">PROPAGATION_REQUIRED</prop>
        <prop key="find*">PROPAGATION_REQUIRED</prop>
        <prop key="load*">PROPAGATION_REQUIRED</prop>
        <prop key="put*">PROPAGATION_REQUIRED</prop>
        <prop key="delete*">PROPAGATION_REQUIRED</prop>
        <prop key="*">PROPAGATION_SUPPORTS</prop>
      </props>
    </property>
  </bean>
  <bean id="objectPermissionService" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="interceptorNames">
      <list>
        <idref local="objectPermissionServiceTransactionInterceptor"/>
        <idref local="objectPermissionServiceTarget"/>
      </list>
    </property>
  </bean>
  <bean id="objectPermissionsRepositoryListener" class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.ObjectPermissionsRepositoryListener">
    <property name="permissionsService" ref="${bean.objectPermissionServiceInternal}"/>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.metadata.common.service.ResourceEventListenerProcessor" lazy-init="false">
    <property name="registry" ref="metadataRepositoryDeleteListener"/>
    <property name="listenerBeanName" value="objectPermissionsRepositoryListener"/>
  </bean>
  <bean id="objectPermissionsUserAuthorityDeleteListener" class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.HibernateObjectPermissionUserAuthorityDeleteListener">
    <property name="objectPermissionsServiceBeanName" value="${bean.objectPermissionServiceInternal}"/>
  </bean>
  <!--i18n-->
  <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="useCodeAsDefaultMessage" value="true"/>
    <property name="cacheSeconds" value="-1"/>
    <property name="fallbackToSystemLocale" value="false"/>
    <property name="basenames">
      <list>
        <value>${resource.root}/bundles/jasperserver_messages</value>
        <value>${resource.root}/bundles/jasperserver_config</value>
        <value>${resource.root}/bundles/jpivot_messages</value>
        <value>${resource.root}/internal/jpivot_internal_messages</value>
        <value>${resource.root}/internal/jasperserver</value>
        <value>${resource.root}/bundles/calendar</value>
        <value>${resource.root}/bundles/jsexceptions_messages</value>
        <value>${resource.root}/bundles/scheduling_ws</value>
        <value>${resource.root}/bundles/ja-pro_messages</value>
        <value>${resource.root}/internal/ja-pro_internal_messages</value>
        <value>${resource.root}/bundles/ja_mondrian_messages</value>
        <value>${resource.root}/bundles/mondrian_exception_messages</value>
        <value>${resource.root}/bundles/security</value>
        <value>${resource.root}/bundles/logger_descriptions</value>
        <value>${resource.root}/bundles/jasperreports_messages</value>
      </list>
    </property>
  </bean>
  <!--JasperReportsContext-->
  <bean id="jasperReportsContext" class="net.sf.jasperreports.engine.SimpleJasperReportsContext">
    <property name="extensions">
      <map>
        <entry key="net.sf.jasperreports.engine.util.MessageProviderFactory">
          <list>
            <ref bean="messageProviderFactory"/>
          </list>
        </entry>
      </map>
    </property>
  </bean>
  <bean id="messageProviderFactory" class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.MessageSourceMessageProviderFactory">
    <property name="messageSource">
      <ref bean="messageSource"/>
    </property>
    <property name="baseNames">
      <set>
        <value>net.sf.jasperreports.components.sort.FilterTypeTextOperatorsEnum</value>
        <value>net.sf.jasperreports.components.sort.FilterTypeDateOperatorsEnum</value>
        <value>net.sf.jasperreports.components.sort.FilterTypeNumericOperatorsEnum</value>
        <value>net.sf.jasperreports.components.sort.FilterTypeBooleanOperatorsEnum</value>
        <value>net.sf.jasperreports.components.headertoolbar.actions.messages</value>
        <value>net.sf.jasperreports.components.headertoolbar.messages</value>
        <value>net.sf.jasperreports.components.messages</value>
        <value>jasperreports_messages</value>
        <!--<value>net.sf.jasperreports.web.actions.messages</value>-->
      </set>
    </property>
  </bean>
  <bean id="messagesCalendarFormatProvider" class="com.jaspersoft.jasperserver.war.util.MessagesCalendarFormatProvider">
    <property name="datePatternKey" value="date.format"/>
    <property name="calendarDatePatternKey" value="calendar.date.format"/>
    <property name="datetimePatternKey" value="datetime.format"/>
    <property name="timePatternKey" value="time.format"/>
    <!--<property name="calendarDatetimePatternKey" value="calendar.datetime.format"/>-->
    <property name="calendarDatetimeSeparatorKey" value="calendar.datetime.separator"/>
    <property name="calendarTimePatternKey" value="calendar.time.format"/>
    <property name="lenientFormats" value="false"/>
  </bean>
  <!--handle file uploads using commons-fileupload
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>-->
  <bean id="engineCacheDeleteListener" class="com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.EngineCacheDeleteListener">
    <property name="engine" ref="${bean.engineCacheDeleteListener.engine}"/>
  </bean>
  <bean class="com.jaspersoft.jasperserver.api.metadata.common.service.ResourceEventListenerProcessor" lazy-init="false">
    <property name="registry" ref="metadataRepositoryDeleteListener"/>
    <property name="listenerBeanName" value="engineCacheDeleteListener"/>
  </bean>
  <bean id="securityContextProviderTarget" class="com.jaspersoft.jasperserver.api.engine.common.service.impl.AcegiSecurityContextProvider">
    <property name="userDetailsService" ref="${bean.internalUserAuthorityService}"/>
    <property name="userAuthorityService" ref="${bean.internalUserAuthorityService}"/>
  </bean>
  <bean id="securityContextProvider" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="interceptorNames">
      <list>
        <idref local="securityContextProviderTarget"/>
        <!--<ref bean="${bean.securityContextProviderTarget}"/>-->
      </list>
    </property>
  </bean>
  <bean id="hyperlinkDateParameterFormatter" class="com.jaspersoft.jasperserver.war.util.HyperlinkDateParameterFormatter">
    <property name="dateConverter" ref="dateDataConverter"/>
    <property name="timestampConverter" ref="timestampDataConverter"/>
    <property name="timeConverter" ref="timeDataConverter"/>
  </bean>
  <bean id="encodingProvider" class="com.jaspersoft.jasperserver.api.common.util.StaticCharacterEncodingProvider">
    <constructor-arg value="UTF-8"/>
  </bean>
  <bean id="characterEncodingFilter" class="com.jaspersoft.jasperserver.war.util.CharacterEncodingFilter">
    <property name="encodingProvider" ref="encodingProvider"/>
    <property name="encodingRequestAttrName" value="com.jaspersoft.ji.characterEncoding"/>
  </bean>
  <bean id="sessionDecoratorFilter" class="com.jaspersoft.jasperserver.war.util.SessionDecoratorFilter"></bean>
  <!--Make maxSize bigger if you are displaying dashboards with 10+ frames and you are getting image loading problems-->
  <bean id="jasperPrintAccessor" class="com.jaspersoft.jasperserver.war.util.LRUSessionObjectAccessor">
    <property name="listSessionName" value="jasperPrintSerie"/>

Dashboard's max frames

    <property name="maxSize" value="10"/>

    <property name="listener">
      <bean class="com.jaspersoft.jasperserver.war.util.SessionReportListener">
        <property name="virtualizerFactory">
          <ref local="fileVirtualizerFactory"/>
        </property>
      </bean>
    </property>
  </bean>
  <bean id="baseReportExecutionHyperlinkProducer" class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.BaseReportExecutionHyperlinkProducerFactory" abstract="true">
    <property name="flowControllerMapping" value="/flow.html"/>
    <property name="reportExecutionFlowId" value="viewReportFlow"/>
    <property name="hyperlinkParameterReportUnit" value="_report"/>
    <property name="urlParameterReportUnit" value="reportUnit"/>
    <property name="hyperlinkParameterOutputChannel" value="_output"/>
    <property name="urlParameterOutputChannel" value="output"/>
    <property name="hyperlinkParameterPageIndex" value="_page"/>
    <property name="urlParameterPageIndex" value="pageIndex"/>
    <property name="hyperlinkParameterAnchor" value="_anchor"/>
    <property name="urlParameterAnchor" value="anchor"/>
    <property name="dateFormatter" ref="hyperlinkDateParameterFormatter"/>
    <property name="encodingProvider" ref="encodingProvider"/>
  </bean>
  <bean id="reportExecutionHyperlinkProducer" class="com.jaspersoft.jasperserver.war.action.hyperlinks.ReportExecutionHyperlinkProducerFactory" parent="baseReportExecutionHyperlinkProducer">
    <property name="attributeReportLocale" value="reportExecutionLocale"/>
    <property name="urlParameterReportLocale" value="reportLocale"/>
  </bean>
  <bean id="localPageHyperlinkProducerFactory" class="com.jaspersoft.jasperserver.war.action.hyperlinks.LocalPageHyperlinkProducerFactory">
    <property name="navigateToPageFunction" value="navigateToReportPage"/>
  </bean>
  <bean id="localAnchorHyperlinkProducerFactory" class="com.jaspersoft.jasperserver.war.action.hyperlinks.LocalAnchorHyperlinkProducerFactory">
    <property name="jasperPrintNameRequestAttribute" value="jasperPrintName"/>
    <property name="flowControllerMapping" value="/flow.html"/>
    <property name="navigateEventID" value="navigate"/>
    <property name="pageIndexParameter" value="pageIndex"/>
    <property name="jasperPrintAccessor" ref="jasperPrintAccessor"/>
  </bean>
  <bean id="viewReportHyperlinkProducerFactory" class="com.jaspersoft.jasperserver.war.action.hyperlinks.MapHyperlinkProducerFactoryFlowFactory">
    <property name="flowHyperlinkProducers">
      <map>
        <entry key="ReportExecution" value-ref="${bean.reportExecutionHyperlinkProducer}"/>
        <entry key="ReportInteraction" value-ref="${bean.reportExecutionHyperlinkProducer}"/>
        <entry key="LocalPage" value-ref="localPageHyperlinkProducerFactory"/>
        <entry key="LocalAnchor" value-ref="localAnchorHyperlinkProducerFactory"/>
      </map>
    </property>
  </bean>
  <bean id="swfReportExecutionHyperlinkProducer" class="com.jaspersoft.jasperserver.war.action.hyperlinks.ReportExecutionHyperlinkProducerFactory" parent="reportExecutionHyperlinkProducer">
    <property name="defaultOutputChannel" value="swf"/>
  </bean>
  <bean id="swfReportHyperlinkProducerFactory" class="com.jaspersoft.jasperserver.war.action.hyperlinks.MapHyperlinkProducerFactoryFlowFactory">
    <property name="flowHyperlinkProducers">
      <map>
        <entry key="ReportExecution" value-ref="${bean.swfReportExecutionHyperlinkProducer}"/>
      </map>
    </property>
  </bean>
  <bean id="collatorFactory" class="com.jaspersoft.jasperserver.api.common.util.DefaultCollatorFactory"/>

configurationBean

  <bean id="configurationBean" class="com.jaspersoft.jasperserver.war.common.ConfigurationBean">

Constants

   <!--constants-->
    <property name="paginatorItemsPerPage" value="20"/>
    <property name="paginatorPagesRange" value="3"/>
    <property name="reportLevelConfigurable" value="false"/>
    <property name="paginationForSinglePageReport" value="false"/>
    <property name="userItemsPerPage" value="45"/>
    <property name="roleItemsPerPage" value="45"/>
    <property name="tenantItemsPerPage" value="45"/>
    <property name="calendarInputJsp" value="/WEB-INF/jsp/modules/CalendarInput.jsp"/>
    <property name="userNameSeparator" value="|"/>
    <!--Must contain userNameSeparator as well-->
    <property name="userNameNotSupportedSymbols">
      <value>[\|\s`"'~!#\u0024%\^&amp;,*\+=;:?\&lt;\>}{)(\]\[/]</value>
    </property>
    <property name="roleNameNotSupportedSymbols">
      <value>[\|\s`"'~!#\u0024%\^&amp;,*\+=;:?\&lt;\>}{)(\]\[/\\]</value>
    </property>
    <property name="emailRegExpPattern">
      <value>^([\p{L}\p{M}\p{N}!#$%&amp;'*+-/=?^_`{}|~]+|"[\p{L}\p{M}\p{N}_%'-+\s\(\)&lt;>\[\]:,;@!#$%&amp;'*+-/=?^_`{}|\s~\.]+")(\.([\p{L}\p{M}\p{N}_%'-+]+|"[\p{L}\p{M}\p{N}_%'-+\s\(\)&lt;>\[\]:,;@!#$%&amp;'*+-/=?^_`{}|\s~\.]+]*"))*@((\[(\d{1,3}\.){3,3}\d{1,3}\])|(([\p{L}\p{M}\p{N}-]+\.)*[\p{L}\p{M}\p{N}-]+))$</value>
    </property>

defaultRole

    <property name="defaultRole" value="ROLE_USER"/>

    <property name="passwordMask" value="*"/>
    <property name="viewReportsFilterList">
      <list>
        <value>^(/organizations/[^/]+)*(/temp/|/adhoc/topics/)</value>
        <value>^/public/adhoc/topics/</value>
        <value>^(/organizations/[^/]+)*(/organizations/org_template/)</value>
      </list>
    </property>
    <property name="outputFolderFilterList">
      <list>
        <value>(/organizations/[^/]+)*/temp(/[^/]+)*</value>
      </list>
    </property>
    <property name="tenantNameNotSupportedSymbols">
      <value>[\|&amp;+*?\&lt;\>/\\]</value>
    </property>
    <property name="tenantIdNotSupportedSymbols">
      <value>[~!\+\-#\$%\^\|\s]</value>
    </property>
    <property name="resourceIdNotSupportedSymbols">
      <value>[~!#\$%^|\s`@&amp;*()\-+={}\[\]:;"'\&lt;\>,?/\|\\]</value>
    </property>
    <property name="publicFolderUri">
      <value>/public</value>
    </property>

Application Themes

    <!--Application Themes-->
    <property name="themeDefaultName" value="default"/>
    <property name="themeFolderName" value="/themes"/>
    <property name="themeServletPrefix" value="_themes"/>

Date formats

    <!--Date formats-->
    <property name="dateFormat" value="M/d/yyyy"/>
    <property name="currentYearDateFormat" value="MMMMM d"/>
    <property name="timestampFormat" value="M/d/yyyy hh:mmaaa"/>
    <property name="timeFormat" value="hh:mmaaa"/>
    <property name="entitiesPerPage" value="20"/>
    <property name="tempFolderUri" value="/temp"/>
    <property name="organizationsFolderUri" value="/organizations"/>
    <property name="jdbcDriversFolderUri" value="/jdbc"/>
  </bean>

  <!--report virtualizers-->
  <bean id="fileVirtualizerFactory" class="com.jaspersoft.jasperserver.api.engine.common.service.impl.FileVirtualizerFactory">
    <property name="maxSize" value="300"/>
    <property name="directory" value="${java.io.tmpdir}"/>
  </bean>
  <!--comment the above bean and uncomment this one to use a shared virtualizer-->
  <!--<bean id="fileVirtualizerFactory" class="com.jaspersoft.jasperserver.api.engine.common.service.impl.SharedVirtualizerStoreFactory">
        <property name="maxSize" value="5000"></property>
        <property name="storeFactory">
            <bean class="net.sf.jasperreports.engine.util.SwapFileVirtualizerStoreFactory">
                <property name="directory" value="${java.io.tmpdir}"/>
                <property name="blockSize" value="4096"/>
                <property name="minGrowCount" value="64"/>
            </bean>
        </property>
    </bean>-->

  <!--resources bean for jpivot-->
  <bean id="jpivot-resources" class="com.tonbeller.tbutils.res.Resources">
    <property name="resourceBundle">
      <ref bean="messageSource"/>
    </property>
    <property name="encodingProvider">
      <ref bean="encodingProvider"/>
    </property>
  </bean>
  <!--updater definitions so other bean files can add items to beans defined here,
         instead of running tweakWar.js or manually hacking-->
  <!--add hibernate hbm.xml-->
  <bean id="addHibernateConfig" class="com.jaspersoft.jasperserver.api.common.util.spring.GenericBeanUpdaterDefinition">
    <property name="order" value="10"/>
    <property name="beanName" value="sessionFactory"/>
    <property name="propertyName" value="mappingResources"/>
    <property name="operation" value="append"/>
  </bean>
  <!--map an interface to a client impl-->
  <bean id="mapClientClass" class="com.jaspersoft.jasperserver.api.common.util.spring.GenericBeanUpdaterDefinition">
    <property name="order" value="10"/>
    <property name="beanName" value="mappingResourceFactory"/>
    <property name="propertyName" value="implementationClassMappings"/>
    <property name="operation" value="append"/>
  </bean>
  <!--map an interface to a repo impl-->
  <bean id="mapRepoClass" class="com.jaspersoft.jasperserver.api.common.util.spring.GenericBeanUpdaterDefinition">
    <property name="order" value="10"/>
    <property name="beanName" value="persistentMappings"/>
    <property name="propertyName" value="implementationClassMappings"/>
    <property name="operation" value="append"/>
  </bean>
  <!--add a message catalog-->
  <bean id="addMessageCatalog" class="com.jaspersoft.jasperserver.api.common.util.spring.GenericBeanUpdaterDefinition">
    <property name="order" value="10"/>
    <property name="beanName" value="messageSource"/>
    <property name="propertyName" value="basenames"/>
    <property name="operation" value="append"/>
  </bean>

Export Parameters

XLS (and ODS) Export Parameters

JasperServer is shipped with a default configuration that produces a data-centric Excel output where graphic elements are ignored, spacer cells are removed and the data type of cells is preserved.

Please see the article, XLS Export Parameters in JasperReports Server, for more details.

  <!--export parameters-->
  <bean id="xlsExportParameters" class="com.jaspersoft.jasperserver.api.engine.jasperreports.common.XlsExportParametersBean">
    <property name="detectCellType" value="true"/>
    <property name="onePagePerSheet" value="false"/>
    <property name="removeEmptySpaceBetweenRows" value="true"/>
    <property name="removeEmptySpaceBetweenColumns" value="true"/>
    <property name="whitePageBackground" value="false"/>
    <property name="ignoreGraphics" value="true"/>
    <property name="collapseRowSpan" value="true"/>
    <property name="ignoreCellBorder" value="true"/>
    <property name="fontSizeFixEnabled" value="true"/>
    <property name="maximumRowsPerSheet" value="0"/>
    <property name="xlsFormatPatternsMap" ref="formatPatternsMap"/>
  </bean>
  <bean id="odsExportParameters" class="com.jaspersoft.jasperserver.api.engine.jasperreports.common.OdsExportParametersBean" parent="xlsExportParameters"></bean>

CSV Export Parameters

Please see the article, CSV Export Parameters in JasperReports Server, for more details.

By the very nature of comma separated values (CSV) format, there is very little, save for the delimiter symbol, that can be configured. If more parameters are exposed, they will be documented above.

  <bean id="csvExportParameters"
        class="com.jaspersoft.jasperserver.api.engine.jasperreports.common.CsvExportParametersBean">
    <property name="fieldDelimiter" value=","/>
  </bean>

PDF Export Parameters

  <bean id="pdfExportParameters" class="com.jaspersoft.jasperserver.api.engine.jasperreports.common.PdfExportParametersBean">
    <property name="localizedFontMap" ref="localePdfFontMap"/>
  </bean>

TXT Export Parameters

  <bean id="txtExportParameters" class="com.jaspersoft.jasperserver.api.engine.jasperreports.common.TxtExportParametersBean">
    <property name="characterWidth" value="10"/>
    <property name="characterHeight" value="10"/>
    <property name="pageHeight" value="100"/>
    <property name="pageWidth" value="80"/>
  </bean>
  <util:map id="formatPatternsMap">
    <!--entry key="$ #,##0.00" value="$ #,##0.00"/-->
  </util:map>
  <!--end export parameters-->

  <import resource="pdfFontBeans.xml"/>
  <bean id="userTimeZonesList" class="com.jaspersoft.jasperserver.war.common.JdkTimeZonesList">
    <property name="timeZonesIds">
      <list>
        <value>America/Los_Angeles</value>
        <value>America/Denver</value>
        <value>America/Chicago</value>
        <value>America/New_York</value>
        <value>Europe/London</value>
        <value>Europe/Berlin</value>
        <value>Europe/Bucharest</value>
      </list>
    </property>
  </bean>
  <bean id="roleManagerService" class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.RoleManagerServiceImpl">
    <property name="sessionFactory" ref="sessionFactory"/>
    <property name="transactionManager" ref="transactionManager"/>
    <property name="userService">
      <ref bean="${bean.userAuthorityService}"/>
    </property>
  </bean>
  <bean id="standardUserPersistenceHandler" class="com.jaspersoft.jasperserver.api.engine.common.user.StandardUserPersistenceHandler">
    <property name="securityContextProvider" ref="${bean.securityContextProvider}"/>
    <property name="userPersistenceService" ref="${bean.internalUserAuthorityService}"/>
  </bean>
  <!--bean definition for action model service-->
  <bean id="actionModelService" class="com.jaspersoft.jasperserver.api.engine.common.service.impl.ActionModelServiceImpl" lazy-init="false">
    <property name="actionModelXmlURIStub" value="${resource.root}/actionModel"/>
    <property name="actionModelTypes">
      <list>
        <value>adhocIntelligentChart</value>
        <value>adhocChart</value>
        <value>adhocCrosstab</value>
        <value>adhocTable</value>
        <value>navigation</value>
        <value>dashboard</value>
        <value>search</value>
        <value>viewReport</value>
      </list>
    </property>
  </bean>
  <!--bean definition for primary navigation-->
  <bean id="navigationActionModelSupport" class="com.jaspersoft.jasperserver.api.engine.common.service.impl.NavigationActionModelSupport" lazy-init="false" scope="singleton">
    <property name="proVersion" value="${isProVersion}"/>
  </bean>
  <bean id="genericActionModelBuilder" class="com.jaspersoft.jasperserver.war.action.GenericActionModelBuilder" lazy-init="false" scope="singleton">
    <property name="proVersion" value="${isProVersion}"/>
  </bean>
  <bean id="userManagerService" class="com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserManagerServiceImpl">
    <property name="sessionFactory" ref="sessionFactory"/>
    <property name="userService">
      <ref bean="${bean.userAuthorityService}"/>
    </property>
  </bean>
  <bean id="databaseCharactersEscapeResolver" class="com.jaspersoft.jasperserver.api.metadata.common.util.DatabaseCharactersEscapeResolver">
    <property name="charactersEscapeMaps">
      <util:map>
        <entry key="default" value-ref="defaultCharacterEscape"/>
      </util:map>
    </property>
    <property name="dialect">
      <value>${metadata.hibernate.dialect}</value>
    </property>
  </bean>
  <util:map id="defaultCharacterEscape" key-type="java.lang.String" value-type="java.lang.String">
    <entry key="\" value="!\"/>
    <entry key="!" value="!!"/>
    <entry key="%" value="!%"/>
  </util:map>
  <util:list id="roleAccessUrisList">
    <bean class="com.jaspersoft.jasperserver.war.common.RoleAccessUris">
      <property name="roleName" value="ROLE_ADMINISTRATOR"/>
      <property name="uris">
        <list>
          <bean class="com.jaspersoft.jasperserver.war.common.UriDescriptor">
            <property name="uri" value="/temp"/>
            <property name="absolute" value="false"/>
          </bean>
        </list>
      </property>
    </bean>
  </util:list>
  <bean id="roleAccessUrisResolver" class="com.jaspersoft.jasperserver.war.common.RoleAccessUrisResolver">
    <property name="roleAccessUrisList" ref="${bean.roleAccessUrisList}"/>
  </bean>

Mail Services

  <bean id="mailSenderService" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="${report.scheduler.mail.sender.host}"/>
    <property name="username" value="${report.scheduler.mail.sender.username}"/>
    <property name="password" value="${report.scheduler.mail.sender.password}"/>
    <property name="protocol" value="${report.scheduler.mail.sender.protocol}"/>
    <property name="port" value="${report.scheduler.mail.sender.port}"/>
    <property name="javaMailProperties">
      <props>
        <prop key="mail.smtp.auth">false</prop>
      </props>
    </property>
  </bean>
  <bean id="mailService" class="com.jaspersoft.jasperserver.war.mail.impl.MailServiceImpl">
    <property name="javaMailSender" ref="mailSenderService"/>
    <property name="mailFromAddress" value="${report.scheduler.mail.sender.from}"/>
    <property name="userAuthorityService" ref="${bean.internalUserAuthorityService}"/>
    <property name="encodingProvider" ref="encodingProvider"/>
  </bean>

  <bean id="uiExceptionRouter" class="com.jaspersoft.jasperserver.war.action.UIExceptionRouterImpl"/>
  <bean id="emailInputValidator" class="com.jaspersoft.jasperserver.core.util.validators.EmailInputValidator">
    <property name="pattern">
      <bean class="java.util.regex.Pattern" factory-method="compile">
        <constructor-arg>
          <util:property-path path="configurationBean.emailRegExpPattern"/>
        </constructor-arg>
      </bean>
    </property>
  </bean>
  <!--a hibernate listener to cactch updates to Global Properties resource-->
  <bean id="propertiesSaveOrUpdateListener" class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.PropertiesSaveOrUpdateListener">
    <!--the listener is not wired to the propertiesManagementService yet, because we dont want to use the service in the import/export context-->
    <!--property name="propertiesManagementServiceName" value="propertiesManagementService"/-->
  </bean>
  <!--setting system properties needed for EHCache (or anything else)
         EHCache can use prop placeholders like ${blah.blah} in its conf files; these are replaced
         with the value of the corresponding system property.
         That means that the sys property has to be set before you init the EhCacheManagerFactoryBean.
         To ensure this gets done in the right order, add depends-on="sysProperties" to your bean definition.
         See the cacheManager bean in this file for an example.-->
  <bean id="sysProperties" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetObject" value="#{@systemProperties}"/>
    <property name="targetMethod" value="putAll"/>
    <property name="arguments">
      <util:properties>
        <prop key="ehcache.disk.store.dir">#{ systemProperties['java.io.tmpdir'] }</prop>
      </util:properties>
    </property>
  </bean>
  <bean id="diagnosticAttributeBuilder" class="com.jaspersoft.jasperserver.api.logging.diagnostic.helper.DiagnosticAttributeBuilder">
    <property name="messageSource" ref="messageSource"/>
  </bean>
  <util:map id="applyClientTimezoneFormatting" key-type="java.lang.String" value-type="java.lang.Boolean">
    <entry key="java.util.Date" value="false"/>
    <entry key="java.sql.Date" value="false"/>
    <entry key="java.sql.Timestamp" value="true"/>
    <entry key="java.sql.Time" value="true"/>
  </util:map>
  <bean id="jdbcDriverService" class="com.jaspersoft.jasperserver.api.common.service.impl.JdbcDriverServiceImpl">
    <!--<property name="repository" ref="${bean.internalRepositoryService}"/>-->
    <property name="repository" ref="hibernateRepositoryService"/>
    <property name="systemClassLoaderFirst" value="false"/>
    <property name="jdbcDriversFolder" value="#{configurationBean.jdbcDriversFolderUri}"/>
  </bean>
  <bean id="awsDataSourceRecovery" class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.AwsDataSourceRecovery">
    <property name="awsRegions" ref="awsRegions"/>
    <property name="awsDataSourceActiveStatus" value="available"/>
    <property name="awsProperties" ref="awsProperties"/>
    <property name="messageSource" ref="messageSource"/>
    <property name="awsEc2MetadataClient" ref="awsEc2MetadataClient"/>
  </bean>
  <bean id="awsEc2MetadataClient" class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.AwsEc2MetadataClient">
    <property name="awsRegions" ref="awsRegions"/>
  </bean>
  <bean id="awsProperties" class="com.jaspersoft.jasperserver.api.engine.jasperreports.util.AwsProperties">
    <property name="securityGroupChangesEnabled" value="${aws.db.security.group.changes.enabled}"/>
    <property name="securityGroupName" value="${aws.db.security.group.name}"/>
    <property name="securityGroupDescription" value="${aws.db.security.group.description}"/>
    <property name="securityGroupIngressPublicIp" value="${aws.db.security.group.ingressPublicIp}"/>
    <property name="suppressEc2CredentialsWarnings" value="${aws.db.security.group.suppressEc2CredentialsWarnings}"/>
    <property name="awsEc2MetadataClient" ref="awsEc2MetadataClient"/>
    <property name="messageSource" ref="messageSource"/>
  </bean>
  <util:list id="awsRegions">
    <value>us-east-1.amazonaws.com</value>
    <value>us-west-2.amazonaws.com</value>
    <value>us-west-1.amazonaws.com</value>
    <value>eu-west-1.amazonaws.com</value>
    <value>ap-southeast-1.amazonaws.com</value>
    <value>ap-southeast-2.amazonaws.com</value>
    <value>ap-northeast-1.amazonaws.com</value>
    <value>sa-east-1.amazonaws.com</value>
  </util:list>
</beans>

See also...

Feedback
randomness