<?xml version="1.0" encoding="UTF-8"?>
<pentaho-system>

	<log-file>server.log</log-file>
	<log-level>DEBUG</log-level>

	<objects>
		<ISolutionEngine scope="request">org.pentaho.core.solution.SolutionEngine</ISolutionEngine>
		<ISolutionRepository scope="session">org.pentaho.repository.filebased.solution.SolutionRepository</ISolutionRepository>
		<!--  Use the dbbased solution repository to enable ACLs per repository file -->
		<!--  <ISolutionRepository scope="session">com.pentaho.repository.dbbased.solution.SolutionRepository</ISolutionRepository> -->
		<IContentRepository scope="session">org.pentaho.repository.content.ContentRepository</IContentRepository>
		<IRuntimeRepository scope="session">org.pentaho.repository.runtime.RuntimeRepository</IRuntimeRepository>
		<IAuditEntry scope="session">org.pentaho.core.audit.AuditFileEntry</IAuditEntry>
		<IUITemplater scope="global">org.pentaho.core.util.UIUtil</IUITemplater>
		<IUserFilesComponent scope="session">org.pentaho.ui.component.UserFilesComponent</IUserFilesComponent>
		<IBackgroundExecution scope="global">org.pentaho.plugin.quartz.SecurityAwareBackgroundExecutionHelper</IBackgroundExecution>
		<ISubscriptionRepository scope="global">com.pentaho.repository.subscribe.SubscriptionRepository</ISubscriptionRepository>
		<ICwmSchemaFactory scope="session">org.pentaho.repository.cwm.PlatformCWMSchemaFactory</ICwmSchemaFactory>	
		<!--  Use this CwmSchemaFactory if ACLs are required for Adhoc and MQL -->
		<!--  <ICwmSchemaFactory scope="session">org.pentaho.repository.cwm.SecurityAwareCwmSchemaFactory</ICwmSchemaFactory> -->
		<file scope="session" interface="org.pentaho.core.repository.IContentItem">org.pentaho.core.output.FileOutputHandler</file>
		<contentrepo scope="session" interface="org.pentaho.core.repository.IContentItem">org.pentaho.repository.content.ContentRepositoryOutputHandler</contentrepo>
        <IAclPublisher scope="global">com.pentaho.security.acls.AclPublisher</IAclPublisher>
        <IAclVoter scope="global">com.pentaho.security.acls.voter.PentahoBasicAclVoter</IAclVoter>
        <IVersionHelper scope="global">org.pentaho.util.VersionHelper</IVersionHelper>
        <!-- Insert additional objects -->
	</objects>

	<publishers>
		<solution-repository>org.pentaho.core.solution.SolutionPublisher</solution-repository>
		<system-settings>org.pentaho.core.system.SettingsPublisher</system-settings>
		<global-actions>org.pentaho.core.system.GlobalListsPublisher</global-actions>
		<metadata>org.pentaho.plugin.mql.MetadataPublisher</metadata>
		<!-- Insert additional publishers -->
	</publishers>
	
        <cache-provider>
          <class>org.hibernate.cache.EhCacheProvider</class>
          <region>pentahoCache</region>
          <!--
          Uncomment this block to specify some parameters for your cache provider. EHCache has no parameters 
          other than what are provided in the ehcache.xml.
          <properties>
              <property name="someProperty">someValue</property>
          </properties>
          -->
        </cache-provider>
        <acl-publisher>
					<!-- 
						These acls are used when publishing from the file system. Every folder
						gets these ACLS. Authenticated is a "default" role that everyone
						gets when they're authenticated (be sure to setup your bean xml properly
						for this to work).
					-->
					<default-acls>
						<acl-entry role="Admin" acl="ADMIN_ALL" />				<!-- Admin users get all authorities -->
						<acl-entry role="cto" acl="ADMIN_ALL" />				<!-- CTO gets everything -->
						<acl-entry role="dev" acl="EXECUTE_SUBSCRIBE" />		<!-- Dev gets execute/subscribe -->
						<acl-entry role="Authenticated" acl="EXECUTE" />		<!-- Authenticated users get execute only -->
					</default-acls>
					
					<!--
						These acls are overrides to specific file/folders.  The above default-acls will
						be applied and then these overrides.  This allows for specific access controls to
						be loaded when the repository if first populated.  Futher changes to acls can be
						made in the platform GUI tool.  Uncomment these and change add or delete to your hearts desire -->					

					<overrides>
						<file path="/pentaho-solutions/admin">
							<acl-entry role="Admin" acl="ADMIN_ALL" />
						</file>
					</overrides>

					<!--
					<overrides>
						<file path="/pentaho-solutions/samples/bursting">
							<acl-entry role="Admin" acl="ADMIN_ALL" />
							<acl-entry role="cto" acl="SUBSCRIBE_ADMINISTRATION" />
							<acl-entry role="dev" acl="EXECUTE_SUBSCRIBE" />
							<acl-entry role="Authenticated" acl="NOTHING" />
						</file>
						<file path="/pentaho-solutions/samples/datasources/MDX_Datasource.xaction">
							<acl-entry role="Admin" acl="ADMIN_ALL" />			
							<acl-entry role="cto" acl="ADMIN_ALL" />			
							<acl-entry role="dev" acl="EXECUTE_SUBSCRIBE" />	
							<acl-entry role="Authenticated" acl="EXECUTE" />	
						</file>
					</overrides>
					-->					
				</acl-publisher>
				<acl-voter>
					<!-- What role must someone be in to be an ADMIN of Pentaho -->
					<admin-role>Admin</admin-role>
				</acl-voter>
				<!-- 
				  acl-files tag was added in support of PPP-130 
				  
				  * Allow specification of ACLs on .url files
				  
				  * Allow specification of files acl-able to be
					in the configuration
					
				  Usage: List the file extensions of files allowed to have
				  acls. This is a performance tuning exercise since any file
				  with an extension in this list can have ACLs applied.
				-->
                
				<acl-files>xaction,url</acl-files>

				<anonymous-authentication>
				  <anonymous-user>anonymous</anonymous-user>
				  <anonymous-role>Anonymous</anonymous-role>
                                </anonymous-authentication>
	<!-- Insert additional pentaho-system -->
	
    <audit>
      <auditLogFile>/PentahoAuditLog.log</auditLogFile>
      <id_separator><![CDATA[\t]]></id_separator>
      <auditDateFormat>yyyy/MM/dd k:mm:ss</auditDateFormat>
    </audit>
	<system-listeners>
		<globalObjects>org.pentaho.core.system.GlobalObjectInitializer</globalObjects>

		<!-- Insert system-listeners -->
		<birt>org.pentaho.plugin.eclipsebirt.BirtSystemListener</birt>
        <jfree-report>org.pentaho.plugin.jfreereport.JFreeReportSystemListener</jfree-report>
		<kettle>org.pentaho.plugin.kettle.KettleSystemListener</kettle>
		<mondrian>org.pentaho.plugin.olap.MondrianSystemListener</mondrian>
		<quartz>org.pentaho.plugin.quartz.QuartzSystemListener</quartz>
		<metadata>org.pentaho.plugin.mql.PMDSystemListener</metadata>
				
		<!--  To change the version check frequency, modify the element
			  version-check-config / repeat-interval-seconds below. 
			  
			  To disable the version checker, set the element 
			  "version-check-config / disable" to true or remove this 
			  system listener.
		 -->
		<version-checker>org.pentaho.plugin.versionchecker.VersionCheckSystemListener</version-checker>
	</system-listeners>

	<solution-repository>
		<!-- Insert solution-repository -->
		<cache-size>0</cache-size>
	</solution-repository>

	<HibernatedObjectHandlers>
		<StandardHandler>org.pentaho.repository.StdHibernateClassHandler</StandardHandler>
                <SubscriptionHandler>com.pentaho.repository.subscribe.SubscriptionHibernateHandler</SubscriptionHandler>
		<!-- Insert additional HibernatedObjectHandlers -->
	</HibernatedObjectHandlers>

	<system-actions>
		<org.pentaho.core.session.PentahoHttpSession scope="session">samples/rules/session-region-list.xaction</org.pentaho.core.session.PentahoHttpSession>
		<org.pentaho.ui.portlet.PentahoPortletSession scope="session">samples/rules/session-region-list.xaction</org.pentaho.ui.portlet.PentahoPortletSession>
		<org.pentaho.core.session.PentahoHttpSession scope="global">samples/secure/global-department-list.xaction</org.pentaho.core.session.PentahoHttpSession>
		<org.pentaho.ui.portlet.PentahoPortletSession scope="global">samples/secure/global-department-list.xaction</org.pentaho.ui.portlet.PentahoPortletSession>
		<!-- Insert additional system-action -->
	</system-actions>


    <default-parameter-xsl>DefaultParameterForm.xsl</default-parameter-xsl>

    <!-- The following tag turns on/off solution file caching for the filebased
         solution repository.  Leave commented out if developing xactions so you
         won't have to do an Admin->Refresh solution repository to see changes to
         .xactions.  Uncomment if in production for better performance.
    -->
    <!-- 
        <filebased-solution-cache>true</filebased-solution-cache>
     -->

<!-- Un-comment and fill in license key for using flash charting - http://www.maani.us/
    <FlashChart>
        <ChartLicense>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</ChartLicense>
        <GaugeLicense>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</GaugeLicense>
    </FlashChart>
-->
	<!--
	This element, and any of its child elements are optional. These elements are used to explicitly identify
	the xml transformer, sax parser, and dom parser implementations used by the platform. If any of these
	elements are missing, default implementations will be supplied. For more information, see: 
	http://xml.apache.org/xalan-j/usagepatterns.html#plug
	-->
		<!--
	<xml-factories>
		<factory-impl name="javax.xml.parsers.SAXParserFactory" implementation="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
		<factory-impl name="javax.xml.transform.TransformerFactory" implementation="org.apache.xalan.processor.TransformerFactoryImpl"/>
		<factory-impl name="javax.xml.parsers.DocumentBuilderFactory" implementation="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>
	</xml-factories>
		-->
		
  <version-check-config>
  	<!--  defines how often  -->
    <repeat-interval-seconds>86400</repeat-interval-seconds>
    <!--  valid release flags include: Major, Minor, RC, GA, Milestone -->
    <release-flags>Minor, GA</release-flags>
    <!--  set to "true" to disable the version checker -->
    <disable>false</disable>
  </version-check-config>

  <report-config>
    <entry name="org.pentaho.web.ContentHandler" value="$(base-url)/getImage?image={0}"/>
    <entry name="org.jfree.base.LogLevel" value="Warn"/>
    <entry name="org.jfree.base.LogTarget" value="org.jfree.logger.log4j.Log4JLogTarget"/>
    <entry name="org.jfree.report.NoPrinterAvailable" value="true"/>
    <entry name="org.jfree.report.modules.output.table.html.EmptyCellsUseCSS" value="true"/>
  </report-config>

</pentaho-system>